diff --git a/src/astlowering/Monomorphize.ml b/src/astlowering/Monomorphize.ml index 7250bcf1..872bdcbb 100644 --- a/src/astlowering/Monomorphize.ml +++ b/src/astlowering/Monomorphize.ml @@ -934,6 +934,7 @@ module ScillaCG_Mmph = struct match targ with TypeVar _ -> true | _ -> false in if + (* both are true? *) Int.Set.mem tags e_idx && not is_identity_typvar then fail1 diff --git a/src/astlowering/UncurriedSyntax.ml b/src/astlowering/UncurriedSyntax.ml index 0fb3abba..c055d2d9 100644 --- a/src/astlowering/UncurriedSyntax.ml +++ b/src/astlowering/UncurriedSyntax.ml @@ -486,6 +486,219 @@ module Uncurried_Syntax = struct a ^ " " ^ pp_literal l') ^ ")") + let pp_eannot_ident i = + match (Identifier.get_rep i).ea_tp with + | Some t -> "(" ^ Identifier.as_string i ^ " : " ^ pp_typ t ^ ")" + | None -> Identifier.as_string i + + (* let pp_eannot_ident i = + match (Identifier.get_rep i).ea_tp with + | Some t -> "(" ^ Identifier.as_string i ^ ")" + | None -> Identifier.as_string i *) + + let pp_payload p = + match p with + | MLit l -> "(MLit " ^ pp_literal l ^ ")" + | MVar v -> "(MVar " ^ pp_eannot_ident v ^ ")" + + let pp_spattern_base pb = + match pb with Wildcard -> "_" | Binder b -> pp_eannot_ident b + + let pp_spattern p = + match p with + | Any spb -> "(Any " ^ pp_spattern_base spb ^ ")" + | Constructor (iden, spb_l) -> + let spb_l_s = + String.concat ~sep:", " (List.map spb_l ~f:pp_spattern_base) + in + "Constructor (" ^ pp_eannot_ident iden ^ "(" ^ spb_l_s ^ "))" + + let rec pp_expr (e, _) : string = + let s = + match e with + | Literal l -> pp_literal l + | Var v -> pp_eannot_ident v + | Let (i, ty_o, lhs, rhs) -> + let ty_o_s = + match ty_o with + | None -> "(None)" + | Some ty -> "(Some " ^ pp_typ ty ^ ")" + in + "(Let " ^ pp_eannot_ident i ^ ", " ^ ty_o_s ^ " = " ^ pp_expr lhs + ^ " in " ^ pp_expr rhs + | Message spl -> + let spl_s = + String.concat ~sep:", " + (List.map spl ~f:(fun (s, payload) -> + "(" ^ s ^ " = " ^ pp_payload payload ^ ")")) + in + "(Message {" ^ spl_s ^ "})" + | Fun (il, e) -> + let ils = + String.concat ~sep:", " + (List.map il ~f:(fun (iden, typ) -> + "(" ^ pp_eannot_ident iden ^ ", " ^ pp_typ typ ^ ")")) + in + "(Fun [" ^ ils ^ "]" ^ " => " ^ pp_expr e ^ ")" + | Fixpoint _ -> "(Fixpoint)" + | App (e, actuals) -> + let actuals_s = + String.concat ~sep:", " (List.map actuals ~f:pp_eannot_ident) + in + "(App " ^ pp_eannot_ident e ^ " [" ^ actuals_s ^ "])" + | Constr (i, _, _) -> "(Constr " ^ pp_eannot_ident i ^ ")" + | MatchExpr (iden, sel, join_e_o) -> + let sel_s = + String.concat ~sep:"\n| " + (List.map sel ~f:(fun (pat, e) -> + pp_spattern pat ^ " -> " ^ pp_expr e)) + in + let join_e_o_s = + match join_e_o with + | None -> "None" + | Some (j_i, j_e) -> pp_eannot_ident j_i ^ pp_expr j_e + in + "(MatchExpr " ^ pp_eannot_ident iden ^ " with \n| " ^ sel_s + ^ " and join_e = (" ^ join_e_o_s ^ "))" + | JumpExpr i -> "(JumpExpr " ^ pp_eannot_ident i ^ ")" + | Builtin (n, tyl, il) -> + let tyl_s = String.concat ~sep:", " (List.map tyl ~f:pp_typ) in + let il_s = String.concat ~sep:", " (List.map il ~f:pp_eannot_ident) in + "(Builtin " + ^ pp_builtin (fst n) + ^ "(" ^ tyl_s ^ ")" ^ "(" ^ il_s ^ "))" + | TFun (x, e) -> "(TFun " ^ pp_eannot_ident x ^ " => " ^ pp_expr e ^ ")" + | TApp (x, tyl) -> + let tyl_s = String.concat ~sep:", " (List.map tyl ~f:pp_typ) in + "(TApp " ^ pp_eannot_ident x ^ "[" ^ tyl_s ^ "]" + | GasExpr (g, e) -> "(GasExpr " ^ pp_gas_charge g ^ pp_expr e ^ ")" + in + "\n" ^ s + + let rec pp_stmts (stmts : stmt_annot list) : string = + let s' = + List.fold_left stmts ~init:[] ~f:(fun acc_s stmt -> + let s = + match fst stmt with + | Load (x1, x2) -> + "(Load " ^ pp_eannot_ident x1 ^ " <- " ^ pp_eannot_ident x2 + ^ ")" + | RemoteLoad (x1, addr, x2) -> + "(RemoteLoad " ^ pp_eannot_ident x1 ^ "[" ^ pp_eannot_ident addr + ^ "] <- " ^ pp_eannot_ident x2 + | Store (x1, x2) -> + "(Store " ^ pp_eannot_ident x1 ^ " := " ^ pp_eannot_ident x2 + ^ ")" + | Bind (x, e) -> + "(Bind " ^ pp_eannot_ident x ^ " = " ^ pp_expr e ^ ")" + | MapUpdate (m, kl, m_o) -> + let kl_s = + String.concat ~sep:" " + (List.map kl ~f:(fun i -> "[" ^ pp_eannot_ident i ^ "]")) + in + let m_o_s = + match m_o with + | None -> "None" + | Some m -> "Some " ^ pp_eannot_ident m + in + "(MapUpdate " ^ pp_eannot_ident m ^ kl_s ^ " := " ^ m_o_s ^ ")" + | MapGet (x, m, kl, _) -> + let kl_s = + String.concat ~sep:" " + (List.map kl ~f:(fun i -> "[" ^ pp_eannot_ident i ^ "]")) + in + "(MapGet " ^ pp_eannot_ident x ^ " <- " ^ pp_eannot_ident m + ^ kl_s ^ ")" + | RemoteMapGet (x, addr, m, kl, _) -> + let kl_s = + String.concat ~sep:" " + (List.map kl ~f:(fun i -> "[" ^ pp_eannot_ident i ^ "]")) + in + "(RemoteMapGet " ^ pp_eannot_ident addr ^ "." + ^ pp_eannot_ident x ^ " <- " ^ pp_eannot_ident m ^ kl_s ^ ")" + | MatchStmt (x, spl, join_s_o) -> + let spl_s = + String.concat ~sep:"\n| " + (List.map spl ~f:(fun (pat, stmt) -> + pp_spattern pat ^ " -> " ^ pp_stmts stmt)) + in + let join_s_o_s = + match join_s_o with + | None -> "None" + | Some (j_i, j_s) -> pp_eannot_ident j_i ^ pp_stmts j_s + in + "(MatchStmt " ^ pp_eannot_ident x ^ " with \n| " ^ spl_s + ^ " and join_e = (" ^ join_s_o_s ^ "))" + | JumpStmt x -> "(JumpStmt " ^ pp_eannot_ident x ^ ")" + | ReadFromBC (x, s) -> "(ReadFromBC " ^ pp_eannot_ident x ^ s ^ ")" + | AcceptPayment -> "(AcceptPayment)" + | SendMsgs x -> "(SendMsgs " ^ pp_eannot_ident x ^ ")" + | CreateEvnt x -> "(CreateEvnt " ^ pp_eannot_ident x ^ ")" + | CallProc (x, actuals) -> + let actuals_l = + String.concat ~sep:" " (List.map actuals ~f:pp_eannot_ident) + in + "(CallProc " ^ pp_eannot_ident x ^ actuals_l ^ ")" + | Iterate _ -> "(Iterate)" + | Throw _ -> "(Throw)" + | GasStmt g -> "(GasStmt " ^ pp_gas_charge g ^ ")" + | TypeCast _ -> "(TypeCast)" + in + s :: acc_s) + in + String.concat ~sep:"\n" (List.rev s') + + let pp_lentry l_e = + match l_e with + | LibVar (x, ty, e) -> + let ty_s = + match ty with None -> "None" | Some ty -> "Some " ^ pp_typ ty + in + "(LibVar " ^ pp_eannot_ident x ^ ty_s ^ " = " ^ pp_expr e ^ ")" + | LibTyp (x, _) -> "(LibTyp " ^ pp_eannot_ident x ^ ")" + + let pp_component comp = + let comp_type_s = + match comp.comp_type with + | CompTrans -> "CompTrans" + | CompProc -> "CompProc" + in + let comp_name_s = pp_eannot_ident comp.comp_name in + let comp_params_s = + String.concat ~sep:", " + (List.map comp.comp_params ~f:(fun (param, ty) -> + "(" ^ pp_eannot_ident param ^ ": " ^ pp_typ ty ^ ")")) + in + let comp_body_s = pp_stmts comp.comp_body in + comp_name_s ^ ": " ^ comp_type_s ^ "(" ^ comp_params_s ^ ")" ^ "\n" + ^ comp_body_s + + let pp_library l = + let name_s = pp_eannot_ident l.lname in + let lentries_s = + String.concat ~sep:"\n" (List.map l.lentries ~f:pp_lentry) + in + "Library " ^ name_s ^ ": \n" ^ lentries_s + + let pp_contract cmod = + let name_s = pp_eannot_ident cmod.cname in + let cparams_s = + String.concat ~sep:", " + (List.map cmod.cparams ~f:(fun (p, ty) -> + "(" ^ pp_eannot_ident p ^ ": " ^ pp_typ ty ^ ")")) + in + (* Note: we don't print the expression *) + let cfields_s = + String.concat ~sep:", " + (List.map cmod.cfields ~f:(fun (p, ty, _) -> + "(" ^ pp_eannot_ident p ^ ": " ^ pp_typ ty ^ ")")) + in + let ccomps_s = + String.concat ~sep:"\n" (List.map cmod.ccomps ~f:pp_component) + in + name_s ^ "(" ^ cparams_s ^ ")" ^ "\n" ^ "Fields: " ^ cfields_s ^ "\n" + ^ "Components: " ^ ccomps_s ^ "\n" + let rename_free_var_stmts stmts fromv tov = let switcher v = (* Retain old annotation, but change the name. *) diff --git a/src/astlowering/Uncurry.ml b/src/astlowering/Uncurry.ml index 34c7f561..392a2320 100644 --- a/src/astlowering/Uncurry.ml +++ b/src/astlowering/Uncurry.ml @@ -38,12 +38,326 @@ module Identifier = Literal.LType.TIdentifier open MonadUtil open FlatPatternSyntax open UncurriedSyntax +open ExplicitAnnotationSyntax module ScillaCG_Uncurry = struct module FPS = FlatPatSyntax module UCS = Uncurried_Syntax open FPS + (* ******************************************************** *) + (******************** Uncurrying Analysis *******************) + (* ******************************************************** *) + + (* The following analysis finds function candidates for Uncurrying. + Candidates must fulfill the following criteria to be uncurried: + * Have an arity of >= 2 + * Are never partiall applied + * Are used primarily as first order functions - not as arguments + of other functions, and do not "escape" into ADTs + *) + + let dedup_id_pair_list pl = + List.dedup_and_sort + ~compare:(fun a a' -> Identifier.compare (fst a) (fst a')) + pl + + (* Find is expressions is a Fun expr + Ignores GasExpr wrap that might contain a Fun. + *) + let rec is_fun (e, _) = + match e with GasExpr (_, e) -> is_fun e | Fun _ -> true | _ -> false + + (* Finding the arity of a function + If a `Fun` expression's immediate subexpression is not `Fun`, + arity of the expression is 1. Otherwise, if the subexpression + if `Fun`, then the arity is one more then the immediate `Fun` + expression. + *) + let find_function_arity (e, annot) = + let rec iter_funcs (e', _) acc = + let res = + match e' with + | Fun (_, _, sube) -> iter_funcs sube (acc + 1) + (* if Fun is wrapped with GasExpr *) + | GasExpr (_, e) -> iter_funcs e acc + | _ -> acc + in + res + in + iter_funcs (e, annot) 0 + + (* Run analysis on whether the variable is a function to uncurry + Function takes the list of free functions paired with the number + of arguments they were applied to @fl, expression @e, named as @x + Returns Some new_x if @x is a candidate for uncurrying, otherwise None + *) + let uca_analysis_wrapper fl e x = + (* if x is not a function *) + if not @@ is_fun e then None + else + let arity_of_f = find_function_arity e in + (* Take out the number of arguments the function has been applied to *) + let no_arg_applied_to = + List.filter_map fl ~f:(fun (name, arg_num) -> + if Identifier.equal name x then Some arg_num else None) + in + (* if a pair (f,0) exists, f already won't be considered for uncurrying + (f,0) indicates that the function was used as a higher order function + *) + let is_to_uncur = + List.for_all no_arg_applied_to ~f:(fun arg_num -> arg_num = arity_of_f) + && (not @@ List.is_empty no_arg_applied_to) + && arity_of_f >= 2 + in + if not is_to_uncur then None + else + let vrep = Identifier.get_rep x in + let new_x = + Identifier.mk_id (Identifier.get_id x) + { vrep with ea_auxi = Some arity_of_f } + in + Some new_x + + (* Iterate through expression to find live Fun + Returns (expr * (Identifier * int) list) - expression + the function name + number + of arguments its been applied to. + Variables x that are used as arguements are also included as a pair (x,0) -> this is + used to decipher functions that are also used as arguments in ADTs, App, or Builtin. + Functions are marked with (Some arity) in their rep.ea_auxi so we know to uncurry them + later (at `Let`). + *) + let rec expr_uca (expr, annot) = + match expr with + | Literal _ | Var _ | Message _ | JumpExpr _ | TApp _ -> ((expr, annot), []) + | GasExpr (g, e) -> + let e', fl = expr_uca e in + ((GasExpr (g, e'), annot), fl) + | Fixpoint (a, t, e) -> + let e', fl = expr_uca e in + ((Fixpoint (a, t, e'), annot), fl) + | Fun (a, t, e) -> + let e', fl = expr_uca e in + ((Fun (a, t, e'), annot), fl) + | TFun (a, e) -> + let e', fl = expr_uca e in + ((TFun (a, e'), annot), fl) + | App (f, alist) -> + let args_pair_0 = List.map alist ~f:(fun arg -> (arg, 0)) in + ((expr, annot), (f, List.length alist) :: args_pair_0) + | Constr (_, _, alist) | Builtin (_, _, alist) -> + let args_pair_0 = List.map alist ~f:(fun arg -> (arg, 0)) in + ((expr, annot), args_pair_0) + | Let (x, ty, lhs, rhs) -> ( + let ea_rhs, fv_rhs = expr_uca rhs in + let ea_lhs, fv_lhs = expr_uca lhs in + (* Remove the function from fv_rhs *) + let fv_rhs_no_x = + List.filter ~f:(fun (i, _) -> not @@ Identifier.equal i x) fv_rhs + in + match uca_analysis_wrapper fv_rhs ea_lhs x with + | None -> ((Let (x, ty, ea_lhs, ea_rhs), annot), fv_rhs_no_x @ fv_lhs) + | Some new_x -> + ((Let (new_x, ty, ea_lhs, ea_rhs), annot), fv_rhs_no_x @ fv_lhs)) + | MatchExpr (p, spel, join_o) -> ( + let spel', lf = + List.unzip + @@ List.map spel ~f:(fun (pat, e) -> + let e', lf = expr_uca e in + let bounds = get_spattern_bounds pat in + (* Remove bound variable from the free functions list *) + let lf' = + List.filter lf ~f:(fun (i, _) -> + not @@ Identifier.is_mem_id i bounds) + in + ((pat, e'), lf')) + in + let lf' = dedup_id_pair_list ((p, 0) :: List.concat lf) in + match join_o with + | None -> ((MatchExpr (p, spel', None), annot), lf') + | Some (j_iden, e_o) -> + let join_o', lf_join = expr_uca e_o in + let lf'' = dedup_id_pair_list @@ lf_join @ lf' in + ((MatchExpr (p, spel', Some (j_iden, join_o')), annot), lf'')) + + (* Finding live functions in statements + Returns statements along with function and number of arguments it's applied to + New function definitions at `Bind (x,e)` would have an updated `x` with (Some arity) + as its rep.ea_auxi. + Load, Store, RemoteLoad, and Map operations are not handled because they work with + fields, which cannot store functions. All other statements that are not included + also would not handle functions. + *) + let rec stmts_uca stmts = + match stmts with + | (s, annot) :: rest_stmts -> ( + let rest', fl = stmts_uca rest_stmts in + match s with + | Bind (x, e) -> ( + let e', fl' = expr_uca e in + (* Remove the function from fl *) + let fl_no_x = + List.filter ~f:(fun (i, _) -> not @@ Identifier.equal i x) fl + in + let final_fl = dedup_id_pair_list (fl' @ fl_no_x) in + match uca_analysis_wrapper fl e x with + | None -> + let s' = (Bind (x, e'), annot) in + (s' :: rest', final_fl) + | Some new_x -> + let s' = (Bind (new_x, e'), annot) in + (s' :: rest', final_fl)) + | MatchStmt (p, spl, join_s_o) -> ( + let spl', fl' = + List.unzip + @@ List.map spl ~f:(fun (pat, stmts) -> + let stmts', fl = stmts_uca stmts in + let bounds = get_spattern_bounds pat in + (* Remove bound variables from the free functions list *) + let fl' = + List.filter fl ~f:(fun (a, _) -> + not @@ Identifier.is_mem_id a bounds) + in + ((pat, stmts'), fl')) + in + let fl'' = dedup_id_pair_list @@ (p, 0) :: (fl @ List.concat fl') in + match join_s_o with + | None -> ((MatchStmt (p, spl', None), annot) :: rest', fl'') + | Some (j_iden, s_o) -> + let join_o', lf_join = stmts_uca s_o in + let fl''' = dedup_id_pair_list @@ fl'' @ lf_join in + ( (MatchStmt (p, spl', Some (j_iden, join_o')), annot) :: rest', + fl''' )) + | _ -> ((s, annot) :: rest', fl)) + | [] -> ([], []) + + (* Find live functions in libraries, and mark LibVar that are candidates for uncurrying *) + let rec uca_lib_entries lentries free_funcs = + match lentries with + | lentry :: rentries -> ( + let rentries', free_funcs' = uca_lib_entries rentries free_funcs in + match lentry with + | LibVar (i, topt, lexp) -> ( + let lexp', fl = expr_uca lexp in + let free_funcs_no_i = + List.filter + ~f:(fun i' -> not @@ Identifier.equal (fst i') i) + free_funcs' + in + (* This part is considered pure - functions can be written + Handle similarly to Let expressions. lexp is the same as lhs + *) + match uca_analysis_wrapper free_funcs' lexp i with + | None -> + (LibVar (i, topt, lexp') :: rentries', fl @ free_funcs_no_i) + | Some new_i -> + ( LibVar (new_i, topt, lexp') :: rentries', + dedup_id_pair_list @@ fl @ free_funcs_no_i )) + | LibTyp _ -> (lentry :: rentries', free_funcs')) + | [] -> ([], free_funcs) + + let uca_lib lib free_funcs = + let lentries', free_funcs' = uca_lib_entries lib.lentries free_funcs in + let libs' = { lib with lentries = lentries' } in + (libs', free_funcs') + + let rec uca_libtree libt free_funcs = + let libn', free_funcs' = uca_lib libt.libn free_funcs in + let deps', free_funcs'' = + List.unzip + @@ List.map ~f:(fun dep -> uca_libtree dep free_funcs') libt.deps + in + let libt' = { libn = libn'; deps = deps' } in + let free_funcs''' = + dedup_id_pair_list @@ free_funcs' @ List.concat free_funcs'' + in + (libt', free_funcs''') + + let uca_cmod cmod rlibs elibs = + (* UCA contract components *) + let ccomps', comps_fl = + List.unzip + @@ List.map + ~f:(fun comp -> + let body', fl = stmts_uca comp.comp_body in + ({ comp with comp_body = body' }, fl) + (* We do not need to filter out comp_params because + in Scilla, function types are not storable. *)) + cmod.contr.ccomps + in + let comps_fl' = dedup_id_pair_list @@ List.concat comps_fl in + + (* We do not need to run the analysis on fields and contract parameters + as function types are not storable, thus they won't be functions. + *) + + (* UCA contract library *) + let cmod_libs', clibs_fl = + match cmod.libs with + | Some l -> + let libs, fl = uca_lib l comps_fl' in + (Some libs, fl) + | None -> (None, comps_fl') + in + + (* UCA imported libs *) + let elibs', elibs_fl = + List.unzip @@ List.map ~f:(fun elib -> uca_libtree elib clibs_fl) elibs + in + let elibs_fl' = dedup_id_pair_list @@ List.concat elibs_fl in + + (* UCA recursion libs *) + let rlibs', rlibs_fl = uca_lib_entries rlibs elibs_fl' in + + (* We're done *) + let contr' = { cmod.contr with ccomps = ccomps' } in + let cmod' = { cmod with contr = contr'; libs = cmod_libs' } in + + (* Return the whole program + free functions *) + ((cmod', rlibs', elibs'), rlibs_fl) + + (* ******************************************************** *) + (********** Transformation into Unuccurying Syntax **********) + (* ******************************************************** *) + + (* Return body of function and consecutive parameters and the + static gas charge that comes with adding more parameters + to a function (Gas.ml line 147 for reference). + *) + open GasCharge.ScillaGasCharge (Identifier.Name) + + let strip_params (e, rep) = + let is_static_gas g = match g with StaticCost i -> Some i | _ -> None in + let rec strip_params_iter body params static_gas = + match fst body with + | GasExpr (g, sube) -> + (* Then run recursively *) + if Option.is_some (is_static_gas g) && is_fun sube then + let new_gas = Option.value (is_static_gas g) ~default:0 in + strip_params_iter sube params (static_gas + new_gas) + else ((body, params), static_gas) + | Fun (i, t, body) -> + strip_params_iter body (params @ [ (i, t) ]) static_gas + | _ -> ((body, params), static_gas) + in + strip_params_iter (e, rep) [] 0 + + (* Function to uncurry the types of Func Expressions *) + let uncurry_func_typ typ arity = + let rec uncurry_iter argt rett arity_left = + if arity_left <= 1 then (argt, rett) + else + match rett with + | UCS.FunType (argt', rett') -> + uncurry_iter (argt @ argt') rett' (arity_left - 1) + | _ -> (argt, rett) + in + match typ with + | UCS.FunType (argt, rett) -> + let argt', rett' = uncurry_iter argt rett arity in + UCS.FunType (argt', rett') + | _ -> typ + let rec translate_typ = function | Type.PrimType pt -> UCS.PrimType pt | MapType (kt, vt) -> UCS.MapType (translate_typ kt, translate_typ vt) @@ -125,9 +439,167 @@ module ScillaCG_Uncurry = struct UCS.Constructor (translate_var s, List.map plist ~f:translate_spattern_base) - let translate_in_expr newname (e, erep) = - let rec go_expr (e, erep) = + let translate_adts () = + let all_adts = Datatypes.DataTypeDictionary.get_all_adts () in + forallM all_adts ~f:(fun (a : Datatypes.adt) -> + let a' : UCS.Datatypes.adt = + { + tname = a.tname; + tparams = List.map a.tparams ~f:UCS.mk_noannot_id; + tconstr = a.tconstr; + tmap = + List.map a.tmap ~f:(fun (s, tl) -> + (s, List.map tl ~f:translate_typ)); + } + in + UCS.Datatypes.DataTypeDictionary.add_adt a') + + (* Environment @ienv contains functions within scope that HAVE been uncurried + and their uncurried types *) + (* Function to uncurry Func expressions (wrapped in GasExpr) *) + let rec uncurry_func_epxr newname ienv fe = + let (body, params), static_gas = strip_params fe in + let%bind body' = translate_expr newname body ienv in + let%bind params' = + mapM params ~f:(fun (name, ty) -> + pure (translate_var name, translate_typ ty)) + in + let new_rep = translate_eannot (snd fe) in + let new_rep' = + { + new_rep with + ea_tp = + Option.map new_rep.ea_tp ~f:(fun tp -> + uncurry_func_typ tp (List.length params')); + } + in + let%bind fun_rep = + match fst fe with + | GasExpr (_, (_, rep)) -> pure @@ translate_eannot rep + | _ -> + fail0 + "Uncurry: internal error: uncurry_func_epxr has no Gas rapped \ + around Fun." + in + let fun_rep' = + { + fun_rep with + ea_tp = + Option.map fun_rep.ea_tp ~f:(fun tp -> + uncurry_func_typ tp (List.length params')); + } + in + pure + ( UCS.GasExpr (StaticCost static_gas, (UCS.Fun (params', body'), fun_rep')), + new_rep' ) + + (* Note: + * Functions are added to the env when they are uncurried + * Functions are only removed from the environment when the variable name is redefined to + something else + * translate_expr does not return an environment because the scope of + newly defined functions in expr ends there + *) + (* If functions that are NOT uncurried, their App will be transformed apply arguments + one by one *) + (* Note: ienv contains variables in UCS syntax *) + and translate_expr newname (e, annot) ienv = + let rec go_expr (e, erep) ienv = match e with + | Let (i, topt, lhs, rhs) -> + (* If the function is to be uncurried *) + if Option.is_some (Identifier.get_rep i).ea_auxi then + let%bind uncurried_lhs = uncurry_func_epxr newname ienv lhs in + let uncurried_ty = (snd uncurried_lhs).ea_tp in + (* Translate i to have the new uncurried type in rep *) + let translated_i = + let rep = translate_eannot (Identifier.get_rep i) in + let rep' = { rep with ea_tp = uncurried_ty } in + Identifier.mk_id (Identifier.get_id i) rep' + in + (* Add i into ienv to run rhs *) + let%bind rhs' = + go_expr rhs ((translated_i, uncurried_ty) :: ienv) + in + let topt' = + match topt with None -> None | Some _ -> uncurried_ty + in + pure + ( UCS.Let (translated_i, topt', uncurried_lhs, rhs'), + translate_eannot erep ) + else + let translated_i = translate_var i in + (* We don't uncurry it - and we make sure it's not in the ienv *) + let ienv' = + List.filter ienv ~f:(fun (iden, _) -> + not @@ Identifier.equal translated_i iden) + in + let%bind lhs' = go_expr lhs ienv in + let%bind rhs' = go_expr rhs ienv' in + pure + ( UCS.Let + (translated_i, Option.map ~f:translate_typ topt, lhs', rhs'), + translate_eannot erep ) + | App (a, l) -> + let a' = translate_var a in + (* If the function was uncurried *) + if Identifier.is_mem_id a' (fst @@ List.unzip ienv) then + let new_typ_a = + snd + @@ List.find_exn ienv ~f:(fun (iden, _) -> + Identifier.equal iden a') + in + let new_a = + Identifier.mk_id (Identifier.get_id a) + { (Identifier.get_rep a') with ea_tp = new_typ_a } + in + pure + ( UCS.App (new_a, List.map l ~f:translate_var), + translate_eannot erep ) + else + (* Split the sequence of applications (which have currying semantics) into + * multiple UCS.App expressions, each having non-currying semantics. *) + let rec uncurry_app (previous_temp : UCS.eannot Identifier.t) + remaining = + match remaining with + | [] -> + let rep : Uncurried_Syntax.eannot = + { + ea_loc = erep.ea_loc; + ea_tp = (Identifier.get_rep previous_temp).ea_tp; + ea_auxi = (Identifier.get_rep previous_temp).ea_auxi; + } + in + pure (UCS.Var previous_temp, rep) + | next :: remaining' -> ( + match (Identifier.get_rep previous_temp).ea_tp with + | Some (UCS.FunType (_, pt_ret)) -> + let temp_rep : Uncurried_Syntax.eannot = + { + ea_loc = (Identifier.get_rep previous_temp).ea_loc; + ea_tp = Some pt_ret; + ea_auxi = (Identifier.get_rep previous_temp).ea_auxi; + } + in + let temp = newname (Identifier.as_string a) temp_rep in + let rep : Uncurried_Syntax.eannot = + { + ea_loc = erep.ea_loc; + ea_tp = temp_rep.ea_tp; + ea_auxi = erep.ea_auxi; + } + in + let lhs = (UCS.App (previous_temp, [ next ]), temp_rep) in + let%bind rhs = uncurry_app temp remaining' in + pure (UCS.Let (temp, None, lhs, rhs), rep) + | _ -> + fail1 + (sprintf + "Uncurry: internal error: type mismatch applying %s." + (Identifier.as_string a)) + (Identifier.get_rep a).ea_loc) + in + uncurry_app a' (List.map l ~f:translate_var) | Literal l -> let%bind l' = translate_literal l in pure (UCS.Literal l', translate_eannot erep) @@ -141,51 +613,6 @@ module ScillaCG_Uncurry = struct m in pure (UCS.Message m', translate_eannot erep) - | App (a, l) -> - let a' = translate_var a in - (* Split the sequence of applications (which have currying semantics) into - * multiple UCS.App expressions, each having non-currying semantics. *) - let rec uncurry_app (previous_temp : UCS.eannot Identifier.t) - remaining = - match remaining with - | [] -> - let rep : Uncurried_Syntax.eannot = - { - ea_loc = erep.ea_loc; - ea_tp = (Identifier.get_rep previous_temp).ea_tp; - ea_auxi = (Identifier.get_rep previous_temp).ea_auxi; - } - in - pure (UCS.Var previous_temp, rep) - | next :: remaining' -> ( - match (Identifier.get_rep previous_temp).ea_tp with - | Some (UCS.FunType (_, pt_ret)) -> - let temp_rep : Uncurried_Syntax.eannot = - { - ea_loc = (Identifier.get_rep previous_temp).ea_loc; - ea_tp = Some pt_ret; - ea_auxi = (Identifier.get_rep previous_temp).ea_auxi; - } - in - let temp = newname (Identifier.as_string a) temp_rep in - let rep : Uncurried_Syntax.eannot = - { - ea_loc = erep.ea_loc; - ea_tp = temp_rep.ea_tp; - ea_auxi = erep.ea_auxi; - } - in - let lhs = (UCS.App (previous_temp, [ next ]), temp_rep) in - let%bind rhs = uncurry_app temp remaining' in - pure (UCS.Let (temp, None, lhs, rhs), rep) - | _ -> - fail1 - (sprintf - "Uncurry: internal error: type mismatch applying %s." - (Identifier.as_string a)) - (Identifier.get_rep a).ea_loc) - in - uncurry_app a' (List.map l ~f:translate_var) | Constr (s, tl, il) -> let tl' = List.map tl ~f:translate_typ in let il' = List.map il ~f:translate_var in @@ -197,24 +624,17 @@ module ScillaCG_Uncurry = struct ((i, translate_eannot rep), List.map ~f:translate_typ ts, il'), translate_eannot erep ) | Fixpoint (f, t, body) -> - let%bind body' = go_expr body in + let%bind body' = go_expr body ienv in pure ( UCS.Fixpoint (translate_var f, translate_typ t, body'), translate_eannot erep ) | Fun (i, t, body) -> - let%bind body' = go_expr body in + let%bind body' = go_expr body ienv in pure ( UCS.Fun ([ (translate_var i, translate_typ t) ], body'), translate_eannot erep ) - | Let (i, topt, lhs, rhs) -> - let%bind lhs' = go_expr lhs in - let%bind rhs' = go_expr rhs in - pure - ( UCS.Let - (translate_var i, Option.map ~f:translate_typ topt, lhs', rhs'), - translate_eannot erep ) | TFun (t, e) -> - let%bind e' = go_expr e in + let%bind e' = go_expr e ienv in pure (UCS.TFun (translate_var t, e'), translate_eannot erep) | TApp (i, tl) -> let tl' = List.map tl ~f:translate_typ in @@ -223,13 +643,20 @@ module ScillaCG_Uncurry = struct let%bind clauses' = mapM clauses ~f:(fun (p, rhs) -> let p' = translate_spattern p in - let%bind rhs' = go_expr rhs in + (* Remove any bounds from free functions *) + let bounds = UCS.get_spattern_bounds p' in + let ienv' = + List.filter ienv ~f:(fun (f, _) -> + not @@ Identifier.is_mem_id f bounds) + in + let%bind rhs' = go_expr rhs ienv' in pure (p', rhs')) in let%bind joinopt' = option_mapM joinopt ~f:(fun (l, je) -> let l' = translate_var l in - let%bind je' = go_expr je in + (* We don't need to exclude bound names because it's a jump identiier *) + let%bind je' = go_expr je ienv in pure (l', je')) in pure @@ -238,170 +665,262 @@ module ScillaCG_Uncurry = struct | JumpExpr l -> pure (UCS.JumpExpr (translate_var l), translate_eannot erep) | GasExpr (g, e) -> - let%bind e' = go_expr e in + let%bind e' = go_expr e ienv in pure @@ (UCS.GasExpr (g, e'), translate_eannot erep) in - - go_expr (e, erep) - - let translate_in_stmts newname stmts = - let rec go_stmts stmts = - foldrM stmts ~init:[] ~f:(fun acc (stmt, srep) -> - match stmt with - | Load (x, m) -> - let s' = UCS.Load (translate_var x, translate_var m) in - pure @@ (s', translate_eannot srep) :: acc - | RemoteLoad (x, addr, m) -> - let s' = - UCS.RemoteLoad - (translate_var x, translate_var addr, translate_var m) - in - pure @@ (s', translate_eannot srep) :: acc - | TypeCast (x, a, t) -> - let s' = - UCS.TypeCast (translate_var x, translate_var a, translate_typ t) - in - pure @@ (s', translate_eannot srep) :: acc - | Store (m, i) -> - let s' = UCS.Store (translate_var m, translate_var i) in - pure @@ (s', translate_eannot srep) :: acc - | MapUpdate (i, il, io) -> - let il' = List.map il ~f:translate_var in - let io' = Option.map io ~f:translate_var in - let s' = UCS.MapUpdate (translate_var i, il', io') in - pure @@ (s', translate_eannot srep) :: acc - | MapGet (i, i', il, b) -> - let il' = List.map ~f:translate_var il in - let s' = UCS.MapGet (translate_var i, translate_var i', il', b) in - pure @@ (s', translate_eannot srep) :: acc - | RemoteMapGet (i, addr, i', il, b) -> - let il' = List.map ~f:translate_var il in - let s' = - UCS.RemoteMapGet - (translate_var i, translate_var addr, translate_var i', il', b) - in - pure @@ (s', translate_eannot srep) :: acc - | ReadFromBC (i, s) -> - let s' = UCS.ReadFromBC (translate_var i, s) in - pure @@ (s', translate_eannot srep) :: acc - | AcceptPayment -> - let s' = UCS.AcceptPayment in - pure @@ (s', translate_eannot srep) :: acc - | SendMsgs m -> - let s' = UCS.SendMsgs (translate_var m) in - pure @@ (s', translate_eannot srep) :: acc - | CreateEvnt e -> - let s' = UCS.CreateEvnt (translate_var e) in - pure @@ (s', translate_eannot srep) :: acc - | Throw t -> - let s' = UCS.Throw (Option.map ~f:translate_var t) in - pure @@ (s', translate_eannot srep) :: acc - | CallProc (p, al) -> - let s' = - UCS.CallProc (translate_var p, List.map ~f:translate_var al) - in - pure @@ (s', translate_eannot srep) :: acc - | Iterate (l, p) -> - let s' = UCS.Iterate (translate_var l, translate_var p) in - pure @@ (s', translate_eannot srep) :: acc - | Bind (i, e) -> - let%bind e' = translate_in_expr newname e in - let s' = UCS.Bind (translate_var i, e') in - pure @@ (s', translate_eannot srep) :: acc - | MatchStmt (obj, clauses, joinopt) -> - let%bind clauses' = - mapM clauses ~f:(fun (p, rhs) -> - let p' = translate_spattern p in - let%bind rhs' = go_stmts rhs in - pure (p', rhs')) - in - let%bind joinopt' = - option_mapM joinopt ~f:(fun (l, je) -> - let l' = translate_var l in - let%bind je' = go_stmts je in - pure (l', je')) + go_expr (e, annot) ienv + + (* Note: + * Uncurrying logic lies only in Bind + * Returns an updated list of statements + *) + let translate_stmts newname stmts ienv = + let rec go_stmts stmts ienv = + let%bind stmts_rev, ienv' = + (* Keep track of ienv as well because Bind might overwrite a function name *) + foldM stmts ~init:([], ienv) + ~f:(fun (acc_stmts, acc_ienv) (stmt, srep) -> + match stmt with + | Bind (i, e) -> + (* If the function is to be uncurried *) + if Option.is_some (Identifier.get_rep i).ea_auxi then + let%bind uncurried_e = uncurry_func_epxr newname acc_ienv e in + let uncurried_ty = (snd uncurried_e).ea_tp in + let translated_i = + let rep = translate_eannot (Identifier.get_rep i) in + let rep' = { rep with ea_tp = uncurried_ty } in + Identifier.mk_id (Identifier.get_id i) rep' + in + (* debug_typ (snd uncurried_e).ea_tp i; *) + let s' = UCS.Bind (translated_i, uncurried_e) in + pure + @@ ( (s', translate_eannot srep) :: acc_stmts, + (translated_i, uncurried_ty) :: acc_ienv ) + else + (* We don't uncurry - and we make sure it's not in the ienv *) + let translated_i = translate_var i in + let acc_ienv' = + List.filter acc_ienv ~f:(fun (iden, _) -> + not @@ Identifier.equal translated_i iden) + in + let%bind e' = translate_expr newname e acc_ienv' in + let s' = UCS.Bind (translate_var i, e') in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv') + | Load (x, m) -> + let s' = UCS.Load (translate_var x, translate_var m) in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | RemoteLoad (x, addr, m) -> + let s' = + UCS.RemoteLoad + (translate_var x, translate_var addr, translate_var m) + in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | Store (m, i) -> + let s' = UCS.Store (translate_var m, translate_var i) in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | MapUpdate (i, il, io) -> + let il' = List.map il ~f:translate_var in + let io' = Option.map io ~f:translate_var in + let s' = UCS.MapUpdate (translate_var i, il', io') in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | MapGet (i, i', il, b) -> + let il' = List.map ~f:translate_var il in + let s' = + UCS.MapGet (translate_var i, translate_var i', il', b) + in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | RemoteMapGet (i, addr, i', il, b) -> + let il' = List.map ~f:translate_var il in + let s' = + UCS.RemoteMapGet + ( translate_var i, + translate_var addr, + translate_var i', + il', + b ) + in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | ReadFromBC (i, s) -> + let s' = UCS.ReadFromBC (translate_var i, s) in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | AcceptPayment -> + let s' = UCS.AcceptPayment in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | SendMsgs m -> + let s' = UCS.SendMsgs (translate_var m) in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | CreateEvnt e -> + let s' = UCS.CreateEvnt (translate_var e) in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | Throw t -> + let s' = UCS.Throw (Option.map ~f:translate_var t) in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | CallProc (p, al) -> + let s' = + UCS.CallProc (translate_var p, List.map ~f:translate_var al) + in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | Iterate (l, p) -> + let s' = UCS.Iterate (translate_var l, translate_var p) in + pure @@ ((s', translate_eannot srep) :: acc_stmts, acc_ienv) + | MatchStmt (obj, clauses, joinopt) -> + let%bind clauses' = + mapM clauses ~f:(fun (p, rhs) -> + let p' = translate_spattern p in + (* Don't use env cause function defined in pattern stmt is local in that scope *) + let%bind rhs', _ = go_stmts rhs acc_ienv in + pure (p', rhs')) + in + let%bind joinopt' = + option_mapM joinopt ~f:(fun (l, je) -> + let l' = translate_var l in + (* Don't use env cause function defined in pattern stmt is local in that scope *) + let%bind je', _ = go_stmts je acc_ienv in + pure (l', je')) + in + pure + ( ( UCS.MatchStmt (translate_var obj, clauses', joinopt'), + translate_eannot srep ) + :: acc_stmts, + acc_ienv ) + | JumpStmt j -> + pure + ( (UCS.JumpStmt (translate_var j), translate_eannot srep) + :: acc_stmts, + acc_ienv ) + | GasStmt g -> + pure + ((UCS.GasStmt g, translate_eannot srep) :: acc_stmts, acc_ienv) + | TypeCast (x, a, t) -> + let x' = translate_var x in + let a' = translate_var a in + let t' = translate_typ t in + pure + ( (UCS.TypeCast (x', a', t'), translate_eannot srep) + :: acc_stmts, + acc_ienv )) + in + pure (List.rev stmts_rev, ienv') + in + let%bind stmts', _ = go_stmts stmts ienv in + pure stmts' + + (* Uncurrying logic lies onyl in LibVar *) + let translate_lib_entries newname lentries ienv = + let%bind lentries_rev, ienv' = + foldM lentries ~init:([], ienv) ~f:(fun (acc_lentries, acc_ienv) lentry -> + match lentry with + | LibVar (i, topt, lexp) -> + (* If the function is to be uncurried *) + if Option.is_some (Identifier.get_rep i).ea_auxi then + let%bind uncurried_lexp = + uncurry_func_epxr newname acc_ienv lexp + in + let uncurried_ty = (snd uncurried_lexp).ea_tp in + let translated_i = + let rep = translate_eannot (Identifier.get_rep i) in + let rep' = { rep with ea_tp = uncurried_ty } in + Identifier.mk_id (Identifier.get_id i) rep' + in + let topt' = + match topt with None -> None | Some _ -> uncurried_ty + in + let lentry' = + UCS.LibVar (translated_i, topt', uncurried_lexp) + in + pure + @@ ( lentry' :: acc_lentries, + (translated_i, uncurried_ty) :: acc_ienv ) + else + (* We don't uncurry - and we make sure it's not in the ienv *) + let translated_i = translate_var i in + let acc_ienv' = + List.filter acc_ienv ~f:(fun (iden, _) -> + not @@ Identifier.equal translated_i iden) + in + let%bind lexp' = translate_expr newname lexp acc_ienv in + let lentry' = + UCS.LibVar + (translated_i, Option.map ~f:translate_typ topt, lexp') + in + pure @@ (lentry' :: acc_lentries, acc_ienv') + | LibTyp (i, ls) -> + let ls' = + List.map ls ~f:(fun t -> + { + UCS.cname = translate_var t.cname; + UCS.c_arg_types = List.map ~f:translate_typ t.c_arg_types; + }) in - pure - @@ ( UCS.MatchStmt (translate_var obj, clauses', joinopt'), - translate_eannot srep ) - :: acc - | JumpStmt j -> - pure - @@ (UCS.JumpStmt (translate_var j), translate_eannot srep) :: acc - | GasStmt g -> pure ((UCS.GasStmt g, translate_eannot srep) :: acc)) + let lentry' = UCS.LibTyp (translate_var i, ls') in + pure @@ (lentry' :: acc_lentries, acc_ienv)) in - go_stmts stmts + pure (List.rev lentries_rev, ienv') - (* Transform each library entry. *) - let translate_in_lib_entries newname lentries = - mapM - ~f:(fun lentry -> - match lentry with - | LibVar (i, topt, lexp) -> - let%bind lexp' = translate_in_expr newname lexp in - pure - @@ UCS.LibVar - (translate_var i, Option.map ~f:translate_typ topt, lexp') - | LibTyp (i, ls) -> - let ls' = - List.map ls ~f:(fun t -> - { - UCS.cname = translate_var t.cname; - UCS.c_arg_types = List.map ~f:translate_typ t.c_arg_types; - }) - in - pure @@ UCS.LibTyp (translate_var i, ls')) - lentries - - (* Function to flatten patterns in a library. *) - let translate_in_lib newname lib = - let%bind lentries' = translate_in_lib_entries newname lib.lentries in - pure @@ { UCS.lname = translate_var lib.lname; lentries = lentries' } - - (* translate_in the library tree. *) - let rec translate_in_libtree newname libt = - let%bind deps' = - mapM ~f:(fun dep -> translate_in_libtree newname dep) libt.deps + let translate_lib newname lib ienv = + let%bind lentries', ienv' = + translate_lib_entries newname lib.lentries ienv in - let%bind libn' = translate_in_lib newname libt.libn in - pure @@ { UCS.libn = libn'; UCS.deps = deps' } + let lib' = { UCS.lname = translate_var lib.lname; lentries = lentries' } in + pure (lib', ienv') - let translate_in_module (cmod : cmodule) rlibs elibs = + let rec translate_libtree newname libt = + let%bind deps_ienv = + mapM ~f:(fun dep -> translate_libtree newname dep) libt.deps + in + let deps', ienv_l = List.unzip deps_ienv in + let ienv' = List.concat ienv_l in + let%bind libn', ienv'' = translate_lib newname libt.libn ienv' in + let libt' = { UCS.libn = libn'; UCS.deps = deps' } in + pure (libt', ienv'') + + let translate_cmod (cmod : cmodule) rlibs elibs = let newname = LoweringUtils.global_newnamer in (* Recursion libs. *) - let%bind rlibs' = translate_in_lib_entries newname rlibs in + let%bind rlibs', rlib_ienv = translate_lib_entries newname rlibs [] in (* External libs. *) - let%bind elibs' = - mapM ~f:(fun elib -> translate_in_libtree newname elib) elibs + let%bind elib_ienv = + mapM ~f:(fun elib -> translate_libtree newname elib) elibs + in + let elibs', elib_ienv = + let unz = List.unzip elib_ienv in + (fst unz, List.concat @@ snd unz) in - (* Transform contract library. *) - let%bind clibs' = option_mapM cmod.libs ~f:(translate_in_lib newname) in + (* Transform contract library *) + let%bind clibs', clib_ienv = + match cmod.libs with + | None -> pure (None, elib_ienv @ rlib_ienv) + | Some lib -> + let%bind lib', ienv = + translate_lib newname lib (elib_ienv @ rlib_ienv) + in + pure (Some lib', ienv) + in - (* Translate fields and their initializations. *) + (* Translate fields and their init *) let%bind fields' = mapM ~f:(fun (i, t, fexp) -> - let%bind fexp' = translate_in_expr newname fexp in + let%bind fexp' = translate_expr newname fexp clib_ienv in pure (translate_var i, translate_typ t, fexp')) cmod.contr.cfields in - (* Translate all contract components. *) let%bind comps' = mapM ~f:(fun comp -> - let%bind body' = translate_in_stmts newname comp.comp_body in + let%bind body' = translate_stmts newname comp.comp_body clib_ienv in pure - @@ { - UCS.comp_type = comp.comp_type; - UCS.comp_name = translate_var comp.comp_name; - UCS.comp_params = - List.map comp.comp_params ~f:(fun (i, t) -> - (translate_var i, translate_typ t)); - UCS.comp_body = body'; - }) + { + UCS.comp_type = comp.comp_type; + UCS.comp_name = translate_var comp.comp_name; + UCS.comp_params = + List.map comp.comp_params ~f:(fun (i, t) -> + (translate_var i, translate_typ t)); + UCS.comp_body = body'; + }) cmod.contr.ccomps in @@ -429,41 +948,29 @@ module ScillaCG_Uncurry = struct (* Return back the whole program, transformed. *) pure (cmod', rlibs', elibs') - let translate_adts () = - let all_adts = Datatypes.DataTypeDictionary.get_all_adts () in - forallM all_adts ~f:(fun (a : Datatypes.adt) -> - let a' : UCS.Datatypes.adt = - { - tname = a.tname; - tparams = List.map a.tparams ~f:UCS.mk_noannot_id; - tconstr = a.tconstr; - tmap = - List.map a.tmap ~f:(fun (s, tl) -> - (s, List.map tl ~f:translate_typ)); - } - in - UCS.Datatypes.DataTypeDictionary.add_adt a') - - let uncurry_in_module (cmod : cmodule) rlibs elibs = + let uncurry_in_module (cmod : FPS.cmodule) rlibs elibs = let%bind () = translate_adts () in - (* TODO: Perform actual uncurrying (combining curried functions and their applications) - * on the translated AST. *) - translate_in_module cmod rlibs elibs + let (cmod', rlibs', elibs'), _ = uca_cmod cmod rlibs elibs in + let%bind cmod'', rlibs'', elibs'' = translate_cmod cmod' rlibs' elibs' in + pure (cmod'', rlibs'', elibs'') (* A wrapper to uncurry pure expressions. *) let uncurry_expr_wrapper rlibs elibs (e, erep) = let newname = LoweringUtils.global_newnamer in let%bind () = translate_adts () in - (* TODO: Perform actual uncurrying (combining curried functions and their applications) - * on the translated AST. *) + let e', _ = expr_uca (e, erep) in (* Recursion libs. *) - let%bind rlibs' = translate_in_lib newname rlibs in + let%bind rlibs', ienv0 = translate_lib newname rlibs [] in (* External libs. *) - let%bind elibs' = - mapM ~f:(fun elib -> translate_in_libtree newname elib) elibs + let%bind elibs', ienv1 = + let%bind elib0 = + mapM ~f:(fun elib -> translate_libtree newname elib) elibs + in + let elib1, ienv_l = List.unzip elib0 in + pure (elib1, List.concat ienv_l) in - let%bind e' = translate_in_expr newname (e, erep) in - pure (rlibs', elibs', e') + let%bind e'' = translate_expr newname e' (ienv0 @ ienv1) in + pure (rlibs', elibs', e'') module OutputSyntax = FPS end diff --git a/src/runners/expr_llvm.ml b/src/runners/expr_llvm.ml index 9129aeb8..6e16e7a2 100644 --- a/src/runners/expr_llvm.ml +++ b/src/runners/expr_llvm.ml @@ -187,6 +187,7 @@ let transform_genllvm (cli : Cli.compiler_cli) lib_stmts e_stmts expr_annot = | Ok llmod -> ( match cli.output_file with | Some output_file -> + (* if GlobalConfig.use_json_errors () then *) if not (Llvm_bitwriter.write_bitcode_file llmod output_file) then fatal_error (mk_error0 ("Error writing LLVM bitcode to " ^ output_file)) @@ -243,6 +244,11 @@ let run () = pvlog (fun () -> Printf.sprintf "Closure converted AST:\n%s\n" (ClosuredSyntax.CloCnvSyntax.pp_stmts_wrapper clocnv_e)); - transform_genllvm cli clocnv_libs clocnv_e e_annot + transform_genllvm cli clocnv_libs clocnv_e e_annot; + if GlobalConfig.use_json_errors () then + let warns = + `Assoc [ ("warnings", scilla_warning_to_json (get_warnings ())) ] + in + pout @@ sprintf "%s\n" (Yojson.Basic.pretty_to_string warns) let () = try run () with FatalError msg -> exit_with_error msg diff --git a/src/runners/scilla_llvm_common.ml b/src/runners/scilla_llvm_common.ml index 7f15be6f..f49e6978 100644 --- a/src/runners/scilla_llvm_common.ml +++ b/src/runners/scilla_llvm_common.ml @@ -253,9 +253,9 @@ let run args_list ~exe_name = * if either `-jsonerrors` OR if there is other JSON output. *) if GlobalConfig.use_json_errors () || not (List.is_empty output) then [ - ("warnings", scilla_warning_to_json (get_warnings ())); ("gas_remaining", `String (Stdint.Uint64.to_string g)); ("llvm_ir", `String llmod_str); + ("warnings", scilla_warning_to_json (get_warnings ())); ] @ output else output diff --git a/tests/codegen/contr/TestCodegenContr.ml b/tests/codegen/contr/TestCodegenContr.ml index fe4ee64e..0c98340b 100644 --- a/tests/codegen/contr/TestCodegenContr.ml +++ b/tests/codegen/contr/TestCodegenContr.ml @@ -49,6 +49,10 @@ let contrlist = "MmphTest.scilla"; "simple-iterate.scilla"; "map_misc.scilla"; + "uncurry1.scilla"; + "uncurry2.scilla"; + "uncurry3.scilla"; + "uncurry4.scilla"; "type_casts.scilla"; ] diff --git a/tests/codegen/contr/dgold/MmphTest.scilla.gold b/tests/codegen/contr/dgold/MmphTest.scilla.gold index 4cf2c63f..35017039 100644 --- a/tests/codegen/contr/dgold/MmphTest.scilla.gold +++ b/tests/codegen/contr/dgold/MmphTest.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'MmphTest' source_filename = "MmphTest" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_8" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/accept.scilla.gold b/tests/codegen/contr/dgold/accept.scilla.gold index e491f8c4..844168f9 100644 --- a/tests/codegen/contr/dgold/accept.scilla.gold +++ b/tests/codegen/contr/dgold/accept.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'Accept' source_filename = "Accept" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/accounting_tests.scilla.gold b/tests/codegen/contr/dgold/accounting_tests.scilla.gold index ac06e1ea..c1157c89 100644 --- a/tests/codegen/contr/dgold/accounting_tests.scilla.gold +++ b/tests/codegen/contr/dgold/accounting_tests.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001916 ; ModuleID = 'AccountingTests' source_filename = "AccountingTests" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_87" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -2643,15 +2643,15 @@ entry: "$have_gas_1305": ; preds = %"$out_of_gas_1304", %"$have_gas_1300" %"$consume_1306" = sub i64 %"$gasrem_1302", 1 store i64 %"$consume_1306", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_20" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_18" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_1307" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_1308" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1307", 0 %"$accounting_tests.one_msg_envptr_1309" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1307", 1 %"$msg1_1310" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_1311" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1308"(i8* %"$accounting_tests.one_msg_envptr_1309", i8* %"$msg1_1310"), !dbg !130 - store %TName_List_Message* %"$accounting_tests.one_msg_call_1311", %TName_List_Message** %"$accounting_tests.one_msg_20", align 8, !dbg !130 - %"$$accounting_tests.one_msg_20_1312" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_20", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_20_1312", %TName_List_Message** %msgs1, align 8, !dbg !130 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1311", %TName_List_Message** %"$accounting_tests.one_msg_18", align 8, !dbg !130 + %"$$accounting_tests.one_msg_18_1312" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_18", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_18_1312", %TName_List_Message** %msgs1, align 8, !dbg !130 %"$msgs1_1313" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_1313_1314" = bitcast %TName_List_Message* %"$msgs1_1313" to i8* %"$_literal_cost_call_1315" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_1313_1314") @@ -2888,15 +2888,15 @@ entry: "$have_gas_1450": ; preds = %"$out_of_gas_1449", %"$have_gas_1445" %"$consume_1451" = sub i64 %"$gasrem_1447", 1 store i64 %"$consume_1451", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_18" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_20" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_1452" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_1453" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1452", 0 %"$accounting_tests.one_msg_envptr_1454" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1452", 1 %"$msg_final_1455" = load i8*, i8** %msg_final, align 8 %"$accounting_tests.one_msg_call_1456" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1453"(i8* %"$accounting_tests.one_msg_envptr_1454", i8* %"$msg_final_1455"), !dbg !137 - store %TName_List_Message* %"$accounting_tests.one_msg_call_1456", %TName_List_Message** %"$accounting_tests.one_msg_18", align 8, !dbg !137 - %"$$accounting_tests.one_msg_18_1457" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_18", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_18_1457", %TName_List_Message** %msgs_final, align 8, !dbg !137 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1456", %TName_List_Message** %"$accounting_tests.one_msg_20", align 8, !dbg !137 + %"$$accounting_tests.one_msg_20_1457" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_20", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_20_1457", %TName_List_Message** %msgs_final, align 8, !dbg !137 %"$msgs_final_1458" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 %"$$msgs_final_1458_1459" = bitcast %TName_List_Message* %"$msgs_final_1458" to i8* %"$_literal_cost_call_1460" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs_final_1458_1459") @@ -3545,15 +3545,15 @@ entry: "$have_gas_1820": ; preds = %"$out_of_gas_1819", %"$have_gas_1815" %"$consume_1821" = sub i64 %"$gasrem_1817", 1 store i64 %"$consume_1821", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_24" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_23" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_1822" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_1823" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1822", 0 %"$accounting_tests.one_msg_envptr_1824" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1822", 1 %"$msg2_1825" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_1826" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1823"(i8* %"$accounting_tests.one_msg_envptr_1824", i8* %"$msg2_1825"), !dbg !165 - store %TName_List_Message* %"$accounting_tests.one_msg_call_1826", %TName_List_Message** %"$accounting_tests.one_msg_24", align 8, !dbg !165 - %"$$accounting_tests.one_msg_24_1827" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_24", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_24_1827", %TName_List_Message** %msgs_tmp, align 8, !dbg !165 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1826", %TName_List_Message** %"$accounting_tests.one_msg_23", align 8, !dbg !165 + %"$$accounting_tests.one_msg_23_1827" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_23", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_23_1827", %TName_List_Message** %msgs_tmp, align 8, !dbg !165 %"$gasrem_1828" = load i64, i64* @_gasrem, align 8 %"$gascmp_1829" = icmp ugt i64 1, %"$gasrem_1828" br i1 %"$gascmp_1829", label %"$out_of_gas_1830", label %"$have_gas_1831" @@ -3687,15 +3687,15 @@ entry: "$have_gas_1898": ; preds = %"$out_of_gas_1897", %"$have_gas_1893" %"$consume_1899" = sub i64 %"$gasrem_1895", 1 store i64 %"$consume_1899", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_23" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_24" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_1900" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_1901" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1900", 0 %"$accounting_tests.one_msg_envptr_1902" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1900", 1 %"$msg_final_1903" = load i8*, i8** %msg_final, align 8 %"$accounting_tests.one_msg_call_1904" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1901"(i8* %"$accounting_tests.one_msg_envptr_1902", i8* %"$msg_final_1903"), !dbg !169 - store %TName_List_Message* %"$accounting_tests.one_msg_call_1904", %TName_List_Message** %"$accounting_tests.one_msg_23", align 8, !dbg !169 - %"$$accounting_tests.one_msg_23_1905" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_23", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_23_1905", %TName_List_Message** %msgs_final, align 8, !dbg !169 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1904", %TName_List_Message** %"$accounting_tests.one_msg_24", align 8, !dbg !169 + %"$$accounting_tests.one_msg_24_1905" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_24", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_24_1905", %TName_List_Message** %msgs_final, align 8, !dbg !169 %"$msgs_final_1906" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 %"$$msgs_final_1906_1907" = bitcast %TName_List_Message* %"$msgs_final_1906" to i8* %"$_literal_cost_call_1908" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs_final_1906_1907") @@ -3901,15 +3901,15 @@ entry: "$have_gas_2010": ; preds = %"$out_of_gas_2009", %"$have_gas_2005" %"$consume_2011" = sub i64 %"$gasrem_2007", 1 store i64 %"$consume_2011", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_27" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_25" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_2012" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_2013" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2012", 0 %"$accounting_tests.one_msg_envptr_2014" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2012", 1 %"$msg1_2015" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_2016" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2013"(i8* %"$accounting_tests.one_msg_envptr_2014", i8* %"$msg1_2015"), !dbg !181 - store %TName_List_Message* %"$accounting_tests.one_msg_call_2016", %TName_List_Message** %"$accounting_tests.one_msg_27", align 8, !dbg !181 - %"$$accounting_tests.one_msg_27_2017" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_27", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_27_2017", %TName_List_Message** %msgs1, align 8, !dbg !181 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2016", %TName_List_Message** %"$accounting_tests.one_msg_25", align 8, !dbg !181 + %"$$accounting_tests.one_msg_25_2017" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_25", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_25_2017", %TName_List_Message** %msgs1, align 8, !dbg !181 %"$msgs1_2018" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_2018_2019" = bitcast %TName_List_Message* %"$msgs1_2018" to i8* %"$_literal_cost_call_2020" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_2018_2019") @@ -4146,15 +4146,15 @@ entry: "$have_gas_2155": ; preds = %"$out_of_gas_2154", %"$have_gas_2150" %"$consume_2156" = sub i64 %"$gasrem_2152", 1 store i64 %"$consume_2156", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_25" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_27" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_2157" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_2158" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2157", 0 %"$accounting_tests.one_msg_envptr_2159" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2157", 1 %"$msg_final_2160" = load i8*, i8** %msg_final, align 8 %"$accounting_tests.one_msg_call_2161" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2158"(i8* %"$accounting_tests.one_msg_envptr_2159", i8* %"$msg_final_2160"), !dbg !188 - store %TName_List_Message* %"$accounting_tests.one_msg_call_2161", %TName_List_Message** %"$accounting_tests.one_msg_25", align 8, !dbg !188 - %"$$accounting_tests.one_msg_25_2162" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_25", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_25_2162", %TName_List_Message** %msgs_final, align 8, !dbg !188 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2161", %TName_List_Message** %"$accounting_tests.one_msg_27", align 8, !dbg !188 + %"$$accounting_tests.one_msg_27_2162" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_27", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_27_2162", %TName_List_Message** %msgs_final, align 8, !dbg !188 %"$msgs_final_2163" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 %"$$msgs_final_2163_2164" = bitcast %TName_List_Message* %"$msgs_final_2163" to i8* %"$_literal_cost_call_2165" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs_final_2163_2164") @@ -4960,15 +4960,15 @@ entry: "$have_gas_2610": ; preds = %"$out_of_gas_2609", %"$have_gas_2605" %"$consume_2611" = sub i64 %"$gasrem_2607", 1 store i64 %"$consume_2611", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_30" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_29" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_2612" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_2613" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2612", 0 %"$accounting_tests.one_msg_envptr_2614" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2612", 1 %"$msg1_2615" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_2616" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2613"(i8* %"$accounting_tests.one_msg_envptr_2614", i8* %"$msg1_2615"), !dbg !233 - store %TName_List_Message* %"$accounting_tests.one_msg_call_2616", %TName_List_Message** %"$accounting_tests.one_msg_30", align 8, !dbg !233 - %"$$accounting_tests.one_msg_30_2617" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_30", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_30_2617", %TName_List_Message** %msgs1, align 8, !dbg !233 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2616", %TName_List_Message** %"$accounting_tests.one_msg_29", align 8, !dbg !233 + %"$$accounting_tests.one_msg_29_2617" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_29", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_29_2617", %TName_List_Message** %msgs1, align 8, !dbg !233 %"$msgs1_2618" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_2618_2619" = bitcast %TName_List_Message* %"$msgs1_2618" to i8* %"$_literal_cost_call_2620" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_2618_2619") @@ -5111,15 +5111,15 @@ entry: "$have_gas_2694": ; preds = %"$out_of_gas_2693", %"$have_gas_2689" %"$consume_2695" = sub i64 %"$gasrem_2691", 1 store i64 %"$consume_2695", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_29" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_30" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_2696" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_2697" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2696", 0 %"$accounting_tests.one_msg_envptr_2698" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2696", 1 %"$msg2_2699" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_2700" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2697"(i8* %"$accounting_tests.one_msg_envptr_2698", i8* %"$msg2_2699"), !dbg !238 - store %TName_List_Message* %"$accounting_tests.one_msg_call_2700", %TName_List_Message** %"$accounting_tests.one_msg_29", align 8, !dbg !238 - %"$$accounting_tests.one_msg_29_2701" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_29", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_29_2701", %TName_List_Message** %msgs2, align 8, !dbg !238 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2700", %TName_List_Message** %"$accounting_tests.one_msg_30", align 8, !dbg !238 + %"$$accounting_tests.one_msg_30_2701" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_30", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_30_2701", %TName_List_Message** %msgs2, align 8, !dbg !238 %"$msgs2_2702" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_2702_2703" = bitcast %TName_List_Message* %"$msgs2_2702" to i8* %"$_literal_cost_call_2704" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_2702_2703") @@ -5700,15 +5700,15 @@ entry: "$have_gas_3023": ; preds = %"$out_of_gas_3022", %"$have_gas_3018" %"$consume_3024" = sub i64 %"$gasrem_3020", 1 store i64 %"$consume_3024", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_33" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_32" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3025" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3026" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3025", 0 %"$accounting_tests.one_msg_envptr_3027" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3025", 1 %"$msg1_3028" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_3029" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3026"(i8* %"$accounting_tests.one_msg_envptr_3027", i8* %"$msg1_3028"), !dbg !263 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3029", %TName_List_Message** %"$accounting_tests.one_msg_33", align 8, !dbg !263 - %"$$accounting_tests.one_msg_33_3030" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_33", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_33_3030", %TName_List_Message** %msgs1, align 8, !dbg !263 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3029", %TName_List_Message** %"$accounting_tests.one_msg_32", align 8, !dbg !263 + %"$$accounting_tests.one_msg_32_3030" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_32", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_32_3030", %TName_List_Message** %msgs1, align 8, !dbg !263 %"$msgs1_3031" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_3031_3032" = bitcast %TName_List_Message* %"$msgs1_3031" to i8* %"$_literal_cost_call_3033" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_3031_3032") @@ -5843,15 +5843,15 @@ entry: "$have_gas_3106": ; preds = %"$out_of_gas_3105", %"$have_gas_3101" %"$consume_3107" = sub i64 %"$gasrem_3103", 1 store i64 %"$consume_3107", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_32" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_33" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3108" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3109" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3108", 0 %"$accounting_tests.one_msg_envptr_3110" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3108", 1 %"$msg2_3111" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_3112" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3109"(i8* %"$accounting_tests.one_msg_envptr_3110", i8* %"$msg2_3111"), !dbg !267 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3112", %TName_List_Message** %"$accounting_tests.one_msg_32", align 8, !dbg !267 - %"$$accounting_tests.one_msg_32_3113" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_32", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_32_3113", %TName_List_Message** %msgs2, align 8, !dbg !267 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3112", %TName_List_Message** %"$accounting_tests.one_msg_33", align 8, !dbg !267 + %"$$accounting_tests.one_msg_33_3113" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_33", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_33_3113", %TName_List_Message** %msgs2, align 8, !dbg !267 %"$msgs2_3114" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_3114_3115" = bitcast %TName_List_Message* %"$msgs2_3114" to i8* %"$_literal_cost_call_3116" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_3114_3115") @@ -6032,15 +6032,15 @@ entry: "$have_gas_3215": ; preds = %"$out_of_gas_3214", %"$have_gas_3210" %"$consume_3216" = sub i64 %"$gasrem_3212", 1 store i64 %"$consume_3216", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_35" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_34" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3217" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3218" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3217", 0 %"$accounting_tests.one_msg_envptr_3219" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3217", 1 %"$msg1_3220" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_3221" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3218"(i8* %"$accounting_tests.one_msg_envptr_3219", i8* %"$msg1_3220"), !dbg !276 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3221", %TName_List_Message** %"$accounting_tests.one_msg_35", align 8, !dbg !276 - %"$$accounting_tests.one_msg_35_3222" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_35", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_35_3222", %TName_List_Message** %msgs1, align 8, !dbg !276 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3221", %TName_List_Message** %"$accounting_tests.one_msg_34", align 8, !dbg !276 + %"$$accounting_tests.one_msg_34_3222" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_34", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_34_3222", %TName_List_Message** %msgs1, align 8, !dbg !276 %"$msgs1_3223" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_3223_3224" = bitcast %TName_List_Message* %"$msgs1_3223" to i8* %"$_literal_cost_call_3225" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_3223_3224") @@ -6148,15 +6148,15 @@ entry: "$have_gas_3284": ; preds = %"$out_of_gas_3283", %"$have_gas_3279" %"$consume_3285" = sub i64 %"$gasrem_3281", 1 store i64 %"$consume_3285", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_34" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_35" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3286" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3287" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3286", 0 %"$accounting_tests.one_msg_envptr_3288" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3286", 1 %"$msg2_3289" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_3290" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3287"(i8* %"$accounting_tests.one_msg_envptr_3288", i8* %"$msg2_3289"), !dbg !279 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3290", %TName_List_Message** %"$accounting_tests.one_msg_34", align 8, !dbg !279 - %"$$accounting_tests.one_msg_34_3291" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_34", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_34_3291", %TName_List_Message** %msgs2, align 8, !dbg !279 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3290", %TName_List_Message** %"$accounting_tests.one_msg_35", align 8, !dbg !279 + %"$$accounting_tests.one_msg_35_3291" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_35", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_35_3291", %TName_List_Message** %msgs2, align 8, !dbg !279 %"$msgs2_3292" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_3292_3293" = bitcast %TName_List_Message* %"$msgs2_3292" to i8* %"$_literal_cost_call_3294" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_3292_3293") @@ -6314,15 +6314,15 @@ entry: "$have_gas_3378": ; preds = %"$out_of_gas_3377", %"$have_gas_3373" %"$consume_3379" = sub i64 %"$gasrem_3375", 1 store i64 %"$consume_3379", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_37" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_36" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3380" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3381" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3380", 0 %"$accounting_tests.one_msg_envptr_3382" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3380", 1 %"$msg1_3383" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_3384" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3381"(i8* %"$accounting_tests.one_msg_envptr_3382", i8* %"$msg1_3383"), !dbg !287 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3384", %TName_List_Message** %"$accounting_tests.one_msg_37", align 8, !dbg !287 - %"$$accounting_tests.one_msg_37_3385" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_37", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_37_3385", %TName_List_Message** %msgs1, align 8, !dbg !287 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3384", %TName_List_Message** %"$accounting_tests.one_msg_36", align 8, !dbg !287 + %"$$accounting_tests.one_msg_36_3385" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_36", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_36_3385", %TName_List_Message** %msgs1, align 8, !dbg !287 %"$msgs1_3386" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_3386_3387" = bitcast %TName_List_Message* %"$msgs1_3386" to i8* %"$_literal_cost_call_3388" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_3386_3387") @@ -6483,15 +6483,15 @@ entry: "$have_gas_3478": ; preds = %"$out_of_gas_3477", %"$have_gas_3473" %"$consume_3479" = sub i64 %"$gasrem_3475", 1 store i64 %"$consume_3479", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_36" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_37" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3480" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3481" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3480", 0 %"$accounting_tests.one_msg_envptr_3482" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3480", 1 %"$msg2_3483" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_3484" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3481"(i8* %"$accounting_tests.one_msg_envptr_3482", i8* %"$msg2_3483"), !dbg !292 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3484", %TName_List_Message** %"$accounting_tests.one_msg_36", align 8, !dbg !292 - %"$$accounting_tests.one_msg_36_3485" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_36", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_36_3485", %TName_List_Message** %msgs2, align 8, !dbg !292 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3484", %TName_List_Message** %"$accounting_tests.one_msg_37", align 8, !dbg !292 + %"$$accounting_tests.one_msg_37_3485" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_37", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_37_3485", %TName_List_Message** %msgs2, align 8, !dbg !292 %"$msgs2_3486" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_3486_3487" = bitcast %TName_List_Message* %"$msgs2_3486" to i8* %"$_literal_cost_call_3488" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_3486_3487") @@ -6651,15 +6651,15 @@ entry: "$have_gas_3572": ; preds = %"$out_of_gas_3571", %"$have_gas_3567" %"$consume_3573" = sub i64 %"$gasrem_3569", 1 store i64 %"$consume_3573", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_39" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_38" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3574" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3575" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3574", 0 %"$accounting_tests.one_msg_envptr_3576" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3574", 1 %"$msg1_3577" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_3578" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3575"(i8* %"$accounting_tests.one_msg_envptr_3576", i8* %"$msg1_3577"), !dbg !300 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3578", %TName_List_Message** %"$accounting_tests.one_msg_39", align 8, !dbg !300 - %"$$accounting_tests.one_msg_39_3579" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_39", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_39_3579", %TName_List_Message** %msgs1, align 8, !dbg !300 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3578", %TName_List_Message** %"$accounting_tests.one_msg_38", align 8, !dbg !300 + %"$$accounting_tests.one_msg_38_3579" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_38", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_38_3579", %TName_List_Message** %msgs1, align 8, !dbg !300 %"$msgs1_3580" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_3580_3581" = bitcast %TName_List_Message* %"$msgs1_3580" to i8* %"$_literal_cost_call_3582" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_3580_3581") @@ -6793,15 +6793,15 @@ entry: "$have_gas_3658": ; preds = %"$out_of_gas_3657", %"$have_gas_3653" %"$consume_3659" = sub i64 %"$gasrem_3655", 1 store i64 %"$consume_3659", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_38" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_39" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3660" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3661" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3660", 0 %"$accounting_tests.one_msg_envptr_3662" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3660", 1 %"$msg2_3663" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_3664" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3661"(i8* %"$accounting_tests.one_msg_envptr_3662", i8* %"$msg2_3663"), !dbg !304 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3664", %TName_List_Message** %"$accounting_tests.one_msg_38", align 8, !dbg !304 - %"$$accounting_tests.one_msg_38_3665" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_38", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_38_3665", %TName_List_Message** %msgs2, align 8, !dbg !304 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3664", %TName_List_Message** %"$accounting_tests.one_msg_39", align 8, !dbg !304 + %"$$accounting_tests.one_msg_39_3665" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_39", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_39_3665", %TName_List_Message** %msgs2, align 8, !dbg !304 %"$msgs2_3666" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_3666_3667" = bitcast %TName_List_Message* %"$msgs2_3666" to i8* %"$_literal_cost_call_3668" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_3666_3667") @@ -7298,15 +7298,15 @@ entry: "$have_gas_3948": ; preds = %"$out_of_gas_3947", %"$have_gas_3943" %"$consume_3949" = sub i64 %"$gasrem_3945", 1 store i64 %"$consume_3949", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_43" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_42" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3950" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3951" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3950", 0 %"$accounting_tests.one_msg_envptr_3952" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3950", 1 %"$msg1_3953" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_3954" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3951"(i8* %"$accounting_tests.one_msg_envptr_3952", i8* %"$msg1_3953"), !dbg !328 - store %TName_List_Message* %"$accounting_tests.one_msg_call_3954", %TName_List_Message** %"$accounting_tests.one_msg_43", align 8, !dbg !328 - %"$$accounting_tests.one_msg_43_3955" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_43", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_43_3955", %TName_List_Message** %msgs1, align 8, !dbg !328 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3954", %TName_List_Message** %"$accounting_tests.one_msg_42", align 8, !dbg !328 + %"$$accounting_tests.one_msg_42_3955" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_42", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_42_3955", %TName_List_Message** %msgs1, align 8, !dbg !328 %"$msgs1_3956" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_3956_3957" = bitcast %TName_List_Message* %"$msgs1_3956" to i8* %"$_literal_cost_call_3958" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_3956_3957") @@ -7441,15 +7441,15 @@ entry: "$have_gas_4031": ; preds = %"$out_of_gas_4030", %"$have_gas_4026" %"$consume_4032" = sub i64 %"$gasrem_4028", 1 store i64 %"$consume_4032", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_42" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_43" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_4033" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_4034" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4033", 0 %"$accounting_tests.one_msg_envptr_4035" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4033", 1 %"$msg2_4036" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_4037" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4034"(i8* %"$accounting_tests.one_msg_envptr_4035", i8* %"$msg2_4036"), !dbg !332 - store %TName_List_Message* %"$accounting_tests.one_msg_call_4037", %TName_List_Message** %"$accounting_tests.one_msg_42", align 8, !dbg !332 - %"$$accounting_tests.one_msg_42_4038" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_42", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_42_4038", %TName_List_Message** %msgs2, align 8, !dbg !332 + store %TName_List_Message* %"$accounting_tests.one_msg_call_4037", %TName_List_Message** %"$accounting_tests.one_msg_43", align 8, !dbg !332 + %"$$accounting_tests.one_msg_43_4038" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_43", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_43_4038", %TName_List_Message** %msgs2, align 8, !dbg !332 %"$msgs2_4039" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_4039_4040" = bitcast %TName_List_Message* %"$msgs2_4039" to i8* %"$_literal_cost_call_4041" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_4039_4040") @@ -7607,15 +7607,15 @@ entry: "$have_gas_4125": ; preds = %"$out_of_gas_4124", %"$have_gas_4120" %"$consume_4126" = sub i64 %"$gasrem_4122", 1 store i64 %"$consume_4126", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_45" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_44" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_4127" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_4128" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4127", 0 %"$accounting_tests.one_msg_envptr_4129" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4127", 1 %"$msg1_4130" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_4131" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4128"(i8* %"$accounting_tests.one_msg_envptr_4129", i8* %"$msg1_4130"), !dbg !340 - store %TName_List_Message* %"$accounting_tests.one_msg_call_4131", %TName_List_Message** %"$accounting_tests.one_msg_45", align 8, !dbg !340 - %"$$accounting_tests.one_msg_45_4132" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_45", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_45_4132", %TName_List_Message** %msgs1, align 8, !dbg !340 + store %TName_List_Message* %"$accounting_tests.one_msg_call_4131", %TName_List_Message** %"$accounting_tests.one_msg_44", align 8, !dbg !340 + %"$$accounting_tests.one_msg_44_4132" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_44", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_44_4132", %TName_List_Message** %msgs1, align 8, !dbg !340 %"$msgs1_4133" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_4133_4134" = bitcast %TName_List_Message* %"$msgs1_4133" to i8* %"$_literal_cost_call_4135" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_4133_4134") @@ -7776,15 +7776,15 @@ entry: "$have_gas_4225": ; preds = %"$out_of_gas_4224", %"$have_gas_4220" %"$consume_4226" = sub i64 %"$gasrem_4222", 1 store i64 %"$consume_4226", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_44" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_45" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_4227" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_4228" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4227", 0 %"$accounting_tests.one_msg_envptr_4229" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4227", 1 %"$msg2_4230" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_4231" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4228"(i8* %"$accounting_tests.one_msg_envptr_4229", i8* %"$msg2_4230"), !dbg !345 - store %TName_List_Message* %"$accounting_tests.one_msg_call_4231", %TName_List_Message** %"$accounting_tests.one_msg_44", align 8, !dbg !345 - %"$$accounting_tests.one_msg_44_4232" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_44", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_44_4232", %TName_List_Message** %msgs2, align 8, !dbg !345 + store %TName_List_Message* %"$accounting_tests.one_msg_call_4231", %TName_List_Message** %"$accounting_tests.one_msg_45", align 8, !dbg !345 + %"$$accounting_tests.one_msg_45_4232" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_45", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_45_4232", %TName_List_Message** %msgs2, align 8, !dbg !345 %"$msgs2_4233" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_4233_4234" = bitcast %TName_List_Message* %"$msgs2_4233" to i8* %"$_literal_cost_call_4235" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_4233_4234") diff --git a/tests/codegen/contr/dgold/accounting_tests_support.scilla.gold b/tests/codegen/contr/dgold/accounting_tests_support.scilla.gold index 355da4a1..a905e3b9 100644 --- a/tests/codegen/contr/dgold/accounting_tests_support.scilla.gold +++ b/tests/codegen/contr/dgold/accounting_tests_support.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'AccountingTestsSupport' source_filename = "AccountingTestsSupport" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/crowdfunding.scilla.gold b/tests/codegen/contr/dgold/crowdfunding.scilla.gold index eb81e464..2cbe9d93 100644 --- a/tests/codegen/contr/dgold/crowdfunding.scilla.gold +++ b/tests/codegen/contr/dgold/crowdfunding.scilla.gold @@ -3,18 +3,18 @@ ; gas_remaining: 4001999 ; ModuleID = 'Crowdfunding' source_filename = "Crowdfunding" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_44" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_76" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_75"** } +%"$TyDescrTy_ADTTyp_51" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_50"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_75" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_77"**, %"$TyDescrTy_ADTTyp_76"* } -%"$TyDescrTy_ADTTyp_Constr_77" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$TyDescr_MapTyp_82" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } -%"$TyDescr_AddrTyp_85" = type { i32, %"$TyDescr_AddrFieldTyp_84"* } -%"$TyDescr_AddrFieldTyp_84" = type { %TyDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_50" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_52"**, %"$TyDescrTy_ADTTyp_51"* } +%"$TyDescrTy_ADTTyp_Constr_52" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$TyDescr_MapTyp_57" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } +%"$TyDescr_AddrTyp_60" = type { i32, %"$TyDescr_AddrFieldTyp_59"* } +%"$TyDescr_AddrFieldTyp_59" = type { %TyDescrString, %_TyDescrTy_Typ* } %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> @@ -24,24 +24,19 @@ target triple = "x86_64-unknown-linux-gnu" %"TName_Option_Map_(ByStr20)_(Uint128)" = type { i8, %"CName_Some_Map_(ByStr20)_(Uint128)"*, %"CName_None_Map_(ByStr20)_(Uint128)"* } %"CName_Some_Map_(ByStr20)_(Uint128)" = type <{ i8, %Map_ByStr20_Uint128* }> %"CName_None_Map_(ByStr20)_(Uint128)" = type <{ i8 }> -%Uint128 = type { i128 } %Map_ByStr20_Uint128 = type { [20 x i8], %Uint128 } +%Uint128 = type { i128 } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_1804" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1653" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1805" = type { %ParamDescrString, i32, %"$ParamDescr_1804"* } -%"$$fundef_32_env_134" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, i8* } -%"$$fundef_30_env_135" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } } -%"$$fundef_38_env_136" = type { %Map_ByStr20_Uint128*, [20 x i8] } -%"$$fundef_36_env_137" = type { %Map_ByStr20_Uint128* } -%"$$fundef_34_env_138" = type {} -%"$$fundef_40_env_139" = type {} -%"$$fundef_20_env_140" = type {} -%"$$fundef_24_env_141" = type { %TName_Bool* } -%"$$fundef_22_env_142" = type {} -%"$$fundef_28_env_143" = type { %TName_Bool* } -%"$$fundef_26_env_144" = type {} +%"$TransDescr_1654" = type { %ParamDescrString, i32, %"$ParamDescr_1653"* } +%"$$fundef_11_env_109" = type { { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } } +%"$$fundef_13_env_110" = type {} +%"$$fundef_15_env_111" = type {} +%"$$fundef_5_env_112" = type {} +%"$$fundef_7_env_113" = type {} +%"$$fundef_9_env_114" = type {} %BCVName = type { i8*, i32 } %String = type { i8*, i32 } %TName_Option_Uint128 = type { i8, %CName_Some_Uint128*, %CName_None_Uint128* } @@ -50,95 +45,95 @@ target triple = "x86_64-unknown-linux-gnu" @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_45" = global %"$TyDescrTy_PrimTyp_44" zeroinitializer -@"$TyDescr_Int32_46" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Int32_Prim_45" to i8*) } -@"$TyDescr_Uint32_Prim_47" = global %"$TyDescrTy_PrimTyp_44" { i32 1, i32 0 } -@"$TyDescr_Uint32_48" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Uint32_Prim_47" to i8*) } -@"$TyDescr_Int64_Prim_49" = global %"$TyDescrTy_PrimTyp_44" { i32 0, i32 1 } -@"$TyDescr_Int64_50" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Int64_Prim_49" to i8*) } -@"$TyDescr_Uint64_Prim_51" = global %"$TyDescrTy_PrimTyp_44" { i32 1, i32 1 } -@"$TyDescr_Uint64_52" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Uint64_Prim_51" to i8*) } -@"$TyDescr_Int128_Prim_53" = global %"$TyDescrTy_PrimTyp_44" { i32 0, i32 2 } -@"$TyDescr_Int128_54" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Int128_Prim_53" to i8*) } -@"$TyDescr_Uint128_Prim_55" = global %"$TyDescrTy_PrimTyp_44" { i32 1, i32 2 } -@"$TyDescr_Uint128_56" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Uint128_Prim_55" to i8*) } -@"$TyDescr_Int256_Prim_57" = global %"$TyDescrTy_PrimTyp_44" { i32 0, i32 3 } -@"$TyDescr_Int256_58" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Int256_Prim_57" to i8*) } -@"$TyDescr_Uint256_Prim_59" = global %"$TyDescrTy_PrimTyp_44" { i32 1, i32 3 } -@"$TyDescr_Uint256_60" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Uint256_Prim_59" to i8*) } -@"$TyDescr_String_Prim_61" = global %"$TyDescrTy_PrimTyp_44" { i32 2, i32 0 } -@"$TyDescr_String_62" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_String_Prim_61" to i8*) } -@"$TyDescr_Bnum_Prim_63" = global %"$TyDescrTy_PrimTyp_44" { i32 3, i32 0 } -@"$TyDescr_Bnum_64" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Bnum_Prim_63" to i8*) } -@"$TyDescr_Message_Prim_65" = global %"$TyDescrTy_PrimTyp_44" { i32 4, i32 0 } -@"$TyDescr_Message_66" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Message_Prim_65" to i8*) } -@"$TyDescr_Event_Prim_67" = global %"$TyDescrTy_PrimTyp_44" { i32 5, i32 0 } -@"$TyDescr_Event_68" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Event_Prim_67" to i8*) } -@"$TyDescr_Exception_Prim_69" = global %"$TyDescrTy_PrimTyp_44" { i32 6, i32 0 } -@"$TyDescr_Exception_70" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Exception_Prim_69" to i8*) } -@"$TyDescr_Bystr_Prim_71" = global %"$TyDescrTy_PrimTyp_44" { i32 7, i32 0 } -@"$TyDescr_Bystr_72" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Bystr_Prim_71" to i8*) } -@"$TyDescr_Bystr20_Prim_73" = global %"$TyDescrTy_PrimTyp_44" { i32 8, i32 20 } -@"$TyDescr_Bystr20_74" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Bystr20_Prim_73" to i8*) } -@"$TyDescr_ADT_Option_Uint128_78" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Option_Uint128_ADTTyp_Specl_96" to i8*) } -@"$TyDescr_ADT_Option_Map_(ByStr20)_(Uint128)_79" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_105" to i8*) } -@"$TyDescr_ADT_List_Message_80" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_List_Message_ADTTyp_Specl_117" to i8*) } -@"$TyDescr_ADT_Bool_81" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Bool_ADTTyp_Specl_129" to i8*) } -@"$TyDescr_Map_83" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_82"* @"$TyDescr_MapTyp_132" to i8*) } -@"$TyDescr_Addr_86" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_85"* @"$TyDescr_AddrFields_133" to i8*) } -@"$TyDescr_Option_ADTTyp_87" = unnamed_addr constant %"$TyDescrTy_ADTTyp_76" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_107", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_75"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_75"*], [2 x %"$TyDescrTy_ADTTyp_Specl_75"*]* @"$TyDescr_Option_ADTTyp_m_specls_106", i32 0, i32 0) } -@"$TyDescr_Option_Some_Uint128_Constr_m_args_88" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Uint128_56"] -@"$TyDescr_ADT_Some_89" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_Uint128_ADTTyp_Constr_90" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_89", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Uint128_Constr_m_args_88", i32 0, i32 0) } -@"$TyDescr_Option_None_Uint128_Constr_m_args_91" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_92" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_Uint128_ADTTyp_Constr_93" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_92", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Uint128_Constr_m_args_91", i32 0, i32 0) } -@"$TyDescr_Option_Uint128_ADTTyp_Specl_m_constrs_94" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_77"*] [%"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Option_Some_Uint128_ADTTyp_Constr_90", %"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Option_None_Uint128_ADTTyp_Constr_93"] -@"$TyDescr_Option_Uint128_ADTTyp_Specl_m_TArgs_95" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Uint128_56"] -@"$TyDescr_Option_Uint128_ADTTyp_Specl_96" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_75" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Uint128_ADTTyp_Specl_m_TArgs_95", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_77"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_77"*], [2 x %"$TyDescrTy_ADTTyp_Constr_77"*]* @"$TyDescr_Option_Uint128_ADTTyp_Specl_m_constrs_94", i32 0, i32 0), %"$TyDescrTy_ADTTyp_76"* @"$TyDescr_Option_ADTTyp_87" } -@"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_Constr_m_args_97" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_83"] -@"$TyDescr_ADT_Some_98" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_99" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_98", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_Constr_m_args_97", i32 0, i32 0) } -@"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_Constr_m_args_100" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_101" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_102" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_101", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_Constr_m_args_100", i32 0, i32 0) } -@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_constrs_103" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_77"*] [%"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_99", %"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_102"] -@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_TArgs_104" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_83"] -@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_105" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_75" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_TArgs_104", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_77"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_77"*], [2 x %"$TyDescrTy_ADTTyp_Constr_77"*]* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_constrs_103", i32 0, i32 0), %"$TyDescrTy_ADTTyp_76"* @"$TyDescr_Option_ADTTyp_87" } -@"$TyDescr_Option_ADTTyp_m_specls_106" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_75"*] [%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Option_Uint128_ADTTyp_Specl_96", %"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_105"] -@"$TyDescr_ADT_Option_107" = unnamed_addr constant [6 x i8] c"Option" -@"$TyDescr_List_ADTTyp_108" = unnamed_addr constant %"$TyDescrTy_ADTTyp_76" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_119", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_75"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_75"*], [1 x %"$TyDescrTy_ADTTyp_Specl_75"*]* @"$TyDescr_List_ADTTyp_m_specls_118", i32 0, i32 0) } -@"$TyDescr_List_Cons_Message_Constr_m_args_109" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_66", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80"] -@"$TyDescr_ADT_Cons_110" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_Message_ADTTyp_Constr_111" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_110", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_109", i32 0, i32 0) } -@"$TyDescr_List_Nil_Message_Constr_m_args_112" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_113" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_Message_ADTTyp_Constr_114" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_113", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_112", i32 0, i32 0) } -@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_115" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_77"*] [%"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_111", %"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_114"] -@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_116" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_66"] -@"$TyDescr_List_Message_ADTTyp_Specl_117" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_75" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_116", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_77"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_77"*], [2 x %"$TyDescrTy_ADTTyp_Constr_77"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_115", i32 0, i32 0), %"$TyDescrTy_ADTTyp_76"* @"$TyDescr_List_ADTTyp_108" } -@"$TyDescr_List_ADTTyp_m_specls_118" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_75"*] [%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_List_Message_ADTTyp_Specl_117"] -@"$TyDescr_ADT_List_119" = unnamed_addr constant [4 x i8] c"List" -@"$TyDescr_Bool_ADTTyp_120" = unnamed_addr constant %"$TyDescrTy_ADTTyp_76" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_131", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_75"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_75"*], [1 x %"$TyDescrTy_ADTTyp_Specl_75"*]* @"$TyDescr_Bool_ADTTyp_m_specls_130", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_121" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_122" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_123" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_122", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_121", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_124" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_125" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_126" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_125", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_124", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_127" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_77"*] [%"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Bool_True_ADTTyp_Constr_123", %"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Bool_False_ADTTyp_Constr_126"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_128" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_129" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_75" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_128", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_77"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_77"*], [2 x %"$TyDescrTy_ADTTyp_Constr_77"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_127", i32 0, i32 0), %"$TyDescrTy_ADTTyp_76"* @"$TyDescr_Bool_ADTTyp_120" } -@"$TyDescr_Bool_ADTTyp_m_specls_130" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_75"*] [%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Bool_ADTTyp_Specl_129"] -@"$TyDescr_ADT_Bool_131" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_MapTyp_132" = unnamed_addr constant %"$TyDescr_MapTyp_82" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ* @"$TyDescr_Uint128_56" } -@"$TyDescr_AddrFields_133" = unnamed_addr constant %"$TyDescr_AddrTyp_85" { i32 -1, %"$TyDescr_AddrFieldTyp_84"* null } -@BoolUtils.andb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer -@BoolUtils.orb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer +@"$TyDescr_Int32_Prim_20" = global %"$TyDescrTy_PrimTyp_19" zeroinitializer +@"$TyDescr_Int32_21" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Int32_Prim_20" to i8*) } +@"$TyDescr_Uint32_Prim_22" = global %"$TyDescrTy_PrimTyp_19" { i32 1, i32 0 } +@"$TyDescr_Uint32_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Uint32_Prim_22" to i8*) } +@"$TyDescr_Int64_Prim_24" = global %"$TyDescrTy_PrimTyp_19" { i32 0, i32 1 } +@"$TyDescr_Int64_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Int64_Prim_24" to i8*) } +@"$TyDescr_Uint64_Prim_26" = global %"$TyDescrTy_PrimTyp_19" { i32 1, i32 1 } +@"$TyDescr_Uint64_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Uint64_Prim_26" to i8*) } +@"$TyDescr_Int128_Prim_28" = global %"$TyDescrTy_PrimTyp_19" { i32 0, i32 2 } +@"$TyDescr_Int128_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Int128_Prim_28" to i8*) } +@"$TyDescr_Uint128_Prim_30" = global %"$TyDescrTy_PrimTyp_19" { i32 1, i32 2 } +@"$TyDescr_Uint128_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Uint128_Prim_30" to i8*) } +@"$TyDescr_Int256_Prim_32" = global %"$TyDescrTy_PrimTyp_19" { i32 0, i32 3 } +@"$TyDescr_Int256_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Int256_Prim_32" to i8*) } +@"$TyDescr_Uint256_Prim_34" = global %"$TyDescrTy_PrimTyp_19" { i32 1, i32 3 } +@"$TyDescr_Uint256_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Uint256_Prim_34" to i8*) } +@"$TyDescr_String_Prim_36" = global %"$TyDescrTy_PrimTyp_19" { i32 2, i32 0 } +@"$TyDescr_String_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_String_Prim_36" to i8*) } +@"$TyDescr_Bnum_Prim_38" = global %"$TyDescrTy_PrimTyp_19" { i32 3, i32 0 } +@"$TyDescr_Bnum_39" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Bnum_Prim_38" to i8*) } +@"$TyDescr_Message_Prim_40" = global %"$TyDescrTy_PrimTyp_19" { i32 4, i32 0 } +@"$TyDescr_Message_41" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Message_Prim_40" to i8*) } +@"$TyDescr_Event_Prim_42" = global %"$TyDescrTy_PrimTyp_19" { i32 5, i32 0 } +@"$TyDescr_Event_43" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Event_Prim_42" to i8*) } +@"$TyDescr_Exception_Prim_44" = global %"$TyDescrTy_PrimTyp_19" { i32 6, i32 0 } +@"$TyDescr_Exception_45" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Exception_Prim_44" to i8*) } +@"$TyDescr_Bystr_Prim_46" = global %"$TyDescrTy_PrimTyp_19" { i32 7, i32 0 } +@"$TyDescr_Bystr_47" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Bystr_Prim_46" to i8*) } +@"$TyDescr_Bystr20_Prim_48" = global %"$TyDescrTy_PrimTyp_19" { i32 8, i32 20 } +@"$TyDescr_Bystr20_49" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Bystr20_Prim_48" to i8*) } +@"$TyDescr_ADT_Option_Uint128_53" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Option_Uint128_ADTTyp_Specl_71" to i8*) } +@"$TyDescr_ADT_Option_Map_(ByStr20)_(Uint128)_54" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_80" to i8*) } +@"$TyDescr_ADT_List_Message_55" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_List_Message_ADTTyp_Specl_92" to i8*) } +@"$TyDescr_ADT_Bool_56" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Bool_ADTTyp_Specl_104" to i8*) } +@"$TyDescr_Map_58" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_57"* @"$TyDescr_MapTyp_107" to i8*) } +@"$TyDescr_Addr_61" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_60"* @"$TyDescr_AddrFields_108" to i8*) } +@"$TyDescr_Option_ADTTyp_62" = unnamed_addr constant %"$TyDescrTy_ADTTyp_51" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_82", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_50"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_50"*], [2 x %"$TyDescrTy_ADTTyp_Specl_50"*]* @"$TyDescr_Option_ADTTyp_m_specls_81", i32 0, i32 0) } +@"$TyDescr_Option_Some_Uint128_Constr_m_args_63" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Uint128_31"] +@"$TyDescr_ADT_Some_64" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_Uint128_ADTTyp_Constr_65" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_64", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Uint128_Constr_m_args_63", i32 0, i32 0) } +@"$TyDescr_Option_None_Uint128_Constr_m_args_66" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_67" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_Uint128_ADTTyp_Constr_68" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_67", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Uint128_Constr_m_args_66", i32 0, i32 0) } +@"$TyDescr_Option_Uint128_ADTTyp_Specl_m_constrs_69" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_52"*] [%"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Option_Some_Uint128_ADTTyp_Constr_65", %"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Option_None_Uint128_ADTTyp_Constr_68"] +@"$TyDescr_Option_Uint128_ADTTyp_Specl_m_TArgs_70" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Uint128_31"] +@"$TyDescr_Option_Uint128_ADTTyp_Specl_71" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_50" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Uint128_ADTTyp_Specl_m_TArgs_70", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_52"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_52"*], [2 x %"$TyDescrTy_ADTTyp_Constr_52"*]* @"$TyDescr_Option_Uint128_ADTTyp_Specl_m_constrs_69", i32 0, i32 0), %"$TyDescrTy_ADTTyp_51"* @"$TyDescr_Option_ADTTyp_62" } +@"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_Constr_m_args_72" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_58"] +@"$TyDescr_ADT_Some_73" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_74" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_73", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_Constr_m_args_72", i32 0, i32 0) } +@"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_Constr_m_args_75" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_76" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_77" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_76", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_Constr_m_args_75", i32 0, i32 0) } +@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_constrs_78" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_52"*] [%"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_74", %"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_77"] +@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_TArgs_79" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_58"] +@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_80" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_50" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_TArgs_79", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_52"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_52"*], [2 x %"$TyDescrTy_ADTTyp_Constr_52"*]* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_constrs_78", i32 0, i32 0), %"$TyDescrTy_ADTTyp_51"* @"$TyDescr_Option_ADTTyp_62" } +@"$TyDescr_Option_ADTTyp_m_specls_81" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_50"*] [%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Option_Uint128_ADTTyp_Specl_71", %"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_80"] +@"$TyDescr_ADT_Option_82" = unnamed_addr constant [6 x i8] c"Option" +@"$TyDescr_List_ADTTyp_83" = unnamed_addr constant %"$TyDescrTy_ADTTyp_51" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_94", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_50"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_50"*], [1 x %"$TyDescrTy_ADTTyp_Specl_50"*]* @"$TyDescr_List_ADTTyp_m_specls_93", i32 0, i32 0) } +@"$TyDescr_List_Cons_Message_Constr_m_args_84" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_41", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55"] +@"$TyDescr_ADT_Cons_85" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_Message_ADTTyp_Constr_86" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_85", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_84", i32 0, i32 0) } +@"$TyDescr_List_Nil_Message_Constr_m_args_87" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_88" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_Message_ADTTyp_Constr_89" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_88", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_87", i32 0, i32 0) } +@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_90" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_52"*] [%"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_86", %"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_89"] +@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_91" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_41"] +@"$TyDescr_List_Message_ADTTyp_Specl_92" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_50" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_91", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_52"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_52"*], [2 x %"$TyDescrTy_ADTTyp_Constr_52"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_90", i32 0, i32 0), %"$TyDescrTy_ADTTyp_51"* @"$TyDescr_List_ADTTyp_83" } +@"$TyDescr_List_ADTTyp_m_specls_93" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_50"*] [%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_List_Message_ADTTyp_Specl_92"] +@"$TyDescr_ADT_List_94" = unnamed_addr constant [4 x i8] c"List" +@"$TyDescr_Bool_ADTTyp_95" = unnamed_addr constant %"$TyDescrTy_ADTTyp_51" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_106", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_50"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_50"*], [1 x %"$TyDescrTy_ADTTyp_Specl_50"*]* @"$TyDescr_Bool_ADTTyp_m_specls_105", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_96" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_97" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_98" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_97", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_96", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_99" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_100" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_101" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_100", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_99", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_102" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_52"*] [%"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Bool_True_ADTTyp_Constr_98", %"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Bool_False_ADTTyp_Constr_101"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_103" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_104" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_50" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_103", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_52"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_52"*], [2 x %"$TyDescrTy_ADTTyp_Constr_52"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_102", i32 0, i32 0), %"$TyDescrTy_ADTTyp_51"* @"$TyDescr_Bool_ADTTyp_95" } +@"$TyDescr_Bool_ADTTyp_m_specls_105" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_50"*] [%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Bool_ADTTyp_Specl_104"] +@"$TyDescr_ADT_Bool_106" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_MapTyp_107" = unnamed_addr constant %"$TyDescr_MapTyp_57" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ* @"$TyDescr_Uint128_31" } +@"$TyDescr_AddrFields_108" = unnamed_addr constant %"$TyDescr_AddrTyp_60" { i32 -1, %"$TyDescr_AddrFieldTyp_59"* null } +@BoolUtils.andb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer +@BoolUtils.orb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer @BoolUtils.negb = global { %TName_Bool* (i8*, %TName_Bool*)*, i8* } zeroinitializer @crowdfunding.one_msg = global { %TName_List_Message* (i8*, i8*)*, i8* } zeroinitializer -@crowdfunding.check_update = global { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } zeroinitializer -@crowdfunding.blk_leq = global { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } zeroinitializer +@crowdfunding.check_update = global { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* } zeroinitializer +@crowdfunding.blk_leq = global { %TName_Bool* (i8*, i8*, i8*)*, i8* } zeroinitializer @crowdfunding.accepted_code = global %Int32 zeroinitializer @crowdfunding.missed_deadline_code = global %Int32 zeroinitializer @crowdfunding.already_backed_code = global %Int32 zeroinitializer @@ -154,593 +149,336 @@ target triple = "x86_64-unknown-linux-gnu" @_cparam_owner = global [20 x i8] zeroinitializer @_cparam_max_block = global i8* null @_cparam_goal = global %Uint128 zeroinitializer -@"$backers_556" = unnamed_addr constant [8 x i8] c"backers\00" -@"$funded_568" = unnamed_addr constant [7 x i8] c"funded\00" -@"$read_blockchain_579" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" -@"$backers_616" = unnamed_addr constant [8 x i8] c"backers\00" -@"$stringlit_680" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_685" = unnamed_addr constant [15 x i8] c"DonationFailure" -@"$stringlit_688" = unnamed_addr constant [5 x i8] c"donor" -@"$stringlit_695" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_702" = unnamed_addr constant [4 x i8] c"code" -@"$backers_734" = unnamed_addr constant [8 x i8] c"backers\00" -@"$stringlit_754" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_759" = unnamed_addr constant [15 x i8] c"DonationSuccess" -@"$stringlit_762" = unnamed_addr constant [5 x i8] c"donor" -@"$stringlit_769" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_776" = unnamed_addr constant [4 x i8] c"code" -@"$stringlit_808" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_813" = unnamed_addr constant [15 x i8] c"DonationFailure" -@"$stringlit_816" = unnamed_addr constant [5 x i8] c"donor" -@"$stringlit_823" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_830" = unnamed_addr constant [4 x i8] c"code" -@"$stringlit_900" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_905" = unnamed_addr constant [15 x i8] c"GetFundsFailure" -@"$stringlit_908" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_915" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_922" = unnamed_addr constant [4 x i8] c"code" -@"$read_blockchain_948" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" -@"$_balance_989" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_1080" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1085" = unnamed_addr constant [15 x i8] c"GetFundsFailure" -@"$stringlit_1088" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1095" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1102" = unnamed_addr constant [4 x i8] c"code" -@"$funded_1145" = unnamed_addr constant [7 x i8] c"funded\00" -@"$stringlit_1159" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1164" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_1167" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1175" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1211" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1216" = unnamed_addr constant [15 x i8] c"GetFundsSuccess" -@"$stringlit_1219" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1227" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1235" = unnamed_addr constant [4 x i8] c"code" -@"$read_blockchain_1279" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" -@"$stringlit_1321" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1326" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" -@"$stringlit_1329" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1336" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1343" = unnamed_addr constant [4 x i8] c"code" -@"$backers_1364" = unnamed_addr constant [8 x i8] c"backers\00" -@"$_balance_1380" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$funded_1395" = unnamed_addr constant [7 x i8] c"funded\00" -@"$stringlit_1522" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1527" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" -@"$stringlit_1530" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1537" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1544" = unnamed_addr constant [4 x i8] c"code" -@"$stringlit_1605" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1610" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" -@"$stringlit_1613" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1620" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1627" = unnamed_addr constant [4 x i8] c"code" -@"$backers_1680" = unnamed_addr constant [8 x i8] c"backers\00" -@"$stringlit_1694" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1699" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_1702" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1709" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1745" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1750" = unnamed_addr constant [16 x i8] c"ClaimBackSuccess" -@"$stringlit_1753" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1760" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1768" = unnamed_addr constant [4 x i8] c"code" -@_tydescr_table = constant [21 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80", %_TyDescrTy_Typ* @"$TyDescr_Event_68", %_TyDescrTy_Typ* @"$TyDescr_Int64_50", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(ByStr20)_(Uint128)_79", %_TyDescrTy_Typ* @"$TyDescr_Addr_86", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ* @"$TyDescr_Uint256_60", %_TyDescrTy_Typ* @"$TyDescr_Uint32_48", %_TyDescrTy_Typ* @"$TyDescr_Uint64_52", %_TyDescrTy_Typ* @"$TyDescr_Bnum_64", %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ* @"$TyDescr_Exception_70", %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ* @"$TyDescr_Int256_58", %_TyDescrTy_Typ* @"$TyDescr_Int128_54", %_TyDescrTy_Typ* @"$TyDescr_Map_83", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_78", %_TyDescrTy_Typ* @"$TyDescr_Bystr_72", %_TyDescrTy_Typ* @"$TyDescr_Message_66", %_TyDescrTy_Typ* @"$TyDescr_Int32_46"] +@"$backers_439" = unnamed_addr constant [8 x i8] c"backers\00" +@"$funded_451" = unnamed_addr constant [7 x i8] c"funded\00" +@"$read_blockchain_462" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" +@"$backers_494" = unnamed_addr constant [8 x i8] c"backers\00" +@"$stringlit_549" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_554" = unnamed_addr constant [15 x i8] c"DonationFailure" +@"$stringlit_557" = unnamed_addr constant [5 x i8] c"donor" +@"$stringlit_564" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_571" = unnamed_addr constant [4 x i8] c"code" +@"$backers_603" = unnamed_addr constant [8 x i8] c"backers\00" +@"$stringlit_623" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_628" = unnamed_addr constant [15 x i8] c"DonationSuccess" +@"$stringlit_631" = unnamed_addr constant [5 x i8] c"donor" +@"$stringlit_638" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_645" = unnamed_addr constant [4 x i8] c"code" +@"$stringlit_677" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_682" = unnamed_addr constant [15 x i8] c"DonationFailure" +@"$stringlit_685" = unnamed_addr constant [5 x i8] c"donor" +@"$stringlit_692" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_699" = unnamed_addr constant [4 x i8] c"code" +@"$stringlit_769" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_774" = unnamed_addr constant [15 x i8] c"GetFundsFailure" +@"$stringlit_777" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_784" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_791" = unnamed_addr constant [4 x i8] c"code" +@"$read_blockchain_817" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" +@"$_balance_853" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_939" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_944" = unnamed_addr constant [15 x i8] c"GetFundsFailure" +@"$stringlit_947" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_954" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_961" = unnamed_addr constant [4 x i8] c"code" +@"$funded_1004" = unnamed_addr constant [7 x i8] c"funded\00" +@"$stringlit_1018" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1023" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_1026" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1034" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_1070" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1075" = unnamed_addr constant [15 x i8] c"GetFundsSuccess" +@"$stringlit_1078" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1086" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1094" = unnamed_addr constant [4 x i8] c"code" +@"$read_blockchain_1138" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" +@"$stringlit_1180" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1185" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" +@"$stringlit_1188" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1195" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1202" = unnamed_addr constant [4 x i8] c"code" +@"$backers_1223" = unnamed_addr constant [8 x i8] c"backers\00" +@"$_balance_1239" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$funded_1254" = unnamed_addr constant [7 x i8] c"funded\00" +@"$stringlit_1371" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1376" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" +@"$stringlit_1379" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1386" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1393" = unnamed_addr constant [4 x i8] c"code" +@"$stringlit_1454" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1459" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" +@"$stringlit_1462" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1469" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1476" = unnamed_addr constant [4 x i8] c"code" +@"$backers_1529" = unnamed_addr constant [8 x i8] c"backers\00" +@"$stringlit_1543" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1548" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_1551" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1558" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_1594" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1599" = unnamed_addr constant [16 x i8] c"ClaimBackSuccess" +@"$stringlit_1602" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1609" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1617" = unnamed_addr constant [4 x i8] c"code" +@_tydescr_table = constant [21 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55", %_TyDescrTy_Typ* @"$TyDescr_Event_43", %_TyDescrTy_Typ* @"$TyDescr_Int64_25", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(ByStr20)_(Uint128)_54", %_TyDescrTy_Typ* @"$TyDescr_Addr_61", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ* @"$TyDescr_Uint256_35", %_TyDescrTy_Typ* @"$TyDescr_Uint32_23", %_TyDescrTy_Typ* @"$TyDescr_Uint64_27", %_TyDescrTy_Typ* @"$TyDescr_Bnum_39", %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ* @"$TyDescr_Exception_45", %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ* @"$TyDescr_Int256_33", %_TyDescrTy_Typ* @"$TyDescr_Int128_29", %_TyDescrTy_Typ* @"$TyDescr_Map_58", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_53", %_TyDescrTy_Typ* @"$TyDescr_Bystr_47", %_TyDescrTy_Typ* @"$TyDescr_Message_41", %_TyDescrTy_Typ* @"$TyDescr_Int32_21"] @_tydescr_table_length = constant i32 21 -@"$pname__scilla_version_1806" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_1807" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_1808" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_owner_1809" = unnamed_addr constant [5 x i8] c"owner" -@"$pname_max_block_1810" = unnamed_addr constant [9 x i8] c"max_block" -@"$pname_goal_1811" = unnamed_addr constant [4 x i8] c"goal" -@_contract_parameters = constant [6 x %"$ParamDescr_1804"] [%"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_1806", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_48" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_1807", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_1808", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_64" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$pname_owner_1809", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$pname_max_block_1810", i32 0, i32 0), i32 9 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_64" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_goal_1811", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_56" }] +@"$pname__scilla_version_1655" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_1656" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_1657" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_owner_1658" = unnamed_addr constant [5 x i8] c"owner" +@"$pname_max_block_1659" = unnamed_addr constant [9 x i8] c"max_block" +@"$pname_goal_1660" = unnamed_addr constant [4 x i8] c"goal" +@_contract_parameters = constant [6 x %"$ParamDescr_1653"] [%"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_1655", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_23" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_1656", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_1657", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_39" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$pname_owner_1658", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$pname_max_block_1659", i32 0, i32 0), i32 9 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_39" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_goal_1660", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_31" }] @_contract_parameters_length = constant i32 6 -@"$tpname__amount_1812" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1813" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1814" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Donate_1815" = unnamed_addr constant [3 x %"$ParamDescr_1804"] [%"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1812", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_56" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1813", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1814", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }] -@"$tname_Donate_1816" = unnamed_addr constant [6 x i8] c"Donate" -@"$tpname__amount_1817" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1818" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1819" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_GetFunds_1820" = unnamed_addr constant [3 x %"$ParamDescr_1804"] [%"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1817", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_56" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1818", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1819", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }] -@"$tname_GetFunds_1821" = unnamed_addr constant [8 x i8] c"GetFunds" -@"$tpname__amount_1822" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1823" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1824" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_ClaimBack_1825" = unnamed_addr constant [3 x %"$ParamDescr_1804"] [%"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1822", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_56" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1823", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1824", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }] -@"$tname_ClaimBack_1826" = unnamed_addr constant [9 x i8] c"ClaimBack" -@_transition_parameters = constant [3 x %"$TransDescr_1805"] [%"$TransDescr_1805" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_Donate_1816", i32 0, i32 0), i32 6 }, i32 3, %"$ParamDescr_1804"* getelementptr inbounds ([3 x %"$ParamDescr_1804"], [3 x %"$ParamDescr_1804"]* @"$tparams_Donate_1815", i32 0, i32 0) }, %"$TransDescr_1805" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_GetFunds_1821", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_1804"* getelementptr inbounds ([3 x %"$ParamDescr_1804"], [3 x %"$ParamDescr_1804"]* @"$tparams_GetFunds_1820", i32 0, i32 0) }, %"$TransDescr_1805" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_ClaimBack_1826", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_1804"* getelementptr inbounds ([3 x %"$ParamDescr_1804"], [3 x %"$ParamDescr_1804"]* @"$tparams_ClaimBack_1825", i32 0, i32 0) }] +@"$tpname__amount_1661" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1662" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1663" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Donate_1664" = unnamed_addr constant [3 x %"$ParamDescr_1653"] [%"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1661", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_31" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1662", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1663", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }] +@"$tname_Donate_1665" = unnamed_addr constant [6 x i8] c"Donate" +@"$tpname__amount_1666" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1667" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1668" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_GetFunds_1669" = unnamed_addr constant [3 x %"$ParamDescr_1653"] [%"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1666", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_31" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1667", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1668", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }] +@"$tname_GetFunds_1670" = unnamed_addr constant [8 x i8] c"GetFunds" +@"$tpname__amount_1671" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1672" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1673" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_ClaimBack_1674" = unnamed_addr constant [3 x %"$ParamDescr_1653"] [%"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1671", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_31" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1672", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1673", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }] +@"$tname_ClaimBack_1675" = unnamed_addr constant [9 x i8] c"ClaimBack" +@_transition_parameters = constant [3 x %"$TransDescr_1654"] [%"$TransDescr_1654" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_Donate_1665", i32 0, i32 0), i32 6 }, i32 3, %"$ParamDescr_1653"* getelementptr inbounds ([3 x %"$ParamDescr_1653"], [3 x %"$ParamDescr_1653"]* @"$tparams_Donate_1664", i32 0, i32 0) }, %"$TransDescr_1654" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_GetFunds_1670", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_1653"* getelementptr inbounds ([3 x %"$ParamDescr_1653"], [3 x %"$ParamDescr_1653"]* @"$tparams_GetFunds_1669", i32 0, i32 0) }, %"$TransDescr_1654" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_ClaimBack_1675", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_1653"* getelementptr inbounds ([3 x %"$ParamDescr_1653"], [3 x %"$ParamDescr_1653"]* @"$tparams_ClaimBack_1674", i32 0, i32 0) }] @_transition_parameters_length = constant i32 3 -define internal %TName_Bool* @"$fundef_32"(%"$$fundef_32_env_134"* %0, i8* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_11"(%"$$fundef_11_env_109"* %0, i8* %1, i8* %2) !dbg !4 { entry: - %"$$fundef_32_env_BoolUtils.orb_402" = getelementptr inbounds %"$$fundef_32_env_134", %"$$fundef_32_env_134"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_403" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_32_env_BoolUtils.orb_402", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_403", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$$fundef_32_env_blk1_404" = getelementptr inbounds %"$$fundef_32_env_134", %"$$fundef_32_env_134"* %0, i32 0, i32 1 - %"$blk1_envload_405" = load i8*, i8** %"$$fundef_32_env_blk1_404", align 8 - %blk1 = alloca i8*, align 8 - store i8* %"$blk1_envload_405", i8** %blk1, align 8 - %"$retval_33" = alloca %TName_Bool*, align 8 - %"$gasrem_406" = load i64, i64* @_gasrem, align 8 - %"$gascmp_407" = icmp ugt i64 1, %"$gasrem_406" - br i1 %"$gascmp_407", label %"$out_of_gas_408", label %"$have_gas_409" - -"$out_of_gas_408": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_409" - -"$have_gas_409": ; preds = %"$out_of_gas_408", %entry - %"$consume_410" = sub i64 %"$gasrem_406", 1 - store i64 %"$consume_410", i64* @_gasrem, align 8 + %"$$fundef_11_env_BoolUtils.orb_294" = getelementptr inbounds %"$$fundef_11_env_109", %"$$fundef_11_env_109"* %0, i32 0, i32 0 + %"$BoolUtils.orb_envload_295" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %"$$fundef_11_env_BoolUtils.orb_294", align 8 + %BoolUtils.orb = alloca { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_295", { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 + %"$retval_12" = alloca %TName_Bool*, align 8 + %"$gasrem_296" = load i64, i64* @_gasrem, align 8 + %"$gascmp_297" = icmp ugt i64 1, %"$gasrem_296" + br i1 %"$gascmp_297", label %"$out_of_gas_298", label %"$have_gas_299" + +"$out_of_gas_298": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_299" + +"$have_gas_299": ; preds = %"$out_of_gas_298", %entry + %"$consume_300" = sub i64 %"$gasrem_296", 1 + store i64 %"$consume_300", i64* @_gasrem, align 8 %bc1 = alloca %TName_Bool*, align 8 - %"$gasrem_411" = load i64, i64* @_gasrem, align 8 - %"$gascmp_412" = icmp ugt i64 32, %"$gasrem_411" - br i1 %"$gascmp_412", label %"$out_of_gas_413", label %"$have_gas_414" + %"$gasrem_301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_302" = icmp ugt i64 32, %"$gasrem_301" + br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" -"$out_of_gas_413": ; preds = %"$have_gas_409" +"$out_of_gas_303": ; preds = %"$have_gas_299" call void @_out_of_gas() - br label %"$have_gas_414" + br label %"$have_gas_304" -"$have_gas_414": ; preds = %"$out_of_gas_413", %"$have_gas_409" - %"$consume_415" = sub i64 %"$gasrem_411", 32 - store i64 %"$consume_415", i64* @_gasrem, align 8 - %"$execptr_load_416" = load i8*, i8** @_execptr, align 8 - %"$blk1_417" = load i8*, i8** %blk1, align 8 - %"$blt_call_418" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_416", i8* %"$blk1_417", i8* %1), !dbg !8 - store %TName_Bool* %"$blt_call_418", %TName_Bool** %bc1, align 8, !dbg !8 - %"$gasrem_420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_421" = icmp ugt i64 1, %"$gasrem_420" - br i1 %"$gascmp_421", label %"$out_of_gas_422", label %"$have_gas_423" +"$have_gas_304": ; preds = %"$out_of_gas_303", %"$have_gas_299" + %"$consume_305" = sub i64 %"$gasrem_301", 32 + store i64 %"$consume_305", i64* @_gasrem, align 8 + %"$execptr_load_306" = load i8*, i8** @_execptr, align 8 + %"$blt_call_307" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_306", i8* %1, i8* %2), !dbg !8 + store %TName_Bool* %"$blt_call_307", %TName_Bool** %bc1, align 8, !dbg !8 + %"$gasrem_309" = load i64, i64* @_gasrem, align 8 + %"$gascmp_310" = icmp ugt i64 1, %"$gasrem_309" + br i1 %"$gascmp_310", label %"$out_of_gas_311", label %"$have_gas_312" -"$out_of_gas_422": ; preds = %"$have_gas_414" +"$out_of_gas_311": ; preds = %"$have_gas_304" call void @_out_of_gas() - br label %"$have_gas_423" + br label %"$have_gas_312" -"$have_gas_423": ; preds = %"$out_of_gas_422", %"$have_gas_414" - %"$consume_424" = sub i64 %"$gasrem_420", 1 - store i64 %"$consume_424", i64* @_gasrem, align 8 +"$have_gas_312": ; preds = %"$out_of_gas_311", %"$have_gas_304" + %"$consume_313" = sub i64 %"$gasrem_309", 1 + store i64 %"$consume_313", i64* @_gasrem, align 8 %bc2 = alloca %TName_Bool*, align 8 - %"$gasrem_425" = load i64, i64* @_gasrem, align 8 - %"$gascmp_426" = icmp ugt i64 32, %"$gasrem_425" - br i1 %"$gascmp_426", label %"$out_of_gas_427", label %"$have_gas_428" - -"$out_of_gas_427": ; preds = %"$have_gas_423" - call void @_out_of_gas() - br label %"$have_gas_428" - -"$have_gas_428": ; preds = %"$out_of_gas_427", %"$have_gas_423" - %"$consume_429" = sub i64 %"$gasrem_425", 32 - store i64 %"$consume_429", i64* @_gasrem, align 8 - %"$execptr_load_430" = load i8*, i8** @_execptr, align 8 - %"$blk1_431" = load i8*, i8** %blk1, align 8 - %"$eq_call_432" = call %TName_Bool* @_eq_BNum(i8* %"$execptr_load_430", i8* %"$blk1_431", i8* %1), !dbg !9 - store %TName_Bool* %"$eq_call_432", %TName_Bool** %bc2, align 8, !dbg !9 - %"$gasrem_434" = load i64, i64* @_gasrem, align 8 - %"$gascmp_435" = icmp ugt i64 1, %"$gasrem_434" - br i1 %"$gascmp_435", label %"$out_of_gas_436", label %"$have_gas_437" - -"$out_of_gas_436": ; preds = %"$have_gas_428" - call void @_out_of_gas() - br label %"$have_gas_437" - -"$have_gas_437": ; preds = %"$out_of_gas_436", %"$have_gas_428" - %"$consume_438" = sub i64 %"$gasrem_434", 1 - store i64 %"$consume_438", i64* @_gasrem, align 8 - %"$BoolUtils.orb_0" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_439" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$BoolUtils.orb_fptr_440" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_439", 0 - %"$BoolUtils.orb_envptr_441" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_439", 1 - %"$bc1_442" = load %TName_Bool*, %TName_Bool** %bc1, align 8 - %"$BoolUtils.orb_call_443" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_440"(i8* %"$BoolUtils.orb_envptr_441", %TName_Bool* %"$bc1_442"), !dbg !10 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_443", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_0", align 8, !dbg !10 - %"$BoolUtils.orb_1" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_0_444" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_0", align 8 - %"$$BoolUtils.orb_0_fptr_445" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_0_444", 0 - %"$$BoolUtils.orb_0_envptr_446" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_0_444", 1 - %"$bc2_447" = load %TName_Bool*, %TName_Bool** %bc2, align 8 - %"$$BoolUtils.orb_0_call_448" = call %TName_Bool* %"$$BoolUtils.orb_0_fptr_445"(i8* %"$$BoolUtils.orb_0_envptr_446", %TName_Bool* %"$bc2_447"), !dbg !10 - store %TName_Bool* %"$$BoolUtils.orb_0_call_448", %TName_Bool** %"$BoolUtils.orb_1", align 8, !dbg !10 - %"$$BoolUtils.orb_1_449" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_1", align 8 - store %TName_Bool* %"$$BoolUtils.orb_1_449", %TName_Bool** %"$retval_33", align 8, !dbg !10 - %"$$retval_33_450" = load %TName_Bool*, %TName_Bool** %"$retval_33", align 8 - ret %TName_Bool* %"$$retval_33_450" + %"$gasrem_314" = load i64, i64* @_gasrem, align 8 + %"$gascmp_315" = icmp ugt i64 32, %"$gasrem_314" + br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" + +"$out_of_gas_316": ; preds = %"$have_gas_312" + call void @_out_of_gas() + br label %"$have_gas_317" + +"$have_gas_317": ; preds = %"$out_of_gas_316", %"$have_gas_312" + %"$consume_318" = sub i64 %"$gasrem_314", 32 + store i64 %"$consume_318", i64* @_gasrem, align 8 + %"$execptr_load_319" = load i8*, i8** @_execptr, align 8 + %"$eq_call_320" = call %TName_Bool* @_eq_BNum(i8* %"$execptr_load_319", i8* %1, i8* %2), !dbg !9 + store %TName_Bool* %"$eq_call_320", %TName_Bool** %bc2, align 8, !dbg !9 + %"$gasrem_322" = load i64, i64* @_gasrem, align 8 + %"$gascmp_323" = icmp ugt i64 1, %"$gasrem_322" + br i1 %"$gascmp_323", label %"$out_of_gas_324", label %"$have_gas_325" + +"$out_of_gas_324": ; preds = %"$have_gas_317" + call void @_out_of_gas() + br label %"$have_gas_325" + +"$have_gas_325": ; preds = %"$out_of_gas_324", %"$have_gas_317" + %"$consume_326" = sub i64 %"$gasrem_322", 1 + store i64 %"$consume_326", i64* @_gasrem, align 8 + %"$BoolUtils.orb_327" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 + %"$BoolUtils.orb_fptr_328" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_327", 0 + %"$BoolUtils.orb_envptr_329" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_327", 1 + %"$bc1_330" = load %TName_Bool*, %TName_Bool** %bc1, align 8 + %"$bc2_331" = load %TName_Bool*, %TName_Bool** %bc2, align 8 + %"$BoolUtils.orb_call_332" = call %TName_Bool* %"$BoolUtils.orb_fptr_328"(i8* %"$BoolUtils.orb_envptr_329", %TName_Bool* %"$bc1_330", %TName_Bool* %"$bc2_331"), !dbg !10 + store %TName_Bool* %"$BoolUtils.orb_call_332", %TName_Bool** %"$retval_12", align 8, !dbg !10 + %"$$retval_12_333" = load %TName_Bool*, %TName_Bool** %"$retval_12", align 8 + ret %TName_Bool* %"$$retval_12_333" } -define internal { %TName_Bool* (i8*, i8*)*, i8* } @"$fundef_30"(%"$$fundef_30_env_135"* %0, i8* %1) !dbg !11 { +define internal %"TName_Option_Map_(ByStr20)_(Uint128)"* @"$fundef_13"(%"$$fundef_13_env_110"* %0, %Map_ByStr20_Uint128* %1, [20 x i8]* %2, %Uint128 %3) !dbg !11 { entry: - %"$$fundef_30_env_BoolUtils.orb_387" = getelementptr inbounds %"$$fundef_30_env_135", %"$$fundef_30_env_135"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_388" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_30_env_BoolUtils.orb_387", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_388", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$retval_31" = alloca { %TName_Bool* (i8*, i8*)*, i8* }, align 8 - %"$gasrem_389" = load i64, i64* @_gasrem, align 8 - %"$gascmp_390" = icmp ugt i64 1, %"$gasrem_389" - br i1 %"$gascmp_390", label %"$out_of_gas_391", label %"$have_gas_392" - -"$out_of_gas_391": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_392" - -"$have_gas_392": ; preds = %"$out_of_gas_391", %entry - %"$consume_393" = sub i64 %"$gasrem_389", 1 - store i64 %"$consume_393", i64* @_gasrem, align 8 - %"$$fundef_32_envp_394_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_32_envp_394_salloc" = call i8* @_salloc(i8* %"$$fundef_32_envp_394_load", i64 24) - %"$$fundef_32_envp_394" = bitcast i8* %"$$fundef_32_envp_394_salloc" to %"$$fundef_32_env_134"* - %"$$fundef_32_env_voidp_396" = bitcast %"$$fundef_32_env_134"* %"$$fundef_32_envp_394" to i8* - %"$$fundef_32_cloval_397" = insertvalue { %TName_Bool* (i8*, i8*)*, i8* } { %TName_Bool* (i8*, i8*)* bitcast (%TName_Bool* (%"$$fundef_32_env_134"*, i8*)* @"$fundef_32" to %TName_Bool* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_32_env_voidp_396", 1 - %"$$fundef_32_env_BoolUtils.orb_398" = getelementptr inbounds %"$$fundef_32_env_134", %"$$fundef_32_env_134"* %"$$fundef_32_envp_394", i32 0, i32 0 - %"$BoolUtils.orb_399" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_399", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_32_env_BoolUtils.orb_398", align 8 - %"$$fundef_32_env_blk1_400" = getelementptr inbounds %"$$fundef_32_env_134", %"$$fundef_32_env_134"* %"$$fundef_32_envp_394", i32 0, i32 1 - store i8* %1, i8** %"$$fundef_32_env_blk1_400", align 8 - store { %TName_Bool* (i8*, i8*)*, i8* } %"$$fundef_32_cloval_397", { %TName_Bool* (i8*, i8*)*, i8* }* %"$retval_31", align 8, !dbg !12 - %"$$retval_31_401" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$retval_31", align 8 - ret { %TName_Bool* (i8*, i8*)*, i8* } %"$$retval_31_401" -} - -define internal %"TName_Option_Map_(ByStr20)_(Uint128)"* @"$fundef_38"(%"$$fundef_38_env_136"* %0, %Uint128 %1) !dbg !13 { -entry: - %"$$fundef_38_env_bs_308" = getelementptr inbounds %"$$fundef_38_env_136", %"$$fundef_38_env_136"* %0, i32 0, i32 0 - %"$bs_envload_309" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$$fundef_38_env_bs_308", align 8 - %bs = alloca %Map_ByStr20_Uint128*, align 8 - store %Map_ByStr20_Uint128* %"$bs_envload_309", %Map_ByStr20_Uint128** %bs, align 8 - %"$$fundef_38_env_sender_310" = getelementptr inbounds %"$$fundef_38_env_136", %"$$fundef_38_env_136"* %0, i32 0, i32 1 - %"$sender_envload_311" = load [20 x i8], [20 x i8]* %"$$fundef_38_env_sender_310", align 1 - %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_311", [20 x i8]* %sender, align 1 - %"$retval_39" = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, align 8 - %"$gasrem_312" = load i64, i64* @_gasrem, align 8 - %"$gascmp_313" = icmp ugt i64 1, %"$gasrem_312" - br i1 %"$gascmp_313", label %"$out_of_gas_314", label %"$have_gas_315" - -"$out_of_gas_314": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_315" - -"$have_gas_315": ; preds = %"$out_of_gas_314", %entry - %"$consume_316" = sub i64 %"$gasrem_312", 1 - store i64 %"$consume_316", i64* @_gasrem, align 8 - %c = alloca %TName_Bool*, align 8 - %"$gasrem_317" = load i64, i64* @_gasrem, align 8 - %"$gascmp_318" = icmp ugt i64 1, %"$gasrem_317" - br i1 %"$gascmp_318", label %"$out_of_gas_319", label %"$have_gas_320" - -"$out_of_gas_319": ; preds = %"$have_gas_315" - call void @_out_of_gas() - br label %"$have_gas_320" - -"$have_gas_320": ; preds = %"$out_of_gas_319", %"$have_gas_315" - %"$consume_321" = sub i64 %"$gasrem_317", 1 - store i64 %"$consume_321", i64* @_gasrem, align 8 - %"$execptr_load_322" = load i8*, i8** @_execptr, align 8 - %"$bs_323" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_323_324" = bitcast %Map_ByStr20_Uint128* %"$bs_323" to i8* - %"$contains_sender_325" = alloca [20 x i8], align 1 - %"$sender_326" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_326", [20 x i8]* %"$contains_sender_325", align 1 - %"$$contains_sender_325_327" = bitcast [20 x i8]* %"$contains_sender_325" to i8* - %"$contains_call_328" = call %TName_Bool* @_contains(i8* %"$execptr_load_322", %_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_323_324", i8* %"$$contains_sender_325_327"), !dbg !14 - store %TName_Bool* %"$contains_call_328", %TName_Bool** %c, align 8, !dbg !14 - %"$gasrem_330" = load i64, i64* @_gasrem, align 8 - %"$gascmp_331" = icmp ugt i64 2, %"$gasrem_330" - br i1 %"$gascmp_331", label %"$out_of_gas_332", label %"$have_gas_333" - -"$out_of_gas_332": ; preds = %"$have_gas_320" - call void @_out_of_gas() - br label %"$have_gas_333" - -"$have_gas_333": ; preds = %"$out_of_gas_332", %"$have_gas_320" - %"$consume_334" = sub i64 %"$gasrem_330", 2 - store i64 %"$consume_334", i64* @_gasrem, align 8 - %"$c_336" = load %TName_Bool*, %TName_Bool** %c, align 8 - %"$c_tag_337" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c_336", i32 0, i32 0 - %"$c_tag_338" = load i8, i8* %"$c_tag_337", align 1 - switch i8 %"$c_tag_338", label %"$empty_default_339" [ - i8 1, label %"$False_340" - i8 0, label %"$True_376" - ], !dbg !15 - -"$False_340": ; preds = %"$have_gas_333" - %"$c_341" = bitcast %TName_Bool* %"$c_336" to %CName_False* - %"$gasrem_342" = load i64, i64* @_gasrem, align 8 - %"$gascmp_343" = icmp ugt i64 1, %"$gasrem_342" - br i1 %"$gascmp_343", label %"$out_of_gas_344", label %"$have_gas_345" + %sender = load [20 x i8], [20 x i8]* %2, align 1 + %"$retval_14" = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, align 8 + %"$gasrem_224" = load i64, i64* @_gasrem, align 8 + %"$gascmp_225" = icmp ugt i64 1, %"$gasrem_224" + br i1 %"$gascmp_225", label %"$out_of_gas_226", label %"$have_gas_227" -"$out_of_gas_344": ; preds = %"$False_340" +"$out_of_gas_226": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_345" + br label %"$have_gas_227" -"$have_gas_345": ; preds = %"$out_of_gas_344", %"$False_340" - %"$consume_346" = sub i64 %"$gasrem_342", 1 - store i64 %"$consume_346", i64* @_gasrem, align 8 +"$have_gas_227": ; preds = %"$out_of_gas_226", %entry + %"$consume_228" = sub i64 %"$gasrem_224", 1 + store i64 %"$consume_228", i64* @_gasrem, align 8 + %c = alloca %TName_Bool*, align 8 + %"$gasrem_229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_230" = icmp ugt i64 1, %"$gasrem_229" + br i1 %"$gascmp_230", label %"$out_of_gas_231", label %"$have_gas_232" + +"$out_of_gas_231": ; preds = %"$have_gas_227" + call void @_out_of_gas() + br label %"$have_gas_232" + +"$have_gas_232": ; preds = %"$out_of_gas_231", %"$have_gas_227" + %"$consume_233" = sub i64 %"$gasrem_229", 1 + store i64 %"$consume_233", i64* @_gasrem, align 8 + %"$execptr_load_234" = load i8*, i8** @_execptr, align 8 + %"$_235" = bitcast %Map_ByStr20_Uint128* %1 to i8* + %"$contains_sender_236" = alloca [20 x i8], align 1 + store [20 x i8] %sender, [20 x i8]* %"$contains_sender_236", align 1 + %"$$contains_sender_236_237" = bitcast [20 x i8]* %"$contains_sender_236" to i8* + %"$contains_call_238" = call %TName_Bool* @_contains(i8* %"$execptr_load_234", %_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$_235", i8* %"$$contains_sender_236_237"), !dbg !12 + store %TName_Bool* %"$contains_call_238", %TName_Bool** %c, align 8, !dbg !12 + %"$gasrem_240" = load i64, i64* @_gasrem, align 8 + %"$gascmp_241" = icmp ugt i64 2, %"$gasrem_240" + br i1 %"$gascmp_241", label %"$out_of_gas_242", label %"$have_gas_243" + +"$out_of_gas_242": ; preds = %"$have_gas_232" + call void @_out_of_gas() + br label %"$have_gas_243" + +"$have_gas_243": ; preds = %"$out_of_gas_242", %"$have_gas_232" + %"$consume_244" = sub i64 %"$gasrem_240", 2 + store i64 %"$consume_244", i64* @_gasrem, align 8 + %"$c_246" = load %TName_Bool*, %TName_Bool** %c, align 8 + %"$c_tag_247" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c_246", i32 0, i32 0 + %"$c_tag_248" = load i8, i8* %"$c_tag_247", align 1 + switch i8 %"$c_tag_248", label %"$empty_default_249" [ + i8 1, label %"$False_250" + i8 0, label %"$True_283" + ], !dbg !13 + +"$False_250": ; preds = %"$have_gas_243" + %"$c_251" = bitcast %TName_Bool* %"$c_246" to %CName_False* + %"$gasrem_252" = load i64, i64* @_gasrem, align 8 + %"$gascmp_253" = icmp ugt i64 1, %"$gasrem_252" + br i1 %"$gascmp_253", label %"$out_of_gas_254", label %"$have_gas_255" + +"$out_of_gas_254": ; preds = %"$False_250" + call void @_out_of_gas() + br label %"$have_gas_255" + +"$have_gas_255": ; preds = %"$out_of_gas_254", %"$False_250" + %"$consume_256" = sub i64 %"$gasrem_252", 1 + store i64 %"$consume_256", i64* @_gasrem, align 8 %bs1 = alloca %Map_ByStr20_Uint128*, align 8 - %"$bs_347" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_347_348" = bitcast %Map_ByStr20_Uint128* %"$bs_347" to i8* - %"$_lengthof_call_349" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_347_348") - %"$gasadd_350" = add i64 1, %"$_lengthof_call_349" - %"$gasrem_351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_352" = icmp ugt i64 %"$gasadd_350", %"$gasrem_351" - br i1 %"$gascmp_352", label %"$out_of_gas_353", label %"$have_gas_354" - -"$out_of_gas_353": ; preds = %"$have_gas_345" - call void @_out_of_gas() - br label %"$have_gas_354" - -"$have_gas_354": ; preds = %"$out_of_gas_353", %"$have_gas_345" - %"$consume_355" = sub i64 %"$gasrem_351", %"$gasadd_350" - store i64 %"$consume_355", i64* @_gasrem, align 8 - %"$execptr_load_356" = load i8*, i8** @_execptr, align 8 - %"$bs_357" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_357_358" = bitcast %Map_ByStr20_Uint128* %"$bs_357" to i8* - %"$put_sender_359" = alloca [20 x i8], align 1 - %"$sender_360" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_360", [20 x i8]* %"$put_sender_359", align 1 - %"$$put_sender_359_361" = bitcast [20 x i8]* %"$put_sender_359" to i8* - %"$put_amount_362" = alloca %Uint128, align 8 - store %Uint128 %1, %Uint128* %"$put_amount_362", align 8 - %"$$put_amount_362_363" = bitcast %Uint128* %"$put_amount_362" to i8* - %"$put_call_364" = call i8* @_put(i8* %"$execptr_load_356", %_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_357_358", i8* %"$$put_sender_359_361", i8* %"$$put_amount_362_363"), !dbg !16 - %"$put_365" = bitcast i8* %"$put_call_364" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$put_365", %Map_ByStr20_Uint128** %bs1, align 8, !dbg !16 - %"$gasrem_366" = load i64, i64* @_gasrem, align 8 - %"$gascmp_367" = icmp ugt i64 1, %"$gasrem_366" - br i1 %"$gascmp_367", label %"$out_of_gas_368", label %"$have_gas_369" - -"$out_of_gas_368": ; preds = %"$have_gas_354" - call void @_out_of_gas() - br label %"$have_gas_369" - -"$have_gas_369": ; preds = %"$out_of_gas_368", %"$have_gas_354" - %"$consume_370" = sub i64 %"$gasrem_366", 1 - store i64 %"$consume_370", i64* @_gasrem, align 8 - %"$bs1_371" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$adtval_372_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_372_salloc" = call i8* @_salloc(i8* %"$adtval_372_load", i64 9) - %"$adtval_372" = bitcast i8* %"$adtval_372_salloc" to %"CName_Some_Map_(ByStr20)_(Uint128)"* - %"$adtgep_373" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_372", i32 0, i32 0 - store i8 0, i8* %"$adtgep_373", align 1 - %"$adtgep_374" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_372", i32 0, i32 1 - store %Map_ByStr20_Uint128* %"$bs1_371", %Map_ByStr20_Uint128** %"$adtgep_374", align 8 - %"$adtptr_375" = bitcast %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_372" to %"TName_Option_Map_(ByStr20)_(Uint128)"* - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_375", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_39", align 8, !dbg !19 - br label %"$matchsucc_335" - -"$True_376": ; preds = %"$have_gas_333" - %"$c_377" = bitcast %TName_Bool* %"$c_336" to %CName_True* - %"$gasrem_378" = load i64, i64* @_gasrem, align 8 - %"$gascmp_379" = icmp ugt i64 1, %"$gasrem_378" - br i1 %"$gascmp_379", label %"$out_of_gas_380", label %"$have_gas_381" - -"$out_of_gas_380": ; preds = %"$True_376" - call void @_out_of_gas() - br label %"$have_gas_381" - -"$have_gas_381": ; preds = %"$out_of_gas_380", %"$True_376" - %"$consume_382" = sub i64 %"$gasrem_378", 1 - store i64 %"$consume_382", i64* @_gasrem, align 8 - %"$adtval_383_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_383_salloc" = call i8* @_salloc(i8* %"$adtval_383_load", i64 1) - %"$adtval_383" = bitcast i8* %"$adtval_383_salloc" to %"CName_None_Map_(ByStr20)_(Uint128)"* - %"$adtgep_384" = getelementptr inbounds %"CName_None_Map_(ByStr20)_(Uint128)", %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_383", i32 0, i32 0 - store i8 1, i8* %"$adtgep_384", align 1 - %"$adtptr_385" = bitcast %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_383" to %"TName_Option_Map_(ByStr20)_(Uint128)"* - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_385", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_39", align 8, !dbg !20 - br label %"$matchsucc_335" - -"$empty_default_339": ; preds = %"$have_gas_333" - br label %"$matchsucc_335" - -"$matchsucc_335": ; preds = %"$have_gas_381", %"$have_gas_369", %"$empty_default_339" - %"$$retval_39_386" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_39", align 8 - ret %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$retval_39_386" -} - -define internal { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } @"$fundef_36"(%"$$fundef_36_env_137"* %0, [20 x i8]* %1) !dbg !22 { -entry: - %sender = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_36_env_bs_293" = getelementptr inbounds %"$$fundef_36_env_137", %"$$fundef_36_env_137"* %0, i32 0, i32 0 - %"$bs_envload_294" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$$fundef_36_env_bs_293", align 8 - %bs = alloca %Map_ByStr20_Uint128*, align 8 - store %Map_ByStr20_Uint128* %"$bs_envload_294", %Map_ByStr20_Uint128** %bs, align 8 - %"$retval_37" = alloca { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, align 8 - %"$gasrem_295" = load i64, i64* @_gasrem, align 8 - %"$gascmp_296" = icmp ugt i64 1, %"$gasrem_295" - br i1 %"$gascmp_296", label %"$out_of_gas_297", label %"$have_gas_298" - -"$out_of_gas_297": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_298" - -"$have_gas_298": ; preds = %"$out_of_gas_297", %entry - %"$consume_299" = sub i64 %"$gasrem_295", 1 - store i64 %"$consume_299", i64* @_gasrem, align 8 - %"$$fundef_38_envp_300_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_38_envp_300_salloc" = call i8* @_salloc(i8* %"$$fundef_38_envp_300_load", i64 32) - %"$$fundef_38_envp_300" = bitcast i8* %"$$fundef_38_envp_300_salloc" to %"$$fundef_38_env_136"* - %"$$fundef_38_env_voidp_302" = bitcast %"$$fundef_38_env_136"* %"$$fundef_38_envp_300" to i8* - %"$$fundef_38_cloval_303" = insertvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)* bitcast (%"TName_Option_Map_(ByStr20)_(Uint128)"* (%"$$fundef_38_env_136"*, %Uint128)* @"$fundef_38" to %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*), i8* undef }, i8* %"$$fundef_38_env_voidp_302", 1 - %"$$fundef_38_env_bs_304" = getelementptr inbounds %"$$fundef_38_env_136", %"$$fundef_38_env_136"* %"$$fundef_38_envp_300", i32 0, i32 0 - %"$bs_305" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - store %Map_ByStr20_Uint128* %"$bs_305", %Map_ByStr20_Uint128** %"$$fundef_38_env_bs_304", align 8 - %"$$fundef_38_env_sender_306" = getelementptr inbounds %"$$fundef_38_env_136", %"$$fundef_38_env_136"* %"$$fundef_38_envp_300", i32 0, i32 1 - store [20 x i8] %sender, [20 x i8]* %"$$fundef_38_env_sender_306", align 1 - store { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$fundef_38_cloval_303", { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$retval_37", align 8, !dbg !23 - %"$$retval_37_307" = load { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$retval_37", align 8 - ret { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$retval_37_307" + %"$_257" = bitcast %Map_ByStr20_Uint128* %1 to i8* + %"$_lengthof_call_258" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$_257") + %"$gasadd_259" = add i64 1, %"$_lengthof_call_258" + %"$gasrem_260" = load i64, i64* @_gasrem, align 8 + %"$gascmp_261" = icmp ugt i64 %"$gasadd_259", %"$gasrem_260" + br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" + +"$out_of_gas_262": ; preds = %"$have_gas_255" + call void @_out_of_gas() + br label %"$have_gas_263" + +"$have_gas_263": ; preds = %"$out_of_gas_262", %"$have_gas_255" + %"$consume_264" = sub i64 %"$gasrem_260", %"$gasadd_259" + store i64 %"$consume_264", i64* @_gasrem, align 8 + %"$execptr_load_265" = load i8*, i8** @_execptr, align 8 + %"$_266" = bitcast %Map_ByStr20_Uint128* %1 to i8* + %"$put_sender_267" = alloca [20 x i8], align 1 + store [20 x i8] %sender, [20 x i8]* %"$put_sender_267", align 1 + %"$$put_sender_267_268" = bitcast [20 x i8]* %"$put_sender_267" to i8* + %"$put_amount_269" = alloca %Uint128, align 8 + store %Uint128 %3, %Uint128* %"$put_amount_269", align 8 + %"$$put_amount_269_270" = bitcast %Uint128* %"$put_amount_269" to i8* + %"$put_call_271" = call i8* @_put(i8* %"$execptr_load_265", %_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$_266", i8* %"$$put_sender_267_268", i8* %"$$put_amount_269_270"), !dbg !14 + %"$put_272" = bitcast i8* %"$put_call_271" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$put_272", %Map_ByStr20_Uint128** %bs1, align 8, !dbg !14 + %"$gasrem_273" = load i64, i64* @_gasrem, align 8 + %"$gascmp_274" = icmp ugt i64 1, %"$gasrem_273" + br i1 %"$gascmp_274", label %"$out_of_gas_275", label %"$have_gas_276" + +"$out_of_gas_275": ; preds = %"$have_gas_263" + call void @_out_of_gas() + br label %"$have_gas_276" + +"$have_gas_276": ; preds = %"$out_of_gas_275", %"$have_gas_263" + %"$consume_277" = sub i64 %"$gasrem_273", 1 + store i64 %"$consume_277", i64* @_gasrem, align 8 + %"$bs1_278" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$adtval_279_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_279_salloc" = call i8* @_salloc(i8* %"$adtval_279_load", i64 9) + %"$adtval_279" = bitcast i8* %"$adtval_279_salloc" to %"CName_Some_Map_(ByStr20)_(Uint128)"* + %"$adtgep_280" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_279", i32 0, i32 0 + store i8 0, i8* %"$adtgep_280", align 1 + %"$adtgep_281" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_279", i32 0, i32 1 + store %Map_ByStr20_Uint128* %"$bs1_278", %Map_ByStr20_Uint128** %"$adtgep_281", align 8 + %"$adtptr_282" = bitcast %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_279" to %"TName_Option_Map_(ByStr20)_(Uint128)"* + store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_282", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_14", align 8, !dbg !17 + br label %"$matchsucc_245" + +"$True_283": ; preds = %"$have_gas_243" + %"$c_284" = bitcast %TName_Bool* %"$c_246" to %CName_True* + %"$gasrem_285" = load i64, i64* @_gasrem, align 8 + %"$gascmp_286" = icmp ugt i64 1, %"$gasrem_285" + br i1 %"$gascmp_286", label %"$out_of_gas_287", label %"$have_gas_288" + +"$out_of_gas_287": ; preds = %"$True_283" + call void @_out_of_gas() + br label %"$have_gas_288" + +"$have_gas_288": ; preds = %"$out_of_gas_287", %"$True_283" + %"$consume_289" = sub i64 %"$gasrem_285", 1 + store i64 %"$consume_289", i64* @_gasrem, align 8 + %"$adtval_290_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_290_salloc" = call i8* @_salloc(i8* %"$adtval_290_load", i64 1) + %"$adtval_290" = bitcast i8* %"$adtval_290_salloc" to %"CName_None_Map_(ByStr20)_(Uint128)"* + %"$adtgep_291" = getelementptr inbounds %"CName_None_Map_(ByStr20)_(Uint128)", %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_290", i32 0, i32 0 + store i8 1, i8* %"$adtgep_291", align 1 + %"$adtptr_292" = bitcast %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_290" to %"TName_Option_Map_(ByStr20)_(Uint128)"* + store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_292", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_14", align 8, !dbg !18 + br label %"$matchsucc_245" + +"$empty_default_249": ; preds = %"$have_gas_243" + br label %"$matchsucc_245" + +"$matchsucc_245": ; preds = %"$have_gas_288", %"$have_gas_276", %"$empty_default_249" + %"$$retval_14_293" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_14", align 8 + ret %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$retval_14_293" } -define internal { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_34"(%"$$fundef_34_env_138"* %0, %Map_ByStr20_Uint128* %1) !dbg !24 { +define internal %TName_List_Message* @"$fundef_15"(%"$$fundef_15_env_111"* %0, i8* %1) !dbg !20 { entry: - %"$retval_35" = alloca { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_282" = load i64, i64* @_gasrem, align 8 - %"$gascmp_283" = icmp ugt i64 1, %"$gasrem_282" - br i1 %"$gascmp_283", label %"$out_of_gas_284", label %"$have_gas_285" - -"$out_of_gas_284": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_285" - -"$have_gas_285": ; preds = %"$out_of_gas_284", %entry - %"$consume_286" = sub i64 %"$gasrem_282", 1 - store i64 %"$consume_286", i64* @_gasrem, align 8 - %"$$fundef_36_envp_287_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_36_envp_287_salloc" = call i8* @_salloc(i8* %"$$fundef_36_envp_287_load", i64 8) - %"$$fundef_36_envp_287" = bitcast i8* %"$$fundef_36_envp_287_salloc" to %"$$fundef_36_env_137"* - %"$$fundef_36_env_voidp_289" = bitcast %"$$fundef_36_env_137"* %"$$fundef_36_envp_287" to i8* - %"$$fundef_36_cloval_290" = insertvalue { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (%"$$fundef_36_env_137"*, [20 x i8]*)* @"$fundef_36" to { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_36_env_voidp_289", 1 - %"$$fundef_36_env_bs_291" = getelementptr inbounds %"$$fundef_36_env_137", %"$$fundef_36_env_137"* %"$$fundef_36_envp_287", i32 0, i32 0 - store %Map_ByStr20_Uint128* %1, %Map_ByStr20_Uint128** %"$$fundef_36_env_bs_291", align 8 - store { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_36_cloval_290", { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_35", align 8, !dbg !25 - %"$$retval_35_292" = load { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_35", align 8 - ret { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_35_292" -} - -define internal %TName_List_Message* @"$fundef_40"(%"$$fundef_40_env_139"* %0, i8* %1) !dbg !26 { -entry: - %"$retval_41" = alloca %TName_List_Message*, align 8 - %"$gasrem_257" = load i64, i64* @_gasrem, align 8 - %"$gascmp_258" = icmp ugt i64 1, %"$gasrem_257" - br i1 %"$gascmp_258", label %"$out_of_gas_259", label %"$have_gas_260" - -"$out_of_gas_259": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_260" - -"$have_gas_260": ; preds = %"$out_of_gas_259", %entry - %"$consume_261" = sub i64 %"$gasrem_257", 1 - store i64 %"$consume_261", i64* @_gasrem, align 8 - %nil_msg = alloca %TName_List_Message*, align 8 - %"$gasrem_262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_263" = icmp ugt i64 1, %"$gasrem_262" - br i1 %"$gascmp_263", label %"$out_of_gas_264", label %"$have_gas_265" - -"$out_of_gas_264": ; preds = %"$have_gas_260" - call void @_out_of_gas() - br label %"$have_gas_265" - -"$have_gas_265": ; preds = %"$out_of_gas_264", %"$have_gas_260" - %"$consume_266" = sub i64 %"$gasrem_262", 1 - store i64 %"$consume_266", i64* @_gasrem, align 8 - %"$adtval_267_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_267_salloc" = call i8* @_salloc(i8* %"$adtval_267_load", i64 1) - %"$adtval_267" = bitcast i8* %"$adtval_267_salloc" to %CName_Nil_Message* - %"$adtgep_268" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_267", i32 0, i32 0 - store i8 1, i8* %"$adtgep_268", align 1 - %"$adtptr_269" = bitcast %CName_Nil_Message* %"$adtval_267" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_269", %TName_List_Message** %nil_msg, align 8, !dbg !27 - %"$gasrem_270" = load i64, i64* @_gasrem, align 8 - %"$gascmp_271" = icmp ugt i64 1, %"$gasrem_270" - br i1 %"$gascmp_271", label %"$out_of_gas_272", label %"$have_gas_273" - -"$out_of_gas_272": ; preds = %"$have_gas_265" - call void @_out_of_gas() - br label %"$have_gas_273" - -"$have_gas_273": ; preds = %"$out_of_gas_272", %"$have_gas_265" - %"$consume_274" = sub i64 %"$gasrem_270", 1 - store i64 %"$consume_274", i64* @_gasrem, align 8 - %"$nil_msg_275" = load %TName_List_Message*, %TName_List_Message** %nil_msg, align 8 - %"$adtval_276_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_276_salloc" = call i8* @_salloc(i8* %"$adtval_276_load", i64 17) - %"$adtval_276" = bitcast i8* %"$adtval_276_salloc" to %CName_Cons_Message* - %"$adtgep_277" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_276", i32 0, i32 0 - store i8 0, i8* %"$adtgep_277", align 1 - %"$adtgep_278" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_276", i32 0, i32 1 - store i8* %1, i8** %"$adtgep_278", align 8 - %"$adtgep_279" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_276", i32 0, i32 2 - store %TName_List_Message* %"$nil_msg_275", %TName_List_Message** %"$adtgep_279", align 8 - %"$adtptr_280" = bitcast %CName_Cons_Message* %"$adtval_276" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_280", %TName_List_Message** %"$retval_41", align 8, !dbg !28 - %"$$retval_41_281" = load %TName_List_Message*, %TName_List_Message** %"$retval_41", align 8 - ret %TName_List_Message* %"$$retval_41_281" -} - -define internal %TName_Bool* @"$fundef_20"(%"$$fundef_20_env_140"* %0, %TName_Bool* %1) !dbg !29 { -entry: - %"$retval_21" = alloca %TName_Bool*, align 8 - %"$gasrem_227" = load i64, i64* @_gasrem, align 8 - %"$gascmp_228" = icmp ugt i64 2, %"$gasrem_227" - br i1 %"$gascmp_228", label %"$out_of_gas_229", label %"$have_gas_230" - -"$out_of_gas_229": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_230" - -"$have_gas_230": ; preds = %"$out_of_gas_229", %entry - %"$consume_231" = sub i64 %"$gasrem_227", 2 - store i64 %"$consume_231", i64* @_gasrem, align 8 - %"$b_tag_233" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b_tag_234" = load i8, i8* %"$b_tag_233", align 1 - switch i8 %"$b_tag_234", label %"$empty_default_235" [ - i8 0, label %"$True_236" - i8 1, label %"$False_246" - ], !dbg !31 - -"$True_236": ; preds = %"$have_gas_230" - %"$b_237" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_238" = load i64, i64* @_gasrem, align 8 - %"$gascmp_239" = icmp ugt i64 1, %"$gasrem_238" - br i1 %"$gascmp_239", label %"$out_of_gas_240", label %"$have_gas_241" - -"$out_of_gas_240": ; preds = %"$True_236" - call void @_out_of_gas() - br label %"$have_gas_241" - -"$have_gas_241": ; preds = %"$out_of_gas_240", %"$True_236" - %"$consume_242" = sub i64 %"$gasrem_238", 1 - store i64 %"$consume_242", i64* @_gasrem, align 8 - %"$adtval_243_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_243_salloc" = call i8* @_salloc(i8* %"$adtval_243_load", i64 1) - %"$adtval_243" = bitcast i8* %"$adtval_243_salloc" to %CName_False* - %"$adtgep_244" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_243", i32 0, i32 0 - store i8 1, i8* %"$adtgep_244", align 1 - %"$adtptr_245" = bitcast %CName_False* %"$adtval_243" to %TName_Bool* - store %TName_Bool* %"$adtptr_245", %TName_Bool** %"$retval_21", align 8, !dbg !32 - br label %"$matchsucc_232" - -"$False_246": ; preds = %"$have_gas_230" - %"$b_247" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_248" = load i64, i64* @_gasrem, align 8 - %"$gascmp_249" = icmp ugt i64 1, %"$gasrem_248" - br i1 %"$gascmp_249", label %"$out_of_gas_250", label %"$have_gas_251" - -"$out_of_gas_250": ; preds = %"$False_246" - call void @_out_of_gas() - br label %"$have_gas_251" - -"$have_gas_251": ; preds = %"$out_of_gas_250", %"$False_246" - %"$consume_252" = sub i64 %"$gasrem_248", 1 - store i64 %"$consume_252", i64* @_gasrem, align 8 - %"$adtval_253_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_253_salloc" = call i8* @_salloc(i8* %"$adtval_253_load", i64 1) - %"$adtval_253" = bitcast i8* %"$adtval_253_salloc" to %CName_True* - %"$adtgep_254" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_253", i32 0, i32 0 - store i8 0, i8* %"$adtgep_254", align 1 - %"$adtptr_255" = bitcast %CName_True* %"$adtval_253" to %TName_Bool* - store %TName_Bool* %"$adtptr_255", %TName_Bool** %"$retval_21", align 8, !dbg !35 - br label %"$matchsucc_232" - -"$empty_default_235": ; preds = %"$have_gas_230" - br label %"$matchsucc_232" - -"$matchsucc_232": ; preds = %"$have_gas_251", %"$have_gas_241", %"$empty_default_235" - %"$$retval_21_256" = load %TName_Bool*, %TName_Bool** %"$retval_21", align 8 - ret %TName_Bool* %"$$retval_21_256" -} - -define internal %TName_Bool* @"$fundef_24"(%"$$fundef_24_env_141"* %0, %TName_Bool* %1) !dbg !37 { -entry: - %"$$fundef_24_env_b_197" = getelementptr inbounds %"$$fundef_24_env_141", %"$$fundef_24_env_141"* %0, i32 0, i32 0 - %"$b_envload_198" = load %TName_Bool*, %TName_Bool** %"$$fundef_24_env_b_197", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_198", %TName_Bool** %b, align 8 - %"$retval_25" = alloca %TName_Bool*, align 8 + %"$retval_16" = alloca %TName_List_Message*, align 8 %"$gasrem_199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_200" = icmp ugt i64 2, %"$gasrem_199" + %"$gascmp_200" = icmp ugt i64 1, %"$gasrem_199" br i1 %"$gascmp_200", label %"$out_of_gas_201", label %"$have_gas_202" "$out_of_gas_201": ; preds = %entry @@ -748,138 +486,77 @@ entry: br label %"$have_gas_202" "$have_gas_202": ; preds = %"$out_of_gas_201", %entry - %"$consume_203" = sub i64 %"$gasrem_199", 2 + %"$consume_203" = sub i64 %"$gasrem_199", 1 store i64 %"$consume_203", i64* @_gasrem, align 8 - %"$b_205" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_206" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_205", i32 0, i32 0 - %"$b_tag_207" = load i8, i8* %"$b_tag_206", align 1 - switch i8 %"$b_tag_207", label %"$empty_default_208" [ - i8 0, label %"$True_209" - i8 1, label %"$False_219" - ], !dbg !38 - -"$True_209": ; preds = %"$have_gas_202" - %"$b_210" = bitcast %TName_Bool* %"$b_205" to %CName_True* - %"$gasrem_211" = load i64, i64* @_gasrem, align 8 - %"$gascmp_212" = icmp ugt i64 1, %"$gasrem_211" - br i1 %"$gascmp_212", label %"$out_of_gas_213", label %"$have_gas_214" - -"$out_of_gas_213": ; preds = %"$True_209" - call void @_out_of_gas() - br label %"$have_gas_214" - -"$have_gas_214": ; preds = %"$out_of_gas_213", %"$True_209" - %"$consume_215" = sub i64 %"$gasrem_211", 1 - store i64 %"$consume_215", i64* @_gasrem, align 8 - %"$adtval_216_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_216_salloc" = call i8* @_salloc(i8* %"$adtval_216_load", i64 1) - %"$adtval_216" = bitcast i8* %"$adtval_216_salloc" to %CName_True* - %"$adtgep_217" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_216", i32 0, i32 0 - store i8 0, i8* %"$adtgep_217", align 1 - %"$adtptr_218" = bitcast %CName_True* %"$adtval_216" to %TName_Bool* - store %TName_Bool* %"$adtptr_218", %TName_Bool** %"$retval_25", align 8, !dbg !39 - br label %"$matchsucc_204" - -"$False_219": ; preds = %"$have_gas_202" - %"$b_220" = bitcast %TName_Bool* %"$b_205" to %CName_False* - %"$gasrem_221" = load i64, i64* @_gasrem, align 8 - %"$gascmp_222" = icmp ugt i64 1, %"$gasrem_221" - br i1 %"$gascmp_222", label %"$out_of_gas_223", label %"$have_gas_224" - -"$out_of_gas_223": ; preds = %"$False_219" - call void @_out_of_gas() - br label %"$have_gas_224" - -"$have_gas_224": ; preds = %"$out_of_gas_223", %"$False_219" - %"$consume_225" = sub i64 %"$gasrem_221", 1 - store i64 %"$consume_225", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_25", align 8, !dbg !42 - br label %"$matchsucc_204" - -"$empty_default_208": ; preds = %"$have_gas_202" - br label %"$matchsucc_204" - -"$matchsucc_204": ; preds = %"$have_gas_224", %"$have_gas_214", %"$empty_default_208" - %"$$retval_25_226" = load %TName_Bool*, %TName_Bool** %"$retval_25", align 8 - ret %TName_Bool* %"$$retval_25_226" + %nil_msg = alloca %TName_List_Message*, align 8 + %"$gasrem_204" = load i64, i64* @_gasrem, align 8 + %"$gascmp_205" = icmp ugt i64 1, %"$gasrem_204" + br i1 %"$gascmp_205", label %"$out_of_gas_206", label %"$have_gas_207" + +"$out_of_gas_206": ; preds = %"$have_gas_202" + call void @_out_of_gas() + br label %"$have_gas_207" + +"$have_gas_207": ; preds = %"$out_of_gas_206", %"$have_gas_202" + %"$consume_208" = sub i64 %"$gasrem_204", 1 + store i64 %"$consume_208", i64* @_gasrem, align 8 + %"$adtval_209_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_209_salloc" = call i8* @_salloc(i8* %"$adtval_209_load", i64 1) + %"$adtval_209" = bitcast i8* %"$adtval_209_salloc" to %CName_Nil_Message* + %"$adtgep_210" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_209", i32 0, i32 0 + store i8 1, i8* %"$adtgep_210", align 1 + %"$adtptr_211" = bitcast %CName_Nil_Message* %"$adtval_209" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_211", %TName_List_Message** %nil_msg, align 8, !dbg !21 + %"$gasrem_212" = load i64, i64* @_gasrem, align 8 + %"$gascmp_213" = icmp ugt i64 1, %"$gasrem_212" + br i1 %"$gascmp_213", label %"$out_of_gas_214", label %"$have_gas_215" + +"$out_of_gas_214": ; preds = %"$have_gas_207" + call void @_out_of_gas() + br label %"$have_gas_215" + +"$have_gas_215": ; preds = %"$out_of_gas_214", %"$have_gas_207" + %"$consume_216" = sub i64 %"$gasrem_212", 1 + store i64 %"$consume_216", i64* @_gasrem, align 8 + %"$nil_msg_217" = load %TName_List_Message*, %TName_List_Message** %nil_msg, align 8 + %"$adtval_218_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_218_salloc" = call i8* @_salloc(i8* %"$adtval_218_load", i64 17) + %"$adtval_218" = bitcast i8* %"$adtval_218_salloc" to %CName_Cons_Message* + %"$adtgep_219" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_218", i32 0, i32 0 + store i8 0, i8* %"$adtgep_219", align 1 + %"$adtgep_220" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_218", i32 0, i32 1 + store i8* %1, i8** %"$adtgep_220", align 8 + %"$adtgep_221" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_218", i32 0, i32 2 + store %TName_List_Message* %"$nil_msg_217", %TName_List_Message** %"$adtgep_221", align 8 + %"$adtptr_222" = bitcast %CName_Cons_Message* %"$adtval_218" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_222", %TName_List_Message** %"$retval_16", align 8, !dbg !22 + %"$$retval_16_223" = load %TName_List_Message*, %TName_List_Message** %"$retval_16", align 8 + ret %TName_List_Message* %"$$retval_16_223" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_22"(%"$$fundef_22_env_142"* %0, %TName_Bool* %1) !dbg !44 { +define internal %TName_Bool* @"$fundef_5"(%"$$fundef_5_env_112"* %0, %TName_Bool* %1) !dbg !23 { entry: - %"$retval_23" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_186" = load i64, i64* @_gasrem, align 8 - %"$gascmp_187" = icmp ugt i64 1, %"$gasrem_186" - br i1 %"$gascmp_187", label %"$out_of_gas_188", label %"$have_gas_189" - -"$out_of_gas_188": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_189" - -"$have_gas_189": ; preds = %"$out_of_gas_188", %entry - %"$consume_190" = sub i64 %"$gasrem_186", 1 - store i64 %"$consume_190", i64* @_gasrem, align 8 - %"$$fundef_24_envp_191_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_24_envp_191_salloc" = call i8* @_salloc(i8* %"$$fundef_24_envp_191_load", i64 8) - %"$$fundef_24_envp_191" = bitcast i8* %"$$fundef_24_envp_191_salloc" to %"$$fundef_24_env_141"* - %"$$fundef_24_env_voidp_193" = bitcast %"$$fundef_24_env_141"* %"$$fundef_24_envp_191" to i8* - %"$$fundef_24_cloval_194" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_24_env_141"*, %TName_Bool*)* @"$fundef_24" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_24_env_voidp_193", 1 - %"$$fundef_24_env_b_195" = getelementptr inbounds %"$$fundef_24_env_141", %"$$fundef_24_env_141"* %"$$fundef_24_envp_191", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_24_env_b_195", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_24_cloval_194", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_23", align 8, !dbg !45 - %"$$retval_23_196" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_23", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_23_196" -} + %"$retval_6" = alloca %TName_Bool*, align 8 + %"$gasrem_169" = load i64, i64* @_gasrem, align 8 + %"$gascmp_170" = icmp ugt i64 2, %"$gasrem_169" + br i1 %"$gascmp_170", label %"$out_of_gas_171", label %"$have_gas_172" -define internal %TName_Bool* @"$fundef_28"(%"$$fundef_28_env_143"* %0, %TName_Bool* %1) !dbg !46 { -entry: - %"$$fundef_28_env_b_156" = getelementptr inbounds %"$$fundef_28_env_143", %"$$fundef_28_env_143"* %0, i32 0, i32 0 - %"$b_envload_157" = load %TName_Bool*, %TName_Bool** %"$$fundef_28_env_b_156", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_157", %TName_Bool** %b, align 8 - %"$retval_29" = alloca %TName_Bool*, align 8 - %"$gasrem_158" = load i64, i64* @_gasrem, align 8 - %"$gascmp_159" = icmp ugt i64 2, %"$gasrem_158" - br i1 %"$gascmp_159", label %"$out_of_gas_160", label %"$have_gas_161" - -"$out_of_gas_160": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_161" - -"$have_gas_161": ; preds = %"$out_of_gas_160", %entry - %"$consume_162" = sub i64 %"$gasrem_158", 2 - store i64 %"$consume_162", i64* @_gasrem, align 8 - %"$b_164" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_165" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_164", i32 0, i32 0 - %"$b_tag_166" = load i8, i8* %"$b_tag_165", align 1 - switch i8 %"$b_tag_166", label %"$empty_default_167" [ - i8 1, label %"$False_168" +"$out_of_gas_171": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_172" + +"$have_gas_172": ; preds = %"$out_of_gas_171", %entry + %"$consume_173" = sub i64 %"$gasrem_169", 2 + store i64 %"$consume_173", i64* @_gasrem, align 8 + %"$b_tag_175" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_176" = load i8, i8* %"$b_tag_175", align 1 + switch i8 %"$b_tag_176", label %"$empty_default_177" [ i8 0, label %"$True_178" - ], !dbg !47 - -"$False_168": ; preds = %"$have_gas_161" - %"$b_169" = bitcast %TName_Bool* %"$b_164" to %CName_False* - %"$gasrem_170" = load i64, i64* @_gasrem, align 8 - %"$gascmp_171" = icmp ugt i64 1, %"$gasrem_170" - br i1 %"$gascmp_171", label %"$out_of_gas_172", label %"$have_gas_173" - -"$out_of_gas_172": ; preds = %"$False_168" - call void @_out_of_gas() - br label %"$have_gas_173" - -"$have_gas_173": ; preds = %"$out_of_gas_172", %"$False_168" - %"$consume_174" = sub i64 %"$gasrem_170", 1 - store i64 %"$consume_174", i64* @_gasrem, align 8 - %"$adtval_175_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_175_salloc" = call i8* @_salloc(i8* %"$adtval_175_load", i64 1) - %"$adtval_175" = bitcast i8* %"$adtval_175_salloc" to %CName_False* - %"$adtgep_176" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_175", i32 0, i32 0 - store i8 1, i8* %"$adtgep_176", align 1 - %"$adtptr_177" = bitcast %CName_False* %"$adtval_175" to %TName_Bool* - store %TName_Bool* %"$adtptr_177", %TName_Bool** %"$retval_29", align 8, !dbg !48 - br label %"$matchsucc_163" - -"$True_178": ; preds = %"$have_gas_161" - %"$b_179" = bitcast %TName_Bool* %"$b_164" to %CName_True* + i8 1, label %"$False_188" + ], !dbg !25 + +"$True_178": ; preds = %"$have_gas_172" + %"$b_179" = bitcast %TName_Bool* %1 to %CName_True* %"$gasrem_180" = load i64, i64* @_gasrem, align 8 %"$gascmp_181" = icmp ugt i64 1, %"$gasrem_180" br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" @@ -891,41 +568,177 @@ entry: "$have_gas_183": ; preds = %"$out_of_gas_182", %"$True_178" %"$consume_184" = sub i64 %"$gasrem_180", 1 store i64 %"$consume_184", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_29", align 8, !dbg !51 - br label %"$matchsucc_163" - -"$empty_default_167": ; preds = %"$have_gas_161" - br label %"$matchsucc_163" + %"$adtval_185_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_185_salloc" = call i8* @_salloc(i8* %"$adtval_185_load", i64 1) + %"$adtval_185" = bitcast i8* %"$adtval_185_salloc" to %CName_False* + %"$adtgep_186" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_185", i32 0, i32 0 + store i8 1, i8* %"$adtgep_186", align 1 + %"$adtptr_187" = bitcast %CName_False* %"$adtval_185" to %TName_Bool* + store %TName_Bool* %"$adtptr_187", %TName_Bool** %"$retval_6", align 8, !dbg !26 + br label %"$matchsucc_174" + +"$False_188": ; preds = %"$have_gas_172" + %"$b_189" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_190" = load i64, i64* @_gasrem, align 8 + %"$gascmp_191" = icmp ugt i64 1, %"$gasrem_190" + br i1 %"$gascmp_191", label %"$out_of_gas_192", label %"$have_gas_193" + +"$out_of_gas_192": ; preds = %"$False_188" + call void @_out_of_gas() + br label %"$have_gas_193" + +"$have_gas_193": ; preds = %"$out_of_gas_192", %"$False_188" + %"$consume_194" = sub i64 %"$gasrem_190", 1 + store i64 %"$consume_194", i64* @_gasrem, align 8 + %"$adtval_195_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_195_salloc" = call i8* @_salloc(i8* %"$adtval_195_load", i64 1) + %"$adtval_195" = bitcast i8* %"$adtval_195_salloc" to %CName_True* + %"$adtgep_196" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_195", i32 0, i32 0 + store i8 0, i8* %"$adtgep_196", align 1 + %"$adtptr_197" = bitcast %CName_True* %"$adtval_195" to %TName_Bool* + store %TName_Bool* %"$adtptr_197", %TName_Bool** %"$retval_6", align 8, !dbg !29 + br label %"$matchsucc_174" + +"$empty_default_177": ; preds = %"$have_gas_172" + br label %"$matchsucc_174" + +"$matchsucc_174": ; preds = %"$have_gas_193", %"$have_gas_183", %"$empty_default_177" + %"$$retval_6_198" = load %TName_Bool*, %TName_Bool** %"$retval_6", align 8 + ret %TName_Bool* %"$$retval_6_198" +} -"$matchsucc_163": ; preds = %"$have_gas_183", %"$have_gas_173", %"$empty_default_167" - %"$$retval_29_185" = load %TName_Bool*, %TName_Bool** %"$retval_29", align 8 - ret %TName_Bool* %"$$retval_29_185" +define internal %TName_Bool* @"$fundef_7"(%"$$fundef_7_env_113"* %0, %TName_Bool* %1, %TName_Bool* %2) !dbg !31 { +entry: + %"$retval_8" = alloca %TName_Bool*, align 8 + %"$gasrem_142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_143" = icmp ugt i64 2, %"$gasrem_142" + br i1 %"$gascmp_143", label %"$out_of_gas_144", label %"$have_gas_145" + +"$out_of_gas_144": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_145" + +"$have_gas_145": ; preds = %"$out_of_gas_144", %entry + %"$consume_146" = sub i64 %"$gasrem_142", 2 + store i64 %"$consume_146", i64* @_gasrem, align 8 + %"$b_tag_148" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_149" = load i8, i8* %"$b_tag_148", align 1 + switch i8 %"$b_tag_149", label %"$empty_default_150" [ + i8 0, label %"$True_151" + i8 1, label %"$False_161" + ], !dbg !32 + +"$True_151": ; preds = %"$have_gas_145" + %"$b_152" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_153" = load i64, i64* @_gasrem, align 8 + %"$gascmp_154" = icmp ugt i64 1, %"$gasrem_153" + br i1 %"$gascmp_154", label %"$out_of_gas_155", label %"$have_gas_156" + +"$out_of_gas_155": ; preds = %"$True_151" + call void @_out_of_gas() + br label %"$have_gas_156" + +"$have_gas_156": ; preds = %"$out_of_gas_155", %"$True_151" + %"$consume_157" = sub i64 %"$gasrem_153", 1 + store i64 %"$consume_157", i64* @_gasrem, align 8 + %"$adtval_158_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_158_salloc" = call i8* @_salloc(i8* %"$adtval_158_load", i64 1) + %"$adtval_158" = bitcast i8* %"$adtval_158_salloc" to %CName_True* + %"$adtgep_159" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_158", i32 0, i32 0 + store i8 0, i8* %"$adtgep_159", align 1 + %"$adtptr_160" = bitcast %CName_True* %"$adtval_158" to %TName_Bool* + store %TName_Bool* %"$adtptr_160", %TName_Bool** %"$retval_8", align 8, !dbg !33 + br label %"$matchsucc_147" + +"$False_161": ; preds = %"$have_gas_145" + %"$b_162" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_163" = load i64, i64* @_gasrem, align 8 + %"$gascmp_164" = icmp ugt i64 1, %"$gasrem_163" + br i1 %"$gascmp_164", label %"$out_of_gas_165", label %"$have_gas_166" + +"$out_of_gas_165": ; preds = %"$False_161" + call void @_out_of_gas() + br label %"$have_gas_166" + +"$have_gas_166": ; preds = %"$out_of_gas_165", %"$False_161" + %"$consume_167" = sub i64 %"$gasrem_163", 1 + store i64 %"$consume_167", i64* @_gasrem, align 8 + store %TName_Bool* %2, %TName_Bool** %"$retval_8", align 8, !dbg !36 + br label %"$matchsucc_147" + +"$empty_default_150": ; preds = %"$have_gas_145" + br label %"$matchsucc_147" + +"$matchsucc_147": ; preds = %"$have_gas_166", %"$have_gas_156", %"$empty_default_150" + %"$$retval_8_168" = load %TName_Bool*, %TName_Bool** %"$retval_8", align 8 + ret %TName_Bool* %"$$retval_8_168" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_26"(%"$$fundef_26_env_144"* %0, %TName_Bool* %1) !dbg !53 { +define internal %TName_Bool* @"$fundef_9"(%"$$fundef_9_env_114"* %0, %TName_Bool* %1, %TName_Bool* %2) !dbg !38 { entry: - %"$retval_27" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_145" = load i64, i64* @_gasrem, align 8 - %"$gascmp_146" = icmp ugt i64 1, %"$gasrem_145" - br i1 %"$gascmp_146", label %"$out_of_gas_147", label %"$have_gas_148" - -"$out_of_gas_147": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_148" - -"$have_gas_148": ; preds = %"$out_of_gas_147", %entry - %"$consume_149" = sub i64 %"$gasrem_145", 1 - store i64 %"$consume_149", i64* @_gasrem, align 8 - %"$$fundef_28_envp_150_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_28_envp_150_salloc" = call i8* @_salloc(i8* %"$$fundef_28_envp_150_load", i64 8) - %"$$fundef_28_envp_150" = bitcast i8* %"$$fundef_28_envp_150_salloc" to %"$$fundef_28_env_143"* - %"$$fundef_28_env_voidp_152" = bitcast %"$$fundef_28_env_143"* %"$$fundef_28_envp_150" to i8* - %"$$fundef_28_cloval_153" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_28_env_143"*, %TName_Bool*)* @"$fundef_28" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_28_env_voidp_152", 1 - %"$$fundef_28_env_b_154" = getelementptr inbounds %"$$fundef_28_env_143", %"$$fundef_28_env_143"* %"$$fundef_28_envp_150", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_28_env_b_154", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_28_cloval_153", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_27", align 8, !dbg !54 - %"$$retval_27_155" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_27", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_27_155" + %"$retval_10" = alloca %TName_Bool*, align 8 + %"$gasrem_115" = load i64, i64* @_gasrem, align 8 + %"$gascmp_116" = icmp ugt i64 2, %"$gasrem_115" + br i1 %"$gascmp_116", label %"$out_of_gas_117", label %"$have_gas_118" + +"$out_of_gas_117": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_118" + +"$have_gas_118": ; preds = %"$out_of_gas_117", %entry + %"$consume_119" = sub i64 %"$gasrem_115", 2 + store i64 %"$consume_119", i64* @_gasrem, align 8 + %"$b_tag_121" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_122" = load i8, i8* %"$b_tag_121", align 1 + switch i8 %"$b_tag_122", label %"$empty_default_123" [ + i8 1, label %"$False_124" + i8 0, label %"$True_134" + ], !dbg !39 + +"$False_124": ; preds = %"$have_gas_118" + %"$b_125" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_126" = load i64, i64* @_gasrem, align 8 + %"$gascmp_127" = icmp ugt i64 1, %"$gasrem_126" + br i1 %"$gascmp_127", label %"$out_of_gas_128", label %"$have_gas_129" + +"$out_of_gas_128": ; preds = %"$False_124" + call void @_out_of_gas() + br label %"$have_gas_129" + +"$have_gas_129": ; preds = %"$out_of_gas_128", %"$False_124" + %"$consume_130" = sub i64 %"$gasrem_126", 1 + store i64 %"$consume_130", i64* @_gasrem, align 8 + %"$adtval_131_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_131_salloc" = call i8* @_salloc(i8* %"$adtval_131_load", i64 1) + %"$adtval_131" = bitcast i8* %"$adtval_131_salloc" to %CName_False* + %"$adtgep_132" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_131", i32 0, i32 0 + store i8 1, i8* %"$adtgep_132", align 1 + %"$adtptr_133" = bitcast %CName_False* %"$adtval_131" to %TName_Bool* + store %TName_Bool* %"$adtptr_133", %TName_Bool** %"$retval_10", align 8, !dbg !40 + br label %"$matchsucc_120" + +"$True_134": ; preds = %"$have_gas_118" + %"$b_135" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_136" = load i64, i64* @_gasrem, align 8 + %"$gascmp_137" = icmp ugt i64 1, %"$gasrem_136" + br i1 %"$gascmp_137", label %"$out_of_gas_138", label %"$have_gas_139" + +"$out_of_gas_138": ; preds = %"$True_134" + call void @_out_of_gas() + br label %"$have_gas_139" + +"$have_gas_139": ; preds = %"$out_of_gas_138", %"$True_134" + %"$consume_140" = sub i64 %"$gasrem_136", 1 + store i64 %"$consume_140", i64* @_gasrem, align 8 + store %TName_Bool* %2, %TName_Bool** %"$retval_10", align 8, !dbg !43 + br label %"$matchsucc_120" + +"$empty_default_123": ; preds = %"$have_gas_118" + br label %"$matchsucc_120" + +"$matchsucc_120": ; preds = %"$have_gas_139", %"$have_gas_129", %"$empty_default_123" + %"$$retval_10_141" = load %TName_Bool*, %TName_Bool** %"$retval_10", align 8 + ret %TName_Bool* %"$$retval_10_141" } declare void @_out_of_gas() @@ -942,244 +755,244 @@ declare %TName_Bool* @_lt_BNum(i8*, i8*, i8*) declare %TName_Bool* @_eq_BNum(i8*, i8*, i8*) -define void @_init_libs() !dbg !55 { +define void @_init_libs() !dbg !45 { entry: - %"$gasrem_451" = load i64, i64* @_gasrem, align 8 - %"$gascmp_452" = icmp ugt i64 1, %"$gasrem_451" - br i1 %"$gascmp_452", label %"$out_of_gas_453", label %"$have_gas_454" - -"$out_of_gas_453": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_454" - -"$have_gas_454": ; preds = %"$out_of_gas_453", %entry - %"$consume_455" = sub i64 %"$gasrem_451", 1 - store i64 %"$consume_455", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_26_env_144"*, %TName_Bool*)* @"$fundef_26" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8, !dbg !57 - %"$gasrem_459" = load i64, i64* @_gasrem, align 8 - %"$gascmp_460" = icmp ugt i64 1, %"$gasrem_459" - br i1 %"$gascmp_460", label %"$out_of_gas_461", label %"$have_gas_462" - -"$out_of_gas_461": ; preds = %"$have_gas_454" - call void @_out_of_gas() - br label %"$have_gas_462" - -"$have_gas_462": ; preds = %"$out_of_gas_461", %"$have_gas_454" - %"$consume_463" = sub i64 %"$gasrem_459", 1 - store i64 %"$consume_463", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_22_env_142"*, %TName_Bool*)* @"$fundef_22" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8, !dbg !58 - %"$gasrem_467" = load i64, i64* @_gasrem, align 8 - %"$gascmp_468" = icmp ugt i64 1, %"$gasrem_467" - br i1 %"$gascmp_468", label %"$out_of_gas_469", label %"$have_gas_470" - -"$out_of_gas_469": ; preds = %"$have_gas_462" - call void @_out_of_gas() - br label %"$have_gas_470" - -"$have_gas_470": ; preds = %"$out_of_gas_469", %"$have_gas_462" - %"$consume_471" = sub i64 %"$gasrem_467", 1 - store i64 %"$consume_471", i64* @_gasrem, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_20_env_140"*, %TName_Bool*)* @"$fundef_20" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !59 - %"$gasrem_475" = load i64, i64* @_gasrem, align 8 - %"$gascmp_476" = icmp ugt i64 1, %"$gasrem_475" - br i1 %"$gascmp_476", label %"$out_of_gas_477", label %"$have_gas_478" - -"$out_of_gas_477": ; preds = %"$have_gas_470" - call void @_out_of_gas() - br label %"$have_gas_478" - -"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_470" - %"$consume_479" = sub i64 %"$gasrem_475", 1 - store i64 %"$consume_479", i64* @_gasrem, align 8 - store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_40_env_139"*, i8*)* @"$fundef_40" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8, !dbg !60 - %"$gasrem_483" = load i64, i64* @_gasrem, align 8 - %"$gascmp_484" = icmp ugt i64 1, %"$gasrem_483" - br i1 %"$gascmp_484", label %"$out_of_gas_485", label %"$have_gas_486" - -"$out_of_gas_485": ; preds = %"$have_gas_478" - call void @_out_of_gas() - br label %"$have_gas_486" - -"$have_gas_486": ; preds = %"$out_of_gas_485", %"$have_gas_478" - %"$consume_487" = sub i64 %"$gasrem_483", 1 - store i64 %"$consume_487", i64* @_gasrem, align 8 - store { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)* bitcast ({ { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_34_env_138"*, %Map_ByStr20_Uint128*)* @"$fundef_34" to { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*), i8* null }, { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* }* @crowdfunding.check_update, align 8, !dbg !61 - %"$gasrem_491" = load i64, i64* @_gasrem, align 8 - %"$gascmp_492" = icmp ugt i64 1, %"$gasrem_491" - br i1 %"$gascmp_492", label %"$out_of_gas_493", label %"$have_gas_494" - -"$out_of_gas_493": ; preds = %"$have_gas_486" - call void @_out_of_gas() - br label %"$have_gas_494" - -"$have_gas_494": ; preds = %"$out_of_gas_493", %"$have_gas_486" - %"$consume_495" = sub i64 %"$gasrem_491", 1 - store i64 %"$consume_495", i64* @_gasrem, align 8 - %"$$fundef_30_envp_496_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_30_envp_496_salloc" = call i8* @_salloc(i8* %"$$fundef_30_envp_496_load", i64 16) - %"$$fundef_30_envp_496" = bitcast i8* %"$$fundef_30_envp_496_salloc" to %"$$fundef_30_env_135"* - %"$$fundef_30_env_voidp_498" = bitcast %"$$fundef_30_env_135"* %"$$fundef_30_envp_496" to i8* - %"$$fundef_30_cloval_499" = insertvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)* bitcast ({ %TName_Bool* (i8*, i8*)*, i8* } (%"$$fundef_30_env_135"*, i8*)* @"$fundef_30" to { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*), i8* undef }, i8* %"$$fundef_30_env_voidp_498", 1 - %"$$fundef_30_env_BoolUtils.orb_500" = getelementptr inbounds %"$$fundef_30_env_135", %"$$fundef_30_env_135"* %"$$fundef_30_envp_496", i32 0, i32 0 - %"$BoolUtils.orb_501" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_501", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_30_env_BoolUtils.orb_500", align 8 - store { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$$fundef_30_cloval_499", { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8, !dbg !62 - %"$gasrem_502" = load i64, i64* @_gasrem, align 8 - %"$gascmp_503" = icmp ugt i64 1, %"$gasrem_502" - br i1 %"$gascmp_503", label %"$out_of_gas_504", label %"$have_gas_505" - -"$out_of_gas_504": ; preds = %"$have_gas_494" - call void @_out_of_gas() - br label %"$have_gas_505" - -"$have_gas_505": ; preds = %"$out_of_gas_504", %"$have_gas_494" - %"$consume_506" = sub i64 %"$gasrem_502", 1 - store i64 %"$consume_506", i64* @_gasrem, align 8 - store %Int32 { i32 1 }, %Int32* @crowdfunding.accepted_code, align 4, !dbg !63 - %"$gasrem_507" = load i64, i64* @_gasrem, align 8 - %"$gascmp_508" = icmp ugt i64 1, %"$gasrem_507" - br i1 %"$gascmp_508", label %"$out_of_gas_509", label %"$have_gas_510" - -"$out_of_gas_509": ; preds = %"$have_gas_505" - call void @_out_of_gas() - br label %"$have_gas_510" - -"$have_gas_510": ; preds = %"$out_of_gas_509", %"$have_gas_505" - %"$consume_511" = sub i64 %"$gasrem_507", 1 - store i64 %"$consume_511", i64* @_gasrem, align 8 - store %Int32 { i32 2 }, %Int32* @crowdfunding.missed_deadline_code, align 4, !dbg !64 - %"$gasrem_512" = load i64, i64* @_gasrem, align 8 - %"$gascmp_513" = icmp ugt i64 1, %"$gasrem_512" - br i1 %"$gascmp_513", label %"$out_of_gas_514", label %"$have_gas_515" - -"$out_of_gas_514": ; preds = %"$have_gas_510" - call void @_out_of_gas() - br label %"$have_gas_515" - -"$have_gas_515": ; preds = %"$out_of_gas_514", %"$have_gas_510" - %"$consume_516" = sub i64 %"$gasrem_512", 1 - store i64 %"$consume_516", i64* @_gasrem, align 8 - store %Int32 { i32 3 }, %Int32* @crowdfunding.already_backed_code, align 4, !dbg !65 - %"$gasrem_517" = load i64, i64* @_gasrem, align 8 - %"$gascmp_518" = icmp ugt i64 1, %"$gasrem_517" - br i1 %"$gascmp_518", label %"$out_of_gas_519", label %"$have_gas_520" - -"$out_of_gas_519": ; preds = %"$have_gas_515" - call void @_out_of_gas() - br label %"$have_gas_520" - -"$have_gas_520": ; preds = %"$out_of_gas_519", %"$have_gas_515" - %"$consume_521" = sub i64 %"$gasrem_517", 1 - store i64 %"$consume_521", i64* @_gasrem, align 8 - store %Int32 { i32 4 }, %Int32* @crowdfunding.not_owner_code, align 4, !dbg !66 - %"$gasrem_522" = load i64, i64* @_gasrem, align 8 - %"$gascmp_523" = icmp ugt i64 1, %"$gasrem_522" - br i1 %"$gascmp_523", label %"$out_of_gas_524", label %"$have_gas_525" - -"$out_of_gas_524": ; preds = %"$have_gas_520" - call void @_out_of_gas() - br label %"$have_gas_525" - -"$have_gas_525": ; preds = %"$out_of_gas_524", %"$have_gas_520" - %"$consume_526" = sub i64 %"$gasrem_522", 1 - store i64 %"$consume_526", i64* @_gasrem, align 8 - store %Int32 { i32 5 }, %Int32* @crowdfunding.too_early_code, align 4, !dbg !67 - %"$gasrem_527" = load i64, i64* @_gasrem, align 8 - %"$gascmp_528" = icmp ugt i64 1, %"$gasrem_527" - br i1 %"$gascmp_528", label %"$out_of_gas_529", label %"$have_gas_530" - -"$out_of_gas_529": ; preds = %"$have_gas_525" - call void @_out_of_gas() - br label %"$have_gas_530" - -"$have_gas_530": ; preds = %"$out_of_gas_529", %"$have_gas_525" - %"$consume_531" = sub i64 %"$gasrem_527", 1 - store i64 %"$consume_531", i64* @_gasrem, align 8 - store %Int32 { i32 6 }, %Int32* @crowdfunding.got_funds_code, align 4, !dbg !68 - %"$gasrem_532" = load i64, i64* @_gasrem, align 8 - %"$gascmp_533" = icmp ugt i64 1, %"$gasrem_532" - br i1 %"$gascmp_533", label %"$out_of_gas_534", label %"$have_gas_535" - -"$out_of_gas_534": ; preds = %"$have_gas_530" - call void @_out_of_gas() - br label %"$have_gas_535" - -"$have_gas_535": ; preds = %"$out_of_gas_534", %"$have_gas_530" - %"$consume_536" = sub i64 %"$gasrem_532", 1 - store i64 %"$consume_536", i64* @_gasrem, align 8 - store %Int32 { i32 7 }, %Int32* @crowdfunding.cannot_get_funds, align 4, !dbg !69 - %"$gasrem_537" = load i64, i64* @_gasrem, align 8 - %"$gascmp_538" = icmp ugt i64 1, %"$gasrem_537" - br i1 %"$gascmp_538", label %"$out_of_gas_539", label %"$have_gas_540" - -"$out_of_gas_539": ; preds = %"$have_gas_535" - call void @_out_of_gas() - br label %"$have_gas_540" - -"$have_gas_540": ; preds = %"$out_of_gas_539", %"$have_gas_535" - %"$consume_541" = sub i64 %"$gasrem_537", 1 - store i64 %"$consume_541", i64* @_gasrem, align 8 - store %Int32 { i32 8 }, %Int32* @crowdfunding.cannot_reclaim_code, align 4, !dbg !70 - %"$gasrem_542" = load i64, i64* @_gasrem, align 8 - %"$gascmp_543" = icmp ugt i64 1, %"$gasrem_542" - br i1 %"$gascmp_543", label %"$out_of_gas_544", label %"$have_gas_545" + %"$gasrem_334" = load i64, i64* @_gasrem, align 8 + %"$gascmp_335" = icmp ugt i64 2, %"$gasrem_334" + br i1 %"$gascmp_335", label %"$out_of_gas_336", label %"$have_gas_337" + +"$out_of_gas_336": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_337" + +"$have_gas_337": ; preds = %"$out_of_gas_336", %entry + %"$consume_338" = sub i64 %"$gasrem_334", 2 + store i64 %"$consume_338", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_9_env_114"*, %TName_Bool*, %TName_Bool*)* @"$fundef_9" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8, !dbg !47 + %"$gasrem_342" = load i64, i64* @_gasrem, align 8 + %"$gascmp_343" = icmp ugt i64 2, %"$gasrem_342" + br i1 %"$gascmp_343", label %"$out_of_gas_344", label %"$have_gas_345" + +"$out_of_gas_344": ; preds = %"$have_gas_337" + call void @_out_of_gas() + br label %"$have_gas_345" + +"$have_gas_345": ; preds = %"$out_of_gas_344", %"$have_gas_337" + %"$consume_346" = sub i64 %"$gasrem_342", 2 + store i64 %"$consume_346", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_7_env_113"*, %TName_Bool*, %TName_Bool*)* @"$fundef_7" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8, !dbg !48 + %"$gasrem_350" = load i64, i64* @_gasrem, align 8 + %"$gascmp_351" = icmp ugt i64 1, %"$gasrem_350" + br i1 %"$gascmp_351", label %"$out_of_gas_352", label %"$have_gas_353" + +"$out_of_gas_352": ; preds = %"$have_gas_345" + call void @_out_of_gas() + br label %"$have_gas_353" + +"$have_gas_353": ; preds = %"$out_of_gas_352", %"$have_gas_345" + %"$consume_354" = sub i64 %"$gasrem_350", 1 + store i64 %"$consume_354", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_5_env_112"*, %TName_Bool*)* @"$fundef_5" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !49 + %"$gasrem_358" = load i64, i64* @_gasrem, align 8 + %"$gascmp_359" = icmp ugt i64 1, %"$gasrem_358" + br i1 %"$gascmp_359", label %"$out_of_gas_360", label %"$have_gas_361" + +"$out_of_gas_360": ; preds = %"$have_gas_353" + call void @_out_of_gas() + br label %"$have_gas_361" + +"$have_gas_361": ; preds = %"$out_of_gas_360", %"$have_gas_353" + %"$consume_362" = sub i64 %"$gasrem_358", 1 + store i64 %"$consume_362", i64* @_gasrem, align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_15_env_111"*, i8*)* @"$fundef_15" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8, !dbg !50 + %"$gasrem_366" = load i64, i64* @_gasrem, align 8 + %"$gascmp_367" = icmp ugt i64 3, %"$gasrem_366" + br i1 %"$gascmp_367", label %"$out_of_gas_368", label %"$have_gas_369" + +"$out_of_gas_368": ; preds = %"$have_gas_361" + call void @_out_of_gas() + br label %"$have_gas_369" + +"$have_gas_369": ; preds = %"$out_of_gas_368", %"$have_gas_361" + %"$consume_370" = sub i64 %"$gasrem_366", 3 + store i64 %"$consume_370", i64* @_gasrem, align 8 + store { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* } { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)* bitcast (%"TName_Option_Map_(ByStr20)_(Uint128)"* (%"$$fundef_13_env_110"*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)* @"$fundef_13" to %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*), i8* null }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* }* @crowdfunding.check_update, align 8, !dbg !51 + %"$gasrem_374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_375" = icmp ugt i64 2, %"$gasrem_374" + br i1 %"$gascmp_375", label %"$out_of_gas_376", label %"$have_gas_377" + +"$out_of_gas_376": ; preds = %"$have_gas_369" + call void @_out_of_gas() + br label %"$have_gas_377" + +"$have_gas_377": ; preds = %"$out_of_gas_376", %"$have_gas_369" + %"$consume_378" = sub i64 %"$gasrem_374", 2 + store i64 %"$consume_378", i64* @_gasrem, align 8 + %"$$fundef_11_envp_379_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_11_envp_379_salloc" = call i8* @_salloc(i8* %"$$fundef_11_envp_379_load", i64 16) + %"$$fundef_11_envp_379" = bitcast i8* %"$$fundef_11_envp_379_salloc" to %"$$fundef_11_env_109"* + %"$$fundef_11_env_voidp_381" = bitcast %"$$fundef_11_env_109"* %"$$fundef_11_envp_379" to i8* + %"$$fundef_11_cloval_382" = insertvalue { %TName_Bool* (i8*, i8*, i8*)*, i8* } { %TName_Bool* (i8*, i8*, i8*)* bitcast (%TName_Bool* (%"$$fundef_11_env_109"*, i8*, i8*)* @"$fundef_11" to %TName_Bool* (i8*, i8*, i8*)*), i8* undef }, i8* %"$$fundef_11_env_voidp_381", 1 + %"$$fundef_11_env_BoolUtils.orb_383" = getelementptr inbounds %"$$fundef_11_env_109", %"$$fundef_11_env_109"* %"$$fundef_11_envp_379", i32 0, i32 0 + %"$BoolUtils.orb_384" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_384", { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %"$$fundef_11_env_BoolUtils.orb_383", align 8 + store { %TName_Bool* (i8*, i8*, i8*)*, i8* } %"$$fundef_11_cloval_382", { %TName_Bool* (i8*, i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8, !dbg !52 + %"$gasrem_385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_386" = icmp ugt i64 1, %"$gasrem_385" + br i1 %"$gascmp_386", label %"$out_of_gas_387", label %"$have_gas_388" + +"$out_of_gas_387": ; preds = %"$have_gas_377" + call void @_out_of_gas() + br label %"$have_gas_388" + +"$have_gas_388": ; preds = %"$out_of_gas_387", %"$have_gas_377" + %"$consume_389" = sub i64 %"$gasrem_385", 1 + store i64 %"$consume_389", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* @crowdfunding.accepted_code, align 4, !dbg !53 + %"$gasrem_390" = load i64, i64* @_gasrem, align 8 + %"$gascmp_391" = icmp ugt i64 1, %"$gasrem_390" + br i1 %"$gascmp_391", label %"$out_of_gas_392", label %"$have_gas_393" + +"$out_of_gas_392": ; preds = %"$have_gas_388" + call void @_out_of_gas() + br label %"$have_gas_393" + +"$have_gas_393": ; preds = %"$out_of_gas_392", %"$have_gas_388" + %"$consume_394" = sub i64 %"$gasrem_390", 1 + store i64 %"$consume_394", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* @crowdfunding.missed_deadline_code, align 4, !dbg !54 + %"$gasrem_395" = load i64, i64* @_gasrem, align 8 + %"$gascmp_396" = icmp ugt i64 1, %"$gasrem_395" + br i1 %"$gascmp_396", label %"$out_of_gas_397", label %"$have_gas_398" + +"$out_of_gas_397": ; preds = %"$have_gas_393" + call void @_out_of_gas() + br label %"$have_gas_398" + +"$have_gas_398": ; preds = %"$out_of_gas_397", %"$have_gas_393" + %"$consume_399" = sub i64 %"$gasrem_395", 1 + store i64 %"$consume_399", i64* @_gasrem, align 8 + store %Int32 { i32 3 }, %Int32* @crowdfunding.already_backed_code, align 4, !dbg !55 + %"$gasrem_400" = load i64, i64* @_gasrem, align 8 + %"$gascmp_401" = icmp ugt i64 1, %"$gasrem_400" + br i1 %"$gascmp_401", label %"$out_of_gas_402", label %"$have_gas_403" + +"$out_of_gas_402": ; preds = %"$have_gas_398" + call void @_out_of_gas() + br label %"$have_gas_403" + +"$have_gas_403": ; preds = %"$out_of_gas_402", %"$have_gas_398" + %"$consume_404" = sub i64 %"$gasrem_400", 1 + store i64 %"$consume_404", i64* @_gasrem, align 8 + store %Int32 { i32 4 }, %Int32* @crowdfunding.not_owner_code, align 4, !dbg !56 + %"$gasrem_405" = load i64, i64* @_gasrem, align 8 + %"$gascmp_406" = icmp ugt i64 1, %"$gasrem_405" + br i1 %"$gascmp_406", label %"$out_of_gas_407", label %"$have_gas_408" + +"$out_of_gas_407": ; preds = %"$have_gas_403" + call void @_out_of_gas() + br label %"$have_gas_408" + +"$have_gas_408": ; preds = %"$out_of_gas_407", %"$have_gas_403" + %"$consume_409" = sub i64 %"$gasrem_405", 1 + store i64 %"$consume_409", i64* @_gasrem, align 8 + store %Int32 { i32 5 }, %Int32* @crowdfunding.too_early_code, align 4, !dbg !57 + %"$gasrem_410" = load i64, i64* @_gasrem, align 8 + %"$gascmp_411" = icmp ugt i64 1, %"$gasrem_410" + br i1 %"$gascmp_411", label %"$out_of_gas_412", label %"$have_gas_413" + +"$out_of_gas_412": ; preds = %"$have_gas_408" + call void @_out_of_gas() + br label %"$have_gas_413" + +"$have_gas_413": ; preds = %"$out_of_gas_412", %"$have_gas_408" + %"$consume_414" = sub i64 %"$gasrem_410", 1 + store i64 %"$consume_414", i64* @_gasrem, align 8 + store %Int32 { i32 6 }, %Int32* @crowdfunding.got_funds_code, align 4, !dbg !58 + %"$gasrem_415" = load i64, i64* @_gasrem, align 8 + %"$gascmp_416" = icmp ugt i64 1, %"$gasrem_415" + br i1 %"$gascmp_416", label %"$out_of_gas_417", label %"$have_gas_418" + +"$out_of_gas_417": ; preds = %"$have_gas_413" + call void @_out_of_gas() + br label %"$have_gas_418" + +"$have_gas_418": ; preds = %"$out_of_gas_417", %"$have_gas_413" + %"$consume_419" = sub i64 %"$gasrem_415", 1 + store i64 %"$consume_419", i64* @_gasrem, align 8 + store %Int32 { i32 7 }, %Int32* @crowdfunding.cannot_get_funds, align 4, !dbg !59 + %"$gasrem_420" = load i64, i64* @_gasrem, align 8 + %"$gascmp_421" = icmp ugt i64 1, %"$gasrem_420" + br i1 %"$gascmp_421", label %"$out_of_gas_422", label %"$have_gas_423" + +"$out_of_gas_422": ; preds = %"$have_gas_418" + call void @_out_of_gas() + br label %"$have_gas_423" -"$out_of_gas_544": ; preds = %"$have_gas_540" +"$have_gas_423": ; preds = %"$out_of_gas_422", %"$have_gas_418" + %"$consume_424" = sub i64 %"$gasrem_420", 1 + store i64 %"$consume_424", i64* @_gasrem, align 8 + store %Int32 { i32 8 }, %Int32* @crowdfunding.cannot_reclaim_code, align 4, !dbg !60 + %"$gasrem_425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_426" = icmp ugt i64 1, %"$gasrem_425" + br i1 %"$gascmp_426", label %"$out_of_gas_427", label %"$have_gas_428" + +"$out_of_gas_427": ; preds = %"$have_gas_423" call void @_out_of_gas() - br label %"$have_gas_545" + br label %"$have_gas_428" -"$have_gas_545": ; preds = %"$out_of_gas_544", %"$have_gas_540" - %"$consume_546" = sub i64 %"$gasrem_542", 1 - store i64 %"$consume_546", i64* @_gasrem, align 8 - store %Int32 { i32 9 }, %Int32* @crowdfunding.reclaimed_code, align 4, !dbg !71 +"$have_gas_428": ; preds = %"$out_of_gas_427", %"$have_gas_423" + %"$consume_429" = sub i64 %"$gasrem_425", 1 + store i64 %"$consume_429", i64* @_gasrem, align 8 + store %Int32 { i32 9 }, %Int32* @crowdfunding.reclaimed_code, align 4, !dbg !61 ret void } -define void @_init_state() !dbg !72 { +define void @_init_state() !dbg !62 { entry: - %"$backers_42" = alloca %Map_ByStr20_Uint128*, align 8 - %"$gasrem_547" = load i64, i64* @_gasrem, align 8 - %"$gascmp_548" = icmp ugt i64 1, %"$gasrem_547" - br i1 %"$gascmp_548", label %"$out_of_gas_549", label %"$have_gas_550" - -"$out_of_gas_549": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_550" - -"$have_gas_550": ; preds = %"$out_of_gas_549", %entry - %"$consume_551" = sub i64 %"$gasrem_547", 1 - store i64 %"$consume_551", i64* @_gasrem, align 8 - %"$execptr_load_552" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_553" = call i8* @_new_empty_map(i8* %"$execptr_load_552") - %"$_new_empty_map_554" = bitcast i8* %"$_new_empty_map_call_553" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$_new_empty_map_554", %Map_ByStr20_Uint128** %"$backers_42", align 8, !dbg !73 - %"$execptr_load_555" = load i8*, i8** @_execptr, align 8 - %"$$backers_42_557" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$backers_42", align 8 - %"$update_value_558" = bitcast %Map_ByStr20_Uint128* %"$$backers_42_557" to i8* - call void @_update_field(i8* %"$execptr_load_555", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_556", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_83", i32 0, i8* null, i8* %"$update_value_558"), !dbg !73 - %"$funded_43" = alloca %TName_Bool*, align 8 - %"$gasrem_559" = load i64, i64* @_gasrem, align 8 - %"$gascmp_560" = icmp ugt i64 1, %"$gasrem_559" - br i1 %"$gascmp_560", label %"$out_of_gas_561", label %"$have_gas_562" - -"$out_of_gas_561": ; preds = %"$have_gas_550" - call void @_out_of_gas() - br label %"$have_gas_562" - -"$have_gas_562": ; preds = %"$out_of_gas_561", %"$have_gas_550" - %"$consume_563" = sub i64 %"$gasrem_559", 1 - store i64 %"$consume_563", i64* @_gasrem, align 8 - %"$adtval_564_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_564_salloc" = call i8* @_salloc(i8* %"$adtval_564_load", i64 1) - %"$adtval_564" = bitcast i8* %"$adtval_564_salloc" to %CName_False* - %"$adtgep_565" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_564", i32 0, i32 0 - store i8 1, i8* %"$adtgep_565", align 1 - %"$adtptr_566" = bitcast %CName_False* %"$adtval_564" to %TName_Bool* - store %TName_Bool* %"$adtptr_566", %TName_Bool** %"$funded_43", align 8, !dbg !74 - %"$execptr_load_567" = load i8*, i8** @_execptr, align 8 - %"$$funded_43_569" = load %TName_Bool*, %TName_Bool** %"$funded_43", align 8 - %"$update_value_570" = bitcast %TName_Bool* %"$$funded_43_569" to i8* - call void @_update_field(i8* %"$execptr_load_567", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_568", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", i32 0, i8* null, i8* %"$update_value_570"), !dbg !74 + %"$backers_17" = alloca %Map_ByStr20_Uint128*, align 8 + %"$gasrem_430" = load i64, i64* @_gasrem, align 8 + %"$gascmp_431" = icmp ugt i64 1, %"$gasrem_430" + br i1 %"$gascmp_431", label %"$out_of_gas_432", label %"$have_gas_433" + +"$out_of_gas_432": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_433" + +"$have_gas_433": ; preds = %"$out_of_gas_432", %entry + %"$consume_434" = sub i64 %"$gasrem_430", 1 + store i64 %"$consume_434", i64* @_gasrem, align 8 + %"$execptr_load_435" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_436" = call i8* @_new_empty_map(i8* %"$execptr_load_435") + %"$_new_empty_map_437" = bitcast i8* %"$_new_empty_map_call_436" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$_new_empty_map_437", %Map_ByStr20_Uint128** %"$backers_17", align 8, !dbg !63 + %"$execptr_load_438" = load i8*, i8** @_execptr, align 8 + %"$$backers_17_440" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$backers_17", align 8 + %"$update_value_441" = bitcast %Map_ByStr20_Uint128* %"$$backers_17_440" to i8* + call void @_update_field(i8* %"$execptr_load_438", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_439", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_58", i32 0, i8* null, i8* %"$update_value_441"), !dbg !63 + %"$funded_18" = alloca %TName_Bool*, align 8 + %"$gasrem_442" = load i64, i64* @_gasrem, align 8 + %"$gascmp_443" = icmp ugt i64 1, %"$gasrem_442" + br i1 %"$gascmp_443", label %"$out_of_gas_444", label %"$have_gas_445" + +"$out_of_gas_444": ; preds = %"$have_gas_433" + call void @_out_of_gas() + br label %"$have_gas_445" + +"$have_gas_445": ; preds = %"$out_of_gas_444", %"$have_gas_433" + %"$consume_446" = sub i64 %"$gasrem_442", 1 + store i64 %"$consume_446", i64* @_gasrem, align 8 + %"$adtval_447_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_447_salloc" = call i8* @_salloc(i8* %"$adtval_447_load", i64 1) + %"$adtval_447" = bitcast i8* %"$adtval_447_salloc" to %CName_False* + %"$adtgep_448" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_447", i32 0, i32 0 + store i8 1, i8* %"$adtgep_448", align 1 + %"$adtptr_449" = bitcast %CName_False* %"$adtval_447" to %TName_Bool* + store %TName_Bool* %"$adtptr_449", %TName_Bool** %"$funded_18", align 8, !dbg !64 + %"$execptr_load_450" = load i8*, i8** @_execptr, align 8 + %"$$funded_18_452" = load %TName_Bool*, %TName_Bool** %"$funded_18", align 8 + %"$update_value_453" = bitcast %TName_Bool* %"$$funded_18_452" to i8* + call void @_update_field(i8* %"$execptr_load_450", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_451", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", i32 0, i8* null, i8* %"$update_value_453"), !dbg !64 ret void } @@ -1187,476 +1000,452 @@ declare i8* @_new_empty_map(i8*) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$Donate_571"(%Uint128 %_amount, [20 x i8]* %"$_origin_572", [20 x i8]* %"$_sender_573") !dbg !75 { +define internal void @"$Donate_454"(%Uint128 %_amount, [20 x i8]* %"$_origin_455", [20 x i8]* %"$_sender_456") !dbg !65 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_572", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_573", align 1 - %"$gasrem_574" = load i64, i64* @_gasrem, align 8 - %"$gascmp_575" = icmp ugt i64 1, %"$gasrem_574" - br i1 %"$gascmp_575", label %"$out_of_gas_576", label %"$have_gas_577" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_455", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_456", align 1 + %"$gasrem_457" = load i64, i64* @_gasrem, align 8 + %"$gascmp_458" = icmp ugt i64 1, %"$gasrem_457" + br i1 %"$gascmp_458", label %"$out_of_gas_459", label %"$have_gas_460" -"$out_of_gas_576": ; preds = %entry +"$out_of_gas_459": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_577" + br label %"$have_gas_460" -"$have_gas_577": ; preds = %"$out_of_gas_576", %entry - %"$consume_578" = sub i64 %"$gasrem_574", 1 - store i64 %"$consume_578", i64* @_gasrem, align 8 +"$have_gas_460": ; preds = %"$out_of_gas_459", %entry + %"$consume_461" = sub i64 %"$gasrem_457", 1 + store i64 %"$consume_461", i64* @_gasrem, align 8 %blk = alloca i8*, align 8 - %"$execptr_load_580" = load i8*, i8** @_execptr, align 8 - %"$blk_call_581" = call i8* @_read_blockchain(i8* %"$execptr_load_580", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_579", i32 0, i32 0), i32 11 }), !dbg !76 - store i8* %"$blk_call_581", i8** %blk, align 8 + %"$execptr_load_463" = load i8*, i8** @_execptr, align 8 + %"$blk_call_464" = call i8* @_read_blockchain(i8* %"$execptr_load_463", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_462", i32 0, i32 0), i32 11 }), !dbg !66 + store i8* %"$blk_call_464", i8** %blk, align 8 + %"$gasrem_466" = load i64, i64* @_gasrem, align 8 + %"$gascmp_467" = icmp ugt i64 1, %"$gasrem_466" + br i1 %"$gascmp_467", label %"$out_of_gas_468", label %"$have_gas_469" + +"$out_of_gas_468": ; preds = %"$have_gas_460" + call void @_out_of_gas() + br label %"$have_gas_469" + +"$have_gas_469": ; preds = %"$out_of_gas_468", %"$have_gas_460" + %"$consume_470" = sub i64 %"$gasrem_466", 1 + store i64 %"$consume_470", i64* @_gasrem, align 8 + %in_time = alloca %TName_Bool*, align 8 + %"$gasrem_471" = load i64, i64* @_gasrem, align 8 + %"$gascmp_472" = icmp ugt i64 1, %"$gasrem_471" + br i1 %"$gascmp_472", label %"$out_of_gas_473", label %"$have_gas_474" + +"$out_of_gas_473": ; preds = %"$have_gas_469" + call void @_out_of_gas() + br label %"$have_gas_474" + +"$have_gas_474": ; preds = %"$out_of_gas_473", %"$have_gas_469" + %"$consume_475" = sub i64 %"$gasrem_471", 1 + store i64 %"$consume_475", i64* @_gasrem, align 8 + %"$crowdfunding.blk_leq_476" = load { %TName_Bool* (i8*, i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8 + %"$crowdfunding.blk_leq_fptr_477" = extractvalue { %TName_Bool* (i8*, i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_476", 0 + %"$crowdfunding.blk_leq_envptr_478" = extractvalue { %TName_Bool* (i8*, i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_476", 1 + %"$blk_479" = load i8*, i8** %blk, align 8 + %"$max_block_480" = load i8*, i8** @_cparam_max_block, align 8 + %"$crowdfunding.blk_leq_call_481" = call %TName_Bool* %"$crowdfunding.blk_leq_fptr_477"(i8* %"$crowdfunding.blk_leq_envptr_478", i8* %"$blk_479", i8* %"$max_block_480"), !dbg !67 + store %TName_Bool* %"$crowdfunding.blk_leq_call_481", %TName_Bool** %in_time, align 8, !dbg !67 + %"$gasrem_482" = load i64, i64* @_gasrem, align 8 + %"$gascmp_483" = icmp ugt i64 2, %"$gasrem_482" + br i1 %"$gascmp_483", label %"$out_of_gas_484", label %"$have_gas_485" + +"$out_of_gas_484": ; preds = %"$have_gas_474" + call void @_out_of_gas() + br label %"$have_gas_485" + +"$have_gas_485": ; preds = %"$out_of_gas_484", %"$have_gas_474" + %"$consume_486" = sub i64 %"$gasrem_482", 2 + store i64 %"$consume_486", i64* @_gasrem, align 8 + %"$in_time_488" = load %TName_Bool*, %TName_Bool** %in_time, align 8 + %"$in_time_tag_489" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$in_time_488", i32 0, i32 0 + %"$in_time_tag_490" = load i8, i8* %"$in_time_tag_489", align 1 + switch i8 %"$in_time_tag_490", label %"$empty_default_491" [ + i8 0, label %"$True_492" + i8 1, label %"$False_664" + ], !dbg !68 + +"$True_492": ; preds = %"$have_gas_485" + %"$in_time_493" = bitcast %TName_Bool* %"$in_time_488" to %CName_True* + %bs = alloca %Map_ByStr20_Uint128*, align 8 + %"$execptr_load_495" = load i8*, i8** @_execptr, align 8 + %"$bs_call_496" = call i8* @_fetch_field(i8* %"$execptr_load_495", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_494", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_58", i32 0, i8* null, i32 1), !dbg !69 + %"$bs_497" = bitcast i8* %"$bs_call_496" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$bs_497", %Map_ByStr20_Uint128** %bs, align 8 + %"$bs_498" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_498_499" = bitcast %Map_ByStr20_Uint128* %"$bs_498" to i8* + %"$_literal_cost_call_500" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_498_499") + %"$bs_501" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_501_502" = bitcast %Map_ByStr20_Uint128* %"$bs_501" to i8* + %"$_mapsortcost_call_503" = call i64 @_mapsortcost(i8* %"$$bs_501_502") + %"$gasadd_504" = add i64 %"$_literal_cost_call_500", %"$_mapsortcost_call_503" + %"$gasrem_505" = load i64, i64* @_gasrem, align 8 + %"$gascmp_506" = icmp ugt i64 %"$gasadd_504", %"$gasrem_505" + br i1 %"$gascmp_506", label %"$out_of_gas_507", label %"$have_gas_508" + +"$out_of_gas_507": ; preds = %"$True_492" + call void @_out_of_gas() + br label %"$have_gas_508" + +"$have_gas_508": ; preds = %"$out_of_gas_507", %"$True_492" + %"$consume_509" = sub i64 %"$gasrem_505", %"$gasadd_504" + store i64 %"$consume_509", i64* @_gasrem, align 8 + %"$gasrem_510" = load i64, i64* @_gasrem, align 8 + %"$gascmp_511" = icmp ugt i64 1, %"$gasrem_510" + br i1 %"$gascmp_511", label %"$out_of_gas_512", label %"$have_gas_513" + +"$out_of_gas_512": ; preds = %"$have_gas_508" + call void @_out_of_gas() + br label %"$have_gas_513" + +"$have_gas_513": ; preds = %"$out_of_gas_512", %"$have_gas_508" + %"$consume_514" = sub i64 %"$gasrem_510", 1 + store i64 %"$consume_514", i64* @_gasrem, align 8 + %res = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, align 8 + %"$gasrem_515" = load i64, i64* @_gasrem, align 8 + %"$gascmp_516" = icmp ugt i64 1, %"$gasrem_515" + br i1 %"$gascmp_516", label %"$out_of_gas_517", label %"$have_gas_518" + +"$out_of_gas_517": ; preds = %"$have_gas_513" + call void @_out_of_gas() + br label %"$have_gas_518" + +"$have_gas_518": ; preds = %"$out_of_gas_517", %"$have_gas_513" + %"$consume_519" = sub i64 %"$gasrem_515", 1 + store i64 %"$consume_519", i64* @_gasrem, align 8 + %"$crowdfunding.check_update_520" = load { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* }* @crowdfunding.check_update, align 8 + %"$crowdfunding.check_update_fptr_521" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* } %"$crowdfunding.check_update_520", 0 + %"$crowdfunding.check_update_envptr_522" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* } %"$crowdfunding.check_update_520", 1 + %"$bs_523" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$crowdfunding.check_update__sender_524" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$crowdfunding.check_update__sender_524", align 1 + %"$crowdfunding.check_update_call_525" = call %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$crowdfunding.check_update_fptr_521"(i8* %"$crowdfunding.check_update_envptr_522", %Map_ByStr20_Uint128* %"$bs_523", [20 x i8]* %"$crowdfunding.check_update__sender_524", %Uint128 %_amount), !dbg !72 + store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$crowdfunding.check_update_call_525", %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8, !dbg !72 + %"$gasrem_526" = load i64, i64* @_gasrem, align 8 + %"$gascmp_527" = icmp ugt i64 2, %"$gasrem_526" + br i1 %"$gascmp_527", label %"$out_of_gas_528", label %"$have_gas_529" + +"$out_of_gas_528": ; preds = %"$have_gas_518" + call void @_out_of_gas() + br label %"$have_gas_529" + +"$have_gas_529": ; preds = %"$out_of_gas_528", %"$have_gas_518" + %"$consume_530" = sub i64 %"$gasrem_526", 2 + store i64 %"$consume_530", i64* @_gasrem, align 8 + %"$res_532" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8 + %"$res_tag_533" = getelementptr inbounds %"TName_Option_Map_(ByStr20)_(Uint128)", %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_532", i32 0, i32 0 + %"$res_tag_534" = load i8, i8* %"$res_tag_533", align 1 + switch i8 %"$res_tag_534", label %"$empty_default_535" [ + i8 1, label %"$None_536" + i8 0, label %"$Some_590" + ], !dbg !73 + +"$None_536": ; preds = %"$have_gas_529" + %"$res_537" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_532" to %"CName_None_Map_(ByStr20)_(Uint128)"* + %"$gasrem_538" = load i64, i64* @_gasrem, align 8 + %"$gascmp_539" = icmp ugt i64 1, %"$gasrem_538" + br i1 %"$gascmp_539", label %"$out_of_gas_540", label %"$have_gas_541" + +"$out_of_gas_540": ; preds = %"$None_536" + call void @_out_of_gas() + br label %"$have_gas_541" + +"$have_gas_541": ; preds = %"$out_of_gas_540", %"$None_536" + %"$consume_542" = sub i64 %"$gasrem_538", 1 + store i64 %"$consume_542", i64* @_gasrem, align 8 + %e = alloca i8*, align 8 + %"$gasrem_543" = load i64, i64* @_gasrem, align 8 + %"$gascmp_544" = icmp ugt i64 1, %"$gasrem_543" + br i1 %"$gascmp_544", label %"$out_of_gas_545", label %"$have_gas_546" + +"$out_of_gas_545": ; preds = %"$have_gas_541" + call void @_out_of_gas() + br label %"$have_gas_546" + +"$have_gas_546": ; preds = %"$out_of_gas_545", %"$have_gas_541" + %"$consume_547" = sub i64 %"$gasrem_543", 1 + store i64 %"$consume_547", i64* @_gasrem, align 8 + %"$msgobj_548_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_548_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_548_salloc_load", i64 153) + %"$msgobj_548_salloc" = bitcast i8* %"$msgobj_548_salloc_salloc" to [153 x i8]* + %"$msgobj_548" = bitcast [153 x i8]* %"$msgobj_548_salloc" to i8* + store i8 4, i8* %"$msgobj_548", align 1 + %"$msgobj_fname_550" = getelementptr i8, i8* %"$msgobj_548", i32 1 + %"$msgobj_fname_551" = bitcast i8* %"$msgobj_fname_550" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_549", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_551", align 8 + %"$msgobj_td_552" = getelementptr i8, i8* %"$msgobj_548", i32 17 + %"$msgobj_td_553" = bitcast i8* %"$msgobj_td_552" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_553", align 8 + %"$msgobj_v_555" = getelementptr i8, i8* %"$msgobj_548", i32 25 + %"$msgobj_v_556" = bitcast i8* %"$msgobj_v_555" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_554", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_556", align 8 + %"$msgobj_fname_558" = getelementptr i8, i8* %"$msgobj_548", i32 41 + %"$msgobj_fname_559" = bitcast i8* %"$msgobj_fname_558" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_557", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_559", align 8 + %"$msgobj_td_560" = getelementptr i8, i8* %"$msgobj_548", i32 57 + %"$msgobj_td_561" = bitcast i8* %"$msgobj_td_560" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_561", align 8 + %"$msgobj_v_562" = getelementptr i8, i8* %"$msgobj_548", i32 65 + %"$msgobj_v_563" = bitcast i8* %"$msgobj_v_562" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_563", align 1 + %"$msgobj_fname_565" = getelementptr i8, i8* %"$msgobj_548", i32 85 + %"$msgobj_fname_566" = bitcast i8* %"$msgobj_fname_565" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_564", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_566", align 8 + %"$msgobj_td_567" = getelementptr i8, i8* %"$msgobj_548", i32 101 + %"$msgobj_td_568" = bitcast i8* %"$msgobj_td_567" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_568", align 8 + %"$msgobj_v_569" = getelementptr i8, i8* %"$msgobj_548", i32 109 + %"$msgobj_v_570" = bitcast i8* %"$msgobj_v_569" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_570", align 8 + %"$msgobj_fname_572" = getelementptr i8, i8* %"$msgobj_548", i32 125 + %"$msgobj_fname_573" = bitcast i8* %"$msgobj_fname_572" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_571", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_573", align 8 + %"$msgobj_td_574" = getelementptr i8, i8* %"$msgobj_548", i32 141 + %"$msgobj_td_575" = bitcast i8* %"$msgobj_td_574" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_575", align 8 + %"$crowdfunding.already_backed_code_576" = load %Int32, %Int32* @crowdfunding.already_backed_code, align 4 + %"$msgobj_v_577" = getelementptr i8, i8* %"$msgobj_548", i32 149 + %"$msgobj_v_578" = bitcast i8* %"$msgobj_v_577" to %Int32* + store %Int32 %"$crowdfunding.already_backed_code_576", %Int32* %"$msgobj_v_578", align 4 + store i8* %"$msgobj_548", i8** %e, align 8, !dbg !74 + %"$e_580" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_582" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_580") %"$gasrem_583" = load i64, i64* @_gasrem, align 8 - %"$gascmp_584" = icmp ugt i64 1, %"$gasrem_583" + %"$gascmp_584" = icmp ugt i64 %"$_literal_cost_call_582", %"$gasrem_583" br i1 %"$gascmp_584", label %"$out_of_gas_585", label %"$have_gas_586" -"$out_of_gas_585": ; preds = %"$have_gas_577" +"$out_of_gas_585": ; preds = %"$have_gas_546" call void @_out_of_gas() br label %"$have_gas_586" -"$have_gas_586": ; preds = %"$out_of_gas_585", %"$have_gas_577" - %"$consume_587" = sub i64 %"$gasrem_583", 1 +"$have_gas_586": ; preds = %"$out_of_gas_585", %"$have_gas_546" + %"$consume_587" = sub i64 %"$gasrem_583", %"$_literal_cost_call_582" store i64 %"$consume_587", i64* @_gasrem, align 8 - %in_time = alloca %TName_Bool*, align 8 - %"$gasrem_588" = load i64, i64* @_gasrem, align 8 - %"$gascmp_589" = icmp ugt i64 1, %"$gasrem_588" - br i1 %"$gascmp_589", label %"$out_of_gas_590", label %"$have_gas_591" - -"$out_of_gas_590": ; preds = %"$have_gas_586" - call void @_out_of_gas() - br label %"$have_gas_591" - -"$have_gas_591": ; preds = %"$out_of_gas_590", %"$have_gas_586" - %"$consume_592" = sub i64 %"$gasrem_588", 1 - store i64 %"$consume_592", i64* @_gasrem, align 8 - %"$crowdfunding.blk_leq_5" = alloca { %TName_Bool* (i8*, i8*)*, i8* }, align 8 - %"$crowdfunding.blk_leq_593" = load { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }, { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8 - %"$crowdfunding.blk_leq_fptr_594" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_593", 0 - %"$crowdfunding.blk_leq_envptr_595" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_593", 1 - %"$blk_596" = load i8*, i8** %blk, align 8 - %"$crowdfunding.blk_leq_call_597" = call { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_fptr_594"(i8* %"$crowdfunding.blk_leq_envptr_595", i8* %"$blk_596"), !dbg !77 - store { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_call_597", { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_5", align 8, !dbg !77 - %"$crowdfunding.blk_leq_6" = alloca %TName_Bool*, align 8 - %"$$crowdfunding.blk_leq_5_598" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_5", align 8 - %"$$crowdfunding.blk_leq_5_fptr_599" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_5_598", 0 - %"$$crowdfunding.blk_leq_5_envptr_600" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_5_598", 1 - %"$max_block_601" = load i8*, i8** @_cparam_max_block, align 8 - %"$$crowdfunding.blk_leq_5_call_602" = call %TName_Bool* %"$$crowdfunding.blk_leq_5_fptr_599"(i8* %"$$crowdfunding.blk_leq_5_envptr_600", i8* %"$max_block_601"), !dbg !77 - store %TName_Bool* %"$$crowdfunding.blk_leq_5_call_602", %TName_Bool** %"$crowdfunding.blk_leq_6", align 8, !dbg !77 - %"$$crowdfunding.blk_leq_6_603" = load %TName_Bool*, %TName_Bool** %"$crowdfunding.blk_leq_6", align 8 - store %TName_Bool* %"$$crowdfunding.blk_leq_6_603", %TName_Bool** %in_time, align 8, !dbg !77 - %"$gasrem_604" = load i64, i64* @_gasrem, align 8 - %"$gascmp_605" = icmp ugt i64 2, %"$gasrem_604" - br i1 %"$gascmp_605", label %"$out_of_gas_606", label %"$have_gas_607" - -"$out_of_gas_606": ; preds = %"$have_gas_591" - call void @_out_of_gas() - br label %"$have_gas_607" - -"$have_gas_607": ; preds = %"$out_of_gas_606", %"$have_gas_591" - %"$consume_608" = sub i64 %"$gasrem_604", 2 - store i64 %"$consume_608", i64* @_gasrem, align 8 - %"$in_time_610" = load %TName_Bool*, %TName_Bool** %in_time, align 8 - %"$in_time_tag_611" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$in_time_610", i32 0, i32 0 - %"$in_time_tag_612" = load i8, i8* %"$in_time_tag_611", align 1 - switch i8 %"$in_time_tag_612", label %"$empty_default_613" [ - i8 0, label %"$True_614" - i8 1, label %"$False_795" - ], !dbg !78 - -"$True_614": ; preds = %"$have_gas_607" - %"$in_time_615" = bitcast %TName_Bool* %"$in_time_610" to %CName_True* - %bs = alloca %Map_ByStr20_Uint128*, align 8 - %"$execptr_load_617" = load i8*, i8** @_execptr, align 8 - %"$bs_call_618" = call i8* @_fetch_field(i8* %"$execptr_load_617", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_616", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_83", i32 0, i8* null, i32 1), !dbg !79 - %"$bs_619" = bitcast i8* %"$bs_call_618" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$bs_619", %Map_ByStr20_Uint128** %bs, align 8 - %"$bs_620" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_620_621" = bitcast %Map_ByStr20_Uint128* %"$bs_620" to i8* - %"$_literal_cost_call_622" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_620_621") - %"$bs_623" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_623_624" = bitcast %Map_ByStr20_Uint128* %"$bs_623" to i8* - %"$_mapsortcost_call_625" = call i64 @_mapsortcost(i8* %"$$bs_623_624") - %"$gasadd_626" = add i64 %"$_literal_cost_call_622", %"$_mapsortcost_call_625" - %"$gasrem_627" = load i64, i64* @_gasrem, align 8 - %"$gascmp_628" = icmp ugt i64 %"$gasadd_626", %"$gasrem_627" - br i1 %"$gascmp_628", label %"$out_of_gas_629", label %"$have_gas_630" - -"$out_of_gas_629": ; preds = %"$True_614" - call void @_out_of_gas() - br label %"$have_gas_630" - -"$have_gas_630": ; preds = %"$out_of_gas_629", %"$True_614" - %"$consume_631" = sub i64 %"$gasrem_627", %"$gasadd_626" - store i64 %"$consume_631", i64* @_gasrem, align 8 - %"$gasrem_632" = load i64, i64* @_gasrem, align 8 - %"$gascmp_633" = icmp ugt i64 1, %"$gasrem_632" - br i1 %"$gascmp_633", label %"$out_of_gas_634", label %"$have_gas_635" - -"$out_of_gas_634": ; preds = %"$have_gas_630" - call void @_out_of_gas() - br label %"$have_gas_635" - -"$have_gas_635": ; preds = %"$out_of_gas_634", %"$have_gas_630" - %"$consume_636" = sub i64 %"$gasrem_632", 1 - store i64 %"$consume_636", i64* @_gasrem, align 8 - %res = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, align 8 - %"$gasrem_637" = load i64, i64* @_gasrem, align 8 - %"$gascmp_638" = icmp ugt i64 1, %"$gasrem_637" - br i1 %"$gascmp_638", label %"$out_of_gas_639", label %"$have_gas_640" - -"$out_of_gas_639": ; preds = %"$have_gas_635" - call void @_out_of_gas() - br label %"$have_gas_640" - -"$have_gas_640": ; preds = %"$out_of_gas_639", %"$have_gas_635" - %"$consume_641" = sub i64 %"$gasrem_637", 1 - store i64 %"$consume_641", i64* @_gasrem, align 8 - %"$crowdfunding.check_update_2" = alloca { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$crowdfunding.check_update_642" = load { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* }, { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* }* @crowdfunding.check_update, align 8 - %"$crowdfunding.check_update_fptr_643" = extractvalue { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } %"$crowdfunding.check_update_642", 0 - %"$crowdfunding.check_update_envptr_644" = extractvalue { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } %"$crowdfunding.check_update_642", 1 - %"$bs_645" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$crowdfunding.check_update_call_646" = call { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$crowdfunding.check_update_fptr_643"(i8* %"$crowdfunding.check_update_envptr_644", %Map_ByStr20_Uint128* %"$bs_645"), !dbg !82 - store { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$crowdfunding.check_update_call_646", { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$crowdfunding.check_update_2", align 8, !dbg !82 - %"$crowdfunding.check_update_3" = alloca { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, align 8 - %"$$crowdfunding.check_update_2_647" = load { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$crowdfunding.check_update_2", align 8 - %"$$crowdfunding.check_update_2_fptr_648" = extractvalue { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$crowdfunding.check_update_2_647", 0 - %"$$crowdfunding.check_update_2_envptr_649" = extractvalue { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$crowdfunding.check_update_2_647", 1 - %"$$crowdfunding.check_update_2__sender_650" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$crowdfunding.check_update_2__sender_650", align 1 - %"$$crowdfunding.check_update_2_call_651" = call { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_2_fptr_648"(i8* %"$$crowdfunding.check_update_2_envptr_649", [20 x i8]* %"$$crowdfunding.check_update_2__sender_650"), !dbg !82 - store { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_2_call_651", { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$crowdfunding.check_update_3", align 8, !dbg !82 - %"$crowdfunding.check_update_4" = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, align 8 - %"$$crowdfunding.check_update_3_652" = load { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$crowdfunding.check_update_3", align 8 - %"$$crowdfunding.check_update_3_fptr_653" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_3_652", 0 - %"$$crowdfunding.check_update_3_envptr_654" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_3_652", 1 - %"$$crowdfunding.check_update_3_call_655" = call %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_3_fptr_653"(i8* %"$$crowdfunding.check_update_3_envptr_654", %Uint128 %_amount), !dbg !82 - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_3_call_655", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$crowdfunding.check_update_4", align 8, !dbg !82 - %"$$crowdfunding.check_update_4_656" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$crowdfunding.check_update_4", align 8 - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_4_656", %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8, !dbg !82 + %"$execptr_load_588" = load i8*, i8** @_execptr, align 8 + %"$e_589" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_588", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_589"), !dbg !77 + br label %"$matchsucc_531" + +"$Some_590": ; preds = %"$have_gas_529" + %"$res_591" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_532" to %"CName_Some_Map_(ByStr20)_(Uint128)"* + %"$bs1_gep_592" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$res_591", i32 0, i32 1 + %"$bs1_load_593" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$bs1_gep_592", align 8 + %bs1 = alloca %Map_ByStr20_Uint128*, align 8 + store %Map_ByStr20_Uint128* %"$bs1_load_593", %Map_ByStr20_Uint128** %bs1, align 8 + %"$bs1_594" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$$bs1_594_595" = bitcast %Map_ByStr20_Uint128* %"$bs1_594" to i8* + %"$_literal_cost_call_596" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs1_594_595") + %"$gasrem_597" = load i64, i64* @_gasrem, align 8 + %"$gascmp_598" = icmp ugt i64 %"$_literal_cost_call_596", %"$gasrem_597" + br i1 %"$gascmp_598", label %"$out_of_gas_599", label %"$have_gas_600" + +"$out_of_gas_599": ; preds = %"$Some_590" + call void @_out_of_gas() + br label %"$have_gas_600" + +"$have_gas_600": ; preds = %"$out_of_gas_599", %"$Some_590" + %"$consume_601" = sub i64 %"$gasrem_597", %"$_literal_cost_call_596" + store i64 %"$consume_601", i64* @_gasrem, align 8 + %"$execptr_load_602" = load i8*, i8** @_execptr, align 8 + %"$bs1_604" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$update_value_605" = bitcast %Map_ByStr20_Uint128* %"$bs1_604" to i8* + call void @_update_field(i8* %"$execptr_load_602", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_603", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_58", i32 0, i8* null, i8* %"$update_value_605"), !dbg !78 + %"$gasrem_606" = load i64, i64* @_gasrem, align 8 + %"$gascmp_607" = icmp ugt i64 1, %"$gasrem_606" + br i1 %"$gascmp_607", label %"$out_of_gas_608", label %"$have_gas_609" + +"$out_of_gas_608": ; preds = %"$have_gas_600" + call void @_out_of_gas() + br label %"$have_gas_609" + +"$have_gas_609": ; preds = %"$out_of_gas_608", %"$have_gas_600" + %"$consume_610" = sub i64 %"$gasrem_606", 1 + store i64 %"$consume_610", i64* @_gasrem, align 8 + %"$execptr_load_611" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_611"), !dbg !80 + %"$gasrem_612" = load i64, i64* @_gasrem, align 8 + %"$gascmp_613" = icmp ugt i64 1, %"$gasrem_612" + br i1 %"$gascmp_613", label %"$out_of_gas_614", label %"$have_gas_615" + +"$out_of_gas_614": ; preds = %"$have_gas_609" + call void @_out_of_gas() + br label %"$have_gas_615" + +"$have_gas_615": ; preds = %"$out_of_gas_614", %"$have_gas_609" + %"$consume_616" = sub i64 %"$gasrem_612", 1 + store i64 %"$consume_616", i64* @_gasrem, align 8 + %e1 = alloca i8*, align 8 + %"$gasrem_617" = load i64, i64* @_gasrem, align 8 + %"$gascmp_618" = icmp ugt i64 1, %"$gasrem_617" + br i1 %"$gascmp_618", label %"$out_of_gas_619", label %"$have_gas_620" + +"$out_of_gas_619": ; preds = %"$have_gas_615" + call void @_out_of_gas() + br label %"$have_gas_620" + +"$have_gas_620": ; preds = %"$out_of_gas_619", %"$have_gas_615" + %"$consume_621" = sub i64 %"$gasrem_617", 1 + store i64 %"$consume_621", i64* @_gasrem, align 8 + %"$msgobj_622_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_622_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_622_salloc_load", i64 153) + %"$msgobj_622_salloc" = bitcast i8* %"$msgobj_622_salloc_salloc" to [153 x i8]* + %"$msgobj_622" = bitcast [153 x i8]* %"$msgobj_622_salloc" to i8* + store i8 4, i8* %"$msgobj_622", align 1 + %"$msgobj_fname_624" = getelementptr i8, i8* %"$msgobj_622", i32 1 + %"$msgobj_fname_625" = bitcast i8* %"$msgobj_fname_624" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_623", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_625", align 8 + %"$msgobj_td_626" = getelementptr i8, i8* %"$msgobj_622", i32 17 + %"$msgobj_td_627" = bitcast i8* %"$msgobj_td_626" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_627", align 8 + %"$msgobj_v_629" = getelementptr i8, i8* %"$msgobj_622", i32 25 + %"$msgobj_v_630" = bitcast i8* %"$msgobj_v_629" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_628", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_630", align 8 + %"$msgobj_fname_632" = getelementptr i8, i8* %"$msgobj_622", i32 41 + %"$msgobj_fname_633" = bitcast i8* %"$msgobj_fname_632" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_631", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_633", align 8 + %"$msgobj_td_634" = getelementptr i8, i8* %"$msgobj_622", i32 57 + %"$msgobj_td_635" = bitcast i8* %"$msgobj_td_634" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_635", align 8 + %"$msgobj_v_636" = getelementptr i8, i8* %"$msgobj_622", i32 65 + %"$msgobj_v_637" = bitcast i8* %"$msgobj_v_636" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_637", align 1 + %"$msgobj_fname_639" = getelementptr i8, i8* %"$msgobj_622", i32 85 + %"$msgobj_fname_640" = bitcast i8* %"$msgobj_fname_639" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_638", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_640", align 8 + %"$msgobj_td_641" = getelementptr i8, i8* %"$msgobj_622", i32 101 + %"$msgobj_td_642" = bitcast i8* %"$msgobj_td_641" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_642", align 8 + %"$msgobj_v_643" = getelementptr i8, i8* %"$msgobj_622", i32 109 + %"$msgobj_v_644" = bitcast i8* %"$msgobj_v_643" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_644", align 8 + %"$msgobj_fname_646" = getelementptr i8, i8* %"$msgobj_622", i32 125 + %"$msgobj_fname_647" = bitcast i8* %"$msgobj_fname_646" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_645", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_647", align 8 + %"$msgobj_td_648" = getelementptr i8, i8* %"$msgobj_622", i32 141 + %"$msgobj_td_649" = bitcast i8* %"$msgobj_td_648" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_649", align 8 + %"$crowdfunding.accepted_code_650" = load %Int32, %Int32* @crowdfunding.accepted_code, align 4 + %"$msgobj_v_651" = getelementptr i8, i8* %"$msgobj_622", i32 149 + %"$msgobj_v_652" = bitcast i8* %"$msgobj_v_651" to %Int32* + store %Int32 %"$crowdfunding.accepted_code_650", %Int32* %"$msgobj_v_652", align 4 + store i8* %"$msgobj_622", i8** %e1, align 8, !dbg !81 + %"$e_654" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_656" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_654") %"$gasrem_657" = load i64, i64* @_gasrem, align 8 - %"$gascmp_658" = icmp ugt i64 2, %"$gasrem_657" + %"$gascmp_658" = icmp ugt i64 %"$_literal_cost_call_656", %"$gasrem_657" br i1 %"$gascmp_658", label %"$out_of_gas_659", label %"$have_gas_660" -"$out_of_gas_659": ; preds = %"$have_gas_640" +"$out_of_gas_659": ; preds = %"$have_gas_620" call void @_out_of_gas() br label %"$have_gas_660" -"$have_gas_660": ; preds = %"$out_of_gas_659", %"$have_gas_640" - %"$consume_661" = sub i64 %"$gasrem_657", 2 +"$have_gas_660": ; preds = %"$out_of_gas_659", %"$have_gas_620" + %"$consume_661" = sub i64 %"$gasrem_657", %"$_literal_cost_call_656" store i64 %"$consume_661", i64* @_gasrem, align 8 - %"$res_663" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8 - %"$res_tag_664" = getelementptr inbounds %"TName_Option_Map_(ByStr20)_(Uint128)", %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_663", i32 0, i32 0 - %"$res_tag_665" = load i8, i8* %"$res_tag_664", align 1 - switch i8 %"$res_tag_665", label %"$empty_default_666" [ - i8 1, label %"$None_667" - i8 0, label %"$Some_721" - ], !dbg !83 - -"$None_667": ; preds = %"$have_gas_660" - %"$res_668" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_663" to %"CName_None_Map_(ByStr20)_(Uint128)"* - %"$gasrem_669" = load i64, i64* @_gasrem, align 8 - %"$gascmp_670" = icmp ugt i64 1, %"$gasrem_669" - br i1 %"$gascmp_670", label %"$out_of_gas_671", label %"$have_gas_672" - -"$out_of_gas_671": ; preds = %"$None_667" - call void @_out_of_gas() - br label %"$have_gas_672" - -"$have_gas_672": ; preds = %"$out_of_gas_671", %"$None_667" - %"$consume_673" = sub i64 %"$gasrem_669", 1 - store i64 %"$consume_673", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 - %"$gasrem_674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_675" = icmp ugt i64 1, %"$gasrem_674" - br i1 %"$gascmp_675", label %"$out_of_gas_676", label %"$have_gas_677" - -"$out_of_gas_676": ; preds = %"$have_gas_672" - call void @_out_of_gas() - br label %"$have_gas_677" - -"$have_gas_677": ; preds = %"$out_of_gas_676", %"$have_gas_672" - %"$consume_678" = sub i64 %"$gasrem_674", 1 - store i64 %"$consume_678", i64* @_gasrem, align 8 - %"$msgobj_679_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_679_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_679_salloc_load", i64 153) - %"$msgobj_679_salloc" = bitcast i8* %"$msgobj_679_salloc_salloc" to [153 x i8]* - %"$msgobj_679" = bitcast [153 x i8]* %"$msgobj_679_salloc" to i8* - store i8 4, i8* %"$msgobj_679", align 1 - %"$msgobj_fname_681" = getelementptr i8, i8* %"$msgobj_679", i32 1 - %"$msgobj_fname_682" = bitcast i8* %"$msgobj_fname_681" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_680", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_682", align 8 - %"$msgobj_td_683" = getelementptr i8, i8* %"$msgobj_679", i32 17 - %"$msgobj_td_684" = bitcast i8* %"$msgobj_td_683" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_684", align 8 - %"$msgobj_v_686" = getelementptr i8, i8* %"$msgobj_679", i32 25 - %"$msgobj_v_687" = bitcast i8* %"$msgobj_v_686" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_685", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_687", align 8 - %"$msgobj_fname_689" = getelementptr i8, i8* %"$msgobj_679", i32 41 - %"$msgobj_fname_690" = bitcast i8* %"$msgobj_fname_689" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_688", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_690", align 8 - %"$msgobj_td_691" = getelementptr i8, i8* %"$msgobj_679", i32 57 - %"$msgobj_td_692" = bitcast i8* %"$msgobj_td_691" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_692", align 8 - %"$msgobj_v_693" = getelementptr i8, i8* %"$msgobj_679", i32 65 - %"$msgobj_v_694" = bitcast i8* %"$msgobj_v_693" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_694", align 1 - %"$msgobj_fname_696" = getelementptr i8, i8* %"$msgobj_679", i32 85 - %"$msgobj_fname_697" = bitcast i8* %"$msgobj_fname_696" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_695", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_697", align 8 - %"$msgobj_td_698" = getelementptr i8, i8* %"$msgobj_679", i32 101 - %"$msgobj_td_699" = bitcast i8* %"$msgobj_td_698" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_699", align 8 - %"$msgobj_v_700" = getelementptr i8, i8* %"$msgobj_679", i32 109 - %"$msgobj_v_701" = bitcast i8* %"$msgobj_v_700" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_701", align 8 - %"$msgobj_fname_703" = getelementptr i8, i8* %"$msgobj_679", i32 125 - %"$msgobj_fname_704" = bitcast i8* %"$msgobj_fname_703" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_702", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_704", align 8 - %"$msgobj_td_705" = getelementptr i8, i8* %"$msgobj_679", i32 141 - %"$msgobj_td_706" = bitcast i8* %"$msgobj_td_705" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_706", align 8 - %"$crowdfunding.already_backed_code_707" = load %Int32, %Int32* @crowdfunding.already_backed_code, align 4 - %"$msgobj_v_708" = getelementptr i8, i8* %"$msgobj_679", i32 149 - %"$msgobj_v_709" = bitcast i8* %"$msgobj_v_708" to %Int32* - store %Int32 %"$crowdfunding.already_backed_code_707", %Int32* %"$msgobj_v_709", align 4 - store i8* %"$msgobj_679", i8** %e, align 8, !dbg !84 - %"$e_711" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_713" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_711") - %"$gasrem_714" = load i64, i64* @_gasrem, align 8 - %"$gascmp_715" = icmp ugt i64 %"$_literal_cost_call_713", %"$gasrem_714" - br i1 %"$gascmp_715", label %"$out_of_gas_716", label %"$have_gas_717" - -"$out_of_gas_716": ; preds = %"$have_gas_677" - call void @_out_of_gas() - br label %"$have_gas_717" - -"$have_gas_717": ; preds = %"$out_of_gas_716", %"$have_gas_677" - %"$consume_718" = sub i64 %"$gasrem_714", %"$_literal_cost_call_713" - store i64 %"$consume_718", i64* @_gasrem, align 8 - %"$execptr_load_719" = load i8*, i8** @_execptr, align 8 - %"$e_720" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_719", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_720"), !dbg !87 - br label %"$matchsucc_662" - -"$Some_721": ; preds = %"$have_gas_660" - %"$res_722" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_663" to %"CName_Some_Map_(ByStr20)_(Uint128)"* - %"$bs1_gep_723" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$res_722", i32 0, i32 1 - %"$bs1_load_724" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$bs1_gep_723", align 8 - %bs1 = alloca %Map_ByStr20_Uint128*, align 8 - store %Map_ByStr20_Uint128* %"$bs1_load_724", %Map_ByStr20_Uint128** %bs1, align 8 - %"$bs1_725" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$$bs1_725_726" = bitcast %Map_ByStr20_Uint128* %"$bs1_725" to i8* - %"$_literal_cost_call_727" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs1_725_726") - %"$gasrem_728" = load i64, i64* @_gasrem, align 8 - %"$gascmp_729" = icmp ugt i64 %"$_literal_cost_call_727", %"$gasrem_728" - br i1 %"$gascmp_729", label %"$out_of_gas_730", label %"$have_gas_731" - -"$out_of_gas_730": ; preds = %"$Some_721" - call void @_out_of_gas() - br label %"$have_gas_731" + %"$execptr_load_662" = load i8*, i8** @_execptr, align 8 + %"$e_663" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_662", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_663"), !dbg !82 + br label %"$matchsucc_531" -"$have_gas_731": ; preds = %"$out_of_gas_730", %"$Some_721" - %"$consume_732" = sub i64 %"$gasrem_728", %"$_literal_cost_call_727" - store i64 %"$consume_732", i64* @_gasrem, align 8 - %"$execptr_load_733" = load i8*, i8** @_execptr, align 8 - %"$bs1_735" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$update_value_736" = bitcast %Map_ByStr20_Uint128* %"$bs1_735" to i8* - call void @_update_field(i8* %"$execptr_load_733", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_734", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_83", i32 0, i8* null, i8* %"$update_value_736"), !dbg !88 - %"$gasrem_737" = load i64, i64* @_gasrem, align 8 - %"$gascmp_738" = icmp ugt i64 1, %"$gasrem_737" - br i1 %"$gascmp_738", label %"$out_of_gas_739", label %"$have_gas_740" - -"$out_of_gas_739": ; preds = %"$have_gas_731" - call void @_out_of_gas() - br label %"$have_gas_740" - -"$have_gas_740": ; preds = %"$out_of_gas_739", %"$have_gas_731" - %"$consume_741" = sub i64 %"$gasrem_737", 1 - store i64 %"$consume_741", i64* @_gasrem, align 8 - %"$execptr_load_742" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_742"), !dbg !90 - %"$gasrem_743" = load i64, i64* @_gasrem, align 8 - %"$gascmp_744" = icmp ugt i64 1, %"$gasrem_743" - br i1 %"$gascmp_744", label %"$out_of_gas_745", label %"$have_gas_746" - -"$out_of_gas_745": ; preds = %"$have_gas_740" - call void @_out_of_gas() - br label %"$have_gas_746" - -"$have_gas_746": ; preds = %"$out_of_gas_745", %"$have_gas_740" - %"$consume_747" = sub i64 %"$gasrem_743", 1 - store i64 %"$consume_747", i64* @_gasrem, align 8 - %e1 = alloca i8*, align 8 - %"$gasrem_748" = load i64, i64* @_gasrem, align 8 - %"$gascmp_749" = icmp ugt i64 1, %"$gasrem_748" - br i1 %"$gascmp_749", label %"$out_of_gas_750", label %"$have_gas_751" - -"$out_of_gas_750": ; preds = %"$have_gas_746" - call void @_out_of_gas() - br label %"$have_gas_751" - -"$have_gas_751": ; preds = %"$out_of_gas_750", %"$have_gas_746" - %"$consume_752" = sub i64 %"$gasrem_748", 1 - store i64 %"$consume_752", i64* @_gasrem, align 8 - %"$msgobj_753_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_753_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_753_salloc_load", i64 153) - %"$msgobj_753_salloc" = bitcast i8* %"$msgobj_753_salloc_salloc" to [153 x i8]* - %"$msgobj_753" = bitcast [153 x i8]* %"$msgobj_753_salloc" to i8* - store i8 4, i8* %"$msgobj_753", align 1 - %"$msgobj_fname_755" = getelementptr i8, i8* %"$msgobj_753", i32 1 - %"$msgobj_fname_756" = bitcast i8* %"$msgobj_fname_755" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_754", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_756", align 8 - %"$msgobj_td_757" = getelementptr i8, i8* %"$msgobj_753", i32 17 - %"$msgobj_td_758" = bitcast i8* %"$msgobj_td_757" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_758", align 8 - %"$msgobj_v_760" = getelementptr i8, i8* %"$msgobj_753", i32 25 - %"$msgobj_v_761" = bitcast i8* %"$msgobj_v_760" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_759", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_761", align 8 - %"$msgobj_fname_763" = getelementptr i8, i8* %"$msgobj_753", i32 41 - %"$msgobj_fname_764" = bitcast i8* %"$msgobj_fname_763" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_762", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_764", align 8 - %"$msgobj_td_765" = getelementptr i8, i8* %"$msgobj_753", i32 57 - %"$msgobj_td_766" = bitcast i8* %"$msgobj_td_765" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_766", align 8 - %"$msgobj_v_767" = getelementptr i8, i8* %"$msgobj_753", i32 65 - %"$msgobj_v_768" = bitcast i8* %"$msgobj_v_767" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_768", align 1 - %"$msgobj_fname_770" = getelementptr i8, i8* %"$msgobj_753", i32 85 - %"$msgobj_fname_771" = bitcast i8* %"$msgobj_fname_770" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_769", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_771", align 8 - %"$msgobj_td_772" = getelementptr i8, i8* %"$msgobj_753", i32 101 - %"$msgobj_td_773" = bitcast i8* %"$msgobj_td_772" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_773", align 8 - %"$msgobj_v_774" = getelementptr i8, i8* %"$msgobj_753", i32 109 - %"$msgobj_v_775" = bitcast i8* %"$msgobj_v_774" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_775", align 8 - %"$msgobj_fname_777" = getelementptr i8, i8* %"$msgobj_753", i32 125 - %"$msgobj_fname_778" = bitcast i8* %"$msgobj_fname_777" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_776", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_778", align 8 - %"$msgobj_td_779" = getelementptr i8, i8* %"$msgobj_753", i32 141 - %"$msgobj_td_780" = bitcast i8* %"$msgobj_td_779" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_780", align 8 - %"$crowdfunding.accepted_code_781" = load %Int32, %Int32* @crowdfunding.accepted_code, align 4 - %"$msgobj_v_782" = getelementptr i8, i8* %"$msgobj_753", i32 149 - %"$msgobj_v_783" = bitcast i8* %"$msgobj_v_782" to %Int32* - store %Int32 %"$crowdfunding.accepted_code_781", %Int32* %"$msgobj_v_783", align 4 - store i8* %"$msgobj_753", i8** %e1, align 8, !dbg !91 - %"$e_785" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_787" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_785") - %"$gasrem_788" = load i64, i64* @_gasrem, align 8 - %"$gascmp_789" = icmp ugt i64 %"$_literal_cost_call_787", %"$gasrem_788" - br i1 %"$gascmp_789", label %"$out_of_gas_790", label %"$have_gas_791" - -"$out_of_gas_790": ; preds = %"$have_gas_751" - call void @_out_of_gas() - br label %"$have_gas_791" - -"$have_gas_791": ; preds = %"$out_of_gas_790", %"$have_gas_751" - %"$consume_792" = sub i64 %"$gasrem_788", %"$_literal_cost_call_787" - store i64 %"$consume_792", i64* @_gasrem, align 8 - %"$execptr_load_793" = load i8*, i8** @_execptr, align 8 - %"$e_794" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_793", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_794"), !dbg !92 - br label %"$matchsucc_662" - -"$empty_default_666": ; preds = %"$have_gas_660" - br label %"$matchsucc_662" - -"$matchsucc_662": ; preds = %"$have_gas_791", %"$have_gas_717", %"$empty_default_666" - br label %"$matchsucc_609" - -"$False_795": ; preds = %"$have_gas_607" - %"$in_time_796" = bitcast %TName_Bool* %"$in_time_610" to %CName_False* - %"$gasrem_797" = load i64, i64* @_gasrem, align 8 - %"$gascmp_798" = icmp ugt i64 1, %"$gasrem_797" - br i1 %"$gascmp_798", label %"$out_of_gas_799", label %"$have_gas_800" - -"$out_of_gas_799": ; preds = %"$False_795" - call void @_out_of_gas() - br label %"$have_gas_800" - -"$have_gas_800": ; preds = %"$out_of_gas_799", %"$False_795" - %"$consume_801" = sub i64 %"$gasrem_797", 1 - store i64 %"$consume_801", i64* @_gasrem, align 8 - %e2 = alloca i8*, align 8 - %"$gasrem_802" = load i64, i64* @_gasrem, align 8 - %"$gascmp_803" = icmp ugt i64 1, %"$gasrem_802" - br i1 %"$gascmp_803", label %"$out_of_gas_804", label %"$have_gas_805" - -"$out_of_gas_804": ; preds = %"$have_gas_800" - call void @_out_of_gas() - br label %"$have_gas_805" - -"$have_gas_805": ; preds = %"$out_of_gas_804", %"$have_gas_800" - %"$consume_806" = sub i64 %"$gasrem_802", 1 - store i64 %"$consume_806", i64* @_gasrem, align 8 - %"$msgobj_807_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_807_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_807_salloc_load", i64 153) - %"$msgobj_807_salloc" = bitcast i8* %"$msgobj_807_salloc_salloc" to [153 x i8]* - %"$msgobj_807" = bitcast [153 x i8]* %"$msgobj_807_salloc" to i8* - store i8 4, i8* %"$msgobj_807", align 1 - %"$msgobj_fname_809" = getelementptr i8, i8* %"$msgobj_807", i32 1 - %"$msgobj_fname_810" = bitcast i8* %"$msgobj_fname_809" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_808", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_810", align 8 - %"$msgobj_td_811" = getelementptr i8, i8* %"$msgobj_807", i32 17 - %"$msgobj_td_812" = bitcast i8* %"$msgobj_td_811" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_812", align 8 - %"$msgobj_v_814" = getelementptr i8, i8* %"$msgobj_807", i32 25 - %"$msgobj_v_815" = bitcast i8* %"$msgobj_v_814" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_813", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_815", align 8 - %"$msgobj_fname_817" = getelementptr i8, i8* %"$msgobj_807", i32 41 - %"$msgobj_fname_818" = bitcast i8* %"$msgobj_fname_817" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_816", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_818", align 8 - %"$msgobj_td_819" = getelementptr i8, i8* %"$msgobj_807", i32 57 - %"$msgobj_td_820" = bitcast i8* %"$msgobj_td_819" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_820", align 8 - %"$msgobj_v_821" = getelementptr i8, i8* %"$msgobj_807", i32 65 - %"$msgobj_v_822" = bitcast i8* %"$msgobj_v_821" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_822", align 1 - %"$msgobj_fname_824" = getelementptr i8, i8* %"$msgobj_807", i32 85 - %"$msgobj_fname_825" = bitcast i8* %"$msgobj_fname_824" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_823", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_825", align 8 - %"$msgobj_td_826" = getelementptr i8, i8* %"$msgobj_807", i32 101 - %"$msgobj_td_827" = bitcast i8* %"$msgobj_td_826" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_827", align 8 - %"$msgobj_v_828" = getelementptr i8, i8* %"$msgobj_807", i32 109 - %"$msgobj_v_829" = bitcast i8* %"$msgobj_v_828" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_829", align 8 - %"$msgobj_fname_831" = getelementptr i8, i8* %"$msgobj_807", i32 125 - %"$msgobj_fname_832" = bitcast i8* %"$msgobj_fname_831" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_830", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_832", align 8 - %"$msgobj_td_833" = getelementptr i8, i8* %"$msgobj_807", i32 141 - %"$msgobj_td_834" = bitcast i8* %"$msgobj_td_833" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_834", align 8 - %"$crowdfunding.missed_deadline_code_835" = load %Int32, %Int32* @crowdfunding.missed_deadline_code, align 4 - %"$msgobj_v_836" = getelementptr i8, i8* %"$msgobj_807", i32 149 - %"$msgobj_v_837" = bitcast i8* %"$msgobj_v_836" to %Int32* - store %Int32 %"$crowdfunding.missed_deadline_code_835", %Int32* %"$msgobj_v_837", align 4 - store i8* %"$msgobj_807", i8** %e2, align 8, !dbg !93 - %"$e_839" = load i8*, i8** %e2, align 8 - %"$_literal_cost_call_841" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_839") - %"$gasrem_842" = load i64, i64* @_gasrem, align 8 - %"$gascmp_843" = icmp ugt i64 %"$_literal_cost_call_841", %"$gasrem_842" - br i1 %"$gascmp_843", label %"$out_of_gas_844", label %"$have_gas_845" +"$empty_default_535": ; preds = %"$have_gas_529" + br label %"$matchsucc_531" -"$out_of_gas_844": ; preds = %"$have_gas_805" - call void @_out_of_gas() - br label %"$have_gas_845" +"$matchsucc_531": ; preds = %"$have_gas_660", %"$have_gas_586", %"$empty_default_535" + br label %"$matchsucc_487" -"$have_gas_845": ; preds = %"$out_of_gas_844", %"$have_gas_805" - %"$consume_846" = sub i64 %"$gasrem_842", %"$_literal_cost_call_841" - store i64 %"$consume_846", i64* @_gasrem, align 8 - %"$execptr_load_847" = load i8*, i8** @_execptr, align 8 - %"$e_848" = load i8*, i8** %e2, align 8 - call void @_event(i8* %"$execptr_load_847", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_848"), !dbg !95 - br label %"$matchsucc_609" +"$False_664": ; preds = %"$have_gas_485" + %"$in_time_665" = bitcast %TName_Bool* %"$in_time_488" to %CName_False* + %"$gasrem_666" = load i64, i64* @_gasrem, align 8 + %"$gascmp_667" = icmp ugt i64 1, %"$gasrem_666" + br i1 %"$gascmp_667", label %"$out_of_gas_668", label %"$have_gas_669" -"$empty_default_613": ; preds = %"$have_gas_607" - br label %"$matchsucc_609" +"$out_of_gas_668": ; preds = %"$False_664" + call void @_out_of_gas() + br label %"$have_gas_669" -"$matchsucc_609": ; preds = %"$have_gas_845", %"$matchsucc_662", %"$empty_default_613" +"$have_gas_669": ; preds = %"$out_of_gas_668", %"$False_664" + %"$consume_670" = sub i64 %"$gasrem_666", 1 + store i64 %"$consume_670", i64* @_gasrem, align 8 + %e2 = alloca i8*, align 8 + %"$gasrem_671" = load i64, i64* @_gasrem, align 8 + %"$gascmp_672" = icmp ugt i64 1, %"$gasrem_671" + br i1 %"$gascmp_672", label %"$out_of_gas_673", label %"$have_gas_674" + +"$out_of_gas_673": ; preds = %"$have_gas_669" + call void @_out_of_gas() + br label %"$have_gas_674" + +"$have_gas_674": ; preds = %"$out_of_gas_673", %"$have_gas_669" + %"$consume_675" = sub i64 %"$gasrem_671", 1 + store i64 %"$consume_675", i64* @_gasrem, align 8 + %"$msgobj_676_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_676_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_676_salloc_load", i64 153) + %"$msgobj_676_salloc" = bitcast i8* %"$msgobj_676_salloc_salloc" to [153 x i8]* + %"$msgobj_676" = bitcast [153 x i8]* %"$msgobj_676_salloc" to i8* + store i8 4, i8* %"$msgobj_676", align 1 + %"$msgobj_fname_678" = getelementptr i8, i8* %"$msgobj_676", i32 1 + %"$msgobj_fname_679" = bitcast i8* %"$msgobj_fname_678" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_677", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_679", align 8 + %"$msgobj_td_680" = getelementptr i8, i8* %"$msgobj_676", i32 17 + %"$msgobj_td_681" = bitcast i8* %"$msgobj_td_680" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_681", align 8 + %"$msgobj_v_683" = getelementptr i8, i8* %"$msgobj_676", i32 25 + %"$msgobj_v_684" = bitcast i8* %"$msgobj_v_683" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_682", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_684", align 8 + %"$msgobj_fname_686" = getelementptr i8, i8* %"$msgobj_676", i32 41 + %"$msgobj_fname_687" = bitcast i8* %"$msgobj_fname_686" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_685", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_687", align 8 + %"$msgobj_td_688" = getelementptr i8, i8* %"$msgobj_676", i32 57 + %"$msgobj_td_689" = bitcast i8* %"$msgobj_td_688" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_689", align 8 + %"$msgobj_v_690" = getelementptr i8, i8* %"$msgobj_676", i32 65 + %"$msgobj_v_691" = bitcast i8* %"$msgobj_v_690" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_691", align 1 + %"$msgobj_fname_693" = getelementptr i8, i8* %"$msgobj_676", i32 85 + %"$msgobj_fname_694" = bitcast i8* %"$msgobj_fname_693" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_692", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_694", align 8 + %"$msgobj_td_695" = getelementptr i8, i8* %"$msgobj_676", i32 101 + %"$msgobj_td_696" = bitcast i8* %"$msgobj_td_695" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_696", align 8 + %"$msgobj_v_697" = getelementptr i8, i8* %"$msgobj_676", i32 109 + %"$msgobj_v_698" = bitcast i8* %"$msgobj_v_697" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_698", align 8 + %"$msgobj_fname_700" = getelementptr i8, i8* %"$msgobj_676", i32 125 + %"$msgobj_fname_701" = bitcast i8* %"$msgobj_fname_700" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_699", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_701", align 8 + %"$msgobj_td_702" = getelementptr i8, i8* %"$msgobj_676", i32 141 + %"$msgobj_td_703" = bitcast i8* %"$msgobj_td_702" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_703", align 8 + %"$crowdfunding.missed_deadline_code_704" = load %Int32, %Int32* @crowdfunding.missed_deadline_code, align 4 + %"$msgobj_v_705" = getelementptr i8, i8* %"$msgobj_676", i32 149 + %"$msgobj_v_706" = bitcast i8* %"$msgobj_v_705" to %Int32* + store %Int32 %"$crowdfunding.missed_deadline_code_704", %Int32* %"$msgobj_v_706", align 4 + store i8* %"$msgobj_676", i8** %e2, align 8, !dbg !83 + %"$e_708" = load i8*, i8** %e2, align 8 + %"$_literal_cost_call_710" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_708") + %"$gasrem_711" = load i64, i64* @_gasrem, align 8 + %"$gascmp_712" = icmp ugt i64 %"$_literal_cost_call_710", %"$gasrem_711" + br i1 %"$gascmp_712", label %"$out_of_gas_713", label %"$have_gas_714" + +"$out_of_gas_713": ; preds = %"$have_gas_674" + call void @_out_of_gas() + br label %"$have_gas_714" + +"$have_gas_714": ; preds = %"$out_of_gas_713", %"$have_gas_674" + %"$consume_715" = sub i64 %"$gasrem_711", %"$_literal_cost_call_710" + store i64 %"$consume_715", i64* @_gasrem, align 8 + %"$execptr_load_716" = load i8*, i8** @_execptr, align 8 + %"$e_717" = load i8*, i8** %e2, align 8 + call void @_event(i8* %"$execptr_load_716", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_717"), !dbg !85 + br label %"$matchsucc_487" + +"$empty_default_491": ; preds = %"$have_gas_485" + br label %"$matchsucc_487" + +"$matchsucc_487": ; preds = %"$have_gas_714", %"$matchsucc_531", %"$empty_default_491" ret void } @@ -1672,729 +1461,711 @@ declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) declare void @_accept(i8*) -define void @Donate(i8* %0) !dbg !96 { +define void @Donate(i8* %0) !dbg !86 { entry: - %"$_amount_850" = getelementptr i8, i8* %0, i32 0 - %"$_amount_851" = bitcast i8* %"$_amount_850" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_851", align 8 - %"$_origin_852" = getelementptr i8, i8* %0, i32 16 - %"$_origin_853" = bitcast i8* %"$_origin_852" to [20 x i8]* - %"$_sender_854" = getelementptr i8, i8* %0, i32 36 - %"$_sender_855" = bitcast i8* %"$_sender_854" to [20 x i8]* - call void @"$Donate_571"(%Uint128 %_amount, [20 x i8]* %"$_origin_853", [20 x i8]* %"$_sender_855"), !dbg !97 + %"$_amount_719" = getelementptr i8, i8* %0, i32 0 + %"$_amount_720" = bitcast i8* %"$_amount_719" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_720", align 8 + %"$_origin_721" = getelementptr i8, i8* %0, i32 16 + %"$_origin_722" = bitcast i8* %"$_origin_721" to [20 x i8]* + %"$_sender_723" = getelementptr i8, i8* %0, i32 36 + %"$_sender_724" = bitcast i8* %"$_sender_723" to [20 x i8]* + call void @"$Donate_454"(%Uint128 %_amount, [20 x i8]* %"$_origin_722", [20 x i8]* %"$_sender_724"), !dbg !87 ret void } -define internal void @"$GetFunds_856"(%Uint128 %_amount, [20 x i8]* %"$_origin_857", [20 x i8]* %"$_sender_858") !dbg !98 { +define internal void @"$GetFunds_725"(%Uint128 %_amount, [20 x i8]* %"$_origin_726", [20 x i8]* %"$_sender_727") !dbg !88 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_857", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_858", align 1 - %"$gasrem_859" = load i64, i64* @_gasrem, align 8 - %"$gascmp_860" = icmp ugt i64 1, %"$gasrem_859" - br i1 %"$gascmp_860", label %"$out_of_gas_861", label %"$have_gas_862" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_726", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_727", align 1 + %"$gasrem_728" = load i64, i64* @_gasrem, align 8 + %"$gascmp_729" = icmp ugt i64 1, %"$gasrem_728" + br i1 %"$gascmp_729", label %"$out_of_gas_730", label %"$have_gas_731" -"$out_of_gas_861": ; preds = %entry +"$out_of_gas_730": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_862" + br label %"$have_gas_731" -"$have_gas_862": ; preds = %"$out_of_gas_861", %entry - %"$consume_863" = sub i64 %"$gasrem_859", 1 - store i64 %"$consume_863", i64* @_gasrem, align 8 +"$have_gas_731": ; preds = %"$out_of_gas_730", %entry + %"$consume_732" = sub i64 %"$gasrem_728", 1 + store i64 %"$consume_732", i64* @_gasrem, align 8 %is_owner = alloca %TName_Bool*, align 8 - %"$gasrem_864" = load i64, i64* @_gasrem, align 8 - %"$gascmp_865" = icmp ugt i64 20, %"$gasrem_864" - br i1 %"$gascmp_865", label %"$out_of_gas_866", label %"$have_gas_867" - -"$out_of_gas_866": ; preds = %"$have_gas_862" - call void @_out_of_gas() - br label %"$have_gas_867" - -"$have_gas_867": ; preds = %"$out_of_gas_866", %"$have_gas_862" - %"$consume_868" = sub i64 %"$gasrem_864", 20 - store i64 %"$consume_868", i64* @_gasrem, align 8 - %"$execptr_load_869" = load i8*, i8** @_execptr, align 8 - %"$eq_owner_870" = alloca [20 x i8], align 1 - %"$owner_871" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 - store [20 x i8] %"$owner_871", [20 x i8]* %"$eq_owner_870", align 1 - %"$$eq_owner_870_872" = bitcast [20 x i8]* %"$eq_owner_870" to i8* - %"$eq__sender_873" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_873", align 1 - %"$$eq__sender_873_874" = bitcast [20 x i8]* %"$eq__sender_873" to i8* - %"$eq_call_875" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_869", i32 20, i8* %"$$eq_owner_870_872", i8* %"$$eq__sender_873_874"), !dbg !99 - store %TName_Bool* %"$eq_call_875", %TName_Bool** %is_owner, align 8, !dbg !99 - %"$gasrem_877" = load i64, i64* @_gasrem, align 8 - %"$gascmp_878" = icmp ugt i64 2, %"$gasrem_877" - br i1 %"$gascmp_878", label %"$out_of_gas_879", label %"$have_gas_880" - -"$out_of_gas_879": ; preds = %"$have_gas_867" - call void @_out_of_gas() - br label %"$have_gas_880" - -"$have_gas_880": ; preds = %"$out_of_gas_879", %"$have_gas_867" - %"$consume_881" = sub i64 %"$gasrem_877", 2 - store i64 %"$consume_881", i64* @_gasrem, align 8 - %"$is_owner_883" = load %TName_Bool*, %TName_Bool** %is_owner, align 8 - %"$is_owner_tag_884" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_owner_883", i32 0, i32 0 - %"$is_owner_tag_885" = load i8, i8* %"$is_owner_tag_884", align 1 - switch i8 %"$is_owner_tag_885", label %"$empty_default_886" [ - i8 1, label %"$False_887" - i8 0, label %"$True_941" - ], !dbg !100 - -"$False_887": ; preds = %"$have_gas_880" - %"$is_owner_888" = bitcast %TName_Bool* %"$is_owner_883" to %CName_False* - %"$gasrem_889" = load i64, i64* @_gasrem, align 8 - %"$gascmp_890" = icmp ugt i64 1, %"$gasrem_889" - br i1 %"$gascmp_890", label %"$out_of_gas_891", label %"$have_gas_892" - -"$out_of_gas_891": ; preds = %"$False_887" - call void @_out_of_gas() - br label %"$have_gas_892" - -"$have_gas_892": ; preds = %"$out_of_gas_891", %"$False_887" - %"$consume_893" = sub i64 %"$gasrem_889", 1 - store i64 %"$consume_893", i64* @_gasrem, align 8 + %"$gasrem_733" = load i64, i64* @_gasrem, align 8 + %"$gascmp_734" = icmp ugt i64 20, %"$gasrem_733" + br i1 %"$gascmp_734", label %"$out_of_gas_735", label %"$have_gas_736" + +"$out_of_gas_735": ; preds = %"$have_gas_731" + call void @_out_of_gas() + br label %"$have_gas_736" + +"$have_gas_736": ; preds = %"$out_of_gas_735", %"$have_gas_731" + %"$consume_737" = sub i64 %"$gasrem_733", 20 + store i64 %"$consume_737", i64* @_gasrem, align 8 + %"$execptr_load_738" = load i8*, i8** @_execptr, align 8 + %"$eq_owner_739" = alloca [20 x i8], align 1 + %"$owner_740" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 + store [20 x i8] %"$owner_740", [20 x i8]* %"$eq_owner_739", align 1 + %"$$eq_owner_739_741" = bitcast [20 x i8]* %"$eq_owner_739" to i8* + %"$eq__sender_742" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_742", align 1 + %"$$eq__sender_742_743" = bitcast [20 x i8]* %"$eq__sender_742" to i8* + %"$eq_call_744" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_738", i32 20, i8* %"$$eq_owner_739_741", i8* %"$$eq__sender_742_743"), !dbg !89 + store %TName_Bool* %"$eq_call_744", %TName_Bool** %is_owner, align 8, !dbg !89 + %"$gasrem_746" = load i64, i64* @_gasrem, align 8 + %"$gascmp_747" = icmp ugt i64 2, %"$gasrem_746" + br i1 %"$gascmp_747", label %"$out_of_gas_748", label %"$have_gas_749" + +"$out_of_gas_748": ; preds = %"$have_gas_736" + call void @_out_of_gas() + br label %"$have_gas_749" + +"$have_gas_749": ; preds = %"$out_of_gas_748", %"$have_gas_736" + %"$consume_750" = sub i64 %"$gasrem_746", 2 + store i64 %"$consume_750", i64* @_gasrem, align 8 + %"$is_owner_752" = load %TName_Bool*, %TName_Bool** %is_owner, align 8 + %"$is_owner_tag_753" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_owner_752", i32 0, i32 0 + %"$is_owner_tag_754" = load i8, i8* %"$is_owner_tag_753", align 1 + switch i8 %"$is_owner_tag_754", label %"$empty_default_755" [ + i8 1, label %"$False_756" + i8 0, label %"$True_810" + ], !dbg !90 + +"$False_756": ; preds = %"$have_gas_749" + %"$is_owner_757" = bitcast %TName_Bool* %"$is_owner_752" to %CName_False* + %"$gasrem_758" = load i64, i64* @_gasrem, align 8 + %"$gascmp_759" = icmp ugt i64 1, %"$gasrem_758" + br i1 %"$gascmp_759", label %"$out_of_gas_760", label %"$have_gas_761" + +"$out_of_gas_760": ; preds = %"$False_756" + call void @_out_of_gas() + br label %"$have_gas_761" + +"$have_gas_761": ; preds = %"$out_of_gas_760", %"$False_756" + %"$consume_762" = sub i64 %"$gasrem_758", 1 + store i64 %"$consume_762", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_894" = load i64, i64* @_gasrem, align 8 - %"$gascmp_895" = icmp ugt i64 1, %"$gasrem_894" - br i1 %"$gascmp_895", label %"$out_of_gas_896", label %"$have_gas_897" - -"$out_of_gas_896": ; preds = %"$have_gas_892" - call void @_out_of_gas() - br label %"$have_gas_897" - -"$have_gas_897": ; preds = %"$out_of_gas_896", %"$have_gas_892" - %"$consume_898" = sub i64 %"$gasrem_894", 1 - store i64 %"$consume_898", i64* @_gasrem, align 8 - %"$msgobj_899_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_899_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_899_salloc_load", i64 153) - %"$msgobj_899_salloc" = bitcast i8* %"$msgobj_899_salloc_salloc" to [153 x i8]* - %"$msgobj_899" = bitcast [153 x i8]* %"$msgobj_899_salloc" to i8* - store i8 4, i8* %"$msgobj_899", align 1 - %"$msgobj_fname_901" = getelementptr i8, i8* %"$msgobj_899", i32 1 - %"$msgobj_fname_902" = bitcast i8* %"$msgobj_fname_901" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_900", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_902", align 8 - %"$msgobj_td_903" = getelementptr i8, i8* %"$msgobj_899", i32 17 - %"$msgobj_td_904" = bitcast i8* %"$msgobj_td_903" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_904", align 8 - %"$msgobj_v_906" = getelementptr i8, i8* %"$msgobj_899", i32 25 - %"$msgobj_v_907" = bitcast i8* %"$msgobj_v_906" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_905", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_907", align 8 - %"$msgobj_fname_909" = getelementptr i8, i8* %"$msgobj_899", i32 41 - %"$msgobj_fname_910" = bitcast i8* %"$msgobj_fname_909" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_908", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_910", align 8 - %"$msgobj_td_911" = getelementptr i8, i8* %"$msgobj_899", i32 57 - %"$msgobj_td_912" = bitcast i8* %"$msgobj_td_911" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_912", align 8 - %"$msgobj_v_913" = getelementptr i8, i8* %"$msgobj_899", i32 65 - %"$msgobj_v_914" = bitcast i8* %"$msgobj_v_913" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_914", align 1 - %"$msgobj_fname_916" = getelementptr i8, i8* %"$msgobj_899", i32 85 - %"$msgobj_fname_917" = bitcast i8* %"$msgobj_fname_916" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_915", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_917", align 8 - %"$msgobj_td_918" = getelementptr i8, i8* %"$msgobj_899", i32 101 - %"$msgobj_td_919" = bitcast i8* %"$msgobj_td_918" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_919", align 8 - %"$msgobj_v_920" = getelementptr i8, i8* %"$msgobj_899", i32 109 - %"$msgobj_v_921" = bitcast i8* %"$msgobj_v_920" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_921", align 8 - %"$msgobj_fname_923" = getelementptr i8, i8* %"$msgobj_899", i32 125 - %"$msgobj_fname_924" = bitcast i8* %"$msgobj_fname_923" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_922", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_924", align 8 - %"$msgobj_td_925" = getelementptr i8, i8* %"$msgobj_899", i32 141 - %"$msgobj_td_926" = bitcast i8* %"$msgobj_td_925" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_926", align 8 - %"$crowdfunding.not_owner_code_927" = load %Int32, %Int32* @crowdfunding.not_owner_code, align 4 - %"$msgobj_v_928" = getelementptr i8, i8* %"$msgobj_899", i32 149 - %"$msgobj_v_929" = bitcast i8* %"$msgobj_v_928" to %Int32* - store %Int32 %"$crowdfunding.not_owner_code_927", %Int32* %"$msgobj_v_929", align 4 - store i8* %"$msgobj_899", i8** %e, align 8, !dbg !101 - %"$e_931" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_933" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_931") - %"$gasrem_934" = load i64, i64* @_gasrem, align 8 - %"$gascmp_935" = icmp ugt i64 %"$_literal_cost_call_933", %"$gasrem_934" - br i1 %"$gascmp_935", label %"$out_of_gas_936", label %"$have_gas_937" - -"$out_of_gas_936": ; preds = %"$have_gas_897" - call void @_out_of_gas() - br label %"$have_gas_937" - -"$have_gas_937": ; preds = %"$out_of_gas_936", %"$have_gas_897" - %"$consume_938" = sub i64 %"$gasrem_934", %"$_literal_cost_call_933" - store i64 %"$consume_938", i64* @_gasrem, align 8 - %"$execptr_load_939" = load i8*, i8** @_execptr, align 8 - %"$e_940" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_939", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_940"), !dbg !104 - br label %"$matchsucc_882" - -"$True_941": ; preds = %"$have_gas_880" - %"$is_owner_942" = bitcast %TName_Bool* %"$is_owner_883" to %CName_True* - %"$gasrem_943" = load i64, i64* @_gasrem, align 8 - %"$gascmp_944" = icmp ugt i64 1, %"$gasrem_943" - br i1 %"$gascmp_944", label %"$out_of_gas_945", label %"$have_gas_946" - -"$out_of_gas_945": ; preds = %"$True_941" - call void @_out_of_gas() - br label %"$have_gas_946" - -"$have_gas_946": ; preds = %"$out_of_gas_945", %"$True_941" - %"$consume_947" = sub i64 %"$gasrem_943", 1 - store i64 %"$consume_947", i64* @_gasrem, align 8 + %"$gasrem_763" = load i64, i64* @_gasrem, align 8 + %"$gascmp_764" = icmp ugt i64 1, %"$gasrem_763" + br i1 %"$gascmp_764", label %"$out_of_gas_765", label %"$have_gas_766" + +"$out_of_gas_765": ; preds = %"$have_gas_761" + call void @_out_of_gas() + br label %"$have_gas_766" + +"$have_gas_766": ; preds = %"$out_of_gas_765", %"$have_gas_761" + %"$consume_767" = sub i64 %"$gasrem_763", 1 + store i64 %"$consume_767", i64* @_gasrem, align 8 + %"$msgobj_768_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_768_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_768_salloc_load", i64 153) + %"$msgobj_768_salloc" = bitcast i8* %"$msgobj_768_salloc_salloc" to [153 x i8]* + %"$msgobj_768" = bitcast [153 x i8]* %"$msgobj_768_salloc" to i8* + store i8 4, i8* %"$msgobj_768", align 1 + %"$msgobj_fname_770" = getelementptr i8, i8* %"$msgobj_768", i32 1 + %"$msgobj_fname_771" = bitcast i8* %"$msgobj_fname_770" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_769", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_771", align 8 + %"$msgobj_td_772" = getelementptr i8, i8* %"$msgobj_768", i32 17 + %"$msgobj_td_773" = bitcast i8* %"$msgobj_td_772" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_773", align 8 + %"$msgobj_v_775" = getelementptr i8, i8* %"$msgobj_768", i32 25 + %"$msgobj_v_776" = bitcast i8* %"$msgobj_v_775" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_774", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_776", align 8 + %"$msgobj_fname_778" = getelementptr i8, i8* %"$msgobj_768", i32 41 + %"$msgobj_fname_779" = bitcast i8* %"$msgobj_fname_778" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_777", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_779", align 8 + %"$msgobj_td_780" = getelementptr i8, i8* %"$msgobj_768", i32 57 + %"$msgobj_td_781" = bitcast i8* %"$msgobj_td_780" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_781", align 8 + %"$msgobj_v_782" = getelementptr i8, i8* %"$msgobj_768", i32 65 + %"$msgobj_v_783" = bitcast i8* %"$msgobj_v_782" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_783", align 1 + %"$msgobj_fname_785" = getelementptr i8, i8* %"$msgobj_768", i32 85 + %"$msgobj_fname_786" = bitcast i8* %"$msgobj_fname_785" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_784", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_786", align 8 + %"$msgobj_td_787" = getelementptr i8, i8* %"$msgobj_768", i32 101 + %"$msgobj_td_788" = bitcast i8* %"$msgobj_td_787" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_788", align 8 + %"$msgobj_v_789" = getelementptr i8, i8* %"$msgobj_768", i32 109 + %"$msgobj_v_790" = bitcast i8* %"$msgobj_v_789" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_790", align 8 + %"$msgobj_fname_792" = getelementptr i8, i8* %"$msgobj_768", i32 125 + %"$msgobj_fname_793" = bitcast i8* %"$msgobj_fname_792" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_791", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_793", align 8 + %"$msgobj_td_794" = getelementptr i8, i8* %"$msgobj_768", i32 141 + %"$msgobj_td_795" = bitcast i8* %"$msgobj_td_794" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_795", align 8 + %"$crowdfunding.not_owner_code_796" = load %Int32, %Int32* @crowdfunding.not_owner_code, align 4 + %"$msgobj_v_797" = getelementptr i8, i8* %"$msgobj_768", i32 149 + %"$msgobj_v_798" = bitcast i8* %"$msgobj_v_797" to %Int32* + store %Int32 %"$crowdfunding.not_owner_code_796", %Int32* %"$msgobj_v_798", align 4 + store i8* %"$msgobj_768", i8** %e, align 8, !dbg !91 + %"$e_800" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_802" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_800") + %"$gasrem_803" = load i64, i64* @_gasrem, align 8 + %"$gascmp_804" = icmp ugt i64 %"$_literal_cost_call_802", %"$gasrem_803" + br i1 %"$gascmp_804", label %"$out_of_gas_805", label %"$have_gas_806" + +"$out_of_gas_805": ; preds = %"$have_gas_766" + call void @_out_of_gas() + br label %"$have_gas_806" + +"$have_gas_806": ; preds = %"$out_of_gas_805", %"$have_gas_766" + %"$consume_807" = sub i64 %"$gasrem_803", %"$_literal_cost_call_802" + store i64 %"$consume_807", i64* @_gasrem, align 8 + %"$execptr_load_808" = load i8*, i8** @_execptr, align 8 + %"$e_809" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_808", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_809"), !dbg !94 + br label %"$matchsucc_751" + +"$True_810": ; preds = %"$have_gas_749" + %"$is_owner_811" = bitcast %TName_Bool* %"$is_owner_752" to %CName_True* + %"$gasrem_812" = load i64, i64* @_gasrem, align 8 + %"$gascmp_813" = icmp ugt i64 1, %"$gasrem_812" + br i1 %"$gascmp_813", label %"$out_of_gas_814", label %"$have_gas_815" + +"$out_of_gas_814": ; preds = %"$True_810" + call void @_out_of_gas() + br label %"$have_gas_815" + +"$have_gas_815": ; preds = %"$out_of_gas_814", %"$True_810" + %"$consume_816" = sub i64 %"$gasrem_812", 1 + store i64 %"$consume_816", i64* @_gasrem, align 8 %blk = alloca i8*, align 8 - %"$execptr_load_949" = load i8*, i8** @_execptr, align 8 - %"$blk_call_950" = call i8* @_read_blockchain(i8* %"$execptr_load_949", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_948", i32 0, i32 0), i32 11 }), !dbg !105 - store i8* %"$blk_call_950", i8** %blk, align 8 - %"$gasrem_952" = load i64, i64* @_gasrem, align 8 - %"$gascmp_953" = icmp ugt i64 1, %"$gasrem_952" - br i1 %"$gascmp_953", label %"$out_of_gas_954", label %"$have_gas_955" + %"$execptr_load_818" = load i8*, i8** @_execptr, align 8 + %"$blk_call_819" = call i8* @_read_blockchain(i8* %"$execptr_load_818", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_817", i32 0, i32 0), i32 11 }), !dbg !95 + store i8* %"$blk_call_819", i8** %blk, align 8 + %"$gasrem_821" = load i64, i64* @_gasrem, align 8 + %"$gascmp_822" = icmp ugt i64 1, %"$gasrem_821" + br i1 %"$gascmp_822", label %"$out_of_gas_823", label %"$have_gas_824" -"$out_of_gas_954": ; preds = %"$have_gas_946" +"$out_of_gas_823": ; preds = %"$have_gas_815" call void @_out_of_gas() - br label %"$have_gas_955" + br label %"$have_gas_824" -"$have_gas_955": ; preds = %"$out_of_gas_954", %"$have_gas_946" - %"$consume_956" = sub i64 %"$gasrem_952", 1 - store i64 %"$consume_956", i64* @_gasrem, align 8 +"$have_gas_824": ; preds = %"$out_of_gas_823", %"$have_gas_815" + %"$consume_825" = sub i64 %"$gasrem_821", 1 + store i64 %"$consume_825", i64* @_gasrem, align 8 %in_time = alloca %TName_Bool*, align 8 - %"$gasrem_957" = load i64, i64* @_gasrem, align 8 - %"$gascmp_958" = icmp ugt i64 1, %"$gasrem_957" - br i1 %"$gascmp_958", label %"$out_of_gas_959", label %"$have_gas_960" - -"$out_of_gas_959": ; preds = %"$have_gas_955" - call void @_out_of_gas() - br label %"$have_gas_960" - -"$have_gas_960": ; preds = %"$out_of_gas_959", %"$have_gas_955" - %"$consume_961" = sub i64 %"$gasrem_957", 1 - store i64 %"$consume_961", i64* @_gasrem, align 8 - %"$crowdfunding.blk_leq_12" = alloca { %TName_Bool* (i8*, i8*)*, i8* }, align 8 - %"$crowdfunding.blk_leq_962" = load { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }, { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8 - %"$crowdfunding.blk_leq_fptr_963" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_962", 0 - %"$crowdfunding.blk_leq_envptr_964" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_962", 1 - %"$blk_965" = load i8*, i8** %blk, align 8 - %"$crowdfunding.blk_leq_call_966" = call { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_fptr_963"(i8* %"$crowdfunding.blk_leq_envptr_964", i8* %"$blk_965"), !dbg !107 - store { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_call_966", { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_12", align 8, !dbg !107 - %"$crowdfunding.blk_leq_13" = alloca %TName_Bool*, align 8 - %"$$crowdfunding.blk_leq_12_967" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_12", align 8 - %"$$crowdfunding.blk_leq_12_fptr_968" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_12_967", 0 - %"$$crowdfunding.blk_leq_12_envptr_969" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_12_967", 1 - %"$max_block_970" = load i8*, i8** @_cparam_max_block, align 8 - %"$$crowdfunding.blk_leq_12_call_971" = call %TName_Bool* %"$$crowdfunding.blk_leq_12_fptr_968"(i8* %"$$crowdfunding.blk_leq_12_envptr_969", i8* %"$max_block_970"), !dbg !107 - store %TName_Bool* %"$$crowdfunding.blk_leq_12_call_971", %TName_Bool** %"$crowdfunding.blk_leq_13", align 8, !dbg !107 - %"$$crowdfunding.blk_leq_13_972" = load %TName_Bool*, %TName_Bool** %"$crowdfunding.blk_leq_13", align 8 - store %TName_Bool* %"$$crowdfunding.blk_leq_13_972", %TName_Bool** %in_time, align 8, !dbg !107 - %"$gasrem_973" = load i64, i64* @_gasrem, align 8 - %"$gascmp_974" = icmp ugt i64 1, %"$gasrem_973" - br i1 %"$gascmp_974", label %"$out_of_gas_975", label %"$have_gas_976" + %"$gasrem_826" = load i64, i64* @_gasrem, align 8 + %"$gascmp_827" = icmp ugt i64 1, %"$gasrem_826" + br i1 %"$gascmp_827", label %"$out_of_gas_828", label %"$have_gas_829" + +"$out_of_gas_828": ; preds = %"$have_gas_824" + call void @_out_of_gas() + br label %"$have_gas_829" + +"$have_gas_829": ; preds = %"$out_of_gas_828", %"$have_gas_824" + %"$consume_830" = sub i64 %"$gasrem_826", 1 + store i64 %"$consume_830", i64* @_gasrem, align 8 + %"$crowdfunding.blk_leq_831" = load { %TName_Bool* (i8*, i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8 + %"$crowdfunding.blk_leq_fptr_832" = extractvalue { %TName_Bool* (i8*, i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_831", 0 + %"$crowdfunding.blk_leq_envptr_833" = extractvalue { %TName_Bool* (i8*, i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_831", 1 + %"$blk_834" = load i8*, i8** %blk, align 8 + %"$max_block_835" = load i8*, i8** @_cparam_max_block, align 8 + %"$crowdfunding.blk_leq_call_836" = call %TName_Bool* %"$crowdfunding.blk_leq_fptr_832"(i8* %"$crowdfunding.blk_leq_envptr_833", i8* %"$blk_834", i8* %"$max_block_835"), !dbg !97 + store %TName_Bool* %"$crowdfunding.blk_leq_call_836", %TName_Bool** %in_time, align 8, !dbg !97 + %"$gasrem_837" = load i64, i64* @_gasrem, align 8 + %"$gascmp_838" = icmp ugt i64 1, %"$gasrem_837" + br i1 %"$gascmp_838", label %"$out_of_gas_839", label %"$have_gas_840" + +"$out_of_gas_839": ; preds = %"$have_gas_829" + call void @_out_of_gas() + br label %"$have_gas_840" + +"$have_gas_840": ; preds = %"$out_of_gas_839", %"$have_gas_829" + %"$consume_841" = sub i64 %"$gasrem_837", 1 + store i64 %"$consume_841", i64* @_gasrem, align 8 + %c1 = alloca %TName_Bool*, align 8 + %"$gasrem_842" = load i64, i64* @_gasrem, align 8 + %"$gascmp_843" = icmp ugt i64 1, %"$gasrem_842" + br i1 %"$gascmp_843", label %"$out_of_gas_844", label %"$have_gas_845" -"$out_of_gas_975": ; preds = %"$have_gas_960" +"$out_of_gas_844": ; preds = %"$have_gas_840" call void @_out_of_gas() - br label %"$have_gas_976" + br label %"$have_gas_845" -"$have_gas_976": ; preds = %"$out_of_gas_975", %"$have_gas_960" - %"$consume_977" = sub i64 %"$gasrem_973", 1 - store i64 %"$consume_977", i64* @_gasrem, align 8 - %c1 = alloca %TName_Bool*, align 8 - %"$gasrem_978" = load i64, i64* @_gasrem, align 8 - %"$gascmp_979" = icmp ugt i64 1, %"$gasrem_978" - br i1 %"$gascmp_979", label %"$out_of_gas_980", label %"$have_gas_981" - -"$out_of_gas_980": ; preds = %"$have_gas_976" - call void @_out_of_gas() - br label %"$have_gas_981" - -"$have_gas_981": ; preds = %"$out_of_gas_980", %"$have_gas_976" - %"$consume_982" = sub i64 %"$gasrem_978", 1 - store i64 %"$consume_982", i64* @_gasrem, align 8 - %"$BoolUtils.negb_11" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_983" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_984" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_983", 0 - %"$BoolUtils.negb_envptr_985" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_983", 1 - %"$in_time_986" = load %TName_Bool*, %TName_Bool** %in_time, align 8 - %"$BoolUtils.negb_call_987" = call %TName_Bool* %"$BoolUtils.negb_fptr_984"(i8* %"$BoolUtils.negb_envptr_985", %TName_Bool* %"$in_time_986"), !dbg !108 - store %TName_Bool* %"$BoolUtils.negb_call_987", %TName_Bool** %"$BoolUtils.negb_11", align 8, !dbg !108 - %"$$BoolUtils.negb_11_988" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_11", align 8 - store %TName_Bool* %"$$BoolUtils.negb_11_988", %TName_Bool** %c1, align 8, !dbg !108 +"$have_gas_845": ; preds = %"$out_of_gas_844", %"$have_gas_840" + %"$consume_846" = sub i64 %"$gasrem_842", 1 + store i64 %"$consume_846", i64* @_gasrem, align 8 + %"$BoolUtils.negb_0" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_847" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_848" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_847", 0 + %"$BoolUtils.negb_envptr_849" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_847", 1 + %"$in_time_850" = load %TName_Bool*, %TName_Bool** %in_time, align 8 + %"$BoolUtils.negb_call_851" = call %TName_Bool* %"$BoolUtils.negb_fptr_848"(i8* %"$BoolUtils.negb_envptr_849", %TName_Bool* %"$in_time_850"), !dbg !98 + store %TName_Bool* %"$BoolUtils.negb_call_851", %TName_Bool** %"$BoolUtils.negb_0", align 8, !dbg !98 + %"$$BoolUtils.negb_0_852" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_0", align 8 + store %TName_Bool* %"$$BoolUtils.negb_0_852", %TName_Bool** %c1, align 8, !dbg !98 %bal = alloca %Uint128, align 8 - %"$execptr_load_990" = load i8*, i8** @_execptr, align 8 - %"$bal_call_991" = call i8* @_fetch_field(i8* %"$execptr_load_990", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_989", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", i32 0, i8* null, i32 1), !dbg !109 - %"$bal_992" = bitcast i8* %"$bal_call_991" to %Uint128* - %"$bal_993" = load %Uint128, %Uint128* %"$bal_992", align 8 - store %Uint128 %"$bal_993", %Uint128* %bal, align 8 - %"$_literal_cost_bal_994" = alloca %Uint128, align 8 - %"$bal_995" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_995", %Uint128* %"$_literal_cost_bal_994", align 8 - %"$$_literal_cost_bal_994_996" = bitcast %Uint128* %"$_literal_cost_bal_994" to i8* - %"$_literal_cost_call_997" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_56", i8* %"$$_literal_cost_bal_994_996") - %"$gasadd_998" = add i64 %"$_literal_cost_call_997", 0 - %"$gasrem_999" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1000" = icmp ugt i64 %"$gasadd_998", %"$gasrem_999" - br i1 %"$gascmp_1000", label %"$out_of_gas_1001", label %"$have_gas_1002" - -"$out_of_gas_1001": ; preds = %"$have_gas_981" - call void @_out_of_gas() - br label %"$have_gas_1002" - -"$have_gas_1002": ; preds = %"$out_of_gas_1001", %"$have_gas_981" - %"$consume_1003" = sub i64 %"$gasrem_999", %"$gasadd_998" - store i64 %"$consume_1003", i64* @_gasrem, align 8 - %"$gasrem_1004" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1005" = icmp ugt i64 1, %"$gasrem_1004" - br i1 %"$gascmp_1005", label %"$out_of_gas_1006", label %"$have_gas_1007" - -"$out_of_gas_1006": ; preds = %"$have_gas_1002" - call void @_out_of_gas() - br label %"$have_gas_1007" - -"$have_gas_1007": ; preds = %"$out_of_gas_1006", %"$have_gas_1002" - %"$consume_1008" = sub i64 %"$gasrem_1004", 1 - store i64 %"$consume_1008", i64* @_gasrem, align 8 + %"$execptr_load_854" = load i8*, i8** @_execptr, align 8 + %"$bal_call_855" = call i8* @_fetch_field(i8* %"$execptr_load_854", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_853", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", i32 0, i8* null, i32 1), !dbg !99 + %"$bal_856" = bitcast i8* %"$bal_call_855" to %Uint128* + %"$bal_857" = load %Uint128, %Uint128* %"$bal_856", align 8 + store %Uint128 %"$bal_857", %Uint128* %bal, align 8 + %"$_literal_cost_bal_858" = alloca %Uint128, align 8 + %"$bal_859" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_859", %Uint128* %"$_literal_cost_bal_858", align 8 + %"$$_literal_cost_bal_858_860" = bitcast %Uint128* %"$_literal_cost_bal_858" to i8* + %"$_literal_cost_call_861" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_31", i8* %"$$_literal_cost_bal_858_860") + %"$gasadd_862" = add i64 %"$_literal_cost_call_861", 0 + %"$gasrem_863" = load i64, i64* @_gasrem, align 8 + %"$gascmp_864" = icmp ugt i64 %"$gasadd_862", %"$gasrem_863" + br i1 %"$gascmp_864", label %"$out_of_gas_865", label %"$have_gas_866" + +"$out_of_gas_865": ; preds = %"$have_gas_845" + call void @_out_of_gas() + br label %"$have_gas_866" + +"$have_gas_866": ; preds = %"$out_of_gas_865", %"$have_gas_845" + %"$consume_867" = sub i64 %"$gasrem_863", %"$gasadd_862" + store i64 %"$consume_867", i64* @_gasrem, align 8 + %"$gasrem_868" = load i64, i64* @_gasrem, align 8 + %"$gascmp_869" = icmp ugt i64 1, %"$gasrem_868" + br i1 %"$gascmp_869", label %"$out_of_gas_870", label %"$have_gas_871" + +"$out_of_gas_870": ; preds = %"$have_gas_866" + call void @_out_of_gas() + br label %"$have_gas_871" + +"$have_gas_871": ; preds = %"$out_of_gas_870", %"$have_gas_866" + %"$consume_872" = sub i64 %"$gasrem_868", 1 + store i64 %"$consume_872", i64* @_gasrem, align 8 %c2 = alloca %TName_Bool*, align 8 - %"$gasrem_1010" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1011" = icmp ugt i64 8, %"$gasrem_1010" - br i1 %"$gascmp_1011", label %"$out_of_gas_1012", label %"$have_gas_1013" + %"$gasrem_874" = load i64, i64* @_gasrem, align 8 + %"$gascmp_875" = icmp ugt i64 8, %"$gasrem_874" + br i1 %"$gascmp_875", label %"$out_of_gas_876", label %"$have_gas_877" -"$out_of_gas_1012": ; preds = %"$have_gas_1007" +"$out_of_gas_876": ; preds = %"$have_gas_871" call void @_out_of_gas() - br label %"$have_gas_1013" + br label %"$have_gas_877" -"$have_gas_1013": ; preds = %"$out_of_gas_1012", %"$have_gas_1007" - %"$consume_1014" = sub i64 %"$gasrem_1010", 8 - store i64 %"$consume_1014", i64* @_gasrem, align 8 - %"$execptr_load_1015" = load i8*, i8** @_execptr, align 8 - %"$bal_1016" = load %Uint128, %Uint128* %bal, align 8 - %"$goal_1017" = load %Uint128, %Uint128* @_cparam_goal, align 8 - %"$lt_call_1018" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1015", %Uint128 %"$bal_1016", %Uint128 %"$goal_1017"), !dbg !110 - store %TName_Bool* %"$lt_call_1018", %TName_Bool** %c2, align 8, !dbg !110 - %"$gasrem_1020" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1021" = icmp ugt i64 1, %"$gasrem_1020" - br i1 %"$gascmp_1021", label %"$out_of_gas_1022", label %"$have_gas_1023" +"$have_gas_877": ; preds = %"$out_of_gas_876", %"$have_gas_871" + %"$consume_878" = sub i64 %"$gasrem_874", 8 + store i64 %"$consume_878", i64* @_gasrem, align 8 + %"$execptr_load_879" = load i8*, i8** @_execptr, align 8 + %"$bal_880" = load %Uint128, %Uint128* %bal, align 8 + %"$goal_881" = load %Uint128, %Uint128* @_cparam_goal, align 8 + %"$lt_call_882" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_879", %Uint128 %"$bal_880", %Uint128 %"$goal_881"), !dbg !100 + store %TName_Bool* %"$lt_call_882", %TName_Bool** %c2, align 8, !dbg !100 + %"$gasrem_884" = load i64, i64* @_gasrem, align 8 + %"$gascmp_885" = icmp ugt i64 1, %"$gasrem_884" + br i1 %"$gascmp_885", label %"$out_of_gas_886", label %"$have_gas_887" -"$out_of_gas_1022": ; preds = %"$have_gas_1013" +"$out_of_gas_886": ; preds = %"$have_gas_877" call void @_out_of_gas() - br label %"$have_gas_1023" + br label %"$have_gas_887" -"$have_gas_1023": ; preds = %"$out_of_gas_1022", %"$have_gas_1013" - %"$consume_1024" = sub i64 %"$gasrem_1020", 1 - store i64 %"$consume_1024", i64* @_gasrem, align 8 +"$have_gas_887": ; preds = %"$out_of_gas_886", %"$have_gas_877" + %"$consume_888" = sub i64 %"$gasrem_884", 1 + store i64 %"$consume_888", i64* @_gasrem, align 8 %c3 = alloca %TName_Bool*, align 8 - %"$gasrem_1025" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1026" = icmp ugt i64 1, %"$gasrem_1025" - br i1 %"$gascmp_1026", label %"$out_of_gas_1027", label %"$have_gas_1028" - -"$out_of_gas_1027": ; preds = %"$have_gas_1023" - call void @_out_of_gas() - br label %"$have_gas_1028" - -"$have_gas_1028": ; preds = %"$out_of_gas_1027", %"$have_gas_1023" - %"$consume_1029" = sub i64 %"$gasrem_1025", 1 - store i64 %"$consume_1029", i64* @_gasrem, align 8 - %"$BoolUtils.negb_10" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_1030" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1031" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1030", 0 - %"$BoolUtils.negb_envptr_1032" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1030", 1 - %"$c2_1033" = load %TName_Bool*, %TName_Bool** %c2, align 8 - %"$BoolUtils.negb_call_1034" = call %TName_Bool* %"$BoolUtils.negb_fptr_1031"(i8* %"$BoolUtils.negb_envptr_1032", %TName_Bool* %"$c2_1033"), !dbg !111 - store %TName_Bool* %"$BoolUtils.negb_call_1034", %TName_Bool** %"$BoolUtils.negb_10", align 8, !dbg !111 - %"$$BoolUtils.negb_10_1035" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_10", align 8 - store %TName_Bool* %"$$BoolUtils.negb_10_1035", %TName_Bool** %c3, align 8, !dbg !111 - %"$gasrem_1036" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1037" = icmp ugt i64 1, %"$gasrem_1036" - br i1 %"$gascmp_1037", label %"$out_of_gas_1038", label %"$have_gas_1039" - -"$out_of_gas_1038": ; preds = %"$have_gas_1028" - call void @_out_of_gas() - br label %"$have_gas_1039" - -"$have_gas_1039": ; preds = %"$out_of_gas_1038", %"$have_gas_1028" - %"$consume_1040" = sub i64 %"$gasrem_1036", 1 - store i64 %"$consume_1040", i64* @_gasrem, align 8 + %"$gasrem_889" = load i64, i64* @_gasrem, align 8 + %"$gascmp_890" = icmp ugt i64 1, %"$gasrem_889" + br i1 %"$gascmp_890", label %"$out_of_gas_891", label %"$have_gas_892" + +"$out_of_gas_891": ; preds = %"$have_gas_887" + call void @_out_of_gas() + br label %"$have_gas_892" + +"$have_gas_892": ; preds = %"$out_of_gas_891", %"$have_gas_887" + %"$consume_893" = sub i64 %"$gasrem_889", 1 + store i64 %"$consume_893", i64* @_gasrem, align 8 + %"$BoolUtils.negb_1" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_894" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_895" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_894", 0 + %"$BoolUtils.negb_envptr_896" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_894", 1 + %"$c2_897" = load %TName_Bool*, %TName_Bool** %c2, align 8 + %"$BoolUtils.negb_call_898" = call %TName_Bool* %"$BoolUtils.negb_fptr_895"(i8* %"$BoolUtils.negb_envptr_896", %TName_Bool* %"$c2_897"), !dbg !101 + store %TName_Bool* %"$BoolUtils.negb_call_898", %TName_Bool** %"$BoolUtils.negb_1", align 8, !dbg !101 + %"$$BoolUtils.negb_1_899" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_1", align 8 + store %TName_Bool* %"$$BoolUtils.negb_1_899", %TName_Bool** %c3, align 8, !dbg !101 + %"$gasrem_900" = load i64, i64* @_gasrem, align 8 + %"$gascmp_901" = icmp ugt i64 1, %"$gasrem_900" + br i1 %"$gascmp_901", label %"$out_of_gas_902", label %"$have_gas_903" + +"$out_of_gas_902": ; preds = %"$have_gas_892" + call void @_out_of_gas() + br label %"$have_gas_903" + +"$have_gas_903": ; preds = %"$out_of_gas_902", %"$have_gas_892" + %"$consume_904" = sub i64 %"$gasrem_900", 1 + store i64 %"$consume_904", i64* @_gasrem, align 8 %c4 = alloca %TName_Bool*, align 8 - %"$gasrem_1041" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1042" = icmp ugt i64 1, %"$gasrem_1041" - br i1 %"$gascmp_1042", label %"$out_of_gas_1043", label %"$have_gas_1044" - -"$out_of_gas_1043": ; preds = %"$have_gas_1039" - call void @_out_of_gas() - br label %"$have_gas_1044" - -"$have_gas_1044": ; preds = %"$out_of_gas_1043", %"$have_gas_1039" - %"$consume_1045" = sub i64 %"$gasrem_1041", 1 - store i64 %"$consume_1045", i64* @_gasrem, align 8 - %"$BoolUtils.andb_8" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1046" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_1047" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1046", 0 - %"$BoolUtils.andb_envptr_1048" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1046", 1 - %"$c1_1049" = load %TName_Bool*, %TName_Bool** %c1, align 8 - %"$BoolUtils.andb_call_1050" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1047"(i8* %"$BoolUtils.andb_envptr_1048", %TName_Bool* %"$c1_1049"), !dbg !112 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1050", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_8", align 8, !dbg !112 - %"$BoolUtils.andb_9" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_8_1051" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_8", align 8 - %"$$BoolUtils.andb_8_fptr_1052" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_8_1051", 0 - %"$$BoolUtils.andb_8_envptr_1053" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_8_1051", 1 - %"$c3_1054" = load %TName_Bool*, %TName_Bool** %c3, align 8 - %"$$BoolUtils.andb_8_call_1055" = call %TName_Bool* %"$$BoolUtils.andb_8_fptr_1052"(i8* %"$$BoolUtils.andb_8_envptr_1053", %TName_Bool* %"$c3_1054"), !dbg !112 - store %TName_Bool* %"$$BoolUtils.andb_8_call_1055", %TName_Bool** %"$BoolUtils.andb_9", align 8, !dbg !112 - %"$$BoolUtils.andb_9_1056" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_9", align 8 - store %TName_Bool* %"$$BoolUtils.andb_9_1056", %TName_Bool** %c4, align 8, !dbg !112 - %"$gasrem_1057" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1058" = icmp ugt i64 2, %"$gasrem_1057" - br i1 %"$gascmp_1058", label %"$out_of_gas_1059", label %"$have_gas_1060" - -"$out_of_gas_1059": ; preds = %"$have_gas_1044" - call void @_out_of_gas() - br label %"$have_gas_1060" - -"$have_gas_1060": ; preds = %"$out_of_gas_1059", %"$have_gas_1044" - %"$consume_1061" = sub i64 %"$gasrem_1057", 2 - store i64 %"$consume_1061", i64* @_gasrem, align 8 - %"$c4_1063" = load %TName_Bool*, %TName_Bool** %c4, align 8 - %"$c4_tag_1064" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c4_1063", i32 0, i32 0 - %"$c4_tag_1065" = load i8, i8* %"$c4_tag_1064", align 1 - switch i8 %"$c4_tag_1065", label %"$empty_default_1066" [ - i8 1, label %"$False_1067" - i8 0, label %"$True_1121" - ], !dbg !113 - -"$False_1067": ; preds = %"$have_gas_1060" - %"$c4_1068" = bitcast %TName_Bool* %"$c4_1063" to %CName_False* - %"$gasrem_1069" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1070" = icmp ugt i64 1, %"$gasrem_1069" - br i1 %"$gascmp_1070", label %"$out_of_gas_1071", label %"$have_gas_1072" - -"$out_of_gas_1071": ; preds = %"$False_1067" - call void @_out_of_gas() - br label %"$have_gas_1072" - -"$have_gas_1072": ; preds = %"$out_of_gas_1071", %"$False_1067" - %"$consume_1073" = sub i64 %"$gasrem_1069", 1 - store i64 %"$consume_1073", i64* @_gasrem, align 8 + %"$gasrem_905" = load i64, i64* @_gasrem, align 8 + %"$gascmp_906" = icmp ugt i64 1, %"$gasrem_905" + br i1 %"$gascmp_906", label %"$out_of_gas_907", label %"$have_gas_908" + +"$out_of_gas_907": ; preds = %"$have_gas_903" + call void @_out_of_gas() + br label %"$have_gas_908" + +"$have_gas_908": ; preds = %"$out_of_gas_907", %"$have_gas_903" + %"$consume_909" = sub i64 %"$gasrem_905", 1 + store i64 %"$consume_909", i64* @_gasrem, align 8 + %"$BoolUtils.andb_910" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_911" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_910", 0 + %"$BoolUtils.andb_envptr_912" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_910", 1 + %"$c1_913" = load %TName_Bool*, %TName_Bool** %c1, align 8 + %"$c3_914" = load %TName_Bool*, %TName_Bool** %c3, align 8 + %"$BoolUtils.andb_call_915" = call %TName_Bool* %"$BoolUtils.andb_fptr_911"(i8* %"$BoolUtils.andb_envptr_912", %TName_Bool* %"$c1_913", %TName_Bool* %"$c3_914"), !dbg !102 + store %TName_Bool* %"$BoolUtils.andb_call_915", %TName_Bool** %c4, align 8, !dbg !102 + %"$gasrem_916" = load i64, i64* @_gasrem, align 8 + %"$gascmp_917" = icmp ugt i64 2, %"$gasrem_916" + br i1 %"$gascmp_917", label %"$out_of_gas_918", label %"$have_gas_919" + +"$out_of_gas_918": ; preds = %"$have_gas_908" + call void @_out_of_gas() + br label %"$have_gas_919" + +"$have_gas_919": ; preds = %"$out_of_gas_918", %"$have_gas_908" + %"$consume_920" = sub i64 %"$gasrem_916", 2 + store i64 %"$consume_920", i64* @_gasrem, align 8 + %"$c4_922" = load %TName_Bool*, %TName_Bool** %c4, align 8 + %"$c4_tag_923" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c4_922", i32 0, i32 0 + %"$c4_tag_924" = load i8, i8* %"$c4_tag_923", align 1 + switch i8 %"$c4_tag_924", label %"$empty_default_925" [ + i8 1, label %"$False_926" + i8 0, label %"$True_980" + ], !dbg !103 + +"$False_926": ; preds = %"$have_gas_919" + %"$c4_927" = bitcast %TName_Bool* %"$c4_922" to %CName_False* + %"$gasrem_928" = load i64, i64* @_gasrem, align 8 + %"$gascmp_929" = icmp ugt i64 1, %"$gasrem_928" + br i1 %"$gascmp_929", label %"$out_of_gas_930", label %"$have_gas_931" + +"$out_of_gas_930": ; preds = %"$False_926" + call void @_out_of_gas() + br label %"$have_gas_931" + +"$have_gas_931": ; preds = %"$out_of_gas_930", %"$False_926" + %"$consume_932" = sub i64 %"$gasrem_928", 1 + store i64 %"$consume_932", i64* @_gasrem, align 8 %e1 = alloca i8*, align 8 - %"$gasrem_1074" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1075" = icmp ugt i64 1, %"$gasrem_1074" - br i1 %"$gascmp_1075", label %"$out_of_gas_1076", label %"$have_gas_1077" - -"$out_of_gas_1076": ; preds = %"$have_gas_1072" - call void @_out_of_gas() - br label %"$have_gas_1077" - -"$have_gas_1077": ; preds = %"$out_of_gas_1076", %"$have_gas_1072" - %"$consume_1078" = sub i64 %"$gasrem_1074", 1 - store i64 %"$consume_1078", i64* @_gasrem, align 8 - %"$msgobj_1079_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1079_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1079_salloc_load", i64 153) - %"$msgobj_1079_salloc" = bitcast i8* %"$msgobj_1079_salloc_salloc" to [153 x i8]* - %"$msgobj_1079" = bitcast [153 x i8]* %"$msgobj_1079_salloc" to i8* - store i8 4, i8* %"$msgobj_1079", align 1 - %"$msgobj_fname_1081" = getelementptr i8, i8* %"$msgobj_1079", i32 1 - %"$msgobj_fname_1082" = bitcast i8* %"$msgobj_fname_1081" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1080", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1082", align 8 - %"$msgobj_td_1083" = getelementptr i8, i8* %"$msgobj_1079", i32 17 - %"$msgobj_td_1084" = bitcast i8* %"$msgobj_td_1083" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1084", align 8 - %"$msgobj_v_1086" = getelementptr i8, i8* %"$msgobj_1079", i32 25 - %"$msgobj_v_1087" = bitcast i8* %"$msgobj_v_1086" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_1085", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_1087", align 8 - %"$msgobj_fname_1089" = getelementptr i8, i8* %"$msgobj_1079", i32 41 - %"$msgobj_fname_1090" = bitcast i8* %"$msgobj_fname_1089" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1088", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1090", align 8 - %"$msgobj_td_1091" = getelementptr i8, i8* %"$msgobj_1079", i32 57 - %"$msgobj_td_1092" = bitcast i8* %"$msgobj_td_1091" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1092", align 8 - %"$msgobj_v_1093" = getelementptr i8, i8* %"$msgobj_1079", i32 65 - %"$msgobj_v_1094" = bitcast i8* %"$msgobj_v_1093" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1094", align 1 - %"$msgobj_fname_1096" = getelementptr i8, i8* %"$msgobj_1079", i32 85 - %"$msgobj_fname_1097" = bitcast i8* %"$msgobj_fname_1096" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1095", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1097", align 8 - %"$msgobj_td_1098" = getelementptr i8, i8* %"$msgobj_1079", i32 101 - %"$msgobj_td_1099" = bitcast i8* %"$msgobj_td_1098" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1099", align 8 - %"$msgobj_v_1100" = getelementptr i8, i8* %"$msgobj_1079", i32 109 - %"$msgobj_v_1101" = bitcast i8* %"$msgobj_v_1100" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1101", align 8 - %"$msgobj_fname_1103" = getelementptr i8, i8* %"$msgobj_1079", i32 125 - %"$msgobj_fname_1104" = bitcast i8* %"$msgobj_fname_1103" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1102", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1104", align 8 - %"$msgobj_td_1105" = getelementptr i8, i8* %"$msgobj_1079", i32 141 - %"$msgobj_td_1106" = bitcast i8* %"$msgobj_td_1105" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1106", align 8 - %"$crowdfunding.cannot_get_funds_1107" = load %Int32, %Int32* @crowdfunding.cannot_get_funds, align 4 - %"$msgobj_v_1108" = getelementptr i8, i8* %"$msgobj_1079", i32 149 - %"$msgobj_v_1109" = bitcast i8* %"$msgobj_v_1108" to %Int32* - store %Int32 %"$crowdfunding.cannot_get_funds_1107", %Int32* %"$msgobj_v_1109", align 4 - store i8* %"$msgobj_1079", i8** %e1, align 8, !dbg !114 - %"$e_1111" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_1113" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1111") - %"$gasrem_1114" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1115" = icmp ugt i64 %"$_literal_cost_call_1113", %"$gasrem_1114" - br i1 %"$gascmp_1115", label %"$out_of_gas_1116", label %"$have_gas_1117" - -"$out_of_gas_1116": ; preds = %"$have_gas_1077" - call void @_out_of_gas() - br label %"$have_gas_1117" - -"$have_gas_1117": ; preds = %"$out_of_gas_1116", %"$have_gas_1077" - %"$consume_1118" = sub i64 %"$gasrem_1114", %"$_literal_cost_call_1113" - store i64 %"$consume_1118", i64* @_gasrem, align 8 - %"$execptr_load_1119" = load i8*, i8** @_execptr, align 8 - %"$e_1120" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_1119", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1120"), !dbg !117 - br label %"$matchsucc_1062" - -"$True_1121": ; preds = %"$have_gas_1060" - %"$c4_1122" = bitcast %TName_Bool* %"$c4_1063" to %CName_True* - %"$gasrem_1123" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1124" = icmp ugt i64 1, %"$gasrem_1123" - br i1 %"$gascmp_1124", label %"$out_of_gas_1125", label %"$have_gas_1126" - -"$out_of_gas_1125": ; preds = %"$True_1121" - call void @_out_of_gas() - br label %"$have_gas_1126" - -"$have_gas_1126": ; preds = %"$out_of_gas_1125", %"$True_1121" - %"$consume_1127" = sub i64 %"$gasrem_1123", 1 - store i64 %"$consume_1127", i64* @_gasrem, align 8 + %"$gasrem_933" = load i64, i64* @_gasrem, align 8 + %"$gascmp_934" = icmp ugt i64 1, %"$gasrem_933" + br i1 %"$gascmp_934", label %"$out_of_gas_935", label %"$have_gas_936" + +"$out_of_gas_935": ; preds = %"$have_gas_931" + call void @_out_of_gas() + br label %"$have_gas_936" + +"$have_gas_936": ; preds = %"$out_of_gas_935", %"$have_gas_931" + %"$consume_937" = sub i64 %"$gasrem_933", 1 + store i64 %"$consume_937", i64* @_gasrem, align 8 + %"$msgobj_938_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_938_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_938_salloc_load", i64 153) + %"$msgobj_938_salloc" = bitcast i8* %"$msgobj_938_salloc_salloc" to [153 x i8]* + %"$msgobj_938" = bitcast [153 x i8]* %"$msgobj_938_salloc" to i8* + store i8 4, i8* %"$msgobj_938", align 1 + %"$msgobj_fname_940" = getelementptr i8, i8* %"$msgobj_938", i32 1 + %"$msgobj_fname_941" = bitcast i8* %"$msgobj_fname_940" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_939", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_941", align 8 + %"$msgobj_td_942" = getelementptr i8, i8* %"$msgobj_938", i32 17 + %"$msgobj_td_943" = bitcast i8* %"$msgobj_td_942" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_943", align 8 + %"$msgobj_v_945" = getelementptr i8, i8* %"$msgobj_938", i32 25 + %"$msgobj_v_946" = bitcast i8* %"$msgobj_v_945" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_944", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_946", align 8 + %"$msgobj_fname_948" = getelementptr i8, i8* %"$msgobj_938", i32 41 + %"$msgobj_fname_949" = bitcast i8* %"$msgobj_fname_948" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_947", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_949", align 8 + %"$msgobj_td_950" = getelementptr i8, i8* %"$msgobj_938", i32 57 + %"$msgobj_td_951" = bitcast i8* %"$msgobj_td_950" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_951", align 8 + %"$msgobj_v_952" = getelementptr i8, i8* %"$msgobj_938", i32 65 + %"$msgobj_v_953" = bitcast i8* %"$msgobj_v_952" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_953", align 1 + %"$msgobj_fname_955" = getelementptr i8, i8* %"$msgobj_938", i32 85 + %"$msgobj_fname_956" = bitcast i8* %"$msgobj_fname_955" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_954", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_956", align 8 + %"$msgobj_td_957" = getelementptr i8, i8* %"$msgobj_938", i32 101 + %"$msgobj_td_958" = bitcast i8* %"$msgobj_td_957" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_958", align 8 + %"$msgobj_v_959" = getelementptr i8, i8* %"$msgobj_938", i32 109 + %"$msgobj_v_960" = bitcast i8* %"$msgobj_v_959" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_960", align 8 + %"$msgobj_fname_962" = getelementptr i8, i8* %"$msgobj_938", i32 125 + %"$msgobj_fname_963" = bitcast i8* %"$msgobj_fname_962" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_961", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_963", align 8 + %"$msgobj_td_964" = getelementptr i8, i8* %"$msgobj_938", i32 141 + %"$msgobj_td_965" = bitcast i8* %"$msgobj_td_964" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_965", align 8 + %"$crowdfunding.cannot_get_funds_966" = load %Int32, %Int32* @crowdfunding.cannot_get_funds, align 4 + %"$msgobj_v_967" = getelementptr i8, i8* %"$msgobj_938", i32 149 + %"$msgobj_v_968" = bitcast i8* %"$msgobj_v_967" to %Int32* + store %Int32 %"$crowdfunding.cannot_get_funds_966", %Int32* %"$msgobj_v_968", align 4 + store i8* %"$msgobj_938", i8** %e1, align 8, !dbg !104 + %"$e_970" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_972" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_970") + %"$gasrem_973" = load i64, i64* @_gasrem, align 8 + %"$gascmp_974" = icmp ugt i64 %"$_literal_cost_call_972", %"$gasrem_973" + br i1 %"$gascmp_974", label %"$out_of_gas_975", label %"$have_gas_976" + +"$out_of_gas_975": ; preds = %"$have_gas_936" + call void @_out_of_gas() + br label %"$have_gas_976" + +"$have_gas_976": ; preds = %"$out_of_gas_975", %"$have_gas_936" + %"$consume_977" = sub i64 %"$gasrem_973", %"$_literal_cost_call_972" + store i64 %"$consume_977", i64* @_gasrem, align 8 + %"$execptr_load_978" = load i8*, i8** @_execptr, align 8 + %"$e_979" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_978", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_979"), !dbg !107 + br label %"$matchsucc_921" + +"$True_980": ; preds = %"$have_gas_919" + %"$c4_981" = bitcast %TName_Bool* %"$c4_922" to %CName_True* + %"$gasrem_982" = load i64, i64* @_gasrem, align 8 + %"$gascmp_983" = icmp ugt i64 1, %"$gasrem_982" + br i1 %"$gascmp_983", label %"$out_of_gas_984", label %"$have_gas_985" + +"$out_of_gas_984": ; preds = %"$True_980" + call void @_out_of_gas() + br label %"$have_gas_985" + +"$have_gas_985": ; preds = %"$out_of_gas_984", %"$True_980" + %"$consume_986" = sub i64 %"$gasrem_982", 1 + store i64 %"$consume_986", i64* @_gasrem, align 8 %tt = alloca %TName_Bool*, align 8 - %"$gasrem_1128" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1129" = icmp ugt i64 1, %"$gasrem_1128" - br i1 %"$gascmp_1129", label %"$out_of_gas_1130", label %"$have_gas_1131" - -"$out_of_gas_1130": ; preds = %"$have_gas_1126" - call void @_out_of_gas() - br label %"$have_gas_1131" - -"$have_gas_1131": ; preds = %"$out_of_gas_1130", %"$have_gas_1126" - %"$consume_1132" = sub i64 %"$gasrem_1128", 1 - store i64 %"$consume_1132", i64* @_gasrem, align 8 - %"$adtval_1133_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1133_salloc" = call i8* @_salloc(i8* %"$adtval_1133_load", i64 1) - %"$adtval_1133" = bitcast i8* %"$adtval_1133_salloc" to %CName_True* - %"$adtgep_1134" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1133", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1134", align 1 - %"$adtptr_1135" = bitcast %CName_True* %"$adtval_1133" to %TName_Bool* - store %TName_Bool* %"$adtptr_1135", %TName_Bool** %tt, align 8, !dbg !118 - %"$tt_1136" = load %TName_Bool*, %TName_Bool** %tt, align 8 - %"$$tt_1136_1137" = bitcast %TName_Bool* %"$tt_1136" to i8* - %"$_literal_cost_call_1138" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", i8* %"$$tt_1136_1137") - %"$gasrem_1139" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1140" = icmp ugt i64 %"$_literal_cost_call_1138", %"$gasrem_1139" - br i1 %"$gascmp_1140", label %"$out_of_gas_1141", label %"$have_gas_1142" - -"$out_of_gas_1141": ; preds = %"$have_gas_1131" - call void @_out_of_gas() - br label %"$have_gas_1142" - -"$have_gas_1142": ; preds = %"$out_of_gas_1141", %"$have_gas_1131" - %"$consume_1143" = sub i64 %"$gasrem_1139", %"$_literal_cost_call_1138" - store i64 %"$consume_1143", i64* @_gasrem, align 8 - %"$execptr_load_1144" = load i8*, i8** @_execptr, align 8 - %"$tt_1146" = load %TName_Bool*, %TName_Bool** %tt, align 8 - %"$update_value_1147" = bitcast %TName_Bool* %"$tt_1146" to i8* - call void @_update_field(i8* %"$execptr_load_1144", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1145", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", i32 0, i8* null, i8* %"$update_value_1147"), !dbg !120 - %"$gasrem_1148" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1149" = icmp ugt i64 1, %"$gasrem_1148" - br i1 %"$gascmp_1149", label %"$out_of_gas_1150", label %"$have_gas_1151" - -"$out_of_gas_1150": ; preds = %"$have_gas_1142" - call void @_out_of_gas() - br label %"$have_gas_1151" - -"$have_gas_1151": ; preds = %"$out_of_gas_1150", %"$have_gas_1142" - %"$consume_1152" = sub i64 %"$gasrem_1148", 1 - store i64 %"$consume_1152", i64* @_gasrem, align 8 + %"$gasrem_987" = load i64, i64* @_gasrem, align 8 + %"$gascmp_988" = icmp ugt i64 1, %"$gasrem_987" + br i1 %"$gascmp_988", label %"$out_of_gas_989", label %"$have_gas_990" + +"$out_of_gas_989": ; preds = %"$have_gas_985" + call void @_out_of_gas() + br label %"$have_gas_990" + +"$have_gas_990": ; preds = %"$out_of_gas_989", %"$have_gas_985" + %"$consume_991" = sub i64 %"$gasrem_987", 1 + store i64 %"$consume_991", i64* @_gasrem, align 8 + %"$adtval_992_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_992_salloc" = call i8* @_salloc(i8* %"$adtval_992_load", i64 1) + %"$adtval_992" = bitcast i8* %"$adtval_992_salloc" to %CName_True* + %"$adtgep_993" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_992", i32 0, i32 0 + store i8 0, i8* %"$adtgep_993", align 1 + %"$adtptr_994" = bitcast %CName_True* %"$adtval_992" to %TName_Bool* + store %TName_Bool* %"$adtptr_994", %TName_Bool** %tt, align 8, !dbg !108 + %"$tt_995" = load %TName_Bool*, %TName_Bool** %tt, align 8 + %"$$tt_995_996" = bitcast %TName_Bool* %"$tt_995" to i8* + %"$_literal_cost_call_997" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", i8* %"$$tt_995_996") + %"$gasrem_998" = load i64, i64* @_gasrem, align 8 + %"$gascmp_999" = icmp ugt i64 %"$_literal_cost_call_997", %"$gasrem_998" + br i1 %"$gascmp_999", label %"$out_of_gas_1000", label %"$have_gas_1001" + +"$out_of_gas_1000": ; preds = %"$have_gas_990" + call void @_out_of_gas() + br label %"$have_gas_1001" + +"$have_gas_1001": ; preds = %"$out_of_gas_1000", %"$have_gas_990" + %"$consume_1002" = sub i64 %"$gasrem_998", %"$_literal_cost_call_997" + store i64 %"$consume_1002", i64* @_gasrem, align 8 + %"$execptr_load_1003" = load i8*, i8** @_execptr, align 8 + %"$tt_1005" = load %TName_Bool*, %TName_Bool** %tt, align 8 + %"$update_value_1006" = bitcast %TName_Bool* %"$tt_1005" to i8* + call void @_update_field(i8* %"$execptr_load_1003", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1004", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", i32 0, i8* null, i8* %"$update_value_1006"), !dbg !110 + %"$gasrem_1007" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1008" = icmp ugt i64 1, %"$gasrem_1007" + br i1 %"$gascmp_1008", label %"$out_of_gas_1009", label %"$have_gas_1010" + +"$out_of_gas_1009": ; preds = %"$have_gas_1001" + call void @_out_of_gas() + br label %"$have_gas_1010" + +"$have_gas_1010": ; preds = %"$out_of_gas_1009", %"$have_gas_1001" + %"$consume_1011" = sub i64 %"$gasrem_1007", 1 + store i64 %"$consume_1011", i64* @_gasrem, align 8 %msg = alloca i8*, align 8 - %"$gasrem_1153" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1154" = icmp ugt i64 1, %"$gasrem_1153" - br i1 %"$gascmp_1154", label %"$out_of_gas_1155", label %"$have_gas_1156" - -"$out_of_gas_1155": ; preds = %"$have_gas_1151" - call void @_out_of_gas() - br label %"$have_gas_1156" - -"$have_gas_1156": ; preds = %"$out_of_gas_1155", %"$have_gas_1151" - %"$consume_1157" = sub i64 %"$gasrem_1153", 1 - store i64 %"$consume_1157", i64* @_gasrem, align 8 - %"$msgobj_1158_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1158_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1158_salloc_load", i64 125) - %"$msgobj_1158_salloc" = bitcast i8* %"$msgobj_1158_salloc_salloc" to [125 x i8]* - %"$msgobj_1158" = bitcast [125 x i8]* %"$msgobj_1158_salloc" to i8* - store i8 3, i8* %"$msgobj_1158", align 1 - %"$msgobj_fname_1160" = getelementptr i8, i8* %"$msgobj_1158", i32 1 - %"$msgobj_fname_1161" = bitcast i8* %"$msgobj_fname_1160" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1159", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1161", align 8 - %"$msgobj_td_1162" = getelementptr i8, i8* %"$msgobj_1158", i32 17 - %"$msgobj_td_1163" = bitcast i8* %"$msgobj_td_1162" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1163", align 8 - %"$msgobj_v_1165" = getelementptr i8, i8* %"$msgobj_1158", i32 25 - %"$msgobj_v_1166" = bitcast i8* %"$msgobj_v_1165" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1164", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1166", align 8 - %"$msgobj_fname_1168" = getelementptr i8, i8* %"$msgobj_1158", i32 41 - %"$msgobj_fname_1169" = bitcast i8* %"$msgobj_fname_1168" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1167", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1169", align 8 - %"$msgobj_td_1170" = getelementptr i8, i8* %"$msgobj_1158", i32 57 - %"$msgobj_td_1171" = bitcast i8* %"$msgobj_td_1170" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1171", align 8 - %"$owner_1172" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 - %"$msgobj_v_1173" = getelementptr i8, i8* %"$msgobj_1158", i32 65 - %"$msgobj_v_1174" = bitcast i8* %"$msgobj_v_1173" to [20 x i8]* - store [20 x i8] %"$owner_1172", [20 x i8]* %"$msgobj_v_1174", align 1 - %"$msgobj_fname_1176" = getelementptr i8, i8* %"$msgobj_1158", i32 85 - %"$msgobj_fname_1177" = bitcast i8* %"$msgobj_fname_1176" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1175", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1177", align 8 - %"$msgobj_td_1178" = getelementptr i8, i8* %"$msgobj_1158", i32 101 - %"$msgobj_td_1179" = bitcast i8* %"$msgobj_td_1178" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1179", align 8 - %"$bal_1180" = load %Uint128, %Uint128* %bal, align 8 - %"$msgobj_v_1181" = getelementptr i8, i8* %"$msgobj_1158", i32 109 - %"$msgobj_v_1182" = bitcast i8* %"$msgobj_v_1181" to %Uint128* - store %Uint128 %"$bal_1180", %Uint128* %"$msgobj_v_1182", align 8 - store i8* %"$msgobj_1158", i8** %msg, align 8, !dbg !121 - %"$gasrem_1184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1185" = icmp ugt i64 1, %"$gasrem_1184" - br i1 %"$gascmp_1185", label %"$out_of_gas_1186", label %"$have_gas_1187" - -"$out_of_gas_1186": ; preds = %"$have_gas_1156" - call void @_out_of_gas() - br label %"$have_gas_1187" - -"$have_gas_1187": ; preds = %"$out_of_gas_1186", %"$have_gas_1156" - %"$consume_1188" = sub i64 %"$gasrem_1184", 1 - store i64 %"$consume_1188", i64* @_gasrem, align 8 + %"$gasrem_1012" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1013" = icmp ugt i64 1, %"$gasrem_1012" + br i1 %"$gascmp_1013", label %"$out_of_gas_1014", label %"$have_gas_1015" + +"$out_of_gas_1014": ; preds = %"$have_gas_1010" + call void @_out_of_gas() + br label %"$have_gas_1015" + +"$have_gas_1015": ; preds = %"$out_of_gas_1014", %"$have_gas_1010" + %"$consume_1016" = sub i64 %"$gasrem_1012", 1 + store i64 %"$consume_1016", i64* @_gasrem, align 8 + %"$msgobj_1017_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1017_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1017_salloc_load", i64 125) + %"$msgobj_1017_salloc" = bitcast i8* %"$msgobj_1017_salloc_salloc" to [125 x i8]* + %"$msgobj_1017" = bitcast [125 x i8]* %"$msgobj_1017_salloc" to i8* + store i8 3, i8* %"$msgobj_1017", align 1 + %"$msgobj_fname_1019" = getelementptr i8, i8* %"$msgobj_1017", i32 1 + %"$msgobj_fname_1020" = bitcast i8* %"$msgobj_fname_1019" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1018", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1020", align 8 + %"$msgobj_td_1021" = getelementptr i8, i8* %"$msgobj_1017", i32 17 + %"$msgobj_td_1022" = bitcast i8* %"$msgobj_td_1021" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1022", align 8 + %"$msgobj_v_1024" = getelementptr i8, i8* %"$msgobj_1017", i32 25 + %"$msgobj_v_1025" = bitcast i8* %"$msgobj_v_1024" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1023", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1025", align 8 + %"$msgobj_fname_1027" = getelementptr i8, i8* %"$msgobj_1017", i32 41 + %"$msgobj_fname_1028" = bitcast i8* %"$msgobj_fname_1027" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1026", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1028", align 8 + %"$msgobj_td_1029" = getelementptr i8, i8* %"$msgobj_1017", i32 57 + %"$msgobj_td_1030" = bitcast i8* %"$msgobj_td_1029" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1030", align 8 + %"$owner_1031" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 + %"$msgobj_v_1032" = getelementptr i8, i8* %"$msgobj_1017", i32 65 + %"$msgobj_v_1033" = bitcast i8* %"$msgobj_v_1032" to [20 x i8]* + store [20 x i8] %"$owner_1031", [20 x i8]* %"$msgobj_v_1033", align 1 + %"$msgobj_fname_1035" = getelementptr i8, i8* %"$msgobj_1017", i32 85 + %"$msgobj_fname_1036" = bitcast i8* %"$msgobj_fname_1035" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1034", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1036", align 8 + %"$msgobj_td_1037" = getelementptr i8, i8* %"$msgobj_1017", i32 101 + %"$msgobj_td_1038" = bitcast i8* %"$msgobj_td_1037" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1038", align 8 + %"$bal_1039" = load %Uint128, %Uint128* %bal, align 8 + %"$msgobj_v_1040" = getelementptr i8, i8* %"$msgobj_1017", i32 109 + %"$msgobj_v_1041" = bitcast i8* %"$msgobj_v_1040" to %Uint128* + store %Uint128 %"$bal_1039", %Uint128* %"$msgobj_v_1041", align 8 + store i8* %"$msgobj_1017", i8** %msg, align 8, !dbg !111 + %"$gasrem_1043" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1044" = icmp ugt i64 1, %"$gasrem_1043" + br i1 %"$gascmp_1044", label %"$out_of_gas_1045", label %"$have_gas_1046" + +"$out_of_gas_1045": ; preds = %"$have_gas_1015" + call void @_out_of_gas() + br label %"$have_gas_1046" + +"$have_gas_1046": ; preds = %"$out_of_gas_1045", %"$have_gas_1015" + %"$consume_1047" = sub i64 %"$gasrem_1043", 1 + store i64 %"$consume_1047", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_1189" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1190" = icmp ugt i64 1, %"$gasrem_1189" - br i1 %"$gascmp_1190", label %"$out_of_gas_1191", label %"$have_gas_1192" - -"$out_of_gas_1191": ; preds = %"$have_gas_1187" - call void @_out_of_gas() - br label %"$have_gas_1192" - -"$have_gas_1192": ; preds = %"$out_of_gas_1191", %"$have_gas_1187" - %"$consume_1193" = sub i64 %"$gasrem_1189", 1 - store i64 %"$consume_1193", i64* @_gasrem, align 8 - %"$crowdfunding.one_msg_7" = alloca %TName_List_Message*, align 8 - %"$crowdfunding.one_msg_1194" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 - %"$crowdfunding.one_msg_fptr_1195" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1194", 0 - %"$crowdfunding.one_msg_envptr_1196" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1194", 1 - %"$msg_1197" = load i8*, i8** %msg, align 8 - %"$crowdfunding.one_msg_call_1198" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1195"(i8* %"$crowdfunding.one_msg_envptr_1196", i8* %"$msg_1197"), !dbg !122 - store %TName_List_Message* %"$crowdfunding.one_msg_call_1198", %TName_List_Message** %"$crowdfunding.one_msg_7", align 8, !dbg !122 - %"$$crowdfunding.one_msg_7_1199" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_7", align 8 - store %TName_List_Message* %"$$crowdfunding.one_msg_7_1199", %TName_List_Message** %msgs, align 8, !dbg !122 - %"$gasrem_1200" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1201" = icmp ugt i64 1, %"$gasrem_1200" - br i1 %"$gascmp_1201", label %"$out_of_gas_1202", label %"$have_gas_1203" - -"$out_of_gas_1202": ; preds = %"$have_gas_1192" - call void @_out_of_gas() - br label %"$have_gas_1203" - -"$have_gas_1203": ; preds = %"$out_of_gas_1202", %"$have_gas_1192" - %"$consume_1204" = sub i64 %"$gasrem_1200", 1 - store i64 %"$consume_1204", i64* @_gasrem, align 8 + %"$gasrem_1048" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1049" = icmp ugt i64 1, %"$gasrem_1048" + br i1 %"$gascmp_1049", label %"$out_of_gas_1050", label %"$have_gas_1051" + +"$out_of_gas_1050": ; preds = %"$have_gas_1046" + call void @_out_of_gas() + br label %"$have_gas_1051" + +"$have_gas_1051": ; preds = %"$out_of_gas_1050", %"$have_gas_1046" + %"$consume_1052" = sub i64 %"$gasrem_1048", 1 + store i64 %"$consume_1052", i64* @_gasrem, align 8 + %"$crowdfunding.one_msg_2" = alloca %TName_List_Message*, align 8 + %"$crowdfunding.one_msg_1053" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 + %"$crowdfunding.one_msg_fptr_1054" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1053", 0 + %"$crowdfunding.one_msg_envptr_1055" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1053", 1 + %"$msg_1056" = load i8*, i8** %msg, align 8 + %"$crowdfunding.one_msg_call_1057" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1054"(i8* %"$crowdfunding.one_msg_envptr_1055", i8* %"$msg_1056"), !dbg !112 + store %TName_List_Message* %"$crowdfunding.one_msg_call_1057", %TName_List_Message** %"$crowdfunding.one_msg_2", align 8, !dbg !112 + %"$$crowdfunding.one_msg_2_1058" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_2", align 8 + store %TName_List_Message* %"$$crowdfunding.one_msg_2_1058", %TName_List_Message** %msgs, align 8, !dbg !112 + %"$gasrem_1059" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1060" = icmp ugt i64 1, %"$gasrem_1059" + br i1 %"$gascmp_1060", label %"$out_of_gas_1061", label %"$have_gas_1062" + +"$out_of_gas_1061": ; preds = %"$have_gas_1051" + call void @_out_of_gas() + br label %"$have_gas_1062" + +"$have_gas_1062": ; preds = %"$out_of_gas_1061", %"$have_gas_1051" + %"$consume_1063" = sub i64 %"$gasrem_1059", 1 + store i64 %"$consume_1063", i64* @_gasrem, align 8 %e2 = alloca i8*, align 8 - %"$gasrem_1205" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1206" = icmp ugt i64 1, %"$gasrem_1205" - br i1 %"$gascmp_1206", label %"$out_of_gas_1207", label %"$have_gas_1208" - -"$out_of_gas_1207": ; preds = %"$have_gas_1203" - call void @_out_of_gas() - br label %"$have_gas_1208" - -"$have_gas_1208": ; preds = %"$out_of_gas_1207", %"$have_gas_1203" - %"$consume_1209" = sub i64 %"$gasrem_1205", 1 - store i64 %"$consume_1209", i64* @_gasrem, align 8 - %"$msgobj_1210_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1210_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1210_salloc_load", i64 153) - %"$msgobj_1210_salloc" = bitcast i8* %"$msgobj_1210_salloc_salloc" to [153 x i8]* - %"$msgobj_1210" = bitcast [153 x i8]* %"$msgobj_1210_salloc" to i8* - store i8 4, i8* %"$msgobj_1210", align 1 - %"$msgobj_fname_1212" = getelementptr i8, i8* %"$msgobj_1210", i32 1 - %"$msgobj_fname_1213" = bitcast i8* %"$msgobj_fname_1212" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1211", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1213", align 8 - %"$msgobj_td_1214" = getelementptr i8, i8* %"$msgobj_1210", i32 17 - %"$msgobj_td_1215" = bitcast i8* %"$msgobj_td_1214" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1215", align 8 - %"$msgobj_v_1217" = getelementptr i8, i8* %"$msgobj_1210", i32 25 - %"$msgobj_v_1218" = bitcast i8* %"$msgobj_v_1217" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_1216", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_1218", align 8 - %"$msgobj_fname_1220" = getelementptr i8, i8* %"$msgobj_1210", i32 41 - %"$msgobj_fname_1221" = bitcast i8* %"$msgobj_fname_1220" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1219", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1221", align 8 - %"$msgobj_td_1222" = getelementptr i8, i8* %"$msgobj_1210", i32 57 - %"$msgobj_td_1223" = bitcast i8* %"$msgobj_td_1222" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1223", align 8 - %"$owner_1224" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 - %"$msgobj_v_1225" = getelementptr i8, i8* %"$msgobj_1210", i32 65 - %"$msgobj_v_1226" = bitcast i8* %"$msgobj_v_1225" to [20 x i8]* - store [20 x i8] %"$owner_1224", [20 x i8]* %"$msgobj_v_1226", align 1 - %"$msgobj_fname_1228" = getelementptr i8, i8* %"$msgobj_1210", i32 85 - %"$msgobj_fname_1229" = bitcast i8* %"$msgobj_fname_1228" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1227", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1229", align 8 - %"$msgobj_td_1230" = getelementptr i8, i8* %"$msgobj_1210", i32 101 - %"$msgobj_td_1231" = bitcast i8* %"$msgobj_td_1230" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1231", align 8 - %"$bal_1232" = load %Uint128, %Uint128* %bal, align 8 - %"$msgobj_v_1233" = getelementptr i8, i8* %"$msgobj_1210", i32 109 - %"$msgobj_v_1234" = bitcast i8* %"$msgobj_v_1233" to %Uint128* - store %Uint128 %"$bal_1232", %Uint128* %"$msgobj_v_1234", align 8 - %"$msgobj_fname_1236" = getelementptr i8, i8* %"$msgobj_1210", i32 125 - %"$msgobj_fname_1237" = bitcast i8* %"$msgobj_fname_1236" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1235", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1237", align 8 - %"$msgobj_td_1238" = getelementptr i8, i8* %"$msgobj_1210", i32 141 - %"$msgobj_td_1239" = bitcast i8* %"$msgobj_td_1238" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1239", align 8 - %"$crowdfunding.got_funds_code_1240" = load %Int32, %Int32* @crowdfunding.got_funds_code, align 4 - %"$msgobj_v_1241" = getelementptr i8, i8* %"$msgobj_1210", i32 149 - %"$msgobj_v_1242" = bitcast i8* %"$msgobj_v_1241" to %Int32* - store %Int32 %"$crowdfunding.got_funds_code_1240", %Int32* %"$msgobj_v_1242", align 4 - store i8* %"$msgobj_1210", i8** %e2, align 8, !dbg !123 - %"$e_1244" = load i8*, i8** %e2, align 8 - %"$_literal_cost_call_1246" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1244") - %"$gasrem_1247" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1248" = icmp ugt i64 %"$_literal_cost_call_1246", %"$gasrem_1247" - br i1 %"$gascmp_1248", label %"$out_of_gas_1249", label %"$have_gas_1250" - -"$out_of_gas_1249": ; preds = %"$have_gas_1208" - call void @_out_of_gas() - br label %"$have_gas_1250" - -"$have_gas_1250": ; preds = %"$out_of_gas_1249", %"$have_gas_1208" - %"$consume_1251" = sub i64 %"$gasrem_1247", %"$_literal_cost_call_1246" - store i64 %"$consume_1251", i64* @_gasrem, align 8 - %"$execptr_load_1252" = load i8*, i8** @_execptr, align 8 - %"$e_1253" = load i8*, i8** %e2, align 8 - call void @_event(i8* %"$execptr_load_1252", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1253"), !dbg !124 - %"$msgs_1254" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_1254_1255" = bitcast %TName_List_Message* %"$msgs_1254" to i8* - %"$_literal_cost_call_1256" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80", i8* %"$$msgs_1254_1255") - %"$gasrem_1257" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1258" = icmp ugt i64 %"$_literal_cost_call_1256", %"$gasrem_1257" - br i1 %"$gascmp_1258", label %"$out_of_gas_1259", label %"$have_gas_1260" - -"$out_of_gas_1259": ; preds = %"$have_gas_1250" - call void @_out_of_gas() - br label %"$have_gas_1260" - -"$have_gas_1260": ; preds = %"$out_of_gas_1259", %"$have_gas_1250" - %"$consume_1261" = sub i64 %"$gasrem_1257", %"$_literal_cost_call_1256" - store i64 %"$consume_1261", i64* @_gasrem, align 8 - %"$execptr_load_1262" = load i8*, i8** @_execptr, align 8 - %"$msgs_1263" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_1262", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80", %TName_List_Message* %"$msgs_1263"), !dbg !125 - br label %"$matchsucc_1062" - -"$empty_default_1066": ; preds = %"$have_gas_1060" - br label %"$matchsucc_1062" - -"$matchsucc_1062": ; preds = %"$have_gas_1260", %"$have_gas_1117", %"$empty_default_1066" - br label %"$matchsucc_882" - -"$empty_default_886": ; preds = %"$have_gas_880" - br label %"$matchsucc_882" - -"$matchsucc_882": ; preds = %"$matchsucc_1062", %"$have_gas_937", %"$empty_default_886" + %"$gasrem_1064" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1065" = icmp ugt i64 1, %"$gasrem_1064" + br i1 %"$gascmp_1065", label %"$out_of_gas_1066", label %"$have_gas_1067" + +"$out_of_gas_1066": ; preds = %"$have_gas_1062" + call void @_out_of_gas() + br label %"$have_gas_1067" + +"$have_gas_1067": ; preds = %"$out_of_gas_1066", %"$have_gas_1062" + %"$consume_1068" = sub i64 %"$gasrem_1064", 1 + store i64 %"$consume_1068", i64* @_gasrem, align 8 + %"$msgobj_1069_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1069_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1069_salloc_load", i64 153) + %"$msgobj_1069_salloc" = bitcast i8* %"$msgobj_1069_salloc_salloc" to [153 x i8]* + %"$msgobj_1069" = bitcast [153 x i8]* %"$msgobj_1069_salloc" to i8* + store i8 4, i8* %"$msgobj_1069", align 1 + %"$msgobj_fname_1071" = getelementptr i8, i8* %"$msgobj_1069", i32 1 + %"$msgobj_fname_1072" = bitcast i8* %"$msgobj_fname_1071" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1070", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1072", align 8 + %"$msgobj_td_1073" = getelementptr i8, i8* %"$msgobj_1069", i32 17 + %"$msgobj_td_1074" = bitcast i8* %"$msgobj_td_1073" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1074", align 8 + %"$msgobj_v_1076" = getelementptr i8, i8* %"$msgobj_1069", i32 25 + %"$msgobj_v_1077" = bitcast i8* %"$msgobj_v_1076" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_1075", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_1077", align 8 + %"$msgobj_fname_1079" = getelementptr i8, i8* %"$msgobj_1069", i32 41 + %"$msgobj_fname_1080" = bitcast i8* %"$msgobj_fname_1079" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1078", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1080", align 8 + %"$msgobj_td_1081" = getelementptr i8, i8* %"$msgobj_1069", i32 57 + %"$msgobj_td_1082" = bitcast i8* %"$msgobj_td_1081" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1082", align 8 + %"$owner_1083" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 + %"$msgobj_v_1084" = getelementptr i8, i8* %"$msgobj_1069", i32 65 + %"$msgobj_v_1085" = bitcast i8* %"$msgobj_v_1084" to [20 x i8]* + store [20 x i8] %"$owner_1083", [20 x i8]* %"$msgobj_v_1085", align 1 + %"$msgobj_fname_1087" = getelementptr i8, i8* %"$msgobj_1069", i32 85 + %"$msgobj_fname_1088" = bitcast i8* %"$msgobj_fname_1087" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1086", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1088", align 8 + %"$msgobj_td_1089" = getelementptr i8, i8* %"$msgobj_1069", i32 101 + %"$msgobj_td_1090" = bitcast i8* %"$msgobj_td_1089" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1090", align 8 + %"$bal_1091" = load %Uint128, %Uint128* %bal, align 8 + %"$msgobj_v_1092" = getelementptr i8, i8* %"$msgobj_1069", i32 109 + %"$msgobj_v_1093" = bitcast i8* %"$msgobj_v_1092" to %Uint128* + store %Uint128 %"$bal_1091", %Uint128* %"$msgobj_v_1093", align 8 + %"$msgobj_fname_1095" = getelementptr i8, i8* %"$msgobj_1069", i32 125 + %"$msgobj_fname_1096" = bitcast i8* %"$msgobj_fname_1095" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1094", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1096", align 8 + %"$msgobj_td_1097" = getelementptr i8, i8* %"$msgobj_1069", i32 141 + %"$msgobj_td_1098" = bitcast i8* %"$msgobj_td_1097" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_1098", align 8 + %"$crowdfunding.got_funds_code_1099" = load %Int32, %Int32* @crowdfunding.got_funds_code, align 4 + %"$msgobj_v_1100" = getelementptr i8, i8* %"$msgobj_1069", i32 149 + %"$msgobj_v_1101" = bitcast i8* %"$msgobj_v_1100" to %Int32* + store %Int32 %"$crowdfunding.got_funds_code_1099", %Int32* %"$msgobj_v_1101", align 4 + store i8* %"$msgobj_1069", i8** %e2, align 8, !dbg !113 + %"$e_1103" = load i8*, i8** %e2, align 8 + %"$_literal_cost_call_1105" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1103") + %"$gasrem_1106" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1107" = icmp ugt i64 %"$_literal_cost_call_1105", %"$gasrem_1106" + br i1 %"$gascmp_1107", label %"$out_of_gas_1108", label %"$have_gas_1109" + +"$out_of_gas_1108": ; preds = %"$have_gas_1067" + call void @_out_of_gas() + br label %"$have_gas_1109" + +"$have_gas_1109": ; preds = %"$out_of_gas_1108", %"$have_gas_1067" + %"$consume_1110" = sub i64 %"$gasrem_1106", %"$_literal_cost_call_1105" + store i64 %"$consume_1110", i64* @_gasrem, align 8 + %"$execptr_load_1111" = load i8*, i8** @_execptr, align 8 + %"$e_1112" = load i8*, i8** %e2, align 8 + call void @_event(i8* %"$execptr_load_1111", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1112"), !dbg !114 + %"$msgs_1113" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_1113_1114" = bitcast %TName_List_Message* %"$msgs_1113" to i8* + %"$_literal_cost_call_1115" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55", i8* %"$$msgs_1113_1114") + %"$gasrem_1116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1117" = icmp ugt i64 %"$_literal_cost_call_1115", %"$gasrem_1116" + br i1 %"$gascmp_1117", label %"$out_of_gas_1118", label %"$have_gas_1119" + +"$out_of_gas_1118": ; preds = %"$have_gas_1109" + call void @_out_of_gas() + br label %"$have_gas_1119" + +"$have_gas_1119": ; preds = %"$out_of_gas_1118", %"$have_gas_1109" + %"$consume_1120" = sub i64 %"$gasrem_1116", %"$_literal_cost_call_1115" + store i64 %"$consume_1120", i64* @_gasrem, align 8 + %"$execptr_load_1121" = load i8*, i8** @_execptr, align 8 + %"$msgs_1122" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_1121", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55", %TName_List_Message* %"$msgs_1122"), !dbg !115 + br label %"$matchsucc_921" + +"$empty_default_925": ; preds = %"$have_gas_919" + br label %"$matchsucc_921" + +"$matchsucc_921": ; preds = %"$have_gas_1119", %"$have_gas_976", %"$empty_default_925" + br label %"$matchsucc_751" + +"$empty_default_755": ; preds = %"$have_gas_749" + br label %"$matchsucc_751" + +"$matchsucc_751": ; preds = %"$matchsucc_921", %"$have_gas_806", %"$empty_default_755" ret void } @@ -2404,52 +2175,281 @@ declare %TName_Bool* @_lt_Uint128(i8*, %Uint128, %Uint128) declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) -define void @GetFunds(i8* %0) !dbg !126 { +define void @GetFunds(i8* %0) !dbg !116 { entry: - %"$_amount_1265" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1266" = bitcast i8* %"$_amount_1265" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1266", align 8 - %"$_origin_1267" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1268" = bitcast i8* %"$_origin_1267" to [20 x i8]* - %"$_sender_1269" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1270" = bitcast i8* %"$_sender_1269" to [20 x i8]* - call void @"$GetFunds_856"(%Uint128 %_amount, [20 x i8]* %"$_origin_1268", [20 x i8]* %"$_sender_1270"), !dbg !127 + %"$_amount_1124" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1125" = bitcast i8* %"$_amount_1124" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1125", align 8 + %"$_origin_1126" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1127" = bitcast i8* %"$_origin_1126" to [20 x i8]* + %"$_sender_1128" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1129" = bitcast i8* %"$_sender_1128" to [20 x i8]* + call void @"$GetFunds_725"(%Uint128 %_amount, [20 x i8]* %"$_origin_1127", [20 x i8]* %"$_sender_1129"), !dbg !117 ret void } -define internal void @"$ClaimBack_1271"(%Uint128 %_amount, [20 x i8]* %"$_origin_1272", [20 x i8]* %"$_sender_1273") !dbg !128 { +define internal void @"$ClaimBack_1130"(%Uint128 %_amount, [20 x i8]* %"$_origin_1131", [20 x i8]* %"$_sender_1132") !dbg !118 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1272", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1273", align 1 - %"$gasrem_1274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1275" = icmp ugt i64 1, %"$gasrem_1274" - br i1 %"$gascmp_1275", label %"$out_of_gas_1276", label %"$have_gas_1277" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1131", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1132", align 1 + %"$gasrem_1133" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1134" = icmp ugt i64 1, %"$gasrem_1133" + br i1 %"$gascmp_1134", label %"$out_of_gas_1135", label %"$have_gas_1136" -"$out_of_gas_1276": ; preds = %entry +"$out_of_gas_1135": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1277" + br label %"$have_gas_1136" -"$have_gas_1277": ; preds = %"$out_of_gas_1276", %entry - %"$consume_1278" = sub i64 %"$gasrem_1274", 1 - store i64 %"$consume_1278", i64* @_gasrem, align 8 +"$have_gas_1136": ; preds = %"$out_of_gas_1135", %entry + %"$consume_1137" = sub i64 %"$gasrem_1133", 1 + store i64 %"$consume_1137", i64* @_gasrem, align 8 %blk = alloca i8*, align 8 - %"$execptr_load_1280" = load i8*, i8** @_execptr, align 8 - %"$blk_call_1281" = call i8* @_read_blockchain(i8* %"$execptr_load_1280", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_1279", i32 0, i32 0), i32 11 }), !dbg !129 - store i8* %"$blk_call_1281", i8** %blk, align 8 + %"$execptr_load_1139" = load i8*, i8** @_execptr, align 8 + %"$blk_call_1140" = call i8* @_read_blockchain(i8* %"$execptr_load_1139", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_1138", i32 0, i32 0), i32 11 }), !dbg !119 + store i8* %"$blk_call_1140", i8** %blk, align 8 + %"$gasrem_1142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1143" = icmp ugt i64 1, %"$gasrem_1142" + br i1 %"$gascmp_1143", label %"$out_of_gas_1144", label %"$have_gas_1145" + +"$out_of_gas_1144": ; preds = %"$have_gas_1136" + call void @_out_of_gas() + br label %"$have_gas_1145" + +"$have_gas_1145": ; preds = %"$out_of_gas_1144", %"$have_gas_1136" + %"$consume_1146" = sub i64 %"$gasrem_1142", 1 + store i64 %"$consume_1146", i64* @_gasrem, align 8 + %after_deadline = alloca %TName_Bool*, align 8 + %"$gasrem_1147" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1148" = icmp ugt i64 32, %"$gasrem_1147" + br i1 %"$gascmp_1148", label %"$out_of_gas_1149", label %"$have_gas_1150" + +"$out_of_gas_1149": ; preds = %"$have_gas_1145" + call void @_out_of_gas() + br label %"$have_gas_1150" + +"$have_gas_1150": ; preds = %"$out_of_gas_1149", %"$have_gas_1145" + %"$consume_1151" = sub i64 %"$gasrem_1147", 32 + store i64 %"$consume_1151", i64* @_gasrem, align 8 + %"$execptr_load_1152" = load i8*, i8** @_execptr, align 8 + %"$max_block_1153" = load i8*, i8** @_cparam_max_block, align 8 + %"$blk_1154" = load i8*, i8** %blk, align 8 + %"$blt_call_1155" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_1152", i8* %"$max_block_1153", i8* %"$blk_1154"), !dbg !120 + store %TName_Bool* %"$blt_call_1155", %TName_Bool** %after_deadline, align 8, !dbg !120 + %"$gasrem_1157" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1158" = icmp ugt i64 2, %"$gasrem_1157" + br i1 %"$gascmp_1158", label %"$out_of_gas_1159", label %"$have_gas_1160" + +"$out_of_gas_1159": ; preds = %"$have_gas_1150" + call void @_out_of_gas() + br label %"$have_gas_1160" + +"$have_gas_1160": ; preds = %"$out_of_gas_1159", %"$have_gas_1150" + %"$consume_1161" = sub i64 %"$gasrem_1157", 2 + store i64 %"$consume_1161", i64* @_gasrem, align 8 + %"$after_deadline_1163" = load %TName_Bool*, %TName_Bool** %after_deadline, align 8 + %"$after_deadline_tag_1164" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$after_deadline_1163", i32 0, i32 0 + %"$after_deadline_tag_1165" = load i8, i8* %"$after_deadline_tag_1164", align 1 + switch i8 %"$after_deadline_tag_1165", label %"$empty_default_1166" [ + i8 1, label %"$False_1167" + i8 0, label %"$True_1221" + ], !dbg !121 + +"$False_1167": ; preds = %"$have_gas_1160" + %"$after_deadline_1168" = bitcast %TName_Bool* %"$after_deadline_1163" to %CName_False* + %"$gasrem_1169" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1170" = icmp ugt i64 1, %"$gasrem_1169" + br i1 %"$gascmp_1170", label %"$out_of_gas_1171", label %"$have_gas_1172" + +"$out_of_gas_1171": ; preds = %"$False_1167" + call void @_out_of_gas() + br label %"$have_gas_1172" + +"$have_gas_1172": ; preds = %"$out_of_gas_1171", %"$False_1167" + %"$consume_1173" = sub i64 %"$gasrem_1169", 1 + store i64 %"$consume_1173", i64* @_gasrem, align 8 + %e = alloca i8*, align 8 + %"$gasrem_1174" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1175" = icmp ugt i64 1, %"$gasrem_1174" + br i1 %"$gascmp_1175", label %"$out_of_gas_1176", label %"$have_gas_1177" + +"$out_of_gas_1176": ; preds = %"$have_gas_1172" + call void @_out_of_gas() + br label %"$have_gas_1177" + +"$have_gas_1177": ; preds = %"$out_of_gas_1176", %"$have_gas_1172" + %"$consume_1178" = sub i64 %"$gasrem_1174", 1 + store i64 %"$consume_1178", i64* @_gasrem, align 8 + %"$msgobj_1179_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1179_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1179_salloc_load", i64 153) + %"$msgobj_1179_salloc" = bitcast i8* %"$msgobj_1179_salloc_salloc" to [153 x i8]* + %"$msgobj_1179" = bitcast [153 x i8]* %"$msgobj_1179_salloc" to i8* + store i8 4, i8* %"$msgobj_1179", align 1 + %"$msgobj_fname_1181" = getelementptr i8, i8* %"$msgobj_1179", i32 1 + %"$msgobj_fname_1182" = bitcast i8* %"$msgobj_fname_1181" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1180", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1182", align 8 + %"$msgobj_td_1183" = getelementptr i8, i8* %"$msgobj_1179", i32 17 + %"$msgobj_td_1184" = bitcast i8* %"$msgobj_td_1183" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1184", align 8 + %"$msgobj_v_1186" = getelementptr i8, i8* %"$msgobj_1179", i32 25 + %"$msgobj_v_1187" = bitcast i8* %"$msgobj_v_1186" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1185", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1187", align 8 + %"$msgobj_fname_1189" = getelementptr i8, i8* %"$msgobj_1179", i32 41 + %"$msgobj_fname_1190" = bitcast i8* %"$msgobj_fname_1189" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1188", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1190", align 8 + %"$msgobj_td_1191" = getelementptr i8, i8* %"$msgobj_1179", i32 57 + %"$msgobj_td_1192" = bitcast i8* %"$msgobj_td_1191" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1192", align 8 + %"$msgobj_v_1193" = getelementptr i8, i8* %"$msgobj_1179", i32 65 + %"$msgobj_v_1194" = bitcast i8* %"$msgobj_v_1193" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1194", align 1 + %"$msgobj_fname_1196" = getelementptr i8, i8* %"$msgobj_1179", i32 85 + %"$msgobj_fname_1197" = bitcast i8* %"$msgobj_fname_1196" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1195", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1197", align 8 + %"$msgobj_td_1198" = getelementptr i8, i8* %"$msgobj_1179", i32 101 + %"$msgobj_td_1199" = bitcast i8* %"$msgobj_td_1198" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1199", align 8 + %"$msgobj_v_1200" = getelementptr i8, i8* %"$msgobj_1179", i32 109 + %"$msgobj_v_1201" = bitcast i8* %"$msgobj_v_1200" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1201", align 8 + %"$msgobj_fname_1203" = getelementptr i8, i8* %"$msgobj_1179", i32 125 + %"$msgobj_fname_1204" = bitcast i8* %"$msgobj_fname_1203" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1202", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1204", align 8 + %"$msgobj_td_1205" = getelementptr i8, i8* %"$msgobj_1179", i32 141 + %"$msgobj_td_1206" = bitcast i8* %"$msgobj_td_1205" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_1206", align 8 + %"$crowdfunding.too_early_code_1207" = load %Int32, %Int32* @crowdfunding.too_early_code, align 4 + %"$msgobj_v_1208" = getelementptr i8, i8* %"$msgobj_1179", i32 149 + %"$msgobj_v_1209" = bitcast i8* %"$msgobj_v_1208" to %Int32* + store %Int32 %"$crowdfunding.too_early_code_1207", %Int32* %"$msgobj_v_1209", align 4 + store i8* %"$msgobj_1179", i8** %e, align 8, !dbg !122 + %"$e_1211" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_1213" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1211") + %"$gasrem_1214" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1215" = icmp ugt i64 %"$_literal_cost_call_1213", %"$gasrem_1214" + br i1 %"$gascmp_1215", label %"$out_of_gas_1216", label %"$have_gas_1217" + +"$out_of_gas_1216": ; preds = %"$have_gas_1177" + call void @_out_of_gas() + br label %"$have_gas_1217" + +"$have_gas_1217": ; preds = %"$out_of_gas_1216", %"$have_gas_1177" + %"$consume_1218" = sub i64 %"$gasrem_1214", %"$_literal_cost_call_1213" + store i64 %"$consume_1218", i64* @_gasrem, align 8 + %"$execptr_load_1219" = load i8*, i8** @_execptr, align 8 + %"$e_1220" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_1219", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1220"), !dbg !125 + br label %"$matchsucc_1162" + +"$True_1221": ; preds = %"$have_gas_1160" + %"$after_deadline_1222" = bitcast %TName_Bool* %"$after_deadline_1163" to %CName_True* + %bs = alloca %Map_ByStr20_Uint128*, align 8 + %"$execptr_load_1224" = load i8*, i8** @_execptr, align 8 + %"$bs_call_1225" = call i8* @_fetch_field(i8* %"$execptr_load_1224", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1223", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_58", i32 0, i8* null, i32 1), !dbg !126 + %"$bs_1226" = bitcast i8* %"$bs_call_1225" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$bs_1226", %Map_ByStr20_Uint128** %bs, align 8 + %"$bs_1227" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1227_1228" = bitcast %Map_ByStr20_Uint128* %"$bs_1227" to i8* + %"$_literal_cost_call_1229" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_1227_1228") + %"$bs_1230" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1230_1231" = bitcast %Map_ByStr20_Uint128* %"$bs_1230" to i8* + %"$_mapsortcost_call_1232" = call i64 @_mapsortcost(i8* %"$$bs_1230_1231") + %"$gasadd_1233" = add i64 %"$_literal_cost_call_1229", %"$_mapsortcost_call_1232" + %"$gasrem_1234" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1235" = icmp ugt i64 %"$gasadd_1233", %"$gasrem_1234" + br i1 %"$gascmp_1235", label %"$out_of_gas_1236", label %"$have_gas_1237" + +"$out_of_gas_1236": ; preds = %"$True_1221" + call void @_out_of_gas() + br label %"$have_gas_1237" + +"$have_gas_1237": ; preds = %"$out_of_gas_1236", %"$True_1221" + %"$consume_1238" = sub i64 %"$gasrem_1234", %"$gasadd_1233" + store i64 %"$consume_1238", i64* @_gasrem, align 8 + %bal = alloca %Uint128, align 8 + %"$execptr_load_1240" = load i8*, i8** @_execptr, align 8 + %"$bal_call_1241" = call i8* @_fetch_field(i8* %"$execptr_load_1240", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1239", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", i32 0, i8* null, i32 1), !dbg !128 + %"$bal_1242" = bitcast i8* %"$bal_call_1241" to %Uint128* + %"$bal_1243" = load %Uint128, %Uint128* %"$bal_1242", align 8 + store %Uint128 %"$bal_1243", %Uint128* %bal, align 8 + %"$_literal_cost_bal_1244" = alloca %Uint128, align 8 + %"$bal_1245" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_1245", %Uint128* %"$_literal_cost_bal_1244", align 8 + %"$$_literal_cost_bal_1244_1246" = bitcast %Uint128* %"$_literal_cost_bal_1244" to i8* + %"$_literal_cost_call_1247" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_31", i8* %"$$_literal_cost_bal_1244_1246") + %"$gasadd_1248" = add i64 %"$_literal_cost_call_1247", 0 + %"$gasrem_1249" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1250" = icmp ugt i64 %"$gasadd_1248", %"$gasrem_1249" + br i1 %"$gascmp_1250", label %"$out_of_gas_1251", label %"$have_gas_1252" + +"$out_of_gas_1251": ; preds = %"$have_gas_1237" + call void @_out_of_gas() + br label %"$have_gas_1252" + +"$have_gas_1252": ; preds = %"$out_of_gas_1251", %"$have_gas_1237" + %"$consume_1253" = sub i64 %"$gasrem_1249", %"$gasadd_1248" + store i64 %"$consume_1253", i64* @_gasrem, align 8 + %f = alloca %TName_Bool*, align 8 + %"$execptr_load_1255" = load i8*, i8** @_execptr, align 8 + %"$f_call_1256" = call i8* @_fetch_field(i8* %"$execptr_load_1255", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1254", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", i32 0, i8* null, i32 1), !dbg !129 + %"$f_1257" = bitcast i8* %"$f_call_1256" to %TName_Bool* + store %TName_Bool* %"$f_1257", %TName_Bool** %f, align 8 + %"$f_1258" = load %TName_Bool*, %TName_Bool** %f, align 8 + %"$$f_1258_1259" = bitcast %TName_Bool* %"$f_1258" to i8* + %"$_literal_cost_call_1260" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", i8* %"$$f_1258_1259") + %"$gasadd_1261" = add i64 %"$_literal_cost_call_1260", 0 + %"$gasrem_1262" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1263" = icmp ugt i64 %"$gasadd_1261", %"$gasrem_1262" + br i1 %"$gascmp_1263", label %"$out_of_gas_1264", label %"$have_gas_1265" + +"$out_of_gas_1264": ; preds = %"$have_gas_1252" + call void @_out_of_gas() + br label %"$have_gas_1265" + +"$have_gas_1265": ; preds = %"$out_of_gas_1264", %"$have_gas_1252" + %"$consume_1266" = sub i64 %"$gasrem_1262", %"$gasadd_1261" + store i64 %"$consume_1266", i64* @_gasrem, align 8 + %"$gasrem_1267" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1268" = icmp ugt i64 1, %"$gasrem_1267" + br i1 %"$gascmp_1268", label %"$out_of_gas_1269", label %"$have_gas_1270" + +"$out_of_gas_1269": ; preds = %"$have_gas_1265" + call void @_out_of_gas() + br label %"$have_gas_1270" + +"$have_gas_1270": ; preds = %"$out_of_gas_1269", %"$have_gas_1265" + %"$consume_1271" = sub i64 %"$gasrem_1267", 1 + store i64 %"$consume_1271", i64* @_gasrem, align 8 + %c1 = alloca %TName_Bool*, align 8 + %"$gasrem_1273" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1274" = icmp ugt i64 8, %"$gasrem_1273" + br i1 %"$gascmp_1274", label %"$out_of_gas_1275", label %"$have_gas_1276" + +"$out_of_gas_1275": ; preds = %"$have_gas_1270" + call void @_out_of_gas() + br label %"$have_gas_1276" + +"$have_gas_1276": ; preds = %"$out_of_gas_1275", %"$have_gas_1270" + %"$consume_1277" = sub i64 %"$gasrem_1273", 8 + store i64 %"$consume_1277", i64* @_gasrem, align 8 + %"$execptr_load_1278" = load i8*, i8** @_execptr, align 8 + %"$bal_1279" = load %Uint128, %Uint128* %bal, align 8 + %"$goal_1280" = load %Uint128, %Uint128* @_cparam_goal, align 8 + %"$lt_call_1281" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1278", %Uint128 %"$bal_1279", %Uint128 %"$goal_1280"), !dbg !130 + store %TName_Bool* %"$lt_call_1281", %TName_Bool** %c1, align 8, !dbg !130 %"$gasrem_1283" = load i64, i64* @_gasrem, align 8 %"$gascmp_1284" = icmp ugt i64 1, %"$gasrem_1283" br i1 %"$gascmp_1284", label %"$out_of_gas_1285", label %"$have_gas_1286" -"$out_of_gas_1285": ; preds = %"$have_gas_1277" +"$out_of_gas_1285": ; preds = %"$have_gas_1276" call void @_out_of_gas() br label %"$have_gas_1286" -"$have_gas_1286": ; preds = %"$out_of_gas_1285", %"$have_gas_1277" +"$have_gas_1286": ; preds = %"$out_of_gas_1285", %"$have_gas_1276" %"$consume_1287" = sub i64 %"$gasrem_1283", 1 store i64 %"$consume_1287", i64* @_gasrem, align 8 - %after_deadline = alloca %TName_Bool*, align 8 + %c2 = alloca %TName_Bool*, align 8 %"$gasrem_1288" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1289" = icmp ugt i64 32, %"$gasrem_1288" + %"$gascmp_1289" = icmp ugt i64 1, %"$gasrem_1288" br i1 %"$gascmp_1289", label %"$out_of_gas_1290", label %"$have_gas_1291" "$out_of_gas_1290": ; preds = %"$have_gas_1286" @@ -2457,866 +2457,619 @@ entry: br label %"$have_gas_1291" "$have_gas_1291": ; preds = %"$out_of_gas_1290", %"$have_gas_1286" - %"$consume_1292" = sub i64 %"$gasrem_1288", 32 + %"$consume_1292" = sub i64 %"$gasrem_1288", 1 store i64 %"$consume_1292", i64* @_gasrem, align 8 %"$execptr_load_1293" = load i8*, i8** @_execptr, align 8 - %"$max_block_1294" = load i8*, i8** @_cparam_max_block, align 8 - %"$blk_1295" = load i8*, i8** %blk, align 8 - %"$blt_call_1296" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_1293", i8* %"$max_block_1294", i8* %"$blk_1295"), !dbg !130 - store %TName_Bool* %"$blt_call_1296", %TName_Bool** %after_deadline, align 8, !dbg !130 - %"$gasrem_1298" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1299" = icmp ugt i64 2, %"$gasrem_1298" - br i1 %"$gascmp_1299", label %"$out_of_gas_1300", label %"$have_gas_1301" - -"$out_of_gas_1300": ; preds = %"$have_gas_1291" - call void @_out_of_gas() - br label %"$have_gas_1301" - -"$have_gas_1301": ; preds = %"$out_of_gas_1300", %"$have_gas_1291" - %"$consume_1302" = sub i64 %"$gasrem_1298", 2 - store i64 %"$consume_1302", i64* @_gasrem, align 8 - %"$after_deadline_1304" = load %TName_Bool*, %TName_Bool** %after_deadline, align 8 - %"$after_deadline_tag_1305" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$after_deadline_1304", i32 0, i32 0 - %"$after_deadline_tag_1306" = load i8, i8* %"$after_deadline_tag_1305", align 1 - switch i8 %"$after_deadline_tag_1306", label %"$empty_default_1307" [ - i8 1, label %"$False_1308" - i8 0, label %"$True_1362" - ], !dbg !131 - -"$False_1308": ; preds = %"$have_gas_1301" - %"$after_deadline_1309" = bitcast %TName_Bool* %"$after_deadline_1304" to %CName_False* - %"$gasrem_1310" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1311" = icmp ugt i64 1, %"$gasrem_1310" - br i1 %"$gascmp_1311", label %"$out_of_gas_1312", label %"$have_gas_1313" - -"$out_of_gas_1312": ; preds = %"$False_1308" - call void @_out_of_gas() - br label %"$have_gas_1313" - -"$have_gas_1313": ; preds = %"$out_of_gas_1312", %"$False_1308" - %"$consume_1314" = sub i64 %"$gasrem_1310", 1 - store i64 %"$consume_1314", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 - %"$gasrem_1315" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1316" = icmp ugt i64 1, %"$gasrem_1315" - br i1 %"$gascmp_1316", label %"$out_of_gas_1317", label %"$have_gas_1318" - -"$out_of_gas_1317": ; preds = %"$have_gas_1313" - call void @_out_of_gas() - br label %"$have_gas_1318" - -"$have_gas_1318": ; preds = %"$out_of_gas_1317", %"$have_gas_1313" - %"$consume_1319" = sub i64 %"$gasrem_1315", 1 - store i64 %"$consume_1319", i64* @_gasrem, align 8 - %"$msgobj_1320_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1320_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1320_salloc_load", i64 153) - %"$msgobj_1320_salloc" = bitcast i8* %"$msgobj_1320_salloc_salloc" to [153 x i8]* - %"$msgobj_1320" = bitcast [153 x i8]* %"$msgobj_1320_salloc" to i8* - store i8 4, i8* %"$msgobj_1320", align 1 - %"$msgobj_fname_1322" = getelementptr i8, i8* %"$msgobj_1320", i32 1 - %"$msgobj_fname_1323" = bitcast i8* %"$msgobj_fname_1322" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1321", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1323", align 8 - %"$msgobj_td_1324" = getelementptr i8, i8* %"$msgobj_1320", i32 17 - %"$msgobj_td_1325" = bitcast i8* %"$msgobj_td_1324" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1325", align 8 - %"$msgobj_v_1327" = getelementptr i8, i8* %"$msgobj_1320", i32 25 - %"$msgobj_v_1328" = bitcast i8* %"$msgobj_v_1327" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1326", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1328", align 8 - %"$msgobj_fname_1330" = getelementptr i8, i8* %"$msgobj_1320", i32 41 - %"$msgobj_fname_1331" = bitcast i8* %"$msgobj_fname_1330" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1329", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1331", align 8 - %"$msgobj_td_1332" = getelementptr i8, i8* %"$msgobj_1320", i32 57 - %"$msgobj_td_1333" = bitcast i8* %"$msgobj_td_1332" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1333", align 8 - %"$msgobj_v_1334" = getelementptr i8, i8* %"$msgobj_1320", i32 65 - %"$msgobj_v_1335" = bitcast i8* %"$msgobj_v_1334" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1335", align 1 - %"$msgobj_fname_1337" = getelementptr i8, i8* %"$msgobj_1320", i32 85 - %"$msgobj_fname_1338" = bitcast i8* %"$msgobj_fname_1337" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1336", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1338", align 8 - %"$msgobj_td_1339" = getelementptr i8, i8* %"$msgobj_1320", i32 101 - %"$msgobj_td_1340" = bitcast i8* %"$msgobj_td_1339" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1340", align 8 - %"$msgobj_v_1341" = getelementptr i8, i8* %"$msgobj_1320", i32 109 - %"$msgobj_v_1342" = bitcast i8* %"$msgobj_v_1341" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1342", align 8 - %"$msgobj_fname_1344" = getelementptr i8, i8* %"$msgobj_1320", i32 125 - %"$msgobj_fname_1345" = bitcast i8* %"$msgobj_fname_1344" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1343", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1345", align 8 - %"$msgobj_td_1346" = getelementptr i8, i8* %"$msgobj_1320", i32 141 - %"$msgobj_td_1347" = bitcast i8* %"$msgobj_td_1346" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1347", align 8 - %"$crowdfunding.too_early_code_1348" = load %Int32, %Int32* @crowdfunding.too_early_code, align 4 - %"$msgobj_v_1349" = getelementptr i8, i8* %"$msgobj_1320", i32 149 - %"$msgobj_v_1350" = bitcast i8* %"$msgobj_v_1349" to %Int32* - store %Int32 %"$crowdfunding.too_early_code_1348", %Int32* %"$msgobj_v_1350", align 4 - store i8* %"$msgobj_1320", i8** %e, align 8, !dbg !132 - %"$e_1352" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_1354" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1352") - %"$gasrem_1355" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1356" = icmp ugt i64 %"$_literal_cost_call_1354", %"$gasrem_1355" - br i1 %"$gascmp_1356", label %"$out_of_gas_1357", label %"$have_gas_1358" - -"$out_of_gas_1357": ; preds = %"$have_gas_1318" - call void @_out_of_gas() - br label %"$have_gas_1358" - -"$have_gas_1358": ; preds = %"$out_of_gas_1357", %"$have_gas_1318" - %"$consume_1359" = sub i64 %"$gasrem_1355", %"$_literal_cost_call_1354" - store i64 %"$consume_1359", i64* @_gasrem, align 8 - %"$execptr_load_1360" = load i8*, i8** @_execptr, align 8 - %"$e_1361" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_1360", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1361"), !dbg !135 - br label %"$matchsucc_1303" - -"$True_1362": ; preds = %"$have_gas_1301" - %"$after_deadline_1363" = bitcast %TName_Bool* %"$after_deadline_1304" to %CName_True* - %bs = alloca %Map_ByStr20_Uint128*, align 8 - %"$execptr_load_1365" = load i8*, i8** @_execptr, align 8 - %"$bs_call_1366" = call i8* @_fetch_field(i8* %"$execptr_load_1365", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1364", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_83", i32 0, i8* null, i32 1), !dbg !136 - %"$bs_1367" = bitcast i8* %"$bs_call_1366" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$bs_1367", %Map_ByStr20_Uint128** %bs, align 8 - %"$bs_1368" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1368_1369" = bitcast %Map_ByStr20_Uint128* %"$bs_1368" to i8* - %"$_literal_cost_call_1370" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_1368_1369") - %"$bs_1371" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1371_1372" = bitcast %Map_ByStr20_Uint128* %"$bs_1371" to i8* - %"$_mapsortcost_call_1373" = call i64 @_mapsortcost(i8* %"$$bs_1371_1372") - %"$gasadd_1374" = add i64 %"$_literal_cost_call_1370", %"$_mapsortcost_call_1373" - %"$gasrem_1375" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1376" = icmp ugt i64 %"$gasadd_1374", %"$gasrem_1375" - br i1 %"$gascmp_1376", label %"$out_of_gas_1377", label %"$have_gas_1378" - -"$out_of_gas_1377": ; preds = %"$True_1362" - call void @_out_of_gas() - br label %"$have_gas_1378" - -"$have_gas_1378": ; preds = %"$out_of_gas_1377", %"$True_1362" - %"$consume_1379" = sub i64 %"$gasrem_1375", %"$gasadd_1374" - store i64 %"$consume_1379", i64* @_gasrem, align 8 - %bal = alloca %Uint128, align 8 - %"$execptr_load_1381" = load i8*, i8** @_execptr, align 8 - %"$bal_call_1382" = call i8* @_fetch_field(i8* %"$execptr_load_1381", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1380", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", i32 0, i8* null, i32 1), !dbg !138 - %"$bal_1383" = bitcast i8* %"$bal_call_1382" to %Uint128* - %"$bal_1384" = load %Uint128, %Uint128* %"$bal_1383", align 8 - store %Uint128 %"$bal_1384", %Uint128* %bal, align 8 - %"$_literal_cost_bal_1385" = alloca %Uint128, align 8 - %"$bal_1386" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_1386", %Uint128* %"$_literal_cost_bal_1385", align 8 - %"$$_literal_cost_bal_1385_1387" = bitcast %Uint128* %"$_literal_cost_bal_1385" to i8* - %"$_literal_cost_call_1388" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_56", i8* %"$$_literal_cost_bal_1385_1387") - %"$gasadd_1389" = add i64 %"$_literal_cost_call_1388", 0 - %"$gasrem_1390" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1391" = icmp ugt i64 %"$gasadd_1389", %"$gasrem_1390" - br i1 %"$gascmp_1391", label %"$out_of_gas_1392", label %"$have_gas_1393" - -"$out_of_gas_1392": ; preds = %"$have_gas_1378" - call void @_out_of_gas() - br label %"$have_gas_1393" - -"$have_gas_1393": ; preds = %"$out_of_gas_1392", %"$have_gas_1378" - %"$consume_1394" = sub i64 %"$gasrem_1390", %"$gasadd_1389" - store i64 %"$consume_1394", i64* @_gasrem, align 8 - %f = alloca %TName_Bool*, align 8 - %"$execptr_load_1396" = load i8*, i8** @_execptr, align 8 - %"$f_call_1397" = call i8* @_fetch_field(i8* %"$execptr_load_1396", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1395", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", i32 0, i8* null, i32 1), !dbg !139 - %"$f_1398" = bitcast i8* %"$f_call_1397" to %TName_Bool* - store %TName_Bool* %"$f_1398", %TName_Bool** %f, align 8 - %"$f_1399" = load %TName_Bool*, %TName_Bool** %f, align 8 - %"$$f_1399_1400" = bitcast %TName_Bool* %"$f_1399" to i8* - %"$_literal_cost_call_1401" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", i8* %"$$f_1399_1400") - %"$gasadd_1402" = add i64 %"$_literal_cost_call_1401", 0 - %"$gasrem_1403" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1404" = icmp ugt i64 %"$gasadd_1402", %"$gasrem_1403" - br i1 %"$gascmp_1404", label %"$out_of_gas_1405", label %"$have_gas_1406" - -"$out_of_gas_1405": ; preds = %"$have_gas_1393" - call void @_out_of_gas() - br label %"$have_gas_1406" - -"$have_gas_1406": ; preds = %"$out_of_gas_1405", %"$have_gas_1393" - %"$consume_1407" = sub i64 %"$gasrem_1403", %"$gasadd_1402" - store i64 %"$consume_1407", i64* @_gasrem, align 8 - %"$gasrem_1408" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1409" = icmp ugt i64 1, %"$gasrem_1408" - br i1 %"$gascmp_1409", label %"$out_of_gas_1410", label %"$have_gas_1411" - -"$out_of_gas_1410": ; preds = %"$have_gas_1406" - call void @_out_of_gas() - br label %"$have_gas_1411" - -"$have_gas_1411": ; preds = %"$out_of_gas_1410", %"$have_gas_1406" - %"$consume_1412" = sub i64 %"$gasrem_1408", 1 - store i64 %"$consume_1412", i64* @_gasrem, align 8 - %c1 = alloca %TName_Bool*, align 8 + %"$bs_1294" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1294_1295" = bitcast %Map_ByStr20_Uint128* %"$bs_1294" to i8* + %"$contains__sender_1296" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$contains__sender_1296", align 1 + %"$$contains__sender_1296_1297" = bitcast [20 x i8]* %"$contains__sender_1296" to i8* + %"$contains_call_1298" = call %TName_Bool* @_contains(i8* %"$execptr_load_1293", %_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_1294_1295", i8* %"$$contains__sender_1296_1297"), !dbg !131 + store %TName_Bool* %"$contains_call_1298", %TName_Bool** %c2, align 8, !dbg !131 + %"$gasrem_1300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1301" = icmp ugt i64 1, %"$gasrem_1300" + br i1 %"$gascmp_1301", label %"$out_of_gas_1302", label %"$have_gas_1303" + +"$out_of_gas_1302": ; preds = %"$have_gas_1291" + call void @_out_of_gas() + br label %"$have_gas_1303" + +"$have_gas_1303": ; preds = %"$out_of_gas_1302", %"$have_gas_1291" + %"$consume_1304" = sub i64 %"$gasrem_1300", 1 + store i64 %"$consume_1304", i64* @_gasrem, align 8 + %c3 = alloca %TName_Bool*, align 8 + %"$gasrem_1305" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1306" = icmp ugt i64 1, %"$gasrem_1305" + br i1 %"$gascmp_1306", label %"$out_of_gas_1307", label %"$have_gas_1308" + +"$out_of_gas_1307": ; preds = %"$have_gas_1303" + call void @_out_of_gas() + br label %"$have_gas_1308" + +"$have_gas_1308": ; preds = %"$out_of_gas_1307", %"$have_gas_1303" + %"$consume_1309" = sub i64 %"$gasrem_1305", 1 + store i64 %"$consume_1309", i64* @_gasrem, align 8 + %"$BoolUtils.negb_3" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_1310" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_1311" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1310", 0 + %"$BoolUtils.negb_envptr_1312" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1310", 1 + %"$f_1313" = load %TName_Bool*, %TName_Bool** %f, align 8 + %"$BoolUtils.negb_call_1314" = call %TName_Bool* %"$BoolUtils.negb_fptr_1311"(i8* %"$BoolUtils.negb_envptr_1312", %TName_Bool* %"$f_1313"), !dbg !132 + store %TName_Bool* %"$BoolUtils.negb_call_1314", %TName_Bool** %"$BoolUtils.negb_3", align 8, !dbg !132 + %"$$BoolUtils.negb_3_1315" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_3", align 8 + store %TName_Bool* %"$$BoolUtils.negb_3_1315", %TName_Bool** %c3, align 8, !dbg !132 + %"$gasrem_1316" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1317" = icmp ugt i64 1, %"$gasrem_1316" + br i1 %"$gascmp_1317", label %"$out_of_gas_1318", label %"$have_gas_1319" + +"$out_of_gas_1318": ; preds = %"$have_gas_1308" + call void @_out_of_gas() + br label %"$have_gas_1319" + +"$have_gas_1319": ; preds = %"$out_of_gas_1318", %"$have_gas_1308" + %"$consume_1320" = sub i64 %"$gasrem_1316", 1 + store i64 %"$consume_1320", i64* @_gasrem, align 8 + %c4 = alloca %TName_Bool*, align 8 + %"$gasrem_1321" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1322" = icmp ugt i64 1, %"$gasrem_1321" + br i1 %"$gascmp_1322", label %"$out_of_gas_1323", label %"$have_gas_1324" + +"$out_of_gas_1323": ; preds = %"$have_gas_1319" + call void @_out_of_gas() + br label %"$have_gas_1324" + +"$have_gas_1324": ; preds = %"$out_of_gas_1323", %"$have_gas_1319" + %"$consume_1325" = sub i64 %"$gasrem_1321", 1 + store i64 %"$consume_1325", i64* @_gasrem, align 8 + %"$BoolUtils.andb_1326" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_1327" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1326", 0 + %"$BoolUtils.andb_envptr_1328" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1326", 1 + %"$c1_1329" = load %TName_Bool*, %TName_Bool** %c1, align 8 + %"$c2_1330" = load %TName_Bool*, %TName_Bool** %c2, align 8 + %"$BoolUtils.andb_call_1331" = call %TName_Bool* %"$BoolUtils.andb_fptr_1327"(i8* %"$BoolUtils.andb_envptr_1328", %TName_Bool* %"$c1_1329", %TName_Bool* %"$c2_1330"), !dbg !133 + store %TName_Bool* %"$BoolUtils.andb_call_1331", %TName_Bool** %c4, align 8, !dbg !133 + %"$gasrem_1332" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1333" = icmp ugt i64 1, %"$gasrem_1332" + br i1 %"$gascmp_1333", label %"$out_of_gas_1334", label %"$have_gas_1335" + +"$out_of_gas_1334": ; preds = %"$have_gas_1324" + call void @_out_of_gas() + br label %"$have_gas_1335" + +"$have_gas_1335": ; preds = %"$out_of_gas_1334", %"$have_gas_1324" + %"$consume_1336" = sub i64 %"$gasrem_1332", 1 + store i64 %"$consume_1336", i64* @_gasrem, align 8 + %c5 = alloca %TName_Bool*, align 8 + %"$gasrem_1337" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1338" = icmp ugt i64 1, %"$gasrem_1337" + br i1 %"$gascmp_1338", label %"$out_of_gas_1339", label %"$have_gas_1340" + +"$out_of_gas_1339": ; preds = %"$have_gas_1335" + call void @_out_of_gas() + br label %"$have_gas_1340" + +"$have_gas_1340": ; preds = %"$out_of_gas_1339", %"$have_gas_1335" + %"$consume_1341" = sub i64 %"$gasrem_1337", 1 + store i64 %"$consume_1341", i64* @_gasrem, align 8 + %"$BoolUtils.andb_1342" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_1343" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1342", 0 + %"$BoolUtils.andb_envptr_1344" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1342", 1 + %"$c3_1345" = load %TName_Bool*, %TName_Bool** %c3, align 8 + %"$c4_1346" = load %TName_Bool*, %TName_Bool** %c4, align 8 + %"$BoolUtils.andb_call_1347" = call %TName_Bool* %"$BoolUtils.andb_fptr_1343"(i8* %"$BoolUtils.andb_envptr_1344", %TName_Bool* %"$c3_1345", %TName_Bool* %"$c4_1346"), !dbg !134 + store %TName_Bool* %"$BoolUtils.andb_call_1347", %TName_Bool** %c5, align 8, !dbg !134 + %"$gasrem_1348" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1349" = icmp ugt i64 2, %"$gasrem_1348" + br i1 %"$gascmp_1349", label %"$out_of_gas_1350", label %"$have_gas_1351" + +"$out_of_gas_1350": ; preds = %"$have_gas_1340" + call void @_out_of_gas() + br label %"$have_gas_1351" + +"$have_gas_1351": ; preds = %"$out_of_gas_1350", %"$have_gas_1340" + %"$consume_1352" = sub i64 %"$gasrem_1348", 2 + store i64 %"$consume_1352", i64* @_gasrem, align 8 + %"$c5_1354" = load %TName_Bool*, %TName_Bool** %c5, align 8 + %"$c5_tag_1355" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c5_1354", i32 0, i32 0 + %"$c5_tag_1356" = load i8, i8* %"$c5_tag_1355", align 1 + switch i8 %"$c5_tag_1356", label %"$empty_default_1357" [ + i8 1, label %"$False_1358" + i8 0, label %"$True_1412" + ], !dbg !135 + +"$False_1358": ; preds = %"$have_gas_1351" + %"$c5_1359" = bitcast %TName_Bool* %"$c5_1354" to %CName_False* + %"$gasrem_1360" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1361" = icmp ugt i64 1, %"$gasrem_1360" + br i1 %"$gascmp_1361", label %"$out_of_gas_1362", label %"$have_gas_1363" + +"$out_of_gas_1362": ; preds = %"$False_1358" + call void @_out_of_gas() + br label %"$have_gas_1363" + +"$have_gas_1363": ; preds = %"$out_of_gas_1362", %"$False_1358" + %"$consume_1364" = sub i64 %"$gasrem_1360", 1 + store i64 %"$consume_1364", i64* @_gasrem, align 8 + %e1 = alloca i8*, align 8 + %"$gasrem_1365" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1366" = icmp ugt i64 1, %"$gasrem_1365" + br i1 %"$gascmp_1366", label %"$out_of_gas_1367", label %"$have_gas_1368" + +"$out_of_gas_1367": ; preds = %"$have_gas_1363" + call void @_out_of_gas() + br label %"$have_gas_1368" + +"$have_gas_1368": ; preds = %"$out_of_gas_1367", %"$have_gas_1363" + %"$consume_1369" = sub i64 %"$gasrem_1365", 1 + store i64 %"$consume_1369", i64* @_gasrem, align 8 + %"$msgobj_1370_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1370_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1370_salloc_load", i64 153) + %"$msgobj_1370_salloc" = bitcast i8* %"$msgobj_1370_salloc_salloc" to [153 x i8]* + %"$msgobj_1370" = bitcast [153 x i8]* %"$msgobj_1370_salloc" to i8* + store i8 4, i8* %"$msgobj_1370", align 1 + %"$msgobj_fname_1372" = getelementptr i8, i8* %"$msgobj_1370", i32 1 + %"$msgobj_fname_1373" = bitcast i8* %"$msgobj_fname_1372" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1371", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1373", align 8 + %"$msgobj_td_1374" = getelementptr i8, i8* %"$msgobj_1370", i32 17 + %"$msgobj_td_1375" = bitcast i8* %"$msgobj_td_1374" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1375", align 8 + %"$msgobj_v_1377" = getelementptr i8, i8* %"$msgobj_1370", i32 25 + %"$msgobj_v_1378" = bitcast i8* %"$msgobj_v_1377" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1376", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1378", align 8 + %"$msgobj_fname_1380" = getelementptr i8, i8* %"$msgobj_1370", i32 41 + %"$msgobj_fname_1381" = bitcast i8* %"$msgobj_fname_1380" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1379", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1381", align 8 + %"$msgobj_td_1382" = getelementptr i8, i8* %"$msgobj_1370", i32 57 + %"$msgobj_td_1383" = bitcast i8* %"$msgobj_td_1382" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1383", align 8 + %"$msgobj_v_1384" = getelementptr i8, i8* %"$msgobj_1370", i32 65 + %"$msgobj_v_1385" = bitcast i8* %"$msgobj_v_1384" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1385", align 1 + %"$msgobj_fname_1387" = getelementptr i8, i8* %"$msgobj_1370", i32 85 + %"$msgobj_fname_1388" = bitcast i8* %"$msgobj_fname_1387" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1386", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1388", align 8 + %"$msgobj_td_1389" = getelementptr i8, i8* %"$msgobj_1370", i32 101 + %"$msgobj_td_1390" = bitcast i8* %"$msgobj_td_1389" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1390", align 8 + %"$msgobj_v_1391" = getelementptr i8, i8* %"$msgobj_1370", i32 109 + %"$msgobj_v_1392" = bitcast i8* %"$msgobj_v_1391" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1392", align 8 + %"$msgobj_fname_1394" = getelementptr i8, i8* %"$msgobj_1370", i32 125 + %"$msgobj_fname_1395" = bitcast i8* %"$msgobj_fname_1394" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1393", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1395", align 8 + %"$msgobj_td_1396" = getelementptr i8, i8* %"$msgobj_1370", i32 141 + %"$msgobj_td_1397" = bitcast i8* %"$msgobj_td_1396" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_1397", align 8 + %"$crowdfunding.cannot_reclaim_code_1398" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 + %"$msgobj_v_1399" = getelementptr i8, i8* %"$msgobj_1370", i32 149 + %"$msgobj_v_1400" = bitcast i8* %"$msgobj_v_1399" to %Int32* + store %Int32 %"$crowdfunding.cannot_reclaim_code_1398", %Int32* %"$msgobj_v_1400", align 4 + store i8* %"$msgobj_1370", i8** %e1, align 8, !dbg !136 + %"$e_1402" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_1404" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1402") + %"$gasrem_1405" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1406" = icmp ugt i64 %"$_literal_cost_call_1404", %"$gasrem_1405" + br i1 %"$gascmp_1406", label %"$out_of_gas_1407", label %"$have_gas_1408" + +"$out_of_gas_1407": ; preds = %"$have_gas_1368" + call void @_out_of_gas() + br label %"$have_gas_1408" + +"$have_gas_1408": ; preds = %"$out_of_gas_1407", %"$have_gas_1368" + %"$consume_1409" = sub i64 %"$gasrem_1405", %"$_literal_cost_call_1404" + store i64 %"$consume_1409", i64* @_gasrem, align 8 + %"$execptr_load_1410" = load i8*, i8** @_execptr, align 8 + %"$e_1411" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_1410", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1411"), !dbg !139 + br label %"$matchsucc_1353" + +"$True_1412": ; preds = %"$have_gas_1351" + %"$c5_1413" = bitcast %TName_Bool* %"$c5_1354" to %CName_True* %"$gasrem_1414" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1415" = icmp ugt i64 8, %"$gasrem_1414" + %"$gascmp_1415" = icmp ugt i64 1, %"$gasrem_1414" br i1 %"$gascmp_1415", label %"$out_of_gas_1416", label %"$have_gas_1417" -"$out_of_gas_1416": ; preds = %"$have_gas_1411" +"$out_of_gas_1416": ; preds = %"$True_1412" call void @_out_of_gas() br label %"$have_gas_1417" -"$have_gas_1417": ; preds = %"$out_of_gas_1416", %"$have_gas_1411" - %"$consume_1418" = sub i64 %"$gasrem_1414", 8 +"$have_gas_1417": ; preds = %"$out_of_gas_1416", %"$True_1412" + %"$consume_1418" = sub i64 %"$gasrem_1414", 1 store i64 %"$consume_1418", i64* @_gasrem, align 8 - %"$execptr_load_1419" = load i8*, i8** @_execptr, align 8 - %"$bal_1420" = load %Uint128, %Uint128* %bal, align 8 - %"$goal_1421" = load %Uint128, %Uint128* @_cparam_goal, align 8 - %"$lt_call_1422" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1419", %Uint128 %"$bal_1420", %Uint128 %"$goal_1421"), !dbg !140 - store %TName_Bool* %"$lt_call_1422", %TName_Bool** %c1, align 8, !dbg !140 - %"$gasrem_1424" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1425" = icmp ugt i64 1, %"$gasrem_1424" - br i1 %"$gascmp_1425", label %"$out_of_gas_1426", label %"$have_gas_1427" - -"$out_of_gas_1426": ; preds = %"$have_gas_1417" - call void @_out_of_gas() - br label %"$have_gas_1427" - -"$have_gas_1427": ; preds = %"$out_of_gas_1426", %"$have_gas_1417" - %"$consume_1428" = sub i64 %"$gasrem_1424", 1 - store i64 %"$consume_1428", i64* @_gasrem, align 8 - %c2 = alloca %TName_Bool*, align 8 - %"$gasrem_1429" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1430" = icmp ugt i64 1, %"$gasrem_1429" - br i1 %"$gascmp_1430", label %"$out_of_gas_1431", label %"$have_gas_1432" - -"$out_of_gas_1431": ; preds = %"$have_gas_1427" - call void @_out_of_gas() - br label %"$have_gas_1432" - -"$have_gas_1432": ; preds = %"$out_of_gas_1431", %"$have_gas_1427" - %"$consume_1433" = sub i64 %"$gasrem_1429", 1 - store i64 %"$consume_1433", i64* @_gasrem, align 8 - %"$execptr_load_1434" = load i8*, i8** @_execptr, align 8 - %"$bs_1435" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1435_1436" = bitcast %Map_ByStr20_Uint128* %"$bs_1435" to i8* - %"$contains__sender_1437" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$contains__sender_1437", align 1 - %"$$contains__sender_1437_1438" = bitcast [20 x i8]* %"$contains__sender_1437" to i8* - %"$contains_call_1439" = call %TName_Bool* @_contains(i8* %"$execptr_load_1434", %_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_1435_1436", i8* %"$$contains__sender_1437_1438"), !dbg !141 - store %TName_Bool* %"$contains_call_1439", %TName_Bool** %c2, align 8, !dbg !141 - %"$gasrem_1441" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1442" = icmp ugt i64 1, %"$gasrem_1441" - br i1 %"$gascmp_1442", label %"$out_of_gas_1443", label %"$have_gas_1444" - -"$out_of_gas_1443": ; preds = %"$have_gas_1432" - call void @_out_of_gas() - br label %"$have_gas_1444" - -"$have_gas_1444": ; preds = %"$out_of_gas_1443", %"$have_gas_1432" - %"$consume_1445" = sub i64 %"$gasrem_1441", 1 - store i64 %"$consume_1445", i64* @_gasrem, align 8 - %c3 = alloca %TName_Bool*, align 8 - %"$gasrem_1446" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1447" = icmp ugt i64 1, %"$gasrem_1446" - br i1 %"$gascmp_1447", label %"$out_of_gas_1448", label %"$have_gas_1449" - -"$out_of_gas_1448": ; preds = %"$have_gas_1444" - call void @_out_of_gas() - br label %"$have_gas_1449" - -"$have_gas_1449": ; preds = %"$out_of_gas_1448", %"$have_gas_1444" - %"$consume_1450" = sub i64 %"$gasrem_1446", 1 - store i64 %"$consume_1450", i64* @_gasrem, align 8 - %"$BoolUtils.negb_19" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_1451" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1452" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1451", 0 - %"$BoolUtils.negb_envptr_1453" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1451", 1 - %"$f_1454" = load %TName_Bool*, %TName_Bool** %f, align 8 - %"$BoolUtils.negb_call_1455" = call %TName_Bool* %"$BoolUtils.negb_fptr_1452"(i8* %"$BoolUtils.negb_envptr_1453", %TName_Bool* %"$f_1454"), !dbg !142 - store %TName_Bool* %"$BoolUtils.negb_call_1455", %TName_Bool** %"$BoolUtils.negb_19", align 8, !dbg !142 - %"$$BoolUtils.negb_19_1456" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_19", align 8 - store %TName_Bool* %"$$BoolUtils.negb_19_1456", %TName_Bool** %c3, align 8, !dbg !142 - %"$gasrem_1457" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1458" = icmp ugt i64 1, %"$gasrem_1457" - br i1 %"$gascmp_1458", label %"$out_of_gas_1459", label %"$have_gas_1460" - -"$out_of_gas_1459": ; preds = %"$have_gas_1449" - call void @_out_of_gas() - br label %"$have_gas_1460" - -"$have_gas_1460": ; preds = %"$out_of_gas_1459", %"$have_gas_1449" - %"$consume_1461" = sub i64 %"$gasrem_1457", 1 - store i64 %"$consume_1461", i64* @_gasrem, align 8 - %c4 = alloca %TName_Bool*, align 8 - %"$gasrem_1462" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1463" = icmp ugt i64 1, %"$gasrem_1462" - br i1 %"$gascmp_1463", label %"$out_of_gas_1464", label %"$have_gas_1465" - -"$out_of_gas_1464": ; preds = %"$have_gas_1460" - call void @_out_of_gas() - br label %"$have_gas_1465" - -"$have_gas_1465": ; preds = %"$out_of_gas_1464", %"$have_gas_1460" - %"$consume_1466" = sub i64 %"$gasrem_1462", 1 - store i64 %"$consume_1466", i64* @_gasrem, align 8 - %"$BoolUtils.andb_17" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1467" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_1468" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1467", 0 - %"$BoolUtils.andb_envptr_1469" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1467", 1 - %"$c1_1470" = load %TName_Bool*, %TName_Bool** %c1, align 8 - %"$BoolUtils.andb_call_1471" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1468"(i8* %"$BoolUtils.andb_envptr_1469", %TName_Bool* %"$c1_1470"), !dbg !143 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1471", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8, !dbg !143 - %"$BoolUtils.andb_18" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_17_1472" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 - %"$$BoolUtils.andb_17_fptr_1473" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_1472", 0 - %"$$BoolUtils.andb_17_envptr_1474" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_1472", 1 - %"$c2_1475" = load %TName_Bool*, %TName_Bool** %c2, align 8 - %"$$BoolUtils.andb_17_call_1476" = call %TName_Bool* %"$$BoolUtils.andb_17_fptr_1473"(i8* %"$$BoolUtils.andb_17_envptr_1474", %TName_Bool* %"$c2_1475"), !dbg !143 - store %TName_Bool* %"$$BoolUtils.andb_17_call_1476", %TName_Bool** %"$BoolUtils.andb_18", align 8, !dbg !143 - %"$$BoolUtils.andb_18_1477" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_18", align 8 - store %TName_Bool* %"$$BoolUtils.andb_18_1477", %TName_Bool** %c4, align 8, !dbg !143 - %"$gasrem_1478" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1479" = icmp ugt i64 1, %"$gasrem_1478" - br i1 %"$gascmp_1479", label %"$out_of_gas_1480", label %"$have_gas_1481" - -"$out_of_gas_1480": ; preds = %"$have_gas_1465" - call void @_out_of_gas() - br label %"$have_gas_1481" - -"$have_gas_1481": ; preds = %"$out_of_gas_1480", %"$have_gas_1465" - %"$consume_1482" = sub i64 %"$gasrem_1478", 1 - store i64 %"$consume_1482", i64* @_gasrem, align 8 - %c5 = alloca %TName_Bool*, align 8 - %"$gasrem_1483" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1484" = icmp ugt i64 1, %"$gasrem_1483" - br i1 %"$gascmp_1484", label %"$out_of_gas_1485", label %"$have_gas_1486" - -"$out_of_gas_1485": ; preds = %"$have_gas_1481" - call void @_out_of_gas() - br label %"$have_gas_1486" - -"$have_gas_1486": ; preds = %"$out_of_gas_1485", %"$have_gas_1481" - %"$consume_1487" = sub i64 %"$gasrem_1483", 1 - store i64 %"$consume_1487", i64* @_gasrem, align 8 - %"$BoolUtils.andb_15" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1488" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_1489" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1488", 0 - %"$BoolUtils.andb_envptr_1490" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1488", 1 - %"$c3_1491" = load %TName_Bool*, %TName_Bool** %c3, align 8 - %"$BoolUtils.andb_call_1492" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1489"(i8* %"$BoolUtils.andb_envptr_1490", %TName_Bool* %"$c3_1491"), !dbg !144 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1492", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_15", align 8, !dbg !144 - %"$BoolUtils.andb_16" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_15_1493" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_15", align 8 - %"$$BoolUtils.andb_15_fptr_1494" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_15_1493", 0 - %"$$BoolUtils.andb_15_envptr_1495" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_15_1493", 1 - %"$c4_1496" = load %TName_Bool*, %TName_Bool** %c4, align 8 - %"$$BoolUtils.andb_15_call_1497" = call %TName_Bool* %"$$BoolUtils.andb_15_fptr_1494"(i8* %"$$BoolUtils.andb_15_envptr_1495", %TName_Bool* %"$c4_1496"), !dbg !144 - store %TName_Bool* %"$$BoolUtils.andb_15_call_1497", %TName_Bool** %"$BoolUtils.andb_16", align 8, !dbg !144 - %"$$BoolUtils.andb_16_1498" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_16", align 8 - store %TName_Bool* %"$$BoolUtils.andb_16_1498", %TName_Bool** %c5, align 8, !dbg !144 + %res = alloca %TName_Option_Uint128*, align 8 + %"$gasrem_1419" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1420" = icmp ugt i64 1, %"$gasrem_1419" + br i1 %"$gascmp_1420", label %"$out_of_gas_1421", label %"$have_gas_1422" + +"$out_of_gas_1421": ; preds = %"$have_gas_1417" + call void @_out_of_gas() + br label %"$have_gas_1422" + +"$have_gas_1422": ; preds = %"$out_of_gas_1421", %"$have_gas_1417" + %"$consume_1423" = sub i64 %"$gasrem_1419", 1 + store i64 %"$consume_1423", i64* @_gasrem, align 8 + %"$execptr_load_1424" = load i8*, i8** @_execptr, align 8 + %"$bs_1425" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1425_1426" = bitcast %Map_ByStr20_Uint128* %"$bs_1425" to i8* + %"$get__sender_1427" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$get__sender_1427", align 1 + %"$$get__sender_1427_1428" = bitcast [20 x i8]* %"$get__sender_1427" to i8* + %"$get_call_1429" = call i8* @_get(i8* %"$execptr_load_1424", %_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_1425_1426", i8* %"$$get__sender_1427_1428"), !dbg !140 + %"$get_1430" = bitcast i8* %"$get_call_1429" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$get_1430", %TName_Option_Uint128** %res, align 8, !dbg !140 + %"$gasrem_1431" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1432" = icmp ugt i64 2, %"$gasrem_1431" + br i1 %"$gascmp_1432", label %"$out_of_gas_1433", label %"$have_gas_1434" + +"$out_of_gas_1433": ; preds = %"$have_gas_1422" + call void @_out_of_gas() + br label %"$have_gas_1434" + +"$have_gas_1434": ; preds = %"$out_of_gas_1433", %"$have_gas_1422" + %"$consume_1435" = sub i64 %"$gasrem_1431", 2 + store i64 %"$consume_1435", i64* @_gasrem, align 8 + %"$res_1437" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 + %"$res_tag_1438" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$res_1437", i32 0, i32 0 + %"$res_tag_1439" = load i8, i8* %"$res_tag_1438", align 1 + switch i8 %"$res_tag_1439", label %"$empty_default_1440" [ + i8 1, label %"$None_1441" + i8 0, label %"$Some_1495" + ], !dbg !142 + +"$None_1441": ; preds = %"$have_gas_1434" + %"$res_1442" = bitcast %TName_Option_Uint128* %"$res_1437" to %CName_None_Uint128* + %"$gasrem_1443" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1444" = icmp ugt i64 1, %"$gasrem_1443" + br i1 %"$gascmp_1444", label %"$out_of_gas_1445", label %"$have_gas_1446" + +"$out_of_gas_1445": ; preds = %"$None_1441" + call void @_out_of_gas() + br label %"$have_gas_1446" + +"$have_gas_1446": ; preds = %"$out_of_gas_1445", %"$None_1441" + %"$consume_1447" = sub i64 %"$gasrem_1443", 1 + store i64 %"$consume_1447", i64* @_gasrem, align 8 + %e2 = alloca i8*, align 8 + %"$gasrem_1448" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1449" = icmp ugt i64 1, %"$gasrem_1448" + br i1 %"$gascmp_1449", label %"$out_of_gas_1450", label %"$have_gas_1451" + +"$out_of_gas_1450": ; preds = %"$have_gas_1446" + call void @_out_of_gas() + br label %"$have_gas_1451" + +"$have_gas_1451": ; preds = %"$out_of_gas_1450", %"$have_gas_1446" + %"$consume_1452" = sub i64 %"$gasrem_1448", 1 + store i64 %"$consume_1452", i64* @_gasrem, align 8 + %"$msgobj_1453_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1453_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1453_salloc_load", i64 153) + %"$msgobj_1453_salloc" = bitcast i8* %"$msgobj_1453_salloc_salloc" to [153 x i8]* + %"$msgobj_1453" = bitcast [153 x i8]* %"$msgobj_1453_salloc" to i8* + store i8 4, i8* %"$msgobj_1453", align 1 + %"$msgobj_fname_1455" = getelementptr i8, i8* %"$msgobj_1453", i32 1 + %"$msgobj_fname_1456" = bitcast i8* %"$msgobj_fname_1455" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1454", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1456", align 8 + %"$msgobj_td_1457" = getelementptr i8, i8* %"$msgobj_1453", i32 17 + %"$msgobj_td_1458" = bitcast i8* %"$msgobj_td_1457" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1458", align 8 + %"$msgobj_v_1460" = getelementptr i8, i8* %"$msgobj_1453", i32 25 + %"$msgobj_v_1461" = bitcast i8* %"$msgobj_v_1460" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1459", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1461", align 8 + %"$msgobj_fname_1463" = getelementptr i8, i8* %"$msgobj_1453", i32 41 + %"$msgobj_fname_1464" = bitcast i8* %"$msgobj_fname_1463" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1462", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1464", align 8 + %"$msgobj_td_1465" = getelementptr i8, i8* %"$msgobj_1453", i32 57 + %"$msgobj_td_1466" = bitcast i8* %"$msgobj_td_1465" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1466", align 8 + %"$msgobj_v_1467" = getelementptr i8, i8* %"$msgobj_1453", i32 65 + %"$msgobj_v_1468" = bitcast i8* %"$msgobj_v_1467" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1468", align 1 + %"$msgobj_fname_1470" = getelementptr i8, i8* %"$msgobj_1453", i32 85 + %"$msgobj_fname_1471" = bitcast i8* %"$msgobj_fname_1470" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1469", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1471", align 8 + %"$msgobj_td_1472" = getelementptr i8, i8* %"$msgobj_1453", i32 101 + %"$msgobj_td_1473" = bitcast i8* %"$msgobj_td_1472" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1473", align 8 + %"$msgobj_v_1474" = getelementptr i8, i8* %"$msgobj_1453", i32 109 + %"$msgobj_v_1475" = bitcast i8* %"$msgobj_v_1474" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1475", align 8 + %"$msgobj_fname_1477" = getelementptr i8, i8* %"$msgobj_1453", i32 125 + %"$msgobj_fname_1478" = bitcast i8* %"$msgobj_fname_1477" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1476", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1478", align 8 + %"$msgobj_td_1479" = getelementptr i8, i8* %"$msgobj_1453", i32 141 + %"$msgobj_td_1480" = bitcast i8* %"$msgobj_td_1479" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_1480", align 8 + %"$crowdfunding.cannot_reclaim_code_1481" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 + %"$msgobj_v_1482" = getelementptr i8, i8* %"$msgobj_1453", i32 149 + %"$msgobj_v_1483" = bitcast i8* %"$msgobj_v_1482" to %Int32* + store %Int32 %"$crowdfunding.cannot_reclaim_code_1481", %Int32* %"$msgobj_v_1483", align 4 + store i8* %"$msgobj_1453", i8** %e2, align 8, !dbg !143 + %"$e_1485" = load i8*, i8** %e2, align 8 + %"$_literal_cost_call_1487" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1485") + %"$gasrem_1488" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1489" = icmp ugt i64 %"$_literal_cost_call_1487", %"$gasrem_1488" + br i1 %"$gascmp_1489", label %"$out_of_gas_1490", label %"$have_gas_1491" + +"$out_of_gas_1490": ; preds = %"$have_gas_1451" + call void @_out_of_gas() + br label %"$have_gas_1491" + +"$have_gas_1491": ; preds = %"$out_of_gas_1490", %"$have_gas_1451" + %"$consume_1492" = sub i64 %"$gasrem_1488", %"$_literal_cost_call_1487" + store i64 %"$consume_1492", i64* @_gasrem, align 8 + %"$execptr_load_1493" = load i8*, i8** @_execptr, align 8 + %"$e_1494" = load i8*, i8** %e2, align 8 + call void @_event(i8* %"$execptr_load_1493", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1494"), !dbg !146 + br label %"$matchsucc_1436" + +"$Some_1495": ; preds = %"$have_gas_1434" + %"$res_1496" = bitcast %TName_Option_Uint128* %"$res_1437" to %CName_Some_Uint128* + %"$v_gep_1497" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$res_1496", i32 0, i32 1 + %"$v_load_1498" = load %Uint128, %Uint128* %"$v_gep_1497", align 8 + %v = alloca %Uint128, align 8 + store %Uint128 %"$v_load_1498", %Uint128* %v, align 8 %"$gasrem_1499" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1500" = icmp ugt i64 2, %"$gasrem_1499" + %"$gascmp_1500" = icmp ugt i64 1, %"$gasrem_1499" br i1 %"$gascmp_1500", label %"$out_of_gas_1501", label %"$have_gas_1502" -"$out_of_gas_1501": ; preds = %"$have_gas_1486" +"$out_of_gas_1501": ; preds = %"$Some_1495" call void @_out_of_gas() br label %"$have_gas_1502" -"$have_gas_1502": ; preds = %"$out_of_gas_1501", %"$have_gas_1486" - %"$consume_1503" = sub i64 %"$gasrem_1499", 2 +"$have_gas_1502": ; preds = %"$out_of_gas_1501", %"$Some_1495" + %"$consume_1503" = sub i64 %"$gasrem_1499", 1 store i64 %"$consume_1503", i64* @_gasrem, align 8 - %"$c5_1505" = load %TName_Bool*, %TName_Bool** %c5, align 8 - %"$c5_tag_1506" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c5_1505", i32 0, i32 0 - %"$c5_tag_1507" = load i8, i8* %"$c5_tag_1506", align 1 - switch i8 %"$c5_tag_1507", label %"$empty_default_1508" [ - i8 1, label %"$False_1509" - i8 0, label %"$True_1563" - ], !dbg !145 - -"$False_1509": ; preds = %"$have_gas_1502" - %"$c5_1510" = bitcast %TName_Bool* %"$c5_1505" to %CName_False* - %"$gasrem_1511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1512" = icmp ugt i64 1, %"$gasrem_1511" - br i1 %"$gascmp_1512", label %"$out_of_gas_1513", label %"$have_gas_1514" - -"$out_of_gas_1513": ; preds = %"$False_1509" - call void @_out_of_gas() - br label %"$have_gas_1514" - -"$have_gas_1514": ; preds = %"$out_of_gas_1513", %"$False_1509" - %"$consume_1515" = sub i64 %"$gasrem_1511", 1 - store i64 %"$consume_1515", i64* @_gasrem, align 8 - %e1 = alloca i8*, align 8 - %"$gasrem_1516" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1517" = icmp ugt i64 1, %"$gasrem_1516" - br i1 %"$gascmp_1517", label %"$out_of_gas_1518", label %"$have_gas_1519" - -"$out_of_gas_1518": ; preds = %"$have_gas_1514" - call void @_out_of_gas() - br label %"$have_gas_1519" - -"$have_gas_1519": ; preds = %"$out_of_gas_1518", %"$have_gas_1514" - %"$consume_1520" = sub i64 %"$gasrem_1516", 1 - store i64 %"$consume_1520", i64* @_gasrem, align 8 - %"$msgobj_1521_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1521_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1521_salloc_load", i64 153) - %"$msgobj_1521_salloc" = bitcast i8* %"$msgobj_1521_salloc_salloc" to [153 x i8]* - %"$msgobj_1521" = bitcast [153 x i8]* %"$msgobj_1521_salloc" to i8* - store i8 4, i8* %"$msgobj_1521", align 1 - %"$msgobj_fname_1523" = getelementptr i8, i8* %"$msgobj_1521", i32 1 - %"$msgobj_fname_1524" = bitcast i8* %"$msgobj_fname_1523" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1522", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1524", align 8 - %"$msgobj_td_1525" = getelementptr i8, i8* %"$msgobj_1521", i32 17 - %"$msgobj_td_1526" = bitcast i8* %"$msgobj_td_1525" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1526", align 8 - %"$msgobj_v_1528" = getelementptr i8, i8* %"$msgobj_1521", i32 25 - %"$msgobj_v_1529" = bitcast i8* %"$msgobj_v_1528" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1527", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1529", align 8 - %"$msgobj_fname_1531" = getelementptr i8, i8* %"$msgobj_1521", i32 41 - %"$msgobj_fname_1532" = bitcast i8* %"$msgobj_fname_1531" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1530", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1532", align 8 - %"$msgobj_td_1533" = getelementptr i8, i8* %"$msgobj_1521", i32 57 - %"$msgobj_td_1534" = bitcast i8* %"$msgobj_td_1533" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1534", align 8 - %"$msgobj_v_1535" = getelementptr i8, i8* %"$msgobj_1521", i32 65 - %"$msgobj_v_1536" = bitcast i8* %"$msgobj_v_1535" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1536", align 1 - %"$msgobj_fname_1538" = getelementptr i8, i8* %"$msgobj_1521", i32 85 - %"$msgobj_fname_1539" = bitcast i8* %"$msgobj_fname_1538" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1537", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1539", align 8 - %"$msgobj_td_1540" = getelementptr i8, i8* %"$msgobj_1521", i32 101 - %"$msgobj_td_1541" = bitcast i8* %"$msgobj_td_1540" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1541", align 8 - %"$msgobj_v_1542" = getelementptr i8, i8* %"$msgobj_1521", i32 109 - %"$msgobj_v_1543" = bitcast i8* %"$msgobj_v_1542" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1543", align 8 - %"$msgobj_fname_1545" = getelementptr i8, i8* %"$msgobj_1521", i32 125 - %"$msgobj_fname_1546" = bitcast i8* %"$msgobj_fname_1545" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1544", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1546", align 8 - %"$msgobj_td_1547" = getelementptr i8, i8* %"$msgobj_1521", i32 141 - %"$msgobj_td_1548" = bitcast i8* %"$msgobj_td_1547" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1548", align 8 - %"$crowdfunding.cannot_reclaim_code_1549" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 - %"$msgobj_v_1550" = getelementptr i8, i8* %"$msgobj_1521", i32 149 - %"$msgobj_v_1551" = bitcast i8* %"$msgobj_v_1550" to %Int32* - store %Int32 %"$crowdfunding.cannot_reclaim_code_1549", %Int32* %"$msgobj_v_1551", align 4 - store i8* %"$msgobj_1521", i8** %e1, align 8, !dbg !146 - %"$e_1553" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_1555" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1553") - %"$gasrem_1556" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1557" = icmp ugt i64 %"$_literal_cost_call_1555", %"$gasrem_1556" - br i1 %"$gascmp_1557", label %"$out_of_gas_1558", label %"$have_gas_1559" - -"$out_of_gas_1558": ; preds = %"$have_gas_1519" - call void @_out_of_gas() - br label %"$have_gas_1559" - -"$have_gas_1559": ; preds = %"$out_of_gas_1558", %"$have_gas_1519" - %"$consume_1560" = sub i64 %"$gasrem_1556", %"$_literal_cost_call_1555" - store i64 %"$consume_1560", i64* @_gasrem, align 8 - %"$execptr_load_1561" = load i8*, i8** @_execptr, align 8 - %"$e_1562" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_1561", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1562"), !dbg !149 - br label %"$matchsucc_1504" - -"$True_1563": ; preds = %"$have_gas_1502" - %"$c5_1564" = bitcast %TName_Bool* %"$c5_1505" to %CName_True* - %"$gasrem_1565" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1566" = icmp ugt i64 1, %"$gasrem_1565" - br i1 %"$gascmp_1566", label %"$out_of_gas_1567", label %"$have_gas_1568" - -"$out_of_gas_1567": ; preds = %"$True_1563" - call void @_out_of_gas() - br label %"$have_gas_1568" - -"$have_gas_1568": ; preds = %"$out_of_gas_1567", %"$True_1563" - %"$consume_1569" = sub i64 %"$gasrem_1565", 1 - store i64 %"$consume_1569", i64* @_gasrem, align 8 - %res = alloca %TName_Option_Uint128*, align 8 - %"$gasrem_1570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1571" = icmp ugt i64 1, %"$gasrem_1570" - br i1 %"$gascmp_1571", label %"$out_of_gas_1572", label %"$have_gas_1573" - -"$out_of_gas_1572": ; preds = %"$have_gas_1568" - call void @_out_of_gas() - br label %"$have_gas_1573" - -"$have_gas_1573": ; preds = %"$out_of_gas_1572", %"$have_gas_1568" - %"$consume_1574" = sub i64 %"$gasrem_1570", 1 - store i64 %"$consume_1574", i64* @_gasrem, align 8 - %"$execptr_load_1575" = load i8*, i8** @_execptr, align 8 - %"$bs_1576" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1576_1577" = bitcast %Map_ByStr20_Uint128* %"$bs_1576" to i8* - %"$get__sender_1578" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$get__sender_1578", align 1 - %"$$get__sender_1578_1579" = bitcast [20 x i8]* %"$get__sender_1578" to i8* - %"$get_call_1580" = call i8* @_get(i8* %"$execptr_load_1575", %_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_1576_1577", i8* %"$$get__sender_1578_1579"), !dbg !150 - %"$get_1581" = bitcast i8* %"$get_call_1580" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$get_1581", %TName_Option_Uint128** %res, align 8, !dbg !150 - %"$gasrem_1582" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1583" = icmp ugt i64 2, %"$gasrem_1582" - br i1 %"$gascmp_1583", label %"$out_of_gas_1584", label %"$have_gas_1585" - -"$out_of_gas_1584": ; preds = %"$have_gas_1573" - call void @_out_of_gas() - br label %"$have_gas_1585" - -"$have_gas_1585": ; preds = %"$out_of_gas_1584", %"$have_gas_1573" - %"$consume_1586" = sub i64 %"$gasrem_1582", 2 - store i64 %"$consume_1586", i64* @_gasrem, align 8 - %"$res_1588" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 - %"$res_tag_1589" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$res_1588", i32 0, i32 0 - %"$res_tag_1590" = load i8, i8* %"$res_tag_1589", align 1 - switch i8 %"$res_tag_1590", label %"$empty_default_1591" [ - i8 1, label %"$None_1592" - i8 0, label %"$Some_1646" - ], !dbg !152 - -"$None_1592": ; preds = %"$have_gas_1585" - %"$res_1593" = bitcast %TName_Option_Uint128* %"$res_1588" to %CName_None_Uint128* - %"$gasrem_1594" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1595" = icmp ugt i64 1, %"$gasrem_1594" - br i1 %"$gascmp_1595", label %"$out_of_gas_1596", label %"$have_gas_1597" - -"$out_of_gas_1596": ; preds = %"$None_1592" - call void @_out_of_gas() - br label %"$have_gas_1597" - -"$have_gas_1597": ; preds = %"$out_of_gas_1596", %"$None_1592" - %"$consume_1598" = sub i64 %"$gasrem_1594", 1 - store i64 %"$consume_1598", i64* @_gasrem, align 8 - %e2 = alloca i8*, align 8 - %"$gasrem_1599" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1600" = icmp ugt i64 1, %"$gasrem_1599" - br i1 %"$gascmp_1600", label %"$out_of_gas_1601", label %"$have_gas_1602" - -"$out_of_gas_1601": ; preds = %"$have_gas_1597" - call void @_out_of_gas() - br label %"$have_gas_1602" - -"$have_gas_1602": ; preds = %"$out_of_gas_1601", %"$have_gas_1597" - %"$consume_1603" = sub i64 %"$gasrem_1599", 1 - store i64 %"$consume_1603", i64* @_gasrem, align 8 - %"$msgobj_1604_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1604_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1604_salloc_load", i64 153) - %"$msgobj_1604_salloc" = bitcast i8* %"$msgobj_1604_salloc_salloc" to [153 x i8]* - %"$msgobj_1604" = bitcast [153 x i8]* %"$msgobj_1604_salloc" to i8* - store i8 4, i8* %"$msgobj_1604", align 1 - %"$msgobj_fname_1606" = getelementptr i8, i8* %"$msgobj_1604", i32 1 - %"$msgobj_fname_1607" = bitcast i8* %"$msgobj_fname_1606" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1605", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1607", align 8 - %"$msgobj_td_1608" = getelementptr i8, i8* %"$msgobj_1604", i32 17 - %"$msgobj_td_1609" = bitcast i8* %"$msgobj_td_1608" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1609", align 8 - %"$msgobj_v_1611" = getelementptr i8, i8* %"$msgobj_1604", i32 25 - %"$msgobj_v_1612" = bitcast i8* %"$msgobj_v_1611" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1610", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1612", align 8 - %"$msgobj_fname_1614" = getelementptr i8, i8* %"$msgobj_1604", i32 41 - %"$msgobj_fname_1615" = bitcast i8* %"$msgobj_fname_1614" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1613", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1615", align 8 - %"$msgobj_td_1616" = getelementptr i8, i8* %"$msgobj_1604", i32 57 - %"$msgobj_td_1617" = bitcast i8* %"$msgobj_td_1616" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1617", align 8 - %"$msgobj_v_1618" = getelementptr i8, i8* %"$msgobj_1604", i32 65 - %"$msgobj_v_1619" = bitcast i8* %"$msgobj_v_1618" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1619", align 1 - %"$msgobj_fname_1621" = getelementptr i8, i8* %"$msgobj_1604", i32 85 - %"$msgobj_fname_1622" = bitcast i8* %"$msgobj_fname_1621" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1620", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1622", align 8 - %"$msgobj_td_1623" = getelementptr i8, i8* %"$msgobj_1604", i32 101 - %"$msgobj_td_1624" = bitcast i8* %"$msgobj_td_1623" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1624", align 8 - %"$msgobj_v_1625" = getelementptr i8, i8* %"$msgobj_1604", i32 109 - %"$msgobj_v_1626" = bitcast i8* %"$msgobj_v_1625" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1626", align 8 - %"$msgobj_fname_1628" = getelementptr i8, i8* %"$msgobj_1604", i32 125 - %"$msgobj_fname_1629" = bitcast i8* %"$msgobj_fname_1628" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1627", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1629", align 8 - %"$msgobj_td_1630" = getelementptr i8, i8* %"$msgobj_1604", i32 141 - %"$msgobj_td_1631" = bitcast i8* %"$msgobj_td_1630" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1631", align 8 - %"$crowdfunding.cannot_reclaim_code_1632" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 - %"$msgobj_v_1633" = getelementptr i8, i8* %"$msgobj_1604", i32 149 - %"$msgobj_v_1634" = bitcast i8* %"$msgobj_v_1633" to %Int32* - store %Int32 %"$crowdfunding.cannot_reclaim_code_1632", %Int32* %"$msgobj_v_1634", align 4 - store i8* %"$msgobj_1604", i8** %e2, align 8, !dbg !153 - %"$e_1636" = load i8*, i8** %e2, align 8 - %"$_literal_cost_call_1638" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1636") + %bs1 = alloca %Map_ByStr20_Uint128*, align 8 + %"$bs_1504" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1504_1505" = bitcast %Map_ByStr20_Uint128* %"$bs_1504" to i8* + %"$_lengthof_call_1506" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_1504_1505") + %"$gasadd_1507" = add i64 1, %"$_lengthof_call_1506" + %"$gasrem_1508" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1509" = icmp ugt i64 %"$gasadd_1507", %"$gasrem_1508" + br i1 %"$gascmp_1509", label %"$out_of_gas_1510", label %"$have_gas_1511" + +"$out_of_gas_1510": ; preds = %"$have_gas_1502" + call void @_out_of_gas() + br label %"$have_gas_1511" + +"$have_gas_1511": ; preds = %"$out_of_gas_1510", %"$have_gas_1502" + %"$consume_1512" = sub i64 %"$gasrem_1508", %"$gasadd_1507" + store i64 %"$consume_1512", i64* @_gasrem, align 8 + %"$execptr_load_1513" = load i8*, i8** @_execptr, align 8 + %"$bs_1514" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1514_1515" = bitcast %Map_ByStr20_Uint128* %"$bs_1514" to i8* + %"$remove__sender_1516" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$remove__sender_1516", align 1 + %"$$remove__sender_1516_1517" = bitcast [20 x i8]* %"$remove__sender_1516" to i8* + %"$remove_call_1518" = call i8* @_remove(i8* %"$execptr_load_1513", %_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_1514_1515", i8* %"$$remove__sender_1516_1517"), !dbg !147 + %"$remove_1519" = bitcast i8* %"$remove_call_1518" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$remove_1519", %Map_ByStr20_Uint128** %bs1, align 8, !dbg !147 + %"$bs1_1520" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$$bs1_1520_1521" = bitcast %Map_ByStr20_Uint128* %"$bs1_1520" to i8* + %"$_literal_cost_call_1522" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs1_1520_1521") + %"$gasrem_1523" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1524" = icmp ugt i64 %"$_literal_cost_call_1522", %"$gasrem_1523" + br i1 %"$gascmp_1524", label %"$out_of_gas_1525", label %"$have_gas_1526" + +"$out_of_gas_1525": ; preds = %"$have_gas_1511" + call void @_out_of_gas() + br label %"$have_gas_1526" + +"$have_gas_1526": ; preds = %"$out_of_gas_1525", %"$have_gas_1511" + %"$consume_1527" = sub i64 %"$gasrem_1523", %"$_literal_cost_call_1522" + store i64 %"$consume_1527", i64* @_gasrem, align 8 + %"$execptr_load_1528" = load i8*, i8** @_execptr, align 8 + %"$bs1_1530" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$update_value_1531" = bitcast %Map_ByStr20_Uint128* %"$bs1_1530" to i8* + call void @_update_field(i8* %"$execptr_load_1528", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1529", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_58", i32 0, i8* null, i8* %"$update_value_1531"), !dbg !149 + %"$gasrem_1532" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1533" = icmp ugt i64 1, %"$gasrem_1532" + br i1 %"$gascmp_1533", label %"$out_of_gas_1534", label %"$have_gas_1535" + +"$out_of_gas_1534": ; preds = %"$have_gas_1526" + call void @_out_of_gas() + br label %"$have_gas_1535" + +"$have_gas_1535": ; preds = %"$out_of_gas_1534", %"$have_gas_1526" + %"$consume_1536" = sub i64 %"$gasrem_1532", 1 + store i64 %"$consume_1536", i64* @_gasrem, align 8 + %msg = alloca i8*, align 8 + %"$gasrem_1537" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1538" = icmp ugt i64 1, %"$gasrem_1537" + br i1 %"$gascmp_1538", label %"$out_of_gas_1539", label %"$have_gas_1540" + +"$out_of_gas_1539": ; preds = %"$have_gas_1535" + call void @_out_of_gas() + br label %"$have_gas_1540" + +"$have_gas_1540": ; preds = %"$out_of_gas_1539", %"$have_gas_1535" + %"$consume_1541" = sub i64 %"$gasrem_1537", 1 + store i64 %"$consume_1541", i64* @_gasrem, align 8 + %"$msgobj_1542_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1542_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1542_salloc_load", i64 125) + %"$msgobj_1542_salloc" = bitcast i8* %"$msgobj_1542_salloc_salloc" to [125 x i8]* + %"$msgobj_1542" = bitcast [125 x i8]* %"$msgobj_1542_salloc" to i8* + store i8 3, i8* %"$msgobj_1542", align 1 + %"$msgobj_fname_1544" = getelementptr i8, i8* %"$msgobj_1542", i32 1 + %"$msgobj_fname_1545" = bitcast i8* %"$msgobj_fname_1544" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1543", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1545", align 8 + %"$msgobj_td_1546" = getelementptr i8, i8* %"$msgobj_1542", i32 17 + %"$msgobj_td_1547" = bitcast i8* %"$msgobj_td_1546" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1547", align 8 + %"$msgobj_v_1549" = getelementptr i8, i8* %"$msgobj_1542", i32 25 + %"$msgobj_v_1550" = bitcast i8* %"$msgobj_v_1549" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1548", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1550", align 8 + %"$msgobj_fname_1552" = getelementptr i8, i8* %"$msgobj_1542", i32 41 + %"$msgobj_fname_1553" = bitcast i8* %"$msgobj_fname_1552" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1551", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1553", align 8 + %"$msgobj_td_1554" = getelementptr i8, i8* %"$msgobj_1542", i32 57 + %"$msgobj_td_1555" = bitcast i8* %"$msgobj_td_1554" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1555", align 8 + %"$msgobj_v_1556" = getelementptr i8, i8* %"$msgobj_1542", i32 65 + %"$msgobj_v_1557" = bitcast i8* %"$msgobj_v_1556" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1557", align 1 + %"$msgobj_fname_1559" = getelementptr i8, i8* %"$msgobj_1542", i32 85 + %"$msgobj_fname_1560" = bitcast i8* %"$msgobj_fname_1559" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1558", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1560", align 8 + %"$msgobj_td_1561" = getelementptr i8, i8* %"$msgobj_1542", i32 101 + %"$msgobj_td_1562" = bitcast i8* %"$msgobj_td_1561" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1562", align 8 + %"$v_1563" = load %Uint128, %Uint128* %v, align 8 + %"$msgobj_v_1564" = getelementptr i8, i8* %"$msgobj_1542", i32 109 + %"$msgobj_v_1565" = bitcast i8* %"$msgobj_v_1564" to %Uint128* + store %Uint128 %"$v_1563", %Uint128* %"$msgobj_v_1565", align 8 + store i8* %"$msgobj_1542", i8** %msg, align 8, !dbg !150 + %"$gasrem_1567" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1568" = icmp ugt i64 1, %"$gasrem_1567" + br i1 %"$gascmp_1568", label %"$out_of_gas_1569", label %"$have_gas_1570" + +"$out_of_gas_1569": ; preds = %"$have_gas_1540" + call void @_out_of_gas() + br label %"$have_gas_1570" + +"$have_gas_1570": ; preds = %"$out_of_gas_1569", %"$have_gas_1540" + %"$consume_1571" = sub i64 %"$gasrem_1567", 1 + store i64 %"$consume_1571", i64* @_gasrem, align 8 + %msgs = alloca %TName_List_Message*, align 8 + %"$gasrem_1572" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1573" = icmp ugt i64 1, %"$gasrem_1572" + br i1 %"$gascmp_1573", label %"$out_of_gas_1574", label %"$have_gas_1575" + +"$out_of_gas_1574": ; preds = %"$have_gas_1570" + call void @_out_of_gas() + br label %"$have_gas_1575" + +"$have_gas_1575": ; preds = %"$out_of_gas_1574", %"$have_gas_1570" + %"$consume_1576" = sub i64 %"$gasrem_1572", 1 + store i64 %"$consume_1576", i64* @_gasrem, align 8 + %"$crowdfunding.one_msg_4" = alloca %TName_List_Message*, align 8 + %"$crowdfunding.one_msg_1577" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 + %"$crowdfunding.one_msg_fptr_1578" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1577", 0 + %"$crowdfunding.one_msg_envptr_1579" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1577", 1 + %"$msg_1580" = load i8*, i8** %msg, align 8 + %"$crowdfunding.one_msg_call_1581" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1578"(i8* %"$crowdfunding.one_msg_envptr_1579", i8* %"$msg_1580"), !dbg !151 + store %TName_List_Message* %"$crowdfunding.one_msg_call_1581", %TName_List_Message** %"$crowdfunding.one_msg_4", align 8, !dbg !151 + %"$$crowdfunding.one_msg_4_1582" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_4", align 8 + store %TName_List_Message* %"$$crowdfunding.one_msg_4_1582", %TName_List_Message** %msgs, align 8, !dbg !151 + %"$gasrem_1583" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1584" = icmp ugt i64 1, %"$gasrem_1583" + br i1 %"$gascmp_1584", label %"$out_of_gas_1585", label %"$have_gas_1586" + +"$out_of_gas_1585": ; preds = %"$have_gas_1575" + call void @_out_of_gas() + br label %"$have_gas_1586" + +"$have_gas_1586": ; preds = %"$out_of_gas_1585", %"$have_gas_1575" + %"$consume_1587" = sub i64 %"$gasrem_1583", 1 + store i64 %"$consume_1587", i64* @_gasrem, align 8 + %e3 = alloca i8*, align 8 + %"$gasrem_1588" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1589" = icmp ugt i64 1, %"$gasrem_1588" + br i1 %"$gascmp_1589", label %"$out_of_gas_1590", label %"$have_gas_1591" + +"$out_of_gas_1590": ; preds = %"$have_gas_1586" + call void @_out_of_gas() + br label %"$have_gas_1591" + +"$have_gas_1591": ; preds = %"$out_of_gas_1590", %"$have_gas_1586" + %"$consume_1592" = sub i64 %"$gasrem_1588", 1 + store i64 %"$consume_1592", i64* @_gasrem, align 8 + %"$msgobj_1593_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1593_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1593_salloc_load", i64 153) + %"$msgobj_1593_salloc" = bitcast i8* %"$msgobj_1593_salloc_salloc" to [153 x i8]* + %"$msgobj_1593" = bitcast [153 x i8]* %"$msgobj_1593_salloc" to i8* + store i8 4, i8* %"$msgobj_1593", align 1 + %"$msgobj_fname_1595" = getelementptr i8, i8* %"$msgobj_1593", i32 1 + %"$msgobj_fname_1596" = bitcast i8* %"$msgobj_fname_1595" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1594", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1596", align 8 + %"$msgobj_td_1597" = getelementptr i8, i8* %"$msgobj_1593", i32 17 + %"$msgobj_td_1598" = bitcast i8* %"$msgobj_td_1597" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1598", align 8 + %"$msgobj_v_1600" = getelementptr i8, i8* %"$msgobj_1593", i32 25 + %"$msgobj_v_1601" = bitcast i8* %"$msgobj_v_1600" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1599", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1601", align 8 + %"$msgobj_fname_1603" = getelementptr i8, i8* %"$msgobj_1593", i32 41 + %"$msgobj_fname_1604" = bitcast i8* %"$msgobj_fname_1603" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1602", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1604", align 8 + %"$msgobj_td_1605" = getelementptr i8, i8* %"$msgobj_1593", i32 57 + %"$msgobj_td_1606" = bitcast i8* %"$msgobj_td_1605" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1606", align 8 + %"$msgobj_v_1607" = getelementptr i8, i8* %"$msgobj_1593", i32 65 + %"$msgobj_v_1608" = bitcast i8* %"$msgobj_v_1607" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1608", align 1 + %"$msgobj_fname_1610" = getelementptr i8, i8* %"$msgobj_1593", i32 85 + %"$msgobj_fname_1611" = bitcast i8* %"$msgobj_fname_1610" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1609", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1611", align 8 + %"$msgobj_td_1612" = getelementptr i8, i8* %"$msgobj_1593", i32 101 + %"$msgobj_td_1613" = bitcast i8* %"$msgobj_td_1612" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1613", align 8 + %"$v_1614" = load %Uint128, %Uint128* %v, align 8 + %"$msgobj_v_1615" = getelementptr i8, i8* %"$msgobj_1593", i32 109 + %"$msgobj_v_1616" = bitcast i8* %"$msgobj_v_1615" to %Uint128* + store %Uint128 %"$v_1614", %Uint128* %"$msgobj_v_1616", align 8 + %"$msgobj_fname_1618" = getelementptr i8, i8* %"$msgobj_1593", i32 125 + %"$msgobj_fname_1619" = bitcast i8* %"$msgobj_fname_1618" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1617", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1619", align 8 + %"$msgobj_td_1620" = getelementptr i8, i8* %"$msgobj_1593", i32 141 + %"$msgobj_td_1621" = bitcast i8* %"$msgobj_td_1620" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_1621", align 8 + %"$crowdfunding.reclaimed_code_1622" = load %Int32, %Int32* @crowdfunding.reclaimed_code, align 4 + %"$msgobj_v_1623" = getelementptr i8, i8* %"$msgobj_1593", i32 149 + %"$msgobj_v_1624" = bitcast i8* %"$msgobj_v_1623" to %Int32* + store %Int32 %"$crowdfunding.reclaimed_code_1622", %Int32* %"$msgobj_v_1624", align 4 + store i8* %"$msgobj_1593", i8** %e3, align 8, !dbg !152 + %"$e_1626" = load i8*, i8** %e3, align 8 + %"$_literal_cost_call_1628" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1626") + %"$gasrem_1629" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1630" = icmp ugt i64 %"$_literal_cost_call_1628", %"$gasrem_1629" + br i1 %"$gascmp_1630", label %"$out_of_gas_1631", label %"$have_gas_1632" + +"$out_of_gas_1631": ; preds = %"$have_gas_1591" + call void @_out_of_gas() + br label %"$have_gas_1632" + +"$have_gas_1632": ; preds = %"$out_of_gas_1631", %"$have_gas_1591" + %"$consume_1633" = sub i64 %"$gasrem_1629", %"$_literal_cost_call_1628" + store i64 %"$consume_1633", i64* @_gasrem, align 8 + %"$execptr_load_1634" = load i8*, i8** @_execptr, align 8 + %"$e_1635" = load i8*, i8** %e3, align 8 + call void @_event(i8* %"$execptr_load_1634", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1635"), !dbg !153 + %"$msgs_1636" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_1636_1637" = bitcast %TName_List_Message* %"$msgs_1636" to i8* + %"$_literal_cost_call_1638" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55", i8* %"$$msgs_1636_1637") %"$gasrem_1639" = load i64, i64* @_gasrem, align 8 %"$gascmp_1640" = icmp ugt i64 %"$_literal_cost_call_1638", %"$gasrem_1639" br i1 %"$gascmp_1640", label %"$out_of_gas_1641", label %"$have_gas_1642" -"$out_of_gas_1641": ; preds = %"$have_gas_1602" +"$out_of_gas_1641": ; preds = %"$have_gas_1632" call void @_out_of_gas() br label %"$have_gas_1642" -"$have_gas_1642": ; preds = %"$out_of_gas_1641", %"$have_gas_1602" +"$have_gas_1642": ; preds = %"$out_of_gas_1641", %"$have_gas_1632" %"$consume_1643" = sub i64 %"$gasrem_1639", %"$_literal_cost_call_1638" store i64 %"$consume_1643", i64* @_gasrem, align 8 %"$execptr_load_1644" = load i8*, i8** @_execptr, align 8 - %"$e_1645" = load i8*, i8** %e2, align 8 - call void @_event(i8* %"$execptr_load_1644", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1645"), !dbg !156 - br label %"$matchsucc_1587" - -"$Some_1646": ; preds = %"$have_gas_1585" - %"$res_1647" = bitcast %TName_Option_Uint128* %"$res_1588" to %CName_Some_Uint128* - %"$v_gep_1648" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$res_1647", i32 0, i32 1 - %"$v_load_1649" = load %Uint128, %Uint128* %"$v_gep_1648", align 8 - %v = alloca %Uint128, align 8 - store %Uint128 %"$v_load_1649", %Uint128* %v, align 8 - %"$gasrem_1650" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1651" = icmp ugt i64 1, %"$gasrem_1650" - br i1 %"$gascmp_1651", label %"$out_of_gas_1652", label %"$have_gas_1653" + %"$msgs_1645" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_1644", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55", %TName_List_Message* %"$msgs_1645"), !dbg !154 + br label %"$matchsucc_1436" -"$out_of_gas_1652": ; preds = %"$Some_1646" - call void @_out_of_gas() - br label %"$have_gas_1653" +"$empty_default_1440": ; preds = %"$have_gas_1434" + br label %"$matchsucc_1436" -"$have_gas_1653": ; preds = %"$out_of_gas_1652", %"$Some_1646" - %"$consume_1654" = sub i64 %"$gasrem_1650", 1 - store i64 %"$consume_1654", i64* @_gasrem, align 8 - %bs1 = alloca %Map_ByStr20_Uint128*, align 8 - %"$bs_1655" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1655_1656" = bitcast %Map_ByStr20_Uint128* %"$bs_1655" to i8* - %"$_lengthof_call_1657" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_1655_1656") - %"$gasadd_1658" = add i64 1, %"$_lengthof_call_1657" - %"$gasrem_1659" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1660" = icmp ugt i64 %"$gasadd_1658", %"$gasrem_1659" - br i1 %"$gascmp_1660", label %"$out_of_gas_1661", label %"$have_gas_1662" - -"$out_of_gas_1661": ; preds = %"$have_gas_1653" - call void @_out_of_gas() - br label %"$have_gas_1662" - -"$have_gas_1662": ; preds = %"$out_of_gas_1661", %"$have_gas_1653" - %"$consume_1663" = sub i64 %"$gasrem_1659", %"$gasadd_1658" - store i64 %"$consume_1663", i64* @_gasrem, align 8 - %"$execptr_load_1664" = load i8*, i8** @_execptr, align 8 - %"$bs_1665" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1665_1666" = bitcast %Map_ByStr20_Uint128* %"$bs_1665" to i8* - %"$remove__sender_1667" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$remove__sender_1667", align 1 - %"$$remove__sender_1667_1668" = bitcast [20 x i8]* %"$remove__sender_1667" to i8* - %"$remove_call_1669" = call i8* @_remove(i8* %"$execptr_load_1664", %_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_1665_1666", i8* %"$$remove__sender_1667_1668"), !dbg !157 - %"$remove_1670" = bitcast i8* %"$remove_call_1669" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$remove_1670", %Map_ByStr20_Uint128** %bs1, align 8, !dbg !157 - %"$bs1_1671" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$$bs1_1671_1672" = bitcast %Map_ByStr20_Uint128* %"$bs1_1671" to i8* - %"$_literal_cost_call_1673" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs1_1671_1672") - %"$gasrem_1674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1675" = icmp ugt i64 %"$_literal_cost_call_1673", %"$gasrem_1674" - br i1 %"$gascmp_1675", label %"$out_of_gas_1676", label %"$have_gas_1677" - -"$out_of_gas_1676": ; preds = %"$have_gas_1662" - call void @_out_of_gas() - br label %"$have_gas_1677" - -"$have_gas_1677": ; preds = %"$out_of_gas_1676", %"$have_gas_1662" - %"$consume_1678" = sub i64 %"$gasrem_1674", %"$_literal_cost_call_1673" - store i64 %"$consume_1678", i64* @_gasrem, align 8 - %"$execptr_load_1679" = load i8*, i8** @_execptr, align 8 - %"$bs1_1681" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$update_value_1682" = bitcast %Map_ByStr20_Uint128* %"$bs1_1681" to i8* - call void @_update_field(i8* %"$execptr_load_1679", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1680", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_83", i32 0, i8* null, i8* %"$update_value_1682"), !dbg !159 - %"$gasrem_1683" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1684" = icmp ugt i64 1, %"$gasrem_1683" - br i1 %"$gascmp_1684", label %"$out_of_gas_1685", label %"$have_gas_1686" - -"$out_of_gas_1685": ; preds = %"$have_gas_1677" - call void @_out_of_gas() - br label %"$have_gas_1686" - -"$have_gas_1686": ; preds = %"$out_of_gas_1685", %"$have_gas_1677" - %"$consume_1687" = sub i64 %"$gasrem_1683", 1 - store i64 %"$consume_1687", i64* @_gasrem, align 8 - %msg = alloca i8*, align 8 - %"$gasrem_1688" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1689" = icmp ugt i64 1, %"$gasrem_1688" - br i1 %"$gascmp_1689", label %"$out_of_gas_1690", label %"$have_gas_1691" - -"$out_of_gas_1690": ; preds = %"$have_gas_1686" - call void @_out_of_gas() - br label %"$have_gas_1691" - -"$have_gas_1691": ; preds = %"$out_of_gas_1690", %"$have_gas_1686" - %"$consume_1692" = sub i64 %"$gasrem_1688", 1 - store i64 %"$consume_1692", i64* @_gasrem, align 8 - %"$msgobj_1693_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1693_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1693_salloc_load", i64 125) - %"$msgobj_1693_salloc" = bitcast i8* %"$msgobj_1693_salloc_salloc" to [125 x i8]* - %"$msgobj_1693" = bitcast [125 x i8]* %"$msgobj_1693_salloc" to i8* - store i8 3, i8* %"$msgobj_1693", align 1 - %"$msgobj_fname_1695" = getelementptr i8, i8* %"$msgobj_1693", i32 1 - %"$msgobj_fname_1696" = bitcast i8* %"$msgobj_fname_1695" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1694", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1696", align 8 - %"$msgobj_td_1697" = getelementptr i8, i8* %"$msgobj_1693", i32 17 - %"$msgobj_td_1698" = bitcast i8* %"$msgobj_td_1697" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1698", align 8 - %"$msgobj_v_1700" = getelementptr i8, i8* %"$msgobj_1693", i32 25 - %"$msgobj_v_1701" = bitcast i8* %"$msgobj_v_1700" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1699", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1701", align 8 - %"$msgobj_fname_1703" = getelementptr i8, i8* %"$msgobj_1693", i32 41 - %"$msgobj_fname_1704" = bitcast i8* %"$msgobj_fname_1703" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1702", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1704", align 8 - %"$msgobj_td_1705" = getelementptr i8, i8* %"$msgobj_1693", i32 57 - %"$msgobj_td_1706" = bitcast i8* %"$msgobj_td_1705" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1706", align 8 - %"$msgobj_v_1707" = getelementptr i8, i8* %"$msgobj_1693", i32 65 - %"$msgobj_v_1708" = bitcast i8* %"$msgobj_v_1707" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1708", align 1 - %"$msgobj_fname_1710" = getelementptr i8, i8* %"$msgobj_1693", i32 85 - %"$msgobj_fname_1711" = bitcast i8* %"$msgobj_fname_1710" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1709", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1711", align 8 - %"$msgobj_td_1712" = getelementptr i8, i8* %"$msgobj_1693", i32 101 - %"$msgobj_td_1713" = bitcast i8* %"$msgobj_td_1712" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1713", align 8 - %"$v_1714" = load %Uint128, %Uint128* %v, align 8 - %"$msgobj_v_1715" = getelementptr i8, i8* %"$msgobj_1693", i32 109 - %"$msgobj_v_1716" = bitcast i8* %"$msgobj_v_1715" to %Uint128* - store %Uint128 %"$v_1714", %Uint128* %"$msgobj_v_1716", align 8 - store i8* %"$msgobj_1693", i8** %msg, align 8, !dbg !160 - %"$gasrem_1718" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1719" = icmp ugt i64 1, %"$gasrem_1718" - br i1 %"$gascmp_1719", label %"$out_of_gas_1720", label %"$have_gas_1721" - -"$out_of_gas_1720": ; preds = %"$have_gas_1691" - call void @_out_of_gas() - br label %"$have_gas_1721" - -"$have_gas_1721": ; preds = %"$out_of_gas_1720", %"$have_gas_1691" - %"$consume_1722" = sub i64 %"$gasrem_1718", 1 - store i64 %"$consume_1722", i64* @_gasrem, align 8 - %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_1723" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1724" = icmp ugt i64 1, %"$gasrem_1723" - br i1 %"$gascmp_1724", label %"$out_of_gas_1725", label %"$have_gas_1726" - -"$out_of_gas_1725": ; preds = %"$have_gas_1721" - call void @_out_of_gas() - br label %"$have_gas_1726" - -"$have_gas_1726": ; preds = %"$out_of_gas_1725", %"$have_gas_1721" - %"$consume_1727" = sub i64 %"$gasrem_1723", 1 - store i64 %"$consume_1727", i64* @_gasrem, align 8 - %"$crowdfunding.one_msg_14" = alloca %TName_List_Message*, align 8 - %"$crowdfunding.one_msg_1728" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 - %"$crowdfunding.one_msg_fptr_1729" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1728", 0 - %"$crowdfunding.one_msg_envptr_1730" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1728", 1 - %"$msg_1731" = load i8*, i8** %msg, align 8 - %"$crowdfunding.one_msg_call_1732" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1729"(i8* %"$crowdfunding.one_msg_envptr_1730", i8* %"$msg_1731"), !dbg !161 - store %TName_List_Message* %"$crowdfunding.one_msg_call_1732", %TName_List_Message** %"$crowdfunding.one_msg_14", align 8, !dbg !161 - %"$$crowdfunding.one_msg_14_1733" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_14", align 8 - store %TName_List_Message* %"$$crowdfunding.one_msg_14_1733", %TName_List_Message** %msgs, align 8, !dbg !161 - %"$gasrem_1734" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1735" = icmp ugt i64 1, %"$gasrem_1734" - br i1 %"$gascmp_1735", label %"$out_of_gas_1736", label %"$have_gas_1737" - -"$out_of_gas_1736": ; preds = %"$have_gas_1726" - call void @_out_of_gas() - br label %"$have_gas_1737" - -"$have_gas_1737": ; preds = %"$out_of_gas_1736", %"$have_gas_1726" - %"$consume_1738" = sub i64 %"$gasrem_1734", 1 - store i64 %"$consume_1738", i64* @_gasrem, align 8 - %e3 = alloca i8*, align 8 - %"$gasrem_1739" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1740" = icmp ugt i64 1, %"$gasrem_1739" - br i1 %"$gascmp_1740", label %"$out_of_gas_1741", label %"$have_gas_1742" - -"$out_of_gas_1741": ; preds = %"$have_gas_1737" - call void @_out_of_gas() - br label %"$have_gas_1742" - -"$have_gas_1742": ; preds = %"$out_of_gas_1741", %"$have_gas_1737" - %"$consume_1743" = sub i64 %"$gasrem_1739", 1 - store i64 %"$consume_1743", i64* @_gasrem, align 8 - %"$msgobj_1744_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1744_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1744_salloc_load", i64 153) - %"$msgobj_1744_salloc" = bitcast i8* %"$msgobj_1744_salloc_salloc" to [153 x i8]* - %"$msgobj_1744" = bitcast [153 x i8]* %"$msgobj_1744_salloc" to i8* - store i8 4, i8* %"$msgobj_1744", align 1 - %"$msgobj_fname_1746" = getelementptr i8, i8* %"$msgobj_1744", i32 1 - %"$msgobj_fname_1747" = bitcast i8* %"$msgobj_fname_1746" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1745", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1747", align 8 - %"$msgobj_td_1748" = getelementptr i8, i8* %"$msgobj_1744", i32 17 - %"$msgobj_td_1749" = bitcast i8* %"$msgobj_td_1748" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1749", align 8 - %"$msgobj_v_1751" = getelementptr i8, i8* %"$msgobj_1744", i32 25 - %"$msgobj_v_1752" = bitcast i8* %"$msgobj_v_1751" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1750", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1752", align 8 - %"$msgobj_fname_1754" = getelementptr i8, i8* %"$msgobj_1744", i32 41 - %"$msgobj_fname_1755" = bitcast i8* %"$msgobj_fname_1754" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1753", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1755", align 8 - %"$msgobj_td_1756" = getelementptr i8, i8* %"$msgobj_1744", i32 57 - %"$msgobj_td_1757" = bitcast i8* %"$msgobj_td_1756" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1757", align 8 - %"$msgobj_v_1758" = getelementptr i8, i8* %"$msgobj_1744", i32 65 - %"$msgobj_v_1759" = bitcast i8* %"$msgobj_v_1758" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1759", align 1 - %"$msgobj_fname_1761" = getelementptr i8, i8* %"$msgobj_1744", i32 85 - %"$msgobj_fname_1762" = bitcast i8* %"$msgobj_fname_1761" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1760", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1762", align 8 - %"$msgobj_td_1763" = getelementptr i8, i8* %"$msgobj_1744", i32 101 - %"$msgobj_td_1764" = bitcast i8* %"$msgobj_td_1763" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1764", align 8 - %"$v_1765" = load %Uint128, %Uint128* %v, align 8 - %"$msgobj_v_1766" = getelementptr i8, i8* %"$msgobj_1744", i32 109 - %"$msgobj_v_1767" = bitcast i8* %"$msgobj_v_1766" to %Uint128* - store %Uint128 %"$v_1765", %Uint128* %"$msgobj_v_1767", align 8 - %"$msgobj_fname_1769" = getelementptr i8, i8* %"$msgobj_1744", i32 125 - %"$msgobj_fname_1770" = bitcast i8* %"$msgobj_fname_1769" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1768", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1770", align 8 - %"$msgobj_td_1771" = getelementptr i8, i8* %"$msgobj_1744", i32 141 - %"$msgobj_td_1772" = bitcast i8* %"$msgobj_td_1771" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1772", align 8 - %"$crowdfunding.reclaimed_code_1773" = load %Int32, %Int32* @crowdfunding.reclaimed_code, align 4 - %"$msgobj_v_1774" = getelementptr i8, i8* %"$msgobj_1744", i32 149 - %"$msgobj_v_1775" = bitcast i8* %"$msgobj_v_1774" to %Int32* - store %Int32 %"$crowdfunding.reclaimed_code_1773", %Int32* %"$msgobj_v_1775", align 4 - store i8* %"$msgobj_1744", i8** %e3, align 8, !dbg !162 - %"$e_1777" = load i8*, i8** %e3, align 8 - %"$_literal_cost_call_1779" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1777") - %"$gasrem_1780" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1781" = icmp ugt i64 %"$_literal_cost_call_1779", %"$gasrem_1780" - br i1 %"$gascmp_1781", label %"$out_of_gas_1782", label %"$have_gas_1783" - -"$out_of_gas_1782": ; preds = %"$have_gas_1742" - call void @_out_of_gas() - br label %"$have_gas_1783" - -"$have_gas_1783": ; preds = %"$out_of_gas_1782", %"$have_gas_1742" - %"$consume_1784" = sub i64 %"$gasrem_1780", %"$_literal_cost_call_1779" - store i64 %"$consume_1784", i64* @_gasrem, align 8 - %"$execptr_load_1785" = load i8*, i8** @_execptr, align 8 - %"$e_1786" = load i8*, i8** %e3, align 8 - call void @_event(i8* %"$execptr_load_1785", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1786"), !dbg !163 - %"$msgs_1787" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_1787_1788" = bitcast %TName_List_Message* %"$msgs_1787" to i8* - %"$_literal_cost_call_1789" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80", i8* %"$$msgs_1787_1788") - %"$gasrem_1790" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1791" = icmp ugt i64 %"$_literal_cost_call_1789", %"$gasrem_1790" - br i1 %"$gascmp_1791", label %"$out_of_gas_1792", label %"$have_gas_1793" - -"$out_of_gas_1792": ; preds = %"$have_gas_1783" - call void @_out_of_gas() - br label %"$have_gas_1793" - -"$have_gas_1793": ; preds = %"$out_of_gas_1792", %"$have_gas_1783" - %"$consume_1794" = sub i64 %"$gasrem_1790", %"$_literal_cost_call_1789" - store i64 %"$consume_1794", i64* @_gasrem, align 8 - %"$execptr_load_1795" = load i8*, i8** @_execptr, align 8 - %"$msgs_1796" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_1795", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80", %TName_List_Message* %"$msgs_1796"), !dbg !164 - br label %"$matchsucc_1587" - -"$empty_default_1591": ; preds = %"$have_gas_1585" - br label %"$matchsucc_1587" - -"$matchsucc_1587": ; preds = %"$have_gas_1793", %"$have_gas_1642", %"$empty_default_1591" - br label %"$matchsucc_1504" - -"$empty_default_1508": ; preds = %"$have_gas_1502" - br label %"$matchsucc_1504" - -"$matchsucc_1504": ; preds = %"$matchsucc_1587", %"$have_gas_1559", %"$empty_default_1508" - br label %"$matchsucc_1303" - -"$empty_default_1307": ; preds = %"$have_gas_1301" - br label %"$matchsucc_1303" - -"$matchsucc_1303": ; preds = %"$matchsucc_1504", %"$have_gas_1358", %"$empty_default_1307" +"$matchsucc_1436": ; preds = %"$have_gas_1642", %"$have_gas_1491", %"$empty_default_1440" + br label %"$matchsucc_1353" + +"$empty_default_1357": ; preds = %"$have_gas_1351" + br label %"$matchsucc_1353" + +"$matchsucc_1353": ; preds = %"$matchsucc_1436", %"$have_gas_1408", %"$empty_default_1357" + br label %"$matchsucc_1162" + +"$empty_default_1166": ; preds = %"$have_gas_1160" + br label %"$matchsucc_1162" + +"$matchsucc_1162": ; preds = %"$matchsucc_1353", %"$have_gas_1217", %"$empty_default_1166" ret void } @@ -3324,16 +3077,16 @@ declare i8* @_get(i8*, %_TyDescrTy_Typ*, i8*, i8*) declare i8* @_remove(i8*, %_TyDescrTy_Typ*, i8*, i8*) -define void @ClaimBack(i8* %0) !dbg !165 { +define void @ClaimBack(i8* %0) !dbg !155 { entry: - %"$_amount_1798" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1799" = bitcast i8* %"$_amount_1798" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1799", align 8 - %"$_origin_1800" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1801" = bitcast i8* %"$_origin_1800" to [20 x i8]* - %"$_sender_1802" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1803" = bitcast i8* %"$_sender_1802" to [20 x i8]* - call void @"$ClaimBack_1271"(%Uint128 %_amount, [20 x i8]* %"$_origin_1801", [20 x i8]* %"$_sender_1803"), !dbg !166 + %"$_amount_1647" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1648" = bitcast i8* %"$_amount_1647" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1648", align 8 + %"$_origin_1649" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1650" = bitcast i8* %"$_origin_1649" to [20 x i8]* + %"$_sender_1651" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1652" = bitcast i8* %"$_sender_1651" to [20 x i8]* + call void @"$ClaimBack_1130"(%Uint128 %_amount, [20 x i8]* %"$_origin_1650", [20 x i8]* %"$_sender_1652"), !dbg !156 ret void } @@ -3344,166 +3097,156 @@ entry: !1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) !2 = !DIFile(filename: "crowdfunding.scilla", directory: "codegen/contr") !3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_32", linkageName: "$fundef_32", scope: !2, file: !2, line: 32, type: !5, scopeLine: 32, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!4 = distinct !DISubprogram(name: "$fundef_11", linkageName: "$fundef_11", scope: !2, file: !2, line: 31, type: !5, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !5 = !DISubroutineType(types: !6) !6 = !{!7} !7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") !8 = !DILocation(line: 32, column: 15, scope: !4) !9 = !DILocation(line: 33, column: 15, scope: !4) !10 = !DILocation(line: 34, column: 5, scope: !4) -!11 = distinct !DISubprogram(name: "$fundef_30", linkageName: "$fundef_30", scope: !2, file: !2, line: 31, type: !5, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 32, column: 5, scope: !11) -!13 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !2, file: !2, line: 21, type: !5, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!14 = !DILocation(line: 21, column: 13, scope: !13) -!15 = !DILocation(line: 22, column: 5, scope: !13) -!16 = !DILocation(line: 24, column: 17, scope: !17) -!17 = distinct !DILexicalBlock(scope: !18, file: !2, line: 23, column: 7) -!18 = distinct !DILexicalBlock(scope: !13, file: !2, line: 22, column: 5) -!19 = !DILocation(line: 25, column: 7, scope: !17) -!20 = !DILocation(line: 26, column: 16, scope: !21) -!21 = distinct !DILexicalBlock(scope: !18, file: !2, line: 26, column: 7) -!22 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !2, file: !2, line: 20, type: !5, scopeLine: 20, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!23 = !DILocation(line: 21, column: 5, scope: !22) -!24 = distinct !DISubprogram(name: "$fundef_34", linkageName: "$fundef_34", scope: !2, file: !2, line: 19, type: !5, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!25 = !DILocation(line: 20, column: 3, scope: !24) -!26 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!27 = !DILocation(line: 13, column: 19, scope: !26) -!28 = !DILocation(line: 14, column: 5, scope: !26) -!29 = distinct !DISubprogram(name: "$fundef_20", linkageName: "$fundef_20", scope: !30, file: !30, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!31 = !DILocation(line: 22, column: 5, scope: !29) -!32 = !DILocation(line: 23, column: 15, scope: !33) -!33 = distinct !DILexicalBlock(scope: !34, file: !30, line: 23, column: 7) -!34 = distinct !DILexicalBlock(scope: !29, file: !30, line: 22, column: 5) -!35 = !DILocation(line: 24, column: 16, scope: !36) -!36 = distinct !DILexicalBlock(scope: !34, file: !30, line: 24, column: 7) -!37 = distinct !DISubprogram(name: "$fundef_24", linkageName: "$fundef_24", scope: !30, file: !30, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!38 = !DILocation(line: 15, column: 5, scope: !37) -!39 = !DILocation(line: 16, column: 16, scope: !40) -!40 = distinct !DILexicalBlock(scope: !41, file: !30, line: 16, column: 7) -!41 = distinct !DILexicalBlock(scope: !37, file: !30, line: 15, column: 5) -!42 = !DILocation(line: 17, column: 16, scope: !43) -!43 = distinct !DILexicalBlock(scope: !41, file: !30, line: 17, column: 7) -!44 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !30, file: !30, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!45 = !DILocation(line: 15, column: 5, scope: !44) -!46 = distinct !DISubprogram(name: "$fundef_28", linkageName: "$fundef_28", scope: !30, file: !30, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!47 = !DILocation(line: 8, column: 5, scope: !46) -!48 = !DILocation(line: 9, column: 16, scope: !49) -!49 = distinct !DILexicalBlock(scope: !50, file: !30, line: 9, column: 7) -!50 = distinct !DILexicalBlock(scope: !46, file: !30, line: 8, column: 5) -!51 = !DILocation(line: 10, column: 16, scope: !52) -!52 = distinct !DILexicalBlock(scope: !50, file: !30, line: 10, column: 7) -!53 = distinct !DISubprogram(name: "$fundef_26", linkageName: "$fundef_26", scope: !30, file: !30, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!54 = !DILocation(line: 8, column: 5, scope: !53) -!55 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !56, file: !56, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!56 = !DIFile(filename: ".", directory: ".") -!57 = !DILocation(line: 7, column: 3, scope: !55) -!58 = !DILocation(line: 14, column: 21, scope: !55) -!59 = !DILocation(line: 22, column: 5, scope: !55) -!60 = !DILocation(line: 13, column: 5, scope: !55) -!61 = !DILocation(line: 19, column: 3, scope: !55) -!62 = !DILocation(line: 31, column: 3, scope: !55) -!63 = !DILocation(line: 36, column: 21, scope: !55) -!64 = !DILocation(line: 37, column: 28, scope: !55) -!65 = !DILocation(line: 38, column: 28, scope: !55) -!66 = !DILocation(line: 39, column: 23, scope: !55) -!67 = !DILocation(line: 40, column: 23, scope: !55) -!68 = !DILocation(line: 41, column: 23, scope: !55) -!69 = !DILocation(line: 42, column: 25, scope: !55) -!70 = !DILocation(line: 43, column: 27, scope: !55) -!71 = !DILocation(line: 44, column: 22, scope: !55) -!72 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !56, file: !56, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!73 = !DILocation(line: 57, column: 39, scope: !72) -!74 = !DILocation(line: 58, column: 23, scope: !72) -!75 = distinct !DISubprogram(name: "Donate", linkageName: "Donate", scope: !2, file: !2, line: 60, type: !5, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!76 = !DILocation(line: 61, column: 3, scope: !75) -!77 = !DILocation(line: 62, column: 13, scope: !75) -!78 = !DILocation(line: 63, column: 3, scope: !75) -!79 = !DILocation(line: 65, column: 5, scope: !80) -!80 = distinct !DILexicalBlock(scope: !81, file: !2, line: 64, column: 5) -!81 = distinct !DILexicalBlock(scope: !75, file: !2, line: 63, column: 3) -!82 = !DILocation(line: 66, column: 11, scope: !80) -!83 = !DILocation(line: 67, column: 5, scope: !80) -!84 = !DILocation(line: 69, column: 11, scope: !85) -!85 = distinct !DILexicalBlock(scope: !86, file: !2, line: 68, column: 7) -!86 = distinct !DILexicalBlock(scope: !80, file: !2, line: 67, column: 5) -!87 = !DILocation(line: 70, column: 7, scope: !85) -!88 = !DILocation(line: 72, column: 7, scope: !89) -!89 = distinct !DILexicalBlock(scope: !86, file: !2, line: 71, column: 7) -!90 = !DILocation(line: 73, column: 7, scope: !89) -!91 = !DILocation(line: 74, column: 11, scope: !89) -!92 = !DILocation(line: 75, column: 7, scope: !89) -!93 = !DILocation(line: 78, column: 6, scope: !94) -!94 = distinct !DILexicalBlock(scope: !81, file: !2, line: 77, column: 5) -!95 = !DILocation(line: 79, column: 5, scope: !94) -!96 = distinct !DISubprogram(name: "Donate", linkageName: "Donate", scope: !2, file: !2, line: 60, type: !5, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!97 = !DILocation(line: 60, column: 12, scope: !96) -!98 = distinct !DISubprogram(name: "GetFunds", linkageName: "GetFunds", scope: !2, file: !2, line: 83, type: !5, scopeLine: 83, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!99 = !DILocation(line: 84, column: 14, scope: !98) -!100 = !DILocation(line: 85, column: 3, scope: !98) -!101 = !DILocation(line: 87, column: 6, scope: !102) -!102 = distinct !DILexicalBlock(scope: !103, file: !2, line: 86, column: 5) -!103 = distinct !DILexicalBlock(scope: !98, file: !2, line: 85, column: 3) -!104 = !DILocation(line: 88, column: 5, scope: !102) -!105 = !DILocation(line: 90, column: 5, scope: !106) -!106 = distinct !DILexicalBlock(scope: !103, file: !2, line: 89, column: 5) -!107 = !DILocation(line: 91, column: 15, scope: !106) -!108 = !DILocation(line: 92, column: 10, scope: !106) -!109 = !DILocation(line: 93, column: 5, scope: !106) -!110 = !DILocation(line: 94, column: 10, scope: !106) -!111 = !DILocation(line: 95, column: 10, scope: !106) -!112 = !DILocation(line: 96, column: 10, scope: !106) -!113 = !DILocation(line: 97, column: 5, scope: !106) -!114 = !DILocation(line: 99, column: 8, scope: !115) -!115 = distinct !DILexicalBlock(scope: !116, file: !2, line: 98, column: 7) -!116 = distinct !DILexicalBlock(scope: !106, file: !2, line: 97, column: 5) -!117 = !DILocation(line: 100, column: 7, scope: !115) -!118 = !DILocation(line: 102, column: 12, scope: !119) -!119 = distinct !DILexicalBlock(scope: !116, file: !2, line: 101, column: 7) -!120 = !DILocation(line: 103, column: 7, scope: !119) -!121 = !DILocation(line: 104, column: 13, scope: !119) -!122 = !DILocation(line: 105, column: 11, scope: !119) -!123 = !DILocation(line: 106, column: 8, scope: !119) -!124 = !DILocation(line: 107, column: 7, scope: !119) -!125 = !DILocation(line: 108, column: 4, scope: !119) -!126 = distinct !DISubprogram(name: "GetFunds", linkageName: "GetFunds", scope: !2, file: !2, line: 83, type: !5, scopeLine: 83, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!127 = !DILocation(line: 83, column: 12, scope: !126) -!128 = distinct !DISubprogram(name: "ClaimBack", linkageName: "ClaimBack", scope: !2, file: !2, line: 114, type: !5, scopeLine: 114, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!129 = !DILocation(line: 115, column: 3, scope: !128) -!130 = !DILocation(line: 116, column: 20, scope: !128) -!131 = !DILocation(line: 117, column: 3, scope: !128) -!132 = !DILocation(line: 119, column: 6, scope: !133) -!133 = distinct !DILexicalBlock(scope: !134, file: !2, line: 118, column: 5) -!134 = distinct !DILexicalBlock(scope: !128, file: !2, line: 117, column: 3) -!135 = !DILocation(line: 120, column: 5, scope: !133) -!136 = !DILocation(line: 122, column: 5, scope: !137) -!137 = distinct !DILexicalBlock(scope: !134, file: !2, line: 121, column: 5) -!138 = !DILocation(line: 123, column: 5, scope: !137) -!139 = !DILocation(line: 125, column: 5, scope: !137) -!140 = !DILocation(line: 126, column: 10, scope: !137) -!141 = !DILocation(line: 127, column: 10, scope: !137) -!142 = !DILocation(line: 128, column: 10, scope: !137) -!143 = !DILocation(line: 129, column: 10, scope: !137) -!144 = !DILocation(line: 130, column: 10, scope: !137) -!145 = !DILocation(line: 131, column: 5, scope: !137) -!146 = !DILocation(line: 133, column: 8, scope: !147) -!147 = distinct !DILexicalBlock(scope: !148, file: !2, line: 132, column: 7) -!148 = distinct !DILexicalBlock(scope: !137, file: !2, line: 131, column: 5) -!149 = !DILocation(line: 134, column: 7, scope: !147) -!150 = !DILocation(line: 136, column: 13, scope: !151) -!151 = distinct !DILexicalBlock(scope: !148, file: !2, line: 135, column: 7) -!152 = !DILocation(line: 137, column: 7, scope: !151) -!153 = !DILocation(line: 139, column: 10, scope: !154) -!154 = distinct !DILexicalBlock(scope: !155, file: !2, line: 138, column: 9) -!155 = distinct !DILexicalBlock(scope: !151, file: !2, line: 137, column: 7) -!156 = !DILocation(line: 140, column: 9, scope: !154) -!157 = !DILocation(line: 142, column: 15, scope: !158) -!158 = distinct !DILexicalBlock(scope: !155, file: !2, line: 141, column: 9) -!159 = !DILocation(line: 143, column: 9, scope: !158) -!160 = !DILocation(line: 144, column: 13, scope: !158) -!161 = !DILocation(line: 145, column: 13, scope: !158) -!162 = !DILocation(line: 146, column: 10, scope: !158) -!163 = !DILocation(line: 147, column: 9, scope: !158) -!164 = !DILocation(line: 148, column: 6, scope: !158) -!165 = distinct !DISubprogram(name: "ClaimBack", linkageName: "ClaimBack", scope: !2, file: !2, line: 114, type: !5, scopeLine: 114, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!166 = !DILocation(line: 114, column: 12, scope: !165) +!11 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 19, type: !5, scopeLine: 19, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!12 = !DILocation(line: 21, column: 13, scope: !11) +!13 = !DILocation(line: 22, column: 5, scope: !11) +!14 = !DILocation(line: 24, column: 17, scope: !15) +!15 = distinct !DILexicalBlock(scope: !16, file: !2, line: 23, column: 7) +!16 = distinct !DILexicalBlock(scope: !11, file: !2, line: 22, column: 5) +!17 = !DILocation(line: 25, column: 7, scope: !15) +!18 = !DILocation(line: 26, column: 16, scope: !19) +!19 = distinct !DILexicalBlock(scope: !16, file: !2, line: 26, column: 7) +!20 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!21 = !DILocation(line: 13, column: 19, scope: !20) +!22 = !DILocation(line: 14, column: 5, scope: !20) +!23 = distinct !DISubprogram(name: "$fundef_5", linkageName: "$fundef_5", scope: !24, file: !24, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!24 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!25 = !DILocation(line: 22, column: 5, scope: !23) +!26 = !DILocation(line: 23, column: 15, scope: !27) +!27 = distinct !DILexicalBlock(scope: !28, file: !24, line: 23, column: 7) +!28 = distinct !DILexicalBlock(scope: !23, file: !24, line: 22, column: 5) +!29 = !DILocation(line: 24, column: 16, scope: !30) +!30 = distinct !DILexicalBlock(scope: !28, file: !24, line: 24, column: 7) +!31 = distinct !DISubprogram(name: "$fundef_7", linkageName: "$fundef_7", scope: !24, file: !24, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!32 = !DILocation(line: 15, column: 5, scope: !31) +!33 = !DILocation(line: 16, column: 16, scope: !34) +!34 = distinct !DILexicalBlock(scope: !35, file: !24, line: 16, column: 7) +!35 = distinct !DILexicalBlock(scope: !31, file: !24, line: 15, column: 5) +!36 = !DILocation(line: 17, column: 16, scope: !37) +!37 = distinct !DILexicalBlock(scope: !35, file: !24, line: 17, column: 7) +!38 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !24, file: !24, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!39 = !DILocation(line: 8, column: 5, scope: !38) +!40 = !DILocation(line: 9, column: 16, scope: !41) +!41 = distinct !DILexicalBlock(scope: !42, file: !24, line: 9, column: 7) +!42 = distinct !DILexicalBlock(scope: !38, file: !24, line: 8, column: 5) +!43 = !DILocation(line: 10, column: 16, scope: !44) +!44 = distinct !DILexicalBlock(scope: !42, file: !24, line: 10, column: 7) +!45 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !46, file: !46, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!46 = !DIFile(filename: ".", directory: ".") +!47 = !DILocation(line: 7, column: 3, scope: !45) +!48 = !DILocation(line: 14, column: 21, scope: !45) +!49 = !DILocation(line: 22, column: 5, scope: !45) +!50 = !DILocation(line: 13, column: 5, scope: !45) +!51 = !DILocation(line: 19, column: 3, scope: !45) +!52 = !DILocation(line: 31, column: 3, scope: !45) +!53 = !DILocation(line: 36, column: 21, scope: !45) +!54 = !DILocation(line: 37, column: 28, scope: !45) +!55 = !DILocation(line: 38, column: 28, scope: !45) +!56 = !DILocation(line: 39, column: 23, scope: !45) +!57 = !DILocation(line: 40, column: 23, scope: !45) +!58 = !DILocation(line: 41, column: 23, scope: !45) +!59 = !DILocation(line: 42, column: 25, scope: !45) +!60 = !DILocation(line: 43, column: 27, scope: !45) +!61 = !DILocation(line: 44, column: 22, scope: !45) +!62 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !46, file: !46, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!63 = !DILocation(line: 57, column: 39, scope: !62) +!64 = !DILocation(line: 58, column: 23, scope: !62) +!65 = distinct !DISubprogram(name: "Donate", linkageName: "Donate", scope: !2, file: !2, line: 60, type: !5, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!66 = !DILocation(line: 61, column: 3, scope: !65) +!67 = !DILocation(line: 62, column: 13, scope: !65) +!68 = !DILocation(line: 63, column: 3, scope: !65) +!69 = !DILocation(line: 65, column: 5, scope: !70) +!70 = distinct !DILexicalBlock(scope: !71, file: !2, line: 64, column: 5) +!71 = distinct !DILexicalBlock(scope: !65, file: !2, line: 63, column: 3) +!72 = !DILocation(line: 66, column: 11, scope: !70) +!73 = !DILocation(line: 67, column: 5, scope: !70) +!74 = !DILocation(line: 69, column: 11, scope: !75) +!75 = distinct !DILexicalBlock(scope: !76, file: !2, line: 68, column: 7) +!76 = distinct !DILexicalBlock(scope: !70, file: !2, line: 67, column: 5) +!77 = !DILocation(line: 70, column: 7, scope: !75) +!78 = !DILocation(line: 72, column: 7, scope: !79) +!79 = distinct !DILexicalBlock(scope: !76, file: !2, line: 71, column: 7) +!80 = !DILocation(line: 73, column: 7, scope: !79) +!81 = !DILocation(line: 74, column: 11, scope: !79) +!82 = !DILocation(line: 75, column: 7, scope: !79) +!83 = !DILocation(line: 78, column: 6, scope: !84) +!84 = distinct !DILexicalBlock(scope: !71, file: !2, line: 77, column: 5) +!85 = !DILocation(line: 79, column: 5, scope: !84) +!86 = distinct !DISubprogram(name: "Donate", linkageName: "Donate", scope: !2, file: !2, line: 60, type: !5, scopeLine: 60, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!87 = !DILocation(line: 60, column: 12, scope: !86) +!88 = distinct !DISubprogram(name: "GetFunds", linkageName: "GetFunds", scope: !2, file: !2, line: 83, type: !5, scopeLine: 83, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!89 = !DILocation(line: 84, column: 14, scope: !88) +!90 = !DILocation(line: 85, column: 3, scope: !88) +!91 = !DILocation(line: 87, column: 6, scope: !92) +!92 = distinct !DILexicalBlock(scope: !93, file: !2, line: 86, column: 5) +!93 = distinct !DILexicalBlock(scope: !88, file: !2, line: 85, column: 3) +!94 = !DILocation(line: 88, column: 5, scope: !92) +!95 = !DILocation(line: 90, column: 5, scope: !96) +!96 = distinct !DILexicalBlock(scope: !93, file: !2, line: 89, column: 5) +!97 = !DILocation(line: 91, column: 15, scope: !96) +!98 = !DILocation(line: 92, column: 10, scope: !96) +!99 = !DILocation(line: 93, column: 5, scope: !96) +!100 = !DILocation(line: 94, column: 10, scope: !96) +!101 = !DILocation(line: 95, column: 10, scope: !96) +!102 = !DILocation(line: 96, column: 10, scope: !96) +!103 = !DILocation(line: 97, column: 5, scope: !96) +!104 = !DILocation(line: 99, column: 8, scope: !105) +!105 = distinct !DILexicalBlock(scope: !106, file: !2, line: 98, column: 7) +!106 = distinct !DILexicalBlock(scope: !96, file: !2, line: 97, column: 5) +!107 = !DILocation(line: 100, column: 7, scope: !105) +!108 = !DILocation(line: 102, column: 12, scope: !109) +!109 = distinct !DILexicalBlock(scope: !106, file: !2, line: 101, column: 7) +!110 = !DILocation(line: 103, column: 7, scope: !109) +!111 = !DILocation(line: 104, column: 13, scope: !109) +!112 = !DILocation(line: 105, column: 11, scope: !109) +!113 = !DILocation(line: 106, column: 8, scope: !109) +!114 = !DILocation(line: 107, column: 7, scope: !109) +!115 = !DILocation(line: 108, column: 4, scope: !109) +!116 = distinct !DISubprogram(name: "GetFunds", linkageName: "GetFunds", scope: !2, file: !2, line: 83, type: !5, scopeLine: 83, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!117 = !DILocation(line: 83, column: 12, scope: !116) +!118 = distinct !DISubprogram(name: "ClaimBack", linkageName: "ClaimBack", scope: !2, file: !2, line: 114, type: !5, scopeLine: 114, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!119 = !DILocation(line: 115, column: 3, scope: !118) +!120 = !DILocation(line: 116, column: 20, scope: !118) +!121 = !DILocation(line: 117, column: 3, scope: !118) +!122 = !DILocation(line: 119, column: 6, scope: !123) +!123 = distinct !DILexicalBlock(scope: !124, file: !2, line: 118, column: 5) +!124 = distinct !DILexicalBlock(scope: !118, file: !2, line: 117, column: 3) +!125 = !DILocation(line: 120, column: 5, scope: !123) +!126 = !DILocation(line: 122, column: 5, scope: !127) +!127 = distinct !DILexicalBlock(scope: !124, file: !2, line: 121, column: 5) +!128 = !DILocation(line: 123, column: 5, scope: !127) +!129 = !DILocation(line: 125, column: 5, scope: !127) +!130 = !DILocation(line: 126, column: 10, scope: !127) +!131 = !DILocation(line: 127, column: 10, scope: !127) +!132 = !DILocation(line: 128, column: 10, scope: !127) +!133 = !DILocation(line: 129, column: 10, scope: !127) +!134 = !DILocation(line: 130, column: 10, scope: !127) +!135 = !DILocation(line: 131, column: 5, scope: !127) +!136 = !DILocation(line: 133, column: 8, scope: !137) +!137 = distinct !DILexicalBlock(scope: !138, file: !2, line: 132, column: 7) +!138 = distinct !DILexicalBlock(scope: !127, file: !2, line: 131, column: 5) +!139 = !DILocation(line: 134, column: 7, scope: !137) +!140 = !DILocation(line: 136, column: 13, scope: !141) +!141 = distinct !DILexicalBlock(scope: !138, file: !2, line: 135, column: 7) +!142 = !DILocation(line: 137, column: 7, scope: !141) +!143 = !DILocation(line: 139, column: 10, scope: !144) +!144 = distinct !DILexicalBlock(scope: !145, file: !2, line: 138, column: 9) +!145 = distinct !DILexicalBlock(scope: !141, file: !2, line: 137, column: 7) +!146 = !DILocation(line: 140, column: 9, scope: !144) +!147 = !DILocation(line: 142, column: 15, scope: !148) +!148 = distinct !DILexicalBlock(scope: !145, file: !2, line: 141, column: 9) +!149 = !DILocation(line: 143, column: 9, scope: !148) +!150 = !DILocation(line: 144, column: 13, scope: !148) +!151 = !DILocation(line: 145, column: 13, scope: !148) +!152 = !DILocation(line: 146, column: 10, scope: !148) +!153 = !DILocation(line: 147, column: 9, scope: !148) +!154 = !DILocation(line: 148, column: 6, scope: !148) +!155 = distinct !DISubprogram(name: "ClaimBack", linkageName: "ClaimBack", scope: !2, file: !2, line: 114, type: !5, scopeLine: 114, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!156 = !DILocation(line: 114, column: 12, scope: !155) diff --git a/tests/codegen/contr/dgold/event.scilla.gold b/tests/codegen/contr/dgold/event.scilla.gold index e6fdba28..d72a3df7 100644 --- a/tests/codegen/contr/dgold/event.scilla.gold +++ b/tests/codegen/contr/dgold/event.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'Event' source_filename = "Event" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_0" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/helloWorld.scilla.gold b/tests/codegen/contr/dgold/helloWorld.scilla.gold index ba55c86e..e02187d9 100644 --- a/tests/codegen/contr/dgold/helloWorld.scilla.gold +++ b/tests/codegen/contr/dgold/helloWorld.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001918 ; ModuleID = 'HelloWorld' source_filename = "HelloWorld" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/map_corners_test.scilla.gold b/tests/codegen/contr/dgold/map_corners_test.scilla.gold index 798f5c7e..4a96932c 100644 --- a/tests/codegen/contr/dgold/map_corners_test.scilla.gold +++ b/tests/codegen/contr/dgold/map_corners_test.scilla.gold @@ -3,27 +3,26 @@ ; gas_remaining: 4001999 ; ModuleID = 'MapCornersTest' source_filename = "MapCornersTest" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_32" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_24" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_64" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_63"** } +%"$TyDescrTy_ADTTyp_56" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_55"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_63" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_65"**, %"$TyDescrTy_ADTTyp_64"* } -%"$TyDescrTy_ADTTyp_Constr_65" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$TyDescr_MapTyp_70" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } -%"$TyDescr_AddrTyp_75" = type { i32, %"$TyDescr_AddrFieldTyp_74"* } -%"$TyDescr_AddrFieldTyp_74" = type { %TyDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_55" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_57"**, %"$TyDescrTy_ADTTyp_56"* } +%"$TyDescrTy_ADTTyp_Constr_57" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$TyDescr_MapTyp_62" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } +%"$TyDescr_AddrTyp_67" = type { i32, %"$TyDescr_AddrFieldTyp_66"* } +%"$TyDescr_AddrFieldTyp_66" = type { %TyDescrString, %_TyDescrTy_Typ* } %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_4876" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_4838" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_4877" = type { %ParamDescrString, i32, %"$ParamDescr_4876"* } -%"$$fundef_25_env_123" = type { %TName_Bool* } -%"$$fundef_23_env_124" = type {} +%"$TransDescr_4839" = type { %ParamDescrString, i32, %"$ParamDescr_4838"* } +%"$$fundef_17_env_115" = type {} %String = type { i8*, i32 } %Map_String_String = type { %String, %String } %"Map_String_Map_(String)_(String)" = type { %String, %Map_String_String* } @@ -41,597 +40,566 @@ target triple = "x86_64-unknown-linux-gnu" @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_33" = global %"$TyDescrTy_PrimTyp_32" zeroinitializer -@"$TyDescr_Int32_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Int32_Prim_33" to i8*) } -@"$TyDescr_Uint32_Prim_35" = global %"$TyDescrTy_PrimTyp_32" { i32 1, i32 0 } -@"$TyDescr_Uint32_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Uint32_Prim_35" to i8*) } -@"$TyDescr_Int64_Prim_37" = global %"$TyDescrTy_PrimTyp_32" { i32 0, i32 1 } -@"$TyDescr_Int64_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Int64_Prim_37" to i8*) } -@"$TyDescr_Uint64_Prim_39" = global %"$TyDescrTy_PrimTyp_32" { i32 1, i32 1 } -@"$TyDescr_Uint64_40" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Uint64_Prim_39" to i8*) } -@"$TyDescr_Int128_Prim_41" = global %"$TyDescrTy_PrimTyp_32" { i32 0, i32 2 } -@"$TyDescr_Int128_42" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Int128_Prim_41" to i8*) } -@"$TyDescr_Uint128_Prim_43" = global %"$TyDescrTy_PrimTyp_32" { i32 1, i32 2 } -@"$TyDescr_Uint128_44" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Uint128_Prim_43" to i8*) } -@"$TyDescr_Int256_Prim_45" = global %"$TyDescrTy_PrimTyp_32" { i32 0, i32 3 } -@"$TyDescr_Int256_46" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Int256_Prim_45" to i8*) } -@"$TyDescr_Uint256_Prim_47" = global %"$TyDescrTy_PrimTyp_32" { i32 1, i32 3 } -@"$TyDescr_Uint256_48" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Uint256_Prim_47" to i8*) } -@"$TyDescr_String_Prim_49" = global %"$TyDescrTy_PrimTyp_32" { i32 2, i32 0 } -@"$TyDescr_String_50" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_String_Prim_49" to i8*) } -@"$TyDescr_Bnum_Prim_51" = global %"$TyDescrTy_PrimTyp_32" { i32 3, i32 0 } -@"$TyDescr_Bnum_52" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Bnum_Prim_51" to i8*) } -@"$TyDescr_Message_Prim_53" = global %"$TyDescrTy_PrimTyp_32" { i32 4, i32 0 } -@"$TyDescr_Message_54" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Message_Prim_53" to i8*) } -@"$TyDescr_Event_Prim_55" = global %"$TyDescrTy_PrimTyp_32" { i32 5, i32 0 } -@"$TyDescr_Event_56" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Event_Prim_55" to i8*) } -@"$TyDescr_Exception_Prim_57" = global %"$TyDescrTy_PrimTyp_32" { i32 6, i32 0 } -@"$TyDescr_Exception_58" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Exception_Prim_57" to i8*) } -@"$TyDescr_Bystr_Prim_59" = global %"$TyDescrTy_PrimTyp_32" { i32 7, i32 0 } -@"$TyDescr_Bystr_60" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Bystr_Prim_59" to i8*) } -@"$TyDescr_Bystr20_Prim_61" = global %"$TyDescrTy_PrimTyp_32" { i32 8, i32 20 } -@"$TyDescr_Bystr20_62" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Bystr20_Prim_61" to i8*) } -@"$TyDescr_ADT_Option_Map_(String)_(Map_(String)_(String))_66" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_86" to i8*) } -@"$TyDescr_ADT_Option_Map_(String)_(String)_67" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_95" to i8*) } -@"$TyDescr_ADT_Option_String_68" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_String_ADTTyp_Specl_104" to i8*) } -@"$TyDescr_ADT_Bool_69" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Bool_ADTTyp_Specl_116" to i8*) } -@"$TyDescr_Map_71" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_70"* @"$TyDescr_MapTyp_119" to i8*) } -@"$TyDescr_Map_72" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_70"* @"$TyDescr_MapTyp_120" to i8*) } -@"$TyDescr_Map_73" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_70"* @"$TyDescr_MapTyp_121" to i8*) } -@"$TyDescr_Addr_76" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_75"* @"$TyDescr_AddrFields_122" to i8*) } -@"$TyDescr_Option_ADTTyp_77" = unnamed_addr constant %"$TyDescrTy_ADTTyp_64" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_106", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 3, %"$TyDescrTy_ADTTyp_Specl_63"** getelementptr inbounds ([3 x %"$TyDescrTy_ADTTyp_Specl_63"*], [3 x %"$TyDescrTy_ADTTyp_Specl_63"*]* @"$TyDescr_Option_ADTTyp_m_specls_105", i32 0, i32 0) } -@"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_Constr_m_args_78" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_72"] -@"$TyDescr_ADT_Some_79" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_80" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_79", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_Constr_m_args_78", i32 0, i32 0) } -@"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_Constr_m_args_81" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_82" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_83" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_82", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_Constr_m_args_81", i32 0, i32 0) } -@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_constrs_84" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_65"*] [%"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_80", %"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_83"] -@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_TArgs_85" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_72"] -@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_86" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_63" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_TArgs_85", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_65"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_65"*], [2 x %"$TyDescrTy_ADTTyp_Constr_65"*]* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_constrs_84", i32 0, i32 0), %"$TyDescrTy_ADTTyp_64"* @"$TyDescr_Option_ADTTyp_77" } -@"$TyDescr_Option_Some_Map_(String)_(String)_Constr_m_args_87" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_73"] -@"$TyDescr_ADT_Some_88" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_Map_(String)_(String)_ADTTyp_Constr_89" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_88", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(String)_(String)_Constr_m_args_87", i32 0, i32 0) } -@"$TyDescr_Option_None_Map_(String)_(String)_Constr_m_args_90" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_91" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_Map_(String)_(String)_ADTTyp_Constr_92" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_91", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(String)_(String)_Constr_m_args_90", i32 0, i32 0) } -@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_constrs_93" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_65"*] [%"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_Some_Map_(String)_(String)_ADTTyp_Constr_89", %"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_None_Map_(String)_(String)_ADTTyp_Constr_92"] -@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_TArgs_94" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_73"] -@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_95" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_63" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_TArgs_94", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_65"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_65"*], [2 x %"$TyDescrTy_ADTTyp_Constr_65"*]* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_constrs_93", i32 0, i32 0), %"$TyDescrTy_ADTTyp_64"* @"$TyDescr_Option_ADTTyp_77" } -@"$TyDescr_Option_Some_String_Constr_m_args_96" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_50"] -@"$TyDescr_ADT_Some_97" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_String_ADTTyp_Constr_98" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_97", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_String_Constr_m_args_96", i32 0, i32 0) } -@"$TyDescr_Option_None_String_Constr_m_args_99" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_100" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_String_ADTTyp_Constr_101" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_100", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_String_Constr_m_args_99", i32 0, i32 0) } -@"$TyDescr_Option_String_ADTTyp_Specl_m_constrs_102" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_65"*] [%"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_Some_String_ADTTyp_Constr_98", %"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_None_String_ADTTyp_Constr_101"] -@"$TyDescr_Option_String_ADTTyp_Specl_m_TArgs_103" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_50"] -@"$TyDescr_Option_String_ADTTyp_Specl_104" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_63" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_String_ADTTyp_Specl_m_TArgs_103", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_65"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_65"*], [2 x %"$TyDescrTy_ADTTyp_Constr_65"*]* @"$TyDescr_Option_String_ADTTyp_Specl_m_constrs_102", i32 0, i32 0), %"$TyDescrTy_ADTTyp_64"* @"$TyDescr_Option_ADTTyp_77" } -@"$TyDescr_Option_ADTTyp_m_specls_105" = unnamed_addr constant [3 x %"$TyDescrTy_ADTTyp_Specl_63"*] [%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_86", %"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_95", %"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_String_ADTTyp_Specl_104"] -@"$TyDescr_ADT_Option_106" = unnamed_addr constant [6 x i8] c"Option" -@"$TyDescr_Bool_ADTTyp_107" = unnamed_addr constant %"$TyDescrTy_ADTTyp_64" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_118", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_63"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_63"*], [1 x %"$TyDescrTy_ADTTyp_Specl_63"*]* @"$TyDescr_Bool_ADTTyp_m_specls_117", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_108" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_109" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_110" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_109", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_108", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_111" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_112" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_113" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_112", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_111", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_114" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_65"*] [%"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Bool_True_ADTTyp_Constr_110", %"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Bool_False_ADTTyp_Constr_113"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_115" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_116" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_63" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_115", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_65"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_65"*], [2 x %"$TyDescrTy_ADTTyp_Constr_65"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_114", i32 0, i32 0), %"$TyDescrTy_ADTTyp_64"* @"$TyDescr_Bool_ADTTyp_107" } -@"$TyDescr_Bool_ADTTyp_m_specls_117" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_63"*] [%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Bool_ADTTyp_Specl_116"] -@"$TyDescr_ADT_Bool_118" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_MapTyp_119" = unnamed_addr constant %"$TyDescr_MapTyp_70" { %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ* @"$TyDescr_Map_72" } -@"$TyDescr_MapTyp_120" = unnamed_addr constant %"$TyDescr_MapTyp_70" { %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ* @"$TyDescr_Map_73" } -@"$TyDescr_MapTyp_121" = unnamed_addr constant %"$TyDescr_MapTyp_70" { %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ* @"$TyDescr_String_50" } -@"$TyDescr_AddrFields_122" = unnamed_addr constant %"$TyDescr_AddrTyp_75" { i32 -1, %"$TyDescr_AddrFieldTyp_74"* null } -@BoolUtils.andb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer +@"$TyDescr_Int32_Prim_25" = global %"$TyDescrTy_PrimTyp_24" zeroinitializer +@"$TyDescr_Int32_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int32_Prim_25" to i8*) } +@"$TyDescr_Uint32_Prim_27" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 0 } +@"$TyDescr_Uint32_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint32_Prim_27" to i8*) } +@"$TyDescr_Int64_Prim_29" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 1 } +@"$TyDescr_Int64_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int64_Prim_29" to i8*) } +@"$TyDescr_Uint64_Prim_31" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 1 } +@"$TyDescr_Uint64_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint64_Prim_31" to i8*) } +@"$TyDescr_Int128_Prim_33" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 2 } +@"$TyDescr_Int128_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int128_Prim_33" to i8*) } +@"$TyDescr_Uint128_Prim_35" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 2 } +@"$TyDescr_Uint128_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint128_Prim_35" to i8*) } +@"$TyDescr_Int256_Prim_37" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 3 } +@"$TyDescr_Int256_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int256_Prim_37" to i8*) } +@"$TyDescr_Uint256_Prim_39" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 3 } +@"$TyDescr_Uint256_40" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint256_Prim_39" to i8*) } +@"$TyDescr_String_Prim_41" = global %"$TyDescrTy_PrimTyp_24" { i32 2, i32 0 } +@"$TyDescr_String_42" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_String_Prim_41" to i8*) } +@"$TyDescr_Bnum_Prim_43" = global %"$TyDescrTy_PrimTyp_24" { i32 3, i32 0 } +@"$TyDescr_Bnum_44" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bnum_Prim_43" to i8*) } +@"$TyDescr_Message_Prim_45" = global %"$TyDescrTy_PrimTyp_24" { i32 4, i32 0 } +@"$TyDescr_Message_46" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Message_Prim_45" to i8*) } +@"$TyDescr_Event_Prim_47" = global %"$TyDescrTy_PrimTyp_24" { i32 5, i32 0 } +@"$TyDescr_Event_48" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Event_Prim_47" to i8*) } +@"$TyDescr_Exception_Prim_49" = global %"$TyDescrTy_PrimTyp_24" { i32 6, i32 0 } +@"$TyDescr_Exception_50" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Exception_Prim_49" to i8*) } +@"$TyDescr_Bystr_Prim_51" = global %"$TyDescrTy_PrimTyp_24" { i32 7, i32 0 } +@"$TyDescr_Bystr_52" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bystr_Prim_51" to i8*) } +@"$TyDescr_Bystr20_Prim_53" = global %"$TyDescrTy_PrimTyp_24" { i32 8, i32 20 } +@"$TyDescr_Bystr20_54" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bystr20_Prim_53" to i8*) } +@"$TyDescr_ADT_Option_Map_(String)_(Map_(String)_(String))_58" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_78" to i8*) } +@"$TyDescr_ADT_Option_Map_(String)_(String)_59" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_87" to i8*) } +@"$TyDescr_ADT_Option_String_60" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_String_ADTTyp_Specl_96" to i8*) } +@"$TyDescr_ADT_Bool_61" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Bool_ADTTyp_Specl_108" to i8*) } +@"$TyDescr_Map_63" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_62"* @"$TyDescr_MapTyp_111" to i8*) } +@"$TyDescr_Map_64" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_62"* @"$TyDescr_MapTyp_112" to i8*) } +@"$TyDescr_Map_65" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_62"* @"$TyDescr_MapTyp_113" to i8*) } +@"$TyDescr_Addr_68" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_67"* @"$TyDescr_AddrFields_114" to i8*) } +@"$TyDescr_Option_ADTTyp_69" = unnamed_addr constant %"$TyDescrTy_ADTTyp_56" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_98", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 3, %"$TyDescrTy_ADTTyp_Specl_55"** getelementptr inbounds ([3 x %"$TyDescrTy_ADTTyp_Specl_55"*], [3 x %"$TyDescrTy_ADTTyp_Specl_55"*]* @"$TyDescr_Option_ADTTyp_m_specls_97", i32 0, i32 0) } +@"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_Constr_m_args_70" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_64"] +@"$TyDescr_ADT_Some_71" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_72" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_71", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_Constr_m_args_70", i32 0, i32 0) } +@"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_Constr_m_args_73" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_74" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_75" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_74", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_Constr_m_args_73", i32 0, i32 0) } +@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_constrs_76" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_57"*] [%"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_72", %"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_75"] +@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_TArgs_77" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_64"] +@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_78" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_55" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_TArgs_77", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_57"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_57"*], [2 x %"$TyDescrTy_ADTTyp_Constr_57"*]* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_constrs_76", i32 0, i32 0), %"$TyDescrTy_ADTTyp_56"* @"$TyDescr_Option_ADTTyp_69" } +@"$TyDescr_Option_Some_Map_(String)_(String)_Constr_m_args_79" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_65"] +@"$TyDescr_ADT_Some_80" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_Map_(String)_(String)_ADTTyp_Constr_81" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_80", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(String)_(String)_Constr_m_args_79", i32 0, i32 0) } +@"$TyDescr_Option_None_Map_(String)_(String)_Constr_m_args_82" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_83" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_Map_(String)_(String)_ADTTyp_Constr_84" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_83", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(String)_(String)_Constr_m_args_82", i32 0, i32 0) } +@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_constrs_85" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_57"*] [%"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_Some_Map_(String)_(String)_ADTTyp_Constr_81", %"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_None_Map_(String)_(String)_ADTTyp_Constr_84"] +@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_TArgs_86" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_65"] +@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_87" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_55" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_TArgs_86", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_57"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_57"*], [2 x %"$TyDescrTy_ADTTyp_Constr_57"*]* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_constrs_85", i32 0, i32 0), %"$TyDescrTy_ADTTyp_56"* @"$TyDescr_Option_ADTTyp_69" } +@"$TyDescr_Option_Some_String_Constr_m_args_88" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_42"] +@"$TyDescr_ADT_Some_89" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_String_ADTTyp_Constr_90" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_89", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_String_Constr_m_args_88", i32 0, i32 0) } +@"$TyDescr_Option_None_String_Constr_m_args_91" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_92" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_String_ADTTyp_Constr_93" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_92", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_String_Constr_m_args_91", i32 0, i32 0) } +@"$TyDescr_Option_String_ADTTyp_Specl_m_constrs_94" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_57"*] [%"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_Some_String_ADTTyp_Constr_90", %"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_None_String_ADTTyp_Constr_93"] +@"$TyDescr_Option_String_ADTTyp_Specl_m_TArgs_95" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_42"] +@"$TyDescr_Option_String_ADTTyp_Specl_96" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_55" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_String_ADTTyp_Specl_m_TArgs_95", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_57"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_57"*], [2 x %"$TyDescrTy_ADTTyp_Constr_57"*]* @"$TyDescr_Option_String_ADTTyp_Specl_m_constrs_94", i32 0, i32 0), %"$TyDescrTy_ADTTyp_56"* @"$TyDescr_Option_ADTTyp_69" } +@"$TyDescr_Option_ADTTyp_m_specls_97" = unnamed_addr constant [3 x %"$TyDescrTy_ADTTyp_Specl_55"*] [%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_78", %"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_87", %"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_String_ADTTyp_Specl_96"] +@"$TyDescr_ADT_Option_98" = unnamed_addr constant [6 x i8] c"Option" +@"$TyDescr_Bool_ADTTyp_99" = unnamed_addr constant %"$TyDescrTy_ADTTyp_56" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_110", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_55"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_55"*], [1 x %"$TyDescrTy_ADTTyp_Specl_55"*]* @"$TyDescr_Bool_ADTTyp_m_specls_109", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_100" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_101" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_102" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_101", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_100", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_103" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_104" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_105" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_104", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_103", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_106" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_57"*] [%"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Bool_True_ADTTyp_Constr_102", %"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Bool_False_ADTTyp_Constr_105"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_107" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_108" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_55" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_107", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_57"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_57"*], [2 x %"$TyDescrTy_ADTTyp_Constr_57"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_106", i32 0, i32 0), %"$TyDescrTy_ADTTyp_56"* @"$TyDescr_Bool_ADTTyp_99" } +@"$TyDescr_Bool_ADTTyp_m_specls_109" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_55"*] [%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Bool_ADTTyp_Specl_108"] +@"$TyDescr_ADT_Bool_110" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_MapTyp_111" = unnamed_addr constant %"$TyDescr_MapTyp_62" { %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ* @"$TyDescr_Map_64" } +@"$TyDescr_MapTyp_112" = unnamed_addr constant %"$TyDescr_MapTyp_62" { %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ* @"$TyDescr_Map_65" } +@"$TyDescr_MapTyp_113" = unnamed_addr constant %"$TyDescr_MapTyp_62" { %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ* @"$TyDescr_String_42" } +@"$TyDescr_AddrFields_114" = unnamed_addr constant %"$TyDescr_AddrTyp_67" { i32 -1, %"$TyDescr_AddrFieldTyp_66"* null } +@BoolUtils.andb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null -@"$stringlit_179" = unnamed_addr constant [3 x i8] c"420" -@"$f_s1_181" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$f_m1_194" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$f_m2_206" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m3_218" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$f_m_230" = unnamed_addr constant [4 x i8] c"f_m\00" -@"$stringlit_247" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_252" = unnamed_addr constant [11 x i8] c"Test Failed" -@"$stringlit_255" = unnamed_addr constant [9 x i8] c"test_name" -@"$stringlit_287" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_292" = unnamed_addr constant [11 x i8] c"Test Failed" -@"$stringlit_295" = unnamed_addr constant [9 x i8] c"test_name" -@"$stringlit_302" = unnamed_addr constant [7 x i8] c"message" -@"$stringlit_333" = unnamed_addr constant [2 x i8] c"t1" -@"$f_s1_334" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$stringlit_359" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_416" = unnamed_addr constant [3 x i8] c"421" -@"$f_s1_427" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$stringlit_451" = unnamed_addr constant [2 x i8] c"t2" -@"$f_s1_452" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$stringlit_477" = unnamed_addr constant [3 x i8] c"421" -@"$stringlit_534" = unnamed_addr constant [4 x i8] c"key1" -@"$stringlit_545" = unnamed_addr constant [3 x i8] c"420" -@"$f_m1_560" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_584" = unnamed_addr constant [2 x i8] c"t3" -@"$stringlit_595" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_606" = unnamed_addr constant [4 x i8] c"key1" -@"$f_m1_610" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_684" = unnamed_addr constant [23 x i8] c"Incorrect value for key" -@"$stringlit_716" = unnamed_addr constant [4 x i8] c"key2" -@"$f_m1_720" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_758" = unnamed_addr constant [25 x i8] c"Rogue value found for key" -@"$f_m1_779" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_800" = unnamed_addr constant [2 x i8] c"t4" -@"$stringlit_811" = unnamed_addr constant [4 x i8] c"key1" -@"$f_m1_815" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_861" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_872" = unnamed_addr constant [5 x i8] c"key2a" -@"$stringlit_883" = unnamed_addr constant [3 x i8] c"420" -@"$f_m2_900" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_924" = unnamed_addr constant [2 x i8] c"t5" -@"$stringlit_935" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_946" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_957" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_963" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1039" = unnamed_addr constant [23 x i8] c"Incorrect value fetched" -@"$stringlit_1087" = unnamed_addr constant [5 x i8] c"key2b" -@"$stringlit_1098" = unnamed_addr constant [3 x i8] c"840" -@"$stringlit_1134" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_1145" = unnamed_addr constant [3 x i8] c"841" -@"$stringlit_1176" = unnamed_addr constant [5 x i8] c"key1b" -@"$f_m2_1190" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1213" = unnamed_addr constant [2 x i8] c"t6" -@"$stringlit_1224" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_1235" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_1241" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1279" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_1328" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" -@"$stringlit_1350" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" -@"$stringlit_1370" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_1381" = unnamed_addr constant [5 x i8] c"key2b" -@"$f_m2_1387" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1425" = unnamed_addr constant [3 x i8] c"840" -@"$stringlit_1474" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2b" -@"$stringlit_1496" = unnamed_addr constant [21 x i8] c"key1b,key2b not found" -@"$stringlit_1516" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_1527" = unnamed_addr constant [5 x i8] c"key2c" -@"$f_m2_1533" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1571" = unnamed_addr constant [3 x i8] c"841" -@"$stringlit_1620" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" -@"$stringlit_1642" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" -@"$f_m2_1661" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1682" = unnamed_addr constant [2 x i8] c"t7" -@"$stringlit_1693" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_1704" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_1710" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1748" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_1797" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" -@"$stringlit_1819" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" -@"$stringlit_1839" = unnamed_addr constant [5 x i8] c"key1b" -@"$f_m2_1843" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1881" = unnamed_addr constant [36 x i8] c"Fail: deleted value for key1b found!" -@"$stringlit_1903" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_1914" = unnamed_addr constant [5 x i8] c"key2b" -@"$f_m2_1920" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1958" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2b found!" -@"$stringlit_1980" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_1991" = unnamed_addr constant [5 x i8] c"key2d" -@"$f_m2_1997" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2035" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2d found!" -@"$stringlit_2057" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_2068" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_2079" = unnamed_addr constant [3 x i8] c"121" -@"$f_m2_2096" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2120" = unnamed_addr constant [2 x i8] c"t8" -@"$stringlit_2131" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_2142" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_2148" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2186" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_2235" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" -@"$stringlit_2257" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" -@"$stringlit_2277" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_2288" = unnamed_addr constant [5 x i8] c"key2c" -@"$f_m2_2294" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2332" = unnamed_addr constant [3 x i8] c"121" -@"$stringlit_2381" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" -@"$stringlit_2403" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" -@"$f_m1_2435" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2458" = unnamed_addr constant [2 x i8] c"t9" -@"$f_m1_2459" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2545" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_2556" = unnamed_addr constant [3 x i8] c"420" -@"$f_m1_2591" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2614" = unnamed_addr constant [3 x i8] c"t10" -@"$stringlit_2625" = unnamed_addr constant [5 x i8] c"key1a" -@"$f_m1_2626" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2684" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_2733" = unnamed_addr constant [25 x i8] c"Incorrect value for key1a" -@"$stringlit_2755" = unnamed_addr constant [15 x i8] c"key1a not found" -@"$f_m1_2774" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2795" = unnamed_addr constant [3 x i8] c"t11" -@"$f_m1_2796" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$f_m2_2894" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2917" = unnamed_addr constant [3 x i8] c"t12" -@"$f_m2_2918" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_3017" = unnamed_addr constant [5 x i8] c"key1a" -@"$f_m2_3031" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_3054" = unnamed_addr constant [3 x i8] c"t13" -@"$stringlit_3065" = unnamed_addr constant [5 x i8] c"key1a" -@"$f_m2_3069" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_3159" = unnamed_addr constant [29 x i8] c"Submap should have been empty" -@"$stringlit_3207" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m3_3286" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$stringlit_3309" = unnamed_addr constant [3 x i8] c"t14" -@"$f_m3_3310" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$f_m_3408" = unnamed_addr constant [4 x i8] c"f_m\00" -@"$stringlit_3431" = unnamed_addr constant [3 x i8] c"t15" -@"$f_m3_3432" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$stringlit_3510" = unnamed_addr constant [22 x i8] c"Incorrect size of f_m3" -@"$stringlit_3530" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_3541" = unnamed_addr constant [5 x i8] c"key2a" -@"$stringlit_3708" = unnamed_addr constant [36 x i8] c"Incorrect size of f_m3[key1a][key2a]" -@"$stringlit_3730" = unnamed_addr constant [19 x i8] c"Unexpected empty m1" -@"$stringlit_3752" = unnamed_addr constant [28 x i8] c"Incorrect size of f_m3[key1]" -@"$stringlit_3774" = unnamed_addr constant [19 x i8] c"Unexpected empty m2" -@"$stringlit_3794" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_3805" = unnamed_addr constant [5 x i8] c"key2b" -@"$stringlit_3816" = unnamed_addr constant [5 x i8] c"key1c" -@"$stringlit_3827" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_3838" = unnamed_addr constant [5 x i8] c"key1d" -@"$stringlit_3849" = unnamed_addr constant [5 x i8] c"key2d" -@"$stringlit_3860" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_3871" = unnamed_addr constant [3 x i8] c"421" -@"$stringlit_3882" = unnamed_addr constant [3 x i8] c"422" -@"$stringlit_3893" = unnamed_addr constant [3 x i8] c"423" -@"$f_m2_4136" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_4159" = unnamed_addr constant [3 x i8] c"t16" -@"$stringlit_4170" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_4181" = unnamed_addr constant [5 x i8] c"key2a" -@"$stringlit_4192" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_4203" = unnamed_addr constant [5 x i8] c"key2b" -@"$stringlit_4214" = unnamed_addr constant [5 x i8] c"key1c" -@"$stringlit_4225" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_4236" = unnamed_addr constant [5 x i8] c"key1d" -@"$stringlit_4247" = unnamed_addr constant [5 x i8] c"key2d" -@"$f_m2_4253" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m2_4272" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m2_4291" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m2_4310" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_4334" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_4345" = unnamed_addr constant [3 x i8] c"421" -@"$stringlit_4356" = unnamed_addr constant [3 x i8] c"422" -@"$stringlit_4367" = unnamed_addr constant [3 x i8] c"423" -@"$stringlit_4660" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_4671" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_156" = unnamed_addr constant [3 x i8] c"420" +@"$f_s1_158" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$f_m1_171" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$f_m2_183" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m3_195" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$f_m_207" = unnamed_addr constant [4 x i8] c"f_m\00" +@"$stringlit_224" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_229" = unnamed_addr constant [11 x i8] c"Test Failed" +@"$stringlit_232" = unnamed_addr constant [9 x i8] c"test_name" +@"$stringlit_264" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_269" = unnamed_addr constant [11 x i8] c"Test Failed" +@"$stringlit_272" = unnamed_addr constant [9 x i8] c"test_name" +@"$stringlit_279" = unnamed_addr constant [7 x i8] c"message" +@"$stringlit_310" = unnamed_addr constant [2 x i8] c"t1" +@"$f_s1_311" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$stringlit_336" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_393" = unnamed_addr constant [3 x i8] c"421" +@"$f_s1_404" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$stringlit_428" = unnamed_addr constant [2 x i8] c"t2" +@"$f_s1_429" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$stringlit_454" = unnamed_addr constant [3 x i8] c"421" +@"$stringlit_511" = unnamed_addr constant [4 x i8] c"key1" +@"$stringlit_522" = unnamed_addr constant [3 x i8] c"420" +@"$f_m1_537" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_561" = unnamed_addr constant [2 x i8] c"t3" +@"$stringlit_572" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_583" = unnamed_addr constant [4 x i8] c"key1" +@"$f_m1_587" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_661" = unnamed_addr constant [23 x i8] c"Incorrect value for key" +@"$stringlit_693" = unnamed_addr constant [4 x i8] c"key2" +@"$f_m1_697" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_735" = unnamed_addr constant [25 x i8] c"Rogue value found for key" +@"$f_m1_756" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_777" = unnamed_addr constant [2 x i8] c"t4" +@"$stringlit_788" = unnamed_addr constant [4 x i8] c"key1" +@"$f_m1_792" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_838" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_849" = unnamed_addr constant [5 x i8] c"key2a" +@"$stringlit_860" = unnamed_addr constant [3 x i8] c"420" +@"$f_m2_877" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_901" = unnamed_addr constant [2 x i8] c"t5" +@"$stringlit_912" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_923" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_934" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_940" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1016" = unnamed_addr constant [23 x i8] c"Incorrect value fetched" +@"$stringlit_1064" = unnamed_addr constant [5 x i8] c"key2b" +@"$stringlit_1075" = unnamed_addr constant [3 x i8] c"840" +@"$stringlit_1111" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_1122" = unnamed_addr constant [3 x i8] c"841" +@"$stringlit_1153" = unnamed_addr constant [5 x i8] c"key1b" +@"$f_m2_1167" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1190" = unnamed_addr constant [2 x i8] c"t6" +@"$stringlit_1201" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_1212" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_1218" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1256" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_1305" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" +@"$stringlit_1327" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" +@"$stringlit_1347" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_1358" = unnamed_addr constant [5 x i8] c"key2b" +@"$f_m2_1364" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1402" = unnamed_addr constant [3 x i8] c"840" +@"$stringlit_1451" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2b" +@"$stringlit_1473" = unnamed_addr constant [21 x i8] c"key1b,key2b not found" +@"$stringlit_1493" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_1504" = unnamed_addr constant [5 x i8] c"key2c" +@"$f_m2_1510" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1548" = unnamed_addr constant [3 x i8] c"841" +@"$stringlit_1597" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" +@"$stringlit_1619" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" +@"$f_m2_1638" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1659" = unnamed_addr constant [2 x i8] c"t7" +@"$stringlit_1670" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_1681" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_1687" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1725" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_1774" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" +@"$stringlit_1796" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" +@"$stringlit_1816" = unnamed_addr constant [5 x i8] c"key1b" +@"$f_m2_1820" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1858" = unnamed_addr constant [36 x i8] c"Fail: deleted value for key1b found!" +@"$stringlit_1880" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_1891" = unnamed_addr constant [5 x i8] c"key2b" +@"$f_m2_1897" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1935" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2b found!" +@"$stringlit_1957" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_1968" = unnamed_addr constant [5 x i8] c"key2d" +@"$f_m2_1974" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2012" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2d found!" +@"$stringlit_2034" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_2045" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_2056" = unnamed_addr constant [3 x i8] c"121" +@"$f_m2_2073" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2097" = unnamed_addr constant [2 x i8] c"t8" +@"$stringlit_2108" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_2119" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_2125" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2163" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_2212" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" +@"$stringlit_2234" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" +@"$stringlit_2254" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_2265" = unnamed_addr constant [5 x i8] c"key2c" +@"$f_m2_2271" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2309" = unnamed_addr constant [3 x i8] c"121" +@"$stringlit_2358" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" +@"$stringlit_2380" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" +@"$f_m1_2412" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2435" = unnamed_addr constant [2 x i8] c"t9" +@"$f_m1_2436" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2522" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_2533" = unnamed_addr constant [3 x i8] c"420" +@"$f_m1_2568" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2591" = unnamed_addr constant [3 x i8] c"t10" +@"$stringlit_2602" = unnamed_addr constant [5 x i8] c"key1a" +@"$f_m1_2603" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2661" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_2710" = unnamed_addr constant [25 x i8] c"Incorrect value for key1a" +@"$stringlit_2732" = unnamed_addr constant [15 x i8] c"key1a not found" +@"$f_m1_2751" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2772" = unnamed_addr constant [3 x i8] c"t11" +@"$f_m1_2773" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$f_m2_2871" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2894" = unnamed_addr constant [3 x i8] c"t12" +@"$f_m2_2895" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2994" = unnamed_addr constant [5 x i8] c"key1a" +@"$f_m2_3008" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_3031" = unnamed_addr constant [3 x i8] c"t13" +@"$stringlit_3042" = unnamed_addr constant [5 x i8] c"key1a" +@"$f_m2_3046" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_3136" = unnamed_addr constant [29 x i8] c"Submap should have been empty" +@"$stringlit_3184" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m3_3263" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$stringlit_3286" = unnamed_addr constant [3 x i8] c"t14" +@"$f_m3_3287" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$f_m_3385" = unnamed_addr constant [4 x i8] c"f_m\00" +@"$stringlit_3408" = unnamed_addr constant [3 x i8] c"t15" +@"$f_m3_3409" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$stringlit_3487" = unnamed_addr constant [22 x i8] c"Incorrect size of f_m3" +@"$stringlit_3507" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_3518" = unnamed_addr constant [5 x i8] c"key2a" +@"$stringlit_3685" = unnamed_addr constant [36 x i8] c"Incorrect size of f_m3[key1a][key2a]" +@"$stringlit_3707" = unnamed_addr constant [19 x i8] c"Unexpected empty m1" +@"$stringlit_3729" = unnamed_addr constant [28 x i8] c"Incorrect size of f_m3[key1]" +@"$stringlit_3751" = unnamed_addr constant [19 x i8] c"Unexpected empty m2" +@"$stringlit_3771" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_3782" = unnamed_addr constant [5 x i8] c"key2b" +@"$stringlit_3793" = unnamed_addr constant [5 x i8] c"key1c" +@"$stringlit_3804" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_3815" = unnamed_addr constant [5 x i8] c"key1d" +@"$stringlit_3826" = unnamed_addr constant [5 x i8] c"key2d" +@"$stringlit_3837" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_3848" = unnamed_addr constant [3 x i8] c"421" +@"$stringlit_3859" = unnamed_addr constant [3 x i8] c"422" +@"$stringlit_3870" = unnamed_addr constant [3 x i8] c"423" +@"$f_m2_4113" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_4136" = unnamed_addr constant [3 x i8] c"t16" +@"$stringlit_4147" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_4158" = unnamed_addr constant [5 x i8] c"key2a" +@"$stringlit_4169" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_4180" = unnamed_addr constant [5 x i8] c"key2b" +@"$stringlit_4191" = unnamed_addr constant [5 x i8] c"key1c" +@"$stringlit_4202" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_4213" = unnamed_addr constant [5 x i8] c"key1d" +@"$stringlit_4224" = unnamed_addr constant [5 x i8] c"key2d" +@"$f_m2_4230" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m2_4249" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m2_4268" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m2_4287" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_4311" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_4322" = unnamed_addr constant [3 x i8] c"421" +@"$stringlit_4333" = unnamed_addr constant [3 x i8] c"422" +@"$stringlit_4344" = unnamed_addr constant [3 x i8] c"423" +@"$stringlit_4622" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_4633" = unnamed_addr constant [3 x i8] c"420" +@"$f_m1_4676" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_4699" = unnamed_addr constant [3 x i8] c"t17" +@"$stringlit_4710" = unnamed_addr constant [0 x i8] zeroinitializer @"$f_m1_4714" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_4737" = unnamed_addr constant [3 x i8] c"t17" -@"$stringlit_4748" = unnamed_addr constant [0 x i8] zeroinitializer -@"$f_m1_4752" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$f_m1_4797" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_4818" = unnamed_addr constant [3 x i8] c"t18" -@"$stringlit_4829" = unnamed_addr constant [0 x i8] zeroinitializer -@"$f_m1_4833" = unnamed_addr constant [5 x i8] c"f_m1\00" -@_tydescr_table = constant [23 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_73", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_67", %_TyDescrTy_Typ* @"$TyDescr_Event_56", %_TyDescrTy_Typ* @"$TyDescr_Int64_38", %_TyDescrTy_Typ* @"$TyDescr_Addr_76", %_TyDescrTy_Typ* @"$TyDescr_Map_71", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_69", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_62", %_TyDescrTy_Typ* @"$TyDescr_Uint256_48", %_TyDescrTy_Typ* @"$TyDescr_Uint32_36", %_TyDescrTy_Typ* @"$TyDescr_Map_72", %_TyDescrTy_Typ* @"$TyDescr_Uint64_40", %_TyDescrTy_Typ* @"$TyDescr_Bnum_52", %_TyDescrTy_Typ* @"$TyDescr_Uint128_44", %_TyDescrTy_Typ* @"$TyDescr_Exception_58", %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(Map_(String)_(String))_66", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", %_TyDescrTy_Typ* @"$TyDescr_Int256_46", %_TyDescrTy_Typ* @"$TyDescr_Int128_42", %_TyDescrTy_Typ* @"$TyDescr_Bystr_60", %_TyDescrTy_Typ* @"$TyDescr_Message_54", %_TyDescrTy_Typ* @"$TyDescr_Int32_34"] +@"$f_m1_4759" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_4780" = unnamed_addr constant [3 x i8] c"t18" +@"$stringlit_4791" = unnamed_addr constant [0 x i8] zeroinitializer +@"$f_m1_4795" = unnamed_addr constant [5 x i8] c"f_m1\00" +@_tydescr_table = constant [23 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_65", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_59", %_TyDescrTy_Typ* @"$TyDescr_Event_48", %_TyDescrTy_Typ* @"$TyDescr_Int64_30", %_TyDescrTy_Typ* @"$TyDescr_Addr_68", %_TyDescrTy_Typ* @"$TyDescr_Map_63", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_61", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54", %_TyDescrTy_Typ* @"$TyDescr_Uint256_40", %_TyDescrTy_Typ* @"$TyDescr_Uint32_28", %_TyDescrTy_Typ* @"$TyDescr_Map_64", %_TyDescrTy_Typ* @"$TyDescr_Uint64_32", %_TyDescrTy_Typ* @"$TyDescr_Bnum_44", %_TyDescrTy_Typ* @"$TyDescr_Uint128_36", %_TyDescrTy_Typ* @"$TyDescr_Exception_50", %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(Map_(String)_(String))_58", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", %_TyDescrTy_Typ* @"$TyDescr_Int256_38", %_TyDescrTy_Typ* @"$TyDescr_Int128_34", %_TyDescrTy_Typ* @"$TyDescr_Bystr_52", %_TyDescrTy_Typ* @"$TyDescr_Message_46", %_TyDescrTy_Typ* @"$TyDescr_Int32_26"] @_tydescr_table_length = constant i32 23 -@"$pname__scilla_version_4878" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_4879" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_4880" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_4878", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_36" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_4879", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_62" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_4880", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_52" }] +@"$pname__scilla_version_4840" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_4841" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_4842" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_4840", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_28" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_4841", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_4842", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_44" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_4881" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4882" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4883" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t1_4884" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4881", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4882", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4883", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t1_4885" = unnamed_addr constant [2 x i8] c"t1" -@"$tpname__amount_4886" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4887" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4888" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t2_4889" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4886", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4887", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4888", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t2_4890" = unnamed_addr constant [2 x i8] c"t2" -@"$tpname__amount_4891" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4892" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4893" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t3_4894" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4891", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4892", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4893", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t3_4895" = unnamed_addr constant [2 x i8] c"t3" -@"$tpname__amount_4896" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4897" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4898" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t4_4899" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4896", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4897", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4898", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t4_4900" = unnamed_addr constant [2 x i8] c"t4" -@"$tpname__amount_4901" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4902" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4903" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t5_4904" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4901", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4902", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4903", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t5_4905" = unnamed_addr constant [2 x i8] c"t5" -@"$tpname__amount_4906" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4907" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4908" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t6_4909" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4906", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4907", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4908", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t6_4910" = unnamed_addr constant [2 x i8] c"t6" -@"$tpname__amount_4911" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4912" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4913" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t7_4914" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4911", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4912", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4913", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t7_4915" = unnamed_addr constant [2 x i8] c"t7" -@"$tpname__amount_4916" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4917" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4918" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t8_4919" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4916", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4917", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4918", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t8_4920" = unnamed_addr constant [2 x i8] c"t8" -@"$tpname__amount_4921" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4922" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4923" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t9_4924" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4921", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4922", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4923", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t9_4925" = unnamed_addr constant [2 x i8] c"t9" -@"$tpname__amount_4926" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4927" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4928" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t10_4929" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4926", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4927", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4928", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t10_4930" = unnamed_addr constant [3 x i8] c"t10" -@"$tpname__amount_4931" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4932" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4933" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t11_4934" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4931", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4932", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4933", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t11_4935" = unnamed_addr constant [3 x i8] c"t11" -@"$tpname__amount_4936" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4937" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4938" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t12_4939" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4936", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4937", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4938", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t12_4940" = unnamed_addr constant [3 x i8] c"t12" -@"$tpname__amount_4941" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4942" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4943" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t13_4944" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4941", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4942", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4943", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t13_4945" = unnamed_addr constant [3 x i8] c"t13" -@"$tpname__amount_4946" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4947" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4948" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t14_4949" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4946", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4947", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4948", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t14_4950" = unnamed_addr constant [3 x i8] c"t14" -@"$tpname__amount_4951" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4952" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4953" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t15_4954" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4951", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4952", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4953", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t15_4955" = unnamed_addr constant [3 x i8] c"t15" -@"$tpname__amount_4956" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4957" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4958" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t16_4959" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4956", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4957", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4958", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t16_4960" = unnamed_addr constant [3 x i8] c"t16" -@"$tpname__amount_4961" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4962" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4963" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t17_4964" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4961", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4962", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4963", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t17_4965" = unnamed_addr constant [3 x i8] c"t17" -@"$tpname__amount_4966" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4967" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4968" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t18_4969" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4966", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4967", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4968", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t18_4970" = unnamed_addr constant [3 x i8] c"t18" -@_transition_parameters = constant [18 x %"$TransDescr_4877"] [%"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_4885", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t1_4884", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t2_4890", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t2_4889", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t3_4895", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t3_4894", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t4_4900", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t4_4899", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t5_4905", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t5_4904", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t6_4910", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t6_4909", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t7_4915", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t7_4914", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t8_4920", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t8_4919", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t9_4925", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t9_4924", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t10_4930", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t10_4929", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t11_4935", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t11_4934", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t12_4940", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t12_4939", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t13_4945", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t13_4944", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t14_4950", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t14_4949", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t15_4955", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t15_4954", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t16_4960", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t16_4959", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t17_4965", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t17_4964", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t18_4970", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t18_4969", i32 0, i32 0) }] +@"$tpname__amount_4843" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4844" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4845" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t1_4846" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4843", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4844", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4845", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t1_4847" = unnamed_addr constant [2 x i8] c"t1" +@"$tpname__amount_4848" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4849" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4850" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t2_4851" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4848", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4849", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4850", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t2_4852" = unnamed_addr constant [2 x i8] c"t2" +@"$tpname__amount_4853" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4854" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4855" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t3_4856" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4853", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4854", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4855", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t3_4857" = unnamed_addr constant [2 x i8] c"t3" +@"$tpname__amount_4858" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4859" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4860" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t4_4861" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4858", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4859", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4860", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t4_4862" = unnamed_addr constant [2 x i8] c"t4" +@"$tpname__amount_4863" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4864" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4865" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t5_4866" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4863", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4864", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4865", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t5_4867" = unnamed_addr constant [2 x i8] c"t5" +@"$tpname__amount_4868" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4869" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4870" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t6_4871" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4868", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4869", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4870", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t6_4872" = unnamed_addr constant [2 x i8] c"t6" +@"$tpname__amount_4873" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4874" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4875" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t7_4876" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4873", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4874", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4875", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t7_4877" = unnamed_addr constant [2 x i8] c"t7" +@"$tpname__amount_4878" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4879" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4880" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t8_4881" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4878", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4879", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4880", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t8_4882" = unnamed_addr constant [2 x i8] c"t8" +@"$tpname__amount_4883" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4884" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4885" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t9_4886" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4883", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4884", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4885", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t9_4887" = unnamed_addr constant [2 x i8] c"t9" +@"$tpname__amount_4888" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4889" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4890" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t10_4891" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4888", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4889", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4890", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t10_4892" = unnamed_addr constant [3 x i8] c"t10" +@"$tpname__amount_4893" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4894" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4895" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t11_4896" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4893", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4894", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4895", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t11_4897" = unnamed_addr constant [3 x i8] c"t11" +@"$tpname__amount_4898" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4899" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4900" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t12_4901" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4898", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4899", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4900", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t12_4902" = unnamed_addr constant [3 x i8] c"t12" +@"$tpname__amount_4903" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4904" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4905" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t13_4906" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4903", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4904", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4905", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t13_4907" = unnamed_addr constant [3 x i8] c"t13" +@"$tpname__amount_4908" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4909" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4910" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t14_4911" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4908", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4909", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4910", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t14_4912" = unnamed_addr constant [3 x i8] c"t14" +@"$tpname__amount_4913" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4914" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4915" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t15_4916" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4913", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4914", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4915", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t15_4917" = unnamed_addr constant [3 x i8] c"t15" +@"$tpname__amount_4918" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4919" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4920" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t16_4921" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4918", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4919", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4920", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t16_4922" = unnamed_addr constant [3 x i8] c"t16" +@"$tpname__amount_4923" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4924" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4925" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t17_4926" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4923", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4924", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4925", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t17_4927" = unnamed_addr constant [3 x i8] c"t17" +@"$tpname__amount_4928" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4929" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4930" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t18_4931" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4928", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4929", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4930", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t18_4932" = unnamed_addr constant [3 x i8] c"t18" +@_transition_parameters = constant [18 x %"$TransDescr_4839"] [%"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_4847", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t1_4846", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t2_4852", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t2_4851", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t3_4857", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t3_4856", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t4_4862", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t4_4861", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t5_4867", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t5_4866", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t6_4872", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t6_4871", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t7_4877", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t7_4876", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t8_4882", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t8_4881", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t9_4887", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t9_4886", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t10_4892", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t10_4891", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t11_4897", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t11_4896", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t12_4902", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t12_4901", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t13_4907", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t13_4906", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t14_4912", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t14_4911", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t15_4917", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t15_4916", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t16_4922", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t16_4921", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t17_4927", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t17_4926", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t18_4932", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t18_4931", i32 0, i32 0) }] @_transition_parameters_length = constant i32 18 -define internal %TName_Bool* @"$fundef_25"(%"$$fundef_25_env_123"* %0, %TName_Bool* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_17"(%"$$fundef_17_env_115"* %0, %TName_Bool* %1, %TName_Bool* %2) !dbg !4 { entry: - %"$$fundef_25_env_b_136" = getelementptr inbounds %"$$fundef_25_env_123", %"$$fundef_25_env_123"* %0, i32 0, i32 0 - %"$b_envload_137" = load %TName_Bool*, %TName_Bool** %"$$fundef_25_env_b_136", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_137", %TName_Bool** %b, align 8 - %"$retval_26" = alloca %TName_Bool*, align 8 - %"$gasrem_138" = load i64, i64* @_gasrem, align 8 - %"$gascmp_139" = icmp ugt i64 2, %"$gasrem_138" - br i1 %"$gascmp_139", label %"$out_of_gas_140", label %"$have_gas_141" - -"$out_of_gas_140": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_141" - -"$have_gas_141": ; preds = %"$out_of_gas_140", %entry - %"$consume_142" = sub i64 %"$gasrem_138", 2 - store i64 %"$consume_142", i64* @_gasrem, align 8 - %"$b_144" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_145" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_144", i32 0, i32 0 - %"$b_tag_146" = load i8, i8* %"$b_tag_145", align 1 - switch i8 %"$b_tag_146", label %"$empty_default_147" [ - i8 1, label %"$False_148" - i8 0, label %"$True_158" + %"$retval_18" = alloca %TName_Bool*, align 8 + %"$gasrem_116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_117" = icmp ugt i64 2, %"$gasrem_116" + br i1 %"$gascmp_117", label %"$out_of_gas_118", label %"$have_gas_119" + +"$out_of_gas_118": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_119" + +"$have_gas_119": ; preds = %"$out_of_gas_118", %entry + %"$consume_120" = sub i64 %"$gasrem_116", 2 + store i64 %"$consume_120", i64* @_gasrem, align 8 + %"$b_tag_122" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_123" = load i8, i8* %"$b_tag_122", align 1 + switch i8 %"$b_tag_123", label %"$empty_default_124" [ + i8 1, label %"$False_125" + i8 0, label %"$True_135" ], !dbg !9 -"$False_148": ; preds = %"$have_gas_141" - %"$b_149" = bitcast %TName_Bool* %"$b_144" to %CName_False* - %"$gasrem_150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_151" = icmp ugt i64 1, %"$gasrem_150" - br i1 %"$gascmp_151", label %"$out_of_gas_152", label %"$have_gas_153" - -"$out_of_gas_152": ; preds = %"$False_148" - call void @_out_of_gas() - br label %"$have_gas_153" - -"$have_gas_153": ; preds = %"$out_of_gas_152", %"$False_148" - %"$consume_154" = sub i64 %"$gasrem_150", 1 - store i64 %"$consume_154", i64* @_gasrem, align 8 - %"$adtval_155_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_155_salloc" = call i8* @_salloc(i8* %"$adtval_155_load", i64 1) - %"$adtval_155" = bitcast i8* %"$adtval_155_salloc" to %CName_False* - %"$adtgep_156" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_155", i32 0, i32 0 - store i8 1, i8* %"$adtgep_156", align 1 - %"$adtptr_157" = bitcast %CName_False* %"$adtval_155" to %TName_Bool* - store %TName_Bool* %"$adtptr_157", %TName_Bool** %"$retval_26", align 8, !dbg !10 - br label %"$matchsucc_143" - -"$True_158": ; preds = %"$have_gas_141" - %"$b_159" = bitcast %TName_Bool* %"$b_144" to %CName_True* - %"$gasrem_160" = load i64, i64* @_gasrem, align 8 - %"$gascmp_161" = icmp ugt i64 1, %"$gasrem_160" - br i1 %"$gascmp_161", label %"$out_of_gas_162", label %"$have_gas_163" - -"$out_of_gas_162": ; preds = %"$True_158" - call void @_out_of_gas() - br label %"$have_gas_163" - -"$have_gas_163": ; preds = %"$out_of_gas_162", %"$True_158" - %"$consume_164" = sub i64 %"$gasrem_160", 1 - store i64 %"$consume_164", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_26", align 8, !dbg !13 - br label %"$matchsucc_143" - -"$empty_default_147": ; preds = %"$have_gas_141" - br label %"$matchsucc_143" - -"$matchsucc_143": ; preds = %"$have_gas_163", %"$have_gas_153", %"$empty_default_147" - %"$$retval_26_165" = load %TName_Bool*, %TName_Bool** %"$retval_26", align 8 - ret %TName_Bool* %"$$retval_26_165" -} - -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_23"(%"$$fundef_23_env_124"* %0, %TName_Bool* %1) !dbg !15 { -entry: - %"$retval_24" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_125" = load i64, i64* @_gasrem, align 8 - %"$gascmp_126" = icmp ugt i64 1, %"$gasrem_125" - br i1 %"$gascmp_126", label %"$out_of_gas_127", label %"$have_gas_128" - -"$out_of_gas_127": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_128" - -"$have_gas_128": ; preds = %"$out_of_gas_127", %entry - %"$consume_129" = sub i64 %"$gasrem_125", 1 - store i64 %"$consume_129", i64* @_gasrem, align 8 - %"$$fundef_25_envp_130_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_25_envp_130_salloc" = call i8* @_salloc(i8* %"$$fundef_25_envp_130_load", i64 8) - %"$$fundef_25_envp_130" = bitcast i8* %"$$fundef_25_envp_130_salloc" to %"$$fundef_25_env_123"* - %"$$fundef_25_env_voidp_132" = bitcast %"$$fundef_25_env_123"* %"$$fundef_25_envp_130" to i8* - %"$$fundef_25_cloval_133" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_25_env_123"*, %TName_Bool*)* @"$fundef_25" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_25_env_voidp_132", 1 - %"$$fundef_25_env_b_134" = getelementptr inbounds %"$$fundef_25_env_123", %"$$fundef_25_env_123"* %"$$fundef_25_envp_130", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_25_env_b_134", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_25_cloval_133", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_24", align 8, !dbg !16 - %"$$retval_24_135" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_24", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_24_135" +"$False_125": ; preds = %"$have_gas_119" + %"$b_126" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_127" = load i64, i64* @_gasrem, align 8 + %"$gascmp_128" = icmp ugt i64 1, %"$gasrem_127" + br i1 %"$gascmp_128", label %"$out_of_gas_129", label %"$have_gas_130" + +"$out_of_gas_129": ; preds = %"$False_125" + call void @_out_of_gas() + br label %"$have_gas_130" + +"$have_gas_130": ; preds = %"$out_of_gas_129", %"$False_125" + %"$consume_131" = sub i64 %"$gasrem_127", 1 + store i64 %"$consume_131", i64* @_gasrem, align 8 + %"$adtval_132_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_132_salloc" = call i8* @_salloc(i8* %"$adtval_132_load", i64 1) + %"$adtval_132" = bitcast i8* %"$adtval_132_salloc" to %CName_False* + %"$adtgep_133" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_132", i32 0, i32 0 + store i8 1, i8* %"$adtgep_133", align 1 + %"$adtptr_134" = bitcast %CName_False* %"$adtval_132" to %TName_Bool* + store %TName_Bool* %"$adtptr_134", %TName_Bool** %"$retval_18", align 8, !dbg !10 + br label %"$matchsucc_121" + +"$True_135": ; preds = %"$have_gas_119" + %"$b_136" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_137" = load i64, i64* @_gasrem, align 8 + %"$gascmp_138" = icmp ugt i64 1, %"$gasrem_137" + br i1 %"$gascmp_138", label %"$out_of_gas_139", label %"$have_gas_140" + +"$out_of_gas_139": ; preds = %"$True_135" + call void @_out_of_gas() + br label %"$have_gas_140" + +"$have_gas_140": ; preds = %"$out_of_gas_139", %"$True_135" + %"$consume_141" = sub i64 %"$gasrem_137", 1 + store i64 %"$consume_141", i64* @_gasrem, align 8 + store %TName_Bool* %2, %TName_Bool** %"$retval_18", align 8, !dbg !13 + br label %"$matchsucc_121" + +"$empty_default_124": ; preds = %"$have_gas_119" + br label %"$matchsucc_121" + +"$matchsucc_121": ; preds = %"$have_gas_140", %"$have_gas_130", %"$empty_default_124" + %"$$retval_18_142" = load %TName_Bool*, %TName_Bool** %"$retval_18", align 8 + ret %TName_Bool* %"$$retval_18_142" } declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !17 { +define void @_init_libs() !dbg !15 { entry: - %"$gasrem_166" = load i64, i64* @_gasrem, align 8 - %"$gascmp_167" = icmp ugt i64 1, %"$gasrem_166" - br i1 %"$gascmp_167", label %"$out_of_gas_168", label %"$have_gas_169" + %"$gasrem_143" = load i64, i64* @_gasrem, align 8 + %"$gascmp_144" = icmp ugt i64 2, %"$gasrem_143" + br i1 %"$gascmp_144", label %"$out_of_gas_145", label %"$have_gas_146" -"$out_of_gas_168": ; preds = %entry +"$out_of_gas_145": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_169" + br label %"$have_gas_146" -"$have_gas_169": ; preds = %"$out_of_gas_168", %entry - %"$consume_170" = sub i64 %"$gasrem_166", 1 - store i64 %"$consume_170", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_23_env_124"*, %TName_Bool*)* @"$fundef_23" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8, !dbg !19 +"$have_gas_146": ; preds = %"$out_of_gas_145", %entry + %"$consume_147" = sub i64 %"$gasrem_143", 2 + store i64 %"$consume_147", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_17_env_115"*, %TName_Bool*, %TName_Bool*)* @"$fundef_17" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8, !dbg !17 ret void } -define void @_init_state() !dbg !20 { +define void @_init_state() !dbg !18 { entry: - %"$f_s1_27" = alloca %String, align 8 + %"$f_s1_19" = alloca %String, align 8 + %"$gasrem_151" = load i64, i64* @_gasrem, align 8 + %"$gascmp_152" = icmp ugt i64 1, %"$gasrem_151" + br i1 %"$gascmp_152", label %"$out_of_gas_153", label %"$have_gas_154" + +"$out_of_gas_153": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_154" + +"$have_gas_154": ; preds = %"$out_of_gas_153", %entry + %"$consume_155" = sub i64 %"$gasrem_151", 1 + store i64 %"$consume_155", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_156", i32 0, i32 0), i32 3 }, %String* %"$f_s1_19", align 8, !dbg !19 + %"$execptr_load_157" = load i8*, i8** @_execptr, align 8 + %"$$f_s1_19_159" = load %String, %String* %"$f_s1_19", align 8 + %"$update_value_160" = alloca %String, align 8 + store %String %"$$f_s1_19_159", %String* %"$update_value_160", align 8 + %"$update_value_161" = bitcast %String* %"$update_value_160" to i8* + call void @_update_field(i8* %"$execptr_load_157", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_158", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_42", i32 0, i8* null, i8* %"$update_value_161"), !dbg !19 + %"$f_m1_20" = alloca %Map_String_String*, align 8 + %"$gasrem_162" = load i64, i64* @_gasrem, align 8 + %"$gascmp_163" = icmp ugt i64 1, %"$gasrem_162" + br i1 %"$gascmp_163", label %"$out_of_gas_164", label %"$have_gas_165" + +"$out_of_gas_164": ; preds = %"$have_gas_154" + call void @_out_of_gas() + br label %"$have_gas_165" + +"$have_gas_165": ; preds = %"$out_of_gas_164", %"$have_gas_154" + %"$consume_166" = sub i64 %"$gasrem_162", 1 + store i64 %"$consume_166", i64* @_gasrem, align 8 + %"$execptr_load_167" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_168" = call i8* @_new_empty_map(i8* %"$execptr_load_167") + %"$_new_empty_map_169" = bitcast i8* %"$_new_empty_map_call_168" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_169", %Map_String_String** %"$f_m1_20", align 8, !dbg !20 + %"$execptr_load_170" = load i8*, i8** @_execptr, align 8 + %"$$f_m1_20_172" = load %Map_String_String*, %Map_String_String** %"$f_m1_20", align 8 + %"$update_value_173" = bitcast %Map_String_String* %"$$f_m1_20_172" to i8* + call void @_update_field(i8* %"$execptr_load_170", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_171", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i8* %"$update_value_173"), !dbg !20 + %"$f_m2_21" = alloca %"Map_String_Map_(String)_(String)"*, align 8 %"$gasrem_174" = load i64, i64* @_gasrem, align 8 %"$gascmp_175" = icmp ugt i64 1, %"$gasrem_174" br i1 %"$gascmp_175", label %"$out_of_gas_176", label %"$have_gas_177" -"$out_of_gas_176": ; preds = %entry +"$out_of_gas_176": ; preds = %"$have_gas_165" call void @_out_of_gas() br label %"$have_gas_177" -"$have_gas_177": ; preds = %"$out_of_gas_176", %entry +"$have_gas_177": ; preds = %"$out_of_gas_176", %"$have_gas_165" %"$consume_178" = sub i64 %"$gasrem_174", 1 store i64 %"$consume_178", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_179", i32 0, i32 0), i32 3 }, %String* %"$f_s1_27", align 8, !dbg !21 - %"$execptr_load_180" = load i8*, i8** @_execptr, align 8 - %"$$f_s1_27_182" = load %String, %String* %"$f_s1_27", align 8 - %"$update_value_183" = alloca %String, align 8 - store %String %"$$f_s1_27_182", %String* %"$update_value_183", align 8 - %"$update_value_184" = bitcast %String* %"$update_value_183" to i8* - call void @_update_field(i8* %"$execptr_load_180", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_181", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_50", i32 0, i8* null, i8* %"$update_value_184"), !dbg !21 - %"$f_m1_28" = alloca %Map_String_String*, align 8 - %"$gasrem_185" = load i64, i64* @_gasrem, align 8 - %"$gascmp_186" = icmp ugt i64 1, %"$gasrem_185" - br i1 %"$gascmp_186", label %"$out_of_gas_187", label %"$have_gas_188" - -"$out_of_gas_187": ; preds = %"$have_gas_177" - call void @_out_of_gas() - br label %"$have_gas_188" - -"$have_gas_188": ; preds = %"$out_of_gas_187", %"$have_gas_177" - %"$consume_189" = sub i64 %"$gasrem_185", 1 - store i64 %"$consume_189", i64* @_gasrem, align 8 - %"$execptr_load_190" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_191" = call i8* @_new_empty_map(i8* %"$execptr_load_190") - %"$_new_empty_map_192" = bitcast i8* %"$_new_empty_map_call_191" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_192", %Map_String_String** %"$f_m1_28", align 8, !dbg !22 - %"$execptr_load_193" = load i8*, i8** @_execptr, align 8 - %"$$f_m1_28_195" = load %Map_String_String*, %Map_String_String** %"$f_m1_28", align 8 - %"$update_value_196" = bitcast %Map_String_String* %"$$f_m1_28_195" to i8* - call void @_update_field(i8* %"$execptr_load_193", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_194", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i8* %"$update_value_196"), !dbg !22 - %"$f_m2_29" = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_197" = load i64, i64* @_gasrem, align 8 - %"$gascmp_198" = icmp ugt i64 1, %"$gasrem_197" - br i1 %"$gascmp_198", label %"$out_of_gas_199", label %"$have_gas_200" - -"$out_of_gas_199": ; preds = %"$have_gas_188" - call void @_out_of_gas() - br label %"$have_gas_200" - -"$have_gas_200": ; preds = %"$out_of_gas_199", %"$have_gas_188" - %"$consume_201" = sub i64 %"$gasrem_197", 1 - store i64 %"$consume_201", i64* @_gasrem, align 8 - %"$execptr_load_202" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_203" = call i8* @_new_empty_map(i8* %"$execptr_load_202") - %"$_new_empty_map_204" = bitcast i8* %"$_new_empty_map_call_203" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_204", %"Map_String_Map_(String)_(String)"** %"$f_m2_29", align 8, !dbg !23 - %"$execptr_load_205" = load i8*, i8** @_execptr, align 8 - %"$$f_m2_29_207" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m2_29", align 8 - %"$update_value_208" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m2_29_207" to i8* - call void @_update_field(i8* %"$execptr_load_205", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_206", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i8* %"$update_value_208"), !dbg !23 - %"$f_m3_30" = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$gasrem_209" = load i64, i64* @_gasrem, align 8 - %"$gascmp_210" = icmp ugt i64 1, %"$gasrem_209" - br i1 %"$gascmp_210", label %"$out_of_gas_211", label %"$have_gas_212" - -"$out_of_gas_211": ; preds = %"$have_gas_200" - call void @_out_of_gas() - br label %"$have_gas_212" - -"$have_gas_212": ; preds = %"$out_of_gas_211", %"$have_gas_200" - %"$consume_213" = sub i64 %"$gasrem_209", 1 - store i64 %"$consume_213", i64* @_gasrem, align 8 - %"$execptr_load_214" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_215" = call i8* @_new_empty_map(i8* %"$execptr_load_214") - %"$_new_empty_map_216" = bitcast i8* %"$_new_empty_map_call_215" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_216", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_30", align 8, !dbg !24 - %"$execptr_load_217" = load i8*, i8** @_execptr, align 8 - %"$$f_m3_30_219" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_30", align 8 - %"$update_value_220" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$f_m3_30_219" to i8* - call void @_update_field(i8* %"$execptr_load_217", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_218", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_71", i32 0, i8* null, i8* %"$update_value_220"), !dbg !24 - %"$f_m_31" = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_221" = load i64, i64* @_gasrem, align 8 - %"$gascmp_222" = icmp ugt i64 1, %"$gasrem_221" - br i1 %"$gascmp_222", label %"$out_of_gas_223", label %"$have_gas_224" - -"$out_of_gas_223": ; preds = %"$have_gas_212" - call void @_out_of_gas() - br label %"$have_gas_224" - -"$have_gas_224": ; preds = %"$out_of_gas_223", %"$have_gas_212" - %"$consume_225" = sub i64 %"$gasrem_221", 1 - store i64 %"$consume_225", i64* @_gasrem, align 8 - %"$execptr_load_226" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_227" = call i8* @_new_empty_map(i8* %"$execptr_load_226") - %"$_new_empty_map_228" = bitcast i8* %"$_new_empty_map_call_227" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_228", %"Map_String_Map_(String)_(String)"** %"$f_m_31", align 8, !dbg !25 - %"$execptr_load_229" = load i8*, i8** @_execptr, align 8 - %"$$f_m_31_231" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m_31", align 8 - %"$update_value_232" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m_31_231" to i8* - call void @_update_field(i8* %"$execptr_load_229", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_230", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i8* %"$update_value_232"), !dbg !25 + %"$execptr_load_179" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_180" = call i8* @_new_empty_map(i8* %"$execptr_load_179") + %"$_new_empty_map_181" = bitcast i8* %"$_new_empty_map_call_180" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_181", %"Map_String_Map_(String)_(String)"** %"$f_m2_21", align 8, !dbg !21 + %"$execptr_load_182" = load i8*, i8** @_execptr, align 8 + %"$$f_m2_21_184" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m2_21", align 8 + %"$update_value_185" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m2_21_184" to i8* + call void @_update_field(i8* %"$execptr_load_182", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_183", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i8* %"$update_value_185"), !dbg !21 + %"$f_m3_22" = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 + %"$gasrem_186" = load i64, i64* @_gasrem, align 8 + %"$gascmp_187" = icmp ugt i64 1, %"$gasrem_186" + br i1 %"$gascmp_187", label %"$out_of_gas_188", label %"$have_gas_189" + +"$out_of_gas_188": ; preds = %"$have_gas_177" + call void @_out_of_gas() + br label %"$have_gas_189" + +"$have_gas_189": ; preds = %"$out_of_gas_188", %"$have_gas_177" + %"$consume_190" = sub i64 %"$gasrem_186", 1 + store i64 %"$consume_190", i64* @_gasrem, align 8 + %"$execptr_load_191" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_192" = call i8* @_new_empty_map(i8* %"$execptr_load_191") + %"$_new_empty_map_193" = bitcast i8* %"$_new_empty_map_call_192" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_193", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_22", align 8, !dbg !22 + %"$execptr_load_194" = load i8*, i8** @_execptr, align 8 + %"$$f_m3_22_196" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_22", align 8 + %"$update_value_197" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$f_m3_22_196" to i8* + call void @_update_field(i8* %"$execptr_load_194", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_195", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_63", i32 0, i8* null, i8* %"$update_value_197"), !dbg !22 + %"$f_m_23" = alloca %"Map_String_Map_(String)_(String)"*, align 8 + %"$gasrem_198" = load i64, i64* @_gasrem, align 8 + %"$gascmp_199" = icmp ugt i64 1, %"$gasrem_198" + br i1 %"$gascmp_199", label %"$out_of_gas_200", label %"$have_gas_201" + +"$out_of_gas_200": ; preds = %"$have_gas_189" + call void @_out_of_gas() + br label %"$have_gas_201" + +"$have_gas_201": ; preds = %"$out_of_gas_200", %"$have_gas_189" + %"$consume_202" = sub i64 %"$gasrem_198", 1 + store i64 %"$consume_202", i64* @_gasrem, align 8 + %"$execptr_load_203" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_204" = call i8* @_new_empty_map(i8* %"$execptr_load_203") + %"$_new_empty_map_205" = bitcast i8* %"$_new_empty_map_call_204" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_205", %"Map_String_Map_(String)_(String)"** %"$f_m_23", align 8, !dbg !23 + %"$execptr_load_206" = load i8*, i8** @_execptr, align 8 + %"$$f_m_23_208" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m_23", align 8 + %"$update_value_209" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m_23_208" to i8* + call void @_update_field(i8* %"$execptr_load_206", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_207", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i8* %"$update_value_209"), !dbg !23 ret void } @@ -639,73 +607,73 @@ declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) declare i8* @_new_empty_map(i8*) -define internal void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$_origin_234", [20 x i8]* %"$_sender_235", %String %tname) !dbg !26 { +define internal void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$_origin_211", [20 x i8]* %"$_sender_212", %String %tname) !dbg !24 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_234", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_235", align 1 - %"$gasrem_236" = load i64, i64* @_gasrem, align 8 - %"$gascmp_237" = icmp ugt i64 1, %"$gasrem_236" - br i1 %"$gascmp_237", label %"$out_of_gas_238", label %"$have_gas_239" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_211", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_212", align 1 + %"$gasrem_213" = load i64, i64* @_gasrem, align 8 + %"$gascmp_214" = icmp ugt i64 1, %"$gasrem_213" + br i1 %"$gascmp_214", label %"$out_of_gas_215", label %"$have_gas_216" -"$out_of_gas_238": ; preds = %entry +"$out_of_gas_215": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_239" + br label %"$have_gas_216" -"$have_gas_239": ; preds = %"$out_of_gas_238", %entry - %"$consume_240" = sub i64 %"$gasrem_236", 1 - store i64 %"$consume_240", i64* @_gasrem, align 8 +"$have_gas_216": ; preds = %"$out_of_gas_215", %entry + %"$consume_217" = sub i64 %"$gasrem_213", 1 + store i64 %"$consume_217", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_241" = load i64, i64* @_gasrem, align 8 - %"$gascmp_242" = icmp ugt i64 1, %"$gasrem_241" - br i1 %"$gascmp_242", label %"$out_of_gas_243", label %"$have_gas_244" - -"$out_of_gas_243": ; preds = %"$have_gas_239" - call void @_out_of_gas() - br label %"$have_gas_244" - -"$have_gas_244": ; preds = %"$out_of_gas_243", %"$have_gas_239" - %"$consume_245" = sub i64 %"$gasrem_241", 1 - store i64 %"$consume_245", i64* @_gasrem, align 8 - %"$msgobj_246_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_246_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_246_salloc_load", i64 81) - %"$msgobj_246_salloc" = bitcast i8* %"$msgobj_246_salloc_salloc" to [81 x i8]* - %"$msgobj_246" = bitcast [81 x i8]* %"$msgobj_246_salloc" to i8* - store i8 2, i8* %"$msgobj_246", align 1 - %"$msgobj_fname_248" = getelementptr i8, i8* %"$msgobj_246", i32 1 - %"$msgobj_fname_249" = bitcast i8* %"$msgobj_fname_248" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_247", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_249", align 8 - %"$msgobj_td_250" = getelementptr i8, i8* %"$msgobj_246", i32 17 - %"$msgobj_td_251" = bitcast i8* %"$msgobj_td_250" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ** %"$msgobj_td_251", align 8 - %"$msgobj_v_253" = getelementptr i8, i8* %"$msgobj_246", i32 25 - %"$msgobj_v_254" = bitcast i8* %"$msgobj_v_253" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_252", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_254", align 8 - %"$msgobj_fname_256" = getelementptr i8, i8* %"$msgobj_246", i32 41 - %"$msgobj_fname_257" = bitcast i8* %"$msgobj_fname_256" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_255", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_257", align 8 - %"$msgobj_td_258" = getelementptr i8, i8* %"$msgobj_246", i32 57 - %"$msgobj_td_259" = bitcast i8* %"$msgobj_td_258" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ** %"$msgobj_td_259", align 8 - %"$msgobj_v_260" = getelementptr i8, i8* %"$msgobj_246", i32 65 - %"$msgobj_v_261" = bitcast i8* %"$msgobj_v_260" to %String* - store %String %tname, %String* %"$msgobj_v_261", align 8 - store i8* %"$msgobj_246", i8** %e, align 8, !dbg !27 - %"$e_263" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_265" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_58", i8* %"$e_263") - %"$gasrem_266" = load i64, i64* @_gasrem, align 8 - %"$gascmp_267" = icmp ugt i64 %"$_literal_cost_call_265", %"$gasrem_266" - br i1 %"$gascmp_267", label %"$out_of_gas_268", label %"$have_gas_269" - -"$out_of_gas_268": ; preds = %"$have_gas_244" - call void @_out_of_gas() - br label %"$have_gas_269" - -"$have_gas_269": ; preds = %"$out_of_gas_268", %"$have_gas_244" - %"$consume_270" = sub i64 %"$gasrem_266", %"$_literal_cost_call_265" - store i64 %"$consume_270", i64* @_gasrem, align 8 - %"$execptr_load_271" = load i8*, i8** @_execptr, align 8 - %"$e_272" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_271", %_TyDescrTy_Typ* @"$TyDescr_Exception_58", i8* %"$e_272"), !dbg !28 + %"$gasrem_218" = load i64, i64* @_gasrem, align 8 + %"$gascmp_219" = icmp ugt i64 1, %"$gasrem_218" + br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" + +"$out_of_gas_220": ; preds = %"$have_gas_216" + call void @_out_of_gas() + br label %"$have_gas_221" + +"$have_gas_221": ; preds = %"$out_of_gas_220", %"$have_gas_216" + %"$consume_222" = sub i64 %"$gasrem_218", 1 + store i64 %"$consume_222", i64* @_gasrem, align 8 + %"$msgobj_223_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_223_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_223_salloc_load", i64 81) + %"$msgobj_223_salloc" = bitcast i8* %"$msgobj_223_salloc_salloc" to [81 x i8]* + %"$msgobj_223" = bitcast [81 x i8]* %"$msgobj_223_salloc" to i8* + store i8 2, i8* %"$msgobj_223", align 1 + %"$msgobj_fname_225" = getelementptr i8, i8* %"$msgobj_223", i32 1 + %"$msgobj_fname_226" = bitcast i8* %"$msgobj_fname_225" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_224", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_226", align 8 + %"$msgobj_td_227" = getelementptr i8, i8* %"$msgobj_223", i32 17 + %"$msgobj_td_228" = bitcast i8* %"$msgobj_td_227" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ** %"$msgobj_td_228", align 8 + %"$msgobj_v_230" = getelementptr i8, i8* %"$msgobj_223", i32 25 + %"$msgobj_v_231" = bitcast i8* %"$msgobj_v_230" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_229", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_231", align 8 + %"$msgobj_fname_233" = getelementptr i8, i8* %"$msgobj_223", i32 41 + %"$msgobj_fname_234" = bitcast i8* %"$msgobj_fname_233" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_232", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_234", align 8 + %"$msgobj_td_235" = getelementptr i8, i8* %"$msgobj_223", i32 57 + %"$msgobj_td_236" = bitcast i8* %"$msgobj_td_235" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ** %"$msgobj_td_236", align 8 + %"$msgobj_v_237" = getelementptr i8, i8* %"$msgobj_223", i32 65 + %"$msgobj_v_238" = bitcast i8* %"$msgobj_v_237" to %String* + store %String %tname, %String* %"$msgobj_v_238", align 8 + store i8* %"$msgobj_223", i8** %e, align 8, !dbg !25 + %"$e_240" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_242" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_50", i8* %"$e_240") + %"$gasrem_243" = load i64, i64* @_gasrem, align 8 + %"$gascmp_244" = icmp ugt i64 %"$_literal_cost_call_242", %"$gasrem_243" + br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" + +"$out_of_gas_245": ; preds = %"$have_gas_221" + call void @_out_of_gas() + br label %"$have_gas_246" + +"$have_gas_246": ; preds = %"$out_of_gas_245", %"$have_gas_221" + %"$consume_247" = sub i64 %"$gasrem_243", %"$_literal_cost_call_242" + store i64 %"$consume_247", i64* @_gasrem, align 8 + %"$execptr_load_248" = load i8*, i8** @_execptr, align 8 + %"$e_249" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_248", %_TyDescrTy_Typ* @"$TyDescr_Exception_50", i8* %"$e_249"), !dbg !26 ret void } @@ -713,293 +681,293 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_throw(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$_origin_274", [20 x i8]* %"$_sender_275", %String %tname, %String %msg) !dbg !29 { +define internal void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$_origin_251", [20 x i8]* %"$_sender_252", %String %tname, %String %msg) !dbg !27 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_274", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_275", align 1 - %"$gasrem_276" = load i64, i64* @_gasrem, align 8 - %"$gascmp_277" = icmp ugt i64 1, %"$gasrem_276" - br i1 %"$gascmp_277", label %"$out_of_gas_278", label %"$have_gas_279" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_251", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_252", align 1 + %"$gasrem_253" = load i64, i64* @_gasrem, align 8 + %"$gascmp_254" = icmp ugt i64 1, %"$gasrem_253" + br i1 %"$gascmp_254", label %"$out_of_gas_255", label %"$have_gas_256" -"$out_of_gas_278": ; preds = %entry +"$out_of_gas_255": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_279" + br label %"$have_gas_256" -"$have_gas_279": ; preds = %"$out_of_gas_278", %entry - %"$consume_280" = sub i64 %"$gasrem_276", 1 - store i64 %"$consume_280", i64* @_gasrem, align 8 +"$have_gas_256": ; preds = %"$out_of_gas_255", %entry + %"$consume_257" = sub i64 %"$gasrem_253", 1 + store i64 %"$consume_257", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_281" = load i64, i64* @_gasrem, align 8 - %"$gascmp_282" = icmp ugt i64 1, %"$gasrem_281" - br i1 %"$gascmp_282", label %"$out_of_gas_283", label %"$have_gas_284" - -"$out_of_gas_283": ; preds = %"$have_gas_279" - call void @_out_of_gas() - br label %"$have_gas_284" - -"$have_gas_284": ; preds = %"$out_of_gas_283", %"$have_gas_279" - %"$consume_285" = sub i64 %"$gasrem_281", 1 - store i64 %"$consume_285", i64* @_gasrem, align 8 - %"$msgobj_286_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_286_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_286_salloc_load", i64 121) - %"$msgobj_286_salloc" = bitcast i8* %"$msgobj_286_salloc_salloc" to [121 x i8]* - %"$msgobj_286" = bitcast [121 x i8]* %"$msgobj_286_salloc" to i8* - store i8 3, i8* %"$msgobj_286", align 1 - %"$msgobj_fname_288" = getelementptr i8, i8* %"$msgobj_286", i32 1 - %"$msgobj_fname_289" = bitcast i8* %"$msgobj_fname_288" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_287", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_289", align 8 - %"$msgobj_td_290" = getelementptr i8, i8* %"$msgobj_286", i32 17 - %"$msgobj_td_291" = bitcast i8* %"$msgobj_td_290" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ** %"$msgobj_td_291", align 8 - %"$msgobj_v_293" = getelementptr i8, i8* %"$msgobj_286", i32 25 - %"$msgobj_v_294" = bitcast i8* %"$msgobj_v_293" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_292", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_294", align 8 - %"$msgobj_fname_296" = getelementptr i8, i8* %"$msgobj_286", i32 41 - %"$msgobj_fname_297" = bitcast i8* %"$msgobj_fname_296" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_295", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_297", align 8 - %"$msgobj_td_298" = getelementptr i8, i8* %"$msgobj_286", i32 57 - %"$msgobj_td_299" = bitcast i8* %"$msgobj_td_298" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ** %"$msgobj_td_299", align 8 - %"$msgobj_v_300" = getelementptr i8, i8* %"$msgobj_286", i32 65 - %"$msgobj_v_301" = bitcast i8* %"$msgobj_v_300" to %String* - store %String %tname, %String* %"$msgobj_v_301", align 8 - %"$msgobj_fname_303" = getelementptr i8, i8* %"$msgobj_286", i32 81 - %"$msgobj_fname_304" = bitcast i8* %"$msgobj_fname_303" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_302", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_304", align 8 - %"$msgobj_td_305" = getelementptr i8, i8* %"$msgobj_286", i32 97 - %"$msgobj_td_306" = bitcast i8* %"$msgobj_td_305" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ** %"$msgobj_td_306", align 8 - %"$msgobj_v_307" = getelementptr i8, i8* %"$msgobj_286", i32 105 - %"$msgobj_v_308" = bitcast i8* %"$msgobj_v_307" to %String* - store %String %msg, %String* %"$msgobj_v_308", align 8 - store i8* %"$msgobj_286", i8** %e, align 8, !dbg !30 - %"$e_310" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_312" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_58", i8* %"$e_310") - %"$gasrem_313" = load i64, i64* @_gasrem, align 8 - %"$gascmp_314" = icmp ugt i64 %"$_literal_cost_call_312", %"$gasrem_313" - br i1 %"$gascmp_314", label %"$out_of_gas_315", label %"$have_gas_316" - -"$out_of_gas_315": ; preds = %"$have_gas_284" - call void @_out_of_gas() - br label %"$have_gas_316" - -"$have_gas_316": ; preds = %"$out_of_gas_315", %"$have_gas_284" - %"$consume_317" = sub i64 %"$gasrem_313", %"$_literal_cost_call_312" - store i64 %"$consume_317", i64* @_gasrem, align 8 - %"$execptr_load_318" = load i8*, i8** @_execptr, align 8 - %"$e_319" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_318", %_TyDescrTy_Typ* @"$TyDescr_Exception_58", i8* %"$e_319"), !dbg !31 + %"$gasrem_258" = load i64, i64* @_gasrem, align 8 + %"$gascmp_259" = icmp ugt i64 1, %"$gasrem_258" + br i1 %"$gascmp_259", label %"$out_of_gas_260", label %"$have_gas_261" + +"$out_of_gas_260": ; preds = %"$have_gas_256" + call void @_out_of_gas() + br label %"$have_gas_261" + +"$have_gas_261": ; preds = %"$out_of_gas_260", %"$have_gas_256" + %"$consume_262" = sub i64 %"$gasrem_258", 1 + store i64 %"$consume_262", i64* @_gasrem, align 8 + %"$msgobj_263_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_263_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_263_salloc_load", i64 121) + %"$msgobj_263_salloc" = bitcast i8* %"$msgobj_263_salloc_salloc" to [121 x i8]* + %"$msgobj_263" = bitcast [121 x i8]* %"$msgobj_263_salloc" to i8* + store i8 3, i8* %"$msgobj_263", align 1 + %"$msgobj_fname_265" = getelementptr i8, i8* %"$msgobj_263", i32 1 + %"$msgobj_fname_266" = bitcast i8* %"$msgobj_fname_265" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_264", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_266", align 8 + %"$msgobj_td_267" = getelementptr i8, i8* %"$msgobj_263", i32 17 + %"$msgobj_td_268" = bitcast i8* %"$msgobj_td_267" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ** %"$msgobj_td_268", align 8 + %"$msgobj_v_270" = getelementptr i8, i8* %"$msgobj_263", i32 25 + %"$msgobj_v_271" = bitcast i8* %"$msgobj_v_270" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_269", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_271", align 8 + %"$msgobj_fname_273" = getelementptr i8, i8* %"$msgobj_263", i32 41 + %"$msgobj_fname_274" = bitcast i8* %"$msgobj_fname_273" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_272", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_274", align 8 + %"$msgobj_td_275" = getelementptr i8, i8* %"$msgobj_263", i32 57 + %"$msgobj_td_276" = bitcast i8* %"$msgobj_td_275" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ** %"$msgobj_td_276", align 8 + %"$msgobj_v_277" = getelementptr i8, i8* %"$msgobj_263", i32 65 + %"$msgobj_v_278" = bitcast i8* %"$msgobj_v_277" to %String* + store %String %tname, %String* %"$msgobj_v_278", align 8 + %"$msgobj_fname_280" = getelementptr i8, i8* %"$msgobj_263", i32 81 + %"$msgobj_fname_281" = bitcast i8* %"$msgobj_fname_280" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_279", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_281", align 8 + %"$msgobj_td_282" = getelementptr i8, i8* %"$msgobj_263", i32 97 + %"$msgobj_td_283" = bitcast i8* %"$msgobj_td_282" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ** %"$msgobj_td_283", align 8 + %"$msgobj_v_284" = getelementptr i8, i8* %"$msgobj_263", i32 105 + %"$msgobj_v_285" = bitcast i8* %"$msgobj_v_284" to %String* + store %String %msg, %String* %"$msgobj_v_285", align 8 + store i8* %"$msgobj_263", i8** %e, align 8, !dbg !28 + %"$e_287" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_289" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_50", i8* %"$e_287") + %"$gasrem_290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_291" = icmp ugt i64 %"$_literal_cost_call_289", %"$gasrem_290" + br i1 %"$gascmp_291", label %"$out_of_gas_292", label %"$have_gas_293" + +"$out_of_gas_292": ; preds = %"$have_gas_261" + call void @_out_of_gas() + br label %"$have_gas_293" + +"$have_gas_293": ; preds = %"$out_of_gas_292", %"$have_gas_261" + %"$consume_294" = sub i64 %"$gasrem_290", %"$_literal_cost_call_289" + store i64 %"$consume_294", i64* @_gasrem, align 8 + %"$execptr_load_295" = load i8*, i8** @_execptr, align 8 + %"$e_296" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_295", %_TyDescrTy_Typ* @"$TyDescr_Exception_50", i8* %"$e_296"), !dbg !29 ret void } -define internal void @"$t1_320"(%Uint128 %_amount, [20 x i8]* %"$_origin_321", [20 x i8]* %"$_sender_322") !dbg !32 { +define internal void @"$t1_297"(%Uint128 %_amount, [20 x i8]* %"$_origin_298", [20 x i8]* %"$_sender_299") !dbg !30 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_321", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_322", align 1 - %"$gasrem_323" = load i64, i64* @_gasrem, align 8 - %"$gascmp_324" = icmp ugt i64 1, %"$gasrem_323" - br i1 %"$gascmp_324", label %"$out_of_gas_325", label %"$have_gas_326" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_298", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_299", align 1 + %"$gasrem_300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_301" = icmp ugt i64 1, %"$gasrem_300" + br i1 %"$gascmp_301", label %"$out_of_gas_302", label %"$have_gas_303" -"$out_of_gas_325": ; preds = %entry +"$out_of_gas_302": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_326" + br label %"$have_gas_303" -"$have_gas_326": ; preds = %"$out_of_gas_325", %entry - %"$consume_327" = sub i64 %"$gasrem_323", 1 - store i64 %"$consume_327", i64* @_gasrem, align 8 +"$have_gas_303": ; preds = %"$out_of_gas_302", %entry + %"$consume_304" = sub i64 %"$gasrem_300", 1 + store i64 %"$consume_304", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_328" = load i64, i64* @_gasrem, align 8 - %"$gascmp_329" = icmp ugt i64 1, %"$gasrem_328" - br i1 %"$gascmp_329", label %"$out_of_gas_330", label %"$have_gas_331" + %"$gasrem_305" = load i64, i64* @_gasrem, align 8 + %"$gascmp_306" = icmp ugt i64 1, %"$gasrem_305" + br i1 %"$gascmp_306", label %"$out_of_gas_307", label %"$have_gas_308" -"$out_of_gas_330": ; preds = %"$have_gas_326" +"$out_of_gas_307": ; preds = %"$have_gas_303" call void @_out_of_gas() - br label %"$have_gas_331" + br label %"$have_gas_308" -"$have_gas_331": ; preds = %"$out_of_gas_330", %"$have_gas_326" - %"$consume_332" = sub i64 %"$gasrem_328", 1 - store i64 %"$consume_332", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_333", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !33 +"$have_gas_308": ; preds = %"$out_of_gas_307", %"$have_gas_303" + %"$consume_309" = sub i64 %"$gasrem_305", 1 + store i64 %"$consume_309", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_310", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !31 %f = alloca %String, align 8 - %"$execptr_load_335" = load i8*, i8** @_execptr, align 8 - %"$f_call_336" = call i8* @_fetch_field(i8* %"$execptr_load_335", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_334", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_50", i32 0, i8* null, i32 1), !dbg !34 - %"$f_337" = bitcast i8* %"$f_call_336" to %String* - %"$f_338" = load %String, %String* %"$f_337", align 8 - store %String %"$f_338", %String* %f, align 8 - %"$_literal_cost_f_339" = alloca %String, align 8 - %"$f_340" = load %String, %String* %f, align 8 - store %String %"$f_340", %String* %"$_literal_cost_f_339", align 8 - %"$$_literal_cost_f_339_341" = bitcast %String* %"$_literal_cost_f_339" to i8* - %"$_literal_cost_call_342" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_f_339_341") - %"$gasadd_343" = add i64 %"$_literal_cost_call_342", 0 - %"$gasrem_344" = load i64, i64* @_gasrem, align 8 - %"$gascmp_345" = icmp ugt i64 %"$gasadd_343", %"$gasrem_344" - br i1 %"$gascmp_345", label %"$out_of_gas_346", label %"$have_gas_347" - -"$out_of_gas_346": ; preds = %"$have_gas_331" - call void @_out_of_gas() - br label %"$have_gas_347" - -"$have_gas_347": ; preds = %"$out_of_gas_346", %"$have_gas_331" - %"$consume_348" = sub i64 %"$gasrem_344", %"$gasadd_343" - store i64 %"$consume_348", i64* @_gasrem, align 8 - %"$gasrem_349" = load i64, i64* @_gasrem, align 8 - %"$gascmp_350" = icmp ugt i64 1, %"$gasrem_349" - br i1 %"$gascmp_350", label %"$out_of_gas_351", label %"$have_gas_352" - -"$out_of_gas_351": ; preds = %"$have_gas_347" - call void @_out_of_gas() - br label %"$have_gas_352" - -"$have_gas_352": ; preds = %"$out_of_gas_351", %"$have_gas_347" - %"$consume_353" = sub i64 %"$gasrem_349", 1 - store i64 %"$consume_353", i64* @_gasrem, align 8 + %"$execptr_load_312" = load i8*, i8** @_execptr, align 8 + %"$f_call_313" = call i8* @_fetch_field(i8* %"$execptr_load_312", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_311", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_42", i32 0, i8* null, i32 1), !dbg !32 + %"$f_314" = bitcast i8* %"$f_call_313" to %String* + %"$f_315" = load %String, %String* %"$f_314", align 8 + store %String %"$f_315", %String* %f, align 8 + %"$_literal_cost_f_316" = alloca %String, align 8 + %"$f_317" = load %String, %String* %f, align 8 + store %String %"$f_317", %String* %"$_literal_cost_f_316", align 8 + %"$$_literal_cost_f_316_318" = bitcast %String* %"$_literal_cost_f_316" to i8* + %"$_literal_cost_call_319" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_f_316_318") + %"$gasadd_320" = add i64 %"$_literal_cost_call_319", 0 + %"$gasrem_321" = load i64, i64* @_gasrem, align 8 + %"$gascmp_322" = icmp ugt i64 %"$gasadd_320", %"$gasrem_321" + br i1 %"$gascmp_322", label %"$out_of_gas_323", label %"$have_gas_324" + +"$out_of_gas_323": ; preds = %"$have_gas_308" + call void @_out_of_gas() + br label %"$have_gas_324" + +"$have_gas_324": ; preds = %"$out_of_gas_323", %"$have_gas_308" + %"$consume_325" = sub i64 %"$gasrem_321", %"$gasadd_320" + store i64 %"$consume_325", i64* @_gasrem, align 8 + %"$gasrem_326" = load i64, i64* @_gasrem, align 8 + %"$gascmp_327" = icmp ugt i64 1, %"$gasrem_326" + br i1 %"$gascmp_327", label %"$out_of_gas_328", label %"$have_gas_329" + +"$out_of_gas_328": ; preds = %"$have_gas_324" + call void @_out_of_gas() + br label %"$have_gas_329" + +"$have_gas_329": ; preds = %"$out_of_gas_328", %"$have_gas_324" + %"$consume_330" = sub i64 %"$gasrem_326", 1 + store i64 %"$consume_330", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_354" = load i64, i64* @_gasrem, align 8 - %"$gascmp_355" = icmp ugt i64 1, %"$gasrem_354" - br i1 %"$gascmp_355", label %"$out_of_gas_356", label %"$have_gas_357" + %"$gasrem_331" = load i64, i64* @_gasrem, align 8 + %"$gascmp_332" = icmp ugt i64 1, %"$gasrem_331" + br i1 %"$gascmp_332", label %"$out_of_gas_333", label %"$have_gas_334" -"$out_of_gas_356": ; preds = %"$have_gas_352" +"$out_of_gas_333": ; preds = %"$have_gas_329" call void @_out_of_gas() - br label %"$have_gas_357" + br label %"$have_gas_334" -"$have_gas_357": ; preds = %"$out_of_gas_356", %"$have_gas_352" - %"$consume_358" = sub i64 %"$gasrem_354", 1 - store i64 %"$consume_358", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_359", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !35 - %"$gasrem_360" = load i64, i64* @_gasrem, align 8 - %"$gascmp_361" = icmp ugt i64 1, %"$gasrem_360" - br i1 %"$gascmp_361", label %"$out_of_gas_362", label %"$have_gas_363" +"$have_gas_334": ; preds = %"$out_of_gas_333", %"$have_gas_329" + %"$consume_335" = sub i64 %"$gasrem_331", 1 + store i64 %"$consume_335", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_336", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !33 + %"$gasrem_337" = load i64, i64* @_gasrem, align 8 + %"$gascmp_338" = icmp ugt i64 1, %"$gasrem_337" + br i1 %"$gascmp_338", label %"$out_of_gas_339", label %"$have_gas_340" -"$out_of_gas_362": ; preds = %"$have_gas_357" +"$out_of_gas_339": ; preds = %"$have_gas_334" call void @_out_of_gas() - br label %"$have_gas_363" + br label %"$have_gas_340" -"$have_gas_363": ; preds = %"$out_of_gas_362", %"$have_gas_357" - %"$consume_364" = sub i64 %"$gasrem_360", 1 - store i64 %"$consume_364", i64* @_gasrem, align 8 +"$have_gas_340": ; preds = %"$out_of_gas_339", %"$have_gas_334" + %"$consume_341" = sub i64 %"$gasrem_337", 1 + store i64 %"$consume_341", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_f_365" = alloca %String, align 8 - %"$f_366" = load %String, %String* %f, align 8 - store %String %"$f_366", %String* %"$_literal_cost_f_365", align 8 - %"$$_literal_cost_f_365_367" = bitcast %String* %"$_literal_cost_f_365" to i8* - %"$_literal_cost_call_368" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_f_365_367") - %"$_literal_cost_s_369" = alloca %String, align 8 - %"$s_370" = load %String, %String* %s, align 8 - store %String %"$s_370", %String* %"$_literal_cost_s_369", align 8 - %"$$_literal_cost_s_369_371" = bitcast %String* %"$_literal_cost_s_369" to i8* - %"$_literal_cost_call_372" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_369_371") - %"$gasmin_373" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_368", i64 %"$_literal_cost_call_372") - %"$gasrem_374" = load i64, i64* @_gasrem, align 8 - %"$gascmp_375" = icmp ugt i64 %"$gasmin_373", %"$gasrem_374" - br i1 %"$gascmp_375", label %"$out_of_gas_376", label %"$have_gas_377" - -"$out_of_gas_376": ; preds = %"$have_gas_363" - call void @_out_of_gas() - br label %"$have_gas_377" - -"$have_gas_377": ; preds = %"$out_of_gas_376", %"$have_gas_363" - %"$consume_378" = sub i64 %"$gasrem_374", %"$gasmin_373" - store i64 %"$consume_378", i64* @_gasrem, align 8 - %"$execptr_load_379" = load i8*, i8** @_execptr, align 8 - %"$f_380" = load %String, %String* %f, align 8 - %"$s_381" = load %String, %String* %s, align 8 - %"$eq_call_382" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_379", %String %"$f_380", %String %"$s_381"), !dbg !36 - store %TName_Bool* %"$eq_call_382", %TName_Bool** %t, align 8, !dbg !36 - %"$gasrem_384" = load i64, i64* @_gasrem, align 8 - %"$gascmp_385" = icmp ugt i64 2, %"$gasrem_384" - br i1 %"$gascmp_385", label %"$out_of_gas_386", label %"$have_gas_387" - -"$out_of_gas_386": ; preds = %"$have_gas_377" - call void @_out_of_gas() - br label %"$have_gas_387" - -"$have_gas_387": ; preds = %"$out_of_gas_386", %"$have_gas_377" - %"$consume_388" = sub i64 %"$gasrem_384", 2 - store i64 %"$consume_388", i64* @_gasrem, align 8 - %"$t_390" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_391" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_390", i32 0, i32 0 - %"$t_tag_392" = load i8, i8* %"$t_tag_391", align 1 - switch i8 %"$t_tag_392", label %"$empty_default_393" [ - i8 1, label %"$False_394" - i8 0, label %"$True_404" - ], !dbg !37 - -"$False_394": ; preds = %"$have_gas_387" - %"$t_395" = bitcast %TName_Bool* %"$t_390" to %CName_False* - %"$gasrem_396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_397" = icmp ugt i64 1, %"$gasrem_396" - br i1 %"$gascmp_397", label %"$out_of_gas_398", label %"$have_gas_399" - -"$out_of_gas_398": ; preds = %"$False_394" - call void @_out_of_gas() - br label %"$have_gas_399" - -"$have_gas_399": ; preds = %"$out_of_gas_398", %"$False_394" - %"$consume_400" = sub i64 %"$gasrem_396", 1 - store i64 %"$consume_400", i64* @_gasrem, align 8 - %"$fail__origin_401" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_401", align 1 - %"$fail__sender_402" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_402", align 1 - %"$tname_403" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_401", [20 x i8]* %"$fail__sender_402", %String %"$tname_403"), !dbg !38 - br label %"$matchsucc_389" - -"$True_404": ; preds = %"$have_gas_387" - %"$t_405" = bitcast %TName_Bool* %"$t_390" to %CName_True* - br label %"$matchsucc_389" - -"$empty_default_393": ; preds = %"$have_gas_387" - br label %"$matchsucc_389" - -"$matchsucc_389": ; preds = %"$True_404", %"$have_gas_399", %"$empty_default_393" - %"$gasrem_406" = load i64, i64* @_gasrem, align 8 - %"$gascmp_407" = icmp ugt i64 1, %"$gasrem_406" - br i1 %"$gascmp_407", label %"$out_of_gas_408", label %"$have_gas_409" - -"$out_of_gas_408": ; preds = %"$matchsucc_389" - call void @_out_of_gas() - br label %"$have_gas_409" - -"$have_gas_409": ; preds = %"$out_of_gas_408", %"$matchsucc_389" - %"$consume_410" = sub i64 %"$gasrem_406", 1 - store i64 %"$consume_410", i64* @_gasrem, align 8 + %"$_literal_cost_f_342" = alloca %String, align 8 + %"$f_343" = load %String, %String* %f, align 8 + store %String %"$f_343", %String* %"$_literal_cost_f_342", align 8 + %"$$_literal_cost_f_342_344" = bitcast %String* %"$_literal_cost_f_342" to i8* + %"$_literal_cost_call_345" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_f_342_344") + %"$_literal_cost_s_346" = alloca %String, align 8 + %"$s_347" = load %String, %String* %s, align 8 + store %String %"$s_347", %String* %"$_literal_cost_s_346", align 8 + %"$$_literal_cost_s_346_348" = bitcast %String* %"$_literal_cost_s_346" to i8* + %"$_literal_cost_call_349" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_346_348") + %"$gasmin_350" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_345", i64 %"$_literal_cost_call_349") + %"$gasrem_351" = load i64, i64* @_gasrem, align 8 + %"$gascmp_352" = icmp ugt i64 %"$gasmin_350", %"$gasrem_351" + br i1 %"$gascmp_352", label %"$out_of_gas_353", label %"$have_gas_354" + +"$out_of_gas_353": ; preds = %"$have_gas_340" + call void @_out_of_gas() + br label %"$have_gas_354" + +"$have_gas_354": ; preds = %"$out_of_gas_353", %"$have_gas_340" + %"$consume_355" = sub i64 %"$gasrem_351", %"$gasmin_350" + store i64 %"$consume_355", i64* @_gasrem, align 8 + %"$execptr_load_356" = load i8*, i8** @_execptr, align 8 + %"$f_357" = load %String, %String* %f, align 8 + %"$s_358" = load %String, %String* %s, align 8 + %"$eq_call_359" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_356", %String %"$f_357", %String %"$s_358"), !dbg !34 + store %TName_Bool* %"$eq_call_359", %TName_Bool** %t, align 8, !dbg !34 + %"$gasrem_361" = load i64, i64* @_gasrem, align 8 + %"$gascmp_362" = icmp ugt i64 2, %"$gasrem_361" + br i1 %"$gascmp_362", label %"$out_of_gas_363", label %"$have_gas_364" + +"$out_of_gas_363": ; preds = %"$have_gas_354" + call void @_out_of_gas() + br label %"$have_gas_364" + +"$have_gas_364": ; preds = %"$out_of_gas_363", %"$have_gas_354" + %"$consume_365" = sub i64 %"$gasrem_361", 2 + store i64 %"$consume_365", i64* @_gasrem, align 8 + %"$t_367" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_368" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_367", i32 0, i32 0 + %"$t_tag_369" = load i8, i8* %"$t_tag_368", align 1 + switch i8 %"$t_tag_369", label %"$empty_default_370" [ + i8 1, label %"$False_371" + i8 0, label %"$True_381" + ], !dbg !35 + +"$False_371": ; preds = %"$have_gas_364" + %"$t_372" = bitcast %TName_Bool* %"$t_367" to %CName_False* + %"$gasrem_373" = load i64, i64* @_gasrem, align 8 + %"$gascmp_374" = icmp ugt i64 1, %"$gasrem_373" + br i1 %"$gascmp_374", label %"$out_of_gas_375", label %"$have_gas_376" + +"$out_of_gas_375": ; preds = %"$False_371" + call void @_out_of_gas() + br label %"$have_gas_376" + +"$have_gas_376": ; preds = %"$out_of_gas_375", %"$False_371" + %"$consume_377" = sub i64 %"$gasrem_373", 1 + store i64 %"$consume_377", i64* @_gasrem, align 8 + %"$fail__origin_378" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_378", align 1 + %"$fail__sender_379" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_379", align 1 + %"$tname_380" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_378", [20 x i8]* %"$fail__sender_379", %String %"$tname_380"), !dbg !36 + br label %"$matchsucc_366" + +"$True_381": ; preds = %"$have_gas_364" + %"$t_382" = bitcast %TName_Bool* %"$t_367" to %CName_True* + br label %"$matchsucc_366" + +"$empty_default_370": ; preds = %"$have_gas_364" + br label %"$matchsucc_366" + +"$matchsucc_366": ; preds = %"$True_381", %"$have_gas_376", %"$empty_default_370" + %"$gasrem_383" = load i64, i64* @_gasrem, align 8 + %"$gascmp_384" = icmp ugt i64 1, %"$gasrem_383" + br i1 %"$gascmp_384", label %"$out_of_gas_385", label %"$have_gas_386" + +"$out_of_gas_385": ; preds = %"$matchsucc_366" + call void @_out_of_gas() + br label %"$have_gas_386" + +"$have_gas_386": ; preds = %"$out_of_gas_385", %"$matchsucc_366" + %"$consume_387" = sub i64 %"$gasrem_383", 1 + store i64 %"$consume_387", i64* @_gasrem, align 8 %s2 = alloca %String, align 8 - %"$gasrem_411" = load i64, i64* @_gasrem, align 8 - %"$gascmp_412" = icmp ugt i64 1, %"$gasrem_411" - br i1 %"$gascmp_412", label %"$out_of_gas_413", label %"$have_gas_414" - -"$out_of_gas_413": ; preds = %"$have_gas_409" - call void @_out_of_gas() - br label %"$have_gas_414" - -"$have_gas_414": ; preds = %"$out_of_gas_413", %"$have_gas_409" - %"$consume_415" = sub i64 %"$gasrem_411", 1 - store i64 %"$consume_415", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_416", i32 0, i32 0), i32 3 }, %String* %s2, align 8, !dbg !41 - %"$_literal_cost_s2_417" = alloca %String, align 8 - %"$s2_418" = load %String, %String* %s2, align 8 - store %String %"$s2_418", %String* %"$_literal_cost_s2_417", align 8 - %"$$_literal_cost_s2_417_419" = bitcast %String* %"$_literal_cost_s2_417" to i8* - %"$_literal_cost_call_420" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s2_417_419") - %"$gasrem_421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_422" = icmp ugt i64 %"$_literal_cost_call_420", %"$gasrem_421" - br i1 %"$gascmp_422", label %"$out_of_gas_423", label %"$have_gas_424" - -"$out_of_gas_423": ; preds = %"$have_gas_414" - call void @_out_of_gas() - br label %"$have_gas_424" - -"$have_gas_424": ; preds = %"$out_of_gas_423", %"$have_gas_414" - %"$consume_425" = sub i64 %"$gasrem_421", %"$_literal_cost_call_420" - store i64 %"$consume_425", i64* @_gasrem, align 8 - %"$execptr_load_426" = load i8*, i8** @_execptr, align 8 - %"$s2_428" = load %String, %String* %s2, align 8 - %"$update_value_429" = alloca %String, align 8 - store %String %"$s2_428", %String* %"$update_value_429", align 8 - %"$update_value_430" = bitcast %String* %"$update_value_429" to i8* - call void @_update_field(i8* %"$execptr_load_426", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_427", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_50", i32 0, i8* null, i8* %"$update_value_430"), !dbg !42 + %"$gasrem_388" = load i64, i64* @_gasrem, align 8 + %"$gascmp_389" = icmp ugt i64 1, %"$gasrem_388" + br i1 %"$gascmp_389", label %"$out_of_gas_390", label %"$have_gas_391" + +"$out_of_gas_390": ; preds = %"$have_gas_386" + call void @_out_of_gas() + br label %"$have_gas_391" + +"$have_gas_391": ; preds = %"$out_of_gas_390", %"$have_gas_386" + %"$consume_392" = sub i64 %"$gasrem_388", 1 + store i64 %"$consume_392", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_393", i32 0, i32 0), i32 3 }, %String* %s2, align 8, !dbg !39 + %"$_literal_cost_s2_394" = alloca %String, align 8 + %"$s2_395" = load %String, %String* %s2, align 8 + store %String %"$s2_395", %String* %"$_literal_cost_s2_394", align 8 + %"$$_literal_cost_s2_394_396" = bitcast %String* %"$_literal_cost_s2_394" to i8* + %"$_literal_cost_call_397" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s2_394_396") + %"$gasrem_398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_399" = icmp ugt i64 %"$_literal_cost_call_397", %"$gasrem_398" + br i1 %"$gascmp_399", label %"$out_of_gas_400", label %"$have_gas_401" + +"$out_of_gas_400": ; preds = %"$have_gas_391" + call void @_out_of_gas() + br label %"$have_gas_401" + +"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_391" + %"$consume_402" = sub i64 %"$gasrem_398", %"$_literal_cost_call_397" + store i64 %"$consume_402", i64* @_gasrem, align 8 + %"$execptr_load_403" = load i8*, i8** @_execptr, align 8 + %"$s2_405" = load %String, %String* %s2, align 8 + %"$update_value_406" = alloca %String, align 8 + store %String %"$s2_405", %String* %"$update_value_406", align 8 + %"$update_value_407" = bitcast %String* %"$update_value_406" to i8* + call void @_update_field(i8* %"$execptr_load_403", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_404", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_42", i32 0, i8* null, i8* %"$update_value_407"), !dbg !40 ret void } @@ -1010,342 +978,383 @@ declare i64 @llvm.umin.i64(i64, i64) #0 declare %TName_Bool* @_eq_String(i8*, %String, %String) -define void @t1(i8* %0) !dbg !43 { +define void @t1(i8* %0) !dbg !41 { entry: - %"$_amount_432" = getelementptr i8, i8* %0, i32 0 - %"$_amount_433" = bitcast i8* %"$_amount_432" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_433", align 8 - %"$_origin_434" = getelementptr i8, i8* %0, i32 16 - %"$_origin_435" = bitcast i8* %"$_origin_434" to [20 x i8]* - %"$_sender_436" = getelementptr i8, i8* %0, i32 36 - %"$_sender_437" = bitcast i8* %"$_sender_436" to [20 x i8]* - call void @"$t1_320"(%Uint128 %_amount, [20 x i8]* %"$_origin_435", [20 x i8]* %"$_sender_437"), !dbg !44 + %"$_amount_409" = getelementptr i8, i8* %0, i32 0 + %"$_amount_410" = bitcast i8* %"$_amount_409" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_410", align 8 + %"$_origin_411" = getelementptr i8, i8* %0, i32 16 + %"$_origin_412" = bitcast i8* %"$_origin_411" to [20 x i8]* + %"$_sender_413" = getelementptr i8, i8* %0, i32 36 + %"$_sender_414" = bitcast i8* %"$_sender_413" to [20 x i8]* + call void @"$t1_297"(%Uint128 %_amount, [20 x i8]* %"$_origin_412", [20 x i8]* %"$_sender_414"), !dbg !42 ret void } -define internal void @"$t2_438"(%Uint128 %_amount, [20 x i8]* %"$_origin_439", [20 x i8]* %"$_sender_440") !dbg !45 { +define internal void @"$t2_415"(%Uint128 %_amount, [20 x i8]* %"$_origin_416", [20 x i8]* %"$_sender_417") !dbg !43 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_439", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_440", align 1 - %"$gasrem_441" = load i64, i64* @_gasrem, align 8 - %"$gascmp_442" = icmp ugt i64 1, %"$gasrem_441" - br i1 %"$gascmp_442", label %"$out_of_gas_443", label %"$have_gas_444" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_416", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_417", align 1 + %"$gasrem_418" = load i64, i64* @_gasrem, align 8 + %"$gascmp_419" = icmp ugt i64 1, %"$gasrem_418" + br i1 %"$gascmp_419", label %"$out_of_gas_420", label %"$have_gas_421" -"$out_of_gas_443": ; preds = %entry +"$out_of_gas_420": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_444" + br label %"$have_gas_421" -"$have_gas_444": ; preds = %"$out_of_gas_443", %entry - %"$consume_445" = sub i64 %"$gasrem_441", 1 - store i64 %"$consume_445", i64* @_gasrem, align 8 +"$have_gas_421": ; preds = %"$out_of_gas_420", %entry + %"$consume_422" = sub i64 %"$gasrem_418", 1 + store i64 %"$consume_422", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_446" = load i64, i64* @_gasrem, align 8 - %"$gascmp_447" = icmp ugt i64 1, %"$gasrem_446" - br i1 %"$gascmp_447", label %"$out_of_gas_448", label %"$have_gas_449" + %"$gasrem_423" = load i64, i64* @_gasrem, align 8 + %"$gascmp_424" = icmp ugt i64 1, %"$gasrem_423" + br i1 %"$gascmp_424", label %"$out_of_gas_425", label %"$have_gas_426" -"$out_of_gas_448": ; preds = %"$have_gas_444" +"$out_of_gas_425": ; preds = %"$have_gas_421" call void @_out_of_gas() - br label %"$have_gas_449" + br label %"$have_gas_426" -"$have_gas_449": ; preds = %"$out_of_gas_448", %"$have_gas_444" - %"$consume_450" = sub i64 %"$gasrem_446", 1 - store i64 %"$consume_450", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_451", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !46 +"$have_gas_426": ; preds = %"$out_of_gas_425", %"$have_gas_421" + %"$consume_427" = sub i64 %"$gasrem_423", 1 + store i64 %"$consume_427", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_428", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !44 %f = alloca %String, align 8 - %"$execptr_load_453" = load i8*, i8** @_execptr, align 8 - %"$f_call_454" = call i8* @_fetch_field(i8* %"$execptr_load_453", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_452", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_50", i32 0, i8* null, i32 1), !dbg !47 - %"$f_455" = bitcast i8* %"$f_call_454" to %String* - %"$f_456" = load %String, %String* %"$f_455", align 8 - store %String %"$f_456", %String* %f, align 8 - %"$_literal_cost_f_457" = alloca %String, align 8 - %"$f_458" = load %String, %String* %f, align 8 - store %String %"$f_458", %String* %"$_literal_cost_f_457", align 8 - %"$$_literal_cost_f_457_459" = bitcast %String* %"$_literal_cost_f_457" to i8* - %"$_literal_cost_call_460" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_f_457_459") - %"$gasadd_461" = add i64 %"$_literal_cost_call_460", 0 - %"$gasrem_462" = load i64, i64* @_gasrem, align 8 - %"$gascmp_463" = icmp ugt i64 %"$gasadd_461", %"$gasrem_462" - br i1 %"$gascmp_463", label %"$out_of_gas_464", label %"$have_gas_465" - -"$out_of_gas_464": ; preds = %"$have_gas_449" - call void @_out_of_gas() - br label %"$have_gas_465" - -"$have_gas_465": ; preds = %"$out_of_gas_464", %"$have_gas_449" - %"$consume_466" = sub i64 %"$gasrem_462", %"$gasadd_461" - store i64 %"$consume_466", i64* @_gasrem, align 8 - %"$gasrem_467" = load i64, i64* @_gasrem, align 8 - %"$gascmp_468" = icmp ugt i64 1, %"$gasrem_467" - br i1 %"$gascmp_468", label %"$out_of_gas_469", label %"$have_gas_470" - -"$out_of_gas_469": ; preds = %"$have_gas_465" - call void @_out_of_gas() - br label %"$have_gas_470" - -"$have_gas_470": ; preds = %"$out_of_gas_469", %"$have_gas_465" - %"$consume_471" = sub i64 %"$gasrem_467", 1 - store i64 %"$consume_471", i64* @_gasrem, align 8 + %"$execptr_load_430" = load i8*, i8** @_execptr, align 8 + %"$f_call_431" = call i8* @_fetch_field(i8* %"$execptr_load_430", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_429", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_42", i32 0, i8* null, i32 1), !dbg !45 + %"$f_432" = bitcast i8* %"$f_call_431" to %String* + %"$f_433" = load %String, %String* %"$f_432", align 8 + store %String %"$f_433", %String* %f, align 8 + %"$_literal_cost_f_434" = alloca %String, align 8 + %"$f_435" = load %String, %String* %f, align 8 + store %String %"$f_435", %String* %"$_literal_cost_f_434", align 8 + %"$$_literal_cost_f_434_436" = bitcast %String* %"$_literal_cost_f_434" to i8* + %"$_literal_cost_call_437" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_f_434_436") + %"$gasadd_438" = add i64 %"$_literal_cost_call_437", 0 + %"$gasrem_439" = load i64, i64* @_gasrem, align 8 + %"$gascmp_440" = icmp ugt i64 %"$gasadd_438", %"$gasrem_439" + br i1 %"$gascmp_440", label %"$out_of_gas_441", label %"$have_gas_442" + +"$out_of_gas_441": ; preds = %"$have_gas_426" + call void @_out_of_gas() + br label %"$have_gas_442" + +"$have_gas_442": ; preds = %"$out_of_gas_441", %"$have_gas_426" + %"$consume_443" = sub i64 %"$gasrem_439", %"$gasadd_438" + store i64 %"$consume_443", i64* @_gasrem, align 8 + %"$gasrem_444" = load i64, i64* @_gasrem, align 8 + %"$gascmp_445" = icmp ugt i64 1, %"$gasrem_444" + br i1 %"$gascmp_445", label %"$out_of_gas_446", label %"$have_gas_447" + +"$out_of_gas_446": ; preds = %"$have_gas_442" + call void @_out_of_gas() + br label %"$have_gas_447" + +"$have_gas_447": ; preds = %"$out_of_gas_446", %"$have_gas_442" + %"$consume_448" = sub i64 %"$gasrem_444", 1 + store i64 %"$consume_448", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_472" = load i64, i64* @_gasrem, align 8 - %"$gascmp_473" = icmp ugt i64 1, %"$gasrem_472" - br i1 %"$gascmp_473", label %"$out_of_gas_474", label %"$have_gas_475" + %"$gasrem_449" = load i64, i64* @_gasrem, align 8 + %"$gascmp_450" = icmp ugt i64 1, %"$gasrem_449" + br i1 %"$gascmp_450", label %"$out_of_gas_451", label %"$have_gas_452" -"$out_of_gas_474": ; preds = %"$have_gas_470" +"$out_of_gas_451": ; preds = %"$have_gas_447" call void @_out_of_gas() - br label %"$have_gas_475" + br label %"$have_gas_452" -"$have_gas_475": ; preds = %"$out_of_gas_474", %"$have_gas_470" - %"$consume_476" = sub i64 %"$gasrem_472", 1 - store i64 %"$consume_476", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_477", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !48 - %"$gasrem_478" = load i64, i64* @_gasrem, align 8 - %"$gascmp_479" = icmp ugt i64 1, %"$gasrem_478" - br i1 %"$gascmp_479", label %"$out_of_gas_480", label %"$have_gas_481" +"$have_gas_452": ; preds = %"$out_of_gas_451", %"$have_gas_447" + %"$consume_453" = sub i64 %"$gasrem_449", 1 + store i64 %"$consume_453", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_454", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !46 + %"$gasrem_455" = load i64, i64* @_gasrem, align 8 + %"$gascmp_456" = icmp ugt i64 1, %"$gasrem_455" + br i1 %"$gascmp_456", label %"$out_of_gas_457", label %"$have_gas_458" -"$out_of_gas_480": ; preds = %"$have_gas_475" +"$out_of_gas_457": ; preds = %"$have_gas_452" call void @_out_of_gas() - br label %"$have_gas_481" + br label %"$have_gas_458" -"$have_gas_481": ; preds = %"$out_of_gas_480", %"$have_gas_475" - %"$consume_482" = sub i64 %"$gasrem_478", 1 - store i64 %"$consume_482", i64* @_gasrem, align 8 +"$have_gas_458": ; preds = %"$out_of_gas_457", %"$have_gas_452" + %"$consume_459" = sub i64 %"$gasrem_455", 1 + store i64 %"$consume_459", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_f_483" = alloca %String, align 8 - %"$f_484" = load %String, %String* %f, align 8 - store %String %"$f_484", %String* %"$_literal_cost_f_483", align 8 - %"$$_literal_cost_f_483_485" = bitcast %String* %"$_literal_cost_f_483" to i8* - %"$_literal_cost_call_486" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_f_483_485") - %"$_literal_cost_s_487" = alloca %String, align 8 - %"$s_488" = load %String, %String* %s, align 8 - store %String %"$s_488", %String* %"$_literal_cost_s_487", align 8 - %"$$_literal_cost_s_487_489" = bitcast %String* %"$_literal_cost_s_487" to i8* - %"$_literal_cost_call_490" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_487_489") - %"$gasmin_491" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_486", i64 %"$_literal_cost_call_490") - %"$gasrem_492" = load i64, i64* @_gasrem, align 8 - %"$gascmp_493" = icmp ugt i64 %"$gasmin_491", %"$gasrem_492" - br i1 %"$gascmp_493", label %"$out_of_gas_494", label %"$have_gas_495" - -"$out_of_gas_494": ; preds = %"$have_gas_481" - call void @_out_of_gas() - br label %"$have_gas_495" - -"$have_gas_495": ; preds = %"$out_of_gas_494", %"$have_gas_481" - %"$consume_496" = sub i64 %"$gasrem_492", %"$gasmin_491" - store i64 %"$consume_496", i64* @_gasrem, align 8 - %"$execptr_load_497" = load i8*, i8** @_execptr, align 8 - %"$f_498" = load %String, %String* %f, align 8 - %"$s_499" = load %String, %String* %s, align 8 - %"$eq_call_500" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_497", %String %"$f_498", %String %"$s_499"), !dbg !49 - store %TName_Bool* %"$eq_call_500", %TName_Bool** %t, align 8, !dbg !49 - %"$gasrem_502" = load i64, i64* @_gasrem, align 8 - %"$gascmp_503" = icmp ugt i64 2, %"$gasrem_502" - br i1 %"$gascmp_503", label %"$out_of_gas_504", label %"$have_gas_505" - -"$out_of_gas_504": ; preds = %"$have_gas_495" - call void @_out_of_gas() - br label %"$have_gas_505" - -"$have_gas_505": ; preds = %"$out_of_gas_504", %"$have_gas_495" - %"$consume_506" = sub i64 %"$gasrem_502", 2 - store i64 %"$consume_506", i64* @_gasrem, align 8 - %"$t_508" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_509" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_508", i32 0, i32 0 - %"$t_tag_510" = load i8, i8* %"$t_tag_509", align 1 - switch i8 %"$t_tag_510", label %"$empty_default_511" [ - i8 1, label %"$False_512" - i8 0, label %"$True_522" - ], !dbg !50 - -"$False_512": ; preds = %"$have_gas_505" - %"$t_513" = bitcast %TName_Bool* %"$t_508" to %CName_False* - %"$gasrem_514" = load i64, i64* @_gasrem, align 8 - %"$gascmp_515" = icmp ugt i64 1, %"$gasrem_514" - br i1 %"$gascmp_515", label %"$out_of_gas_516", label %"$have_gas_517" - -"$out_of_gas_516": ; preds = %"$False_512" - call void @_out_of_gas() - br label %"$have_gas_517" - -"$have_gas_517": ; preds = %"$out_of_gas_516", %"$False_512" - %"$consume_518" = sub i64 %"$gasrem_514", 1 - store i64 %"$consume_518", i64* @_gasrem, align 8 - %"$fail__origin_519" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_519", align 1 - %"$fail__sender_520" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_520", align 1 - %"$tname_521" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_519", [20 x i8]* %"$fail__sender_520", %String %"$tname_521"), !dbg !51 - br label %"$matchsucc_507" - -"$True_522": ; preds = %"$have_gas_505" - %"$t_523" = bitcast %TName_Bool* %"$t_508" to %CName_True* - br label %"$matchsucc_507" - -"$empty_default_511": ; preds = %"$have_gas_505" - br label %"$matchsucc_507" - -"$matchsucc_507": ; preds = %"$True_522", %"$have_gas_517", %"$empty_default_511" - %"$gasrem_524" = load i64, i64* @_gasrem, align 8 - %"$gascmp_525" = icmp ugt i64 1, %"$gasrem_524" - br i1 %"$gascmp_525", label %"$out_of_gas_526", label %"$have_gas_527" - -"$out_of_gas_526": ; preds = %"$matchsucc_507" - call void @_out_of_gas() - br label %"$have_gas_527" - -"$have_gas_527": ; preds = %"$out_of_gas_526", %"$matchsucc_507" - %"$consume_528" = sub i64 %"$gasrem_524", 1 - store i64 %"$consume_528", i64* @_gasrem, align 8 + %"$_literal_cost_f_460" = alloca %String, align 8 + %"$f_461" = load %String, %String* %f, align 8 + store %String %"$f_461", %String* %"$_literal_cost_f_460", align 8 + %"$$_literal_cost_f_460_462" = bitcast %String* %"$_literal_cost_f_460" to i8* + %"$_literal_cost_call_463" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_f_460_462") + %"$_literal_cost_s_464" = alloca %String, align 8 + %"$s_465" = load %String, %String* %s, align 8 + store %String %"$s_465", %String* %"$_literal_cost_s_464", align 8 + %"$$_literal_cost_s_464_466" = bitcast %String* %"$_literal_cost_s_464" to i8* + %"$_literal_cost_call_467" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_464_466") + %"$gasmin_468" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_463", i64 %"$_literal_cost_call_467") + %"$gasrem_469" = load i64, i64* @_gasrem, align 8 + %"$gascmp_470" = icmp ugt i64 %"$gasmin_468", %"$gasrem_469" + br i1 %"$gascmp_470", label %"$out_of_gas_471", label %"$have_gas_472" + +"$out_of_gas_471": ; preds = %"$have_gas_458" + call void @_out_of_gas() + br label %"$have_gas_472" + +"$have_gas_472": ; preds = %"$out_of_gas_471", %"$have_gas_458" + %"$consume_473" = sub i64 %"$gasrem_469", %"$gasmin_468" + store i64 %"$consume_473", i64* @_gasrem, align 8 + %"$execptr_load_474" = load i8*, i8** @_execptr, align 8 + %"$f_475" = load %String, %String* %f, align 8 + %"$s_476" = load %String, %String* %s, align 8 + %"$eq_call_477" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_474", %String %"$f_475", %String %"$s_476"), !dbg !47 + store %TName_Bool* %"$eq_call_477", %TName_Bool** %t, align 8, !dbg !47 + %"$gasrem_479" = load i64, i64* @_gasrem, align 8 + %"$gascmp_480" = icmp ugt i64 2, %"$gasrem_479" + br i1 %"$gascmp_480", label %"$out_of_gas_481", label %"$have_gas_482" + +"$out_of_gas_481": ; preds = %"$have_gas_472" + call void @_out_of_gas() + br label %"$have_gas_482" + +"$have_gas_482": ; preds = %"$out_of_gas_481", %"$have_gas_472" + %"$consume_483" = sub i64 %"$gasrem_479", 2 + store i64 %"$consume_483", i64* @_gasrem, align 8 + %"$t_485" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_486" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_485", i32 0, i32 0 + %"$t_tag_487" = load i8, i8* %"$t_tag_486", align 1 + switch i8 %"$t_tag_487", label %"$empty_default_488" [ + i8 1, label %"$False_489" + i8 0, label %"$True_499" + ], !dbg !48 + +"$False_489": ; preds = %"$have_gas_482" + %"$t_490" = bitcast %TName_Bool* %"$t_485" to %CName_False* + %"$gasrem_491" = load i64, i64* @_gasrem, align 8 + %"$gascmp_492" = icmp ugt i64 1, %"$gasrem_491" + br i1 %"$gascmp_492", label %"$out_of_gas_493", label %"$have_gas_494" + +"$out_of_gas_493": ; preds = %"$False_489" + call void @_out_of_gas() + br label %"$have_gas_494" + +"$have_gas_494": ; preds = %"$out_of_gas_493", %"$False_489" + %"$consume_495" = sub i64 %"$gasrem_491", 1 + store i64 %"$consume_495", i64* @_gasrem, align 8 + %"$fail__origin_496" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_496", align 1 + %"$fail__sender_497" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_497", align 1 + %"$tname_498" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_496", [20 x i8]* %"$fail__sender_497", %String %"$tname_498"), !dbg !49 + br label %"$matchsucc_484" + +"$True_499": ; preds = %"$have_gas_482" + %"$t_500" = bitcast %TName_Bool* %"$t_485" to %CName_True* + br label %"$matchsucc_484" + +"$empty_default_488": ; preds = %"$have_gas_482" + br label %"$matchsucc_484" + +"$matchsucc_484": ; preds = %"$True_499", %"$have_gas_494", %"$empty_default_488" + %"$gasrem_501" = load i64, i64* @_gasrem, align 8 + %"$gascmp_502" = icmp ugt i64 1, %"$gasrem_501" + br i1 %"$gascmp_502", label %"$out_of_gas_503", label %"$have_gas_504" + +"$out_of_gas_503": ; preds = %"$matchsucc_484" + call void @_out_of_gas() + br label %"$have_gas_504" + +"$have_gas_504": ; preds = %"$out_of_gas_503", %"$matchsucc_484" + %"$consume_505" = sub i64 %"$gasrem_501", 1 + store i64 %"$consume_505", i64* @_gasrem, align 8 %key1 = alloca %String, align 8 - %"$gasrem_529" = load i64, i64* @_gasrem, align 8 - %"$gascmp_530" = icmp ugt i64 1, %"$gasrem_529" - br i1 %"$gascmp_530", label %"$out_of_gas_531", label %"$have_gas_532" + %"$gasrem_506" = load i64, i64* @_gasrem, align 8 + %"$gascmp_507" = icmp ugt i64 1, %"$gasrem_506" + br i1 %"$gascmp_507", label %"$out_of_gas_508", label %"$have_gas_509" -"$out_of_gas_531": ; preds = %"$have_gas_527" +"$out_of_gas_508": ; preds = %"$have_gas_504" call void @_out_of_gas() - br label %"$have_gas_532" + br label %"$have_gas_509" -"$have_gas_532": ; preds = %"$out_of_gas_531", %"$have_gas_527" - %"$consume_533" = sub i64 %"$gasrem_529", 1 - store i64 %"$consume_533", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_534", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !54 - %"$gasrem_535" = load i64, i64* @_gasrem, align 8 - %"$gascmp_536" = icmp ugt i64 1, %"$gasrem_535" - br i1 %"$gascmp_536", label %"$out_of_gas_537", label %"$have_gas_538" +"$have_gas_509": ; preds = %"$out_of_gas_508", %"$have_gas_504" + %"$consume_510" = sub i64 %"$gasrem_506", 1 + store i64 %"$consume_510", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_511", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !52 + %"$gasrem_512" = load i64, i64* @_gasrem, align 8 + %"$gascmp_513" = icmp ugt i64 1, %"$gasrem_512" + br i1 %"$gascmp_513", label %"$out_of_gas_514", label %"$have_gas_515" -"$out_of_gas_537": ; preds = %"$have_gas_532" +"$out_of_gas_514": ; preds = %"$have_gas_509" call void @_out_of_gas() - br label %"$have_gas_538" + br label %"$have_gas_515" -"$have_gas_538": ; preds = %"$out_of_gas_537", %"$have_gas_532" - %"$consume_539" = sub i64 %"$gasrem_535", 1 - store i64 %"$consume_539", i64* @_gasrem, align 8 +"$have_gas_515": ; preds = %"$out_of_gas_514", %"$have_gas_509" + %"$consume_516" = sub i64 %"$gasrem_512", 1 + store i64 %"$consume_516", i64* @_gasrem, align 8 %val1 = alloca %String, align 8 - %"$gasrem_540" = load i64, i64* @_gasrem, align 8 - %"$gascmp_541" = icmp ugt i64 1, %"$gasrem_540" - br i1 %"$gascmp_541", label %"$out_of_gas_542", label %"$have_gas_543" - -"$out_of_gas_542": ; preds = %"$have_gas_538" - call void @_out_of_gas() - br label %"$have_gas_543" - -"$have_gas_543": ; preds = %"$out_of_gas_542", %"$have_gas_538" - %"$consume_544" = sub i64 %"$gasrem_540", 1 - store i64 %"$consume_544", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_545", i32 0, i32 0), i32 3 }, %String* %val1, align 8, !dbg !55 - %"$_literal_cost_val1_546" = alloca %String, align 8 - %"$val1_547" = load %String, %String* %val1, align 8 - store %String %"$val1_547", %String* %"$_literal_cost_val1_546", align 8 - %"$$_literal_cost_val1_546_548" = bitcast %String* %"$_literal_cost_val1_546" to i8* - %"$_literal_cost_call_549" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_val1_546_548") - %"$gasadd_550" = add i64 %"$_literal_cost_call_549", 1 - %"$gasrem_551" = load i64, i64* @_gasrem, align 8 - %"$gascmp_552" = icmp ugt i64 %"$gasadd_550", %"$gasrem_551" - br i1 %"$gascmp_552", label %"$out_of_gas_553", label %"$have_gas_554" - -"$out_of_gas_553": ; preds = %"$have_gas_543" - call void @_out_of_gas() - br label %"$have_gas_554" - -"$have_gas_554": ; preds = %"$out_of_gas_553", %"$have_gas_543" - %"$consume_555" = sub i64 %"$gasrem_551", %"$gasadd_550" - store i64 %"$consume_555", i64* @_gasrem, align 8 - %"$indices_buf_556_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_556_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_556_salloc_load", i64 16) - %"$indices_buf_556_salloc" = bitcast i8* %"$indices_buf_556_salloc_salloc" to [16 x i8]* - %"$indices_buf_556" = bitcast [16 x i8]* %"$indices_buf_556_salloc" to i8* - %"$key1_557" = load %String, %String* %key1, align 8 - %"$indices_gep_558" = getelementptr i8, i8* %"$indices_buf_556", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_558" to %String* - store %String %"$key1_557", %String* %indices_cast, align 8 - %"$execptr_load_559" = load i8*, i8** @_execptr, align 8 - %"$val1_561" = load %String, %String* %val1, align 8 - %"$update_value_562" = alloca %String, align 8 - store %String %"$val1_561", %String* %"$update_value_562", align 8 - %"$update_value_563" = bitcast %String* %"$update_value_562" to i8* - call void @_update_field(i8* %"$execptr_load_559", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_560", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_556", i8* %"$update_value_563"), !dbg !56 + %"$gasrem_517" = load i64, i64* @_gasrem, align 8 + %"$gascmp_518" = icmp ugt i64 1, %"$gasrem_517" + br i1 %"$gascmp_518", label %"$out_of_gas_519", label %"$have_gas_520" + +"$out_of_gas_519": ; preds = %"$have_gas_515" + call void @_out_of_gas() + br label %"$have_gas_520" + +"$have_gas_520": ; preds = %"$out_of_gas_519", %"$have_gas_515" + %"$consume_521" = sub i64 %"$gasrem_517", 1 + store i64 %"$consume_521", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_522", i32 0, i32 0), i32 3 }, %String* %val1, align 8, !dbg !53 + %"$_literal_cost_val1_523" = alloca %String, align 8 + %"$val1_524" = load %String, %String* %val1, align 8 + store %String %"$val1_524", %String* %"$_literal_cost_val1_523", align 8 + %"$$_literal_cost_val1_523_525" = bitcast %String* %"$_literal_cost_val1_523" to i8* + %"$_literal_cost_call_526" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_val1_523_525") + %"$gasadd_527" = add i64 %"$_literal_cost_call_526", 1 + %"$gasrem_528" = load i64, i64* @_gasrem, align 8 + %"$gascmp_529" = icmp ugt i64 %"$gasadd_527", %"$gasrem_528" + br i1 %"$gascmp_529", label %"$out_of_gas_530", label %"$have_gas_531" + +"$out_of_gas_530": ; preds = %"$have_gas_520" + call void @_out_of_gas() + br label %"$have_gas_531" + +"$have_gas_531": ; preds = %"$out_of_gas_530", %"$have_gas_520" + %"$consume_532" = sub i64 %"$gasrem_528", %"$gasadd_527" + store i64 %"$consume_532", i64* @_gasrem, align 8 + %"$indices_buf_533_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_533_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_533_salloc_load", i64 16) + %"$indices_buf_533_salloc" = bitcast i8* %"$indices_buf_533_salloc_salloc" to [16 x i8]* + %"$indices_buf_533" = bitcast [16 x i8]* %"$indices_buf_533_salloc" to i8* + %"$key1_534" = load %String, %String* %key1, align 8 + %"$indices_gep_535" = getelementptr i8, i8* %"$indices_buf_533", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_535" to %String* + store %String %"$key1_534", %String* %indices_cast, align 8 + %"$execptr_load_536" = load i8*, i8** @_execptr, align 8 + %"$val1_538" = load %String, %String* %val1, align 8 + %"$update_value_539" = alloca %String, align 8 + store %String %"$val1_538", %String* %"$update_value_539", align 8 + %"$update_value_540" = bitcast %String* %"$update_value_539" to i8* + call void @_update_field(i8* %"$execptr_load_536", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_537", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_533", i8* %"$update_value_540"), !dbg !54 ret void } -define void @t2(i8* %0) !dbg !57 { +define void @t2(i8* %0) !dbg !55 { entry: - %"$_amount_565" = getelementptr i8, i8* %0, i32 0 - %"$_amount_566" = bitcast i8* %"$_amount_565" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_566", align 8 - %"$_origin_567" = getelementptr i8, i8* %0, i32 16 - %"$_origin_568" = bitcast i8* %"$_origin_567" to [20 x i8]* - %"$_sender_569" = getelementptr i8, i8* %0, i32 36 - %"$_sender_570" = bitcast i8* %"$_sender_569" to [20 x i8]* - call void @"$t2_438"(%Uint128 %_amount, [20 x i8]* %"$_origin_568", [20 x i8]* %"$_sender_570"), !dbg !58 + %"$_amount_542" = getelementptr i8, i8* %0, i32 0 + %"$_amount_543" = bitcast i8* %"$_amount_542" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_543", align 8 + %"$_origin_544" = getelementptr i8, i8* %0, i32 16 + %"$_origin_545" = bitcast i8* %"$_origin_544" to [20 x i8]* + %"$_sender_546" = getelementptr i8, i8* %0, i32 36 + %"$_sender_547" = bitcast i8* %"$_sender_546" to [20 x i8]* + call void @"$t2_415"(%Uint128 %_amount, [20 x i8]* %"$_origin_545", [20 x i8]* %"$_sender_547"), !dbg !56 ret void } -define internal void @"$t3_571"(%Uint128 %_amount, [20 x i8]* %"$_origin_572", [20 x i8]* %"$_sender_573") !dbg !59 { +define internal void @"$t3_548"(%Uint128 %_amount, [20 x i8]* %"$_origin_549", [20 x i8]* %"$_sender_550") !dbg !57 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_572", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_573", align 1 - %"$gasrem_574" = load i64, i64* @_gasrem, align 8 - %"$gascmp_575" = icmp ugt i64 1, %"$gasrem_574" - br i1 %"$gascmp_575", label %"$out_of_gas_576", label %"$have_gas_577" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_549", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_550", align 1 + %"$gasrem_551" = load i64, i64* @_gasrem, align 8 + %"$gascmp_552" = icmp ugt i64 1, %"$gasrem_551" + br i1 %"$gascmp_552", label %"$out_of_gas_553", label %"$have_gas_554" -"$out_of_gas_576": ; preds = %entry +"$out_of_gas_553": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_577" + br label %"$have_gas_554" -"$have_gas_577": ; preds = %"$out_of_gas_576", %entry - %"$consume_578" = sub i64 %"$gasrem_574", 1 - store i64 %"$consume_578", i64* @_gasrem, align 8 +"$have_gas_554": ; preds = %"$out_of_gas_553", %entry + %"$consume_555" = sub i64 %"$gasrem_551", 1 + store i64 %"$consume_555", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_579" = load i64, i64* @_gasrem, align 8 - %"$gascmp_580" = icmp ugt i64 1, %"$gasrem_579" - br i1 %"$gascmp_580", label %"$out_of_gas_581", label %"$have_gas_582" + %"$gasrem_556" = load i64, i64* @_gasrem, align 8 + %"$gascmp_557" = icmp ugt i64 1, %"$gasrem_556" + br i1 %"$gascmp_557", label %"$out_of_gas_558", label %"$have_gas_559" -"$out_of_gas_581": ; preds = %"$have_gas_577" +"$out_of_gas_558": ; preds = %"$have_gas_554" call void @_out_of_gas() - br label %"$have_gas_582" + br label %"$have_gas_559" -"$have_gas_582": ; preds = %"$out_of_gas_581", %"$have_gas_577" - %"$consume_583" = sub i64 %"$gasrem_579", 1 - store i64 %"$consume_583", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_584", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !60 - %"$gasrem_585" = load i64, i64* @_gasrem, align 8 - %"$gascmp_586" = icmp ugt i64 1, %"$gasrem_585" - br i1 %"$gascmp_586", label %"$out_of_gas_587", label %"$have_gas_588" +"$have_gas_559": ; preds = %"$out_of_gas_558", %"$have_gas_554" + %"$consume_560" = sub i64 %"$gasrem_556", 1 + store i64 %"$consume_560", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_561", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !58 + %"$gasrem_562" = load i64, i64* @_gasrem, align 8 + %"$gascmp_563" = icmp ugt i64 1, %"$gasrem_562" + br i1 %"$gascmp_563", label %"$out_of_gas_564", label %"$have_gas_565" -"$out_of_gas_587": ; preds = %"$have_gas_582" +"$out_of_gas_564": ; preds = %"$have_gas_559" call void @_out_of_gas() - br label %"$have_gas_588" + br label %"$have_gas_565" -"$have_gas_588": ; preds = %"$out_of_gas_587", %"$have_gas_582" - %"$consume_589" = sub i64 %"$gasrem_585", 1 - store i64 %"$consume_589", i64* @_gasrem, align 8 +"$have_gas_565": ; preds = %"$out_of_gas_564", %"$have_gas_559" + %"$consume_566" = sub i64 %"$gasrem_562", 1 + store i64 %"$consume_566", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_590" = load i64, i64* @_gasrem, align 8 - %"$gascmp_591" = icmp ugt i64 1, %"$gasrem_590" - br i1 %"$gascmp_591", label %"$out_of_gas_592", label %"$have_gas_593" + %"$gasrem_567" = load i64, i64* @_gasrem, align 8 + %"$gascmp_568" = icmp ugt i64 1, %"$gasrem_567" + br i1 %"$gascmp_568", label %"$out_of_gas_569", label %"$have_gas_570" -"$out_of_gas_592": ; preds = %"$have_gas_588" +"$out_of_gas_569": ; preds = %"$have_gas_565" call void @_out_of_gas() - br label %"$have_gas_593" + br label %"$have_gas_570" + +"$have_gas_570": ; preds = %"$out_of_gas_569", %"$have_gas_565" + %"$consume_571" = sub i64 %"$gasrem_567", 1 + store i64 %"$consume_571", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_572", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !59 + %"$gasrem_573" = load i64, i64* @_gasrem, align 8 + %"$gascmp_574" = icmp ugt i64 1, %"$gasrem_573" + br i1 %"$gascmp_574", label %"$out_of_gas_575", label %"$have_gas_576" + +"$out_of_gas_575": ; preds = %"$have_gas_570" + call void @_out_of_gas() + br label %"$have_gas_576" + +"$have_gas_576": ; preds = %"$out_of_gas_575", %"$have_gas_570" + %"$consume_577" = sub i64 %"$gasrem_573", 1 + store i64 %"$consume_577", i64* @_gasrem, align 8 + %key1 = alloca %String, align 8 + %"$gasrem_578" = load i64, i64* @_gasrem, align 8 + %"$gascmp_579" = icmp ugt i64 1, %"$gasrem_578" + br i1 %"$gascmp_579", label %"$out_of_gas_580", label %"$have_gas_581" -"$have_gas_593": ; preds = %"$out_of_gas_592", %"$have_gas_588" - %"$consume_594" = sub i64 %"$gasrem_590", 1 - store i64 %"$consume_594", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_595", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !61 +"$out_of_gas_580": ; preds = %"$have_gas_576" + call void @_out_of_gas() + br label %"$have_gas_581" + +"$have_gas_581": ; preds = %"$out_of_gas_580", %"$have_gas_576" + %"$consume_582" = sub i64 %"$gasrem_578", 1 + store i64 %"$consume_582", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_583", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !60 + %val1 = alloca %TName_Option_String*, align 8 + %"$indices_buf_584_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_584_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_584_salloc_load", i64 16) + %"$indices_buf_584_salloc" = bitcast i8* %"$indices_buf_584_salloc_salloc" to [16 x i8]* + %"$indices_buf_584" = bitcast [16 x i8]* %"$indices_buf_584_salloc" to i8* + %"$key1_585" = load %String, %String* %key1, align 8 + %"$indices_gep_586" = getelementptr i8, i8* %"$indices_buf_584", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_586" to %String* + store %String %"$key1_585", %String* %indices_cast, align 8 + %"$execptr_load_588" = load i8*, i8** @_execptr, align 8 + %"$val1_call_589" = call i8* @_fetch_field(i8* %"$execptr_load_588", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_587", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_584", i32 1), !dbg !61 + %"$val1_590" = bitcast i8* %"$val1_call_589" to %TName_Option_String* + store %TName_Option_String* %"$val1_590", %TName_Option_String** %val1, align 8 + %"$val1_591" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 + %"$$val1_591_592" = bitcast %TName_Option_String* %"$val1_591" to i8* + %"$_literal_cost_call_593" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$val1_591_592") + %"$gasadd_594" = add i64 %"$_literal_cost_call_593", 0 + %"$gasadd_595" = add i64 %"$gasadd_594", 1 %"$gasrem_596" = load i64, i64* @_gasrem, align 8 - %"$gascmp_597" = icmp ugt i64 1, %"$gasrem_596" + %"$gascmp_597" = icmp ugt i64 %"$gasadd_595", %"$gasrem_596" br i1 %"$gascmp_597", label %"$out_of_gas_598", label %"$have_gas_599" -"$out_of_gas_598": ; preds = %"$have_gas_593" +"$out_of_gas_598": ; preds = %"$have_gas_581" call void @_out_of_gas() br label %"$have_gas_599" -"$have_gas_599": ; preds = %"$out_of_gas_598", %"$have_gas_593" - %"$consume_600" = sub i64 %"$gasrem_596", 1 +"$have_gas_599": ; preds = %"$out_of_gas_598", %"$have_gas_581" + %"$consume_600" = sub i64 %"$gasrem_596", %"$gasadd_595" store i64 %"$consume_600", i64* @_gasrem, align 8 - %key1 = alloca %String, align 8 %"$gasrem_601" = load i64, i64* @_gasrem, align 8 - %"$gascmp_602" = icmp ugt i64 1, %"$gasrem_601" + %"$gascmp_602" = icmp ugt i64 2, %"$gasrem_601" br i1 %"$gascmp_602", label %"$out_of_gas_603", label %"$have_gas_604" "$out_of_gas_603": ; preds = %"$have_gas_599" @@ -1353,216 +1362,216 @@ entry: br label %"$have_gas_604" "$have_gas_604": ; preds = %"$out_of_gas_603", %"$have_gas_599" - %"$consume_605" = sub i64 %"$gasrem_601", 1 + %"$consume_605" = sub i64 %"$gasrem_601", 2 store i64 %"$consume_605", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_606", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !62 - %val1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_607_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_607_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_607_salloc_load", i64 16) - %"$indices_buf_607_salloc" = bitcast i8* %"$indices_buf_607_salloc_salloc" to [16 x i8]* - %"$indices_buf_607" = bitcast [16 x i8]* %"$indices_buf_607_salloc" to i8* - %"$key1_608" = load %String, %String* %key1, align 8 - %"$indices_gep_609" = getelementptr i8, i8* %"$indices_buf_607", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_609" to %String* - store %String %"$key1_608", %String* %indices_cast, align 8 - %"$execptr_load_611" = load i8*, i8** @_execptr, align 8 - %"$val1_call_612" = call i8* @_fetch_field(i8* %"$execptr_load_611", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_610", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_607", i32 1), !dbg !63 - %"$val1_613" = bitcast i8* %"$val1_call_612" to %TName_Option_String* - store %TName_Option_String* %"$val1_613", %TName_Option_String** %val1, align 8 - %"$val1_614" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 - %"$$val1_614_615" = bitcast %TName_Option_String* %"$val1_614" to i8* - %"$_literal_cost_call_616" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$val1_614_615") - %"$gasadd_617" = add i64 %"$_literal_cost_call_616", 0 - %"$gasadd_618" = add i64 %"$gasadd_617", 1 - %"$gasrem_619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_620" = icmp ugt i64 %"$gasadd_618", %"$gasrem_619" - br i1 %"$gascmp_620", label %"$out_of_gas_621", label %"$have_gas_622" - -"$out_of_gas_621": ; preds = %"$have_gas_604" - call void @_out_of_gas() - br label %"$have_gas_622" - -"$have_gas_622": ; preds = %"$out_of_gas_621", %"$have_gas_604" - %"$consume_623" = sub i64 %"$gasrem_619", %"$gasadd_618" - store i64 %"$consume_623", i64* @_gasrem, align 8 - %"$gasrem_624" = load i64, i64* @_gasrem, align 8 - %"$gascmp_625" = icmp ugt i64 2, %"$gasrem_624" - br i1 %"$gascmp_625", label %"$out_of_gas_626", label %"$have_gas_627" - -"$out_of_gas_626": ; preds = %"$have_gas_622" - call void @_out_of_gas() - br label %"$have_gas_627" - -"$have_gas_627": ; preds = %"$out_of_gas_626", %"$have_gas_622" - %"$consume_628" = sub i64 %"$gasrem_624", 2 - store i64 %"$consume_628", i64* @_gasrem, align 8 - %"$val1_630" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 - %"$val1_tag_631" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val1_630", i32 0, i32 0 - %"$val1_tag_632" = load i8, i8* %"$val1_tag_631", align 1 - switch i8 %"$val1_tag_632", label %"$empty_default_633" [ - i8 0, label %"$Some_634" - i8 1, label %"$None_696" - ], !dbg !64 - -"$Some_634": ; preds = %"$have_gas_627" - %"$val1_635" = bitcast %TName_Option_String* %"$val1_630" to %CName_Some_String* - %"$val_gep_636" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val1_635", i32 0, i32 1 - %"$val_load_637" = load %String, %String* %"$val_gep_636", align 8 + %"$val1_607" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 + %"$val1_tag_608" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val1_607", i32 0, i32 0 + %"$val1_tag_609" = load i8, i8* %"$val1_tag_608", align 1 + switch i8 %"$val1_tag_609", label %"$empty_default_610" [ + i8 0, label %"$Some_611" + i8 1, label %"$None_673" + ], !dbg !62 + +"$Some_611": ; preds = %"$have_gas_604" + %"$val1_612" = bitcast %TName_Option_String* %"$val1_607" to %CName_Some_String* + %"$val_gep_613" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val1_612", i32 0, i32 1 + %"$val_load_614" = load %String, %String* %"$val_gep_613", align 8 %val = alloca %String, align 8 - store %String %"$val_load_637", %String* %val, align 8 - %"$gasrem_638" = load i64, i64* @_gasrem, align 8 - %"$gascmp_639" = icmp ugt i64 1, %"$gasrem_638" - br i1 %"$gascmp_639", label %"$out_of_gas_640", label %"$have_gas_641" + store %String %"$val_load_614", %String* %val, align 8 + %"$gasrem_615" = load i64, i64* @_gasrem, align 8 + %"$gascmp_616" = icmp ugt i64 1, %"$gasrem_615" + br i1 %"$gascmp_616", label %"$out_of_gas_617", label %"$have_gas_618" -"$out_of_gas_640": ; preds = %"$Some_634" +"$out_of_gas_617": ; preds = %"$Some_611" call void @_out_of_gas() - br label %"$have_gas_641" + br label %"$have_gas_618" -"$have_gas_641": ; preds = %"$out_of_gas_640", %"$Some_634" - %"$consume_642" = sub i64 %"$gasrem_638", 1 - store i64 %"$consume_642", i64* @_gasrem, align 8 +"$have_gas_618": ; preds = %"$out_of_gas_617", %"$Some_611" + %"$consume_619" = sub i64 %"$gasrem_615", 1 + store i64 %"$consume_619", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_val_643" = alloca %String, align 8 - %"$val_644" = load %String, %String* %val, align 8 - store %String %"$val_644", %String* %"$_literal_cost_val_643", align 8 - %"$$_literal_cost_val_643_645" = bitcast %String* %"$_literal_cost_val_643" to i8* - %"$_literal_cost_call_646" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_val_643_645") - %"$_literal_cost_s_647" = alloca %String, align 8 - %"$s_648" = load %String, %String* %s, align 8 - store %String %"$s_648", %String* %"$_literal_cost_s_647", align 8 - %"$$_literal_cost_s_647_649" = bitcast %String* %"$_literal_cost_s_647" to i8* - %"$_literal_cost_call_650" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_647_649") - %"$gasmin_651" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_646", i64 %"$_literal_cost_call_650") - %"$gasrem_652" = load i64, i64* @_gasrem, align 8 - %"$gascmp_653" = icmp ugt i64 %"$gasmin_651", %"$gasrem_652" - br i1 %"$gascmp_653", label %"$out_of_gas_654", label %"$have_gas_655" - -"$out_of_gas_654": ; preds = %"$have_gas_641" - call void @_out_of_gas() - br label %"$have_gas_655" - -"$have_gas_655": ; preds = %"$out_of_gas_654", %"$have_gas_641" - %"$consume_656" = sub i64 %"$gasrem_652", %"$gasmin_651" - store i64 %"$consume_656", i64* @_gasrem, align 8 - %"$execptr_load_657" = load i8*, i8** @_execptr, align 8 - %"$val_658" = load %String, %String* %val, align 8 - %"$s_659" = load %String, %String* %s, align 8 - %"$eq_call_660" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_657", %String %"$val_658", %String %"$s_659"), !dbg !65 - store %TName_Bool* %"$eq_call_660", %TName_Bool** %t, align 8, !dbg !65 + %"$_literal_cost_val_620" = alloca %String, align 8 + %"$val_621" = load %String, %String* %val, align 8 + store %String %"$val_621", %String* %"$_literal_cost_val_620", align 8 + %"$$_literal_cost_val_620_622" = bitcast %String* %"$_literal_cost_val_620" to i8* + %"$_literal_cost_call_623" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_val_620_622") + %"$_literal_cost_s_624" = alloca %String, align 8 + %"$s_625" = load %String, %String* %s, align 8 + store %String %"$s_625", %String* %"$_literal_cost_s_624", align 8 + %"$$_literal_cost_s_624_626" = bitcast %String* %"$_literal_cost_s_624" to i8* + %"$_literal_cost_call_627" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_624_626") + %"$gasmin_628" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_623", i64 %"$_literal_cost_call_627") + %"$gasrem_629" = load i64, i64* @_gasrem, align 8 + %"$gascmp_630" = icmp ugt i64 %"$gasmin_628", %"$gasrem_629" + br i1 %"$gascmp_630", label %"$out_of_gas_631", label %"$have_gas_632" + +"$out_of_gas_631": ; preds = %"$have_gas_618" + call void @_out_of_gas() + br label %"$have_gas_632" + +"$have_gas_632": ; preds = %"$out_of_gas_631", %"$have_gas_618" + %"$consume_633" = sub i64 %"$gasrem_629", %"$gasmin_628" + store i64 %"$consume_633", i64* @_gasrem, align 8 + %"$execptr_load_634" = load i8*, i8** @_execptr, align 8 + %"$val_635" = load %String, %String* %val, align 8 + %"$s_636" = load %String, %String* %s, align 8 + %"$eq_call_637" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_634", %String %"$val_635", %String %"$s_636"), !dbg !63 + store %TName_Bool* %"$eq_call_637", %TName_Bool** %t, align 8, !dbg !63 + %"$gasrem_639" = load i64, i64* @_gasrem, align 8 + %"$gascmp_640" = icmp ugt i64 2, %"$gasrem_639" + br i1 %"$gascmp_640", label %"$out_of_gas_641", label %"$have_gas_642" + +"$out_of_gas_641": ; preds = %"$have_gas_632" + call void @_out_of_gas() + br label %"$have_gas_642" + +"$have_gas_642": ; preds = %"$out_of_gas_641", %"$have_gas_632" + %"$consume_643" = sub i64 %"$gasrem_639", 2 + store i64 %"$consume_643", i64* @_gasrem, align 8 + %"$t_645" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_646" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_645", i32 0, i32 0 + %"$t_tag_647" = load i8, i8* %"$t_tag_646", align 1 + switch i8 %"$t_tag_647", label %"$empty_default_648" [ + i8 1, label %"$False_649" + i8 0, label %"$True_671" + ], !dbg !66 + +"$False_649": ; preds = %"$have_gas_642" + %"$t_650" = bitcast %TName_Bool* %"$t_645" to %CName_False* + %"$gasrem_651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_652" = icmp ugt i64 1, %"$gasrem_651" + br i1 %"$gascmp_652", label %"$out_of_gas_653", label %"$have_gas_654" + +"$out_of_gas_653": ; preds = %"$False_649" + call void @_out_of_gas() + br label %"$have_gas_654" + +"$have_gas_654": ; preds = %"$out_of_gas_653", %"$False_649" + %"$consume_655" = sub i64 %"$gasrem_651", 1 + store i64 %"$consume_655", i64* @_gasrem, align 8 + %m = alloca %String, align 8 + %"$gasrem_656" = load i64, i64* @_gasrem, align 8 + %"$gascmp_657" = icmp ugt i64 1, %"$gasrem_656" + br i1 %"$gascmp_657", label %"$out_of_gas_658", label %"$have_gas_659" + +"$out_of_gas_658": ; preds = %"$have_gas_654" + call void @_out_of_gas() + br label %"$have_gas_659" + +"$have_gas_659": ; preds = %"$out_of_gas_658", %"$have_gas_654" + %"$consume_660" = sub i64 %"$gasrem_656", 1 + store i64 %"$consume_660", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_661", i32 0, i32 0), i32 23 }, %String* %m, align 8, !dbg !67 %"$gasrem_662" = load i64, i64* @_gasrem, align 8 - %"$gascmp_663" = icmp ugt i64 2, %"$gasrem_662" + %"$gascmp_663" = icmp ugt i64 1, %"$gasrem_662" br i1 %"$gascmp_663", label %"$out_of_gas_664", label %"$have_gas_665" -"$out_of_gas_664": ; preds = %"$have_gas_655" +"$out_of_gas_664": ; preds = %"$have_gas_659" call void @_out_of_gas() br label %"$have_gas_665" -"$have_gas_665": ; preds = %"$out_of_gas_664", %"$have_gas_655" - %"$consume_666" = sub i64 %"$gasrem_662", 2 +"$have_gas_665": ; preds = %"$out_of_gas_664", %"$have_gas_659" + %"$consume_666" = sub i64 %"$gasrem_662", 1 store i64 %"$consume_666", i64* @_gasrem, align 8 - %"$t_668" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_669" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_668", i32 0, i32 0 - %"$t_tag_670" = load i8, i8* %"$t_tag_669", align 1 - switch i8 %"$t_tag_670", label %"$empty_default_671" [ - i8 1, label %"$False_672" - i8 0, label %"$True_694" - ], !dbg !68 - -"$False_672": ; preds = %"$have_gas_665" - %"$t_673" = bitcast %TName_Bool* %"$t_668" to %CName_False* - %"$gasrem_674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_675" = icmp ugt i64 1, %"$gasrem_674" - br i1 %"$gascmp_675", label %"$out_of_gas_676", label %"$have_gas_677" - -"$out_of_gas_676": ; preds = %"$False_672" - call void @_out_of_gas() - br label %"$have_gas_677" - -"$have_gas_677": ; preds = %"$out_of_gas_676", %"$False_672" - %"$consume_678" = sub i64 %"$gasrem_674", 1 - store i64 %"$consume_678", i64* @_gasrem, align 8 - %m = alloca %String, align 8 - %"$gasrem_679" = load i64, i64* @_gasrem, align 8 - %"$gascmp_680" = icmp ugt i64 1, %"$gasrem_679" - br i1 %"$gascmp_680", label %"$out_of_gas_681", label %"$have_gas_682" - -"$out_of_gas_681": ; preds = %"$have_gas_677" - call void @_out_of_gas() - br label %"$have_gas_682" - -"$have_gas_682": ; preds = %"$out_of_gas_681", %"$have_gas_677" - %"$consume_683" = sub i64 %"$gasrem_679", 1 - store i64 %"$consume_683", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_684", i32 0, i32 0), i32 23 }, %String* %m, align 8, !dbg !69 - %"$gasrem_685" = load i64, i64* @_gasrem, align 8 - %"$gascmp_686" = icmp ugt i64 1, %"$gasrem_685" - br i1 %"$gascmp_686", label %"$out_of_gas_687", label %"$have_gas_688" - -"$out_of_gas_687": ; preds = %"$have_gas_682" - call void @_out_of_gas() - br label %"$have_gas_688" - -"$have_gas_688": ; preds = %"$out_of_gas_687", %"$have_gas_682" - %"$consume_689" = sub i64 %"$gasrem_685", 1 - store i64 %"$consume_689", i64* @_gasrem, align 8 - %"$fail_msg__origin_690" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_690", align 1 - %"$fail_msg__sender_691" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_691", align 1 - %"$tname_692" = load %String, %String* %tname, align 8 - %"$m_693" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_690", [20 x i8]* %"$fail_msg__sender_691", %String %"$tname_692", %String %"$m_693"), !dbg !72 - br label %"$matchsucc_667" - -"$True_694": ; preds = %"$have_gas_665" - %"$t_695" = bitcast %TName_Bool* %"$t_668" to %CName_True* - br label %"$matchsucc_667" - -"$empty_default_671": ; preds = %"$have_gas_665" - br label %"$matchsucc_667" - -"$matchsucc_667": ; preds = %"$True_694", %"$have_gas_688", %"$empty_default_671" - br label %"$matchsucc_629" - -"$None_696": ; preds = %"$have_gas_627" - %"$val1_697" = bitcast %TName_Option_String* %"$val1_630" to %CName_None_String* - %"$gasrem_698" = load i64, i64* @_gasrem, align 8 - %"$gascmp_699" = icmp ugt i64 1, %"$gasrem_698" - br i1 %"$gascmp_699", label %"$out_of_gas_700", label %"$have_gas_701" - -"$out_of_gas_700": ; preds = %"$None_696" - call void @_out_of_gas() - br label %"$have_gas_701" - -"$have_gas_701": ; preds = %"$out_of_gas_700", %"$None_696" - %"$consume_702" = sub i64 %"$gasrem_698", 1 - store i64 %"$consume_702", i64* @_gasrem, align 8 - %"$fail__origin_703" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_703", align 1 - %"$fail__sender_704" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_704", align 1 - %"$tname_705" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_703", [20 x i8]* %"$fail__sender_704", %String %"$tname_705"), !dbg !73 - br label %"$matchsucc_629" - -"$empty_default_633": ; preds = %"$have_gas_627" - br label %"$matchsucc_629" - -"$matchsucc_629": ; preds = %"$have_gas_701", %"$matchsucc_667", %"$empty_default_633" + %"$fail_msg__origin_667" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_667", align 1 + %"$fail_msg__sender_668" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_668", align 1 + %"$tname_669" = load %String, %String* %tname, align 8 + %"$m_670" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_667", [20 x i8]* %"$fail_msg__sender_668", %String %"$tname_669", %String %"$m_670"), !dbg !70 + br label %"$matchsucc_644" + +"$True_671": ; preds = %"$have_gas_642" + %"$t_672" = bitcast %TName_Bool* %"$t_645" to %CName_True* + br label %"$matchsucc_644" + +"$empty_default_648": ; preds = %"$have_gas_642" + br label %"$matchsucc_644" + +"$matchsucc_644": ; preds = %"$True_671", %"$have_gas_665", %"$empty_default_648" + br label %"$matchsucc_606" + +"$None_673": ; preds = %"$have_gas_604" + %"$val1_674" = bitcast %TName_Option_String* %"$val1_607" to %CName_None_String* + %"$gasrem_675" = load i64, i64* @_gasrem, align 8 + %"$gascmp_676" = icmp ugt i64 1, %"$gasrem_675" + br i1 %"$gascmp_676", label %"$out_of_gas_677", label %"$have_gas_678" + +"$out_of_gas_677": ; preds = %"$None_673" + call void @_out_of_gas() + br label %"$have_gas_678" + +"$have_gas_678": ; preds = %"$out_of_gas_677", %"$None_673" + %"$consume_679" = sub i64 %"$gasrem_675", 1 + store i64 %"$consume_679", i64* @_gasrem, align 8 + %"$fail__origin_680" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_680", align 1 + %"$fail__sender_681" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_681", align 1 + %"$tname_682" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_680", [20 x i8]* %"$fail__sender_681", %String %"$tname_682"), !dbg !71 + br label %"$matchsucc_606" + +"$empty_default_610": ; preds = %"$have_gas_604" + br label %"$matchsucc_606" + +"$matchsucc_606": ; preds = %"$have_gas_678", %"$matchsucc_644", %"$empty_default_610" + %"$gasrem_683" = load i64, i64* @_gasrem, align 8 + %"$gascmp_684" = icmp ugt i64 1, %"$gasrem_683" + br i1 %"$gascmp_684", label %"$out_of_gas_685", label %"$have_gas_686" + +"$out_of_gas_685": ; preds = %"$matchsucc_606" + call void @_out_of_gas() + br label %"$have_gas_686" + +"$have_gas_686": ; preds = %"$out_of_gas_685", %"$matchsucc_606" + %"$consume_687" = sub i64 %"$gasrem_683", 1 + store i64 %"$consume_687", i64* @_gasrem, align 8 + %key2 = alloca %String, align 8 + %"$gasrem_688" = load i64, i64* @_gasrem, align 8 + %"$gascmp_689" = icmp ugt i64 1, %"$gasrem_688" + br i1 %"$gascmp_689", label %"$out_of_gas_690", label %"$have_gas_691" + +"$out_of_gas_690": ; preds = %"$have_gas_686" + call void @_out_of_gas() + br label %"$have_gas_691" + +"$have_gas_691": ; preds = %"$out_of_gas_690", %"$have_gas_686" + %"$consume_692" = sub i64 %"$gasrem_688", 1 + store i64 %"$consume_692", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_693", i32 0, i32 0), i32 4 }, %String* %key2, align 8, !dbg !73 + %val2 = alloca %TName_Option_String*, align 8 + %"$indices_buf_694_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_694_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_694_salloc_load", i64 16) + %"$indices_buf_694_salloc" = bitcast i8* %"$indices_buf_694_salloc_salloc" to [16 x i8]* + %"$indices_buf_694" = bitcast [16 x i8]* %"$indices_buf_694_salloc" to i8* + %"$key2_695" = load %String, %String* %key2, align 8 + %"$indices_gep_696" = getelementptr i8, i8* %"$indices_buf_694", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_696" to %String* + store %String %"$key2_695", %String* %indices_cast1, align 8 + %"$execptr_load_698" = load i8*, i8** @_execptr, align 8 + %"$val2_call_699" = call i8* @_fetch_field(i8* %"$execptr_load_698", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_697", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_694", i32 1), !dbg !74 + %"$val2_700" = bitcast i8* %"$val2_call_699" to %TName_Option_String* + store %TName_Option_String* %"$val2_700", %TName_Option_String** %val2, align 8 + %"$val2_701" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 + %"$$val2_701_702" = bitcast %TName_Option_String* %"$val2_701" to i8* + %"$_literal_cost_call_703" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$val2_701_702") + %"$gasadd_704" = add i64 %"$_literal_cost_call_703", 0 + %"$gasadd_705" = add i64 %"$gasadd_704", 1 %"$gasrem_706" = load i64, i64* @_gasrem, align 8 - %"$gascmp_707" = icmp ugt i64 1, %"$gasrem_706" + %"$gascmp_707" = icmp ugt i64 %"$gasadd_705", %"$gasrem_706" br i1 %"$gascmp_707", label %"$out_of_gas_708", label %"$have_gas_709" -"$out_of_gas_708": ; preds = %"$matchsucc_629" +"$out_of_gas_708": ; preds = %"$have_gas_691" call void @_out_of_gas() br label %"$have_gas_709" -"$have_gas_709": ; preds = %"$out_of_gas_708", %"$matchsucc_629" - %"$consume_710" = sub i64 %"$gasrem_706", 1 +"$have_gas_709": ; preds = %"$out_of_gas_708", %"$have_gas_691" + %"$consume_710" = sub i64 %"$gasrem_706", %"$gasadd_705" store i64 %"$consume_710", i64* @_gasrem, align 8 - %key2 = alloca %String, align 8 %"$gasrem_711" = load i64, i64* @_gasrem, align 8 - %"$gascmp_712" = icmp ugt i64 1, %"$gasrem_711" + %"$gascmp_712" = icmp ugt i64 2, %"$gasrem_711" br i1 %"$gascmp_712", label %"$out_of_gas_713", label %"$have_gas_714" "$out_of_gas_713": ; preds = %"$have_gas_709" @@ -1570,194 +1579,194 @@ entry: br label %"$have_gas_714" "$have_gas_714": ; preds = %"$out_of_gas_713", %"$have_gas_709" - %"$consume_715" = sub i64 %"$gasrem_711", 1 + %"$consume_715" = sub i64 %"$gasrem_711", 2 store i64 %"$consume_715", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_716", i32 0, i32 0), i32 4 }, %String* %key2, align 8, !dbg !75 - %val2 = alloca %TName_Option_String*, align 8 - %"$indices_buf_717_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_717_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_717_salloc_load", i64 16) - %"$indices_buf_717_salloc" = bitcast i8* %"$indices_buf_717_salloc_salloc" to [16 x i8]* - %"$indices_buf_717" = bitcast [16 x i8]* %"$indices_buf_717_salloc" to i8* - %"$key2_718" = load %String, %String* %key2, align 8 - %"$indices_gep_719" = getelementptr i8, i8* %"$indices_buf_717", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_719" to %String* - store %String %"$key2_718", %String* %indices_cast1, align 8 - %"$execptr_load_721" = load i8*, i8** @_execptr, align 8 - %"$val2_call_722" = call i8* @_fetch_field(i8* %"$execptr_load_721", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_720", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_717", i32 1), !dbg !76 - %"$val2_723" = bitcast i8* %"$val2_call_722" to %TName_Option_String* - store %TName_Option_String* %"$val2_723", %TName_Option_String** %val2, align 8 - %"$val2_724" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 - %"$$val2_724_725" = bitcast %TName_Option_String* %"$val2_724" to i8* - %"$_literal_cost_call_726" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$val2_724_725") - %"$gasadd_727" = add i64 %"$_literal_cost_call_726", 0 - %"$gasadd_728" = add i64 %"$gasadd_727", 1 - %"$gasrem_729" = load i64, i64* @_gasrem, align 8 - %"$gascmp_730" = icmp ugt i64 %"$gasadd_728", %"$gasrem_729" - br i1 %"$gascmp_730", label %"$out_of_gas_731", label %"$have_gas_732" - -"$out_of_gas_731": ; preds = %"$have_gas_714" - call void @_out_of_gas() - br label %"$have_gas_732" - -"$have_gas_732": ; preds = %"$out_of_gas_731", %"$have_gas_714" - %"$consume_733" = sub i64 %"$gasrem_729", %"$gasadd_728" - store i64 %"$consume_733", i64* @_gasrem, align 8 - %"$gasrem_734" = load i64, i64* @_gasrem, align 8 - %"$gascmp_735" = icmp ugt i64 2, %"$gasrem_734" - br i1 %"$gascmp_735", label %"$out_of_gas_736", label %"$have_gas_737" - -"$out_of_gas_736": ; preds = %"$have_gas_732" - call void @_out_of_gas() - br label %"$have_gas_737" - -"$have_gas_737": ; preds = %"$out_of_gas_736", %"$have_gas_732" - %"$consume_738" = sub i64 %"$gasrem_734", 2 - store i64 %"$consume_738", i64* @_gasrem, align 8 - %"$val2_740" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 - %"$val2_tag_741" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val2_740", i32 0, i32 0 - %"$val2_tag_742" = load i8, i8* %"$val2_tag_741", align 1 - switch i8 %"$val2_tag_742", label %"$empty_default_743" [ - i8 0, label %"$Some_744" - i8 1, label %"$None_768" - ], !dbg !77 - -"$Some_744": ; preds = %"$have_gas_737" - %"$val2_745" = bitcast %TName_Option_String* %"$val2_740" to %CName_Some_String* - %"$$val2_13_gep_746" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val2_745", i32 0, i32 1 - %"$$val2_13_load_747" = load %String, %String* %"$$val2_13_gep_746", align 8 + %"$val2_717" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 + %"$val2_tag_718" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val2_717", i32 0, i32 0 + %"$val2_tag_719" = load i8, i8* %"$val2_tag_718", align 1 + switch i8 %"$val2_tag_719", label %"$empty_default_720" [ + i8 0, label %"$Some_721" + i8 1, label %"$None_745" + ], !dbg !75 + +"$Some_721": ; preds = %"$have_gas_714" + %"$val2_722" = bitcast %TName_Option_String* %"$val2_717" to %CName_Some_String* + %"$$val2_13_gep_723" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val2_722", i32 0, i32 1 + %"$$val2_13_load_724" = load %String, %String* %"$$val2_13_gep_723", align 8 %"$val2_13" = alloca %String, align 8 - store %String %"$$val2_13_load_747", %String* %"$val2_13", align 8 - %"$gasrem_748" = load i64, i64* @_gasrem, align 8 - %"$gascmp_749" = icmp ugt i64 1, %"$gasrem_748" - br i1 %"$gascmp_749", label %"$out_of_gas_750", label %"$have_gas_751" + store %String %"$$val2_13_load_724", %String* %"$val2_13", align 8 + %"$gasrem_725" = load i64, i64* @_gasrem, align 8 + %"$gascmp_726" = icmp ugt i64 1, %"$gasrem_725" + br i1 %"$gascmp_726", label %"$out_of_gas_727", label %"$have_gas_728" -"$out_of_gas_750": ; preds = %"$Some_744" +"$out_of_gas_727": ; preds = %"$Some_721" call void @_out_of_gas() - br label %"$have_gas_751" + br label %"$have_gas_728" -"$have_gas_751": ; preds = %"$out_of_gas_750", %"$Some_744" - %"$consume_752" = sub i64 %"$gasrem_748", 1 - store i64 %"$consume_752", i64* @_gasrem, align 8 +"$have_gas_728": ; preds = %"$out_of_gas_727", %"$Some_721" + %"$consume_729" = sub i64 %"$gasrem_725", 1 + store i64 %"$consume_729", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_753" = load i64, i64* @_gasrem, align 8 - %"$gascmp_754" = icmp ugt i64 1, %"$gasrem_753" - br i1 %"$gascmp_754", label %"$out_of_gas_755", label %"$have_gas_756" - -"$out_of_gas_755": ; preds = %"$have_gas_751" - call void @_out_of_gas() - br label %"$have_gas_756" - -"$have_gas_756": ; preds = %"$out_of_gas_755", %"$have_gas_751" - %"$consume_757" = sub i64 %"$gasrem_753", 1 - store i64 %"$consume_757", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$stringlit_758", i32 0, i32 0), i32 25 }, %String* %m2, align 8, !dbg !78 - %"$gasrem_759" = load i64, i64* @_gasrem, align 8 - %"$gascmp_760" = icmp ugt i64 1, %"$gasrem_759" - br i1 %"$gascmp_760", label %"$out_of_gas_761", label %"$have_gas_762" - -"$out_of_gas_761": ; preds = %"$have_gas_756" - call void @_out_of_gas() - br label %"$have_gas_762" - -"$have_gas_762": ; preds = %"$out_of_gas_761", %"$have_gas_756" - %"$consume_763" = sub i64 %"$gasrem_759", 1 - store i64 %"$consume_763", i64* @_gasrem, align 8 - %"$fail_msg__origin_764" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_764", align 1 - %"$fail_msg__sender_765" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_765", align 1 - %"$tname_766" = load %String, %String* %tname, align 8 - %"$m_767" = load %String, %String* %m2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_764", [20 x i8]* %"$fail_msg__sender_765", %String %"$tname_766", %String %"$m_767"), !dbg !81 - br label %"$matchsucc_739" - -"$None_768": ; preds = %"$have_gas_737" - %"$val2_769" = bitcast %TName_Option_String* %"$val2_740" to %CName_None_String* - br label %"$matchsucc_739" - -"$empty_default_743": ; preds = %"$have_gas_737" - br label %"$matchsucc_739" - -"$matchsucc_739": ; preds = %"$None_768", %"$have_gas_762", %"$empty_default_743" - %"$gasrem_770" = load i64, i64* @_gasrem, align 8 - %"$gascmp_771" = icmp ugt i64 1, %"$gasrem_770" - br i1 %"$gascmp_771", label %"$out_of_gas_772", label %"$have_gas_773" - -"$out_of_gas_772": ; preds = %"$matchsucc_739" - call void @_out_of_gas() - br label %"$have_gas_773" - -"$have_gas_773": ; preds = %"$out_of_gas_772", %"$matchsucc_739" - %"$consume_774" = sub i64 %"$gasrem_770", 1 - store i64 %"$consume_774", i64* @_gasrem, align 8 - %"$indices_buf_775_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_775_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_775_salloc_load", i64 16) - %"$indices_buf_775_salloc" = bitcast i8* %"$indices_buf_775_salloc_salloc" to [16 x i8]* - %"$indices_buf_775" = bitcast [16 x i8]* %"$indices_buf_775_salloc" to i8* - %"$key1_776" = load %String, %String* %key1, align 8 - %"$indices_gep_777" = getelementptr i8, i8* %"$indices_buf_775", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_777" to %String* - store %String %"$key1_776", %String* %indices_cast3, align 8 - %"$execptr_load_778" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_778", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_779", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_775", i8* null), !dbg !82 + %"$gasrem_730" = load i64, i64* @_gasrem, align 8 + %"$gascmp_731" = icmp ugt i64 1, %"$gasrem_730" + br i1 %"$gascmp_731", label %"$out_of_gas_732", label %"$have_gas_733" + +"$out_of_gas_732": ; preds = %"$have_gas_728" + call void @_out_of_gas() + br label %"$have_gas_733" + +"$have_gas_733": ; preds = %"$out_of_gas_732", %"$have_gas_728" + %"$consume_734" = sub i64 %"$gasrem_730", 1 + store i64 %"$consume_734", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$stringlit_735", i32 0, i32 0), i32 25 }, %String* %m2, align 8, !dbg !76 + %"$gasrem_736" = load i64, i64* @_gasrem, align 8 + %"$gascmp_737" = icmp ugt i64 1, %"$gasrem_736" + br i1 %"$gascmp_737", label %"$out_of_gas_738", label %"$have_gas_739" + +"$out_of_gas_738": ; preds = %"$have_gas_733" + call void @_out_of_gas() + br label %"$have_gas_739" + +"$have_gas_739": ; preds = %"$out_of_gas_738", %"$have_gas_733" + %"$consume_740" = sub i64 %"$gasrem_736", 1 + store i64 %"$consume_740", i64* @_gasrem, align 8 + %"$fail_msg__origin_741" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_741", align 1 + %"$fail_msg__sender_742" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_742", align 1 + %"$tname_743" = load %String, %String* %tname, align 8 + %"$m_744" = load %String, %String* %m2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_741", [20 x i8]* %"$fail_msg__sender_742", %String %"$tname_743", %String %"$m_744"), !dbg !79 + br label %"$matchsucc_716" + +"$None_745": ; preds = %"$have_gas_714" + %"$val2_746" = bitcast %TName_Option_String* %"$val2_717" to %CName_None_String* + br label %"$matchsucc_716" + +"$empty_default_720": ; preds = %"$have_gas_714" + br label %"$matchsucc_716" + +"$matchsucc_716": ; preds = %"$None_745", %"$have_gas_739", %"$empty_default_720" + %"$gasrem_747" = load i64, i64* @_gasrem, align 8 + %"$gascmp_748" = icmp ugt i64 1, %"$gasrem_747" + br i1 %"$gascmp_748", label %"$out_of_gas_749", label %"$have_gas_750" + +"$out_of_gas_749": ; preds = %"$matchsucc_716" + call void @_out_of_gas() + br label %"$have_gas_750" + +"$have_gas_750": ; preds = %"$out_of_gas_749", %"$matchsucc_716" + %"$consume_751" = sub i64 %"$gasrem_747", 1 + store i64 %"$consume_751", i64* @_gasrem, align 8 + %"$indices_buf_752_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_752_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_752_salloc_load", i64 16) + %"$indices_buf_752_salloc" = bitcast i8* %"$indices_buf_752_salloc_salloc" to [16 x i8]* + %"$indices_buf_752" = bitcast [16 x i8]* %"$indices_buf_752_salloc" to i8* + %"$key1_753" = load %String, %String* %key1, align 8 + %"$indices_gep_754" = getelementptr i8, i8* %"$indices_buf_752", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_754" to %String* + store %String %"$key1_753", %String* %indices_cast3, align 8 + %"$execptr_load_755" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_755", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_756", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_752", i8* null), !dbg !80 ret void } -define void @t3(i8* %0) !dbg !83 { +define void @t3(i8* %0) !dbg !81 { entry: - %"$_amount_781" = getelementptr i8, i8* %0, i32 0 - %"$_amount_782" = bitcast i8* %"$_amount_781" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_782", align 8 - %"$_origin_783" = getelementptr i8, i8* %0, i32 16 - %"$_origin_784" = bitcast i8* %"$_origin_783" to [20 x i8]* - %"$_sender_785" = getelementptr i8, i8* %0, i32 36 - %"$_sender_786" = bitcast i8* %"$_sender_785" to [20 x i8]* - call void @"$t3_571"(%Uint128 %_amount, [20 x i8]* %"$_origin_784", [20 x i8]* %"$_sender_786"), !dbg !84 + %"$_amount_758" = getelementptr i8, i8* %0, i32 0 + %"$_amount_759" = bitcast i8* %"$_amount_758" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_759", align 8 + %"$_origin_760" = getelementptr i8, i8* %0, i32 16 + %"$_origin_761" = bitcast i8* %"$_origin_760" to [20 x i8]* + %"$_sender_762" = getelementptr i8, i8* %0, i32 36 + %"$_sender_763" = bitcast i8* %"$_sender_762" to [20 x i8]* + call void @"$t3_548"(%Uint128 %_amount, [20 x i8]* %"$_origin_761", [20 x i8]* %"$_sender_763"), !dbg !82 ret void } -define internal void @"$t4_787"(%Uint128 %_amount, [20 x i8]* %"$_origin_788", [20 x i8]* %"$_sender_789") !dbg !85 { +define internal void @"$t4_764"(%Uint128 %_amount, [20 x i8]* %"$_origin_765", [20 x i8]* %"$_sender_766") !dbg !83 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_788", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_789", align 1 - %"$gasrem_790" = load i64, i64* @_gasrem, align 8 - %"$gascmp_791" = icmp ugt i64 1, %"$gasrem_790" - br i1 %"$gascmp_791", label %"$out_of_gas_792", label %"$have_gas_793" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_765", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_766", align 1 + %"$gasrem_767" = load i64, i64* @_gasrem, align 8 + %"$gascmp_768" = icmp ugt i64 1, %"$gasrem_767" + br i1 %"$gascmp_768", label %"$out_of_gas_769", label %"$have_gas_770" -"$out_of_gas_792": ; preds = %entry +"$out_of_gas_769": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_793" + br label %"$have_gas_770" -"$have_gas_793": ; preds = %"$out_of_gas_792", %entry - %"$consume_794" = sub i64 %"$gasrem_790", 1 - store i64 %"$consume_794", i64* @_gasrem, align 8 +"$have_gas_770": ; preds = %"$out_of_gas_769", %entry + %"$consume_771" = sub i64 %"$gasrem_767", 1 + store i64 %"$consume_771", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_795" = load i64, i64* @_gasrem, align 8 - %"$gascmp_796" = icmp ugt i64 1, %"$gasrem_795" - br i1 %"$gascmp_796", label %"$out_of_gas_797", label %"$have_gas_798" + %"$gasrem_772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_773" = icmp ugt i64 1, %"$gasrem_772" + br i1 %"$gascmp_773", label %"$out_of_gas_774", label %"$have_gas_775" + +"$out_of_gas_774": ; preds = %"$have_gas_770" + call void @_out_of_gas() + br label %"$have_gas_775" -"$out_of_gas_797": ; preds = %"$have_gas_793" +"$have_gas_775": ; preds = %"$out_of_gas_774", %"$have_gas_770" + %"$consume_776" = sub i64 %"$gasrem_772", 1 + store i64 %"$consume_776", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_777", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !84 + %"$gasrem_778" = load i64, i64* @_gasrem, align 8 + %"$gascmp_779" = icmp ugt i64 1, %"$gasrem_778" + br i1 %"$gascmp_779", label %"$out_of_gas_780", label %"$have_gas_781" + +"$out_of_gas_780": ; preds = %"$have_gas_775" + call void @_out_of_gas() + br label %"$have_gas_781" + +"$have_gas_781": ; preds = %"$out_of_gas_780", %"$have_gas_775" + %"$consume_782" = sub i64 %"$gasrem_778", 1 + store i64 %"$consume_782", i64* @_gasrem, align 8 + %key1 = alloca %String, align 8 + %"$gasrem_783" = load i64, i64* @_gasrem, align 8 + %"$gascmp_784" = icmp ugt i64 1, %"$gasrem_783" + br i1 %"$gascmp_784", label %"$out_of_gas_785", label %"$have_gas_786" + +"$out_of_gas_785": ; preds = %"$have_gas_781" call void @_out_of_gas() - br label %"$have_gas_798" + br label %"$have_gas_786" -"$have_gas_798": ; preds = %"$out_of_gas_797", %"$have_gas_793" - %"$consume_799" = sub i64 %"$gasrem_795", 1 - store i64 %"$consume_799", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_800", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !86 +"$have_gas_786": ; preds = %"$out_of_gas_785", %"$have_gas_781" + %"$consume_787" = sub i64 %"$gasrem_783", 1 + store i64 %"$consume_787", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_788", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !85 + %key1_found = alloca %TName_Bool*, align 8 + %"$indices_buf_789_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_789_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_789_salloc_load", i64 16) + %"$indices_buf_789_salloc" = bitcast i8* %"$indices_buf_789_salloc_salloc" to [16 x i8]* + %"$indices_buf_789" = bitcast [16 x i8]* %"$indices_buf_789_salloc" to i8* + %"$key1_790" = load %String, %String* %key1, align 8 + %"$indices_gep_791" = getelementptr i8, i8* %"$indices_buf_789", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_791" to %String* + store %String %"$key1_790", %String* %indices_cast, align 8 + %"$execptr_load_793" = load i8*, i8** @_execptr, align 8 + %"$key1_found_call_794" = call i8* @_fetch_field(i8* %"$execptr_load_793", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_792", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_789", i32 0), !dbg !86 + %"$key1_found_795" = bitcast i8* %"$key1_found_call_794" to %TName_Bool* + store %TName_Bool* %"$key1_found_795", %TName_Bool** %key1_found, align 8 + %"$key1_found_796" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 + %"$$key1_found_796_797" = bitcast %TName_Bool* %"$key1_found_796" to i8* + %"$_literal_cost_call_798" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_61", i8* %"$$key1_found_796_797") + %"$gasadd_799" = add i64 %"$_literal_cost_call_798", 0 + %"$gasadd_800" = add i64 %"$gasadd_799", 1 %"$gasrem_801" = load i64, i64* @_gasrem, align 8 - %"$gascmp_802" = icmp ugt i64 1, %"$gasrem_801" + %"$gascmp_802" = icmp ugt i64 %"$gasadd_800", %"$gasrem_801" br i1 %"$gascmp_802", label %"$out_of_gas_803", label %"$have_gas_804" -"$out_of_gas_803": ; preds = %"$have_gas_798" +"$out_of_gas_803": ; preds = %"$have_gas_786" call void @_out_of_gas() br label %"$have_gas_804" -"$have_gas_804": ; preds = %"$out_of_gas_803", %"$have_gas_798" - %"$consume_805" = sub i64 %"$gasrem_801", 1 +"$have_gas_804": ; preds = %"$out_of_gas_803", %"$have_gas_786" + %"$consume_805" = sub i64 %"$gasrem_801", %"$gasadd_800" store i64 %"$consume_805", i64* @_gasrem, align 8 - %key1 = alloca %String, align 8 %"$gasrem_806" = load i64, i64* @_gasrem, align 8 - %"$gascmp_807" = icmp ugt i64 1, %"$gasrem_806" + %"$gascmp_807" = icmp ugt i64 2, %"$gasrem_806" br i1 %"$gascmp_807", label %"$out_of_gas_808", label %"$have_gas_809" "$out_of_gas_808": ; preds = %"$have_gas_804" @@ -1765,762 +1774,721 @@ entry: br label %"$have_gas_809" "$have_gas_809": ; preds = %"$out_of_gas_808", %"$have_gas_804" - %"$consume_810" = sub i64 %"$gasrem_806", 1 + %"$consume_810" = sub i64 %"$gasrem_806", 2 store i64 %"$consume_810", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_811", i32 0, i32 0), i32 4 }, %String* %key1, align 8, !dbg !87 - %key1_found = alloca %TName_Bool*, align 8 - %"$indices_buf_812_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_812_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_812_salloc_load", i64 16) - %"$indices_buf_812_salloc" = bitcast i8* %"$indices_buf_812_salloc_salloc" to [16 x i8]* - %"$indices_buf_812" = bitcast [16 x i8]* %"$indices_buf_812_salloc" to i8* - %"$key1_813" = load %String, %String* %key1, align 8 - %"$indices_gep_814" = getelementptr i8, i8* %"$indices_buf_812", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_814" to %String* - store %String %"$key1_813", %String* %indices_cast, align 8 - %"$execptr_load_816" = load i8*, i8** @_execptr, align 8 - %"$key1_found_call_817" = call i8* @_fetch_field(i8* %"$execptr_load_816", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_815", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_812", i32 0), !dbg !88 - %"$key1_found_818" = bitcast i8* %"$key1_found_call_817" to %TName_Bool* - store %TName_Bool* %"$key1_found_818", %TName_Bool** %key1_found, align 8 - %"$key1_found_819" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 - %"$$key1_found_819_820" = bitcast %TName_Bool* %"$key1_found_819" to i8* - %"$_literal_cost_call_821" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_69", i8* %"$$key1_found_819_820") - %"$gasadd_822" = add i64 %"$_literal_cost_call_821", 0 - %"$gasadd_823" = add i64 %"$gasadd_822", 1 - %"$gasrem_824" = load i64, i64* @_gasrem, align 8 - %"$gascmp_825" = icmp ugt i64 %"$gasadd_823", %"$gasrem_824" - br i1 %"$gascmp_825", label %"$out_of_gas_826", label %"$have_gas_827" - -"$out_of_gas_826": ; preds = %"$have_gas_809" - call void @_out_of_gas() - br label %"$have_gas_827" - -"$have_gas_827": ; preds = %"$out_of_gas_826", %"$have_gas_809" - %"$consume_828" = sub i64 %"$gasrem_824", %"$gasadd_823" - store i64 %"$consume_828", i64* @_gasrem, align 8 - %"$gasrem_829" = load i64, i64* @_gasrem, align 8 - %"$gascmp_830" = icmp ugt i64 2, %"$gasrem_829" - br i1 %"$gascmp_830", label %"$out_of_gas_831", label %"$have_gas_832" - -"$out_of_gas_831": ; preds = %"$have_gas_827" - call void @_out_of_gas() - br label %"$have_gas_832" - -"$have_gas_832": ; preds = %"$out_of_gas_831", %"$have_gas_827" - %"$consume_833" = sub i64 %"$gasrem_829", 2 - store i64 %"$consume_833", i64* @_gasrem, align 8 - %"$key1_found_835" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 - %"$key1_found_tag_836" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$key1_found_835", i32 0, i32 0 - %"$key1_found_tag_837" = load i8, i8* %"$key1_found_tag_836", align 1 - switch i8 %"$key1_found_tag_837", label %"$empty_default_838" [ - i8 0, label %"$True_839" - i8 1, label %"$False_849" - ], !dbg !89 - -"$True_839": ; preds = %"$have_gas_832" - %"$key1_found_840" = bitcast %TName_Bool* %"$key1_found_835" to %CName_True* - %"$gasrem_841" = load i64, i64* @_gasrem, align 8 - %"$gascmp_842" = icmp ugt i64 1, %"$gasrem_841" - br i1 %"$gascmp_842", label %"$out_of_gas_843", label %"$have_gas_844" - -"$out_of_gas_843": ; preds = %"$True_839" - call void @_out_of_gas() - br label %"$have_gas_844" - -"$have_gas_844": ; preds = %"$out_of_gas_843", %"$True_839" - %"$consume_845" = sub i64 %"$gasrem_841", 1 - store i64 %"$consume_845", i64* @_gasrem, align 8 - %"$fail__origin_846" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_846", align 1 - %"$fail__sender_847" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_847", align 1 - %"$tname_848" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_846", [20 x i8]* %"$fail__sender_847", %String %"$tname_848"), !dbg !90 - br label %"$matchsucc_834" - -"$False_849": ; preds = %"$have_gas_832" - %"$key1_found_850" = bitcast %TName_Bool* %"$key1_found_835" to %CName_False* - br label %"$matchsucc_834" - -"$empty_default_838": ; preds = %"$have_gas_832" - br label %"$matchsucc_834" - -"$matchsucc_834": ; preds = %"$False_849", %"$have_gas_844", %"$empty_default_838" - %"$gasrem_851" = load i64, i64* @_gasrem, align 8 - %"$gascmp_852" = icmp ugt i64 1, %"$gasrem_851" - br i1 %"$gascmp_852", label %"$out_of_gas_853", label %"$have_gas_854" - -"$out_of_gas_853": ; preds = %"$matchsucc_834" - call void @_out_of_gas() - br label %"$have_gas_854" - -"$have_gas_854": ; preds = %"$out_of_gas_853", %"$matchsucc_834" - %"$consume_855" = sub i64 %"$gasrem_851", 1 - store i64 %"$consume_855", i64* @_gasrem, align 8 + %"$key1_found_812" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 + %"$key1_found_tag_813" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$key1_found_812", i32 0, i32 0 + %"$key1_found_tag_814" = load i8, i8* %"$key1_found_tag_813", align 1 + switch i8 %"$key1_found_tag_814", label %"$empty_default_815" [ + i8 0, label %"$True_816" + i8 1, label %"$False_826" + ], !dbg !87 + +"$True_816": ; preds = %"$have_gas_809" + %"$key1_found_817" = bitcast %TName_Bool* %"$key1_found_812" to %CName_True* + %"$gasrem_818" = load i64, i64* @_gasrem, align 8 + %"$gascmp_819" = icmp ugt i64 1, %"$gasrem_818" + br i1 %"$gascmp_819", label %"$out_of_gas_820", label %"$have_gas_821" + +"$out_of_gas_820": ; preds = %"$True_816" + call void @_out_of_gas() + br label %"$have_gas_821" + +"$have_gas_821": ; preds = %"$out_of_gas_820", %"$True_816" + %"$consume_822" = sub i64 %"$gasrem_818", 1 + store i64 %"$consume_822", i64* @_gasrem, align 8 + %"$fail__origin_823" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_823", align 1 + %"$fail__sender_824" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_824", align 1 + %"$tname_825" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_823", [20 x i8]* %"$fail__sender_824", %String %"$tname_825"), !dbg !88 + br label %"$matchsucc_811" + +"$False_826": ; preds = %"$have_gas_809" + %"$key1_found_827" = bitcast %TName_Bool* %"$key1_found_812" to %CName_False* + br label %"$matchsucc_811" + +"$empty_default_815": ; preds = %"$have_gas_809" + br label %"$matchsucc_811" + +"$matchsucc_811": ; preds = %"$False_826", %"$have_gas_821", %"$empty_default_815" + %"$gasrem_828" = load i64, i64* @_gasrem, align 8 + %"$gascmp_829" = icmp ugt i64 1, %"$gasrem_828" + br i1 %"$gascmp_829", label %"$out_of_gas_830", label %"$have_gas_831" + +"$out_of_gas_830": ; preds = %"$matchsucc_811" + call void @_out_of_gas() + br label %"$have_gas_831" + +"$have_gas_831": ; preds = %"$out_of_gas_830", %"$matchsucc_811" + %"$consume_832" = sub i64 %"$gasrem_828", 1 + store i64 %"$consume_832", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_856" = load i64, i64* @_gasrem, align 8 - %"$gascmp_857" = icmp ugt i64 1, %"$gasrem_856" - br i1 %"$gascmp_857", label %"$out_of_gas_858", label %"$have_gas_859" + %"$gasrem_833" = load i64, i64* @_gasrem, align 8 + %"$gascmp_834" = icmp ugt i64 1, %"$gasrem_833" + br i1 %"$gascmp_834", label %"$out_of_gas_835", label %"$have_gas_836" -"$out_of_gas_858": ; preds = %"$have_gas_854" +"$out_of_gas_835": ; preds = %"$have_gas_831" call void @_out_of_gas() - br label %"$have_gas_859" + br label %"$have_gas_836" -"$have_gas_859": ; preds = %"$out_of_gas_858", %"$have_gas_854" - %"$consume_860" = sub i64 %"$gasrem_856", 1 - store i64 %"$consume_860", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_861", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !93 - %"$gasrem_862" = load i64, i64* @_gasrem, align 8 - %"$gascmp_863" = icmp ugt i64 1, %"$gasrem_862" - br i1 %"$gascmp_863", label %"$out_of_gas_864", label %"$have_gas_865" +"$have_gas_836": ; preds = %"$out_of_gas_835", %"$have_gas_831" + %"$consume_837" = sub i64 %"$gasrem_833", 1 + store i64 %"$consume_837", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_838", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !91 + %"$gasrem_839" = load i64, i64* @_gasrem, align 8 + %"$gascmp_840" = icmp ugt i64 1, %"$gasrem_839" + br i1 %"$gascmp_840", label %"$out_of_gas_841", label %"$have_gas_842" -"$out_of_gas_864": ; preds = %"$have_gas_859" +"$out_of_gas_841": ; preds = %"$have_gas_836" call void @_out_of_gas() - br label %"$have_gas_865" + br label %"$have_gas_842" -"$have_gas_865": ; preds = %"$out_of_gas_864", %"$have_gas_859" - %"$consume_866" = sub i64 %"$gasrem_862", 1 - store i64 %"$consume_866", i64* @_gasrem, align 8 +"$have_gas_842": ; preds = %"$out_of_gas_841", %"$have_gas_836" + %"$consume_843" = sub i64 %"$gasrem_839", 1 + store i64 %"$consume_843", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_867" = load i64, i64* @_gasrem, align 8 - %"$gascmp_868" = icmp ugt i64 1, %"$gasrem_867" - br i1 %"$gascmp_868", label %"$out_of_gas_869", label %"$have_gas_870" + %"$gasrem_844" = load i64, i64* @_gasrem, align 8 + %"$gascmp_845" = icmp ugt i64 1, %"$gasrem_844" + br i1 %"$gascmp_845", label %"$out_of_gas_846", label %"$have_gas_847" -"$out_of_gas_869": ; preds = %"$have_gas_865" +"$out_of_gas_846": ; preds = %"$have_gas_842" call void @_out_of_gas() - br label %"$have_gas_870" + br label %"$have_gas_847" -"$have_gas_870": ; preds = %"$out_of_gas_869", %"$have_gas_865" - %"$consume_871" = sub i64 %"$gasrem_867", 1 - store i64 %"$consume_871", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_872", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !94 - %"$gasrem_873" = load i64, i64* @_gasrem, align 8 - %"$gascmp_874" = icmp ugt i64 1, %"$gasrem_873" - br i1 %"$gascmp_874", label %"$out_of_gas_875", label %"$have_gas_876" +"$have_gas_847": ; preds = %"$out_of_gas_846", %"$have_gas_842" + %"$consume_848" = sub i64 %"$gasrem_844", 1 + store i64 %"$consume_848", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_849", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !92 + %"$gasrem_850" = load i64, i64* @_gasrem, align 8 + %"$gascmp_851" = icmp ugt i64 1, %"$gasrem_850" + br i1 %"$gascmp_851", label %"$out_of_gas_852", label %"$have_gas_853" -"$out_of_gas_875": ; preds = %"$have_gas_870" +"$out_of_gas_852": ; preds = %"$have_gas_847" call void @_out_of_gas() - br label %"$have_gas_876" + br label %"$have_gas_853" -"$have_gas_876": ; preds = %"$out_of_gas_875", %"$have_gas_870" - %"$consume_877" = sub i64 %"$gasrem_873", 1 - store i64 %"$consume_877", i64* @_gasrem, align 8 +"$have_gas_853": ; preds = %"$out_of_gas_852", %"$have_gas_847" + %"$consume_854" = sub i64 %"$gasrem_850", 1 + store i64 %"$consume_854", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_878" = load i64, i64* @_gasrem, align 8 - %"$gascmp_879" = icmp ugt i64 1, %"$gasrem_878" - br i1 %"$gascmp_879", label %"$out_of_gas_880", label %"$have_gas_881" - -"$out_of_gas_880": ; preds = %"$have_gas_876" - call void @_out_of_gas() - br label %"$have_gas_881" - -"$have_gas_881": ; preds = %"$out_of_gas_880", %"$have_gas_876" - %"$consume_882" = sub i64 %"$gasrem_878", 1 - store i64 %"$consume_882", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_883", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !95 - %"$_literal_cost_s_884" = alloca %String, align 8 - %"$s_885" = load %String, %String* %s, align 8 - store %String %"$s_885", %String* %"$_literal_cost_s_884", align 8 - %"$$_literal_cost_s_884_886" = bitcast %String* %"$_literal_cost_s_884" to i8* - %"$_literal_cost_call_887" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_884_886") - %"$gasadd_888" = add i64 %"$_literal_cost_call_887", 2 - %"$gasrem_889" = load i64, i64* @_gasrem, align 8 - %"$gascmp_890" = icmp ugt i64 %"$gasadd_888", %"$gasrem_889" - br i1 %"$gascmp_890", label %"$out_of_gas_891", label %"$have_gas_892" - -"$out_of_gas_891": ; preds = %"$have_gas_881" - call void @_out_of_gas() - br label %"$have_gas_892" - -"$have_gas_892": ; preds = %"$out_of_gas_891", %"$have_gas_881" - %"$consume_893" = sub i64 %"$gasrem_889", %"$gasadd_888" - store i64 %"$consume_893", i64* @_gasrem, align 8 - %"$indices_buf_894_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_894_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_894_salloc_load", i64 32) - %"$indices_buf_894_salloc" = bitcast i8* %"$indices_buf_894_salloc_salloc" to [32 x i8]* - %"$indices_buf_894" = bitcast [32 x i8]* %"$indices_buf_894_salloc" to i8* - %"$key1a_895" = load %String, %String* %key1a, align 8 - %"$indices_gep_896" = getelementptr i8, i8* %"$indices_buf_894", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_896" to %String* - store %String %"$key1a_895", %String* %indices_cast1, align 8 - %"$key2a_897" = load %String, %String* %key2a, align 8 - %"$indices_gep_898" = getelementptr i8, i8* %"$indices_buf_894", i32 16 - %indices_cast2 = bitcast i8* %"$indices_gep_898" to %String* - store %String %"$key2a_897", %String* %indices_cast2, align 8 - %"$execptr_load_899" = load i8*, i8** @_execptr, align 8 - %"$s_901" = load %String, %String* %s, align 8 - %"$update_value_902" = alloca %String, align 8 - store %String %"$s_901", %String* %"$update_value_902", align 8 - %"$update_value_903" = bitcast %String* %"$update_value_902" to i8* - call void @_update_field(i8* %"$execptr_load_899", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_900", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_894", i8* %"$update_value_903"), !dbg !96 + %"$gasrem_855" = load i64, i64* @_gasrem, align 8 + %"$gascmp_856" = icmp ugt i64 1, %"$gasrem_855" + br i1 %"$gascmp_856", label %"$out_of_gas_857", label %"$have_gas_858" + +"$out_of_gas_857": ; preds = %"$have_gas_853" + call void @_out_of_gas() + br label %"$have_gas_858" + +"$have_gas_858": ; preds = %"$out_of_gas_857", %"$have_gas_853" + %"$consume_859" = sub i64 %"$gasrem_855", 1 + store i64 %"$consume_859", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_860", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !93 + %"$_literal_cost_s_861" = alloca %String, align 8 + %"$s_862" = load %String, %String* %s, align 8 + store %String %"$s_862", %String* %"$_literal_cost_s_861", align 8 + %"$$_literal_cost_s_861_863" = bitcast %String* %"$_literal_cost_s_861" to i8* + %"$_literal_cost_call_864" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_861_863") + %"$gasadd_865" = add i64 %"$_literal_cost_call_864", 2 + %"$gasrem_866" = load i64, i64* @_gasrem, align 8 + %"$gascmp_867" = icmp ugt i64 %"$gasadd_865", %"$gasrem_866" + br i1 %"$gascmp_867", label %"$out_of_gas_868", label %"$have_gas_869" + +"$out_of_gas_868": ; preds = %"$have_gas_858" + call void @_out_of_gas() + br label %"$have_gas_869" + +"$have_gas_869": ; preds = %"$out_of_gas_868", %"$have_gas_858" + %"$consume_870" = sub i64 %"$gasrem_866", %"$gasadd_865" + store i64 %"$consume_870", i64* @_gasrem, align 8 + %"$indices_buf_871_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_871_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_871_salloc_load", i64 32) + %"$indices_buf_871_salloc" = bitcast i8* %"$indices_buf_871_salloc_salloc" to [32 x i8]* + %"$indices_buf_871" = bitcast [32 x i8]* %"$indices_buf_871_salloc" to i8* + %"$key1a_872" = load %String, %String* %key1a, align 8 + %"$indices_gep_873" = getelementptr i8, i8* %"$indices_buf_871", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_873" to %String* + store %String %"$key1a_872", %String* %indices_cast1, align 8 + %"$key2a_874" = load %String, %String* %key2a, align 8 + %"$indices_gep_875" = getelementptr i8, i8* %"$indices_buf_871", i32 16 + %indices_cast2 = bitcast i8* %"$indices_gep_875" to %String* + store %String %"$key2a_874", %String* %indices_cast2, align 8 + %"$execptr_load_876" = load i8*, i8** @_execptr, align 8 + %"$s_878" = load %String, %String* %s, align 8 + %"$update_value_879" = alloca %String, align 8 + store %String %"$s_878", %String* %"$update_value_879", align 8 + %"$update_value_880" = bitcast %String* %"$update_value_879" to i8* + call void @_update_field(i8* %"$execptr_load_876", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_877", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_871", i8* %"$update_value_880"), !dbg !94 ret void } -define void @t4(i8* %0) !dbg !97 { +define void @t4(i8* %0) !dbg !95 { entry: - %"$_amount_905" = getelementptr i8, i8* %0, i32 0 - %"$_amount_906" = bitcast i8* %"$_amount_905" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_906", align 8 - %"$_origin_907" = getelementptr i8, i8* %0, i32 16 - %"$_origin_908" = bitcast i8* %"$_origin_907" to [20 x i8]* - %"$_sender_909" = getelementptr i8, i8* %0, i32 36 - %"$_sender_910" = bitcast i8* %"$_sender_909" to [20 x i8]* - call void @"$t4_787"(%Uint128 %_amount, [20 x i8]* %"$_origin_908", [20 x i8]* %"$_sender_910"), !dbg !98 + %"$_amount_882" = getelementptr i8, i8* %0, i32 0 + %"$_amount_883" = bitcast i8* %"$_amount_882" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_883", align 8 + %"$_origin_884" = getelementptr i8, i8* %0, i32 16 + %"$_origin_885" = bitcast i8* %"$_origin_884" to [20 x i8]* + %"$_sender_886" = getelementptr i8, i8* %0, i32 36 + %"$_sender_887" = bitcast i8* %"$_sender_886" to [20 x i8]* + call void @"$t4_764"(%Uint128 %_amount, [20 x i8]* %"$_origin_885", [20 x i8]* %"$_sender_887"), !dbg !96 ret void } -define internal void @"$t5_911"(%Uint128 %_amount, [20 x i8]* %"$_origin_912", [20 x i8]* %"$_sender_913") !dbg !99 { +define internal void @"$t5_888"(%Uint128 %_amount, [20 x i8]* %"$_origin_889", [20 x i8]* %"$_sender_890") !dbg !97 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_912", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_913", align 1 - %"$gasrem_914" = load i64, i64* @_gasrem, align 8 - %"$gascmp_915" = icmp ugt i64 1, %"$gasrem_914" - br i1 %"$gascmp_915", label %"$out_of_gas_916", label %"$have_gas_917" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_889", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_890", align 1 + %"$gasrem_891" = load i64, i64* @_gasrem, align 8 + %"$gascmp_892" = icmp ugt i64 1, %"$gasrem_891" + br i1 %"$gascmp_892", label %"$out_of_gas_893", label %"$have_gas_894" -"$out_of_gas_916": ; preds = %entry +"$out_of_gas_893": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_917" + br label %"$have_gas_894" -"$have_gas_917": ; preds = %"$out_of_gas_916", %entry - %"$consume_918" = sub i64 %"$gasrem_914", 1 - store i64 %"$consume_918", i64* @_gasrem, align 8 +"$have_gas_894": ; preds = %"$out_of_gas_893", %entry + %"$consume_895" = sub i64 %"$gasrem_891", 1 + store i64 %"$consume_895", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_919" = load i64, i64* @_gasrem, align 8 - %"$gascmp_920" = icmp ugt i64 1, %"$gasrem_919" - br i1 %"$gascmp_920", label %"$out_of_gas_921", label %"$have_gas_922" + %"$gasrem_896" = load i64, i64* @_gasrem, align 8 + %"$gascmp_897" = icmp ugt i64 1, %"$gasrem_896" + br i1 %"$gascmp_897", label %"$out_of_gas_898", label %"$have_gas_899" -"$out_of_gas_921": ; preds = %"$have_gas_917" +"$out_of_gas_898": ; preds = %"$have_gas_894" call void @_out_of_gas() - br label %"$have_gas_922" + br label %"$have_gas_899" -"$have_gas_922": ; preds = %"$out_of_gas_921", %"$have_gas_917" - %"$consume_923" = sub i64 %"$gasrem_919", 1 - store i64 %"$consume_923", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_924", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !100 - %"$gasrem_925" = load i64, i64* @_gasrem, align 8 - %"$gascmp_926" = icmp ugt i64 1, %"$gasrem_925" - br i1 %"$gascmp_926", label %"$out_of_gas_927", label %"$have_gas_928" +"$have_gas_899": ; preds = %"$out_of_gas_898", %"$have_gas_894" + %"$consume_900" = sub i64 %"$gasrem_896", 1 + store i64 %"$consume_900", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_901", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !98 + %"$gasrem_902" = load i64, i64* @_gasrem, align 8 + %"$gascmp_903" = icmp ugt i64 1, %"$gasrem_902" + br i1 %"$gascmp_903", label %"$out_of_gas_904", label %"$have_gas_905" -"$out_of_gas_927": ; preds = %"$have_gas_922" +"$out_of_gas_904": ; preds = %"$have_gas_899" call void @_out_of_gas() - br label %"$have_gas_928" + br label %"$have_gas_905" -"$have_gas_928": ; preds = %"$out_of_gas_927", %"$have_gas_922" - %"$consume_929" = sub i64 %"$gasrem_925", 1 - store i64 %"$consume_929", i64* @_gasrem, align 8 +"$have_gas_905": ; preds = %"$out_of_gas_904", %"$have_gas_899" + %"$consume_906" = sub i64 %"$gasrem_902", 1 + store i64 %"$consume_906", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_930" = load i64, i64* @_gasrem, align 8 - %"$gascmp_931" = icmp ugt i64 1, %"$gasrem_930" - br i1 %"$gascmp_931", label %"$out_of_gas_932", label %"$have_gas_933" + %"$gasrem_907" = load i64, i64* @_gasrem, align 8 + %"$gascmp_908" = icmp ugt i64 1, %"$gasrem_907" + br i1 %"$gascmp_908", label %"$out_of_gas_909", label %"$have_gas_910" -"$out_of_gas_932": ; preds = %"$have_gas_928" +"$out_of_gas_909": ; preds = %"$have_gas_905" call void @_out_of_gas() - br label %"$have_gas_933" + br label %"$have_gas_910" -"$have_gas_933": ; preds = %"$out_of_gas_932", %"$have_gas_928" - %"$consume_934" = sub i64 %"$gasrem_930", 1 - store i64 %"$consume_934", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_935", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !101 - %"$gasrem_936" = load i64, i64* @_gasrem, align 8 - %"$gascmp_937" = icmp ugt i64 1, %"$gasrem_936" - br i1 %"$gascmp_937", label %"$out_of_gas_938", label %"$have_gas_939" +"$have_gas_910": ; preds = %"$out_of_gas_909", %"$have_gas_905" + %"$consume_911" = sub i64 %"$gasrem_907", 1 + store i64 %"$consume_911", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_912", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !99 + %"$gasrem_913" = load i64, i64* @_gasrem, align 8 + %"$gascmp_914" = icmp ugt i64 1, %"$gasrem_913" + br i1 %"$gascmp_914", label %"$out_of_gas_915", label %"$have_gas_916" -"$out_of_gas_938": ; preds = %"$have_gas_933" +"$out_of_gas_915": ; preds = %"$have_gas_910" call void @_out_of_gas() - br label %"$have_gas_939" + br label %"$have_gas_916" -"$have_gas_939": ; preds = %"$out_of_gas_938", %"$have_gas_933" - %"$consume_940" = sub i64 %"$gasrem_936", 1 - store i64 %"$consume_940", i64* @_gasrem, align 8 +"$have_gas_916": ; preds = %"$out_of_gas_915", %"$have_gas_910" + %"$consume_917" = sub i64 %"$gasrem_913", 1 + store i64 %"$consume_917", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_941" = load i64, i64* @_gasrem, align 8 - %"$gascmp_942" = icmp ugt i64 1, %"$gasrem_941" - br i1 %"$gascmp_942", label %"$out_of_gas_943", label %"$have_gas_944" + %"$gasrem_918" = load i64, i64* @_gasrem, align 8 + %"$gascmp_919" = icmp ugt i64 1, %"$gasrem_918" + br i1 %"$gascmp_919", label %"$out_of_gas_920", label %"$have_gas_921" -"$out_of_gas_943": ; preds = %"$have_gas_939" +"$out_of_gas_920": ; preds = %"$have_gas_916" call void @_out_of_gas() - br label %"$have_gas_944" + br label %"$have_gas_921" -"$have_gas_944": ; preds = %"$out_of_gas_943", %"$have_gas_939" - %"$consume_945" = sub i64 %"$gasrem_941", 1 - store i64 %"$consume_945", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_946", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !102 - %"$gasrem_947" = load i64, i64* @_gasrem, align 8 - %"$gascmp_948" = icmp ugt i64 1, %"$gasrem_947" - br i1 %"$gascmp_948", label %"$out_of_gas_949", label %"$have_gas_950" +"$have_gas_921": ; preds = %"$out_of_gas_920", %"$have_gas_916" + %"$consume_922" = sub i64 %"$gasrem_918", 1 + store i64 %"$consume_922", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_923", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !100 + %"$gasrem_924" = load i64, i64* @_gasrem, align 8 + %"$gascmp_925" = icmp ugt i64 1, %"$gasrem_924" + br i1 %"$gascmp_925", label %"$out_of_gas_926", label %"$have_gas_927" -"$out_of_gas_949": ; preds = %"$have_gas_944" +"$out_of_gas_926": ; preds = %"$have_gas_921" call void @_out_of_gas() - br label %"$have_gas_950" + br label %"$have_gas_927" -"$have_gas_950": ; preds = %"$out_of_gas_949", %"$have_gas_944" - %"$consume_951" = sub i64 %"$gasrem_947", 1 - store i64 %"$consume_951", i64* @_gasrem, align 8 +"$have_gas_927": ; preds = %"$out_of_gas_926", %"$have_gas_921" + %"$consume_928" = sub i64 %"$gasrem_924", 1 + store i64 %"$consume_928", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_952" = load i64, i64* @_gasrem, align 8 - %"$gascmp_953" = icmp ugt i64 1, %"$gasrem_952" - br i1 %"$gascmp_953", label %"$out_of_gas_954", label %"$have_gas_955" + %"$gasrem_929" = load i64, i64* @_gasrem, align 8 + %"$gascmp_930" = icmp ugt i64 1, %"$gasrem_929" + br i1 %"$gascmp_930", label %"$out_of_gas_931", label %"$have_gas_932" -"$out_of_gas_954": ; preds = %"$have_gas_950" +"$out_of_gas_931": ; preds = %"$have_gas_927" call void @_out_of_gas() - br label %"$have_gas_955" + br label %"$have_gas_932" -"$have_gas_955": ; preds = %"$out_of_gas_954", %"$have_gas_950" - %"$consume_956" = sub i64 %"$gasrem_952", 1 - store i64 %"$consume_956", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_957", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !103 +"$have_gas_932": ; preds = %"$out_of_gas_931", %"$have_gas_927" + %"$consume_933" = sub i64 %"$gasrem_929", 1 + store i64 %"$consume_933", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_934", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !101 %val = alloca %TName_Option_String*, align 8 - %"$indices_buf_958_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_958_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_958_salloc_load", i64 32) - %"$indices_buf_958_salloc" = bitcast i8* %"$indices_buf_958_salloc_salloc" to [32 x i8]* - %"$indices_buf_958" = bitcast [32 x i8]* %"$indices_buf_958_salloc" to i8* - %"$key1a_959" = load %String, %String* %key1a, align 8 - %"$indices_gep_960" = getelementptr i8, i8* %"$indices_buf_958", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_960" to %String* - store %String %"$key1a_959", %String* %indices_cast, align 8 - %"$key2a_961" = load %String, %String* %key2a, align 8 - %"$indices_gep_962" = getelementptr i8, i8* %"$indices_buf_958", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_962" to %String* - store %String %"$key2a_961", %String* %indices_cast1, align 8 - %"$execptr_load_964" = load i8*, i8** @_execptr, align 8 - %"$val_call_965" = call i8* @_fetch_field(i8* %"$execptr_load_964", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_963", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_958", i32 1), !dbg !104 - %"$val_966" = bitcast i8* %"$val_call_965" to %TName_Option_String* - store %TName_Option_String* %"$val_966", %TName_Option_String** %val, align 8 - %"$val_967" = load %TName_Option_String*, %TName_Option_String** %val, align 8 - %"$$val_967_968" = bitcast %TName_Option_String* %"$val_967" to i8* - %"$_literal_cost_call_969" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$val_967_968") - %"$gasadd_970" = add i64 %"$_literal_cost_call_969", 0 - %"$gasadd_971" = add i64 %"$gasadd_970", 2 - %"$gasrem_972" = load i64, i64* @_gasrem, align 8 - %"$gascmp_973" = icmp ugt i64 %"$gasadd_971", %"$gasrem_972" - br i1 %"$gascmp_973", label %"$out_of_gas_974", label %"$have_gas_975" - -"$out_of_gas_974": ; preds = %"$have_gas_955" - call void @_out_of_gas() - br label %"$have_gas_975" - -"$have_gas_975": ; preds = %"$out_of_gas_974", %"$have_gas_955" - %"$consume_976" = sub i64 %"$gasrem_972", %"$gasadd_971" - store i64 %"$consume_976", i64* @_gasrem, align 8 - %"$gasrem_977" = load i64, i64* @_gasrem, align 8 - %"$gascmp_978" = icmp ugt i64 2, %"$gasrem_977" - br i1 %"$gascmp_978", label %"$out_of_gas_979", label %"$have_gas_980" - -"$out_of_gas_979": ; preds = %"$have_gas_975" - call void @_out_of_gas() - br label %"$have_gas_980" - -"$have_gas_980": ; preds = %"$out_of_gas_979", %"$have_gas_975" - %"$consume_981" = sub i64 %"$gasrem_977", 2 - store i64 %"$consume_981", i64* @_gasrem, align 8 - %"$val_983" = load %TName_Option_String*, %TName_Option_String** %val, align 8 - %"$val_tag_984" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val_983", i32 0, i32 0 - %"$val_tag_985" = load i8, i8* %"$val_tag_984", align 1 - switch i8 %"$val_tag_985", label %"$empty_default_986" [ - i8 0, label %"$Some_987" - i8 1, label %"$None_1049" - ], !dbg !105 - -"$Some_987": ; preds = %"$have_gas_980" - %"$val_988" = bitcast %TName_Option_String* %"$val_983" to %CName_Some_String* - %"$v_gep_989" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val_988", i32 0, i32 1 - %"$v_load_990" = load %String, %String* %"$v_gep_989", align 8 + %"$indices_buf_935_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_935_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_935_salloc_load", i64 32) + %"$indices_buf_935_salloc" = bitcast i8* %"$indices_buf_935_salloc_salloc" to [32 x i8]* + %"$indices_buf_935" = bitcast [32 x i8]* %"$indices_buf_935_salloc" to i8* + %"$key1a_936" = load %String, %String* %key1a, align 8 + %"$indices_gep_937" = getelementptr i8, i8* %"$indices_buf_935", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_937" to %String* + store %String %"$key1a_936", %String* %indices_cast, align 8 + %"$key2a_938" = load %String, %String* %key2a, align 8 + %"$indices_gep_939" = getelementptr i8, i8* %"$indices_buf_935", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_939" to %String* + store %String %"$key2a_938", %String* %indices_cast1, align 8 + %"$execptr_load_941" = load i8*, i8** @_execptr, align 8 + %"$val_call_942" = call i8* @_fetch_field(i8* %"$execptr_load_941", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_940", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_935", i32 1), !dbg !102 + %"$val_943" = bitcast i8* %"$val_call_942" to %TName_Option_String* + store %TName_Option_String* %"$val_943", %TName_Option_String** %val, align 8 + %"$val_944" = load %TName_Option_String*, %TName_Option_String** %val, align 8 + %"$$val_944_945" = bitcast %TName_Option_String* %"$val_944" to i8* + %"$_literal_cost_call_946" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$val_944_945") + %"$gasadd_947" = add i64 %"$_literal_cost_call_946", 0 + %"$gasadd_948" = add i64 %"$gasadd_947", 2 + %"$gasrem_949" = load i64, i64* @_gasrem, align 8 + %"$gascmp_950" = icmp ugt i64 %"$gasadd_948", %"$gasrem_949" + br i1 %"$gascmp_950", label %"$out_of_gas_951", label %"$have_gas_952" + +"$out_of_gas_951": ; preds = %"$have_gas_932" + call void @_out_of_gas() + br label %"$have_gas_952" + +"$have_gas_952": ; preds = %"$out_of_gas_951", %"$have_gas_932" + %"$consume_953" = sub i64 %"$gasrem_949", %"$gasadd_948" + store i64 %"$consume_953", i64* @_gasrem, align 8 + %"$gasrem_954" = load i64, i64* @_gasrem, align 8 + %"$gascmp_955" = icmp ugt i64 2, %"$gasrem_954" + br i1 %"$gascmp_955", label %"$out_of_gas_956", label %"$have_gas_957" + +"$out_of_gas_956": ; preds = %"$have_gas_952" + call void @_out_of_gas() + br label %"$have_gas_957" + +"$have_gas_957": ; preds = %"$out_of_gas_956", %"$have_gas_952" + %"$consume_958" = sub i64 %"$gasrem_954", 2 + store i64 %"$consume_958", i64* @_gasrem, align 8 + %"$val_960" = load %TName_Option_String*, %TName_Option_String** %val, align 8 + %"$val_tag_961" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val_960", i32 0, i32 0 + %"$val_tag_962" = load i8, i8* %"$val_tag_961", align 1 + switch i8 %"$val_tag_962", label %"$empty_default_963" [ + i8 0, label %"$Some_964" + i8 1, label %"$None_1026" + ], !dbg !103 + +"$Some_964": ; preds = %"$have_gas_957" + %"$val_965" = bitcast %TName_Option_String* %"$val_960" to %CName_Some_String* + %"$v_gep_966" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val_965", i32 0, i32 1 + %"$v_load_967" = load %String, %String* %"$v_gep_966", align 8 %v = alloca %String, align 8 - store %String %"$v_load_990", %String* %v, align 8 - %"$gasrem_991" = load i64, i64* @_gasrem, align 8 - %"$gascmp_992" = icmp ugt i64 1, %"$gasrem_991" - br i1 %"$gascmp_992", label %"$out_of_gas_993", label %"$have_gas_994" + store %String %"$v_load_967", %String* %v, align 8 + %"$gasrem_968" = load i64, i64* @_gasrem, align 8 + %"$gascmp_969" = icmp ugt i64 1, %"$gasrem_968" + br i1 %"$gascmp_969", label %"$out_of_gas_970", label %"$have_gas_971" -"$out_of_gas_993": ; preds = %"$Some_987" +"$out_of_gas_970": ; preds = %"$Some_964" call void @_out_of_gas() - br label %"$have_gas_994" + br label %"$have_gas_971" -"$have_gas_994": ; preds = %"$out_of_gas_993", %"$Some_987" - %"$consume_995" = sub i64 %"$gasrem_991", 1 - store i64 %"$consume_995", i64* @_gasrem, align 8 +"$have_gas_971": ; preds = %"$out_of_gas_970", %"$Some_964" + %"$consume_972" = sub i64 %"$gasrem_968", 1 + store i64 %"$consume_972", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_v_996" = alloca %String, align 8 - %"$v_997" = load %String, %String* %v, align 8 - store %String %"$v_997", %String* %"$_literal_cost_v_996", align 8 - %"$$_literal_cost_v_996_998" = bitcast %String* %"$_literal_cost_v_996" to i8* - %"$_literal_cost_call_999" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_996_998") - %"$_literal_cost_s_1000" = alloca %String, align 8 - %"$s_1001" = load %String, %String* %s, align 8 - store %String %"$s_1001", %String* %"$_literal_cost_s_1000", align 8 - %"$$_literal_cost_s_1000_1002" = bitcast %String* %"$_literal_cost_s_1000" to i8* - %"$_literal_cost_call_1003" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_1000_1002") - %"$gasmin_1004" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_999", i64 %"$_literal_cost_call_1003") - %"$gasrem_1005" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1006" = icmp ugt i64 %"$gasmin_1004", %"$gasrem_1005" - br i1 %"$gascmp_1006", label %"$out_of_gas_1007", label %"$have_gas_1008" - -"$out_of_gas_1007": ; preds = %"$have_gas_994" - call void @_out_of_gas() - br label %"$have_gas_1008" - -"$have_gas_1008": ; preds = %"$out_of_gas_1007", %"$have_gas_994" - %"$consume_1009" = sub i64 %"$gasrem_1005", %"$gasmin_1004" - store i64 %"$consume_1009", i64* @_gasrem, align 8 - %"$execptr_load_1010" = load i8*, i8** @_execptr, align 8 - %"$v_1011" = load %String, %String* %v, align 8 - %"$s_1012" = load %String, %String* %s, align 8 - %"$eq_call_1013" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1010", %String %"$v_1011", %String %"$s_1012"), !dbg !106 - store %TName_Bool* %"$eq_call_1013", %TName_Bool** %t, align 8, !dbg !106 - %"$gasrem_1015" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1016" = icmp ugt i64 2, %"$gasrem_1015" - br i1 %"$gascmp_1016", label %"$out_of_gas_1017", label %"$have_gas_1018" - -"$out_of_gas_1017": ; preds = %"$have_gas_1008" - call void @_out_of_gas() - br label %"$have_gas_1018" - -"$have_gas_1018": ; preds = %"$out_of_gas_1017", %"$have_gas_1008" - %"$consume_1019" = sub i64 %"$gasrem_1015", 2 - store i64 %"$consume_1019", i64* @_gasrem, align 8 - %"$t_1021" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_1022" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_1021", i32 0, i32 0 - %"$t_tag_1023" = load i8, i8* %"$t_tag_1022", align 1 - switch i8 %"$t_tag_1023", label %"$empty_default_1024" [ - i8 0, label %"$True_1025" - i8 1, label %"$False_1027" - ], !dbg !109 - -"$True_1025": ; preds = %"$have_gas_1018" - %"$t_1026" = bitcast %TName_Bool* %"$t_1021" to %CName_True* - br label %"$matchsucc_1020" - -"$False_1027": ; preds = %"$have_gas_1018" - %"$t_1028" = bitcast %TName_Bool* %"$t_1021" to %CName_False* - %"$gasrem_1029" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1030" = icmp ugt i64 1, %"$gasrem_1029" - br i1 %"$gascmp_1030", label %"$out_of_gas_1031", label %"$have_gas_1032" - -"$out_of_gas_1031": ; preds = %"$False_1027" - call void @_out_of_gas() - br label %"$have_gas_1032" - -"$have_gas_1032": ; preds = %"$out_of_gas_1031", %"$False_1027" - %"$consume_1033" = sub i64 %"$gasrem_1029", 1 - store i64 %"$consume_1033", i64* @_gasrem, align 8 + %"$_literal_cost_v_973" = alloca %String, align 8 + %"$v_974" = load %String, %String* %v, align 8 + store %String %"$v_974", %String* %"$_literal_cost_v_973", align 8 + %"$$_literal_cost_v_973_975" = bitcast %String* %"$_literal_cost_v_973" to i8* + %"$_literal_cost_call_976" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_973_975") + %"$_literal_cost_s_977" = alloca %String, align 8 + %"$s_978" = load %String, %String* %s, align 8 + store %String %"$s_978", %String* %"$_literal_cost_s_977", align 8 + %"$$_literal_cost_s_977_979" = bitcast %String* %"$_literal_cost_s_977" to i8* + %"$_literal_cost_call_980" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_977_979") + %"$gasmin_981" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_976", i64 %"$_literal_cost_call_980") + %"$gasrem_982" = load i64, i64* @_gasrem, align 8 + %"$gascmp_983" = icmp ugt i64 %"$gasmin_981", %"$gasrem_982" + br i1 %"$gascmp_983", label %"$out_of_gas_984", label %"$have_gas_985" + +"$out_of_gas_984": ; preds = %"$have_gas_971" + call void @_out_of_gas() + br label %"$have_gas_985" + +"$have_gas_985": ; preds = %"$out_of_gas_984", %"$have_gas_971" + %"$consume_986" = sub i64 %"$gasrem_982", %"$gasmin_981" + store i64 %"$consume_986", i64* @_gasrem, align 8 + %"$execptr_load_987" = load i8*, i8** @_execptr, align 8 + %"$v_988" = load %String, %String* %v, align 8 + %"$s_989" = load %String, %String* %s, align 8 + %"$eq_call_990" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_987", %String %"$v_988", %String %"$s_989"), !dbg !104 + store %TName_Bool* %"$eq_call_990", %TName_Bool** %t, align 8, !dbg !104 + %"$gasrem_992" = load i64, i64* @_gasrem, align 8 + %"$gascmp_993" = icmp ugt i64 2, %"$gasrem_992" + br i1 %"$gascmp_993", label %"$out_of_gas_994", label %"$have_gas_995" + +"$out_of_gas_994": ; preds = %"$have_gas_985" + call void @_out_of_gas() + br label %"$have_gas_995" + +"$have_gas_995": ; preds = %"$out_of_gas_994", %"$have_gas_985" + %"$consume_996" = sub i64 %"$gasrem_992", 2 + store i64 %"$consume_996", i64* @_gasrem, align 8 + %"$t_998" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_999" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_998", i32 0, i32 0 + %"$t_tag_1000" = load i8, i8* %"$t_tag_999", align 1 + switch i8 %"$t_tag_1000", label %"$empty_default_1001" [ + i8 0, label %"$True_1002" + i8 1, label %"$False_1004" + ], !dbg !107 + +"$True_1002": ; preds = %"$have_gas_995" + %"$t_1003" = bitcast %TName_Bool* %"$t_998" to %CName_True* + br label %"$matchsucc_997" + +"$False_1004": ; preds = %"$have_gas_995" + %"$t_1005" = bitcast %TName_Bool* %"$t_998" to %CName_False* + %"$gasrem_1006" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1007" = icmp ugt i64 1, %"$gasrem_1006" + br i1 %"$gascmp_1007", label %"$out_of_gas_1008", label %"$have_gas_1009" + +"$out_of_gas_1008": ; preds = %"$False_1004" + call void @_out_of_gas() + br label %"$have_gas_1009" + +"$have_gas_1009": ; preds = %"$out_of_gas_1008", %"$False_1004" + %"$consume_1010" = sub i64 %"$gasrem_1006", 1 + store i64 %"$consume_1010", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_1034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1035" = icmp ugt i64 1, %"$gasrem_1034" - br i1 %"$gascmp_1035", label %"$out_of_gas_1036", label %"$have_gas_1037" - -"$out_of_gas_1036": ; preds = %"$have_gas_1032" - call void @_out_of_gas() - br label %"$have_gas_1037" - -"$have_gas_1037": ; preds = %"$out_of_gas_1036", %"$have_gas_1032" - %"$consume_1038" = sub i64 %"$gasrem_1034", 1 - store i64 %"$consume_1038", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_1039", i32 0, i32 0), i32 23 }, %String* %m, align 8, !dbg !110 - %"$gasrem_1040" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1041" = icmp ugt i64 1, %"$gasrem_1040" - br i1 %"$gascmp_1041", label %"$out_of_gas_1042", label %"$have_gas_1043" - -"$out_of_gas_1042": ; preds = %"$have_gas_1037" - call void @_out_of_gas() - br label %"$have_gas_1043" - -"$have_gas_1043": ; preds = %"$out_of_gas_1042", %"$have_gas_1037" - %"$consume_1044" = sub i64 %"$gasrem_1040", 1 - store i64 %"$consume_1044", i64* @_gasrem, align 8 - %"$fail_msg__origin_1045" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1045", align 1 - %"$fail_msg__sender_1046" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1046", align 1 - %"$tname_1047" = load %String, %String* %tname, align 8 - %"$m_1048" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1045", [20 x i8]* %"$fail_msg__sender_1046", %String %"$tname_1047", %String %"$m_1048"), !dbg !113 - br label %"$matchsucc_1020" - -"$empty_default_1024": ; preds = %"$have_gas_1018" - br label %"$matchsucc_1020" - -"$matchsucc_1020": ; preds = %"$have_gas_1043", %"$True_1025", %"$empty_default_1024" - br label %"$matchsucc_982" - -"$None_1049": ; preds = %"$have_gas_980" - %"$val_1050" = bitcast %TName_Option_String* %"$val_983" to %CName_None_String* - %"$gasrem_1051" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1052" = icmp ugt i64 1, %"$gasrem_1051" - br i1 %"$gascmp_1052", label %"$out_of_gas_1053", label %"$have_gas_1054" - -"$out_of_gas_1053": ; preds = %"$None_1049" - call void @_out_of_gas() - br label %"$have_gas_1054" - -"$have_gas_1054": ; preds = %"$out_of_gas_1053", %"$None_1049" - %"$consume_1055" = sub i64 %"$gasrem_1051", 1 - store i64 %"$consume_1055", i64* @_gasrem, align 8 - %"$fail__origin_1056" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_1056", align 1 - %"$fail__sender_1057" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_1057", align 1 - %"$tname_1058" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_1056", [20 x i8]* %"$fail__sender_1057", %String %"$tname_1058"), !dbg !114 - br label %"$matchsucc_982" - -"$empty_default_986": ; preds = %"$have_gas_980" - br label %"$matchsucc_982" - -"$matchsucc_982": ; preds = %"$have_gas_1054", %"$matchsucc_1020", %"$empty_default_986" - %"$gasrem_1059" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1060" = icmp ugt i64 1, %"$gasrem_1059" - br i1 %"$gascmp_1060", label %"$out_of_gas_1061", label %"$have_gas_1062" - -"$out_of_gas_1061": ; preds = %"$matchsucc_982" - call void @_out_of_gas() - br label %"$have_gas_1062" - -"$have_gas_1062": ; preds = %"$out_of_gas_1061", %"$matchsucc_982" - %"$consume_1063" = sub i64 %"$gasrem_1059", 1 - store i64 %"$consume_1063", i64* @_gasrem, align 8 + %"$gasrem_1011" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1012" = icmp ugt i64 1, %"$gasrem_1011" + br i1 %"$gascmp_1012", label %"$out_of_gas_1013", label %"$have_gas_1014" + +"$out_of_gas_1013": ; preds = %"$have_gas_1009" + call void @_out_of_gas() + br label %"$have_gas_1014" + +"$have_gas_1014": ; preds = %"$out_of_gas_1013", %"$have_gas_1009" + %"$consume_1015" = sub i64 %"$gasrem_1011", 1 + store i64 %"$consume_1015", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_1016", i32 0, i32 0), i32 23 }, %String* %m, align 8, !dbg !108 + %"$gasrem_1017" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1018" = icmp ugt i64 1, %"$gasrem_1017" + br i1 %"$gascmp_1018", label %"$out_of_gas_1019", label %"$have_gas_1020" + +"$out_of_gas_1019": ; preds = %"$have_gas_1014" + call void @_out_of_gas() + br label %"$have_gas_1020" + +"$have_gas_1020": ; preds = %"$out_of_gas_1019", %"$have_gas_1014" + %"$consume_1021" = sub i64 %"$gasrem_1017", 1 + store i64 %"$consume_1021", i64* @_gasrem, align 8 + %"$fail_msg__origin_1022" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1022", align 1 + %"$fail_msg__sender_1023" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1023", align 1 + %"$tname_1024" = load %String, %String* %tname, align 8 + %"$m_1025" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1022", [20 x i8]* %"$fail_msg__sender_1023", %String %"$tname_1024", %String %"$m_1025"), !dbg !111 + br label %"$matchsucc_997" + +"$empty_default_1001": ; preds = %"$have_gas_995" + br label %"$matchsucc_997" + +"$matchsucc_997": ; preds = %"$have_gas_1020", %"$True_1002", %"$empty_default_1001" + br label %"$matchsucc_959" + +"$None_1026": ; preds = %"$have_gas_957" + %"$val_1027" = bitcast %TName_Option_String* %"$val_960" to %CName_None_String* + %"$gasrem_1028" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1029" = icmp ugt i64 1, %"$gasrem_1028" + br i1 %"$gascmp_1029", label %"$out_of_gas_1030", label %"$have_gas_1031" + +"$out_of_gas_1030": ; preds = %"$None_1026" + call void @_out_of_gas() + br label %"$have_gas_1031" + +"$have_gas_1031": ; preds = %"$out_of_gas_1030", %"$None_1026" + %"$consume_1032" = sub i64 %"$gasrem_1028", 1 + store i64 %"$consume_1032", i64* @_gasrem, align 8 + %"$fail__origin_1033" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_1033", align 1 + %"$fail__sender_1034" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_1034", align 1 + %"$tname_1035" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_1033", [20 x i8]* %"$fail__sender_1034", %String %"$tname_1035"), !dbg !112 + br label %"$matchsucc_959" + +"$empty_default_963": ; preds = %"$have_gas_957" + br label %"$matchsucc_959" + +"$matchsucc_959": ; preds = %"$have_gas_1031", %"$matchsucc_997", %"$empty_default_963" + %"$gasrem_1036" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1037" = icmp ugt i64 1, %"$gasrem_1036" + br i1 %"$gascmp_1037", label %"$out_of_gas_1038", label %"$have_gas_1039" + +"$out_of_gas_1038": ; preds = %"$matchsucc_959" + call void @_out_of_gas() + br label %"$have_gas_1039" + +"$have_gas_1039": ; preds = %"$out_of_gas_1038", %"$matchsucc_959" + %"$consume_1040" = sub i64 %"$gasrem_1036", 1 + store i64 %"$consume_1040", i64* @_gasrem, align 8 %l_m2 = alloca %Map_String_String*, align 8 - %"$gasrem_1064" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1065" = icmp ugt i64 1, %"$gasrem_1064" - br i1 %"$gascmp_1065", label %"$out_of_gas_1066", label %"$have_gas_1067" + %"$gasrem_1041" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1042" = icmp ugt i64 1, %"$gasrem_1041" + br i1 %"$gascmp_1042", label %"$out_of_gas_1043", label %"$have_gas_1044" -"$out_of_gas_1066": ; preds = %"$have_gas_1062" +"$out_of_gas_1043": ; preds = %"$have_gas_1039" call void @_out_of_gas() - br label %"$have_gas_1067" + br label %"$have_gas_1044" -"$have_gas_1067": ; preds = %"$out_of_gas_1066", %"$have_gas_1062" - %"$consume_1068" = sub i64 %"$gasrem_1064", 1 - store i64 %"$consume_1068", i64* @_gasrem, align 8 +"$have_gas_1044": ; preds = %"$out_of_gas_1043", %"$have_gas_1039" + %"$consume_1045" = sub i64 %"$gasrem_1041", 1 + store i64 %"$consume_1045", i64* @_gasrem, align 8 %e = alloca %Map_String_String*, align 8 - %"$gasrem_1069" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1070" = icmp ugt i64 1, %"$gasrem_1069" - br i1 %"$gascmp_1070", label %"$out_of_gas_1071", label %"$have_gas_1072" + %"$gasrem_1046" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1047" = icmp ugt i64 1, %"$gasrem_1046" + br i1 %"$gascmp_1047", label %"$out_of_gas_1048", label %"$have_gas_1049" -"$out_of_gas_1071": ; preds = %"$have_gas_1067" +"$out_of_gas_1048": ; preds = %"$have_gas_1044" call void @_out_of_gas() - br label %"$have_gas_1072" + br label %"$have_gas_1049" -"$have_gas_1072": ; preds = %"$out_of_gas_1071", %"$have_gas_1067" - %"$consume_1073" = sub i64 %"$gasrem_1069", 1 - store i64 %"$consume_1073", i64* @_gasrem, align 8 - %"$execptr_load_1074" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_1075" = call i8* @_new_empty_map(i8* %"$execptr_load_1074") - %"$_new_empty_map_1076" = bitcast i8* %"$_new_empty_map_call_1075" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_1076", %Map_String_String** %e, align 8, !dbg !116 - %"$gasrem_1077" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1078" = icmp ugt i64 1, %"$gasrem_1077" - br i1 %"$gascmp_1078", label %"$out_of_gas_1079", label %"$have_gas_1080" +"$have_gas_1049": ; preds = %"$out_of_gas_1048", %"$have_gas_1044" + %"$consume_1050" = sub i64 %"$gasrem_1046", 1 + store i64 %"$consume_1050", i64* @_gasrem, align 8 + %"$execptr_load_1051" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_1052" = call i8* @_new_empty_map(i8* %"$execptr_load_1051") + %"$_new_empty_map_1053" = bitcast i8* %"$_new_empty_map_call_1052" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_1053", %Map_String_String** %e, align 8, !dbg !114 + %"$gasrem_1054" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1055" = icmp ugt i64 1, %"$gasrem_1054" + br i1 %"$gascmp_1055", label %"$out_of_gas_1056", label %"$have_gas_1057" -"$out_of_gas_1079": ; preds = %"$have_gas_1072" +"$out_of_gas_1056": ; preds = %"$have_gas_1049" call void @_out_of_gas() - br label %"$have_gas_1080" + br label %"$have_gas_1057" -"$have_gas_1080": ; preds = %"$out_of_gas_1079", %"$have_gas_1072" - %"$consume_1081" = sub i64 %"$gasrem_1077", 1 - store i64 %"$consume_1081", i64* @_gasrem, align 8 +"$have_gas_1057": ; preds = %"$out_of_gas_1056", %"$have_gas_1049" + %"$consume_1058" = sub i64 %"$gasrem_1054", 1 + store i64 %"$consume_1058", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_1082" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1083" = icmp ugt i64 1, %"$gasrem_1082" - br i1 %"$gascmp_1083", label %"$out_of_gas_1084", label %"$have_gas_1085" + %"$gasrem_1059" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1060" = icmp ugt i64 1, %"$gasrem_1059" + br i1 %"$gascmp_1060", label %"$out_of_gas_1061", label %"$have_gas_1062" -"$out_of_gas_1084": ; preds = %"$have_gas_1080" +"$out_of_gas_1061": ; preds = %"$have_gas_1057" call void @_out_of_gas() - br label %"$have_gas_1085" + br label %"$have_gas_1062" -"$have_gas_1085": ; preds = %"$out_of_gas_1084", %"$have_gas_1080" - %"$consume_1086" = sub i64 %"$gasrem_1082", 1 - store i64 %"$consume_1086", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1087", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !117 - %"$gasrem_1088" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1089" = icmp ugt i64 1, %"$gasrem_1088" - br i1 %"$gascmp_1089", label %"$out_of_gas_1090", label %"$have_gas_1091" +"$have_gas_1062": ; preds = %"$out_of_gas_1061", %"$have_gas_1057" + %"$consume_1063" = sub i64 %"$gasrem_1059", 1 + store i64 %"$consume_1063", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1064", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !115 + %"$gasrem_1065" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1066" = icmp ugt i64 1, %"$gasrem_1065" + br i1 %"$gascmp_1066", label %"$out_of_gas_1067", label %"$have_gas_1068" -"$out_of_gas_1090": ; preds = %"$have_gas_1085" +"$out_of_gas_1067": ; preds = %"$have_gas_1062" call void @_out_of_gas() - br label %"$have_gas_1091" + br label %"$have_gas_1068" -"$have_gas_1091": ; preds = %"$out_of_gas_1090", %"$have_gas_1085" - %"$consume_1092" = sub i64 %"$gasrem_1088", 1 - store i64 %"$consume_1092", i64* @_gasrem, align 8 +"$have_gas_1068": ; preds = %"$out_of_gas_1067", %"$have_gas_1062" + %"$consume_1069" = sub i64 %"$gasrem_1065", 1 + store i64 %"$consume_1069", i64* @_gasrem, align 8 %s1 = alloca %String, align 8 - %"$gasrem_1093" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1094" = icmp ugt i64 1, %"$gasrem_1093" - br i1 %"$gascmp_1094", label %"$out_of_gas_1095", label %"$have_gas_1096" + %"$gasrem_1070" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1071" = icmp ugt i64 1, %"$gasrem_1070" + br i1 %"$gascmp_1071", label %"$out_of_gas_1072", label %"$have_gas_1073" -"$out_of_gas_1095": ; preds = %"$have_gas_1091" +"$out_of_gas_1072": ; preds = %"$have_gas_1068" call void @_out_of_gas() - br label %"$have_gas_1096" + br label %"$have_gas_1073" -"$have_gas_1096": ; preds = %"$out_of_gas_1095", %"$have_gas_1091" - %"$consume_1097" = sub i64 %"$gasrem_1093", 1 - store i64 %"$consume_1097", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1098", i32 0, i32 0), i32 3 }, %String* %s1, align 8, !dbg !118 - %"$gasrem_1099" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1100" = icmp ugt i64 1, %"$gasrem_1099" - br i1 %"$gascmp_1100", label %"$out_of_gas_1101", label %"$have_gas_1102" +"$have_gas_1073": ; preds = %"$out_of_gas_1072", %"$have_gas_1068" + %"$consume_1074" = sub i64 %"$gasrem_1070", 1 + store i64 %"$consume_1074", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1075", i32 0, i32 0), i32 3 }, %String* %s1, align 8, !dbg !116 + %"$gasrem_1076" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1077" = icmp ugt i64 1, %"$gasrem_1076" + br i1 %"$gascmp_1077", label %"$out_of_gas_1078", label %"$have_gas_1079" -"$out_of_gas_1101": ; preds = %"$have_gas_1096" +"$out_of_gas_1078": ; preds = %"$have_gas_1073" call void @_out_of_gas() - br label %"$have_gas_1102" + br label %"$have_gas_1079" -"$have_gas_1102": ; preds = %"$out_of_gas_1101", %"$have_gas_1096" - %"$consume_1103" = sub i64 %"$gasrem_1099", 1 - store i64 %"$consume_1103", i64* @_gasrem, align 8 +"$have_gas_1079": ; preds = %"$out_of_gas_1078", %"$have_gas_1073" + %"$consume_1080" = sub i64 %"$gasrem_1076", 1 + store i64 %"$consume_1080", i64* @_gasrem, align 8 %m1 = alloca %Map_String_String*, align 8 - %"$e_1104" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_1104_1105" = bitcast %Map_String_String* %"$e_1104" to i8* - %"$_lengthof_call_1106" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$e_1104_1105") - %"$gasadd_1107" = add i64 1, %"$_lengthof_call_1106" - %"$gasrem_1108" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1109" = icmp ugt i64 %"$gasadd_1107", %"$gasrem_1108" - br i1 %"$gascmp_1109", label %"$out_of_gas_1110", label %"$have_gas_1111" - -"$out_of_gas_1110": ; preds = %"$have_gas_1102" - call void @_out_of_gas() - br label %"$have_gas_1111" - -"$have_gas_1111": ; preds = %"$out_of_gas_1110", %"$have_gas_1102" - %"$consume_1112" = sub i64 %"$gasrem_1108", %"$gasadd_1107" - store i64 %"$consume_1112", i64* @_gasrem, align 8 - %"$execptr_load_1113" = load i8*, i8** @_execptr, align 8 - %"$e_1114" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_1114_1115" = bitcast %Map_String_String* %"$e_1114" to i8* - %"$put_key2b_1116" = alloca %String, align 8 - %"$key2b_1117" = load %String, %String* %key2b, align 8 - store %String %"$key2b_1117", %String* %"$put_key2b_1116", align 8 - %"$$put_key2b_1116_1118" = bitcast %String* %"$put_key2b_1116" to i8* - %"$put_s1_1119" = alloca %String, align 8 - %"$s1_1120" = load %String, %String* %s1, align 8 - store %String %"$s1_1120", %String* %"$put_s1_1119", align 8 - %"$$put_s1_1119_1121" = bitcast %String* %"$put_s1_1119" to i8* - %"$put_call_1122" = call i8* @_put(i8* %"$execptr_load_1113", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$e_1114_1115", i8* %"$$put_key2b_1116_1118", i8* %"$$put_s1_1119_1121"), !dbg !119 - %"$put_1123" = bitcast i8* %"$put_call_1122" to %Map_String_String* - store %Map_String_String* %"$put_1123", %Map_String_String** %m1, align 8, !dbg !119 - %"$gasrem_1124" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1125" = icmp ugt i64 1, %"$gasrem_1124" - br i1 %"$gascmp_1125", label %"$out_of_gas_1126", label %"$have_gas_1127" - -"$out_of_gas_1126": ; preds = %"$have_gas_1111" - call void @_out_of_gas() - br label %"$have_gas_1127" - -"$have_gas_1127": ; preds = %"$out_of_gas_1126", %"$have_gas_1111" - %"$consume_1128" = sub i64 %"$gasrem_1124", 1 - store i64 %"$consume_1128", i64* @_gasrem, align 8 + %"$e_1081" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_1081_1082" = bitcast %Map_String_String* %"$e_1081" to i8* + %"$_lengthof_call_1083" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$e_1081_1082") + %"$gasadd_1084" = add i64 1, %"$_lengthof_call_1083" + %"$gasrem_1085" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1086" = icmp ugt i64 %"$gasadd_1084", %"$gasrem_1085" + br i1 %"$gascmp_1086", label %"$out_of_gas_1087", label %"$have_gas_1088" + +"$out_of_gas_1087": ; preds = %"$have_gas_1079" + call void @_out_of_gas() + br label %"$have_gas_1088" + +"$have_gas_1088": ; preds = %"$out_of_gas_1087", %"$have_gas_1079" + %"$consume_1089" = sub i64 %"$gasrem_1085", %"$gasadd_1084" + store i64 %"$consume_1089", i64* @_gasrem, align 8 + %"$execptr_load_1090" = load i8*, i8** @_execptr, align 8 + %"$e_1091" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_1091_1092" = bitcast %Map_String_String* %"$e_1091" to i8* + %"$put_key2b_1093" = alloca %String, align 8 + %"$key2b_1094" = load %String, %String* %key2b, align 8 + store %String %"$key2b_1094", %String* %"$put_key2b_1093", align 8 + %"$$put_key2b_1093_1095" = bitcast %String* %"$put_key2b_1093" to i8* + %"$put_s1_1096" = alloca %String, align 8 + %"$s1_1097" = load %String, %String* %s1, align 8 + store %String %"$s1_1097", %String* %"$put_s1_1096", align 8 + %"$$put_s1_1096_1098" = bitcast %String* %"$put_s1_1096" to i8* + %"$put_call_1099" = call i8* @_put(i8* %"$execptr_load_1090", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$e_1091_1092", i8* %"$$put_key2b_1093_1095", i8* %"$$put_s1_1096_1098"), !dbg !117 + %"$put_1100" = bitcast i8* %"$put_call_1099" to %Map_String_String* + store %Map_String_String* %"$put_1100", %Map_String_String** %m1, align 8, !dbg !117 + %"$gasrem_1101" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1102" = icmp ugt i64 1, %"$gasrem_1101" + br i1 %"$gascmp_1102", label %"$out_of_gas_1103", label %"$have_gas_1104" + +"$out_of_gas_1103": ; preds = %"$have_gas_1088" + call void @_out_of_gas() + br label %"$have_gas_1104" + +"$have_gas_1104": ; preds = %"$out_of_gas_1103", %"$have_gas_1088" + %"$consume_1105" = sub i64 %"$gasrem_1101", 1 + store i64 %"$consume_1105", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_1129" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1130" = icmp ugt i64 1, %"$gasrem_1129" - br i1 %"$gascmp_1130", label %"$out_of_gas_1131", label %"$have_gas_1132" + %"$gasrem_1106" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1107" = icmp ugt i64 1, %"$gasrem_1106" + br i1 %"$gascmp_1107", label %"$out_of_gas_1108", label %"$have_gas_1109" -"$out_of_gas_1131": ; preds = %"$have_gas_1127" +"$out_of_gas_1108": ; preds = %"$have_gas_1104" call void @_out_of_gas() - br label %"$have_gas_1132" + br label %"$have_gas_1109" -"$have_gas_1132": ; preds = %"$out_of_gas_1131", %"$have_gas_1127" - %"$consume_1133" = sub i64 %"$gasrem_1129", 1 - store i64 %"$consume_1133", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1134", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !120 - %"$gasrem_1135" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1136" = icmp ugt i64 1, %"$gasrem_1135" - br i1 %"$gascmp_1136", label %"$out_of_gas_1137", label %"$have_gas_1138" +"$have_gas_1109": ; preds = %"$out_of_gas_1108", %"$have_gas_1104" + %"$consume_1110" = sub i64 %"$gasrem_1106", 1 + store i64 %"$consume_1110", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1111", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !118 + %"$gasrem_1112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1113" = icmp ugt i64 1, %"$gasrem_1112" + br i1 %"$gascmp_1113", label %"$out_of_gas_1114", label %"$have_gas_1115" -"$out_of_gas_1137": ; preds = %"$have_gas_1132" +"$out_of_gas_1114": ; preds = %"$have_gas_1109" call void @_out_of_gas() - br label %"$have_gas_1138" + br label %"$have_gas_1115" -"$have_gas_1138": ; preds = %"$out_of_gas_1137", %"$have_gas_1132" - %"$consume_1139" = sub i64 %"$gasrem_1135", 1 - store i64 %"$consume_1139", i64* @_gasrem, align 8 +"$have_gas_1115": ; preds = %"$out_of_gas_1114", %"$have_gas_1109" + %"$consume_1116" = sub i64 %"$gasrem_1112", 1 + store i64 %"$consume_1116", i64* @_gasrem, align 8 %s2 = alloca %String, align 8 - %"$gasrem_1140" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1141" = icmp ugt i64 1, %"$gasrem_1140" - br i1 %"$gascmp_1141", label %"$out_of_gas_1142", label %"$have_gas_1143" - -"$out_of_gas_1142": ; preds = %"$have_gas_1138" - call void @_out_of_gas() - br label %"$have_gas_1143" - -"$have_gas_1143": ; preds = %"$out_of_gas_1142", %"$have_gas_1138" - %"$consume_1144" = sub i64 %"$gasrem_1140", 1 - store i64 %"$consume_1144", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1145", i32 0, i32 0), i32 3 }, %String* %s2, align 8, !dbg !121 - %"$m1_1146" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_1146_1147" = bitcast %Map_String_String* %"$m1_1146" to i8* - %"$_lengthof_call_1148" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_1146_1147") - %"$gasadd_1149" = add i64 1, %"$_lengthof_call_1148" - %"$gasrem_1150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1151" = icmp ugt i64 %"$gasadd_1149", %"$gasrem_1150" - br i1 %"$gascmp_1151", label %"$out_of_gas_1152", label %"$have_gas_1153" - -"$out_of_gas_1152": ; preds = %"$have_gas_1143" - call void @_out_of_gas() - br label %"$have_gas_1153" - -"$have_gas_1153": ; preds = %"$out_of_gas_1152", %"$have_gas_1143" - %"$consume_1154" = sub i64 %"$gasrem_1150", %"$gasadd_1149" - store i64 %"$consume_1154", i64* @_gasrem, align 8 - %"$execptr_load_1155" = load i8*, i8** @_execptr, align 8 - %"$m1_1156" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_1156_1157" = bitcast %Map_String_String* %"$m1_1156" to i8* - %"$put_key2c_1158" = alloca %String, align 8 - %"$key2c_1159" = load %String, %String* %key2c, align 8 - store %String %"$key2c_1159", %String* %"$put_key2c_1158", align 8 - %"$$put_key2c_1158_1160" = bitcast %String* %"$put_key2c_1158" to i8* - %"$put_s2_1161" = alloca %String, align 8 - %"$s2_1162" = load %String, %String* %s2, align 8 - store %String %"$s2_1162", %String* %"$put_s2_1161", align 8 - %"$$put_s2_1161_1163" = bitcast %String* %"$put_s2_1161" to i8* - %"$put_call_1164" = call i8* @_put(i8* %"$execptr_load_1155", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_1156_1157", i8* %"$$put_key2c_1158_1160", i8* %"$$put_s2_1161_1163"), !dbg !122 - %"$put_1165" = bitcast i8* %"$put_call_1164" to %Map_String_String* - store %Map_String_String* %"$put_1165", %Map_String_String** %l_m2, align 8, !dbg !122 - %"$gasrem_1166" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1167" = icmp ugt i64 1, %"$gasrem_1166" - br i1 %"$gascmp_1167", label %"$out_of_gas_1168", label %"$have_gas_1169" - -"$out_of_gas_1168": ; preds = %"$have_gas_1153" - call void @_out_of_gas() - br label %"$have_gas_1169" - -"$have_gas_1169": ; preds = %"$out_of_gas_1168", %"$have_gas_1153" - %"$consume_1170" = sub i64 %"$gasrem_1166", 1 - store i64 %"$consume_1170", i64* @_gasrem, align 8 + %"$gasrem_1117" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1118" = icmp ugt i64 1, %"$gasrem_1117" + br i1 %"$gascmp_1118", label %"$out_of_gas_1119", label %"$have_gas_1120" + +"$out_of_gas_1119": ; preds = %"$have_gas_1115" + call void @_out_of_gas() + br label %"$have_gas_1120" + +"$have_gas_1120": ; preds = %"$out_of_gas_1119", %"$have_gas_1115" + %"$consume_1121" = sub i64 %"$gasrem_1117", 1 + store i64 %"$consume_1121", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1122", i32 0, i32 0), i32 3 }, %String* %s2, align 8, !dbg !119 + %"$m1_1123" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_1123_1124" = bitcast %Map_String_String* %"$m1_1123" to i8* + %"$_lengthof_call_1125" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_1123_1124") + %"$gasadd_1126" = add i64 1, %"$_lengthof_call_1125" + %"$gasrem_1127" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1128" = icmp ugt i64 %"$gasadd_1126", %"$gasrem_1127" + br i1 %"$gascmp_1128", label %"$out_of_gas_1129", label %"$have_gas_1130" + +"$out_of_gas_1129": ; preds = %"$have_gas_1120" + call void @_out_of_gas() + br label %"$have_gas_1130" + +"$have_gas_1130": ; preds = %"$out_of_gas_1129", %"$have_gas_1120" + %"$consume_1131" = sub i64 %"$gasrem_1127", %"$gasadd_1126" + store i64 %"$consume_1131", i64* @_gasrem, align 8 + %"$execptr_load_1132" = load i8*, i8** @_execptr, align 8 + %"$m1_1133" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_1133_1134" = bitcast %Map_String_String* %"$m1_1133" to i8* + %"$put_key2c_1135" = alloca %String, align 8 + %"$key2c_1136" = load %String, %String* %key2c, align 8 + store %String %"$key2c_1136", %String* %"$put_key2c_1135", align 8 + %"$$put_key2c_1135_1137" = bitcast %String* %"$put_key2c_1135" to i8* + %"$put_s2_1138" = alloca %String, align 8 + %"$s2_1139" = load %String, %String* %s2, align 8 + store %String %"$s2_1139", %String* %"$put_s2_1138", align 8 + %"$$put_s2_1138_1140" = bitcast %String* %"$put_s2_1138" to i8* + %"$put_call_1141" = call i8* @_put(i8* %"$execptr_load_1132", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_1133_1134", i8* %"$$put_key2c_1135_1137", i8* %"$$put_s2_1138_1140"), !dbg !120 + %"$put_1142" = bitcast i8* %"$put_call_1141" to %Map_String_String* + store %Map_String_String* %"$put_1142", %Map_String_String** %l_m2, align 8, !dbg !120 + %"$gasrem_1143" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1144" = icmp ugt i64 1, %"$gasrem_1143" + br i1 %"$gascmp_1144", label %"$out_of_gas_1145", label %"$have_gas_1146" + +"$out_of_gas_1145": ; preds = %"$have_gas_1130" + call void @_out_of_gas() + br label %"$have_gas_1146" + +"$have_gas_1146": ; preds = %"$out_of_gas_1145", %"$have_gas_1130" + %"$consume_1147" = sub i64 %"$gasrem_1143", 1 + store i64 %"$consume_1147", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_1171" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1172" = icmp ugt i64 1, %"$gasrem_1171" - br i1 %"$gascmp_1172", label %"$out_of_gas_1173", label %"$have_gas_1174" - -"$out_of_gas_1173": ; preds = %"$have_gas_1169" - call void @_out_of_gas() - br label %"$have_gas_1174" - -"$have_gas_1174": ; preds = %"$out_of_gas_1173", %"$have_gas_1169" - %"$consume_1175" = sub i64 %"$gasrem_1171", 1 - store i64 %"$consume_1175", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1176", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !123 - %"$l_m2_1177" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 - %"$$l_m2_1177_1178" = bitcast %Map_String_String* %"$l_m2_1177" to i8* - %"$_literal_cost_call_1179" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$l_m2_1177_1178") - %"$gasadd_1180" = add i64 %"$_literal_cost_call_1179", 1 - %"$gasrem_1181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1182" = icmp ugt i64 %"$gasadd_1180", %"$gasrem_1181" - br i1 %"$gascmp_1182", label %"$out_of_gas_1183", label %"$have_gas_1184" - -"$out_of_gas_1183": ; preds = %"$have_gas_1174" - call void @_out_of_gas() - br label %"$have_gas_1184" - -"$have_gas_1184": ; preds = %"$out_of_gas_1183", %"$have_gas_1174" - %"$consume_1185" = sub i64 %"$gasrem_1181", %"$gasadd_1180" - store i64 %"$consume_1185", i64* @_gasrem, align 8 - %"$indices_buf_1186_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1186_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1186_salloc_load", i64 16) - %"$indices_buf_1186_salloc" = bitcast i8* %"$indices_buf_1186_salloc_salloc" to [16 x i8]* - %"$indices_buf_1186" = bitcast [16 x i8]* %"$indices_buf_1186_salloc" to i8* - %"$key1b_1187" = load %String, %String* %key1b, align 8 - %"$indices_gep_1188" = getelementptr i8, i8* %"$indices_buf_1186", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_1188" to %String* - store %String %"$key1b_1187", %String* %indices_cast2, align 8 - %"$execptr_load_1189" = load i8*, i8** @_execptr, align 8 - %"$l_m2_1191" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 - %"$update_value_1192" = bitcast %Map_String_String* %"$l_m2_1191" to i8* - call void @_update_field(i8* %"$execptr_load_1189", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1190", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 1, i8* %"$indices_buf_1186", i8* %"$update_value_1192"), !dbg !124 + %"$gasrem_1148" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1149" = icmp ugt i64 1, %"$gasrem_1148" + br i1 %"$gascmp_1149", label %"$out_of_gas_1150", label %"$have_gas_1151" + +"$out_of_gas_1150": ; preds = %"$have_gas_1146" + call void @_out_of_gas() + br label %"$have_gas_1151" + +"$have_gas_1151": ; preds = %"$out_of_gas_1150", %"$have_gas_1146" + %"$consume_1152" = sub i64 %"$gasrem_1148", 1 + store i64 %"$consume_1152", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1153", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !121 + %"$l_m2_1154" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 + %"$$l_m2_1154_1155" = bitcast %Map_String_String* %"$l_m2_1154" to i8* + %"$_literal_cost_call_1156" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$l_m2_1154_1155") + %"$gasadd_1157" = add i64 %"$_literal_cost_call_1156", 1 + %"$gasrem_1158" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1159" = icmp ugt i64 %"$gasadd_1157", %"$gasrem_1158" + br i1 %"$gascmp_1159", label %"$out_of_gas_1160", label %"$have_gas_1161" + +"$out_of_gas_1160": ; preds = %"$have_gas_1151" + call void @_out_of_gas() + br label %"$have_gas_1161" + +"$have_gas_1161": ; preds = %"$out_of_gas_1160", %"$have_gas_1151" + %"$consume_1162" = sub i64 %"$gasrem_1158", %"$gasadd_1157" + store i64 %"$consume_1162", i64* @_gasrem, align 8 + %"$indices_buf_1163_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1163_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1163_salloc_load", i64 16) + %"$indices_buf_1163_salloc" = bitcast i8* %"$indices_buf_1163_salloc_salloc" to [16 x i8]* + %"$indices_buf_1163" = bitcast [16 x i8]* %"$indices_buf_1163_salloc" to i8* + %"$key1b_1164" = load %String, %String* %key1b, align 8 + %"$indices_gep_1165" = getelementptr i8, i8* %"$indices_buf_1163", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_1165" to %String* + store %String %"$key1b_1164", %String* %indices_cast2, align 8 + %"$execptr_load_1166" = load i8*, i8** @_execptr, align 8 + %"$l_m2_1168" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 + %"$update_value_1169" = bitcast %Map_String_String* %"$l_m2_1168" to i8* + call void @_update_field(i8* %"$execptr_load_1166", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1167", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 1, i8* %"$indices_buf_1163", i8* %"$update_value_1169"), !dbg !122 ret void } @@ -2528,1302 +2496,1343 @@ declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) -define void @t5(i8* %0) !dbg !125 { +define void @t5(i8* %0) !dbg !123 { entry: - %"$_amount_1194" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1195" = bitcast i8* %"$_amount_1194" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1195", align 8 - %"$_origin_1196" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1197" = bitcast i8* %"$_origin_1196" to [20 x i8]* - %"$_sender_1198" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1199" = bitcast i8* %"$_sender_1198" to [20 x i8]* - call void @"$t5_911"(%Uint128 %_amount, [20 x i8]* %"$_origin_1197", [20 x i8]* %"$_sender_1199"), !dbg !126 + %"$_amount_1171" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1172" = bitcast i8* %"$_amount_1171" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1172", align 8 + %"$_origin_1173" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1174" = bitcast i8* %"$_origin_1173" to [20 x i8]* + %"$_sender_1175" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1176" = bitcast i8* %"$_sender_1175" to [20 x i8]* + call void @"$t5_888"(%Uint128 %_amount, [20 x i8]* %"$_origin_1174", [20 x i8]* %"$_sender_1176"), !dbg !124 ret void } -define internal void @"$t6_1200"(%Uint128 %_amount, [20 x i8]* %"$_origin_1201", [20 x i8]* %"$_sender_1202") !dbg !127 { +define internal void @"$t6_1177"(%Uint128 %_amount, [20 x i8]* %"$_origin_1178", [20 x i8]* %"$_sender_1179") !dbg !125 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1201", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1202", align 1 - %"$gasrem_1203" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1204" = icmp ugt i64 1, %"$gasrem_1203" - br i1 %"$gascmp_1204", label %"$out_of_gas_1205", label %"$have_gas_1206" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1178", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1179", align 1 + %"$gasrem_1180" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1181" = icmp ugt i64 1, %"$gasrem_1180" + br i1 %"$gascmp_1181", label %"$out_of_gas_1182", label %"$have_gas_1183" -"$out_of_gas_1205": ; preds = %entry +"$out_of_gas_1182": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1206" + br label %"$have_gas_1183" -"$have_gas_1206": ; preds = %"$out_of_gas_1205", %entry - %"$consume_1207" = sub i64 %"$gasrem_1203", 1 - store i64 %"$consume_1207", i64* @_gasrem, align 8 +"$have_gas_1183": ; preds = %"$out_of_gas_1182", %entry + %"$consume_1184" = sub i64 %"$gasrem_1180", 1 + store i64 %"$consume_1184", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_1208" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1209" = icmp ugt i64 1, %"$gasrem_1208" - br i1 %"$gascmp_1209", label %"$out_of_gas_1210", label %"$have_gas_1211" + %"$gasrem_1185" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1186" = icmp ugt i64 1, %"$gasrem_1185" + br i1 %"$gascmp_1186", label %"$out_of_gas_1187", label %"$have_gas_1188" -"$out_of_gas_1210": ; preds = %"$have_gas_1206" +"$out_of_gas_1187": ; preds = %"$have_gas_1183" call void @_out_of_gas() - br label %"$have_gas_1211" + br label %"$have_gas_1188" -"$have_gas_1211": ; preds = %"$out_of_gas_1210", %"$have_gas_1206" - %"$consume_1212" = sub i64 %"$gasrem_1208", 1 - store i64 %"$consume_1212", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1213", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !128 - %"$gasrem_1214" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1215" = icmp ugt i64 1, %"$gasrem_1214" - br i1 %"$gascmp_1215", label %"$out_of_gas_1216", label %"$have_gas_1217" +"$have_gas_1188": ; preds = %"$out_of_gas_1187", %"$have_gas_1183" + %"$consume_1189" = sub i64 %"$gasrem_1185", 1 + store i64 %"$consume_1189", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1190", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !126 + %"$gasrem_1191" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1192" = icmp ugt i64 1, %"$gasrem_1191" + br i1 %"$gascmp_1192", label %"$out_of_gas_1193", label %"$have_gas_1194" -"$out_of_gas_1216": ; preds = %"$have_gas_1211" +"$out_of_gas_1193": ; preds = %"$have_gas_1188" call void @_out_of_gas() - br label %"$have_gas_1217" + br label %"$have_gas_1194" -"$have_gas_1217": ; preds = %"$out_of_gas_1216", %"$have_gas_1211" - %"$consume_1218" = sub i64 %"$gasrem_1214", 1 - store i64 %"$consume_1218", i64* @_gasrem, align 8 +"$have_gas_1194": ; preds = %"$out_of_gas_1193", %"$have_gas_1188" + %"$consume_1195" = sub i64 %"$gasrem_1191", 1 + store i64 %"$consume_1195", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_1219" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1220" = icmp ugt i64 1, %"$gasrem_1219" - br i1 %"$gascmp_1220", label %"$out_of_gas_1221", label %"$have_gas_1222" + %"$gasrem_1196" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1197" = icmp ugt i64 1, %"$gasrem_1196" + br i1 %"$gascmp_1197", label %"$out_of_gas_1198", label %"$have_gas_1199" -"$out_of_gas_1221": ; preds = %"$have_gas_1217" +"$out_of_gas_1198": ; preds = %"$have_gas_1194" call void @_out_of_gas() - br label %"$have_gas_1222" + br label %"$have_gas_1199" -"$have_gas_1222": ; preds = %"$out_of_gas_1221", %"$have_gas_1217" - %"$consume_1223" = sub i64 %"$gasrem_1219", 1 - store i64 %"$consume_1223", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1224", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !129 - %"$gasrem_1225" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1226" = icmp ugt i64 1, %"$gasrem_1225" - br i1 %"$gascmp_1226", label %"$out_of_gas_1227", label %"$have_gas_1228" +"$have_gas_1199": ; preds = %"$out_of_gas_1198", %"$have_gas_1194" + %"$consume_1200" = sub i64 %"$gasrem_1196", 1 + store i64 %"$consume_1200", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1201", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !127 + %"$gasrem_1202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1203" = icmp ugt i64 1, %"$gasrem_1202" + br i1 %"$gascmp_1203", label %"$out_of_gas_1204", label %"$have_gas_1205" -"$out_of_gas_1227": ; preds = %"$have_gas_1222" +"$out_of_gas_1204": ; preds = %"$have_gas_1199" call void @_out_of_gas() - br label %"$have_gas_1228" + br label %"$have_gas_1205" -"$have_gas_1228": ; preds = %"$out_of_gas_1227", %"$have_gas_1222" - %"$consume_1229" = sub i64 %"$gasrem_1225", 1 - store i64 %"$consume_1229", i64* @_gasrem, align 8 +"$have_gas_1205": ; preds = %"$out_of_gas_1204", %"$have_gas_1199" + %"$consume_1206" = sub i64 %"$gasrem_1202", 1 + store i64 %"$consume_1206", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_1230" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1231" = icmp ugt i64 1, %"$gasrem_1230" - br i1 %"$gascmp_1231", label %"$out_of_gas_1232", label %"$have_gas_1233" + %"$gasrem_1207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1208" = icmp ugt i64 1, %"$gasrem_1207" + br i1 %"$gascmp_1208", label %"$out_of_gas_1209", label %"$have_gas_1210" -"$out_of_gas_1232": ; preds = %"$have_gas_1228" +"$out_of_gas_1209": ; preds = %"$have_gas_1205" call void @_out_of_gas() - br label %"$have_gas_1233" + br label %"$have_gas_1210" -"$have_gas_1233": ; preds = %"$out_of_gas_1232", %"$have_gas_1228" - %"$consume_1234" = sub i64 %"$gasrem_1230", 1 - store i64 %"$consume_1234", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1235", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !130 +"$have_gas_1210": ; preds = %"$out_of_gas_1209", %"$have_gas_1205" + %"$consume_1211" = sub i64 %"$gasrem_1207", 1 + store i64 %"$consume_1211", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1212", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !128 %c1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_1236_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1236_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1236_salloc_load", i64 32) - %"$indices_buf_1236_salloc" = bitcast i8* %"$indices_buf_1236_salloc_salloc" to [32 x i8]* - %"$indices_buf_1236" = bitcast [32 x i8]* %"$indices_buf_1236_salloc" to i8* - %"$key1a_1237" = load %String, %String* %key1a, align 8 - %"$indices_gep_1238" = getelementptr i8, i8* %"$indices_buf_1236", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_1238" to %String* - store %String %"$key1a_1237", %String* %indices_cast, align 8 - %"$key2a_1239" = load %String, %String* %key2a, align 8 - %"$indices_gep_1240" = getelementptr i8, i8* %"$indices_buf_1236", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_1240" to %String* - store %String %"$key2a_1239", %String* %indices_cast1, align 8 - %"$execptr_load_1242" = load i8*, i8** @_execptr, align 8 - %"$c1_call_1243" = call i8* @_fetch_field(i8* %"$execptr_load_1242", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1241", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1236", i32 1), !dbg !131 - %"$c1_1244" = bitcast i8* %"$c1_call_1243" to %TName_Option_String* - store %TName_Option_String* %"$c1_1244", %TName_Option_String** %c1, align 8 - %"$c1_1245" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$$c1_1245_1246" = bitcast %TName_Option_String* %"$c1_1245" to i8* - %"$_literal_cost_call_1247" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$c1_1245_1246") - %"$gasadd_1248" = add i64 %"$_literal_cost_call_1247", 0 - %"$gasadd_1249" = add i64 %"$gasadd_1248", 2 - %"$gasrem_1250" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1251" = icmp ugt i64 %"$gasadd_1249", %"$gasrem_1250" - br i1 %"$gascmp_1251", label %"$out_of_gas_1252", label %"$have_gas_1253" - -"$out_of_gas_1252": ; preds = %"$have_gas_1233" - call void @_out_of_gas() - br label %"$have_gas_1253" - -"$have_gas_1253": ; preds = %"$out_of_gas_1252", %"$have_gas_1233" - %"$consume_1254" = sub i64 %"$gasrem_1250", %"$gasadd_1249" - store i64 %"$consume_1254", i64* @_gasrem, align 8 - %"$gasrem_1255" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1256" = icmp ugt i64 2, %"$gasrem_1255" - br i1 %"$gascmp_1256", label %"$out_of_gas_1257", label %"$have_gas_1258" - -"$out_of_gas_1257": ; preds = %"$have_gas_1253" - call void @_out_of_gas() - br label %"$have_gas_1258" - -"$have_gas_1258": ; preds = %"$out_of_gas_1257", %"$have_gas_1253" - %"$consume_1259" = sub i64 %"$gasrem_1255", 2 - store i64 %"$consume_1259", i64* @_gasrem, align 8 - %"$c1_1261" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_1262" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1261", i32 0, i32 0 - %"$c1_tag_1263" = load i8, i8* %"$c1_tag_1262", align 1 - switch i8 %"$c1_tag_1263", label %"$empty_default_1264" [ - i8 0, label %"$Some_1265" - i8 1, label %"$None_1338" - ], !dbg !132 - -"$Some_1265": ; preds = %"$have_gas_1258" - %"$c1_1266" = bitcast %TName_Option_String* %"$c1_1261" to %CName_Some_String* - %"$c_gep_1267" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1266", i32 0, i32 1 - %"$c_load_1268" = load %String, %String* %"$c_gep_1267", align 8 + %"$indices_buf_1213_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1213_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1213_salloc_load", i64 32) + %"$indices_buf_1213_salloc" = bitcast i8* %"$indices_buf_1213_salloc_salloc" to [32 x i8]* + %"$indices_buf_1213" = bitcast [32 x i8]* %"$indices_buf_1213_salloc" to i8* + %"$key1a_1214" = load %String, %String* %key1a, align 8 + %"$indices_gep_1215" = getelementptr i8, i8* %"$indices_buf_1213", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_1215" to %String* + store %String %"$key1a_1214", %String* %indices_cast, align 8 + %"$key2a_1216" = load %String, %String* %key2a, align 8 + %"$indices_gep_1217" = getelementptr i8, i8* %"$indices_buf_1213", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_1217" to %String* + store %String %"$key2a_1216", %String* %indices_cast1, align 8 + %"$execptr_load_1219" = load i8*, i8** @_execptr, align 8 + %"$c1_call_1220" = call i8* @_fetch_field(i8* %"$execptr_load_1219", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1218", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1213", i32 1), !dbg !129 + %"$c1_1221" = bitcast i8* %"$c1_call_1220" to %TName_Option_String* + store %TName_Option_String* %"$c1_1221", %TName_Option_String** %c1, align 8 + %"$c1_1222" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$$c1_1222_1223" = bitcast %TName_Option_String* %"$c1_1222" to i8* + %"$_literal_cost_call_1224" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$c1_1222_1223") + %"$gasadd_1225" = add i64 %"$_literal_cost_call_1224", 0 + %"$gasadd_1226" = add i64 %"$gasadd_1225", 2 + %"$gasrem_1227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1228" = icmp ugt i64 %"$gasadd_1226", %"$gasrem_1227" + br i1 %"$gascmp_1228", label %"$out_of_gas_1229", label %"$have_gas_1230" + +"$out_of_gas_1229": ; preds = %"$have_gas_1210" + call void @_out_of_gas() + br label %"$have_gas_1230" + +"$have_gas_1230": ; preds = %"$out_of_gas_1229", %"$have_gas_1210" + %"$consume_1231" = sub i64 %"$gasrem_1227", %"$gasadd_1226" + store i64 %"$consume_1231", i64* @_gasrem, align 8 + %"$gasrem_1232" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1233" = icmp ugt i64 2, %"$gasrem_1232" + br i1 %"$gascmp_1233", label %"$out_of_gas_1234", label %"$have_gas_1235" + +"$out_of_gas_1234": ; preds = %"$have_gas_1230" + call void @_out_of_gas() + br label %"$have_gas_1235" + +"$have_gas_1235": ; preds = %"$out_of_gas_1234", %"$have_gas_1230" + %"$consume_1236" = sub i64 %"$gasrem_1232", 2 + store i64 %"$consume_1236", i64* @_gasrem, align 8 + %"$c1_1238" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_1239" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1238", i32 0, i32 0 + %"$c1_tag_1240" = load i8, i8* %"$c1_tag_1239", align 1 + switch i8 %"$c1_tag_1240", label %"$empty_default_1241" [ + i8 0, label %"$Some_1242" + i8 1, label %"$None_1315" + ], !dbg !130 + +"$Some_1242": ; preds = %"$have_gas_1235" + %"$c1_1243" = bitcast %TName_Option_String* %"$c1_1238" to %CName_Some_String* + %"$c_gep_1244" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1243", i32 0, i32 1 + %"$c_load_1245" = load %String, %String* %"$c_gep_1244", align 8 %c = alloca %String, align 8 - store %String %"$c_load_1268", %String* %c, align 8 - %"$gasrem_1269" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1270" = icmp ugt i64 1, %"$gasrem_1269" - br i1 %"$gascmp_1270", label %"$out_of_gas_1271", label %"$have_gas_1272" + store %String %"$c_load_1245", %String* %c, align 8 + %"$gasrem_1246" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1247" = icmp ugt i64 1, %"$gasrem_1246" + br i1 %"$gascmp_1247", label %"$out_of_gas_1248", label %"$have_gas_1249" -"$out_of_gas_1271": ; preds = %"$Some_1265" +"$out_of_gas_1248": ; preds = %"$Some_1242" call void @_out_of_gas() - br label %"$have_gas_1272" + br label %"$have_gas_1249" -"$have_gas_1272": ; preds = %"$out_of_gas_1271", %"$Some_1265" - %"$consume_1273" = sub i64 %"$gasrem_1269", 1 - store i64 %"$consume_1273", i64* @_gasrem, align 8 +"$have_gas_1249": ; preds = %"$out_of_gas_1248", %"$Some_1242" + %"$consume_1250" = sub i64 %"$gasrem_1246", 1 + store i64 %"$consume_1250", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_1274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1275" = icmp ugt i64 1, %"$gasrem_1274" - br i1 %"$gascmp_1275", label %"$out_of_gas_1276", label %"$have_gas_1277" + %"$gasrem_1251" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1252" = icmp ugt i64 1, %"$gasrem_1251" + br i1 %"$gascmp_1252", label %"$out_of_gas_1253", label %"$have_gas_1254" -"$out_of_gas_1276": ; preds = %"$have_gas_1272" +"$out_of_gas_1253": ; preds = %"$have_gas_1249" call void @_out_of_gas() - br label %"$have_gas_1277" + br label %"$have_gas_1254" -"$have_gas_1277": ; preds = %"$out_of_gas_1276", %"$have_gas_1272" - %"$consume_1278" = sub i64 %"$gasrem_1274", 1 - store i64 %"$consume_1278", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1279", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !133 - %"$gasrem_1280" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1281" = icmp ugt i64 1, %"$gasrem_1280" - br i1 %"$gascmp_1281", label %"$out_of_gas_1282", label %"$have_gas_1283" +"$have_gas_1254": ; preds = %"$out_of_gas_1253", %"$have_gas_1249" + %"$consume_1255" = sub i64 %"$gasrem_1251", 1 + store i64 %"$consume_1255", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1256", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !131 + %"$gasrem_1257" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1258" = icmp ugt i64 1, %"$gasrem_1257" + br i1 %"$gascmp_1258", label %"$out_of_gas_1259", label %"$have_gas_1260" -"$out_of_gas_1282": ; preds = %"$have_gas_1277" +"$out_of_gas_1259": ; preds = %"$have_gas_1254" call void @_out_of_gas() - br label %"$have_gas_1283" + br label %"$have_gas_1260" -"$have_gas_1283": ; preds = %"$out_of_gas_1282", %"$have_gas_1277" - %"$consume_1284" = sub i64 %"$gasrem_1280", 1 - store i64 %"$consume_1284", i64* @_gasrem, align 8 +"$have_gas_1260": ; preds = %"$out_of_gas_1259", %"$have_gas_1254" + %"$consume_1261" = sub i64 %"$gasrem_1257", 1 + store i64 %"$consume_1261", i64* @_gasrem, align 8 %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1285" = alloca %String, align 8 - %"$c_1286" = load %String, %String* %c, align 8 - store %String %"$c_1286", %String* %"$_literal_cost_c_1285", align 8 - %"$$_literal_cost_c_1285_1287" = bitcast %String* %"$_literal_cost_c_1285" to i8* - %"$_literal_cost_call_1288" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_1285_1287") - %"$_literal_cost_v_1289" = alloca %String, align 8 - %"$v_1290" = load %String, %String* %v, align 8 - store %String %"$v_1290", %String* %"$_literal_cost_v_1289", align 8 - %"$$_literal_cost_v_1289_1291" = bitcast %String* %"$_literal_cost_v_1289" to i8* - %"$_literal_cost_call_1292" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_1289_1291") - %"$gasmin_1293" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1288", i64 %"$_literal_cost_call_1292") - %"$gasrem_1294" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1295" = icmp ugt i64 %"$gasmin_1293", %"$gasrem_1294" - br i1 %"$gascmp_1295", label %"$out_of_gas_1296", label %"$have_gas_1297" - -"$out_of_gas_1296": ; preds = %"$have_gas_1283" - call void @_out_of_gas() - br label %"$have_gas_1297" - -"$have_gas_1297": ; preds = %"$out_of_gas_1296", %"$have_gas_1283" - %"$consume_1298" = sub i64 %"$gasrem_1294", %"$gasmin_1293" - store i64 %"$consume_1298", i64* @_gasrem, align 8 - %"$execptr_load_1299" = load i8*, i8** @_execptr, align 8 - %"$c_1300" = load %String, %String* %c, align 8 - %"$v_1301" = load %String, %String* %v, align 8 - %"$eq_call_1302" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1299", %String %"$c_1300", %String %"$v_1301"), !dbg !136 - store %TName_Bool* %"$eq_call_1302", %TName_Bool** %eq, align 8, !dbg !136 - %"$gasrem_1304" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1305" = icmp ugt i64 2, %"$gasrem_1304" - br i1 %"$gascmp_1305", label %"$out_of_gas_1306", label %"$have_gas_1307" - -"$out_of_gas_1306": ; preds = %"$have_gas_1297" - call void @_out_of_gas() - br label %"$have_gas_1307" - -"$have_gas_1307": ; preds = %"$out_of_gas_1306", %"$have_gas_1297" - %"$consume_1308" = sub i64 %"$gasrem_1304", 2 - store i64 %"$consume_1308", i64* @_gasrem, align 8 - %"$eq_1310" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_1311" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1310", i32 0, i32 0 - %"$eq_tag_1312" = load i8, i8* %"$eq_tag_1311", align 1 - switch i8 %"$eq_tag_1312", label %"$empty_default_1313" [ - i8 0, label %"$True_1314" - i8 1, label %"$False_1316" - ], !dbg !137 - -"$True_1314": ; preds = %"$have_gas_1307" - %"$eq_1315" = bitcast %TName_Bool* %"$eq_1310" to %CName_True* - br label %"$matchsucc_1309" - -"$False_1316": ; preds = %"$have_gas_1307" - %"$eq_1317" = bitcast %TName_Bool* %"$eq_1310" to %CName_False* - %"$gasrem_1318" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1319" = icmp ugt i64 1, %"$gasrem_1318" - br i1 %"$gascmp_1319", label %"$out_of_gas_1320", label %"$have_gas_1321" - -"$out_of_gas_1320": ; preds = %"$False_1316" - call void @_out_of_gas() - br label %"$have_gas_1321" - -"$have_gas_1321": ; preds = %"$out_of_gas_1320", %"$False_1316" - %"$consume_1322" = sub i64 %"$gasrem_1318", 1 - store i64 %"$consume_1322", i64* @_gasrem, align 8 + %"$_literal_cost_c_1262" = alloca %String, align 8 + %"$c_1263" = load %String, %String* %c, align 8 + store %String %"$c_1263", %String* %"$_literal_cost_c_1262", align 8 + %"$$_literal_cost_c_1262_1264" = bitcast %String* %"$_literal_cost_c_1262" to i8* + %"$_literal_cost_call_1265" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_1262_1264") + %"$_literal_cost_v_1266" = alloca %String, align 8 + %"$v_1267" = load %String, %String* %v, align 8 + store %String %"$v_1267", %String* %"$_literal_cost_v_1266", align 8 + %"$$_literal_cost_v_1266_1268" = bitcast %String* %"$_literal_cost_v_1266" to i8* + %"$_literal_cost_call_1269" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_1266_1268") + %"$gasmin_1270" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1265", i64 %"$_literal_cost_call_1269") + %"$gasrem_1271" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1272" = icmp ugt i64 %"$gasmin_1270", %"$gasrem_1271" + br i1 %"$gascmp_1272", label %"$out_of_gas_1273", label %"$have_gas_1274" + +"$out_of_gas_1273": ; preds = %"$have_gas_1260" + call void @_out_of_gas() + br label %"$have_gas_1274" + +"$have_gas_1274": ; preds = %"$out_of_gas_1273", %"$have_gas_1260" + %"$consume_1275" = sub i64 %"$gasrem_1271", %"$gasmin_1270" + store i64 %"$consume_1275", i64* @_gasrem, align 8 + %"$execptr_load_1276" = load i8*, i8** @_execptr, align 8 + %"$c_1277" = load %String, %String* %c, align 8 + %"$v_1278" = load %String, %String* %v, align 8 + %"$eq_call_1279" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1276", %String %"$c_1277", %String %"$v_1278"), !dbg !134 + store %TName_Bool* %"$eq_call_1279", %TName_Bool** %eq, align 8, !dbg !134 + %"$gasrem_1281" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1282" = icmp ugt i64 2, %"$gasrem_1281" + br i1 %"$gascmp_1282", label %"$out_of_gas_1283", label %"$have_gas_1284" + +"$out_of_gas_1283": ; preds = %"$have_gas_1274" + call void @_out_of_gas() + br label %"$have_gas_1284" + +"$have_gas_1284": ; preds = %"$out_of_gas_1283", %"$have_gas_1274" + %"$consume_1285" = sub i64 %"$gasrem_1281", 2 + store i64 %"$consume_1285", i64* @_gasrem, align 8 + %"$eq_1287" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_1288" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1287", i32 0, i32 0 + %"$eq_tag_1289" = load i8, i8* %"$eq_tag_1288", align 1 + switch i8 %"$eq_tag_1289", label %"$empty_default_1290" [ + i8 0, label %"$True_1291" + i8 1, label %"$False_1293" + ], !dbg !135 + +"$True_1291": ; preds = %"$have_gas_1284" + %"$eq_1292" = bitcast %TName_Bool* %"$eq_1287" to %CName_True* + br label %"$matchsucc_1286" + +"$False_1293": ; preds = %"$have_gas_1284" + %"$eq_1294" = bitcast %TName_Bool* %"$eq_1287" to %CName_False* + %"$gasrem_1295" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1296" = icmp ugt i64 1, %"$gasrem_1295" + br i1 %"$gascmp_1296", label %"$out_of_gas_1297", label %"$have_gas_1298" + +"$out_of_gas_1297": ; preds = %"$False_1293" + call void @_out_of_gas() + br label %"$have_gas_1298" + +"$have_gas_1298": ; preds = %"$out_of_gas_1297", %"$False_1293" + %"$consume_1299" = sub i64 %"$gasrem_1295", 1 + store i64 %"$consume_1299", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_1323" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1324" = icmp ugt i64 1, %"$gasrem_1323" - br i1 %"$gascmp_1324", label %"$out_of_gas_1325", label %"$have_gas_1326" + %"$gasrem_1300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1301" = icmp ugt i64 1, %"$gasrem_1300" + br i1 %"$gascmp_1301", label %"$out_of_gas_1302", label %"$have_gas_1303" -"$out_of_gas_1325": ; preds = %"$have_gas_1321" +"$out_of_gas_1302": ; preds = %"$have_gas_1298" call void @_out_of_gas() - br label %"$have_gas_1326" + br label %"$have_gas_1303" -"$have_gas_1326": ; preds = %"$out_of_gas_1325", %"$have_gas_1321" - %"$consume_1327" = sub i64 %"$gasrem_1323", 1 - store i64 %"$consume_1327", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1328", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !138 - %"$gasrem_1329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1330" = icmp ugt i64 1, %"$gasrem_1329" - br i1 %"$gascmp_1330", label %"$out_of_gas_1331", label %"$have_gas_1332" +"$have_gas_1303": ; preds = %"$out_of_gas_1302", %"$have_gas_1298" + %"$consume_1304" = sub i64 %"$gasrem_1300", 1 + store i64 %"$consume_1304", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1305", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !136 + %"$gasrem_1306" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1307" = icmp ugt i64 1, %"$gasrem_1306" + br i1 %"$gascmp_1307", label %"$out_of_gas_1308", label %"$have_gas_1309" -"$out_of_gas_1331": ; preds = %"$have_gas_1326" +"$out_of_gas_1308": ; preds = %"$have_gas_1303" call void @_out_of_gas() - br label %"$have_gas_1332" + br label %"$have_gas_1309" -"$have_gas_1332": ; preds = %"$out_of_gas_1331", %"$have_gas_1326" - %"$consume_1333" = sub i64 %"$gasrem_1329", 1 - store i64 %"$consume_1333", i64* @_gasrem, align 8 - %"$fail_msg__origin_1334" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1334", align 1 - %"$fail_msg__sender_1335" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1335", align 1 - %"$tname_1336" = load %String, %String* %tname, align 8 - %"$m_1337" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1334", [20 x i8]* %"$fail_msg__sender_1335", %String %"$tname_1336", %String %"$m_1337"), !dbg !141 - br label %"$matchsucc_1309" +"$have_gas_1309": ; preds = %"$out_of_gas_1308", %"$have_gas_1303" + %"$consume_1310" = sub i64 %"$gasrem_1306", 1 + store i64 %"$consume_1310", i64* @_gasrem, align 8 + %"$fail_msg__origin_1311" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1311", align 1 + %"$fail_msg__sender_1312" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1312", align 1 + %"$tname_1313" = load %String, %String* %tname, align 8 + %"$m_1314" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1311", [20 x i8]* %"$fail_msg__sender_1312", %String %"$tname_1313", %String %"$m_1314"), !dbg !139 + br label %"$matchsucc_1286" -"$empty_default_1313": ; preds = %"$have_gas_1307" - br label %"$matchsucc_1309" +"$empty_default_1290": ; preds = %"$have_gas_1284" + br label %"$matchsucc_1286" -"$matchsucc_1309": ; preds = %"$have_gas_1332", %"$True_1314", %"$empty_default_1313" - br label %"$matchsucc_1260" +"$matchsucc_1286": ; preds = %"$have_gas_1309", %"$True_1291", %"$empty_default_1290" + br label %"$matchsucc_1237" -"$None_1338": ; preds = %"$have_gas_1258" - %"$c1_1339" = bitcast %TName_Option_String* %"$c1_1261" to %CName_None_String* - %"$gasrem_1340" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1341" = icmp ugt i64 1, %"$gasrem_1340" - br i1 %"$gascmp_1341", label %"$out_of_gas_1342", label %"$have_gas_1343" +"$None_1315": ; preds = %"$have_gas_1235" + %"$c1_1316" = bitcast %TName_Option_String* %"$c1_1238" to %CName_None_String* + %"$gasrem_1317" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1318" = icmp ugt i64 1, %"$gasrem_1317" + br i1 %"$gascmp_1318", label %"$out_of_gas_1319", label %"$have_gas_1320" -"$out_of_gas_1342": ; preds = %"$None_1338" +"$out_of_gas_1319": ; preds = %"$None_1315" call void @_out_of_gas() - br label %"$have_gas_1343" + br label %"$have_gas_1320" -"$have_gas_1343": ; preds = %"$out_of_gas_1342", %"$None_1338" - %"$consume_1344" = sub i64 %"$gasrem_1340", 1 - store i64 %"$consume_1344", i64* @_gasrem, align 8 +"$have_gas_1320": ; preds = %"$out_of_gas_1319", %"$None_1315" + %"$consume_1321" = sub i64 %"$gasrem_1317", 1 + store i64 %"$consume_1321", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_1345" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1346" = icmp ugt i64 1, %"$gasrem_1345" - br i1 %"$gascmp_1346", label %"$out_of_gas_1347", label %"$have_gas_1348" + %"$gasrem_1322" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1323" = icmp ugt i64 1, %"$gasrem_1322" + br i1 %"$gascmp_1323", label %"$out_of_gas_1324", label %"$have_gas_1325" -"$out_of_gas_1347": ; preds = %"$have_gas_1343" +"$out_of_gas_1324": ; preds = %"$have_gas_1320" call void @_out_of_gas() - br label %"$have_gas_1348" + br label %"$have_gas_1325" -"$have_gas_1348": ; preds = %"$out_of_gas_1347", %"$have_gas_1343" - %"$consume_1349" = sub i64 %"$gasrem_1345", 1 - store i64 %"$consume_1349", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1350", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !142 - %"$gasrem_1351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1352" = icmp ugt i64 1, %"$gasrem_1351" - br i1 %"$gascmp_1352", label %"$out_of_gas_1353", label %"$have_gas_1354" +"$have_gas_1325": ; preds = %"$out_of_gas_1324", %"$have_gas_1320" + %"$consume_1326" = sub i64 %"$gasrem_1322", 1 + store i64 %"$consume_1326", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1327", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !140 + %"$gasrem_1328" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1329" = icmp ugt i64 1, %"$gasrem_1328" + br i1 %"$gascmp_1329", label %"$out_of_gas_1330", label %"$have_gas_1331" -"$out_of_gas_1353": ; preds = %"$have_gas_1348" +"$out_of_gas_1330": ; preds = %"$have_gas_1325" call void @_out_of_gas() - br label %"$have_gas_1354" + br label %"$have_gas_1331" -"$have_gas_1354": ; preds = %"$out_of_gas_1353", %"$have_gas_1348" - %"$consume_1355" = sub i64 %"$gasrem_1351", 1 - store i64 %"$consume_1355", i64* @_gasrem, align 8 - %"$fail_msg__origin_1356" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1356", align 1 - %"$fail_msg__sender_1357" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1357", align 1 - %"$tname_1358" = load %String, %String* %tname, align 8 - %"$m_1359" = load %String, %String* %m2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1356", [20 x i8]* %"$fail_msg__sender_1357", %String %"$tname_1358", %String %"$m_1359"), !dbg !144 - br label %"$matchsucc_1260" +"$have_gas_1331": ; preds = %"$out_of_gas_1330", %"$have_gas_1325" + %"$consume_1332" = sub i64 %"$gasrem_1328", 1 + store i64 %"$consume_1332", i64* @_gasrem, align 8 + %"$fail_msg__origin_1333" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1333", align 1 + %"$fail_msg__sender_1334" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1334", align 1 + %"$tname_1335" = load %String, %String* %tname, align 8 + %"$m_1336" = load %String, %String* %m2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1333", [20 x i8]* %"$fail_msg__sender_1334", %String %"$tname_1335", %String %"$m_1336"), !dbg !142 + br label %"$matchsucc_1237" -"$empty_default_1264": ; preds = %"$have_gas_1258" - br label %"$matchsucc_1260" +"$empty_default_1241": ; preds = %"$have_gas_1235" + br label %"$matchsucc_1237" -"$matchsucc_1260": ; preds = %"$have_gas_1354", %"$matchsucc_1309", %"$empty_default_1264" - %"$gasrem_1360" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1361" = icmp ugt i64 1, %"$gasrem_1360" - br i1 %"$gascmp_1361", label %"$out_of_gas_1362", label %"$have_gas_1363" +"$matchsucc_1237": ; preds = %"$have_gas_1331", %"$matchsucc_1286", %"$empty_default_1241" + %"$gasrem_1337" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1338" = icmp ugt i64 1, %"$gasrem_1337" + br i1 %"$gascmp_1338", label %"$out_of_gas_1339", label %"$have_gas_1340" -"$out_of_gas_1362": ; preds = %"$matchsucc_1260" +"$out_of_gas_1339": ; preds = %"$matchsucc_1237" call void @_out_of_gas() - br label %"$have_gas_1363" + br label %"$have_gas_1340" -"$have_gas_1363": ; preds = %"$out_of_gas_1362", %"$matchsucc_1260" - %"$consume_1364" = sub i64 %"$gasrem_1360", 1 - store i64 %"$consume_1364", i64* @_gasrem, align 8 +"$have_gas_1340": ; preds = %"$out_of_gas_1339", %"$matchsucc_1237" + %"$consume_1341" = sub i64 %"$gasrem_1337", 1 + store i64 %"$consume_1341", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_1365" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1366" = icmp ugt i64 1, %"$gasrem_1365" - br i1 %"$gascmp_1366", label %"$out_of_gas_1367", label %"$have_gas_1368" + %"$gasrem_1342" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1343" = icmp ugt i64 1, %"$gasrem_1342" + br i1 %"$gascmp_1343", label %"$out_of_gas_1344", label %"$have_gas_1345" -"$out_of_gas_1367": ; preds = %"$have_gas_1363" +"$out_of_gas_1344": ; preds = %"$have_gas_1340" call void @_out_of_gas() - br label %"$have_gas_1368" + br label %"$have_gas_1345" -"$have_gas_1368": ; preds = %"$out_of_gas_1367", %"$have_gas_1363" - %"$consume_1369" = sub i64 %"$gasrem_1365", 1 - store i64 %"$consume_1369", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1370", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !145 - %"$gasrem_1371" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1372" = icmp ugt i64 1, %"$gasrem_1371" - br i1 %"$gascmp_1372", label %"$out_of_gas_1373", label %"$have_gas_1374" +"$have_gas_1345": ; preds = %"$out_of_gas_1344", %"$have_gas_1340" + %"$consume_1346" = sub i64 %"$gasrem_1342", 1 + store i64 %"$consume_1346", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1347", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !143 + %"$gasrem_1348" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1349" = icmp ugt i64 1, %"$gasrem_1348" + br i1 %"$gascmp_1349", label %"$out_of_gas_1350", label %"$have_gas_1351" -"$out_of_gas_1373": ; preds = %"$have_gas_1368" +"$out_of_gas_1350": ; preds = %"$have_gas_1345" call void @_out_of_gas() - br label %"$have_gas_1374" + br label %"$have_gas_1351" -"$have_gas_1374": ; preds = %"$out_of_gas_1373", %"$have_gas_1368" - %"$consume_1375" = sub i64 %"$gasrem_1371", 1 - store i64 %"$consume_1375", i64* @_gasrem, align 8 +"$have_gas_1351": ; preds = %"$out_of_gas_1350", %"$have_gas_1345" + %"$consume_1352" = sub i64 %"$gasrem_1348", 1 + store i64 %"$consume_1352", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_1376" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1377" = icmp ugt i64 1, %"$gasrem_1376" - br i1 %"$gascmp_1377", label %"$out_of_gas_1378", label %"$have_gas_1379" + %"$gasrem_1353" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1354" = icmp ugt i64 1, %"$gasrem_1353" + br i1 %"$gascmp_1354", label %"$out_of_gas_1355", label %"$have_gas_1356" -"$out_of_gas_1378": ; preds = %"$have_gas_1374" +"$out_of_gas_1355": ; preds = %"$have_gas_1351" call void @_out_of_gas() - br label %"$have_gas_1379" + br label %"$have_gas_1356" -"$have_gas_1379": ; preds = %"$out_of_gas_1378", %"$have_gas_1374" - %"$consume_1380" = sub i64 %"$gasrem_1376", 1 - store i64 %"$consume_1380", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1381", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !146 +"$have_gas_1356": ; preds = %"$out_of_gas_1355", %"$have_gas_1351" + %"$consume_1357" = sub i64 %"$gasrem_1353", 1 + store i64 %"$consume_1357", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1358", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !144 %"$c1_0" = alloca %TName_Option_String*, align 8 - %"$indices_buf_1382_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1382_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1382_salloc_load", i64 32) - %"$indices_buf_1382_salloc" = bitcast i8* %"$indices_buf_1382_salloc_salloc" to [32 x i8]* - %"$indices_buf_1382" = bitcast [32 x i8]* %"$indices_buf_1382_salloc" to i8* - %"$key1b_1383" = load %String, %String* %key1b, align 8 - %"$indices_gep_1384" = getelementptr i8, i8* %"$indices_buf_1382", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_1384" to %String* - store %String %"$key1b_1383", %String* %indices_cast3, align 8 - %"$key2b_1385" = load %String, %String* %key2b, align 8 - %"$indices_gep_1386" = getelementptr i8, i8* %"$indices_buf_1382", i32 16 - %indices_cast4 = bitcast i8* %"$indices_gep_1386" to %String* - store %String %"$key2b_1385", %String* %indices_cast4, align 8 - %"$execptr_load_1388" = load i8*, i8** @_execptr, align 8 - %"$$c1_0_call_1389" = call i8* @_fetch_field(i8* %"$execptr_load_1388", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1387", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1382", i32 1), !dbg !147 - %"$$c1_0_1390" = bitcast i8* %"$$c1_0_call_1389" to %TName_Option_String* - store %TName_Option_String* %"$$c1_0_1390", %TName_Option_String** %"$c1_0", align 8 - %"$$c1_0_1391" = load %TName_Option_String*, %TName_Option_String** %"$c1_0", align 8 - %"$$$c1_0_1391_1392" = bitcast %TName_Option_String* %"$$c1_0_1391" to i8* - %"$_literal_cost_call_1393" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$$c1_0_1391_1392") - %"$gasadd_1394" = add i64 %"$_literal_cost_call_1393", 0 - %"$gasadd_1395" = add i64 %"$gasadd_1394", 2 - %"$gasrem_1396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1397" = icmp ugt i64 %"$gasadd_1395", %"$gasrem_1396" - br i1 %"$gascmp_1397", label %"$out_of_gas_1398", label %"$have_gas_1399" - -"$out_of_gas_1398": ; preds = %"$have_gas_1379" - call void @_out_of_gas() - br label %"$have_gas_1399" - -"$have_gas_1399": ; preds = %"$out_of_gas_1398", %"$have_gas_1379" - %"$consume_1400" = sub i64 %"$gasrem_1396", %"$gasadd_1395" - store i64 %"$consume_1400", i64* @_gasrem, align 8 - %"$gasrem_1401" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1402" = icmp ugt i64 2, %"$gasrem_1401" - br i1 %"$gascmp_1402", label %"$out_of_gas_1403", label %"$have_gas_1404" - -"$out_of_gas_1403": ; preds = %"$have_gas_1399" - call void @_out_of_gas() - br label %"$have_gas_1404" - -"$have_gas_1404": ; preds = %"$out_of_gas_1403", %"$have_gas_1399" - %"$consume_1405" = sub i64 %"$gasrem_1401", 2 - store i64 %"$consume_1405", i64* @_gasrem, align 8 - %"$$c1_0_1407" = load %TName_Option_String*, %TName_Option_String** %"$c1_0", align 8 - %"$$c1_0_tag_1408" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_0_1407", i32 0, i32 0 - %"$$c1_0_tag_1409" = load i8, i8* %"$$c1_0_tag_1408", align 1 - switch i8 %"$$c1_0_tag_1409", label %"$empty_default_1410" [ - i8 0, label %"$Some_1411" - i8 1, label %"$None_1484" - ], !dbg !148 - -"$Some_1411": ; preds = %"$have_gas_1404" - %"$$c1_0_1412" = bitcast %TName_Option_String* %"$$c1_0_1407" to %CName_Some_String* - %"$c_gep_1413" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_0_1412", i32 0, i32 1 - %"$c_load_1414" = load %String, %String* %"$c_gep_1413", align 8 + %"$indices_buf_1359_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1359_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1359_salloc_load", i64 32) + %"$indices_buf_1359_salloc" = bitcast i8* %"$indices_buf_1359_salloc_salloc" to [32 x i8]* + %"$indices_buf_1359" = bitcast [32 x i8]* %"$indices_buf_1359_salloc" to i8* + %"$key1b_1360" = load %String, %String* %key1b, align 8 + %"$indices_gep_1361" = getelementptr i8, i8* %"$indices_buf_1359", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_1361" to %String* + store %String %"$key1b_1360", %String* %indices_cast3, align 8 + %"$key2b_1362" = load %String, %String* %key2b, align 8 + %"$indices_gep_1363" = getelementptr i8, i8* %"$indices_buf_1359", i32 16 + %indices_cast4 = bitcast i8* %"$indices_gep_1363" to %String* + store %String %"$key2b_1362", %String* %indices_cast4, align 8 + %"$execptr_load_1365" = load i8*, i8** @_execptr, align 8 + %"$$c1_0_call_1366" = call i8* @_fetch_field(i8* %"$execptr_load_1365", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1364", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1359", i32 1), !dbg !145 + %"$$c1_0_1367" = bitcast i8* %"$$c1_0_call_1366" to %TName_Option_String* + store %TName_Option_String* %"$$c1_0_1367", %TName_Option_String** %"$c1_0", align 8 + %"$$c1_0_1368" = load %TName_Option_String*, %TName_Option_String** %"$c1_0", align 8 + %"$$$c1_0_1368_1369" = bitcast %TName_Option_String* %"$$c1_0_1368" to i8* + %"$_literal_cost_call_1370" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$$c1_0_1368_1369") + %"$gasadd_1371" = add i64 %"$_literal_cost_call_1370", 0 + %"$gasadd_1372" = add i64 %"$gasadd_1371", 2 + %"$gasrem_1373" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1374" = icmp ugt i64 %"$gasadd_1372", %"$gasrem_1373" + br i1 %"$gascmp_1374", label %"$out_of_gas_1375", label %"$have_gas_1376" + +"$out_of_gas_1375": ; preds = %"$have_gas_1356" + call void @_out_of_gas() + br label %"$have_gas_1376" + +"$have_gas_1376": ; preds = %"$out_of_gas_1375", %"$have_gas_1356" + %"$consume_1377" = sub i64 %"$gasrem_1373", %"$gasadd_1372" + store i64 %"$consume_1377", i64* @_gasrem, align 8 + %"$gasrem_1378" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1379" = icmp ugt i64 2, %"$gasrem_1378" + br i1 %"$gascmp_1379", label %"$out_of_gas_1380", label %"$have_gas_1381" + +"$out_of_gas_1380": ; preds = %"$have_gas_1376" + call void @_out_of_gas() + br label %"$have_gas_1381" + +"$have_gas_1381": ; preds = %"$out_of_gas_1380", %"$have_gas_1376" + %"$consume_1382" = sub i64 %"$gasrem_1378", 2 + store i64 %"$consume_1382", i64* @_gasrem, align 8 + %"$$c1_0_1384" = load %TName_Option_String*, %TName_Option_String** %"$c1_0", align 8 + %"$$c1_0_tag_1385" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_0_1384", i32 0, i32 0 + %"$$c1_0_tag_1386" = load i8, i8* %"$$c1_0_tag_1385", align 1 + switch i8 %"$$c1_0_tag_1386", label %"$empty_default_1387" [ + i8 0, label %"$Some_1388" + i8 1, label %"$None_1461" + ], !dbg !146 + +"$Some_1388": ; preds = %"$have_gas_1381" + %"$$c1_0_1389" = bitcast %TName_Option_String* %"$$c1_0_1384" to %CName_Some_String* + %"$c_gep_1390" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_0_1389", i32 0, i32 1 + %"$c_load_1391" = load %String, %String* %"$c_gep_1390", align 8 %c5 = alloca %String, align 8 - store %String %"$c_load_1414", %String* %c5, align 8 - %"$gasrem_1415" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1416" = icmp ugt i64 1, %"$gasrem_1415" - br i1 %"$gascmp_1416", label %"$out_of_gas_1417", label %"$have_gas_1418" + store %String %"$c_load_1391", %String* %c5, align 8 + %"$gasrem_1392" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1393" = icmp ugt i64 1, %"$gasrem_1392" + br i1 %"$gascmp_1393", label %"$out_of_gas_1394", label %"$have_gas_1395" -"$out_of_gas_1417": ; preds = %"$Some_1411" +"$out_of_gas_1394": ; preds = %"$Some_1388" call void @_out_of_gas() - br label %"$have_gas_1418" + br label %"$have_gas_1395" -"$have_gas_1418": ; preds = %"$out_of_gas_1417", %"$Some_1411" - %"$consume_1419" = sub i64 %"$gasrem_1415", 1 - store i64 %"$consume_1419", i64* @_gasrem, align 8 +"$have_gas_1395": ; preds = %"$out_of_gas_1394", %"$Some_1388" + %"$consume_1396" = sub i64 %"$gasrem_1392", 1 + store i64 %"$consume_1396", i64* @_gasrem, align 8 %v6 = alloca %String, align 8 - %"$gasrem_1420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1421" = icmp ugt i64 1, %"$gasrem_1420" - br i1 %"$gascmp_1421", label %"$out_of_gas_1422", label %"$have_gas_1423" + %"$gasrem_1397" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1398" = icmp ugt i64 1, %"$gasrem_1397" + br i1 %"$gascmp_1398", label %"$out_of_gas_1399", label %"$have_gas_1400" -"$out_of_gas_1422": ; preds = %"$have_gas_1418" +"$out_of_gas_1399": ; preds = %"$have_gas_1395" call void @_out_of_gas() - br label %"$have_gas_1423" + br label %"$have_gas_1400" -"$have_gas_1423": ; preds = %"$out_of_gas_1422", %"$have_gas_1418" - %"$consume_1424" = sub i64 %"$gasrem_1420", 1 - store i64 %"$consume_1424", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1425", i32 0, i32 0), i32 3 }, %String* %v6, align 8, !dbg !149 - %"$gasrem_1426" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1427" = icmp ugt i64 1, %"$gasrem_1426" - br i1 %"$gascmp_1427", label %"$out_of_gas_1428", label %"$have_gas_1429" +"$have_gas_1400": ; preds = %"$out_of_gas_1399", %"$have_gas_1395" + %"$consume_1401" = sub i64 %"$gasrem_1397", 1 + store i64 %"$consume_1401", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1402", i32 0, i32 0), i32 3 }, %String* %v6, align 8, !dbg !147 + %"$gasrem_1403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1404" = icmp ugt i64 1, %"$gasrem_1403" + br i1 %"$gascmp_1404", label %"$out_of_gas_1405", label %"$have_gas_1406" -"$out_of_gas_1428": ; preds = %"$have_gas_1423" +"$out_of_gas_1405": ; preds = %"$have_gas_1400" call void @_out_of_gas() - br label %"$have_gas_1429" + br label %"$have_gas_1406" -"$have_gas_1429": ; preds = %"$out_of_gas_1428", %"$have_gas_1423" - %"$consume_1430" = sub i64 %"$gasrem_1426", 1 - store i64 %"$consume_1430", i64* @_gasrem, align 8 +"$have_gas_1406": ; preds = %"$out_of_gas_1405", %"$have_gas_1400" + %"$consume_1407" = sub i64 %"$gasrem_1403", 1 + store i64 %"$consume_1407", i64* @_gasrem, align 8 %eq7 = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1431" = alloca %String, align 8 - %"$c_1432" = load %String, %String* %c5, align 8 - store %String %"$c_1432", %String* %"$_literal_cost_c_1431", align 8 - %"$$_literal_cost_c_1431_1433" = bitcast %String* %"$_literal_cost_c_1431" to i8* - %"$_literal_cost_call_1434" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_1431_1433") - %"$_literal_cost_v_1435" = alloca %String, align 8 - %"$v_1436" = load %String, %String* %v6, align 8 - store %String %"$v_1436", %String* %"$_literal_cost_v_1435", align 8 - %"$$_literal_cost_v_1435_1437" = bitcast %String* %"$_literal_cost_v_1435" to i8* - %"$_literal_cost_call_1438" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_1435_1437") - %"$gasmin_1439" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1434", i64 %"$_literal_cost_call_1438") - %"$gasrem_1440" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1441" = icmp ugt i64 %"$gasmin_1439", %"$gasrem_1440" - br i1 %"$gascmp_1441", label %"$out_of_gas_1442", label %"$have_gas_1443" - -"$out_of_gas_1442": ; preds = %"$have_gas_1429" - call void @_out_of_gas() - br label %"$have_gas_1443" - -"$have_gas_1443": ; preds = %"$out_of_gas_1442", %"$have_gas_1429" - %"$consume_1444" = sub i64 %"$gasrem_1440", %"$gasmin_1439" - store i64 %"$consume_1444", i64* @_gasrem, align 8 - %"$execptr_load_1445" = load i8*, i8** @_execptr, align 8 - %"$c_1446" = load %String, %String* %c5, align 8 - %"$v_1447" = load %String, %String* %v6, align 8 - %"$eq_call_1448" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1445", %String %"$c_1446", %String %"$v_1447"), !dbg !152 - store %TName_Bool* %"$eq_call_1448", %TName_Bool** %eq7, align 8, !dbg !152 - %"$gasrem_1450" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1451" = icmp ugt i64 2, %"$gasrem_1450" - br i1 %"$gascmp_1451", label %"$out_of_gas_1452", label %"$have_gas_1453" - -"$out_of_gas_1452": ; preds = %"$have_gas_1443" - call void @_out_of_gas() - br label %"$have_gas_1453" - -"$have_gas_1453": ; preds = %"$out_of_gas_1452", %"$have_gas_1443" - %"$consume_1454" = sub i64 %"$gasrem_1450", 2 - store i64 %"$consume_1454", i64* @_gasrem, align 8 - %"$eq_1456" = load %TName_Bool*, %TName_Bool** %eq7, align 8 - %"$eq_tag_1457" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1456", i32 0, i32 0 - %"$eq_tag_1458" = load i8, i8* %"$eq_tag_1457", align 1 - switch i8 %"$eq_tag_1458", label %"$empty_default_1459" [ - i8 0, label %"$True_1460" - i8 1, label %"$False_1462" - ], !dbg !153 - -"$True_1460": ; preds = %"$have_gas_1453" - %"$eq_1461" = bitcast %TName_Bool* %"$eq_1456" to %CName_True* - br label %"$matchsucc_1455" - -"$False_1462": ; preds = %"$have_gas_1453" - %"$eq_1463" = bitcast %TName_Bool* %"$eq_1456" to %CName_False* - %"$gasrem_1464" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1465" = icmp ugt i64 1, %"$gasrem_1464" - br i1 %"$gascmp_1465", label %"$out_of_gas_1466", label %"$have_gas_1467" - -"$out_of_gas_1466": ; preds = %"$False_1462" - call void @_out_of_gas() - br label %"$have_gas_1467" - -"$have_gas_1467": ; preds = %"$out_of_gas_1466", %"$False_1462" - %"$consume_1468" = sub i64 %"$gasrem_1464", 1 - store i64 %"$consume_1468", i64* @_gasrem, align 8 + %"$_literal_cost_c_1408" = alloca %String, align 8 + %"$c_1409" = load %String, %String* %c5, align 8 + store %String %"$c_1409", %String* %"$_literal_cost_c_1408", align 8 + %"$$_literal_cost_c_1408_1410" = bitcast %String* %"$_literal_cost_c_1408" to i8* + %"$_literal_cost_call_1411" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_1408_1410") + %"$_literal_cost_v_1412" = alloca %String, align 8 + %"$v_1413" = load %String, %String* %v6, align 8 + store %String %"$v_1413", %String* %"$_literal_cost_v_1412", align 8 + %"$$_literal_cost_v_1412_1414" = bitcast %String* %"$_literal_cost_v_1412" to i8* + %"$_literal_cost_call_1415" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_1412_1414") + %"$gasmin_1416" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1411", i64 %"$_literal_cost_call_1415") + %"$gasrem_1417" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1418" = icmp ugt i64 %"$gasmin_1416", %"$gasrem_1417" + br i1 %"$gascmp_1418", label %"$out_of_gas_1419", label %"$have_gas_1420" + +"$out_of_gas_1419": ; preds = %"$have_gas_1406" + call void @_out_of_gas() + br label %"$have_gas_1420" + +"$have_gas_1420": ; preds = %"$out_of_gas_1419", %"$have_gas_1406" + %"$consume_1421" = sub i64 %"$gasrem_1417", %"$gasmin_1416" + store i64 %"$consume_1421", i64* @_gasrem, align 8 + %"$execptr_load_1422" = load i8*, i8** @_execptr, align 8 + %"$c_1423" = load %String, %String* %c5, align 8 + %"$v_1424" = load %String, %String* %v6, align 8 + %"$eq_call_1425" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1422", %String %"$c_1423", %String %"$v_1424"), !dbg !150 + store %TName_Bool* %"$eq_call_1425", %TName_Bool** %eq7, align 8, !dbg !150 + %"$gasrem_1427" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1428" = icmp ugt i64 2, %"$gasrem_1427" + br i1 %"$gascmp_1428", label %"$out_of_gas_1429", label %"$have_gas_1430" + +"$out_of_gas_1429": ; preds = %"$have_gas_1420" + call void @_out_of_gas() + br label %"$have_gas_1430" + +"$have_gas_1430": ; preds = %"$out_of_gas_1429", %"$have_gas_1420" + %"$consume_1431" = sub i64 %"$gasrem_1427", 2 + store i64 %"$consume_1431", i64* @_gasrem, align 8 + %"$eq_1433" = load %TName_Bool*, %TName_Bool** %eq7, align 8 + %"$eq_tag_1434" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1433", i32 0, i32 0 + %"$eq_tag_1435" = load i8, i8* %"$eq_tag_1434", align 1 + switch i8 %"$eq_tag_1435", label %"$empty_default_1436" [ + i8 0, label %"$True_1437" + i8 1, label %"$False_1439" + ], !dbg !151 + +"$True_1437": ; preds = %"$have_gas_1430" + %"$eq_1438" = bitcast %TName_Bool* %"$eq_1433" to %CName_True* + br label %"$matchsucc_1432" + +"$False_1439": ; preds = %"$have_gas_1430" + %"$eq_1440" = bitcast %TName_Bool* %"$eq_1433" to %CName_False* + %"$gasrem_1441" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1442" = icmp ugt i64 1, %"$gasrem_1441" + br i1 %"$gascmp_1442", label %"$out_of_gas_1443", label %"$have_gas_1444" + +"$out_of_gas_1443": ; preds = %"$False_1439" + call void @_out_of_gas() + br label %"$have_gas_1444" + +"$have_gas_1444": ; preds = %"$out_of_gas_1443", %"$False_1439" + %"$consume_1445" = sub i64 %"$gasrem_1441", 1 + store i64 %"$consume_1445", i64* @_gasrem, align 8 %m8 = alloca %String, align 8 - %"$gasrem_1469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1470" = icmp ugt i64 1, %"$gasrem_1469" - br i1 %"$gascmp_1470", label %"$out_of_gas_1471", label %"$have_gas_1472" + %"$gasrem_1446" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1447" = icmp ugt i64 1, %"$gasrem_1446" + br i1 %"$gascmp_1447", label %"$out_of_gas_1448", label %"$have_gas_1449" -"$out_of_gas_1471": ; preds = %"$have_gas_1467" +"$out_of_gas_1448": ; preds = %"$have_gas_1444" call void @_out_of_gas() - br label %"$have_gas_1472" + br label %"$have_gas_1449" -"$have_gas_1472": ; preds = %"$out_of_gas_1471", %"$have_gas_1467" - %"$consume_1473" = sub i64 %"$gasrem_1469", 1 - store i64 %"$consume_1473", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1474", i32 0, i32 0), i32 31 }, %String* %m8, align 8, !dbg !154 - %"$gasrem_1475" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1476" = icmp ugt i64 1, %"$gasrem_1475" - br i1 %"$gascmp_1476", label %"$out_of_gas_1477", label %"$have_gas_1478" +"$have_gas_1449": ; preds = %"$out_of_gas_1448", %"$have_gas_1444" + %"$consume_1450" = sub i64 %"$gasrem_1446", 1 + store i64 %"$consume_1450", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1451", i32 0, i32 0), i32 31 }, %String* %m8, align 8, !dbg !152 + %"$gasrem_1452" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1453" = icmp ugt i64 1, %"$gasrem_1452" + br i1 %"$gascmp_1453", label %"$out_of_gas_1454", label %"$have_gas_1455" -"$out_of_gas_1477": ; preds = %"$have_gas_1472" +"$out_of_gas_1454": ; preds = %"$have_gas_1449" call void @_out_of_gas() - br label %"$have_gas_1478" + br label %"$have_gas_1455" -"$have_gas_1478": ; preds = %"$out_of_gas_1477", %"$have_gas_1472" - %"$consume_1479" = sub i64 %"$gasrem_1475", 1 - store i64 %"$consume_1479", i64* @_gasrem, align 8 - %"$fail_msg__origin_1480" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1480", align 1 - %"$fail_msg__sender_1481" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1481", align 1 - %"$tname_1482" = load %String, %String* %tname, align 8 - %"$m_1483" = load %String, %String* %m8, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1480", [20 x i8]* %"$fail_msg__sender_1481", %String %"$tname_1482", %String %"$m_1483"), !dbg !157 - br label %"$matchsucc_1455" +"$have_gas_1455": ; preds = %"$out_of_gas_1454", %"$have_gas_1449" + %"$consume_1456" = sub i64 %"$gasrem_1452", 1 + store i64 %"$consume_1456", i64* @_gasrem, align 8 + %"$fail_msg__origin_1457" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1457", align 1 + %"$fail_msg__sender_1458" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1458", align 1 + %"$tname_1459" = load %String, %String* %tname, align 8 + %"$m_1460" = load %String, %String* %m8, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1457", [20 x i8]* %"$fail_msg__sender_1458", %String %"$tname_1459", %String %"$m_1460"), !dbg !155 + br label %"$matchsucc_1432" -"$empty_default_1459": ; preds = %"$have_gas_1453" - br label %"$matchsucc_1455" +"$empty_default_1436": ; preds = %"$have_gas_1430" + br label %"$matchsucc_1432" -"$matchsucc_1455": ; preds = %"$have_gas_1478", %"$True_1460", %"$empty_default_1459" - br label %"$matchsucc_1406" +"$matchsucc_1432": ; preds = %"$have_gas_1455", %"$True_1437", %"$empty_default_1436" + br label %"$matchsucc_1383" -"$None_1484": ; preds = %"$have_gas_1404" - %"$$c1_0_1485" = bitcast %TName_Option_String* %"$$c1_0_1407" to %CName_None_String* - %"$gasrem_1486" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1487" = icmp ugt i64 1, %"$gasrem_1486" - br i1 %"$gascmp_1487", label %"$out_of_gas_1488", label %"$have_gas_1489" +"$None_1461": ; preds = %"$have_gas_1381" + %"$$c1_0_1462" = bitcast %TName_Option_String* %"$$c1_0_1384" to %CName_None_String* + %"$gasrem_1463" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1464" = icmp ugt i64 1, %"$gasrem_1463" + br i1 %"$gascmp_1464", label %"$out_of_gas_1465", label %"$have_gas_1466" -"$out_of_gas_1488": ; preds = %"$None_1484" +"$out_of_gas_1465": ; preds = %"$None_1461" call void @_out_of_gas() - br label %"$have_gas_1489" + br label %"$have_gas_1466" -"$have_gas_1489": ; preds = %"$out_of_gas_1488", %"$None_1484" - %"$consume_1490" = sub i64 %"$gasrem_1486", 1 - store i64 %"$consume_1490", i64* @_gasrem, align 8 +"$have_gas_1466": ; preds = %"$out_of_gas_1465", %"$None_1461" + %"$consume_1467" = sub i64 %"$gasrem_1463", 1 + store i64 %"$consume_1467", i64* @_gasrem, align 8 %m9 = alloca %String, align 8 - %"$gasrem_1491" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1492" = icmp ugt i64 1, %"$gasrem_1491" - br i1 %"$gascmp_1492", label %"$out_of_gas_1493", label %"$have_gas_1494" + %"$gasrem_1468" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1469" = icmp ugt i64 1, %"$gasrem_1468" + br i1 %"$gascmp_1469", label %"$out_of_gas_1470", label %"$have_gas_1471" -"$out_of_gas_1493": ; preds = %"$have_gas_1489" +"$out_of_gas_1470": ; preds = %"$have_gas_1466" call void @_out_of_gas() - br label %"$have_gas_1494" + br label %"$have_gas_1471" -"$have_gas_1494": ; preds = %"$out_of_gas_1493", %"$have_gas_1489" - %"$consume_1495" = sub i64 %"$gasrem_1491", 1 - store i64 %"$consume_1495", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1496", i32 0, i32 0), i32 21 }, %String* %m9, align 8, !dbg !158 - %"$gasrem_1497" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1498" = icmp ugt i64 1, %"$gasrem_1497" - br i1 %"$gascmp_1498", label %"$out_of_gas_1499", label %"$have_gas_1500" +"$have_gas_1471": ; preds = %"$out_of_gas_1470", %"$have_gas_1466" + %"$consume_1472" = sub i64 %"$gasrem_1468", 1 + store i64 %"$consume_1472", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1473", i32 0, i32 0), i32 21 }, %String* %m9, align 8, !dbg !156 + %"$gasrem_1474" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1475" = icmp ugt i64 1, %"$gasrem_1474" + br i1 %"$gascmp_1475", label %"$out_of_gas_1476", label %"$have_gas_1477" -"$out_of_gas_1499": ; preds = %"$have_gas_1494" +"$out_of_gas_1476": ; preds = %"$have_gas_1471" call void @_out_of_gas() - br label %"$have_gas_1500" + br label %"$have_gas_1477" -"$have_gas_1500": ; preds = %"$out_of_gas_1499", %"$have_gas_1494" - %"$consume_1501" = sub i64 %"$gasrem_1497", 1 - store i64 %"$consume_1501", i64* @_gasrem, align 8 - %"$fail_msg__origin_1502" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1502", align 1 - %"$fail_msg__sender_1503" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1503", align 1 - %"$tname_1504" = load %String, %String* %tname, align 8 - %"$m_1505" = load %String, %String* %m9, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1502", [20 x i8]* %"$fail_msg__sender_1503", %String %"$tname_1504", %String %"$m_1505"), !dbg !160 - br label %"$matchsucc_1406" +"$have_gas_1477": ; preds = %"$out_of_gas_1476", %"$have_gas_1471" + %"$consume_1478" = sub i64 %"$gasrem_1474", 1 + store i64 %"$consume_1478", i64* @_gasrem, align 8 + %"$fail_msg__origin_1479" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1479", align 1 + %"$fail_msg__sender_1480" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1480", align 1 + %"$tname_1481" = load %String, %String* %tname, align 8 + %"$m_1482" = load %String, %String* %m9, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1479", [20 x i8]* %"$fail_msg__sender_1480", %String %"$tname_1481", %String %"$m_1482"), !dbg !158 + br label %"$matchsucc_1383" -"$empty_default_1410": ; preds = %"$have_gas_1404" - br label %"$matchsucc_1406" +"$empty_default_1387": ; preds = %"$have_gas_1381" + br label %"$matchsucc_1383" -"$matchsucc_1406": ; preds = %"$have_gas_1500", %"$matchsucc_1455", %"$empty_default_1410" - %"$gasrem_1506" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1507" = icmp ugt i64 1, %"$gasrem_1506" - br i1 %"$gascmp_1507", label %"$out_of_gas_1508", label %"$have_gas_1509" +"$matchsucc_1383": ; preds = %"$have_gas_1477", %"$matchsucc_1432", %"$empty_default_1387" + %"$gasrem_1483" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1484" = icmp ugt i64 1, %"$gasrem_1483" + br i1 %"$gascmp_1484", label %"$out_of_gas_1485", label %"$have_gas_1486" -"$out_of_gas_1508": ; preds = %"$matchsucc_1406" +"$out_of_gas_1485": ; preds = %"$matchsucc_1383" call void @_out_of_gas() - br label %"$have_gas_1509" + br label %"$have_gas_1486" -"$have_gas_1509": ; preds = %"$out_of_gas_1508", %"$matchsucc_1406" - %"$consume_1510" = sub i64 %"$gasrem_1506", 1 - store i64 %"$consume_1510", i64* @_gasrem, align 8 +"$have_gas_1486": ; preds = %"$out_of_gas_1485", %"$matchsucc_1383" + %"$consume_1487" = sub i64 %"$gasrem_1483", 1 + store i64 %"$consume_1487", i64* @_gasrem, align 8 %"$key1b_1" = alloca %String, align 8 - %"$gasrem_1511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1512" = icmp ugt i64 1, %"$gasrem_1511" - br i1 %"$gascmp_1512", label %"$out_of_gas_1513", label %"$have_gas_1514" + %"$gasrem_1488" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1489" = icmp ugt i64 1, %"$gasrem_1488" + br i1 %"$gascmp_1489", label %"$out_of_gas_1490", label %"$have_gas_1491" -"$out_of_gas_1513": ; preds = %"$have_gas_1509" +"$out_of_gas_1490": ; preds = %"$have_gas_1486" call void @_out_of_gas() - br label %"$have_gas_1514" + br label %"$have_gas_1491" -"$have_gas_1514": ; preds = %"$out_of_gas_1513", %"$have_gas_1509" - %"$consume_1515" = sub i64 %"$gasrem_1511", 1 - store i64 %"$consume_1515", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1516", i32 0, i32 0), i32 5 }, %String* %"$key1b_1", align 8, !dbg !161 - %"$gasrem_1517" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1518" = icmp ugt i64 1, %"$gasrem_1517" - br i1 %"$gascmp_1518", label %"$out_of_gas_1519", label %"$have_gas_1520" +"$have_gas_1491": ; preds = %"$out_of_gas_1490", %"$have_gas_1486" + %"$consume_1492" = sub i64 %"$gasrem_1488", 1 + store i64 %"$consume_1492", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1493", i32 0, i32 0), i32 5 }, %String* %"$key1b_1", align 8, !dbg !159 + %"$gasrem_1494" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1495" = icmp ugt i64 1, %"$gasrem_1494" + br i1 %"$gascmp_1495", label %"$out_of_gas_1496", label %"$have_gas_1497" -"$out_of_gas_1519": ; preds = %"$have_gas_1514" +"$out_of_gas_1496": ; preds = %"$have_gas_1491" call void @_out_of_gas() - br label %"$have_gas_1520" + br label %"$have_gas_1497" -"$have_gas_1520": ; preds = %"$out_of_gas_1519", %"$have_gas_1514" - %"$consume_1521" = sub i64 %"$gasrem_1517", 1 - store i64 %"$consume_1521", i64* @_gasrem, align 8 +"$have_gas_1497": ; preds = %"$out_of_gas_1496", %"$have_gas_1491" + %"$consume_1498" = sub i64 %"$gasrem_1494", 1 + store i64 %"$consume_1498", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_1522" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1523" = icmp ugt i64 1, %"$gasrem_1522" - br i1 %"$gascmp_1523", label %"$out_of_gas_1524", label %"$have_gas_1525" + %"$gasrem_1499" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1500" = icmp ugt i64 1, %"$gasrem_1499" + br i1 %"$gascmp_1500", label %"$out_of_gas_1501", label %"$have_gas_1502" -"$out_of_gas_1524": ; preds = %"$have_gas_1520" +"$out_of_gas_1501": ; preds = %"$have_gas_1497" call void @_out_of_gas() - br label %"$have_gas_1525" + br label %"$have_gas_1502" -"$have_gas_1525": ; preds = %"$out_of_gas_1524", %"$have_gas_1520" - %"$consume_1526" = sub i64 %"$gasrem_1522", 1 - store i64 %"$consume_1526", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1527", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !162 +"$have_gas_1502": ; preds = %"$out_of_gas_1501", %"$have_gas_1497" + %"$consume_1503" = sub i64 %"$gasrem_1499", 1 + store i64 %"$consume_1503", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1504", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !160 %"$c1_2" = alloca %TName_Option_String*, align 8 - %"$indices_buf_1528_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1528_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1528_salloc_load", i64 32) - %"$indices_buf_1528_salloc" = bitcast i8* %"$indices_buf_1528_salloc_salloc" to [32 x i8]* - %"$indices_buf_1528" = bitcast [32 x i8]* %"$indices_buf_1528_salloc" to i8* - %"$$key1b_1_1529" = load %String, %String* %"$key1b_1", align 8 - %"$indices_gep_1530" = getelementptr i8, i8* %"$indices_buf_1528", i32 0 - %indices_cast10 = bitcast i8* %"$indices_gep_1530" to %String* - store %String %"$$key1b_1_1529", %String* %indices_cast10, align 8 - %"$key2c_1531" = load %String, %String* %key2c, align 8 - %"$indices_gep_1532" = getelementptr i8, i8* %"$indices_buf_1528", i32 16 - %indices_cast11 = bitcast i8* %"$indices_gep_1532" to %String* - store %String %"$key2c_1531", %String* %indices_cast11, align 8 - %"$execptr_load_1534" = load i8*, i8** @_execptr, align 8 - %"$$c1_2_call_1535" = call i8* @_fetch_field(i8* %"$execptr_load_1534", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1533", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1528", i32 1), !dbg !163 - %"$$c1_2_1536" = bitcast i8* %"$$c1_2_call_1535" to %TName_Option_String* - store %TName_Option_String* %"$$c1_2_1536", %TName_Option_String** %"$c1_2", align 8 - %"$$c1_2_1537" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 - %"$$$c1_2_1537_1538" = bitcast %TName_Option_String* %"$$c1_2_1537" to i8* - %"$_literal_cost_call_1539" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$$c1_2_1537_1538") - %"$gasadd_1540" = add i64 %"$_literal_cost_call_1539", 0 - %"$gasadd_1541" = add i64 %"$gasadd_1540", 2 - %"$gasrem_1542" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1543" = icmp ugt i64 %"$gasadd_1541", %"$gasrem_1542" - br i1 %"$gascmp_1543", label %"$out_of_gas_1544", label %"$have_gas_1545" - -"$out_of_gas_1544": ; preds = %"$have_gas_1525" - call void @_out_of_gas() - br label %"$have_gas_1545" - -"$have_gas_1545": ; preds = %"$out_of_gas_1544", %"$have_gas_1525" - %"$consume_1546" = sub i64 %"$gasrem_1542", %"$gasadd_1541" - store i64 %"$consume_1546", i64* @_gasrem, align 8 - %"$gasrem_1547" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1548" = icmp ugt i64 2, %"$gasrem_1547" - br i1 %"$gascmp_1548", label %"$out_of_gas_1549", label %"$have_gas_1550" - -"$out_of_gas_1549": ; preds = %"$have_gas_1545" - call void @_out_of_gas() - br label %"$have_gas_1550" - -"$have_gas_1550": ; preds = %"$out_of_gas_1549", %"$have_gas_1545" - %"$consume_1551" = sub i64 %"$gasrem_1547", 2 - store i64 %"$consume_1551", i64* @_gasrem, align 8 - %"$$c1_2_1553" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 - %"$$c1_2_tag_1554" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_2_1553", i32 0, i32 0 - %"$$c1_2_tag_1555" = load i8, i8* %"$$c1_2_tag_1554", align 1 - switch i8 %"$$c1_2_tag_1555", label %"$empty_default_1556" [ - i8 0, label %"$Some_1557" - i8 1, label %"$None_1630" - ], !dbg !164 - -"$Some_1557": ; preds = %"$have_gas_1550" - %"$$c1_2_1558" = bitcast %TName_Option_String* %"$$c1_2_1553" to %CName_Some_String* - %"$c_gep_1559" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_2_1558", i32 0, i32 1 - %"$c_load_1560" = load %String, %String* %"$c_gep_1559", align 8 + %"$indices_buf_1505_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1505_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1505_salloc_load", i64 32) + %"$indices_buf_1505_salloc" = bitcast i8* %"$indices_buf_1505_salloc_salloc" to [32 x i8]* + %"$indices_buf_1505" = bitcast [32 x i8]* %"$indices_buf_1505_salloc" to i8* + %"$$key1b_1_1506" = load %String, %String* %"$key1b_1", align 8 + %"$indices_gep_1507" = getelementptr i8, i8* %"$indices_buf_1505", i32 0 + %indices_cast10 = bitcast i8* %"$indices_gep_1507" to %String* + store %String %"$$key1b_1_1506", %String* %indices_cast10, align 8 + %"$key2c_1508" = load %String, %String* %key2c, align 8 + %"$indices_gep_1509" = getelementptr i8, i8* %"$indices_buf_1505", i32 16 + %indices_cast11 = bitcast i8* %"$indices_gep_1509" to %String* + store %String %"$key2c_1508", %String* %indices_cast11, align 8 + %"$execptr_load_1511" = load i8*, i8** @_execptr, align 8 + %"$$c1_2_call_1512" = call i8* @_fetch_field(i8* %"$execptr_load_1511", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1510", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1505", i32 1), !dbg !161 + %"$$c1_2_1513" = bitcast i8* %"$$c1_2_call_1512" to %TName_Option_String* + store %TName_Option_String* %"$$c1_2_1513", %TName_Option_String** %"$c1_2", align 8 + %"$$c1_2_1514" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 + %"$$$c1_2_1514_1515" = bitcast %TName_Option_String* %"$$c1_2_1514" to i8* + %"$_literal_cost_call_1516" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$$c1_2_1514_1515") + %"$gasadd_1517" = add i64 %"$_literal_cost_call_1516", 0 + %"$gasadd_1518" = add i64 %"$gasadd_1517", 2 + %"$gasrem_1519" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1520" = icmp ugt i64 %"$gasadd_1518", %"$gasrem_1519" + br i1 %"$gascmp_1520", label %"$out_of_gas_1521", label %"$have_gas_1522" + +"$out_of_gas_1521": ; preds = %"$have_gas_1502" + call void @_out_of_gas() + br label %"$have_gas_1522" + +"$have_gas_1522": ; preds = %"$out_of_gas_1521", %"$have_gas_1502" + %"$consume_1523" = sub i64 %"$gasrem_1519", %"$gasadd_1518" + store i64 %"$consume_1523", i64* @_gasrem, align 8 + %"$gasrem_1524" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1525" = icmp ugt i64 2, %"$gasrem_1524" + br i1 %"$gascmp_1525", label %"$out_of_gas_1526", label %"$have_gas_1527" + +"$out_of_gas_1526": ; preds = %"$have_gas_1522" + call void @_out_of_gas() + br label %"$have_gas_1527" + +"$have_gas_1527": ; preds = %"$out_of_gas_1526", %"$have_gas_1522" + %"$consume_1528" = sub i64 %"$gasrem_1524", 2 + store i64 %"$consume_1528", i64* @_gasrem, align 8 + %"$$c1_2_1530" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 + %"$$c1_2_tag_1531" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_2_1530", i32 0, i32 0 + %"$$c1_2_tag_1532" = load i8, i8* %"$$c1_2_tag_1531", align 1 + switch i8 %"$$c1_2_tag_1532", label %"$empty_default_1533" [ + i8 0, label %"$Some_1534" + i8 1, label %"$None_1607" + ], !dbg !162 + +"$Some_1534": ; preds = %"$have_gas_1527" + %"$$c1_2_1535" = bitcast %TName_Option_String* %"$$c1_2_1530" to %CName_Some_String* + %"$c_gep_1536" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_2_1535", i32 0, i32 1 + %"$c_load_1537" = load %String, %String* %"$c_gep_1536", align 8 %c12 = alloca %String, align 8 - store %String %"$c_load_1560", %String* %c12, align 8 - %"$gasrem_1561" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1562" = icmp ugt i64 1, %"$gasrem_1561" - br i1 %"$gascmp_1562", label %"$out_of_gas_1563", label %"$have_gas_1564" + store %String %"$c_load_1537", %String* %c12, align 8 + %"$gasrem_1538" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1539" = icmp ugt i64 1, %"$gasrem_1538" + br i1 %"$gascmp_1539", label %"$out_of_gas_1540", label %"$have_gas_1541" -"$out_of_gas_1563": ; preds = %"$Some_1557" +"$out_of_gas_1540": ; preds = %"$Some_1534" call void @_out_of_gas() - br label %"$have_gas_1564" + br label %"$have_gas_1541" -"$have_gas_1564": ; preds = %"$out_of_gas_1563", %"$Some_1557" - %"$consume_1565" = sub i64 %"$gasrem_1561", 1 - store i64 %"$consume_1565", i64* @_gasrem, align 8 +"$have_gas_1541": ; preds = %"$out_of_gas_1540", %"$Some_1534" + %"$consume_1542" = sub i64 %"$gasrem_1538", 1 + store i64 %"$consume_1542", i64* @_gasrem, align 8 %v13 = alloca %String, align 8 - %"$gasrem_1566" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1567" = icmp ugt i64 1, %"$gasrem_1566" - br i1 %"$gascmp_1567", label %"$out_of_gas_1568", label %"$have_gas_1569" + %"$gasrem_1543" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1544" = icmp ugt i64 1, %"$gasrem_1543" + br i1 %"$gascmp_1544", label %"$out_of_gas_1545", label %"$have_gas_1546" -"$out_of_gas_1568": ; preds = %"$have_gas_1564" +"$out_of_gas_1545": ; preds = %"$have_gas_1541" call void @_out_of_gas() - br label %"$have_gas_1569" + br label %"$have_gas_1546" -"$have_gas_1569": ; preds = %"$out_of_gas_1568", %"$have_gas_1564" - %"$consume_1570" = sub i64 %"$gasrem_1566", 1 - store i64 %"$consume_1570", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1571", i32 0, i32 0), i32 3 }, %String* %v13, align 8, !dbg !165 - %"$gasrem_1572" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1573" = icmp ugt i64 1, %"$gasrem_1572" - br i1 %"$gascmp_1573", label %"$out_of_gas_1574", label %"$have_gas_1575" +"$have_gas_1546": ; preds = %"$out_of_gas_1545", %"$have_gas_1541" + %"$consume_1547" = sub i64 %"$gasrem_1543", 1 + store i64 %"$consume_1547", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1548", i32 0, i32 0), i32 3 }, %String* %v13, align 8, !dbg !163 + %"$gasrem_1549" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1550" = icmp ugt i64 1, %"$gasrem_1549" + br i1 %"$gascmp_1550", label %"$out_of_gas_1551", label %"$have_gas_1552" -"$out_of_gas_1574": ; preds = %"$have_gas_1569" +"$out_of_gas_1551": ; preds = %"$have_gas_1546" call void @_out_of_gas() - br label %"$have_gas_1575" + br label %"$have_gas_1552" -"$have_gas_1575": ; preds = %"$out_of_gas_1574", %"$have_gas_1569" - %"$consume_1576" = sub i64 %"$gasrem_1572", 1 - store i64 %"$consume_1576", i64* @_gasrem, align 8 +"$have_gas_1552": ; preds = %"$out_of_gas_1551", %"$have_gas_1546" + %"$consume_1553" = sub i64 %"$gasrem_1549", 1 + store i64 %"$consume_1553", i64* @_gasrem, align 8 %eq14 = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1577" = alloca %String, align 8 - %"$c_1578" = load %String, %String* %c12, align 8 - store %String %"$c_1578", %String* %"$_literal_cost_c_1577", align 8 - %"$$_literal_cost_c_1577_1579" = bitcast %String* %"$_literal_cost_c_1577" to i8* - %"$_literal_cost_call_1580" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_1577_1579") - %"$_literal_cost_v_1581" = alloca %String, align 8 - %"$v_1582" = load %String, %String* %v13, align 8 - store %String %"$v_1582", %String* %"$_literal_cost_v_1581", align 8 - %"$$_literal_cost_v_1581_1583" = bitcast %String* %"$_literal_cost_v_1581" to i8* - %"$_literal_cost_call_1584" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_1581_1583") - %"$gasmin_1585" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1580", i64 %"$_literal_cost_call_1584") - %"$gasrem_1586" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1587" = icmp ugt i64 %"$gasmin_1585", %"$gasrem_1586" - br i1 %"$gascmp_1587", label %"$out_of_gas_1588", label %"$have_gas_1589" - -"$out_of_gas_1588": ; preds = %"$have_gas_1575" - call void @_out_of_gas() - br label %"$have_gas_1589" - -"$have_gas_1589": ; preds = %"$out_of_gas_1588", %"$have_gas_1575" - %"$consume_1590" = sub i64 %"$gasrem_1586", %"$gasmin_1585" - store i64 %"$consume_1590", i64* @_gasrem, align 8 - %"$execptr_load_1591" = load i8*, i8** @_execptr, align 8 - %"$c_1592" = load %String, %String* %c12, align 8 - %"$v_1593" = load %String, %String* %v13, align 8 - %"$eq_call_1594" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1591", %String %"$c_1592", %String %"$v_1593"), !dbg !168 - store %TName_Bool* %"$eq_call_1594", %TName_Bool** %eq14, align 8, !dbg !168 - %"$gasrem_1596" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1597" = icmp ugt i64 2, %"$gasrem_1596" - br i1 %"$gascmp_1597", label %"$out_of_gas_1598", label %"$have_gas_1599" - -"$out_of_gas_1598": ; preds = %"$have_gas_1589" - call void @_out_of_gas() - br label %"$have_gas_1599" - -"$have_gas_1599": ; preds = %"$out_of_gas_1598", %"$have_gas_1589" - %"$consume_1600" = sub i64 %"$gasrem_1596", 2 - store i64 %"$consume_1600", i64* @_gasrem, align 8 - %"$eq_1602" = load %TName_Bool*, %TName_Bool** %eq14, align 8 - %"$eq_tag_1603" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1602", i32 0, i32 0 - %"$eq_tag_1604" = load i8, i8* %"$eq_tag_1603", align 1 - switch i8 %"$eq_tag_1604", label %"$empty_default_1605" [ - i8 0, label %"$True_1606" - i8 1, label %"$False_1608" - ], !dbg !169 - -"$True_1606": ; preds = %"$have_gas_1599" - %"$eq_1607" = bitcast %TName_Bool* %"$eq_1602" to %CName_True* - br label %"$matchsucc_1601" - -"$False_1608": ; preds = %"$have_gas_1599" - %"$eq_1609" = bitcast %TName_Bool* %"$eq_1602" to %CName_False* - %"$gasrem_1610" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1611" = icmp ugt i64 1, %"$gasrem_1610" - br i1 %"$gascmp_1611", label %"$out_of_gas_1612", label %"$have_gas_1613" - -"$out_of_gas_1612": ; preds = %"$False_1608" - call void @_out_of_gas() - br label %"$have_gas_1613" - -"$have_gas_1613": ; preds = %"$out_of_gas_1612", %"$False_1608" - %"$consume_1614" = sub i64 %"$gasrem_1610", 1 - store i64 %"$consume_1614", i64* @_gasrem, align 8 + %"$_literal_cost_c_1554" = alloca %String, align 8 + %"$c_1555" = load %String, %String* %c12, align 8 + store %String %"$c_1555", %String* %"$_literal_cost_c_1554", align 8 + %"$$_literal_cost_c_1554_1556" = bitcast %String* %"$_literal_cost_c_1554" to i8* + %"$_literal_cost_call_1557" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_1554_1556") + %"$_literal_cost_v_1558" = alloca %String, align 8 + %"$v_1559" = load %String, %String* %v13, align 8 + store %String %"$v_1559", %String* %"$_literal_cost_v_1558", align 8 + %"$$_literal_cost_v_1558_1560" = bitcast %String* %"$_literal_cost_v_1558" to i8* + %"$_literal_cost_call_1561" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_1558_1560") + %"$gasmin_1562" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1557", i64 %"$_literal_cost_call_1561") + %"$gasrem_1563" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1564" = icmp ugt i64 %"$gasmin_1562", %"$gasrem_1563" + br i1 %"$gascmp_1564", label %"$out_of_gas_1565", label %"$have_gas_1566" + +"$out_of_gas_1565": ; preds = %"$have_gas_1552" + call void @_out_of_gas() + br label %"$have_gas_1566" + +"$have_gas_1566": ; preds = %"$out_of_gas_1565", %"$have_gas_1552" + %"$consume_1567" = sub i64 %"$gasrem_1563", %"$gasmin_1562" + store i64 %"$consume_1567", i64* @_gasrem, align 8 + %"$execptr_load_1568" = load i8*, i8** @_execptr, align 8 + %"$c_1569" = load %String, %String* %c12, align 8 + %"$v_1570" = load %String, %String* %v13, align 8 + %"$eq_call_1571" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1568", %String %"$c_1569", %String %"$v_1570"), !dbg !166 + store %TName_Bool* %"$eq_call_1571", %TName_Bool** %eq14, align 8, !dbg !166 + %"$gasrem_1573" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1574" = icmp ugt i64 2, %"$gasrem_1573" + br i1 %"$gascmp_1574", label %"$out_of_gas_1575", label %"$have_gas_1576" + +"$out_of_gas_1575": ; preds = %"$have_gas_1566" + call void @_out_of_gas() + br label %"$have_gas_1576" + +"$have_gas_1576": ; preds = %"$out_of_gas_1575", %"$have_gas_1566" + %"$consume_1577" = sub i64 %"$gasrem_1573", 2 + store i64 %"$consume_1577", i64* @_gasrem, align 8 + %"$eq_1579" = load %TName_Bool*, %TName_Bool** %eq14, align 8 + %"$eq_tag_1580" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1579", i32 0, i32 0 + %"$eq_tag_1581" = load i8, i8* %"$eq_tag_1580", align 1 + switch i8 %"$eq_tag_1581", label %"$empty_default_1582" [ + i8 0, label %"$True_1583" + i8 1, label %"$False_1585" + ], !dbg !167 + +"$True_1583": ; preds = %"$have_gas_1576" + %"$eq_1584" = bitcast %TName_Bool* %"$eq_1579" to %CName_True* + br label %"$matchsucc_1578" + +"$False_1585": ; preds = %"$have_gas_1576" + %"$eq_1586" = bitcast %TName_Bool* %"$eq_1579" to %CName_False* + %"$gasrem_1587" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1588" = icmp ugt i64 1, %"$gasrem_1587" + br i1 %"$gascmp_1588", label %"$out_of_gas_1589", label %"$have_gas_1590" + +"$out_of_gas_1589": ; preds = %"$False_1585" + call void @_out_of_gas() + br label %"$have_gas_1590" + +"$have_gas_1590": ; preds = %"$out_of_gas_1589", %"$False_1585" + %"$consume_1591" = sub i64 %"$gasrem_1587", 1 + store i64 %"$consume_1591", i64* @_gasrem, align 8 %m15 = alloca %String, align 8 - %"$gasrem_1615" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1616" = icmp ugt i64 1, %"$gasrem_1615" - br i1 %"$gascmp_1616", label %"$out_of_gas_1617", label %"$have_gas_1618" + %"$gasrem_1592" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1593" = icmp ugt i64 1, %"$gasrem_1592" + br i1 %"$gascmp_1593", label %"$out_of_gas_1594", label %"$have_gas_1595" -"$out_of_gas_1617": ; preds = %"$have_gas_1613" +"$out_of_gas_1594": ; preds = %"$have_gas_1590" call void @_out_of_gas() - br label %"$have_gas_1618" + br label %"$have_gas_1595" -"$have_gas_1618": ; preds = %"$out_of_gas_1617", %"$have_gas_1613" - %"$consume_1619" = sub i64 %"$gasrem_1615", 1 - store i64 %"$consume_1619", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1620", i32 0, i32 0), i32 31 }, %String* %m15, align 8, !dbg !170 - %"$gasrem_1621" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1622" = icmp ugt i64 1, %"$gasrem_1621" - br i1 %"$gascmp_1622", label %"$out_of_gas_1623", label %"$have_gas_1624" +"$have_gas_1595": ; preds = %"$out_of_gas_1594", %"$have_gas_1590" + %"$consume_1596" = sub i64 %"$gasrem_1592", 1 + store i64 %"$consume_1596", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1597", i32 0, i32 0), i32 31 }, %String* %m15, align 8, !dbg !168 + %"$gasrem_1598" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1599" = icmp ugt i64 1, %"$gasrem_1598" + br i1 %"$gascmp_1599", label %"$out_of_gas_1600", label %"$have_gas_1601" -"$out_of_gas_1623": ; preds = %"$have_gas_1618" +"$out_of_gas_1600": ; preds = %"$have_gas_1595" call void @_out_of_gas() - br label %"$have_gas_1624" + br label %"$have_gas_1601" -"$have_gas_1624": ; preds = %"$out_of_gas_1623", %"$have_gas_1618" - %"$consume_1625" = sub i64 %"$gasrem_1621", 1 - store i64 %"$consume_1625", i64* @_gasrem, align 8 - %"$fail_msg__origin_1626" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1626", align 1 - %"$fail_msg__sender_1627" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1627", align 1 - %"$tname_1628" = load %String, %String* %tname, align 8 - %"$m_1629" = load %String, %String* %m15, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1626", [20 x i8]* %"$fail_msg__sender_1627", %String %"$tname_1628", %String %"$m_1629"), !dbg !173 - br label %"$matchsucc_1601" +"$have_gas_1601": ; preds = %"$out_of_gas_1600", %"$have_gas_1595" + %"$consume_1602" = sub i64 %"$gasrem_1598", 1 + store i64 %"$consume_1602", i64* @_gasrem, align 8 + %"$fail_msg__origin_1603" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1603", align 1 + %"$fail_msg__sender_1604" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1604", align 1 + %"$tname_1605" = load %String, %String* %tname, align 8 + %"$m_1606" = load %String, %String* %m15, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1603", [20 x i8]* %"$fail_msg__sender_1604", %String %"$tname_1605", %String %"$m_1606"), !dbg !171 + br label %"$matchsucc_1578" -"$empty_default_1605": ; preds = %"$have_gas_1599" - br label %"$matchsucc_1601" +"$empty_default_1582": ; preds = %"$have_gas_1576" + br label %"$matchsucc_1578" -"$matchsucc_1601": ; preds = %"$have_gas_1624", %"$True_1606", %"$empty_default_1605" - br label %"$matchsucc_1552" +"$matchsucc_1578": ; preds = %"$have_gas_1601", %"$True_1583", %"$empty_default_1582" + br label %"$matchsucc_1529" -"$None_1630": ; preds = %"$have_gas_1550" - %"$$c1_2_1631" = bitcast %TName_Option_String* %"$$c1_2_1553" to %CName_None_String* - %"$gasrem_1632" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1633" = icmp ugt i64 1, %"$gasrem_1632" - br i1 %"$gascmp_1633", label %"$out_of_gas_1634", label %"$have_gas_1635" +"$None_1607": ; preds = %"$have_gas_1527" + %"$$c1_2_1608" = bitcast %TName_Option_String* %"$$c1_2_1530" to %CName_None_String* + %"$gasrem_1609" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1610" = icmp ugt i64 1, %"$gasrem_1609" + br i1 %"$gascmp_1610", label %"$out_of_gas_1611", label %"$have_gas_1612" -"$out_of_gas_1634": ; preds = %"$None_1630" +"$out_of_gas_1611": ; preds = %"$None_1607" call void @_out_of_gas() - br label %"$have_gas_1635" + br label %"$have_gas_1612" -"$have_gas_1635": ; preds = %"$out_of_gas_1634", %"$None_1630" - %"$consume_1636" = sub i64 %"$gasrem_1632", 1 - store i64 %"$consume_1636", i64* @_gasrem, align 8 +"$have_gas_1612": ; preds = %"$out_of_gas_1611", %"$None_1607" + %"$consume_1613" = sub i64 %"$gasrem_1609", 1 + store i64 %"$consume_1613", i64* @_gasrem, align 8 %m16 = alloca %String, align 8 - %"$gasrem_1637" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1638" = icmp ugt i64 1, %"$gasrem_1637" - br i1 %"$gascmp_1638", label %"$out_of_gas_1639", label %"$have_gas_1640" - -"$out_of_gas_1639": ; preds = %"$have_gas_1635" - call void @_out_of_gas() - br label %"$have_gas_1640" - -"$have_gas_1640": ; preds = %"$out_of_gas_1639", %"$have_gas_1635" - %"$consume_1641" = sub i64 %"$gasrem_1637", 1 - store i64 %"$consume_1641", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1642", i32 0, i32 0), i32 21 }, %String* %m16, align 8, !dbg !174 - %"$gasrem_1643" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1644" = icmp ugt i64 1, %"$gasrem_1643" - br i1 %"$gascmp_1644", label %"$out_of_gas_1645", label %"$have_gas_1646" - -"$out_of_gas_1645": ; preds = %"$have_gas_1640" - call void @_out_of_gas() - br label %"$have_gas_1646" - -"$have_gas_1646": ; preds = %"$out_of_gas_1645", %"$have_gas_1640" - %"$consume_1647" = sub i64 %"$gasrem_1643", 1 - store i64 %"$consume_1647", i64* @_gasrem, align 8 - %"$fail_msg__origin_1648" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1648", align 1 - %"$fail_msg__sender_1649" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1649", align 1 - %"$tname_1650" = load %String, %String* %tname, align 8 - %"$m_1651" = load %String, %String* %m16, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1648", [20 x i8]* %"$fail_msg__sender_1649", %String %"$tname_1650", %String %"$m_1651"), !dbg !176 - br label %"$matchsucc_1552" - -"$empty_default_1556": ; preds = %"$have_gas_1550" - br label %"$matchsucc_1552" - -"$matchsucc_1552": ; preds = %"$have_gas_1646", %"$matchsucc_1601", %"$empty_default_1556" - %"$gasrem_1652" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1653" = icmp ugt i64 1, %"$gasrem_1652" - br i1 %"$gascmp_1653", label %"$out_of_gas_1654", label %"$have_gas_1655" - -"$out_of_gas_1654": ; preds = %"$matchsucc_1552" - call void @_out_of_gas() - br label %"$have_gas_1655" - -"$have_gas_1655": ; preds = %"$out_of_gas_1654", %"$matchsucc_1552" - %"$consume_1656" = sub i64 %"$gasrem_1652", 1 - store i64 %"$consume_1656", i64* @_gasrem, align 8 - %"$indices_buf_1657_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1657_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1657_salloc_load", i64 16) - %"$indices_buf_1657_salloc" = bitcast i8* %"$indices_buf_1657_salloc_salloc" to [16 x i8]* - %"$indices_buf_1657" = bitcast [16 x i8]* %"$indices_buf_1657_salloc" to i8* - %"$$key1b_1_1658" = load %String, %String* %"$key1b_1", align 8 - %"$indices_gep_1659" = getelementptr i8, i8* %"$indices_buf_1657", i32 0 - %indices_cast17 = bitcast i8* %"$indices_gep_1659" to %String* - store %String %"$$key1b_1_1658", %String* %indices_cast17, align 8 - %"$execptr_load_1660" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_1660", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1661", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 1, i8* %"$indices_buf_1657", i8* null), !dbg !177 + %"$gasrem_1614" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1615" = icmp ugt i64 1, %"$gasrem_1614" + br i1 %"$gascmp_1615", label %"$out_of_gas_1616", label %"$have_gas_1617" + +"$out_of_gas_1616": ; preds = %"$have_gas_1612" + call void @_out_of_gas() + br label %"$have_gas_1617" + +"$have_gas_1617": ; preds = %"$out_of_gas_1616", %"$have_gas_1612" + %"$consume_1618" = sub i64 %"$gasrem_1614", 1 + store i64 %"$consume_1618", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1619", i32 0, i32 0), i32 21 }, %String* %m16, align 8, !dbg !172 + %"$gasrem_1620" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1621" = icmp ugt i64 1, %"$gasrem_1620" + br i1 %"$gascmp_1621", label %"$out_of_gas_1622", label %"$have_gas_1623" + +"$out_of_gas_1622": ; preds = %"$have_gas_1617" + call void @_out_of_gas() + br label %"$have_gas_1623" + +"$have_gas_1623": ; preds = %"$out_of_gas_1622", %"$have_gas_1617" + %"$consume_1624" = sub i64 %"$gasrem_1620", 1 + store i64 %"$consume_1624", i64* @_gasrem, align 8 + %"$fail_msg__origin_1625" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1625", align 1 + %"$fail_msg__sender_1626" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1626", align 1 + %"$tname_1627" = load %String, %String* %tname, align 8 + %"$m_1628" = load %String, %String* %m16, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1625", [20 x i8]* %"$fail_msg__sender_1626", %String %"$tname_1627", %String %"$m_1628"), !dbg !174 + br label %"$matchsucc_1529" + +"$empty_default_1533": ; preds = %"$have_gas_1527" + br label %"$matchsucc_1529" + +"$matchsucc_1529": ; preds = %"$have_gas_1623", %"$matchsucc_1578", %"$empty_default_1533" + %"$gasrem_1629" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1630" = icmp ugt i64 1, %"$gasrem_1629" + br i1 %"$gascmp_1630", label %"$out_of_gas_1631", label %"$have_gas_1632" + +"$out_of_gas_1631": ; preds = %"$matchsucc_1529" + call void @_out_of_gas() + br label %"$have_gas_1632" + +"$have_gas_1632": ; preds = %"$out_of_gas_1631", %"$matchsucc_1529" + %"$consume_1633" = sub i64 %"$gasrem_1629", 1 + store i64 %"$consume_1633", i64* @_gasrem, align 8 + %"$indices_buf_1634_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1634_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1634_salloc_load", i64 16) + %"$indices_buf_1634_salloc" = bitcast i8* %"$indices_buf_1634_salloc_salloc" to [16 x i8]* + %"$indices_buf_1634" = bitcast [16 x i8]* %"$indices_buf_1634_salloc" to i8* + %"$$key1b_1_1635" = load %String, %String* %"$key1b_1", align 8 + %"$indices_gep_1636" = getelementptr i8, i8* %"$indices_buf_1634", i32 0 + %indices_cast17 = bitcast i8* %"$indices_gep_1636" to %String* + store %String %"$$key1b_1_1635", %String* %indices_cast17, align 8 + %"$execptr_load_1637" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_1637", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1638", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 1, i8* %"$indices_buf_1634", i8* null), !dbg !175 ret void } -define void @t6(i8* %0) !dbg !178 { +define void @t6(i8* %0) !dbg !176 { entry: - %"$_amount_1663" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1664" = bitcast i8* %"$_amount_1663" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1664", align 8 - %"$_origin_1665" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1666" = bitcast i8* %"$_origin_1665" to [20 x i8]* - %"$_sender_1667" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1668" = bitcast i8* %"$_sender_1667" to [20 x i8]* - call void @"$t6_1200"(%Uint128 %_amount, [20 x i8]* %"$_origin_1666", [20 x i8]* %"$_sender_1668"), !dbg !179 + %"$_amount_1640" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1641" = bitcast i8* %"$_amount_1640" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1641", align 8 + %"$_origin_1642" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1643" = bitcast i8* %"$_origin_1642" to [20 x i8]* + %"$_sender_1644" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1645" = bitcast i8* %"$_sender_1644" to [20 x i8]* + call void @"$t6_1177"(%Uint128 %_amount, [20 x i8]* %"$_origin_1643", [20 x i8]* %"$_sender_1645"), !dbg !177 ret void } -define internal void @"$t7_1669"(%Uint128 %_amount, [20 x i8]* %"$_origin_1670", [20 x i8]* %"$_sender_1671") !dbg !180 { +define internal void @"$t7_1646"(%Uint128 %_amount, [20 x i8]* %"$_origin_1647", [20 x i8]* %"$_sender_1648") !dbg !178 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1670", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1671", align 1 - %"$gasrem_1672" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1673" = icmp ugt i64 1, %"$gasrem_1672" - br i1 %"$gascmp_1673", label %"$out_of_gas_1674", label %"$have_gas_1675" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1647", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1648", align 1 + %"$gasrem_1649" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1650" = icmp ugt i64 1, %"$gasrem_1649" + br i1 %"$gascmp_1650", label %"$out_of_gas_1651", label %"$have_gas_1652" -"$out_of_gas_1674": ; preds = %entry +"$out_of_gas_1651": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1675" + br label %"$have_gas_1652" -"$have_gas_1675": ; preds = %"$out_of_gas_1674", %entry - %"$consume_1676" = sub i64 %"$gasrem_1672", 1 - store i64 %"$consume_1676", i64* @_gasrem, align 8 +"$have_gas_1652": ; preds = %"$out_of_gas_1651", %entry + %"$consume_1653" = sub i64 %"$gasrem_1649", 1 + store i64 %"$consume_1653", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_1677" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1678" = icmp ugt i64 1, %"$gasrem_1677" - br i1 %"$gascmp_1678", label %"$out_of_gas_1679", label %"$have_gas_1680" + %"$gasrem_1654" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1655" = icmp ugt i64 1, %"$gasrem_1654" + br i1 %"$gascmp_1655", label %"$out_of_gas_1656", label %"$have_gas_1657" -"$out_of_gas_1679": ; preds = %"$have_gas_1675" +"$out_of_gas_1656": ; preds = %"$have_gas_1652" call void @_out_of_gas() - br label %"$have_gas_1680" + br label %"$have_gas_1657" -"$have_gas_1680": ; preds = %"$out_of_gas_1679", %"$have_gas_1675" - %"$consume_1681" = sub i64 %"$gasrem_1677", 1 - store i64 %"$consume_1681", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1682", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !181 - %"$gasrem_1683" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1684" = icmp ugt i64 1, %"$gasrem_1683" - br i1 %"$gascmp_1684", label %"$out_of_gas_1685", label %"$have_gas_1686" +"$have_gas_1657": ; preds = %"$out_of_gas_1656", %"$have_gas_1652" + %"$consume_1658" = sub i64 %"$gasrem_1654", 1 + store i64 %"$consume_1658", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1659", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !179 + %"$gasrem_1660" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1661" = icmp ugt i64 1, %"$gasrem_1660" + br i1 %"$gascmp_1661", label %"$out_of_gas_1662", label %"$have_gas_1663" -"$out_of_gas_1685": ; preds = %"$have_gas_1680" +"$out_of_gas_1662": ; preds = %"$have_gas_1657" call void @_out_of_gas() - br label %"$have_gas_1686" + br label %"$have_gas_1663" -"$have_gas_1686": ; preds = %"$out_of_gas_1685", %"$have_gas_1680" - %"$consume_1687" = sub i64 %"$gasrem_1683", 1 - store i64 %"$consume_1687", i64* @_gasrem, align 8 +"$have_gas_1663": ; preds = %"$out_of_gas_1662", %"$have_gas_1657" + %"$consume_1664" = sub i64 %"$gasrem_1660", 1 + store i64 %"$consume_1664", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_1688" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1689" = icmp ugt i64 1, %"$gasrem_1688" - br i1 %"$gascmp_1689", label %"$out_of_gas_1690", label %"$have_gas_1691" + %"$gasrem_1665" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1666" = icmp ugt i64 1, %"$gasrem_1665" + br i1 %"$gascmp_1666", label %"$out_of_gas_1667", label %"$have_gas_1668" -"$out_of_gas_1690": ; preds = %"$have_gas_1686" +"$out_of_gas_1667": ; preds = %"$have_gas_1663" call void @_out_of_gas() - br label %"$have_gas_1691" + br label %"$have_gas_1668" -"$have_gas_1691": ; preds = %"$out_of_gas_1690", %"$have_gas_1686" - %"$consume_1692" = sub i64 %"$gasrem_1688", 1 - store i64 %"$consume_1692", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1693", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !182 - %"$gasrem_1694" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1695" = icmp ugt i64 1, %"$gasrem_1694" - br i1 %"$gascmp_1695", label %"$out_of_gas_1696", label %"$have_gas_1697" +"$have_gas_1668": ; preds = %"$out_of_gas_1667", %"$have_gas_1663" + %"$consume_1669" = sub i64 %"$gasrem_1665", 1 + store i64 %"$consume_1669", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1670", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !180 + %"$gasrem_1671" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1672" = icmp ugt i64 1, %"$gasrem_1671" + br i1 %"$gascmp_1672", label %"$out_of_gas_1673", label %"$have_gas_1674" -"$out_of_gas_1696": ; preds = %"$have_gas_1691" +"$out_of_gas_1673": ; preds = %"$have_gas_1668" call void @_out_of_gas() - br label %"$have_gas_1697" + br label %"$have_gas_1674" -"$have_gas_1697": ; preds = %"$out_of_gas_1696", %"$have_gas_1691" - %"$consume_1698" = sub i64 %"$gasrem_1694", 1 - store i64 %"$consume_1698", i64* @_gasrem, align 8 +"$have_gas_1674": ; preds = %"$out_of_gas_1673", %"$have_gas_1668" + %"$consume_1675" = sub i64 %"$gasrem_1671", 1 + store i64 %"$consume_1675", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_1699" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1700" = icmp ugt i64 1, %"$gasrem_1699" - br i1 %"$gascmp_1700", label %"$out_of_gas_1701", label %"$have_gas_1702" + %"$gasrem_1676" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1677" = icmp ugt i64 1, %"$gasrem_1676" + br i1 %"$gascmp_1677", label %"$out_of_gas_1678", label %"$have_gas_1679" -"$out_of_gas_1701": ; preds = %"$have_gas_1697" +"$out_of_gas_1678": ; preds = %"$have_gas_1674" call void @_out_of_gas() - br label %"$have_gas_1702" + br label %"$have_gas_1679" -"$have_gas_1702": ; preds = %"$out_of_gas_1701", %"$have_gas_1697" - %"$consume_1703" = sub i64 %"$gasrem_1699", 1 - store i64 %"$consume_1703", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1704", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !183 +"$have_gas_1679": ; preds = %"$out_of_gas_1678", %"$have_gas_1674" + %"$consume_1680" = sub i64 %"$gasrem_1676", 1 + store i64 %"$consume_1680", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1681", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !181 %c1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_1705_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1705_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1705_salloc_load", i64 32) - %"$indices_buf_1705_salloc" = bitcast i8* %"$indices_buf_1705_salloc_salloc" to [32 x i8]* - %"$indices_buf_1705" = bitcast [32 x i8]* %"$indices_buf_1705_salloc" to i8* - %"$key1a_1706" = load %String, %String* %key1a, align 8 - %"$indices_gep_1707" = getelementptr i8, i8* %"$indices_buf_1705", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_1707" to %String* - store %String %"$key1a_1706", %String* %indices_cast, align 8 - %"$key2a_1708" = load %String, %String* %key2a, align 8 - %"$indices_gep_1709" = getelementptr i8, i8* %"$indices_buf_1705", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_1709" to %String* - store %String %"$key2a_1708", %String* %indices_cast1, align 8 - %"$execptr_load_1711" = load i8*, i8** @_execptr, align 8 - %"$c1_call_1712" = call i8* @_fetch_field(i8* %"$execptr_load_1711", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1710", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1705", i32 1), !dbg !184 - %"$c1_1713" = bitcast i8* %"$c1_call_1712" to %TName_Option_String* - store %TName_Option_String* %"$c1_1713", %TName_Option_String** %c1, align 8 - %"$c1_1714" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$$c1_1714_1715" = bitcast %TName_Option_String* %"$c1_1714" to i8* - %"$_literal_cost_call_1716" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$c1_1714_1715") - %"$gasadd_1717" = add i64 %"$_literal_cost_call_1716", 0 - %"$gasadd_1718" = add i64 %"$gasadd_1717", 2 - %"$gasrem_1719" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1720" = icmp ugt i64 %"$gasadd_1718", %"$gasrem_1719" - br i1 %"$gascmp_1720", label %"$out_of_gas_1721", label %"$have_gas_1722" - -"$out_of_gas_1721": ; preds = %"$have_gas_1702" - call void @_out_of_gas() - br label %"$have_gas_1722" - -"$have_gas_1722": ; preds = %"$out_of_gas_1721", %"$have_gas_1702" - %"$consume_1723" = sub i64 %"$gasrem_1719", %"$gasadd_1718" - store i64 %"$consume_1723", i64* @_gasrem, align 8 - %"$gasrem_1724" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1725" = icmp ugt i64 2, %"$gasrem_1724" - br i1 %"$gascmp_1725", label %"$out_of_gas_1726", label %"$have_gas_1727" - -"$out_of_gas_1726": ; preds = %"$have_gas_1722" - call void @_out_of_gas() - br label %"$have_gas_1727" - -"$have_gas_1727": ; preds = %"$out_of_gas_1726", %"$have_gas_1722" - %"$consume_1728" = sub i64 %"$gasrem_1724", 2 - store i64 %"$consume_1728", i64* @_gasrem, align 8 - %"$c1_1730" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_1731" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1730", i32 0, i32 0 - %"$c1_tag_1732" = load i8, i8* %"$c1_tag_1731", align 1 - switch i8 %"$c1_tag_1732", label %"$empty_default_1733" [ - i8 0, label %"$Some_1734" - i8 1, label %"$None_1807" - ], !dbg !185 - -"$Some_1734": ; preds = %"$have_gas_1727" - %"$c1_1735" = bitcast %TName_Option_String* %"$c1_1730" to %CName_Some_String* - %"$c_gep_1736" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1735", i32 0, i32 1 - %"$c_load_1737" = load %String, %String* %"$c_gep_1736", align 8 + %"$indices_buf_1682_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1682_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1682_salloc_load", i64 32) + %"$indices_buf_1682_salloc" = bitcast i8* %"$indices_buf_1682_salloc_salloc" to [32 x i8]* + %"$indices_buf_1682" = bitcast [32 x i8]* %"$indices_buf_1682_salloc" to i8* + %"$key1a_1683" = load %String, %String* %key1a, align 8 + %"$indices_gep_1684" = getelementptr i8, i8* %"$indices_buf_1682", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_1684" to %String* + store %String %"$key1a_1683", %String* %indices_cast, align 8 + %"$key2a_1685" = load %String, %String* %key2a, align 8 + %"$indices_gep_1686" = getelementptr i8, i8* %"$indices_buf_1682", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_1686" to %String* + store %String %"$key2a_1685", %String* %indices_cast1, align 8 + %"$execptr_load_1688" = load i8*, i8** @_execptr, align 8 + %"$c1_call_1689" = call i8* @_fetch_field(i8* %"$execptr_load_1688", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1687", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1682", i32 1), !dbg !182 + %"$c1_1690" = bitcast i8* %"$c1_call_1689" to %TName_Option_String* + store %TName_Option_String* %"$c1_1690", %TName_Option_String** %c1, align 8 + %"$c1_1691" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$$c1_1691_1692" = bitcast %TName_Option_String* %"$c1_1691" to i8* + %"$_literal_cost_call_1693" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$c1_1691_1692") + %"$gasadd_1694" = add i64 %"$_literal_cost_call_1693", 0 + %"$gasadd_1695" = add i64 %"$gasadd_1694", 2 + %"$gasrem_1696" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1697" = icmp ugt i64 %"$gasadd_1695", %"$gasrem_1696" + br i1 %"$gascmp_1697", label %"$out_of_gas_1698", label %"$have_gas_1699" + +"$out_of_gas_1698": ; preds = %"$have_gas_1679" + call void @_out_of_gas() + br label %"$have_gas_1699" + +"$have_gas_1699": ; preds = %"$out_of_gas_1698", %"$have_gas_1679" + %"$consume_1700" = sub i64 %"$gasrem_1696", %"$gasadd_1695" + store i64 %"$consume_1700", i64* @_gasrem, align 8 + %"$gasrem_1701" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1702" = icmp ugt i64 2, %"$gasrem_1701" + br i1 %"$gascmp_1702", label %"$out_of_gas_1703", label %"$have_gas_1704" + +"$out_of_gas_1703": ; preds = %"$have_gas_1699" + call void @_out_of_gas() + br label %"$have_gas_1704" + +"$have_gas_1704": ; preds = %"$out_of_gas_1703", %"$have_gas_1699" + %"$consume_1705" = sub i64 %"$gasrem_1701", 2 + store i64 %"$consume_1705", i64* @_gasrem, align 8 + %"$c1_1707" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_1708" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1707", i32 0, i32 0 + %"$c1_tag_1709" = load i8, i8* %"$c1_tag_1708", align 1 + switch i8 %"$c1_tag_1709", label %"$empty_default_1710" [ + i8 0, label %"$Some_1711" + i8 1, label %"$None_1784" + ], !dbg !183 + +"$Some_1711": ; preds = %"$have_gas_1704" + %"$c1_1712" = bitcast %TName_Option_String* %"$c1_1707" to %CName_Some_String* + %"$c_gep_1713" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1712", i32 0, i32 1 + %"$c_load_1714" = load %String, %String* %"$c_gep_1713", align 8 %c = alloca %String, align 8 - store %String %"$c_load_1737", %String* %c, align 8 - %"$gasrem_1738" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1739" = icmp ugt i64 1, %"$gasrem_1738" - br i1 %"$gascmp_1739", label %"$out_of_gas_1740", label %"$have_gas_1741" + store %String %"$c_load_1714", %String* %c, align 8 + %"$gasrem_1715" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1716" = icmp ugt i64 1, %"$gasrem_1715" + br i1 %"$gascmp_1716", label %"$out_of_gas_1717", label %"$have_gas_1718" -"$out_of_gas_1740": ; preds = %"$Some_1734" +"$out_of_gas_1717": ; preds = %"$Some_1711" call void @_out_of_gas() - br label %"$have_gas_1741" + br label %"$have_gas_1718" -"$have_gas_1741": ; preds = %"$out_of_gas_1740", %"$Some_1734" - %"$consume_1742" = sub i64 %"$gasrem_1738", 1 - store i64 %"$consume_1742", i64* @_gasrem, align 8 +"$have_gas_1718": ; preds = %"$out_of_gas_1717", %"$Some_1711" + %"$consume_1719" = sub i64 %"$gasrem_1715", 1 + store i64 %"$consume_1719", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_1743" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1744" = icmp ugt i64 1, %"$gasrem_1743" - br i1 %"$gascmp_1744", label %"$out_of_gas_1745", label %"$have_gas_1746" + %"$gasrem_1720" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1721" = icmp ugt i64 1, %"$gasrem_1720" + br i1 %"$gascmp_1721", label %"$out_of_gas_1722", label %"$have_gas_1723" -"$out_of_gas_1745": ; preds = %"$have_gas_1741" +"$out_of_gas_1722": ; preds = %"$have_gas_1718" call void @_out_of_gas() - br label %"$have_gas_1746" + br label %"$have_gas_1723" -"$have_gas_1746": ; preds = %"$out_of_gas_1745", %"$have_gas_1741" - %"$consume_1747" = sub i64 %"$gasrem_1743", 1 - store i64 %"$consume_1747", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1748", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !186 - %"$gasrem_1749" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1750" = icmp ugt i64 1, %"$gasrem_1749" - br i1 %"$gascmp_1750", label %"$out_of_gas_1751", label %"$have_gas_1752" +"$have_gas_1723": ; preds = %"$out_of_gas_1722", %"$have_gas_1718" + %"$consume_1724" = sub i64 %"$gasrem_1720", 1 + store i64 %"$consume_1724", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1725", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !184 + %"$gasrem_1726" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1727" = icmp ugt i64 1, %"$gasrem_1726" + br i1 %"$gascmp_1727", label %"$out_of_gas_1728", label %"$have_gas_1729" -"$out_of_gas_1751": ; preds = %"$have_gas_1746" +"$out_of_gas_1728": ; preds = %"$have_gas_1723" call void @_out_of_gas() - br label %"$have_gas_1752" + br label %"$have_gas_1729" -"$have_gas_1752": ; preds = %"$out_of_gas_1751", %"$have_gas_1746" - %"$consume_1753" = sub i64 %"$gasrem_1749", 1 - store i64 %"$consume_1753", i64* @_gasrem, align 8 +"$have_gas_1729": ; preds = %"$out_of_gas_1728", %"$have_gas_1723" + %"$consume_1730" = sub i64 %"$gasrem_1726", 1 + store i64 %"$consume_1730", i64* @_gasrem, align 8 %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1754" = alloca %String, align 8 - %"$c_1755" = load %String, %String* %c, align 8 - store %String %"$c_1755", %String* %"$_literal_cost_c_1754", align 8 - %"$$_literal_cost_c_1754_1756" = bitcast %String* %"$_literal_cost_c_1754" to i8* - %"$_literal_cost_call_1757" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_1754_1756") - %"$_literal_cost_v_1758" = alloca %String, align 8 - %"$v_1759" = load %String, %String* %v, align 8 - store %String %"$v_1759", %String* %"$_literal_cost_v_1758", align 8 - %"$$_literal_cost_v_1758_1760" = bitcast %String* %"$_literal_cost_v_1758" to i8* - %"$_literal_cost_call_1761" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_1758_1760") - %"$gasmin_1762" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1757", i64 %"$_literal_cost_call_1761") - %"$gasrem_1763" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1764" = icmp ugt i64 %"$gasmin_1762", %"$gasrem_1763" - br i1 %"$gascmp_1764", label %"$out_of_gas_1765", label %"$have_gas_1766" - -"$out_of_gas_1765": ; preds = %"$have_gas_1752" - call void @_out_of_gas() - br label %"$have_gas_1766" - -"$have_gas_1766": ; preds = %"$out_of_gas_1765", %"$have_gas_1752" - %"$consume_1767" = sub i64 %"$gasrem_1763", %"$gasmin_1762" - store i64 %"$consume_1767", i64* @_gasrem, align 8 - %"$execptr_load_1768" = load i8*, i8** @_execptr, align 8 - %"$c_1769" = load %String, %String* %c, align 8 - %"$v_1770" = load %String, %String* %v, align 8 - %"$eq_call_1771" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1768", %String %"$c_1769", %String %"$v_1770"), !dbg !189 - store %TName_Bool* %"$eq_call_1771", %TName_Bool** %eq, align 8, !dbg !189 - %"$gasrem_1773" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1774" = icmp ugt i64 2, %"$gasrem_1773" - br i1 %"$gascmp_1774", label %"$out_of_gas_1775", label %"$have_gas_1776" - -"$out_of_gas_1775": ; preds = %"$have_gas_1766" - call void @_out_of_gas() - br label %"$have_gas_1776" - -"$have_gas_1776": ; preds = %"$out_of_gas_1775", %"$have_gas_1766" - %"$consume_1777" = sub i64 %"$gasrem_1773", 2 - store i64 %"$consume_1777", i64* @_gasrem, align 8 - %"$eq_1779" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_1780" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1779", i32 0, i32 0 - %"$eq_tag_1781" = load i8, i8* %"$eq_tag_1780", align 1 - switch i8 %"$eq_tag_1781", label %"$empty_default_1782" [ - i8 0, label %"$True_1783" - i8 1, label %"$False_1785" - ], !dbg !190 - -"$True_1783": ; preds = %"$have_gas_1776" - %"$eq_1784" = bitcast %TName_Bool* %"$eq_1779" to %CName_True* - br label %"$matchsucc_1778" - -"$False_1785": ; preds = %"$have_gas_1776" - %"$eq_1786" = bitcast %TName_Bool* %"$eq_1779" to %CName_False* - %"$gasrem_1787" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1788" = icmp ugt i64 1, %"$gasrem_1787" - br i1 %"$gascmp_1788", label %"$out_of_gas_1789", label %"$have_gas_1790" - -"$out_of_gas_1789": ; preds = %"$False_1785" - call void @_out_of_gas() - br label %"$have_gas_1790" - -"$have_gas_1790": ; preds = %"$out_of_gas_1789", %"$False_1785" - %"$consume_1791" = sub i64 %"$gasrem_1787", 1 - store i64 %"$consume_1791", i64* @_gasrem, align 8 + %"$_literal_cost_c_1731" = alloca %String, align 8 + %"$c_1732" = load %String, %String* %c, align 8 + store %String %"$c_1732", %String* %"$_literal_cost_c_1731", align 8 + %"$$_literal_cost_c_1731_1733" = bitcast %String* %"$_literal_cost_c_1731" to i8* + %"$_literal_cost_call_1734" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_1731_1733") + %"$_literal_cost_v_1735" = alloca %String, align 8 + %"$v_1736" = load %String, %String* %v, align 8 + store %String %"$v_1736", %String* %"$_literal_cost_v_1735", align 8 + %"$$_literal_cost_v_1735_1737" = bitcast %String* %"$_literal_cost_v_1735" to i8* + %"$_literal_cost_call_1738" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_1735_1737") + %"$gasmin_1739" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1734", i64 %"$_literal_cost_call_1738") + %"$gasrem_1740" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1741" = icmp ugt i64 %"$gasmin_1739", %"$gasrem_1740" + br i1 %"$gascmp_1741", label %"$out_of_gas_1742", label %"$have_gas_1743" + +"$out_of_gas_1742": ; preds = %"$have_gas_1729" + call void @_out_of_gas() + br label %"$have_gas_1743" + +"$have_gas_1743": ; preds = %"$out_of_gas_1742", %"$have_gas_1729" + %"$consume_1744" = sub i64 %"$gasrem_1740", %"$gasmin_1739" + store i64 %"$consume_1744", i64* @_gasrem, align 8 + %"$execptr_load_1745" = load i8*, i8** @_execptr, align 8 + %"$c_1746" = load %String, %String* %c, align 8 + %"$v_1747" = load %String, %String* %v, align 8 + %"$eq_call_1748" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1745", %String %"$c_1746", %String %"$v_1747"), !dbg !187 + store %TName_Bool* %"$eq_call_1748", %TName_Bool** %eq, align 8, !dbg !187 + %"$gasrem_1750" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1751" = icmp ugt i64 2, %"$gasrem_1750" + br i1 %"$gascmp_1751", label %"$out_of_gas_1752", label %"$have_gas_1753" + +"$out_of_gas_1752": ; preds = %"$have_gas_1743" + call void @_out_of_gas() + br label %"$have_gas_1753" + +"$have_gas_1753": ; preds = %"$out_of_gas_1752", %"$have_gas_1743" + %"$consume_1754" = sub i64 %"$gasrem_1750", 2 + store i64 %"$consume_1754", i64* @_gasrem, align 8 + %"$eq_1756" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_1757" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1756", i32 0, i32 0 + %"$eq_tag_1758" = load i8, i8* %"$eq_tag_1757", align 1 + switch i8 %"$eq_tag_1758", label %"$empty_default_1759" [ + i8 0, label %"$True_1760" + i8 1, label %"$False_1762" + ], !dbg !188 + +"$True_1760": ; preds = %"$have_gas_1753" + %"$eq_1761" = bitcast %TName_Bool* %"$eq_1756" to %CName_True* + br label %"$matchsucc_1755" + +"$False_1762": ; preds = %"$have_gas_1753" + %"$eq_1763" = bitcast %TName_Bool* %"$eq_1756" to %CName_False* + %"$gasrem_1764" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1765" = icmp ugt i64 1, %"$gasrem_1764" + br i1 %"$gascmp_1765", label %"$out_of_gas_1766", label %"$have_gas_1767" + +"$out_of_gas_1766": ; preds = %"$False_1762" + call void @_out_of_gas() + br label %"$have_gas_1767" + +"$have_gas_1767": ; preds = %"$out_of_gas_1766", %"$False_1762" + %"$consume_1768" = sub i64 %"$gasrem_1764", 1 + store i64 %"$consume_1768", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_1792" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1793" = icmp ugt i64 1, %"$gasrem_1792" - br i1 %"$gascmp_1793", label %"$out_of_gas_1794", label %"$have_gas_1795" + %"$gasrem_1769" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1770" = icmp ugt i64 1, %"$gasrem_1769" + br i1 %"$gascmp_1770", label %"$out_of_gas_1771", label %"$have_gas_1772" -"$out_of_gas_1794": ; preds = %"$have_gas_1790" +"$out_of_gas_1771": ; preds = %"$have_gas_1767" call void @_out_of_gas() - br label %"$have_gas_1795" + br label %"$have_gas_1772" -"$have_gas_1795": ; preds = %"$out_of_gas_1794", %"$have_gas_1790" - %"$consume_1796" = sub i64 %"$gasrem_1792", 1 - store i64 %"$consume_1796", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1797", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !191 - %"$gasrem_1798" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1799" = icmp ugt i64 1, %"$gasrem_1798" - br i1 %"$gascmp_1799", label %"$out_of_gas_1800", label %"$have_gas_1801" +"$have_gas_1772": ; preds = %"$out_of_gas_1771", %"$have_gas_1767" + %"$consume_1773" = sub i64 %"$gasrem_1769", 1 + store i64 %"$consume_1773", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1774", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !189 + %"$gasrem_1775" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1776" = icmp ugt i64 1, %"$gasrem_1775" + br i1 %"$gascmp_1776", label %"$out_of_gas_1777", label %"$have_gas_1778" -"$out_of_gas_1800": ; preds = %"$have_gas_1795" +"$out_of_gas_1777": ; preds = %"$have_gas_1772" call void @_out_of_gas() - br label %"$have_gas_1801" + br label %"$have_gas_1778" -"$have_gas_1801": ; preds = %"$out_of_gas_1800", %"$have_gas_1795" - %"$consume_1802" = sub i64 %"$gasrem_1798", 1 - store i64 %"$consume_1802", i64* @_gasrem, align 8 - %"$fail_msg__origin_1803" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1803", align 1 - %"$fail_msg__sender_1804" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1804", align 1 - %"$tname_1805" = load %String, %String* %tname, align 8 - %"$m_1806" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1803", [20 x i8]* %"$fail_msg__sender_1804", %String %"$tname_1805", %String %"$m_1806"), !dbg !194 - br label %"$matchsucc_1778" +"$have_gas_1778": ; preds = %"$out_of_gas_1777", %"$have_gas_1772" + %"$consume_1779" = sub i64 %"$gasrem_1775", 1 + store i64 %"$consume_1779", i64* @_gasrem, align 8 + %"$fail_msg__origin_1780" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1780", align 1 + %"$fail_msg__sender_1781" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1781", align 1 + %"$tname_1782" = load %String, %String* %tname, align 8 + %"$m_1783" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1780", [20 x i8]* %"$fail_msg__sender_1781", %String %"$tname_1782", %String %"$m_1783"), !dbg !192 + br label %"$matchsucc_1755" -"$empty_default_1782": ; preds = %"$have_gas_1776" - br label %"$matchsucc_1778" +"$empty_default_1759": ; preds = %"$have_gas_1753" + br label %"$matchsucc_1755" -"$matchsucc_1778": ; preds = %"$have_gas_1801", %"$True_1783", %"$empty_default_1782" - br label %"$matchsucc_1729" +"$matchsucc_1755": ; preds = %"$have_gas_1778", %"$True_1760", %"$empty_default_1759" + br label %"$matchsucc_1706" -"$None_1807": ; preds = %"$have_gas_1727" - %"$c1_1808" = bitcast %TName_Option_String* %"$c1_1730" to %CName_None_String* - %"$gasrem_1809" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1810" = icmp ugt i64 1, %"$gasrem_1809" - br i1 %"$gascmp_1810", label %"$out_of_gas_1811", label %"$have_gas_1812" +"$None_1784": ; preds = %"$have_gas_1704" + %"$c1_1785" = bitcast %TName_Option_String* %"$c1_1707" to %CName_None_String* + %"$gasrem_1786" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1787" = icmp ugt i64 1, %"$gasrem_1786" + br i1 %"$gascmp_1787", label %"$out_of_gas_1788", label %"$have_gas_1789" -"$out_of_gas_1811": ; preds = %"$None_1807" +"$out_of_gas_1788": ; preds = %"$None_1784" call void @_out_of_gas() - br label %"$have_gas_1812" + br label %"$have_gas_1789" -"$have_gas_1812": ; preds = %"$out_of_gas_1811", %"$None_1807" - %"$consume_1813" = sub i64 %"$gasrem_1809", 1 - store i64 %"$consume_1813", i64* @_gasrem, align 8 +"$have_gas_1789": ; preds = %"$out_of_gas_1788", %"$None_1784" + %"$consume_1790" = sub i64 %"$gasrem_1786", 1 + store i64 %"$consume_1790", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_1814" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1815" = icmp ugt i64 1, %"$gasrem_1814" - br i1 %"$gascmp_1815", label %"$out_of_gas_1816", label %"$have_gas_1817" - -"$out_of_gas_1816": ; preds = %"$have_gas_1812" - call void @_out_of_gas() - br label %"$have_gas_1817" - -"$have_gas_1817": ; preds = %"$out_of_gas_1816", %"$have_gas_1812" - %"$consume_1818" = sub i64 %"$gasrem_1814", 1 - store i64 %"$consume_1818", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1819", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !195 - %"$gasrem_1820" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1821" = icmp ugt i64 1, %"$gasrem_1820" - br i1 %"$gascmp_1821", label %"$out_of_gas_1822", label %"$have_gas_1823" - -"$out_of_gas_1822": ; preds = %"$have_gas_1817" - call void @_out_of_gas() - br label %"$have_gas_1823" - -"$have_gas_1823": ; preds = %"$out_of_gas_1822", %"$have_gas_1817" - %"$consume_1824" = sub i64 %"$gasrem_1820", 1 - store i64 %"$consume_1824", i64* @_gasrem, align 8 - %"$fail_msg__origin_1825" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1825", align 1 - %"$fail_msg__sender_1826" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1826", align 1 - %"$tname_1827" = load %String, %String* %tname, align 8 - %"$m_1828" = load %String, %String* %m2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1825", [20 x i8]* %"$fail_msg__sender_1826", %String %"$tname_1827", %String %"$m_1828"), !dbg !197 - br label %"$matchsucc_1729" - -"$empty_default_1733": ; preds = %"$have_gas_1727" - br label %"$matchsucc_1729" - -"$matchsucc_1729": ; preds = %"$have_gas_1823", %"$matchsucc_1778", %"$empty_default_1733" + %"$gasrem_1791" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1792" = icmp ugt i64 1, %"$gasrem_1791" + br i1 %"$gascmp_1792", label %"$out_of_gas_1793", label %"$have_gas_1794" + +"$out_of_gas_1793": ; preds = %"$have_gas_1789" + call void @_out_of_gas() + br label %"$have_gas_1794" + +"$have_gas_1794": ; preds = %"$out_of_gas_1793", %"$have_gas_1789" + %"$consume_1795" = sub i64 %"$gasrem_1791", 1 + store i64 %"$consume_1795", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1796", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !193 + %"$gasrem_1797" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1798" = icmp ugt i64 1, %"$gasrem_1797" + br i1 %"$gascmp_1798", label %"$out_of_gas_1799", label %"$have_gas_1800" + +"$out_of_gas_1799": ; preds = %"$have_gas_1794" + call void @_out_of_gas() + br label %"$have_gas_1800" + +"$have_gas_1800": ; preds = %"$out_of_gas_1799", %"$have_gas_1794" + %"$consume_1801" = sub i64 %"$gasrem_1797", 1 + store i64 %"$consume_1801", i64* @_gasrem, align 8 + %"$fail_msg__origin_1802" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1802", align 1 + %"$fail_msg__sender_1803" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1803", align 1 + %"$tname_1804" = load %String, %String* %tname, align 8 + %"$m_1805" = load %String, %String* %m2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1802", [20 x i8]* %"$fail_msg__sender_1803", %String %"$tname_1804", %String %"$m_1805"), !dbg !195 + br label %"$matchsucc_1706" + +"$empty_default_1710": ; preds = %"$have_gas_1704" + br label %"$matchsucc_1706" + +"$matchsucc_1706": ; preds = %"$have_gas_1800", %"$matchsucc_1755", %"$empty_default_1710" + %"$gasrem_1806" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1807" = icmp ugt i64 1, %"$gasrem_1806" + br i1 %"$gascmp_1807", label %"$out_of_gas_1808", label %"$have_gas_1809" + +"$out_of_gas_1808": ; preds = %"$matchsucc_1706" + call void @_out_of_gas() + br label %"$have_gas_1809" + +"$have_gas_1809": ; preds = %"$out_of_gas_1808", %"$matchsucc_1706" + %"$consume_1810" = sub i64 %"$gasrem_1806", 1 + store i64 %"$consume_1810", i64* @_gasrem, align 8 + %key1b = alloca %String, align 8 + %"$gasrem_1811" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1812" = icmp ugt i64 1, %"$gasrem_1811" + br i1 %"$gascmp_1812", label %"$out_of_gas_1813", label %"$have_gas_1814" + +"$out_of_gas_1813": ; preds = %"$have_gas_1809" + call void @_out_of_gas() + br label %"$have_gas_1814" + +"$have_gas_1814": ; preds = %"$out_of_gas_1813", %"$have_gas_1809" + %"$consume_1815" = sub i64 %"$gasrem_1811", 1 + store i64 %"$consume_1815", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1816", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !196 + %"$c1_3" = alloca %"TName_Option_Map_(String)_(String)"*, align 8 + %"$indices_buf_1817_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1817_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1817_salloc_load", i64 16) + %"$indices_buf_1817_salloc" = bitcast i8* %"$indices_buf_1817_salloc_salloc" to [16 x i8]* + %"$indices_buf_1817" = bitcast [16 x i8]* %"$indices_buf_1817_salloc" to i8* + %"$key1b_1818" = load %String, %String* %key1b, align 8 + %"$indices_gep_1819" = getelementptr i8, i8* %"$indices_buf_1817", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_1819" to %String* + store %String %"$key1b_1818", %String* %indices_cast3, align 8 + %"$execptr_load_1821" = load i8*, i8** @_execptr, align 8 + %"$$c1_3_call_1822" = call i8* @_fetch_field(i8* %"$execptr_load_1821", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1820", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 1, i8* %"$indices_buf_1817", i32 1), !dbg !197 + %"$$c1_3_1823" = bitcast i8* %"$$c1_3_call_1822" to %"TName_Option_Map_(String)_(String)"* + store %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1823", %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 + %"$$c1_3_1824" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 + %"$$$c1_3_1824_1825" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1824" to i8* + %"$_literal_cost_call_1826" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_59", i8* %"$$$c1_3_1824_1825") + %"$gasadd_1827" = add i64 %"$_literal_cost_call_1826", 0 + %"$gasadd_1828" = add i64 %"$gasadd_1827", 1 %"$gasrem_1829" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1830" = icmp ugt i64 1, %"$gasrem_1829" + %"$gascmp_1830" = icmp ugt i64 %"$gasadd_1828", %"$gasrem_1829" br i1 %"$gascmp_1830", label %"$out_of_gas_1831", label %"$have_gas_1832" -"$out_of_gas_1831": ; preds = %"$matchsucc_1729" +"$out_of_gas_1831": ; preds = %"$have_gas_1814" call void @_out_of_gas() br label %"$have_gas_1832" -"$have_gas_1832": ; preds = %"$out_of_gas_1831", %"$matchsucc_1729" - %"$consume_1833" = sub i64 %"$gasrem_1829", 1 +"$have_gas_1832": ; preds = %"$out_of_gas_1831", %"$have_gas_1814" + %"$consume_1833" = sub i64 %"$gasrem_1829", %"$gasadd_1828" store i64 %"$consume_1833", i64* @_gasrem, align 8 - %key1b = alloca %String, align 8 %"$gasrem_1834" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1835" = icmp ugt i64 1, %"$gasrem_1834" + %"$gascmp_1835" = icmp ugt i64 2, %"$gasrem_1834" br i1 %"$gascmp_1835", label %"$out_of_gas_1836", label %"$have_gas_1837" "$out_of_gas_1836": ; preds = %"$have_gas_1832" @@ -3831,1282 +3840,1292 @@ entry: br label %"$have_gas_1837" "$have_gas_1837": ; preds = %"$out_of_gas_1836", %"$have_gas_1832" - %"$consume_1838" = sub i64 %"$gasrem_1834", 1 + %"$consume_1838" = sub i64 %"$gasrem_1834", 2 store i64 %"$consume_1838", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1839", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !198 - %"$c1_3" = alloca %"TName_Option_Map_(String)_(String)"*, align 8 - %"$indices_buf_1840_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1840_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1840_salloc_load", i64 16) - %"$indices_buf_1840_salloc" = bitcast i8* %"$indices_buf_1840_salloc_salloc" to [16 x i8]* - %"$indices_buf_1840" = bitcast [16 x i8]* %"$indices_buf_1840_salloc" to i8* - %"$key1b_1841" = load %String, %String* %key1b, align 8 - %"$indices_gep_1842" = getelementptr i8, i8* %"$indices_buf_1840", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_1842" to %String* - store %String %"$key1b_1841", %String* %indices_cast3, align 8 - %"$execptr_load_1844" = load i8*, i8** @_execptr, align 8 - %"$$c1_3_call_1845" = call i8* @_fetch_field(i8* %"$execptr_load_1844", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1843", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 1, i8* %"$indices_buf_1840", i32 1), !dbg !199 - %"$$c1_3_1846" = bitcast i8* %"$$c1_3_call_1845" to %"TName_Option_Map_(String)_(String)"* - store %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1846", %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 - %"$$c1_3_1847" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 - %"$$$c1_3_1847_1848" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1847" to i8* - %"$_literal_cost_call_1849" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_67", i8* %"$$$c1_3_1847_1848") - %"$gasadd_1850" = add i64 %"$_literal_cost_call_1849", 0 - %"$gasadd_1851" = add i64 %"$gasadd_1850", 1 - %"$gasrem_1852" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1853" = icmp ugt i64 %"$gasadd_1851", %"$gasrem_1852" - br i1 %"$gascmp_1853", label %"$out_of_gas_1854", label %"$have_gas_1855" - -"$out_of_gas_1854": ; preds = %"$have_gas_1837" - call void @_out_of_gas() - br label %"$have_gas_1855" - -"$have_gas_1855": ; preds = %"$out_of_gas_1854", %"$have_gas_1837" - %"$consume_1856" = sub i64 %"$gasrem_1852", %"$gasadd_1851" - store i64 %"$consume_1856", i64* @_gasrem, align 8 - %"$gasrem_1857" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1858" = icmp ugt i64 2, %"$gasrem_1857" - br i1 %"$gascmp_1858", label %"$out_of_gas_1859", label %"$have_gas_1860" - -"$out_of_gas_1859": ; preds = %"$have_gas_1855" - call void @_out_of_gas() - br label %"$have_gas_1860" - -"$have_gas_1860": ; preds = %"$out_of_gas_1859", %"$have_gas_1855" - %"$consume_1861" = sub i64 %"$gasrem_1857", 2 - store i64 %"$consume_1861", i64* @_gasrem, align 8 - %"$$c1_3_1863" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 - %"$$c1_3_tag_1864" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1863", i32 0, i32 0 - %"$$c1_3_tag_1865" = load i8, i8* %"$$c1_3_tag_1864", align 1 - switch i8 %"$$c1_3_tag_1865", label %"$empty_default_1866" [ - i8 0, label %"$Some_1867" - i8 1, label %"$None_1891" - ], !dbg !200 - -"$Some_1867": ; preds = %"$have_gas_1860" - %"$$c1_3_1868" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1863" to %"CName_Some_Map_(String)_(String)"* - %"$$$c1_3_16_gep_1869" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$$c1_3_1868", i32 0, i32 1 - %"$$$c1_3_16_load_1870" = load %Map_String_String*, %Map_String_String** %"$$$c1_3_16_gep_1869", align 8 + %"$$c1_3_1840" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 + %"$$c1_3_tag_1841" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1840", i32 0, i32 0 + %"$$c1_3_tag_1842" = load i8, i8* %"$$c1_3_tag_1841", align 1 + switch i8 %"$$c1_3_tag_1842", label %"$empty_default_1843" [ + i8 0, label %"$Some_1844" + i8 1, label %"$None_1868" + ], !dbg !198 + +"$Some_1844": ; preds = %"$have_gas_1837" + %"$$c1_3_1845" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1840" to %"CName_Some_Map_(String)_(String)"* + %"$$$c1_3_16_gep_1846" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$$c1_3_1845", i32 0, i32 1 + %"$$$c1_3_16_load_1847" = load %Map_String_String*, %Map_String_String** %"$$$c1_3_16_gep_1846", align 8 %"$$c1_3_16" = alloca %Map_String_String*, align 8 - store %Map_String_String* %"$$$c1_3_16_load_1870", %Map_String_String** %"$$c1_3_16", align 8 - %"$gasrem_1871" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1872" = icmp ugt i64 1, %"$gasrem_1871" - br i1 %"$gascmp_1872", label %"$out_of_gas_1873", label %"$have_gas_1874" + store %Map_String_String* %"$$$c1_3_16_load_1847", %Map_String_String** %"$$c1_3_16", align 8 + %"$gasrem_1848" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1849" = icmp ugt i64 1, %"$gasrem_1848" + br i1 %"$gascmp_1849", label %"$out_of_gas_1850", label %"$have_gas_1851" -"$out_of_gas_1873": ; preds = %"$Some_1867" +"$out_of_gas_1850": ; preds = %"$Some_1844" call void @_out_of_gas() - br label %"$have_gas_1874" + br label %"$have_gas_1851" -"$have_gas_1874": ; preds = %"$out_of_gas_1873", %"$Some_1867" - %"$consume_1875" = sub i64 %"$gasrem_1871", 1 - store i64 %"$consume_1875", i64* @_gasrem, align 8 +"$have_gas_1851": ; preds = %"$out_of_gas_1850", %"$Some_1844" + %"$consume_1852" = sub i64 %"$gasrem_1848", 1 + store i64 %"$consume_1852", i64* @_gasrem, align 8 %m4 = alloca %String, align 8 - %"$gasrem_1876" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1877" = icmp ugt i64 1, %"$gasrem_1876" - br i1 %"$gascmp_1877", label %"$out_of_gas_1878", label %"$have_gas_1879" + %"$gasrem_1853" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1854" = icmp ugt i64 1, %"$gasrem_1853" + br i1 %"$gascmp_1854", label %"$out_of_gas_1855", label %"$have_gas_1856" -"$out_of_gas_1878": ; preds = %"$have_gas_1874" +"$out_of_gas_1855": ; preds = %"$have_gas_1851" call void @_out_of_gas() - br label %"$have_gas_1879" + br label %"$have_gas_1856" -"$have_gas_1879": ; preds = %"$out_of_gas_1878", %"$have_gas_1874" - %"$consume_1880" = sub i64 %"$gasrem_1876", 1 - store i64 %"$consume_1880", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @"$stringlit_1881", i32 0, i32 0), i32 36 }, %String* %m4, align 8, !dbg !201 - %"$gasrem_1882" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1883" = icmp ugt i64 1, %"$gasrem_1882" - br i1 %"$gascmp_1883", label %"$out_of_gas_1884", label %"$have_gas_1885" +"$have_gas_1856": ; preds = %"$out_of_gas_1855", %"$have_gas_1851" + %"$consume_1857" = sub i64 %"$gasrem_1853", 1 + store i64 %"$consume_1857", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @"$stringlit_1858", i32 0, i32 0), i32 36 }, %String* %m4, align 8, !dbg !199 + %"$gasrem_1859" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1860" = icmp ugt i64 1, %"$gasrem_1859" + br i1 %"$gascmp_1860", label %"$out_of_gas_1861", label %"$have_gas_1862" -"$out_of_gas_1884": ; preds = %"$have_gas_1879" +"$out_of_gas_1861": ; preds = %"$have_gas_1856" call void @_out_of_gas() - br label %"$have_gas_1885" + br label %"$have_gas_1862" -"$have_gas_1885": ; preds = %"$out_of_gas_1884", %"$have_gas_1879" - %"$consume_1886" = sub i64 %"$gasrem_1882", 1 - store i64 %"$consume_1886", i64* @_gasrem, align 8 - %"$fail_msg__origin_1887" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1887", align 1 - %"$fail_msg__sender_1888" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1888", align 1 - %"$tname_1889" = load %String, %String* %tname, align 8 - %"$m_1890" = load %String, %String* %m4, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1887", [20 x i8]* %"$fail_msg__sender_1888", %String %"$tname_1889", %String %"$m_1890"), !dbg !204 - br label %"$matchsucc_1862" +"$have_gas_1862": ; preds = %"$out_of_gas_1861", %"$have_gas_1856" + %"$consume_1863" = sub i64 %"$gasrem_1859", 1 + store i64 %"$consume_1863", i64* @_gasrem, align 8 + %"$fail_msg__origin_1864" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1864", align 1 + %"$fail_msg__sender_1865" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1865", align 1 + %"$tname_1866" = load %String, %String* %tname, align 8 + %"$m_1867" = load %String, %String* %m4, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1864", [20 x i8]* %"$fail_msg__sender_1865", %String %"$tname_1866", %String %"$m_1867"), !dbg !202 + br label %"$matchsucc_1839" -"$None_1891": ; preds = %"$have_gas_1860" - %"$$c1_3_1892" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1863" to %"CName_None_Map_(String)_(String)"* - br label %"$matchsucc_1862" +"$None_1868": ; preds = %"$have_gas_1837" + %"$$c1_3_1869" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1840" to %"CName_None_Map_(String)_(String)"* + br label %"$matchsucc_1839" -"$empty_default_1866": ; preds = %"$have_gas_1860" - br label %"$matchsucc_1862" +"$empty_default_1843": ; preds = %"$have_gas_1837" + br label %"$matchsucc_1839" -"$matchsucc_1862": ; preds = %"$None_1891", %"$have_gas_1885", %"$empty_default_1866" - %"$gasrem_1893" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1894" = icmp ugt i64 1, %"$gasrem_1893" - br i1 %"$gascmp_1894", label %"$out_of_gas_1895", label %"$have_gas_1896" +"$matchsucc_1839": ; preds = %"$None_1868", %"$have_gas_1862", %"$empty_default_1843" + %"$gasrem_1870" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1871" = icmp ugt i64 1, %"$gasrem_1870" + br i1 %"$gascmp_1871", label %"$out_of_gas_1872", label %"$have_gas_1873" -"$out_of_gas_1895": ; preds = %"$matchsucc_1862" +"$out_of_gas_1872": ; preds = %"$matchsucc_1839" call void @_out_of_gas() - br label %"$have_gas_1896" + br label %"$have_gas_1873" -"$have_gas_1896": ; preds = %"$out_of_gas_1895", %"$matchsucc_1862" - %"$consume_1897" = sub i64 %"$gasrem_1893", 1 - store i64 %"$consume_1897", i64* @_gasrem, align 8 +"$have_gas_1873": ; preds = %"$out_of_gas_1872", %"$matchsucc_1839" + %"$consume_1874" = sub i64 %"$gasrem_1870", 1 + store i64 %"$consume_1874", i64* @_gasrem, align 8 %"$key1b_4" = alloca %String, align 8 - %"$gasrem_1898" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1899" = icmp ugt i64 1, %"$gasrem_1898" - br i1 %"$gascmp_1899", label %"$out_of_gas_1900", label %"$have_gas_1901" + %"$gasrem_1875" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1876" = icmp ugt i64 1, %"$gasrem_1875" + br i1 %"$gascmp_1876", label %"$out_of_gas_1877", label %"$have_gas_1878" -"$out_of_gas_1900": ; preds = %"$have_gas_1896" +"$out_of_gas_1877": ; preds = %"$have_gas_1873" call void @_out_of_gas() - br label %"$have_gas_1901" + br label %"$have_gas_1878" -"$have_gas_1901": ; preds = %"$out_of_gas_1900", %"$have_gas_1896" - %"$consume_1902" = sub i64 %"$gasrem_1898", 1 - store i64 %"$consume_1902", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1903", i32 0, i32 0), i32 5 }, %String* %"$key1b_4", align 8, !dbg !205 - %"$gasrem_1904" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1905" = icmp ugt i64 1, %"$gasrem_1904" - br i1 %"$gascmp_1905", label %"$out_of_gas_1906", label %"$have_gas_1907" +"$have_gas_1878": ; preds = %"$out_of_gas_1877", %"$have_gas_1873" + %"$consume_1879" = sub i64 %"$gasrem_1875", 1 + store i64 %"$consume_1879", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1880", i32 0, i32 0), i32 5 }, %String* %"$key1b_4", align 8, !dbg !203 + %"$gasrem_1881" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1882" = icmp ugt i64 1, %"$gasrem_1881" + br i1 %"$gascmp_1882", label %"$out_of_gas_1883", label %"$have_gas_1884" -"$out_of_gas_1906": ; preds = %"$have_gas_1901" +"$out_of_gas_1883": ; preds = %"$have_gas_1878" call void @_out_of_gas() - br label %"$have_gas_1907" + br label %"$have_gas_1884" -"$have_gas_1907": ; preds = %"$out_of_gas_1906", %"$have_gas_1901" - %"$consume_1908" = sub i64 %"$gasrem_1904", 1 - store i64 %"$consume_1908", i64* @_gasrem, align 8 +"$have_gas_1884": ; preds = %"$out_of_gas_1883", %"$have_gas_1878" + %"$consume_1885" = sub i64 %"$gasrem_1881", 1 + store i64 %"$consume_1885", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_1909" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1910" = icmp ugt i64 1, %"$gasrem_1909" - br i1 %"$gascmp_1910", label %"$out_of_gas_1911", label %"$have_gas_1912" + %"$gasrem_1886" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1887" = icmp ugt i64 1, %"$gasrem_1886" + br i1 %"$gascmp_1887", label %"$out_of_gas_1888", label %"$have_gas_1889" -"$out_of_gas_1911": ; preds = %"$have_gas_1907" +"$out_of_gas_1888": ; preds = %"$have_gas_1884" call void @_out_of_gas() - br label %"$have_gas_1912" + br label %"$have_gas_1889" -"$have_gas_1912": ; preds = %"$out_of_gas_1911", %"$have_gas_1907" - %"$consume_1913" = sub i64 %"$gasrem_1909", 1 - store i64 %"$consume_1913", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1914", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !206 +"$have_gas_1889": ; preds = %"$out_of_gas_1888", %"$have_gas_1884" + %"$consume_1890" = sub i64 %"$gasrem_1886", 1 + store i64 %"$consume_1890", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1891", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !204 %"$c1_5" = alloca %TName_Option_String*, align 8 - %"$indices_buf_1915_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1915_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1915_salloc_load", i64 32) - %"$indices_buf_1915_salloc" = bitcast i8* %"$indices_buf_1915_salloc_salloc" to [32 x i8]* - %"$indices_buf_1915" = bitcast [32 x i8]* %"$indices_buf_1915_salloc" to i8* - %"$$key1b_4_1916" = load %String, %String* %"$key1b_4", align 8 - %"$indices_gep_1917" = getelementptr i8, i8* %"$indices_buf_1915", i32 0 - %indices_cast5 = bitcast i8* %"$indices_gep_1917" to %String* - store %String %"$$key1b_4_1916", %String* %indices_cast5, align 8 - %"$key2b_1918" = load %String, %String* %key2b, align 8 - %"$indices_gep_1919" = getelementptr i8, i8* %"$indices_buf_1915", i32 16 - %indices_cast6 = bitcast i8* %"$indices_gep_1919" to %String* - store %String %"$key2b_1918", %String* %indices_cast6, align 8 - %"$execptr_load_1921" = load i8*, i8** @_execptr, align 8 - %"$$c1_5_call_1922" = call i8* @_fetch_field(i8* %"$execptr_load_1921", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1920", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1915", i32 1), !dbg !207 - %"$$c1_5_1923" = bitcast i8* %"$$c1_5_call_1922" to %TName_Option_String* - store %TName_Option_String* %"$$c1_5_1923", %TName_Option_String** %"$c1_5", align 8 - %"$$c1_5_1924" = load %TName_Option_String*, %TName_Option_String** %"$c1_5", align 8 - %"$$$c1_5_1924_1925" = bitcast %TName_Option_String* %"$$c1_5_1924" to i8* - %"$_literal_cost_call_1926" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$$c1_5_1924_1925") - %"$gasadd_1927" = add i64 %"$_literal_cost_call_1926", 0 - %"$gasadd_1928" = add i64 %"$gasadd_1927", 2 - %"$gasrem_1929" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1930" = icmp ugt i64 %"$gasadd_1928", %"$gasrem_1929" - br i1 %"$gascmp_1930", label %"$out_of_gas_1931", label %"$have_gas_1932" - -"$out_of_gas_1931": ; preds = %"$have_gas_1912" - call void @_out_of_gas() - br label %"$have_gas_1932" - -"$have_gas_1932": ; preds = %"$out_of_gas_1931", %"$have_gas_1912" - %"$consume_1933" = sub i64 %"$gasrem_1929", %"$gasadd_1928" - store i64 %"$consume_1933", i64* @_gasrem, align 8 - %"$gasrem_1934" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1935" = icmp ugt i64 2, %"$gasrem_1934" - br i1 %"$gascmp_1935", label %"$out_of_gas_1936", label %"$have_gas_1937" - -"$out_of_gas_1936": ; preds = %"$have_gas_1932" - call void @_out_of_gas() - br label %"$have_gas_1937" - -"$have_gas_1937": ; preds = %"$out_of_gas_1936", %"$have_gas_1932" - %"$consume_1938" = sub i64 %"$gasrem_1934", 2 - store i64 %"$consume_1938", i64* @_gasrem, align 8 - %"$$c1_5_1940" = load %TName_Option_String*, %TName_Option_String** %"$c1_5", align 8 - %"$$c1_5_tag_1941" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_5_1940", i32 0, i32 0 - %"$$c1_5_tag_1942" = load i8, i8* %"$$c1_5_tag_1941", align 1 - switch i8 %"$$c1_5_tag_1942", label %"$empty_default_1943" [ - i8 0, label %"$Some_1944" - i8 1, label %"$None_1968" - ], !dbg !208 - -"$Some_1944": ; preds = %"$have_gas_1937" - %"$$c1_5_1945" = bitcast %TName_Option_String* %"$$c1_5_1940" to %CName_Some_String* - %"$$$c1_5_15_gep_1946" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_5_1945", i32 0, i32 1 - %"$$$c1_5_15_load_1947" = load %String, %String* %"$$$c1_5_15_gep_1946", align 8 + %"$indices_buf_1892_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1892_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1892_salloc_load", i64 32) + %"$indices_buf_1892_salloc" = bitcast i8* %"$indices_buf_1892_salloc_salloc" to [32 x i8]* + %"$indices_buf_1892" = bitcast [32 x i8]* %"$indices_buf_1892_salloc" to i8* + %"$$key1b_4_1893" = load %String, %String* %"$key1b_4", align 8 + %"$indices_gep_1894" = getelementptr i8, i8* %"$indices_buf_1892", i32 0 + %indices_cast5 = bitcast i8* %"$indices_gep_1894" to %String* + store %String %"$$key1b_4_1893", %String* %indices_cast5, align 8 + %"$key2b_1895" = load %String, %String* %key2b, align 8 + %"$indices_gep_1896" = getelementptr i8, i8* %"$indices_buf_1892", i32 16 + %indices_cast6 = bitcast i8* %"$indices_gep_1896" to %String* + store %String %"$key2b_1895", %String* %indices_cast6, align 8 + %"$execptr_load_1898" = load i8*, i8** @_execptr, align 8 + %"$$c1_5_call_1899" = call i8* @_fetch_field(i8* %"$execptr_load_1898", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1897", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1892", i32 1), !dbg !205 + %"$$c1_5_1900" = bitcast i8* %"$$c1_5_call_1899" to %TName_Option_String* + store %TName_Option_String* %"$$c1_5_1900", %TName_Option_String** %"$c1_5", align 8 + %"$$c1_5_1901" = load %TName_Option_String*, %TName_Option_String** %"$c1_5", align 8 + %"$$$c1_5_1901_1902" = bitcast %TName_Option_String* %"$$c1_5_1901" to i8* + %"$_literal_cost_call_1903" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$$c1_5_1901_1902") + %"$gasadd_1904" = add i64 %"$_literal_cost_call_1903", 0 + %"$gasadd_1905" = add i64 %"$gasadd_1904", 2 + %"$gasrem_1906" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1907" = icmp ugt i64 %"$gasadd_1905", %"$gasrem_1906" + br i1 %"$gascmp_1907", label %"$out_of_gas_1908", label %"$have_gas_1909" + +"$out_of_gas_1908": ; preds = %"$have_gas_1889" + call void @_out_of_gas() + br label %"$have_gas_1909" + +"$have_gas_1909": ; preds = %"$out_of_gas_1908", %"$have_gas_1889" + %"$consume_1910" = sub i64 %"$gasrem_1906", %"$gasadd_1905" + store i64 %"$consume_1910", i64* @_gasrem, align 8 + %"$gasrem_1911" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1912" = icmp ugt i64 2, %"$gasrem_1911" + br i1 %"$gascmp_1912", label %"$out_of_gas_1913", label %"$have_gas_1914" + +"$out_of_gas_1913": ; preds = %"$have_gas_1909" + call void @_out_of_gas() + br label %"$have_gas_1914" + +"$have_gas_1914": ; preds = %"$out_of_gas_1913", %"$have_gas_1909" + %"$consume_1915" = sub i64 %"$gasrem_1911", 2 + store i64 %"$consume_1915", i64* @_gasrem, align 8 + %"$$c1_5_1917" = load %TName_Option_String*, %TName_Option_String** %"$c1_5", align 8 + %"$$c1_5_tag_1918" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_5_1917", i32 0, i32 0 + %"$$c1_5_tag_1919" = load i8, i8* %"$$c1_5_tag_1918", align 1 + switch i8 %"$$c1_5_tag_1919", label %"$empty_default_1920" [ + i8 0, label %"$Some_1921" + i8 1, label %"$None_1945" + ], !dbg !206 + +"$Some_1921": ; preds = %"$have_gas_1914" + %"$$c1_5_1922" = bitcast %TName_Option_String* %"$$c1_5_1917" to %CName_Some_String* + %"$$$c1_5_15_gep_1923" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_5_1922", i32 0, i32 1 + %"$$$c1_5_15_load_1924" = load %String, %String* %"$$$c1_5_15_gep_1923", align 8 %"$$c1_5_15" = alloca %String, align 8 - store %String %"$$$c1_5_15_load_1947", %String* %"$$c1_5_15", align 8 - %"$gasrem_1948" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1949" = icmp ugt i64 1, %"$gasrem_1948" - br i1 %"$gascmp_1949", label %"$out_of_gas_1950", label %"$have_gas_1951" + store %String %"$$$c1_5_15_load_1924", %String* %"$$c1_5_15", align 8 + %"$gasrem_1925" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1926" = icmp ugt i64 1, %"$gasrem_1925" + br i1 %"$gascmp_1926", label %"$out_of_gas_1927", label %"$have_gas_1928" -"$out_of_gas_1950": ; preds = %"$Some_1944" +"$out_of_gas_1927": ; preds = %"$Some_1921" call void @_out_of_gas() - br label %"$have_gas_1951" + br label %"$have_gas_1928" -"$have_gas_1951": ; preds = %"$out_of_gas_1950", %"$Some_1944" - %"$consume_1952" = sub i64 %"$gasrem_1948", 1 - store i64 %"$consume_1952", i64* @_gasrem, align 8 +"$have_gas_1928": ; preds = %"$out_of_gas_1927", %"$Some_1921" + %"$consume_1929" = sub i64 %"$gasrem_1925", 1 + store i64 %"$consume_1929", i64* @_gasrem, align 8 %m7 = alloca %String, align 8 - %"$gasrem_1953" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1954" = icmp ugt i64 1, %"$gasrem_1953" - br i1 %"$gascmp_1954", label %"$out_of_gas_1955", label %"$have_gas_1956" + %"$gasrem_1930" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1931" = icmp ugt i64 1, %"$gasrem_1930" + br i1 %"$gascmp_1931", label %"$out_of_gas_1932", label %"$have_gas_1933" -"$out_of_gas_1955": ; preds = %"$have_gas_1951" +"$out_of_gas_1932": ; preds = %"$have_gas_1928" call void @_out_of_gas() - br label %"$have_gas_1956" + br label %"$have_gas_1933" -"$have_gas_1956": ; preds = %"$out_of_gas_1955", %"$have_gas_1951" - %"$consume_1957" = sub i64 %"$gasrem_1953", 1 - store i64 %"$consume_1957", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_1958", i32 0, i32 0), i32 42 }, %String* %m7, align 8, !dbg !209 - %"$gasrem_1959" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1960" = icmp ugt i64 1, %"$gasrem_1959" - br i1 %"$gascmp_1960", label %"$out_of_gas_1961", label %"$have_gas_1962" +"$have_gas_1933": ; preds = %"$out_of_gas_1932", %"$have_gas_1928" + %"$consume_1934" = sub i64 %"$gasrem_1930", 1 + store i64 %"$consume_1934", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_1935", i32 0, i32 0), i32 42 }, %String* %m7, align 8, !dbg !207 + %"$gasrem_1936" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1937" = icmp ugt i64 1, %"$gasrem_1936" + br i1 %"$gascmp_1937", label %"$out_of_gas_1938", label %"$have_gas_1939" -"$out_of_gas_1961": ; preds = %"$have_gas_1956" +"$out_of_gas_1938": ; preds = %"$have_gas_1933" call void @_out_of_gas() - br label %"$have_gas_1962" + br label %"$have_gas_1939" -"$have_gas_1962": ; preds = %"$out_of_gas_1961", %"$have_gas_1956" - %"$consume_1963" = sub i64 %"$gasrem_1959", 1 - store i64 %"$consume_1963", i64* @_gasrem, align 8 - %"$fail_msg__origin_1964" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1964", align 1 - %"$fail_msg__sender_1965" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1965", align 1 - %"$tname_1966" = load %String, %String* %tname, align 8 - %"$m_1967" = load %String, %String* %m7, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1964", [20 x i8]* %"$fail_msg__sender_1965", %String %"$tname_1966", %String %"$m_1967"), !dbg !212 - br label %"$matchsucc_1939" +"$have_gas_1939": ; preds = %"$out_of_gas_1938", %"$have_gas_1933" + %"$consume_1940" = sub i64 %"$gasrem_1936", 1 + store i64 %"$consume_1940", i64* @_gasrem, align 8 + %"$fail_msg__origin_1941" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1941", align 1 + %"$fail_msg__sender_1942" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1942", align 1 + %"$tname_1943" = load %String, %String* %tname, align 8 + %"$m_1944" = load %String, %String* %m7, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1941", [20 x i8]* %"$fail_msg__sender_1942", %String %"$tname_1943", %String %"$m_1944"), !dbg !210 + br label %"$matchsucc_1916" -"$None_1968": ; preds = %"$have_gas_1937" - %"$$c1_5_1969" = bitcast %TName_Option_String* %"$$c1_5_1940" to %CName_None_String* - br label %"$matchsucc_1939" +"$None_1945": ; preds = %"$have_gas_1914" + %"$$c1_5_1946" = bitcast %TName_Option_String* %"$$c1_5_1917" to %CName_None_String* + br label %"$matchsucc_1916" -"$empty_default_1943": ; preds = %"$have_gas_1937" - br label %"$matchsucc_1939" +"$empty_default_1920": ; preds = %"$have_gas_1914" + br label %"$matchsucc_1916" -"$matchsucc_1939": ; preds = %"$None_1968", %"$have_gas_1962", %"$empty_default_1943" - %"$gasrem_1970" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1971" = icmp ugt i64 1, %"$gasrem_1970" - br i1 %"$gascmp_1971", label %"$out_of_gas_1972", label %"$have_gas_1973" +"$matchsucc_1916": ; preds = %"$None_1945", %"$have_gas_1939", %"$empty_default_1920" + %"$gasrem_1947" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1948" = icmp ugt i64 1, %"$gasrem_1947" + br i1 %"$gascmp_1948", label %"$out_of_gas_1949", label %"$have_gas_1950" -"$out_of_gas_1972": ; preds = %"$matchsucc_1939" +"$out_of_gas_1949": ; preds = %"$matchsucc_1916" call void @_out_of_gas() - br label %"$have_gas_1973" + br label %"$have_gas_1950" -"$have_gas_1973": ; preds = %"$out_of_gas_1972", %"$matchsucc_1939" - %"$consume_1974" = sub i64 %"$gasrem_1970", 1 - store i64 %"$consume_1974", i64* @_gasrem, align 8 +"$have_gas_1950": ; preds = %"$out_of_gas_1949", %"$matchsucc_1916" + %"$consume_1951" = sub i64 %"$gasrem_1947", 1 + store i64 %"$consume_1951", i64* @_gasrem, align 8 %"$key1b_6" = alloca %String, align 8 - %"$gasrem_1975" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1976" = icmp ugt i64 1, %"$gasrem_1975" - br i1 %"$gascmp_1976", label %"$out_of_gas_1977", label %"$have_gas_1978" + %"$gasrem_1952" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1953" = icmp ugt i64 1, %"$gasrem_1952" + br i1 %"$gascmp_1953", label %"$out_of_gas_1954", label %"$have_gas_1955" -"$out_of_gas_1977": ; preds = %"$have_gas_1973" +"$out_of_gas_1954": ; preds = %"$have_gas_1950" call void @_out_of_gas() - br label %"$have_gas_1978" + br label %"$have_gas_1955" -"$have_gas_1978": ; preds = %"$out_of_gas_1977", %"$have_gas_1973" - %"$consume_1979" = sub i64 %"$gasrem_1975", 1 - store i64 %"$consume_1979", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1980", i32 0, i32 0), i32 5 }, %String* %"$key1b_6", align 8, !dbg !213 - %"$gasrem_1981" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1982" = icmp ugt i64 1, %"$gasrem_1981" - br i1 %"$gascmp_1982", label %"$out_of_gas_1983", label %"$have_gas_1984" +"$have_gas_1955": ; preds = %"$out_of_gas_1954", %"$have_gas_1950" + %"$consume_1956" = sub i64 %"$gasrem_1952", 1 + store i64 %"$consume_1956", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1957", i32 0, i32 0), i32 5 }, %String* %"$key1b_6", align 8, !dbg !211 + %"$gasrem_1958" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1959" = icmp ugt i64 1, %"$gasrem_1958" + br i1 %"$gascmp_1959", label %"$out_of_gas_1960", label %"$have_gas_1961" -"$out_of_gas_1983": ; preds = %"$have_gas_1978" +"$out_of_gas_1960": ; preds = %"$have_gas_1955" call void @_out_of_gas() - br label %"$have_gas_1984" + br label %"$have_gas_1961" -"$have_gas_1984": ; preds = %"$out_of_gas_1983", %"$have_gas_1978" - %"$consume_1985" = sub i64 %"$gasrem_1981", 1 - store i64 %"$consume_1985", i64* @_gasrem, align 8 +"$have_gas_1961": ; preds = %"$out_of_gas_1960", %"$have_gas_1955" + %"$consume_1962" = sub i64 %"$gasrem_1958", 1 + store i64 %"$consume_1962", i64* @_gasrem, align 8 %key2d = alloca %String, align 8 - %"$gasrem_1986" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1987" = icmp ugt i64 1, %"$gasrem_1986" - br i1 %"$gascmp_1987", label %"$out_of_gas_1988", label %"$have_gas_1989" + %"$gasrem_1963" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1964" = icmp ugt i64 1, %"$gasrem_1963" + br i1 %"$gascmp_1964", label %"$out_of_gas_1965", label %"$have_gas_1966" -"$out_of_gas_1988": ; preds = %"$have_gas_1984" +"$out_of_gas_1965": ; preds = %"$have_gas_1961" call void @_out_of_gas() - br label %"$have_gas_1989" + br label %"$have_gas_1966" -"$have_gas_1989": ; preds = %"$out_of_gas_1988", %"$have_gas_1984" - %"$consume_1990" = sub i64 %"$gasrem_1986", 1 - store i64 %"$consume_1990", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1991", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !214 +"$have_gas_1966": ; preds = %"$out_of_gas_1965", %"$have_gas_1961" + %"$consume_1967" = sub i64 %"$gasrem_1963", 1 + store i64 %"$consume_1967", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1968", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !212 %"$c1_7" = alloca %TName_Option_String*, align 8 - %"$indices_buf_1992_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1992_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1992_salloc_load", i64 32) - %"$indices_buf_1992_salloc" = bitcast i8* %"$indices_buf_1992_salloc_salloc" to [32 x i8]* - %"$indices_buf_1992" = bitcast [32 x i8]* %"$indices_buf_1992_salloc" to i8* - %"$$key1b_6_1993" = load %String, %String* %"$key1b_6", align 8 - %"$indices_gep_1994" = getelementptr i8, i8* %"$indices_buf_1992", i32 0 - %indices_cast8 = bitcast i8* %"$indices_gep_1994" to %String* - store %String %"$$key1b_6_1993", %String* %indices_cast8, align 8 - %"$key2d_1995" = load %String, %String* %key2d, align 8 - %"$indices_gep_1996" = getelementptr i8, i8* %"$indices_buf_1992", i32 16 - %indices_cast9 = bitcast i8* %"$indices_gep_1996" to %String* - store %String %"$key2d_1995", %String* %indices_cast9, align 8 - %"$execptr_load_1998" = load i8*, i8** @_execptr, align 8 - %"$$c1_7_call_1999" = call i8* @_fetch_field(i8* %"$execptr_load_1998", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1997", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1992", i32 1), !dbg !215 - %"$$c1_7_2000" = bitcast i8* %"$$c1_7_call_1999" to %TName_Option_String* - store %TName_Option_String* %"$$c1_7_2000", %TName_Option_String** %"$c1_7", align 8 - %"$$c1_7_2001" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 - %"$$$c1_7_2001_2002" = bitcast %TName_Option_String* %"$$c1_7_2001" to i8* - %"$_literal_cost_call_2003" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$$c1_7_2001_2002") - %"$gasadd_2004" = add i64 %"$_literal_cost_call_2003", 0 - %"$gasadd_2005" = add i64 %"$gasadd_2004", 2 - %"$gasrem_2006" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2007" = icmp ugt i64 %"$gasadd_2005", %"$gasrem_2006" - br i1 %"$gascmp_2007", label %"$out_of_gas_2008", label %"$have_gas_2009" - -"$out_of_gas_2008": ; preds = %"$have_gas_1989" - call void @_out_of_gas() - br label %"$have_gas_2009" - -"$have_gas_2009": ; preds = %"$out_of_gas_2008", %"$have_gas_1989" - %"$consume_2010" = sub i64 %"$gasrem_2006", %"$gasadd_2005" - store i64 %"$consume_2010", i64* @_gasrem, align 8 - %"$gasrem_2011" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2012" = icmp ugt i64 2, %"$gasrem_2011" - br i1 %"$gascmp_2012", label %"$out_of_gas_2013", label %"$have_gas_2014" - -"$out_of_gas_2013": ; preds = %"$have_gas_2009" - call void @_out_of_gas() - br label %"$have_gas_2014" - -"$have_gas_2014": ; preds = %"$out_of_gas_2013", %"$have_gas_2009" - %"$consume_2015" = sub i64 %"$gasrem_2011", 2 - store i64 %"$consume_2015", i64* @_gasrem, align 8 - %"$$c1_7_2017" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 - %"$$c1_7_tag_2018" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_7_2017", i32 0, i32 0 - %"$$c1_7_tag_2019" = load i8, i8* %"$$c1_7_tag_2018", align 1 - switch i8 %"$$c1_7_tag_2019", label %"$empty_default_2020" [ - i8 0, label %"$Some_2021" - i8 1, label %"$None_2045" - ], !dbg !216 - -"$Some_2021": ; preds = %"$have_gas_2014" - %"$$c1_7_2022" = bitcast %TName_Option_String* %"$$c1_7_2017" to %CName_Some_String* - %"$$$c1_7_14_gep_2023" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_7_2022", i32 0, i32 1 - %"$$$c1_7_14_load_2024" = load %String, %String* %"$$$c1_7_14_gep_2023", align 8 + %"$indices_buf_1969_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1969_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1969_salloc_load", i64 32) + %"$indices_buf_1969_salloc" = bitcast i8* %"$indices_buf_1969_salloc_salloc" to [32 x i8]* + %"$indices_buf_1969" = bitcast [32 x i8]* %"$indices_buf_1969_salloc" to i8* + %"$$key1b_6_1970" = load %String, %String* %"$key1b_6", align 8 + %"$indices_gep_1971" = getelementptr i8, i8* %"$indices_buf_1969", i32 0 + %indices_cast8 = bitcast i8* %"$indices_gep_1971" to %String* + store %String %"$$key1b_6_1970", %String* %indices_cast8, align 8 + %"$key2d_1972" = load %String, %String* %key2d, align 8 + %"$indices_gep_1973" = getelementptr i8, i8* %"$indices_buf_1969", i32 16 + %indices_cast9 = bitcast i8* %"$indices_gep_1973" to %String* + store %String %"$key2d_1972", %String* %indices_cast9, align 8 + %"$execptr_load_1975" = load i8*, i8** @_execptr, align 8 + %"$$c1_7_call_1976" = call i8* @_fetch_field(i8* %"$execptr_load_1975", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1974", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1969", i32 1), !dbg !213 + %"$$c1_7_1977" = bitcast i8* %"$$c1_7_call_1976" to %TName_Option_String* + store %TName_Option_String* %"$$c1_7_1977", %TName_Option_String** %"$c1_7", align 8 + %"$$c1_7_1978" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 + %"$$$c1_7_1978_1979" = bitcast %TName_Option_String* %"$$c1_7_1978" to i8* + %"$_literal_cost_call_1980" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$$c1_7_1978_1979") + %"$gasadd_1981" = add i64 %"$_literal_cost_call_1980", 0 + %"$gasadd_1982" = add i64 %"$gasadd_1981", 2 + %"$gasrem_1983" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1984" = icmp ugt i64 %"$gasadd_1982", %"$gasrem_1983" + br i1 %"$gascmp_1984", label %"$out_of_gas_1985", label %"$have_gas_1986" + +"$out_of_gas_1985": ; preds = %"$have_gas_1966" + call void @_out_of_gas() + br label %"$have_gas_1986" + +"$have_gas_1986": ; preds = %"$out_of_gas_1985", %"$have_gas_1966" + %"$consume_1987" = sub i64 %"$gasrem_1983", %"$gasadd_1982" + store i64 %"$consume_1987", i64* @_gasrem, align 8 + %"$gasrem_1988" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1989" = icmp ugt i64 2, %"$gasrem_1988" + br i1 %"$gascmp_1989", label %"$out_of_gas_1990", label %"$have_gas_1991" + +"$out_of_gas_1990": ; preds = %"$have_gas_1986" + call void @_out_of_gas() + br label %"$have_gas_1991" + +"$have_gas_1991": ; preds = %"$out_of_gas_1990", %"$have_gas_1986" + %"$consume_1992" = sub i64 %"$gasrem_1988", 2 + store i64 %"$consume_1992", i64* @_gasrem, align 8 + %"$$c1_7_1994" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 + %"$$c1_7_tag_1995" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_7_1994", i32 0, i32 0 + %"$$c1_7_tag_1996" = load i8, i8* %"$$c1_7_tag_1995", align 1 + switch i8 %"$$c1_7_tag_1996", label %"$empty_default_1997" [ + i8 0, label %"$Some_1998" + i8 1, label %"$None_2022" + ], !dbg !214 + +"$Some_1998": ; preds = %"$have_gas_1991" + %"$$c1_7_1999" = bitcast %TName_Option_String* %"$$c1_7_1994" to %CName_Some_String* + %"$$$c1_7_14_gep_2000" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_7_1999", i32 0, i32 1 + %"$$$c1_7_14_load_2001" = load %String, %String* %"$$$c1_7_14_gep_2000", align 8 %"$$c1_7_14" = alloca %String, align 8 - store %String %"$$$c1_7_14_load_2024", %String* %"$$c1_7_14", align 8 - %"$gasrem_2025" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2026" = icmp ugt i64 1, %"$gasrem_2025" - br i1 %"$gascmp_2026", label %"$out_of_gas_2027", label %"$have_gas_2028" + store %String %"$$$c1_7_14_load_2001", %String* %"$$c1_7_14", align 8 + %"$gasrem_2002" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2003" = icmp ugt i64 1, %"$gasrem_2002" + br i1 %"$gascmp_2003", label %"$out_of_gas_2004", label %"$have_gas_2005" -"$out_of_gas_2027": ; preds = %"$Some_2021" +"$out_of_gas_2004": ; preds = %"$Some_1998" call void @_out_of_gas() - br label %"$have_gas_2028" + br label %"$have_gas_2005" -"$have_gas_2028": ; preds = %"$out_of_gas_2027", %"$Some_2021" - %"$consume_2029" = sub i64 %"$gasrem_2025", 1 - store i64 %"$consume_2029", i64* @_gasrem, align 8 +"$have_gas_2005": ; preds = %"$out_of_gas_2004", %"$Some_1998" + %"$consume_2006" = sub i64 %"$gasrem_2002", 1 + store i64 %"$consume_2006", i64* @_gasrem, align 8 %m10 = alloca %String, align 8 - %"$gasrem_2030" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2031" = icmp ugt i64 1, %"$gasrem_2030" - br i1 %"$gascmp_2031", label %"$out_of_gas_2032", label %"$have_gas_2033" + %"$gasrem_2007" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2008" = icmp ugt i64 1, %"$gasrem_2007" + br i1 %"$gascmp_2008", label %"$out_of_gas_2009", label %"$have_gas_2010" -"$out_of_gas_2032": ; preds = %"$have_gas_2028" +"$out_of_gas_2009": ; preds = %"$have_gas_2005" call void @_out_of_gas() - br label %"$have_gas_2033" + br label %"$have_gas_2010" -"$have_gas_2033": ; preds = %"$out_of_gas_2032", %"$have_gas_2028" - %"$consume_2034" = sub i64 %"$gasrem_2030", 1 - store i64 %"$consume_2034", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_2035", i32 0, i32 0), i32 42 }, %String* %m10, align 8, !dbg !217 - %"$gasrem_2036" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2037" = icmp ugt i64 1, %"$gasrem_2036" - br i1 %"$gascmp_2037", label %"$out_of_gas_2038", label %"$have_gas_2039" +"$have_gas_2010": ; preds = %"$out_of_gas_2009", %"$have_gas_2005" + %"$consume_2011" = sub i64 %"$gasrem_2007", 1 + store i64 %"$consume_2011", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_2012", i32 0, i32 0), i32 42 }, %String* %m10, align 8, !dbg !215 + %"$gasrem_2013" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2014" = icmp ugt i64 1, %"$gasrem_2013" + br i1 %"$gascmp_2014", label %"$out_of_gas_2015", label %"$have_gas_2016" -"$out_of_gas_2038": ; preds = %"$have_gas_2033" +"$out_of_gas_2015": ; preds = %"$have_gas_2010" call void @_out_of_gas() - br label %"$have_gas_2039" + br label %"$have_gas_2016" -"$have_gas_2039": ; preds = %"$out_of_gas_2038", %"$have_gas_2033" - %"$consume_2040" = sub i64 %"$gasrem_2036", 1 - store i64 %"$consume_2040", i64* @_gasrem, align 8 - %"$fail_msg__origin_2041" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2041", align 1 - %"$fail_msg__sender_2042" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2042", align 1 - %"$tname_2043" = load %String, %String* %tname, align 8 - %"$m_2044" = load %String, %String* %m10, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2041", [20 x i8]* %"$fail_msg__sender_2042", %String %"$tname_2043", %String %"$m_2044"), !dbg !220 - br label %"$matchsucc_2016" +"$have_gas_2016": ; preds = %"$out_of_gas_2015", %"$have_gas_2010" + %"$consume_2017" = sub i64 %"$gasrem_2013", 1 + store i64 %"$consume_2017", i64* @_gasrem, align 8 + %"$fail_msg__origin_2018" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2018", align 1 + %"$fail_msg__sender_2019" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2019", align 1 + %"$tname_2020" = load %String, %String* %tname, align 8 + %"$m_2021" = load %String, %String* %m10, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2018", [20 x i8]* %"$fail_msg__sender_2019", %String %"$tname_2020", %String %"$m_2021"), !dbg !218 + br label %"$matchsucc_1993" -"$None_2045": ; preds = %"$have_gas_2014" - %"$$c1_7_2046" = bitcast %TName_Option_String* %"$$c1_7_2017" to %CName_None_String* - br label %"$matchsucc_2016" +"$None_2022": ; preds = %"$have_gas_1991" + %"$$c1_7_2023" = bitcast %TName_Option_String* %"$$c1_7_1994" to %CName_None_String* + br label %"$matchsucc_1993" -"$empty_default_2020": ; preds = %"$have_gas_2014" - br label %"$matchsucc_2016" +"$empty_default_1997": ; preds = %"$have_gas_1991" + br label %"$matchsucc_1993" -"$matchsucc_2016": ; preds = %"$None_2045", %"$have_gas_2039", %"$empty_default_2020" - %"$gasrem_2047" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2048" = icmp ugt i64 1, %"$gasrem_2047" - br i1 %"$gascmp_2048", label %"$out_of_gas_2049", label %"$have_gas_2050" +"$matchsucc_1993": ; preds = %"$None_2022", %"$have_gas_2016", %"$empty_default_1997" + %"$gasrem_2024" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2025" = icmp ugt i64 1, %"$gasrem_2024" + br i1 %"$gascmp_2025", label %"$out_of_gas_2026", label %"$have_gas_2027" -"$out_of_gas_2049": ; preds = %"$matchsucc_2016" +"$out_of_gas_2026": ; preds = %"$matchsucc_1993" call void @_out_of_gas() - br label %"$have_gas_2050" + br label %"$have_gas_2027" -"$have_gas_2050": ; preds = %"$out_of_gas_2049", %"$matchsucc_2016" - %"$consume_2051" = sub i64 %"$gasrem_2047", 1 - store i64 %"$consume_2051", i64* @_gasrem, align 8 +"$have_gas_2027": ; preds = %"$out_of_gas_2026", %"$matchsucc_1993" + %"$consume_2028" = sub i64 %"$gasrem_2024", 1 + store i64 %"$consume_2028", i64* @_gasrem, align 8 %"$key1b_8" = alloca %String, align 8 - %"$gasrem_2052" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2053" = icmp ugt i64 1, %"$gasrem_2052" - br i1 %"$gascmp_2053", label %"$out_of_gas_2054", label %"$have_gas_2055" + %"$gasrem_2029" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2030" = icmp ugt i64 1, %"$gasrem_2029" + br i1 %"$gascmp_2030", label %"$out_of_gas_2031", label %"$have_gas_2032" -"$out_of_gas_2054": ; preds = %"$have_gas_2050" +"$out_of_gas_2031": ; preds = %"$have_gas_2027" call void @_out_of_gas() - br label %"$have_gas_2055" + br label %"$have_gas_2032" -"$have_gas_2055": ; preds = %"$out_of_gas_2054", %"$have_gas_2050" - %"$consume_2056" = sub i64 %"$gasrem_2052", 1 - store i64 %"$consume_2056", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2057", i32 0, i32 0), i32 5 }, %String* %"$key1b_8", align 8, !dbg !221 - %"$gasrem_2058" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2059" = icmp ugt i64 1, %"$gasrem_2058" - br i1 %"$gascmp_2059", label %"$out_of_gas_2060", label %"$have_gas_2061" +"$have_gas_2032": ; preds = %"$out_of_gas_2031", %"$have_gas_2027" + %"$consume_2033" = sub i64 %"$gasrem_2029", 1 + store i64 %"$consume_2033", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2034", i32 0, i32 0), i32 5 }, %String* %"$key1b_8", align 8, !dbg !219 + %"$gasrem_2035" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2036" = icmp ugt i64 1, %"$gasrem_2035" + br i1 %"$gascmp_2036", label %"$out_of_gas_2037", label %"$have_gas_2038" -"$out_of_gas_2060": ; preds = %"$have_gas_2055" +"$out_of_gas_2037": ; preds = %"$have_gas_2032" call void @_out_of_gas() - br label %"$have_gas_2061" + br label %"$have_gas_2038" -"$have_gas_2061": ; preds = %"$out_of_gas_2060", %"$have_gas_2055" - %"$consume_2062" = sub i64 %"$gasrem_2058", 1 - store i64 %"$consume_2062", i64* @_gasrem, align 8 +"$have_gas_2038": ; preds = %"$out_of_gas_2037", %"$have_gas_2032" + %"$consume_2039" = sub i64 %"$gasrem_2035", 1 + store i64 %"$consume_2039", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_2063" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2064" = icmp ugt i64 1, %"$gasrem_2063" - br i1 %"$gascmp_2064", label %"$out_of_gas_2065", label %"$have_gas_2066" + %"$gasrem_2040" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2041" = icmp ugt i64 1, %"$gasrem_2040" + br i1 %"$gascmp_2041", label %"$out_of_gas_2042", label %"$have_gas_2043" -"$out_of_gas_2065": ; preds = %"$have_gas_2061" +"$out_of_gas_2042": ; preds = %"$have_gas_2038" call void @_out_of_gas() - br label %"$have_gas_2066" + br label %"$have_gas_2043" -"$have_gas_2066": ; preds = %"$out_of_gas_2065", %"$have_gas_2061" - %"$consume_2067" = sub i64 %"$gasrem_2063", 1 - store i64 %"$consume_2067", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2068", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !222 - %"$gasrem_2069" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2070" = icmp ugt i64 1, %"$gasrem_2069" - br i1 %"$gascmp_2070", label %"$out_of_gas_2071", label %"$have_gas_2072" +"$have_gas_2043": ; preds = %"$out_of_gas_2042", %"$have_gas_2038" + %"$consume_2044" = sub i64 %"$gasrem_2040", 1 + store i64 %"$consume_2044", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2045", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !220 + %"$gasrem_2046" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2047" = icmp ugt i64 1, %"$gasrem_2046" + br i1 %"$gascmp_2047", label %"$out_of_gas_2048", label %"$have_gas_2049" -"$out_of_gas_2071": ; preds = %"$have_gas_2066" +"$out_of_gas_2048": ; preds = %"$have_gas_2043" call void @_out_of_gas() - br label %"$have_gas_2072" + br label %"$have_gas_2049" -"$have_gas_2072": ; preds = %"$out_of_gas_2071", %"$have_gas_2066" - %"$consume_2073" = sub i64 %"$gasrem_2069", 1 - store i64 %"$consume_2073", i64* @_gasrem, align 8 +"$have_gas_2049": ; preds = %"$out_of_gas_2048", %"$have_gas_2043" + %"$consume_2050" = sub i64 %"$gasrem_2046", 1 + store i64 %"$consume_2050", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_2074" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2075" = icmp ugt i64 1, %"$gasrem_2074" - br i1 %"$gascmp_2075", label %"$out_of_gas_2076", label %"$have_gas_2077" - -"$out_of_gas_2076": ; preds = %"$have_gas_2072" - call void @_out_of_gas() - br label %"$have_gas_2077" - -"$have_gas_2077": ; preds = %"$out_of_gas_2076", %"$have_gas_2072" - %"$consume_2078" = sub i64 %"$gasrem_2074", 1 - store i64 %"$consume_2078", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2079", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !223 - %"$_literal_cost_s_2080" = alloca %String, align 8 - %"$s_2081" = load %String, %String* %s, align 8 - store %String %"$s_2081", %String* %"$_literal_cost_s_2080", align 8 - %"$$_literal_cost_s_2080_2082" = bitcast %String* %"$_literal_cost_s_2080" to i8* - %"$_literal_cost_call_2083" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_2080_2082") - %"$gasadd_2084" = add i64 %"$_literal_cost_call_2083", 2 - %"$gasrem_2085" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2086" = icmp ugt i64 %"$gasadd_2084", %"$gasrem_2085" - br i1 %"$gascmp_2086", label %"$out_of_gas_2087", label %"$have_gas_2088" - -"$out_of_gas_2087": ; preds = %"$have_gas_2077" - call void @_out_of_gas() - br label %"$have_gas_2088" - -"$have_gas_2088": ; preds = %"$out_of_gas_2087", %"$have_gas_2077" - %"$consume_2089" = sub i64 %"$gasrem_2085", %"$gasadd_2084" - store i64 %"$consume_2089", i64* @_gasrem, align 8 - %"$indices_buf_2090_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2090_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2090_salloc_load", i64 32) - %"$indices_buf_2090_salloc" = bitcast i8* %"$indices_buf_2090_salloc_salloc" to [32 x i8]* - %"$indices_buf_2090" = bitcast [32 x i8]* %"$indices_buf_2090_salloc" to i8* - %"$$key1b_8_2091" = load %String, %String* %"$key1b_8", align 8 - %"$indices_gep_2092" = getelementptr i8, i8* %"$indices_buf_2090", i32 0 - %indices_cast11 = bitcast i8* %"$indices_gep_2092" to %String* - store %String %"$$key1b_8_2091", %String* %indices_cast11, align 8 - %"$key2c_2093" = load %String, %String* %key2c, align 8 - %"$indices_gep_2094" = getelementptr i8, i8* %"$indices_buf_2090", i32 16 - %indices_cast12 = bitcast i8* %"$indices_gep_2094" to %String* - store %String %"$key2c_2093", %String* %indices_cast12, align 8 - %"$execptr_load_2095" = load i8*, i8** @_execptr, align 8 - %"$s_2097" = load %String, %String* %s, align 8 - %"$update_value_2098" = alloca %String, align 8 - store %String %"$s_2097", %String* %"$update_value_2098", align 8 - %"$update_value_2099" = bitcast %String* %"$update_value_2098" to i8* - call void @_update_field(i8* %"$execptr_load_2095", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2096", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_2090", i8* %"$update_value_2099"), !dbg !224 + %"$gasrem_2051" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2052" = icmp ugt i64 1, %"$gasrem_2051" + br i1 %"$gascmp_2052", label %"$out_of_gas_2053", label %"$have_gas_2054" + +"$out_of_gas_2053": ; preds = %"$have_gas_2049" + call void @_out_of_gas() + br label %"$have_gas_2054" + +"$have_gas_2054": ; preds = %"$out_of_gas_2053", %"$have_gas_2049" + %"$consume_2055" = sub i64 %"$gasrem_2051", 1 + store i64 %"$consume_2055", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2056", i32 0, i32 0), i32 3 }, %String* %s, align 8, !dbg !221 + %"$_literal_cost_s_2057" = alloca %String, align 8 + %"$s_2058" = load %String, %String* %s, align 8 + store %String %"$s_2058", %String* %"$_literal_cost_s_2057", align 8 + %"$$_literal_cost_s_2057_2059" = bitcast %String* %"$_literal_cost_s_2057" to i8* + %"$_literal_cost_call_2060" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_2057_2059") + %"$gasadd_2061" = add i64 %"$_literal_cost_call_2060", 2 + %"$gasrem_2062" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2063" = icmp ugt i64 %"$gasadd_2061", %"$gasrem_2062" + br i1 %"$gascmp_2063", label %"$out_of_gas_2064", label %"$have_gas_2065" + +"$out_of_gas_2064": ; preds = %"$have_gas_2054" + call void @_out_of_gas() + br label %"$have_gas_2065" + +"$have_gas_2065": ; preds = %"$out_of_gas_2064", %"$have_gas_2054" + %"$consume_2066" = sub i64 %"$gasrem_2062", %"$gasadd_2061" + store i64 %"$consume_2066", i64* @_gasrem, align 8 + %"$indices_buf_2067_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2067_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2067_salloc_load", i64 32) + %"$indices_buf_2067_salloc" = bitcast i8* %"$indices_buf_2067_salloc_salloc" to [32 x i8]* + %"$indices_buf_2067" = bitcast [32 x i8]* %"$indices_buf_2067_salloc" to i8* + %"$$key1b_8_2068" = load %String, %String* %"$key1b_8", align 8 + %"$indices_gep_2069" = getelementptr i8, i8* %"$indices_buf_2067", i32 0 + %indices_cast11 = bitcast i8* %"$indices_gep_2069" to %String* + store %String %"$$key1b_8_2068", %String* %indices_cast11, align 8 + %"$key2c_2070" = load %String, %String* %key2c, align 8 + %"$indices_gep_2071" = getelementptr i8, i8* %"$indices_buf_2067", i32 16 + %indices_cast12 = bitcast i8* %"$indices_gep_2071" to %String* + store %String %"$key2c_2070", %String* %indices_cast12, align 8 + %"$execptr_load_2072" = load i8*, i8** @_execptr, align 8 + %"$s_2074" = load %String, %String* %s, align 8 + %"$update_value_2075" = alloca %String, align 8 + store %String %"$s_2074", %String* %"$update_value_2075", align 8 + %"$update_value_2076" = bitcast %String* %"$update_value_2075" to i8* + call void @_update_field(i8* %"$execptr_load_2072", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2073", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_2067", i8* %"$update_value_2076"), !dbg !222 ret void } -define void @t7(i8* %0) !dbg !225 { +define void @t7(i8* %0) !dbg !223 { entry: - %"$_amount_2101" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2102" = bitcast i8* %"$_amount_2101" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2102", align 8 - %"$_origin_2103" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2104" = bitcast i8* %"$_origin_2103" to [20 x i8]* - %"$_sender_2105" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2106" = bitcast i8* %"$_sender_2105" to [20 x i8]* - call void @"$t7_1669"(%Uint128 %_amount, [20 x i8]* %"$_origin_2104", [20 x i8]* %"$_sender_2106"), !dbg !226 + %"$_amount_2078" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2079" = bitcast i8* %"$_amount_2078" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2079", align 8 + %"$_origin_2080" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2081" = bitcast i8* %"$_origin_2080" to [20 x i8]* + %"$_sender_2082" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2083" = bitcast i8* %"$_sender_2082" to [20 x i8]* + call void @"$t7_1646"(%Uint128 %_amount, [20 x i8]* %"$_origin_2081", [20 x i8]* %"$_sender_2083"), !dbg !224 ret void } -define internal void @"$t8_2107"(%Uint128 %_amount, [20 x i8]* %"$_origin_2108", [20 x i8]* %"$_sender_2109") !dbg !227 { +define internal void @"$t8_2084"(%Uint128 %_amount, [20 x i8]* %"$_origin_2085", [20 x i8]* %"$_sender_2086") !dbg !225 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2108", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2109", align 1 - %"$gasrem_2110" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2111" = icmp ugt i64 1, %"$gasrem_2110" - br i1 %"$gascmp_2111", label %"$out_of_gas_2112", label %"$have_gas_2113" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2085", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2086", align 1 + %"$gasrem_2087" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2088" = icmp ugt i64 1, %"$gasrem_2087" + br i1 %"$gascmp_2088", label %"$out_of_gas_2089", label %"$have_gas_2090" -"$out_of_gas_2112": ; preds = %entry +"$out_of_gas_2089": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2113" + br label %"$have_gas_2090" -"$have_gas_2113": ; preds = %"$out_of_gas_2112", %entry - %"$consume_2114" = sub i64 %"$gasrem_2110", 1 - store i64 %"$consume_2114", i64* @_gasrem, align 8 +"$have_gas_2090": ; preds = %"$out_of_gas_2089", %entry + %"$consume_2091" = sub i64 %"$gasrem_2087", 1 + store i64 %"$consume_2091", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_2115" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2116" = icmp ugt i64 1, %"$gasrem_2115" - br i1 %"$gascmp_2116", label %"$out_of_gas_2117", label %"$have_gas_2118" + %"$gasrem_2092" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2093" = icmp ugt i64 1, %"$gasrem_2092" + br i1 %"$gascmp_2093", label %"$out_of_gas_2094", label %"$have_gas_2095" -"$out_of_gas_2117": ; preds = %"$have_gas_2113" +"$out_of_gas_2094": ; preds = %"$have_gas_2090" call void @_out_of_gas() - br label %"$have_gas_2118" + br label %"$have_gas_2095" -"$have_gas_2118": ; preds = %"$out_of_gas_2117", %"$have_gas_2113" - %"$consume_2119" = sub i64 %"$gasrem_2115", 1 - store i64 %"$consume_2119", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_2120", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !228 - %"$gasrem_2121" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2122" = icmp ugt i64 1, %"$gasrem_2121" - br i1 %"$gascmp_2122", label %"$out_of_gas_2123", label %"$have_gas_2124" +"$have_gas_2095": ; preds = %"$out_of_gas_2094", %"$have_gas_2090" + %"$consume_2096" = sub i64 %"$gasrem_2092", 1 + store i64 %"$consume_2096", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_2097", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !226 + %"$gasrem_2098" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2099" = icmp ugt i64 1, %"$gasrem_2098" + br i1 %"$gascmp_2099", label %"$out_of_gas_2100", label %"$have_gas_2101" -"$out_of_gas_2123": ; preds = %"$have_gas_2118" +"$out_of_gas_2100": ; preds = %"$have_gas_2095" call void @_out_of_gas() - br label %"$have_gas_2124" + br label %"$have_gas_2101" -"$have_gas_2124": ; preds = %"$out_of_gas_2123", %"$have_gas_2118" - %"$consume_2125" = sub i64 %"$gasrem_2121", 1 - store i64 %"$consume_2125", i64* @_gasrem, align 8 +"$have_gas_2101": ; preds = %"$out_of_gas_2100", %"$have_gas_2095" + %"$consume_2102" = sub i64 %"$gasrem_2098", 1 + store i64 %"$consume_2102", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_2126" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2127" = icmp ugt i64 1, %"$gasrem_2126" - br i1 %"$gascmp_2127", label %"$out_of_gas_2128", label %"$have_gas_2129" + %"$gasrem_2103" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2104" = icmp ugt i64 1, %"$gasrem_2103" + br i1 %"$gascmp_2104", label %"$out_of_gas_2105", label %"$have_gas_2106" -"$out_of_gas_2128": ; preds = %"$have_gas_2124" +"$out_of_gas_2105": ; preds = %"$have_gas_2101" call void @_out_of_gas() - br label %"$have_gas_2129" + br label %"$have_gas_2106" -"$have_gas_2129": ; preds = %"$out_of_gas_2128", %"$have_gas_2124" - %"$consume_2130" = sub i64 %"$gasrem_2126", 1 - store i64 %"$consume_2130", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2131", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !229 - %"$gasrem_2132" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2133" = icmp ugt i64 1, %"$gasrem_2132" - br i1 %"$gascmp_2133", label %"$out_of_gas_2134", label %"$have_gas_2135" +"$have_gas_2106": ; preds = %"$out_of_gas_2105", %"$have_gas_2101" + %"$consume_2107" = sub i64 %"$gasrem_2103", 1 + store i64 %"$consume_2107", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2108", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !227 + %"$gasrem_2109" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2110" = icmp ugt i64 1, %"$gasrem_2109" + br i1 %"$gascmp_2110", label %"$out_of_gas_2111", label %"$have_gas_2112" -"$out_of_gas_2134": ; preds = %"$have_gas_2129" +"$out_of_gas_2111": ; preds = %"$have_gas_2106" call void @_out_of_gas() - br label %"$have_gas_2135" + br label %"$have_gas_2112" -"$have_gas_2135": ; preds = %"$out_of_gas_2134", %"$have_gas_2129" - %"$consume_2136" = sub i64 %"$gasrem_2132", 1 - store i64 %"$consume_2136", i64* @_gasrem, align 8 +"$have_gas_2112": ; preds = %"$out_of_gas_2111", %"$have_gas_2106" + %"$consume_2113" = sub i64 %"$gasrem_2109", 1 + store i64 %"$consume_2113", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_2137" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2138" = icmp ugt i64 1, %"$gasrem_2137" - br i1 %"$gascmp_2138", label %"$out_of_gas_2139", label %"$have_gas_2140" + %"$gasrem_2114" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2115" = icmp ugt i64 1, %"$gasrem_2114" + br i1 %"$gascmp_2115", label %"$out_of_gas_2116", label %"$have_gas_2117" -"$out_of_gas_2139": ; preds = %"$have_gas_2135" +"$out_of_gas_2116": ; preds = %"$have_gas_2112" call void @_out_of_gas() - br label %"$have_gas_2140" + br label %"$have_gas_2117" -"$have_gas_2140": ; preds = %"$out_of_gas_2139", %"$have_gas_2135" - %"$consume_2141" = sub i64 %"$gasrem_2137", 1 - store i64 %"$consume_2141", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2142", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !230 +"$have_gas_2117": ; preds = %"$out_of_gas_2116", %"$have_gas_2112" + %"$consume_2118" = sub i64 %"$gasrem_2114", 1 + store i64 %"$consume_2118", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2119", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !228 %c1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_2143_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2143_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2143_salloc_load", i64 32) - %"$indices_buf_2143_salloc" = bitcast i8* %"$indices_buf_2143_salloc_salloc" to [32 x i8]* - %"$indices_buf_2143" = bitcast [32 x i8]* %"$indices_buf_2143_salloc" to i8* - %"$key1a_2144" = load %String, %String* %key1a, align 8 - %"$indices_gep_2145" = getelementptr i8, i8* %"$indices_buf_2143", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_2145" to %String* - store %String %"$key1a_2144", %String* %indices_cast, align 8 - %"$key2a_2146" = load %String, %String* %key2a, align 8 - %"$indices_gep_2147" = getelementptr i8, i8* %"$indices_buf_2143", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_2147" to %String* - store %String %"$key2a_2146", %String* %indices_cast1, align 8 - %"$execptr_load_2149" = load i8*, i8** @_execptr, align 8 - %"$c1_call_2150" = call i8* @_fetch_field(i8* %"$execptr_load_2149", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2148", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_2143", i32 1), !dbg !231 - %"$c1_2151" = bitcast i8* %"$c1_call_2150" to %TName_Option_String* - store %TName_Option_String* %"$c1_2151", %TName_Option_String** %c1, align 8 - %"$c1_2152" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$$c1_2152_2153" = bitcast %TName_Option_String* %"$c1_2152" to i8* - %"$_literal_cost_call_2154" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$c1_2152_2153") - %"$gasadd_2155" = add i64 %"$_literal_cost_call_2154", 0 - %"$gasadd_2156" = add i64 %"$gasadd_2155", 2 - %"$gasrem_2157" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2158" = icmp ugt i64 %"$gasadd_2156", %"$gasrem_2157" - br i1 %"$gascmp_2158", label %"$out_of_gas_2159", label %"$have_gas_2160" - -"$out_of_gas_2159": ; preds = %"$have_gas_2140" - call void @_out_of_gas() - br label %"$have_gas_2160" - -"$have_gas_2160": ; preds = %"$out_of_gas_2159", %"$have_gas_2140" - %"$consume_2161" = sub i64 %"$gasrem_2157", %"$gasadd_2156" - store i64 %"$consume_2161", i64* @_gasrem, align 8 - %"$gasrem_2162" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2163" = icmp ugt i64 2, %"$gasrem_2162" - br i1 %"$gascmp_2163", label %"$out_of_gas_2164", label %"$have_gas_2165" - -"$out_of_gas_2164": ; preds = %"$have_gas_2160" - call void @_out_of_gas() - br label %"$have_gas_2165" - -"$have_gas_2165": ; preds = %"$out_of_gas_2164", %"$have_gas_2160" - %"$consume_2166" = sub i64 %"$gasrem_2162", 2 - store i64 %"$consume_2166", i64* @_gasrem, align 8 - %"$c1_2168" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_2169" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2168", i32 0, i32 0 - %"$c1_tag_2170" = load i8, i8* %"$c1_tag_2169", align 1 - switch i8 %"$c1_tag_2170", label %"$empty_default_2171" [ - i8 0, label %"$Some_2172" - i8 1, label %"$None_2245" - ], !dbg !232 - -"$Some_2172": ; preds = %"$have_gas_2165" - %"$c1_2173" = bitcast %TName_Option_String* %"$c1_2168" to %CName_Some_String* - %"$c_gep_2174" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2173", i32 0, i32 1 - %"$c_load_2175" = load %String, %String* %"$c_gep_2174", align 8 + %"$indices_buf_2120_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2120_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2120_salloc_load", i64 32) + %"$indices_buf_2120_salloc" = bitcast i8* %"$indices_buf_2120_salloc_salloc" to [32 x i8]* + %"$indices_buf_2120" = bitcast [32 x i8]* %"$indices_buf_2120_salloc" to i8* + %"$key1a_2121" = load %String, %String* %key1a, align 8 + %"$indices_gep_2122" = getelementptr i8, i8* %"$indices_buf_2120", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2122" to %String* + store %String %"$key1a_2121", %String* %indices_cast, align 8 + %"$key2a_2123" = load %String, %String* %key2a, align 8 + %"$indices_gep_2124" = getelementptr i8, i8* %"$indices_buf_2120", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_2124" to %String* + store %String %"$key2a_2123", %String* %indices_cast1, align 8 + %"$execptr_load_2126" = load i8*, i8** @_execptr, align 8 + %"$c1_call_2127" = call i8* @_fetch_field(i8* %"$execptr_load_2126", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2125", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_2120", i32 1), !dbg !229 + %"$c1_2128" = bitcast i8* %"$c1_call_2127" to %TName_Option_String* + store %TName_Option_String* %"$c1_2128", %TName_Option_String** %c1, align 8 + %"$c1_2129" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$$c1_2129_2130" = bitcast %TName_Option_String* %"$c1_2129" to i8* + %"$_literal_cost_call_2131" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$c1_2129_2130") + %"$gasadd_2132" = add i64 %"$_literal_cost_call_2131", 0 + %"$gasadd_2133" = add i64 %"$gasadd_2132", 2 + %"$gasrem_2134" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2135" = icmp ugt i64 %"$gasadd_2133", %"$gasrem_2134" + br i1 %"$gascmp_2135", label %"$out_of_gas_2136", label %"$have_gas_2137" + +"$out_of_gas_2136": ; preds = %"$have_gas_2117" + call void @_out_of_gas() + br label %"$have_gas_2137" + +"$have_gas_2137": ; preds = %"$out_of_gas_2136", %"$have_gas_2117" + %"$consume_2138" = sub i64 %"$gasrem_2134", %"$gasadd_2133" + store i64 %"$consume_2138", i64* @_gasrem, align 8 + %"$gasrem_2139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2140" = icmp ugt i64 2, %"$gasrem_2139" + br i1 %"$gascmp_2140", label %"$out_of_gas_2141", label %"$have_gas_2142" + +"$out_of_gas_2141": ; preds = %"$have_gas_2137" + call void @_out_of_gas() + br label %"$have_gas_2142" + +"$have_gas_2142": ; preds = %"$out_of_gas_2141", %"$have_gas_2137" + %"$consume_2143" = sub i64 %"$gasrem_2139", 2 + store i64 %"$consume_2143", i64* @_gasrem, align 8 + %"$c1_2145" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_2146" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2145", i32 0, i32 0 + %"$c1_tag_2147" = load i8, i8* %"$c1_tag_2146", align 1 + switch i8 %"$c1_tag_2147", label %"$empty_default_2148" [ + i8 0, label %"$Some_2149" + i8 1, label %"$None_2222" + ], !dbg !230 + +"$Some_2149": ; preds = %"$have_gas_2142" + %"$c1_2150" = bitcast %TName_Option_String* %"$c1_2145" to %CName_Some_String* + %"$c_gep_2151" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2150", i32 0, i32 1 + %"$c_load_2152" = load %String, %String* %"$c_gep_2151", align 8 %c = alloca %String, align 8 - store %String %"$c_load_2175", %String* %c, align 8 - %"$gasrem_2176" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2177" = icmp ugt i64 1, %"$gasrem_2176" - br i1 %"$gascmp_2177", label %"$out_of_gas_2178", label %"$have_gas_2179" + store %String %"$c_load_2152", %String* %c, align 8 + %"$gasrem_2153" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2154" = icmp ugt i64 1, %"$gasrem_2153" + br i1 %"$gascmp_2154", label %"$out_of_gas_2155", label %"$have_gas_2156" -"$out_of_gas_2178": ; preds = %"$Some_2172" +"$out_of_gas_2155": ; preds = %"$Some_2149" call void @_out_of_gas() - br label %"$have_gas_2179" + br label %"$have_gas_2156" -"$have_gas_2179": ; preds = %"$out_of_gas_2178", %"$Some_2172" - %"$consume_2180" = sub i64 %"$gasrem_2176", 1 - store i64 %"$consume_2180", i64* @_gasrem, align 8 +"$have_gas_2156": ; preds = %"$out_of_gas_2155", %"$Some_2149" + %"$consume_2157" = sub i64 %"$gasrem_2153", 1 + store i64 %"$consume_2157", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_2181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2182" = icmp ugt i64 1, %"$gasrem_2181" - br i1 %"$gascmp_2182", label %"$out_of_gas_2183", label %"$have_gas_2184" + %"$gasrem_2158" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2159" = icmp ugt i64 1, %"$gasrem_2158" + br i1 %"$gascmp_2159", label %"$out_of_gas_2160", label %"$have_gas_2161" -"$out_of_gas_2183": ; preds = %"$have_gas_2179" +"$out_of_gas_2160": ; preds = %"$have_gas_2156" call void @_out_of_gas() - br label %"$have_gas_2184" + br label %"$have_gas_2161" -"$have_gas_2184": ; preds = %"$out_of_gas_2183", %"$have_gas_2179" - %"$consume_2185" = sub i64 %"$gasrem_2181", 1 - store i64 %"$consume_2185", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2186", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !233 - %"$gasrem_2187" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2188" = icmp ugt i64 1, %"$gasrem_2187" - br i1 %"$gascmp_2188", label %"$out_of_gas_2189", label %"$have_gas_2190" +"$have_gas_2161": ; preds = %"$out_of_gas_2160", %"$have_gas_2156" + %"$consume_2162" = sub i64 %"$gasrem_2158", 1 + store i64 %"$consume_2162", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2163", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !231 + %"$gasrem_2164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2165" = icmp ugt i64 1, %"$gasrem_2164" + br i1 %"$gascmp_2165", label %"$out_of_gas_2166", label %"$have_gas_2167" -"$out_of_gas_2189": ; preds = %"$have_gas_2184" +"$out_of_gas_2166": ; preds = %"$have_gas_2161" call void @_out_of_gas() - br label %"$have_gas_2190" + br label %"$have_gas_2167" -"$have_gas_2190": ; preds = %"$out_of_gas_2189", %"$have_gas_2184" - %"$consume_2191" = sub i64 %"$gasrem_2187", 1 - store i64 %"$consume_2191", i64* @_gasrem, align 8 +"$have_gas_2167": ; preds = %"$out_of_gas_2166", %"$have_gas_2161" + %"$consume_2168" = sub i64 %"$gasrem_2164", 1 + store i64 %"$consume_2168", i64* @_gasrem, align 8 %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_2192" = alloca %String, align 8 - %"$c_2193" = load %String, %String* %c, align 8 - store %String %"$c_2193", %String* %"$_literal_cost_c_2192", align 8 - %"$$_literal_cost_c_2192_2194" = bitcast %String* %"$_literal_cost_c_2192" to i8* - %"$_literal_cost_call_2195" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_2192_2194") - %"$_literal_cost_v_2196" = alloca %String, align 8 - %"$v_2197" = load %String, %String* %v, align 8 - store %String %"$v_2197", %String* %"$_literal_cost_v_2196", align 8 - %"$$_literal_cost_v_2196_2198" = bitcast %String* %"$_literal_cost_v_2196" to i8* - %"$_literal_cost_call_2199" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_2196_2198") - %"$gasmin_2200" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2195", i64 %"$_literal_cost_call_2199") - %"$gasrem_2201" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2202" = icmp ugt i64 %"$gasmin_2200", %"$gasrem_2201" - br i1 %"$gascmp_2202", label %"$out_of_gas_2203", label %"$have_gas_2204" - -"$out_of_gas_2203": ; preds = %"$have_gas_2190" - call void @_out_of_gas() - br label %"$have_gas_2204" - -"$have_gas_2204": ; preds = %"$out_of_gas_2203", %"$have_gas_2190" - %"$consume_2205" = sub i64 %"$gasrem_2201", %"$gasmin_2200" - store i64 %"$consume_2205", i64* @_gasrem, align 8 - %"$execptr_load_2206" = load i8*, i8** @_execptr, align 8 - %"$c_2207" = load %String, %String* %c, align 8 - %"$v_2208" = load %String, %String* %v, align 8 - %"$eq_call_2209" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2206", %String %"$c_2207", %String %"$v_2208"), !dbg !236 - store %TName_Bool* %"$eq_call_2209", %TName_Bool** %eq, align 8, !dbg !236 - %"$gasrem_2211" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2212" = icmp ugt i64 2, %"$gasrem_2211" - br i1 %"$gascmp_2212", label %"$out_of_gas_2213", label %"$have_gas_2214" - -"$out_of_gas_2213": ; preds = %"$have_gas_2204" - call void @_out_of_gas() - br label %"$have_gas_2214" - -"$have_gas_2214": ; preds = %"$out_of_gas_2213", %"$have_gas_2204" - %"$consume_2215" = sub i64 %"$gasrem_2211", 2 - store i64 %"$consume_2215", i64* @_gasrem, align 8 - %"$eq_2217" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_2218" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2217", i32 0, i32 0 - %"$eq_tag_2219" = load i8, i8* %"$eq_tag_2218", align 1 - switch i8 %"$eq_tag_2219", label %"$empty_default_2220" [ - i8 0, label %"$True_2221" - i8 1, label %"$False_2223" - ], !dbg !237 - -"$True_2221": ; preds = %"$have_gas_2214" - %"$eq_2222" = bitcast %TName_Bool* %"$eq_2217" to %CName_True* - br label %"$matchsucc_2216" - -"$False_2223": ; preds = %"$have_gas_2214" - %"$eq_2224" = bitcast %TName_Bool* %"$eq_2217" to %CName_False* - %"$gasrem_2225" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2226" = icmp ugt i64 1, %"$gasrem_2225" - br i1 %"$gascmp_2226", label %"$out_of_gas_2227", label %"$have_gas_2228" - -"$out_of_gas_2227": ; preds = %"$False_2223" - call void @_out_of_gas() - br label %"$have_gas_2228" - -"$have_gas_2228": ; preds = %"$out_of_gas_2227", %"$False_2223" - %"$consume_2229" = sub i64 %"$gasrem_2225", 1 - store i64 %"$consume_2229", i64* @_gasrem, align 8 + %"$_literal_cost_c_2169" = alloca %String, align 8 + %"$c_2170" = load %String, %String* %c, align 8 + store %String %"$c_2170", %String* %"$_literal_cost_c_2169", align 8 + %"$$_literal_cost_c_2169_2171" = bitcast %String* %"$_literal_cost_c_2169" to i8* + %"$_literal_cost_call_2172" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_2169_2171") + %"$_literal_cost_v_2173" = alloca %String, align 8 + %"$v_2174" = load %String, %String* %v, align 8 + store %String %"$v_2174", %String* %"$_literal_cost_v_2173", align 8 + %"$$_literal_cost_v_2173_2175" = bitcast %String* %"$_literal_cost_v_2173" to i8* + %"$_literal_cost_call_2176" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_2173_2175") + %"$gasmin_2177" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2172", i64 %"$_literal_cost_call_2176") + %"$gasrem_2178" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2179" = icmp ugt i64 %"$gasmin_2177", %"$gasrem_2178" + br i1 %"$gascmp_2179", label %"$out_of_gas_2180", label %"$have_gas_2181" + +"$out_of_gas_2180": ; preds = %"$have_gas_2167" + call void @_out_of_gas() + br label %"$have_gas_2181" + +"$have_gas_2181": ; preds = %"$out_of_gas_2180", %"$have_gas_2167" + %"$consume_2182" = sub i64 %"$gasrem_2178", %"$gasmin_2177" + store i64 %"$consume_2182", i64* @_gasrem, align 8 + %"$execptr_load_2183" = load i8*, i8** @_execptr, align 8 + %"$c_2184" = load %String, %String* %c, align 8 + %"$v_2185" = load %String, %String* %v, align 8 + %"$eq_call_2186" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2183", %String %"$c_2184", %String %"$v_2185"), !dbg !234 + store %TName_Bool* %"$eq_call_2186", %TName_Bool** %eq, align 8, !dbg !234 + %"$gasrem_2188" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2189" = icmp ugt i64 2, %"$gasrem_2188" + br i1 %"$gascmp_2189", label %"$out_of_gas_2190", label %"$have_gas_2191" + +"$out_of_gas_2190": ; preds = %"$have_gas_2181" + call void @_out_of_gas() + br label %"$have_gas_2191" + +"$have_gas_2191": ; preds = %"$out_of_gas_2190", %"$have_gas_2181" + %"$consume_2192" = sub i64 %"$gasrem_2188", 2 + store i64 %"$consume_2192", i64* @_gasrem, align 8 + %"$eq_2194" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_2195" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2194", i32 0, i32 0 + %"$eq_tag_2196" = load i8, i8* %"$eq_tag_2195", align 1 + switch i8 %"$eq_tag_2196", label %"$empty_default_2197" [ + i8 0, label %"$True_2198" + i8 1, label %"$False_2200" + ], !dbg !235 + +"$True_2198": ; preds = %"$have_gas_2191" + %"$eq_2199" = bitcast %TName_Bool* %"$eq_2194" to %CName_True* + br label %"$matchsucc_2193" + +"$False_2200": ; preds = %"$have_gas_2191" + %"$eq_2201" = bitcast %TName_Bool* %"$eq_2194" to %CName_False* + %"$gasrem_2202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2203" = icmp ugt i64 1, %"$gasrem_2202" + br i1 %"$gascmp_2203", label %"$out_of_gas_2204", label %"$have_gas_2205" + +"$out_of_gas_2204": ; preds = %"$False_2200" + call void @_out_of_gas() + br label %"$have_gas_2205" + +"$have_gas_2205": ; preds = %"$out_of_gas_2204", %"$False_2200" + %"$consume_2206" = sub i64 %"$gasrem_2202", 1 + store i64 %"$consume_2206", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_2230" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2231" = icmp ugt i64 1, %"$gasrem_2230" - br i1 %"$gascmp_2231", label %"$out_of_gas_2232", label %"$have_gas_2233" + %"$gasrem_2207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2208" = icmp ugt i64 1, %"$gasrem_2207" + br i1 %"$gascmp_2208", label %"$out_of_gas_2209", label %"$have_gas_2210" -"$out_of_gas_2232": ; preds = %"$have_gas_2228" +"$out_of_gas_2209": ; preds = %"$have_gas_2205" call void @_out_of_gas() - br label %"$have_gas_2233" + br label %"$have_gas_2210" -"$have_gas_2233": ; preds = %"$out_of_gas_2232", %"$have_gas_2228" - %"$consume_2234" = sub i64 %"$gasrem_2230", 1 - store i64 %"$consume_2234", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_2235", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !238 - %"$gasrem_2236" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2237" = icmp ugt i64 1, %"$gasrem_2236" - br i1 %"$gascmp_2237", label %"$out_of_gas_2238", label %"$have_gas_2239" +"$have_gas_2210": ; preds = %"$out_of_gas_2209", %"$have_gas_2205" + %"$consume_2211" = sub i64 %"$gasrem_2207", 1 + store i64 %"$consume_2211", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_2212", i32 0, i32 0), i32 31 }, %String* %m, align 8, !dbg !236 + %"$gasrem_2213" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2214" = icmp ugt i64 1, %"$gasrem_2213" + br i1 %"$gascmp_2214", label %"$out_of_gas_2215", label %"$have_gas_2216" -"$out_of_gas_2238": ; preds = %"$have_gas_2233" +"$out_of_gas_2215": ; preds = %"$have_gas_2210" call void @_out_of_gas() - br label %"$have_gas_2239" + br label %"$have_gas_2216" -"$have_gas_2239": ; preds = %"$out_of_gas_2238", %"$have_gas_2233" - %"$consume_2240" = sub i64 %"$gasrem_2236", 1 - store i64 %"$consume_2240", i64* @_gasrem, align 8 - %"$fail_msg__origin_2241" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2241", align 1 - %"$fail_msg__sender_2242" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2242", align 1 - %"$tname_2243" = load %String, %String* %tname, align 8 - %"$m_2244" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2241", [20 x i8]* %"$fail_msg__sender_2242", %String %"$tname_2243", %String %"$m_2244"), !dbg !241 - br label %"$matchsucc_2216" +"$have_gas_2216": ; preds = %"$out_of_gas_2215", %"$have_gas_2210" + %"$consume_2217" = sub i64 %"$gasrem_2213", 1 + store i64 %"$consume_2217", i64* @_gasrem, align 8 + %"$fail_msg__origin_2218" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2218", align 1 + %"$fail_msg__sender_2219" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2219", align 1 + %"$tname_2220" = load %String, %String* %tname, align 8 + %"$m_2221" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2218", [20 x i8]* %"$fail_msg__sender_2219", %String %"$tname_2220", %String %"$m_2221"), !dbg !239 + br label %"$matchsucc_2193" -"$empty_default_2220": ; preds = %"$have_gas_2214" - br label %"$matchsucc_2216" +"$empty_default_2197": ; preds = %"$have_gas_2191" + br label %"$matchsucc_2193" -"$matchsucc_2216": ; preds = %"$have_gas_2239", %"$True_2221", %"$empty_default_2220" - br label %"$matchsucc_2167" +"$matchsucc_2193": ; preds = %"$have_gas_2216", %"$True_2198", %"$empty_default_2197" + br label %"$matchsucc_2144" -"$None_2245": ; preds = %"$have_gas_2165" - %"$c1_2246" = bitcast %TName_Option_String* %"$c1_2168" to %CName_None_String* - %"$gasrem_2247" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2248" = icmp ugt i64 1, %"$gasrem_2247" - br i1 %"$gascmp_2248", label %"$out_of_gas_2249", label %"$have_gas_2250" +"$None_2222": ; preds = %"$have_gas_2142" + %"$c1_2223" = bitcast %TName_Option_String* %"$c1_2145" to %CName_None_String* + %"$gasrem_2224" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2225" = icmp ugt i64 1, %"$gasrem_2224" + br i1 %"$gascmp_2225", label %"$out_of_gas_2226", label %"$have_gas_2227" -"$out_of_gas_2249": ; preds = %"$None_2245" +"$out_of_gas_2226": ; preds = %"$None_2222" call void @_out_of_gas() - br label %"$have_gas_2250" + br label %"$have_gas_2227" -"$have_gas_2250": ; preds = %"$out_of_gas_2249", %"$None_2245" - %"$consume_2251" = sub i64 %"$gasrem_2247", 1 - store i64 %"$consume_2251", i64* @_gasrem, align 8 +"$have_gas_2227": ; preds = %"$out_of_gas_2226", %"$None_2222" + %"$consume_2228" = sub i64 %"$gasrem_2224", 1 + store i64 %"$consume_2228", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_2252" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2253" = icmp ugt i64 1, %"$gasrem_2252" - br i1 %"$gascmp_2253", label %"$out_of_gas_2254", label %"$have_gas_2255" + %"$gasrem_2229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2230" = icmp ugt i64 1, %"$gasrem_2229" + br i1 %"$gascmp_2230", label %"$out_of_gas_2231", label %"$have_gas_2232" -"$out_of_gas_2254": ; preds = %"$have_gas_2250" +"$out_of_gas_2231": ; preds = %"$have_gas_2227" call void @_out_of_gas() - br label %"$have_gas_2255" + br label %"$have_gas_2232" -"$have_gas_2255": ; preds = %"$out_of_gas_2254", %"$have_gas_2250" - %"$consume_2256" = sub i64 %"$gasrem_2252", 1 - store i64 %"$consume_2256", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2257", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !242 - %"$gasrem_2258" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2259" = icmp ugt i64 1, %"$gasrem_2258" - br i1 %"$gascmp_2259", label %"$out_of_gas_2260", label %"$have_gas_2261" +"$have_gas_2232": ; preds = %"$out_of_gas_2231", %"$have_gas_2227" + %"$consume_2233" = sub i64 %"$gasrem_2229", 1 + store i64 %"$consume_2233", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2234", i32 0, i32 0), i32 21 }, %String* %m2, align 8, !dbg !240 + %"$gasrem_2235" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2236" = icmp ugt i64 1, %"$gasrem_2235" + br i1 %"$gascmp_2236", label %"$out_of_gas_2237", label %"$have_gas_2238" -"$out_of_gas_2260": ; preds = %"$have_gas_2255" +"$out_of_gas_2237": ; preds = %"$have_gas_2232" call void @_out_of_gas() - br label %"$have_gas_2261" + br label %"$have_gas_2238" -"$have_gas_2261": ; preds = %"$out_of_gas_2260", %"$have_gas_2255" - %"$consume_2262" = sub i64 %"$gasrem_2258", 1 - store i64 %"$consume_2262", i64* @_gasrem, align 8 - %"$fail_msg__origin_2263" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2263", align 1 - %"$fail_msg__sender_2264" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2264", align 1 - %"$tname_2265" = load %String, %String* %tname, align 8 - %"$m_2266" = load %String, %String* %m2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2263", [20 x i8]* %"$fail_msg__sender_2264", %String %"$tname_2265", %String %"$m_2266"), !dbg !244 - br label %"$matchsucc_2167" +"$have_gas_2238": ; preds = %"$out_of_gas_2237", %"$have_gas_2232" + %"$consume_2239" = sub i64 %"$gasrem_2235", 1 + store i64 %"$consume_2239", i64* @_gasrem, align 8 + %"$fail_msg__origin_2240" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2240", align 1 + %"$fail_msg__sender_2241" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2241", align 1 + %"$tname_2242" = load %String, %String* %tname, align 8 + %"$m_2243" = load %String, %String* %m2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2240", [20 x i8]* %"$fail_msg__sender_2241", %String %"$tname_2242", %String %"$m_2243"), !dbg !242 + br label %"$matchsucc_2144" -"$empty_default_2171": ; preds = %"$have_gas_2165" - br label %"$matchsucc_2167" +"$empty_default_2148": ; preds = %"$have_gas_2142" + br label %"$matchsucc_2144" -"$matchsucc_2167": ; preds = %"$have_gas_2261", %"$matchsucc_2216", %"$empty_default_2171" - %"$gasrem_2267" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2268" = icmp ugt i64 1, %"$gasrem_2267" - br i1 %"$gascmp_2268", label %"$out_of_gas_2269", label %"$have_gas_2270" +"$matchsucc_2144": ; preds = %"$have_gas_2238", %"$matchsucc_2193", %"$empty_default_2148" + %"$gasrem_2244" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2245" = icmp ugt i64 1, %"$gasrem_2244" + br i1 %"$gascmp_2245", label %"$out_of_gas_2246", label %"$have_gas_2247" -"$out_of_gas_2269": ; preds = %"$matchsucc_2167" +"$out_of_gas_2246": ; preds = %"$matchsucc_2144" call void @_out_of_gas() - br label %"$have_gas_2270" + br label %"$have_gas_2247" -"$have_gas_2270": ; preds = %"$out_of_gas_2269", %"$matchsucc_2167" - %"$consume_2271" = sub i64 %"$gasrem_2267", 1 - store i64 %"$consume_2271", i64* @_gasrem, align 8 +"$have_gas_2247": ; preds = %"$out_of_gas_2246", %"$matchsucc_2144" + %"$consume_2248" = sub i64 %"$gasrem_2244", 1 + store i64 %"$consume_2248", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_2272" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2273" = icmp ugt i64 1, %"$gasrem_2272" - br i1 %"$gascmp_2273", label %"$out_of_gas_2274", label %"$have_gas_2275" + %"$gasrem_2249" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2250" = icmp ugt i64 1, %"$gasrem_2249" + br i1 %"$gascmp_2250", label %"$out_of_gas_2251", label %"$have_gas_2252" -"$out_of_gas_2274": ; preds = %"$have_gas_2270" +"$out_of_gas_2251": ; preds = %"$have_gas_2247" call void @_out_of_gas() - br label %"$have_gas_2275" + br label %"$have_gas_2252" -"$have_gas_2275": ; preds = %"$out_of_gas_2274", %"$have_gas_2270" - %"$consume_2276" = sub i64 %"$gasrem_2272", 1 - store i64 %"$consume_2276", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2277", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !245 - %"$gasrem_2278" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2279" = icmp ugt i64 1, %"$gasrem_2278" - br i1 %"$gascmp_2279", label %"$out_of_gas_2280", label %"$have_gas_2281" +"$have_gas_2252": ; preds = %"$out_of_gas_2251", %"$have_gas_2247" + %"$consume_2253" = sub i64 %"$gasrem_2249", 1 + store i64 %"$consume_2253", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2254", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !243 + %"$gasrem_2255" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2256" = icmp ugt i64 1, %"$gasrem_2255" + br i1 %"$gascmp_2256", label %"$out_of_gas_2257", label %"$have_gas_2258" -"$out_of_gas_2280": ; preds = %"$have_gas_2275" +"$out_of_gas_2257": ; preds = %"$have_gas_2252" call void @_out_of_gas() - br label %"$have_gas_2281" + br label %"$have_gas_2258" -"$have_gas_2281": ; preds = %"$out_of_gas_2280", %"$have_gas_2275" - %"$consume_2282" = sub i64 %"$gasrem_2278", 1 - store i64 %"$consume_2282", i64* @_gasrem, align 8 +"$have_gas_2258": ; preds = %"$out_of_gas_2257", %"$have_gas_2252" + %"$consume_2259" = sub i64 %"$gasrem_2255", 1 + store i64 %"$consume_2259", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_2283" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2284" = icmp ugt i64 1, %"$gasrem_2283" - br i1 %"$gascmp_2284", label %"$out_of_gas_2285", label %"$have_gas_2286" + %"$gasrem_2260" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2261" = icmp ugt i64 1, %"$gasrem_2260" + br i1 %"$gascmp_2261", label %"$out_of_gas_2262", label %"$have_gas_2263" -"$out_of_gas_2285": ; preds = %"$have_gas_2281" +"$out_of_gas_2262": ; preds = %"$have_gas_2258" call void @_out_of_gas() - br label %"$have_gas_2286" + br label %"$have_gas_2263" -"$have_gas_2286": ; preds = %"$out_of_gas_2285", %"$have_gas_2281" - %"$consume_2287" = sub i64 %"$gasrem_2283", 1 - store i64 %"$consume_2287", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2288", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !246 +"$have_gas_2263": ; preds = %"$out_of_gas_2262", %"$have_gas_2258" + %"$consume_2264" = sub i64 %"$gasrem_2260", 1 + store i64 %"$consume_2264", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2265", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !244 %"$c1_9" = alloca %TName_Option_String*, align 8 - %"$indices_buf_2289_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2289_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2289_salloc_load", i64 32) - %"$indices_buf_2289_salloc" = bitcast i8* %"$indices_buf_2289_salloc_salloc" to [32 x i8]* - %"$indices_buf_2289" = bitcast [32 x i8]* %"$indices_buf_2289_salloc" to i8* - %"$key1b_2290" = load %String, %String* %key1b, align 8 - %"$indices_gep_2291" = getelementptr i8, i8* %"$indices_buf_2289", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_2291" to %String* - store %String %"$key1b_2290", %String* %indices_cast3, align 8 - %"$key2c_2292" = load %String, %String* %key2c, align 8 - %"$indices_gep_2293" = getelementptr i8, i8* %"$indices_buf_2289", i32 16 - %indices_cast4 = bitcast i8* %"$indices_gep_2293" to %String* - store %String %"$key2c_2292", %String* %indices_cast4, align 8 - %"$execptr_load_2295" = load i8*, i8** @_execptr, align 8 - %"$$c1_9_call_2296" = call i8* @_fetch_field(i8* %"$execptr_load_2295", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2294", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_2289", i32 1), !dbg !247 - %"$$c1_9_2297" = bitcast i8* %"$$c1_9_call_2296" to %TName_Option_String* - store %TName_Option_String* %"$$c1_9_2297", %TName_Option_String** %"$c1_9", align 8 - %"$$c1_9_2298" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 - %"$$$c1_9_2298_2299" = bitcast %TName_Option_String* %"$$c1_9_2298" to i8* - %"$_literal_cost_call_2300" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$$c1_9_2298_2299") - %"$gasadd_2301" = add i64 %"$_literal_cost_call_2300", 0 - %"$gasadd_2302" = add i64 %"$gasadd_2301", 2 - %"$gasrem_2303" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2304" = icmp ugt i64 %"$gasadd_2302", %"$gasrem_2303" - br i1 %"$gascmp_2304", label %"$out_of_gas_2305", label %"$have_gas_2306" - -"$out_of_gas_2305": ; preds = %"$have_gas_2286" - call void @_out_of_gas() - br label %"$have_gas_2306" - -"$have_gas_2306": ; preds = %"$out_of_gas_2305", %"$have_gas_2286" - %"$consume_2307" = sub i64 %"$gasrem_2303", %"$gasadd_2302" - store i64 %"$consume_2307", i64* @_gasrem, align 8 - %"$gasrem_2308" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2309" = icmp ugt i64 2, %"$gasrem_2308" - br i1 %"$gascmp_2309", label %"$out_of_gas_2310", label %"$have_gas_2311" - -"$out_of_gas_2310": ; preds = %"$have_gas_2306" - call void @_out_of_gas() - br label %"$have_gas_2311" - -"$have_gas_2311": ; preds = %"$out_of_gas_2310", %"$have_gas_2306" - %"$consume_2312" = sub i64 %"$gasrem_2308", 2 - store i64 %"$consume_2312", i64* @_gasrem, align 8 - %"$$c1_9_2314" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 - %"$$c1_9_tag_2315" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_9_2314", i32 0, i32 0 - %"$$c1_9_tag_2316" = load i8, i8* %"$$c1_9_tag_2315", align 1 - switch i8 %"$$c1_9_tag_2316", label %"$empty_default_2317" [ - i8 0, label %"$Some_2318" - i8 1, label %"$None_2391" - ], !dbg !248 - -"$Some_2318": ; preds = %"$have_gas_2311" - %"$$c1_9_2319" = bitcast %TName_Option_String* %"$$c1_9_2314" to %CName_Some_String* - %"$c_gep_2320" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_9_2319", i32 0, i32 1 - %"$c_load_2321" = load %String, %String* %"$c_gep_2320", align 8 + %"$indices_buf_2266_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2266_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2266_salloc_load", i64 32) + %"$indices_buf_2266_salloc" = bitcast i8* %"$indices_buf_2266_salloc_salloc" to [32 x i8]* + %"$indices_buf_2266" = bitcast [32 x i8]* %"$indices_buf_2266_salloc" to i8* + %"$key1b_2267" = load %String, %String* %key1b, align 8 + %"$indices_gep_2268" = getelementptr i8, i8* %"$indices_buf_2266", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_2268" to %String* + store %String %"$key1b_2267", %String* %indices_cast3, align 8 + %"$key2c_2269" = load %String, %String* %key2c, align 8 + %"$indices_gep_2270" = getelementptr i8, i8* %"$indices_buf_2266", i32 16 + %indices_cast4 = bitcast i8* %"$indices_gep_2270" to %String* + store %String %"$key2c_2269", %String* %indices_cast4, align 8 + %"$execptr_load_2272" = load i8*, i8** @_execptr, align 8 + %"$$c1_9_call_2273" = call i8* @_fetch_field(i8* %"$execptr_load_2272", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2271", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_2266", i32 1), !dbg !245 + %"$$c1_9_2274" = bitcast i8* %"$$c1_9_call_2273" to %TName_Option_String* + store %TName_Option_String* %"$$c1_9_2274", %TName_Option_String** %"$c1_9", align 8 + %"$$c1_9_2275" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 + %"$$$c1_9_2275_2276" = bitcast %TName_Option_String* %"$$c1_9_2275" to i8* + %"$_literal_cost_call_2277" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$$c1_9_2275_2276") + %"$gasadd_2278" = add i64 %"$_literal_cost_call_2277", 0 + %"$gasadd_2279" = add i64 %"$gasadd_2278", 2 + %"$gasrem_2280" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2281" = icmp ugt i64 %"$gasadd_2279", %"$gasrem_2280" + br i1 %"$gascmp_2281", label %"$out_of_gas_2282", label %"$have_gas_2283" + +"$out_of_gas_2282": ; preds = %"$have_gas_2263" + call void @_out_of_gas() + br label %"$have_gas_2283" + +"$have_gas_2283": ; preds = %"$out_of_gas_2282", %"$have_gas_2263" + %"$consume_2284" = sub i64 %"$gasrem_2280", %"$gasadd_2279" + store i64 %"$consume_2284", i64* @_gasrem, align 8 + %"$gasrem_2285" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2286" = icmp ugt i64 2, %"$gasrem_2285" + br i1 %"$gascmp_2286", label %"$out_of_gas_2287", label %"$have_gas_2288" + +"$out_of_gas_2287": ; preds = %"$have_gas_2283" + call void @_out_of_gas() + br label %"$have_gas_2288" + +"$have_gas_2288": ; preds = %"$out_of_gas_2287", %"$have_gas_2283" + %"$consume_2289" = sub i64 %"$gasrem_2285", 2 + store i64 %"$consume_2289", i64* @_gasrem, align 8 + %"$$c1_9_2291" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 + %"$$c1_9_tag_2292" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_9_2291", i32 0, i32 0 + %"$$c1_9_tag_2293" = load i8, i8* %"$$c1_9_tag_2292", align 1 + switch i8 %"$$c1_9_tag_2293", label %"$empty_default_2294" [ + i8 0, label %"$Some_2295" + i8 1, label %"$None_2368" + ], !dbg !246 + +"$Some_2295": ; preds = %"$have_gas_2288" + %"$$c1_9_2296" = bitcast %TName_Option_String* %"$$c1_9_2291" to %CName_Some_String* + %"$c_gep_2297" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_9_2296", i32 0, i32 1 + %"$c_load_2298" = load %String, %String* %"$c_gep_2297", align 8 %c5 = alloca %String, align 8 - store %String %"$c_load_2321", %String* %c5, align 8 - %"$gasrem_2322" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2323" = icmp ugt i64 1, %"$gasrem_2322" - br i1 %"$gascmp_2323", label %"$out_of_gas_2324", label %"$have_gas_2325" + store %String %"$c_load_2298", %String* %c5, align 8 + %"$gasrem_2299" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2300" = icmp ugt i64 1, %"$gasrem_2299" + br i1 %"$gascmp_2300", label %"$out_of_gas_2301", label %"$have_gas_2302" -"$out_of_gas_2324": ; preds = %"$Some_2318" +"$out_of_gas_2301": ; preds = %"$Some_2295" call void @_out_of_gas() - br label %"$have_gas_2325" + br label %"$have_gas_2302" -"$have_gas_2325": ; preds = %"$out_of_gas_2324", %"$Some_2318" - %"$consume_2326" = sub i64 %"$gasrem_2322", 1 - store i64 %"$consume_2326", i64* @_gasrem, align 8 +"$have_gas_2302": ; preds = %"$out_of_gas_2301", %"$Some_2295" + %"$consume_2303" = sub i64 %"$gasrem_2299", 1 + store i64 %"$consume_2303", i64* @_gasrem, align 8 %v6 = alloca %String, align 8 - %"$gasrem_2327" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2328" = icmp ugt i64 1, %"$gasrem_2327" - br i1 %"$gascmp_2328", label %"$out_of_gas_2329", label %"$have_gas_2330" + %"$gasrem_2304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2305" = icmp ugt i64 1, %"$gasrem_2304" + br i1 %"$gascmp_2305", label %"$out_of_gas_2306", label %"$have_gas_2307" -"$out_of_gas_2329": ; preds = %"$have_gas_2325" +"$out_of_gas_2306": ; preds = %"$have_gas_2302" call void @_out_of_gas() - br label %"$have_gas_2330" + br label %"$have_gas_2307" -"$have_gas_2330": ; preds = %"$out_of_gas_2329", %"$have_gas_2325" - %"$consume_2331" = sub i64 %"$gasrem_2327", 1 - store i64 %"$consume_2331", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2332", i32 0, i32 0), i32 3 }, %String* %v6, align 8, !dbg !249 - %"$gasrem_2333" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2334" = icmp ugt i64 1, %"$gasrem_2333" - br i1 %"$gascmp_2334", label %"$out_of_gas_2335", label %"$have_gas_2336" +"$have_gas_2307": ; preds = %"$out_of_gas_2306", %"$have_gas_2302" + %"$consume_2308" = sub i64 %"$gasrem_2304", 1 + store i64 %"$consume_2308", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2309", i32 0, i32 0), i32 3 }, %String* %v6, align 8, !dbg !247 + %"$gasrem_2310" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2311" = icmp ugt i64 1, %"$gasrem_2310" + br i1 %"$gascmp_2311", label %"$out_of_gas_2312", label %"$have_gas_2313" -"$out_of_gas_2335": ; preds = %"$have_gas_2330" +"$out_of_gas_2312": ; preds = %"$have_gas_2307" call void @_out_of_gas() - br label %"$have_gas_2336" + br label %"$have_gas_2313" -"$have_gas_2336": ; preds = %"$out_of_gas_2335", %"$have_gas_2330" - %"$consume_2337" = sub i64 %"$gasrem_2333", 1 - store i64 %"$consume_2337", i64* @_gasrem, align 8 +"$have_gas_2313": ; preds = %"$out_of_gas_2312", %"$have_gas_2307" + %"$consume_2314" = sub i64 %"$gasrem_2310", 1 + store i64 %"$consume_2314", i64* @_gasrem, align 8 %eq7 = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_2338" = alloca %String, align 8 - %"$c_2339" = load %String, %String* %c5, align 8 - store %String %"$c_2339", %String* %"$_literal_cost_c_2338", align 8 - %"$$_literal_cost_c_2338_2340" = bitcast %String* %"$_literal_cost_c_2338" to i8* - %"$_literal_cost_call_2341" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_2338_2340") - %"$_literal_cost_v_2342" = alloca %String, align 8 - %"$v_2343" = load %String, %String* %v6, align 8 - store %String %"$v_2343", %String* %"$_literal_cost_v_2342", align 8 - %"$$_literal_cost_v_2342_2344" = bitcast %String* %"$_literal_cost_v_2342" to i8* - %"$_literal_cost_call_2345" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_2342_2344") - %"$gasmin_2346" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2341", i64 %"$_literal_cost_call_2345") - %"$gasrem_2347" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2348" = icmp ugt i64 %"$gasmin_2346", %"$gasrem_2347" - br i1 %"$gascmp_2348", label %"$out_of_gas_2349", label %"$have_gas_2350" - -"$out_of_gas_2349": ; preds = %"$have_gas_2336" - call void @_out_of_gas() - br label %"$have_gas_2350" - -"$have_gas_2350": ; preds = %"$out_of_gas_2349", %"$have_gas_2336" - %"$consume_2351" = sub i64 %"$gasrem_2347", %"$gasmin_2346" - store i64 %"$consume_2351", i64* @_gasrem, align 8 - %"$execptr_load_2352" = load i8*, i8** @_execptr, align 8 - %"$c_2353" = load %String, %String* %c5, align 8 - %"$v_2354" = load %String, %String* %v6, align 8 - %"$eq_call_2355" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2352", %String %"$c_2353", %String %"$v_2354"), !dbg !252 - store %TName_Bool* %"$eq_call_2355", %TName_Bool** %eq7, align 8, !dbg !252 - %"$gasrem_2357" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2358" = icmp ugt i64 2, %"$gasrem_2357" - br i1 %"$gascmp_2358", label %"$out_of_gas_2359", label %"$have_gas_2360" - -"$out_of_gas_2359": ; preds = %"$have_gas_2350" - call void @_out_of_gas() - br label %"$have_gas_2360" - -"$have_gas_2360": ; preds = %"$out_of_gas_2359", %"$have_gas_2350" - %"$consume_2361" = sub i64 %"$gasrem_2357", 2 - store i64 %"$consume_2361", i64* @_gasrem, align 8 - %"$eq_2363" = load %TName_Bool*, %TName_Bool** %eq7, align 8 - %"$eq_tag_2364" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2363", i32 0, i32 0 - %"$eq_tag_2365" = load i8, i8* %"$eq_tag_2364", align 1 - switch i8 %"$eq_tag_2365", label %"$empty_default_2366" [ - i8 0, label %"$True_2367" - i8 1, label %"$False_2369" - ], !dbg !253 - -"$True_2367": ; preds = %"$have_gas_2360" - %"$eq_2368" = bitcast %TName_Bool* %"$eq_2363" to %CName_True* - br label %"$matchsucc_2362" - -"$False_2369": ; preds = %"$have_gas_2360" - %"$eq_2370" = bitcast %TName_Bool* %"$eq_2363" to %CName_False* - %"$gasrem_2371" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2372" = icmp ugt i64 1, %"$gasrem_2371" - br i1 %"$gascmp_2372", label %"$out_of_gas_2373", label %"$have_gas_2374" - -"$out_of_gas_2373": ; preds = %"$False_2369" - call void @_out_of_gas() - br label %"$have_gas_2374" - -"$have_gas_2374": ; preds = %"$out_of_gas_2373", %"$False_2369" - %"$consume_2375" = sub i64 %"$gasrem_2371", 1 - store i64 %"$consume_2375", i64* @_gasrem, align 8 + %"$_literal_cost_c_2315" = alloca %String, align 8 + %"$c_2316" = load %String, %String* %c5, align 8 + store %String %"$c_2316", %String* %"$_literal_cost_c_2315", align 8 + %"$$_literal_cost_c_2315_2317" = bitcast %String* %"$_literal_cost_c_2315" to i8* + %"$_literal_cost_call_2318" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_2315_2317") + %"$_literal_cost_v_2319" = alloca %String, align 8 + %"$v_2320" = load %String, %String* %v6, align 8 + store %String %"$v_2320", %String* %"$_literal_cost_v_2319", align 8 + %"$$_literal_cost_v_2319_2321" = bitcast %String* %"$_literal_cost_v_2319" to i8* + %"$_literal_cost_call_2322" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_2319_2321") + %"$gasmin_2323" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2318", i64 %"$_literal_cost_call_2322") + %"$gasrem_2324" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2325" = icmp ugt i64 %"$gasmin_2323", %"$gasrem_2324" + br i1 %"$gascmp_2325", label %"$out_of_gas_2326", label %"$have_gas_2327" + +"$out_of_gas_2326": ; preds = %"$have_gas_2313" + call void @_out_of_gas() + br label %"$have_gas_2327" + +"$have_gas_2327": ; preds = %"$out_of_gas_2326", %"$have_gas_2313" + %"$consume_2328" = sub i64 %"$gasrem_2324", %"$gasmin_2323" + store i64 %"$consume_2328", i64* @_gasrem, align 8 + %"$execptr_load_2329" = load i8*, i8** @_execptr, align 8 + %"$c_2330" = load %String, %String* %c5, align 8 + %"$v_2331" = load %String, %String* %v6, align 8 + %"$eq_call_2332" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2329", %String %"$c_2330", %String %"$v_2331"), !dbg !250 + store %TName_Bool* %"$eq_call_2332", %TName_Bool** %eq7, align 8, !dbg !250 + %"$gasrem_2334" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2335" = icmp ugt i64 2, %"$gasrem_2334" + br i1 %"$gascmp_2335", label %"$out_of_gas_2336", label %"$have_gas_2337" + +"$out_of_gas_2336": ; preds = %"$have_gas_2327" + call void @_out_of_gas() + br label %"$have_gas_2337" + +"$have_gas_2337": ; preds = %"$out_of_gas_2336", %"$have_gas_2327" + %"$consume_2338" = sub i64 %"$gasrem_2334", 2 + store i64 %"$consume_2338", i64* @_gasrem, align 8 + %"$eq_2340" = load %TName_Bool*, %TName_Bool** %eq7, align 8 + %"$eq_tag_2341" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2340", i32 0, i32 0 + %"$eq_tag_2342" = load i8, i8* %"$eq_tag_2341", align 1 + switch i8 %"$eq_tag_2342", label %"$empty_default_2343" [ + i8 0, label %"$True_2344" + i8 1, label %"$False_2346" + ], !dbg !251 + +"$True_2344": ; preds = %"$have_gas_2337" + %"$eq_2345" = bitcast %TName_Bool* %"$eq_2340" to %CName_True* + br label %"$matchsucc_2339" + +"$False_2346": ; preds = %"$have_gas_2337" + %"$eq_2347" = bitcast %TName_Bool* %"$eq_2340" to %CName_False* + %"$gasrem_2348" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2349" = icmp ugt i64 1, %"$gasrem_2348" + br i1 %"$gascmp_2349", label %"$out_of_gas_2350", label %"$have_gas_2351" + +"$out_of_gas_2350": ; preds = %"$False_2346" + call void @_out_of_gas() + br label %"$have_gas_2351" + +"$have_gas_2351": ; preds = %"$out_of_gas_2350", %"$False_2346" + %"$consume_2352" = sub i64 %"$gasrem_2348", 1 + store i64 %"$consume_2352", i64* @_gasrem, align 8 %m8 = alloca %String, align 8 - %"$gasrem_2376" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2377" = icmp ugt i64 1, %"$gasrem_2376" - br i1 %"$gascmp_2377", label %"$out_of_gas_2378", label %"$have_gas_2379" + %"$gasrem_2353" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2354" = icmp ugt i64 1, %"$gasrem_2353" + br i1 %"$gascmp_2354", label %"$out_of_gas_2355", label %"$have_gas_2356" -"$out_of_gas_2378": ; preds = %"$have_gas_2374" +"$out_of_gas_2355": ; preds = %"$have_gas_2351" call void @_out_of_gas() - br label %"$have_gas_2379" + br label %"$have_gas_2356" -"$have_gas_2379": ; preds = %"$out_of_gas_2378", %"$have_gas_2374" - %"$consume_2380" = sub i64 %"$gasrem_2376", 1 - store i64 %"$consume_2380", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_2381", i32 0, i32 0), i32 31 }, %String* %m8, align 8, !dbg !254 - %"$gasrem_2382" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2383" = icmp ugt i64 1, %"$gasrem_2382" - br i1 %"$gascmp_2383", label %"$out_of_gas_2384", label %"$have_gas_2385" +"$have_gas_2356": ; preds = %"$out_of_gas_2355", %"$have_gas_2351" + %"$consume_2357" = sub i64 %"$gasrem_2353", 1 + store i64 %"$consume_2357", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_2358", i32 0, i32 0), i32 31 }, %String* %m8, align 8, !dbg !252 + %"$gasrem_2359" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2360" = icmp ugt i64 1, %"$gasrem_2359" + br i1 %"$gascmp_2360", label %"$out_of_gas_2361", label %"$have_gas_2362" -"$out_of_gas_2384": ; preds = %"$have_gas_2379" +"$out_of_gas_2361": ; preds = %"$have_gas_2356" call void @_out_of_gas() - br label %"$have_gas_2385" + br label %"$have_gas_2362" -"$have_gas_2385": ; preds = %"$out_of_gas_2384", %"$have_gas_2379" - %"$consume_2386" = sub i64 %"$gasrem_2382", 1 - store i64 %"$consume_2386", i64* @_gasrem, align 8 - %"$fail_msg__origin_2387" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2387", align 1 - %"$fail_msg__sender_2388" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2388", align 1 - %"$tname_2389" = load %String, %String* %tname, align 8 - %"$m_2390" = load %String, %String* %m8, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2387", [20 x i8]* %"$fail_msg__sender_2388", %String %"$tname_2389", %String %"$m_2390"), !dbg !257 - br label %"$matchsucc_2362" +"$have_gas_2362": ; preds = %"$out_of_gas_2361", %"$have_gas_2356" + %"$consume_2363" = sub i64 %"$gasrem_2359", 1 + store i64 %"$consume_2363", i64* @_gasrem, align 8 + %"$fail_msg__origin_2364" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2364", align 1 + %"$fail_msg__sender_2365" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2365", align 1 + %"$tname_2366" = load %String, %String* %tname, align 8 + %"$m_2367" = load %String, %String* %m8, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2364", [20 x i8]* %"$fail_msg__sender_2365", %String %"$tname_2366", %String %"$m_2367"), !dbg !255 + br label %"$matchsucc_2339" -"$empty_default_2366": ; preds = %"$have_gas_2360" - br label %"$matchsucc_2362" +"$empty_default_2343": ; preds = %"$have_gas_2337" + br label %"$matchsucc_2339" -"$matchsucc_2362": ; preds = %"$have_gas_2385", %"$True_2367", %"$empty_default_2366" - br label %"$matchsucc_2313" +"$matchsucc_2339": ; preds = %"$have_gas_2362", %"$True_2344", %"$empty_default_2343" + br label %"$matchsucc_2290" -"$None_2391": ; preds = %"$have_gas_2311" - %"$$c1_9_2392" = bitcast %TName_Option_String* %"$$c1_9_2314" to %CName_None_String* - %"$gasrem_2393" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2394" = icmp ugt i64 1, %"$gasrem_2393" - br i1 %"$gascmp_2394", label %"$out_of_gas_2395", label %"$have_gas_2396" +"$None_2368": ; preds = %"$have_gas_2288" + %"$$c1_9_2369" = bitcast %TName_Option_String* %"$$c1_9_2291" to %CName_None_String* + %"$gasrem_2370" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2371" = icmp ugt i64 1, %"$gasrem_2370" + br i1 %"$gascmp_2371", label %"$out_of_gas_2372", label %"$have_gas_2373" -"$out_of_gas_2395": ; preds = %"$None_2391" +"$out_of_gas_2372": ; preds = %"$None_2368" call void @_out_of_gas() - br label %"$have_gas_2396" + br label %"$have_gas_2373" -"$have_gas_2396": ; preds = %"$out_of_gas_2395", %"$None_2391" - %"$consume_2397" = sub i64 %"$gasrem_2393", 1 - store i64 %"$consume_2397", i64* @_gasrem, align 8 +"$have_gas_2373": ; preds = %"$out_of_gas_2372", %"$None_2368" + %"$consume_2374" = sub i64 %"$gasrem_2370", 1 + store i64 %"$consume_2374", i64* @_gasrem, align 8 %m9 = alloca %String, align 8 - %"$gasrem_2398" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2399" = icmp ugt i64 1, %"$gasrem_2398" - br i1 %"$gascmp_2399", label %"$out_of_gas_2400", label %"$have_gas_2401" + %"$gasrem_2375" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2376" = icmp ugt i64 1, %"$gasrem_2375" + br i1 %"$gascmp_2376", label %"$out_of_gas_2377", label %"$have_gas_2378" -"$out_of_gas_2400": ; preds = %"$have_gas_2396" +"$out_of_gas_2377": ; preds = %"$have_gas_2373" call void @_out_of_gas() - br label %"$have_gas_2401" + br label %"$have_gas_2378" -"$have_gas_2401": ; preds = %"$out_of_gas_2400", %"$have_gas_2396" - %"$consume_2402" = sub i64 %"$gasrem_2398", 1 - store i64 %"$consume_2402", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2403", i32 0, i32 0), i32 21 }, %String* %m9, align 8, !dbg !258 - %"$gasrem_2404" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2405" = icmp ugt i64 1, %"$gasrem_2404" - br i1 %"$gascmp_2405", label %"$out_of_gas_2406", label %"$have_gas_2407" +"$have_gas_2378": ; preds = %"$out_of_gas_2377", %"$have_gas_2373" + %"$consume_2379" = sub i64 %"$gasrem_2375", 1 + store i64 %"$consume_2379", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2380", i32 0, i32 0), i32 21 }, %String* %m9, align 8, !dbg !256 + %"$gasrem_2381" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2382" = icmp ugt i64 1, %"$gasrem_2381" + br i1 %"$gascmp_2382", label %"$out_of_gas_2383", label %"$have_gas_2384" -"$out_of_gas_2406": ; preds = %"$have_gas_2401" +"$out_of_gas_2383": ; preds = %"$have_gas_2378" call void @_out_of_gas() - br label %"$have_gas_2407" + br label %"$have_gas_2384" -"$have_gas_2407": ; preds = %"$out_of_gas_2406", %"$have_gas_2401" - %"$consume_2408" = sub i64 %"$gasrem_2404", 1 - store i64 %"$consume_2408", i64* @_gasrem, align 8 - %"$fail_msg__origin_2409" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2409", align 1 - %"$fail_msg__sender_2410" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2410", align 1 - %"$tname_2411" = load %String, %String* %tname, align 8 - %"$m_2412" = load %String, %String* %m9, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2409", [20 x i8]* %"$fail_msg__sender_2410", %String %"$tname_2411", %String %"$m_2412"), !dbg !260 - br label %"$matchsucc_2313" +"$have_gas_2384": ; preds = %"$out_of_gas_2383", %"$have_gas_2378" + %"$consume_2385" = sub i64 %"$gasrem_2381", 1 + store i64 %"$consume_2385", i64* @_gasrem, align 8 + %"$fail_msg__origin_2386" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2386", align 1 + %"$fail_msg__sender_2387" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2387", align 1 + %"$tname_2388" = load %String, %String* %tname, align 8 + %"$m_2389" = load %String, %String* %m9, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2386", [20 x i8]* %"$fail_msg__sender_2387", %String %"$tname_2388", %String %"$m_2389"), !dbg !258 + br label %"$matchsucc_2290" -"$empty_default_2317": ; preds = %"$have_gas_2311" - br label %"$matchsucc_2313" +"$empty_default_2294": ; preds = %"$have_gas_2288" + br label %"$matchsucc_2290" -"$matchsucc_2313": ; preds = %"$have_gas_2407", %"$matchsucc_2362", %"$empty_default_2317" - %"$gasrem_2413" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2414" = icmp ugt i64 1, %"$gasrem_2413" - br i1 %"$gascmp_2414", label %"$out_of_gas_2415", label %"$have_gas_2416" +"$matchsucc_2290": ; preds = %"$have_gas_2384", %"$matchsucc_2339", %"$empty_default_2294" + %"$gasrem_2390" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2391" = icmp ugt i64 1, %"$gasrem_2390" + br i1 %"$gascmp_2391", label %"$out_of_gas_2392", label %"$have_gas_2393" -"$out_of_gas_2415": ; preds = %"$matchsucc_2313" +"$out_of_gas_2392": ; preds = %"$matchsucc_2290" call void @_out_of_gas() - br label %"$have_gas_2416" + br label %"$have_gas_2393" -"$have_gas_2416": ; preds = %"$out_of_gas_2415", %"$matchsucc_2313" - %"$consume_2417" = sub i64 %"$gasrem_2413", 1 - store i64 %"$consume_2417", i64* @_gasrem, align 8 +"$have_gas_2393": ; preds = %"$out_of_gas_2392", %"$matchsucc_2290" + %"$consume_2394" = sub i64 %"$gasrem_2390", 1 + store i64 %"$consume_2394", i64* @_gasrem, align 8 %em = alloca %Map_String_String*, align 8 - %"$gasrem_2418" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2419" = icmp ugt i64 1, %"$gasrem_2418" - br i1 %"$gascmp_2419", label %"$out_of_gas_2420", label %"$have_gas_2421" - -"$out_of_gas_2420": ; preds = %"$have_gas_2416" - call void @_out_of_gas() - br label %"$have_gas_2421" - -"$have_gas_2421": ; preds = %"$out_of_gas_2420", %"$have_gas_2416" - %"$consume_2422" = sub i64 %"$gasrem_2418", 1 - store i64 %"$consume_2422", i64* @_gasrem, align 8 - %"$execptr_load_2423" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2424" = call i8* @_new_empty_map(i8* %"$execptr_load_2423") - %"$_new_empty_map_2425" = bitcast i8* %"$_new_empty_map_call_2424" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_2425", %Map_String_String** %em, align 8, !dbg !261 - %"$em_2426" = load %Map_String_String*, %Map_String_String** %em, align 8 - %"$$em_2426_2427" = bitcast %Map_String_String* %"$em_2426" to i8* - %"$_literal_cost_call_2428" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$em_2426_2427") - %"$gasrem_2429" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2430" = icmp ugt i64 %"$_literal_cost_call_2428", %"$gasrem_2429" - br i1 %"$gascmp_2430", label %"$out_of_gas_2431", label %"$have_gas_2432" - -"$out_of_gas_2431": ; preds = %"$have_gas_2421" - call void @_out_of_gas() - br label %"$have_gas_2432" - -"$have_gas_2432": ; preds = %"$out_of_gas_2431", %"$have_gas_2421" - %"$consume_2433" = sub i64 %"$gasrem_2429", %"$_literal_cost_call_2428" - store i64 %"$consume_2433", i64* @_gasrem, align 8 - %"$execptr_load_2434" = load i8*, i8** @_execptr, align 8 - %"$em_2436" = load %Map_String_String*, %Map_String_String** %em, align 8 - %"$update_value_2437" = bitcast %Map_String_String* %"$em_2436" to i8* - call void @_update_field(i8* %"$execptr_load_2434", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2435", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i8* %"$update_value_2437"), !dbg !262 + %"$gasrem_2395" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2396" = icmp ugt i64 1, %"$gasrem_2395" + br i1 %"$gascmp_2396", label %"$out_of_gas_2397", label %"$have_gas_2398" + +"$out_of_gas_2397": ; preds = %"$have_gas_2393" + call void @_out_of_gas() + br label %"$have_gas_2398" + +"$have_gas_2398": ; preds = %"$out_of_gas_2397", %"$have_gas_2393" + %"$consume_2399" = sub i64 %"$gasrem_2395", 1 + store i64 %"$consume_2399", i64* @_gasrem, align 8 + %"$execptr_load_2400" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2401" = call i8* @_new_empty_map(i8* %"$execptr_load_2400") + %"$_new_empty_map_2402" = bitcast i8* %"$_new_empty_map_call_2401" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_2402", %Map_String_String** %em, align 8, !dbg !259 + %"$em_2403" = load %Map_String_String*, %Map_String_String** %em, align 8 + %"$$em_2403_2404" = bitcast %Map_String_String* %"$em_2403" to i8* + %"$_literal_cost_call_2405" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$em_2403_2404") + %"$gasrem_2406" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2407" = icmp ugt i64 %"$_literal_cost_call_2405", %"$gasrem_2406" + br i1 %"$gascmp_2407", label %"$out_of_gas_2408", label %"$have_gas_2409" + +"$out_of_gas_2408": ; preds = %"$have_gas_2398" + call void @_out_of_gas() + br label %"$have_gas_2409" + +"$have_gas_2409": ; preds = %"$out_of_gas_2408", %"$have_gas_2398" + %"$consume_2410" = sub i64 %"$gasrem_2406", %"$_literal_cost_call_2405" + store i64 %"$consume_2410", i64* @_gasrem, align 8 + %"$execptr_load_2411" = load i8*, i8** @_execptr, align 8 + %"$em_2413" = load %Map_String_String*, %Map_String_String** %em, align 8 + %"$update_value_2414" = bitcast %Map_String_String* %"$em_2413" to i8* + call void @_update_field(i8* %"$execptr_load_2411", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2412", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i8* %"$update_value_2414"), !dbg !260 ret void } -define void @t8(i8* %0) !dbg !263 { +define void @t8(i8* %0) !dbg !261 { entry: - %"$_amount_2439" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2440" = bitcast i8* %"$_amount_2439" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2440", align 8 - %"$_origin_2441" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2442" = bitcast i8* %"$_origin_2441" to [20 x i8]* - %"$_sender_2443" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2444" = bitcast i8* %"$_sender_2443" to [20 x i8]* - call void @"$t8_2107"(%Uint128 %_amount, [20 x i8]* %"$_origin_2442", [20 x i8]* %"$_sender_2444"), !dbg !264 + %"$_amount_2416" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2417" = bitcast i8* %"$_amount_2416" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2417", align 8 + %"$_origin_2418" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2419" = bitcast i8* %"$_origin_2418" to [20 x i8]* + %"$_sender_2420" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2421" = bitcast i8* %"$_sender_2420" to [20 x i8]* + call void @"$t8_2084"(%Uint128 %_amount, [20 x i8]* %"$_origin_2419", [20 x i8]* %"$_sender_2421"), !dbg !262 ret void } -define internal void @"$t9_2445"(%Uint128 %_amount, [20 x i8]* %"$_origin_2446", [20 x i8]* %"$_sender_2447") !dbg !265 { +define internal void @"$t9_2422"(%Uint128 %_amount, [20 x i8]* %"$_origin_2423", [20 x i8]* %"$_sender_2424") !dbg !263 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2446", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2447", align 1 - %"$gasrem_2448" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2449" = icmp ugt i64 1, %"$gasrem_2448" - br i1 %"$gascmp_2449", label %"$out_of_gas_2450", label %"$have_gas_2451" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2423", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2424", align 1 + %"$gasrem_2425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2426" = icmp ugt i64 1, %"$gasrem_2425" + br i1 %"$gascmp_2426", label %"$out_of_gas_2427", label %"$have_gas_2428" -"$out_of_gas_2450": ; preds = %entry +"$out_of_gas_2427": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2451" + br label %"$have_gas_2428" -"$have_gas_2451": ; preds = %"$out_of_gas_2450", %entry - %"$consume_2452" = sub i64 %"$gasrem_2448", 1 - store i64 %"$consume_2452", i64* @_gasrem, align 8 +"$have_gas_2428": ; preds = %"$out_of_gas_2427", %entry + %"$consume_2429" = sub i64 %"$gasrem_2425", 1 + store i64 %"$consume_2429", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_2453" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2454" = icmp ugt i64 1, %"$gasrem_2453" - br i1 %"$gascmp_2454", label %"$out_of_gas_2455", label %"$have_gas_2456" + %"$gasrem_2430" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2431" = icmp ugt i64 1, %"$gasrem_2430" + br i1 %"$gascmp_2431", label %"$out_of_gas_2432", label %"$have_gas_2433" -"$out_of_gas_2455": ; preds = %"$have_gas_2451" +"$out_of_gas_2432": ; preds = %"$have_gas_2428" call void @_out_of_gas() - br label %"$have_gas_2456" + br label %"$have_gas_2433" -"$have_gas_2456": ; preds = %"$out_of_gas_2455", %"$have_gas_2451" - %"$consume_2457" = sub i64 %"$gasrem_2453", 1 - store i64 %"$consume_2457", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_2458", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !266 +"$have_gas_2433": ; preds = %"$out_of_gas_2432", %"$have_gas_2428" + %"$consume_2434" = sub i64 %"$gasrem_2430", 1 + store i64 %"$consume_2434", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_2435", i32 0, i32 0), i32 2 }, %String* %tname, align 8, !dbg !264 %m1 = alloca %Map_String_String*, align 8 - %"$execptr_load_2460" = load i8*, i8** @_execptr, align 8 - %"$m1_call_2461" = call i8* @_fetch_field(i8* %"$execptr_load_2460", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2459", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i32 1), !dbg !267 - %"$m1_2462" = bitcast i8* %"$m1_call_2461" to %Map_String_String* - store %Map_String_String* %"$m1_2462", %Map_String_String** %m1, align 8 - %"$m1_2463" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2463_2464" = bitcast %Map_String_String* %"$m1_2463" to i8* - %"$_literal_cost_call_2465" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2463_2464") - %"$m1_2466" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2466_2467" = bitcast %Map_String_String* %"$m1_2466" to i8* - %"$_mapsortcost_call_2468" = call i64 @_mapsortcost(i8* %"$$m1_2466_2467") - %"$gasadd_2469" = add i64 %"$_literal_cost_call_2465", %"$_mapsortcost_call_2468" + %"$execptr_load_2437" = load i8*, i8** @_execptr, align 8 + %"$m1_call_2438" = call i8* @_fetch_field(i8* %"$execptr_load_2437", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2436", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i32 1), !dbg !265 + %"$m1_2439" = bitcast i8* %"$m1_call_2438" to %Map_String_String* + store %Map_String_String* %"$m1_2439", %Map_String_String** %m1, align 8 + %"$m1_2440" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2440_2441" = bitcast %Map_String_String* %"$m1_2440" to i8* + %"$_literal_cost_call_2442" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2440_2441") + %"$m1_2443" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2443_2444" = bitcast %Map_String_String* %"$m1_2443" to i8* + %"$_mapsortcost_call_2445" = call i64 @_mapsortcost(i8* %"$$m1_2443_2444") + %"$gasadd_2446" = add i64 %"$_literal_cost_call_2442", %"$_mapsortcost_call_2445" + %"$gasrem_2447" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2448" = icmp ugt i64 %"$gasadd_2446", %"$gasrem_2447" + br i1 %"$gascmp_2448", label %"$out_of_gas_2449", label %"$have_gas_2450" + +"$out_of_gas_2449": ; preds = %"$have_gas_2433" + call void @_out_of_gas() + br label %"$have_gas_2450" + +"$have_gas_2450": ; preds = %"$out_of_gas_2449", %"$have_gas_2433" + %"$consume_2451" = sub i64 %"$gasrem_2447", %"$gasadd_2446" + store i64 %"$consume_2451", i64* @_gasrem, align 8 + %"$gasrem_2452" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2453" = icmp ugt i64 1, %"$gasrem_2452" + br i1 %"$gascmp_2453", label %"$out_of_gas_2454", label %"$have_gas_2455" + +"$out_of_gas_2454": ; preds = %"$have_gas_2450" + call void @_out_of_gas() + br label %"$have_gas_2455" + +"$have_gas_2455": ; preds = %"$out_of_gas_2454", %"$have_gas_2450" + %"$consume_2456" = sub i64 %"$gasrem_2452", 1 + store i64 %"$consume_2456", i64* @_gasrem, align 8 + %m1_size = alloca %Uint32, align 8 + %"$gasrem_2457" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2458" = icmp ugt i64 1, %"$gasrem_2457" + br i1 %"$gascmp_2458", label %"$out_of_gas_2459", label %"$have_gas_2460" + +"$out_of_gas_2459": ; preds = %"$have_gas_2455" + call void @_out_of_gas() + br label %"$have_gas_2460" + +"$have_gas_2460": ; preds = %"$out_of_gas_2459", %"$have_gas_2455" + %"$consume_2461" = sub i64 %"$gasrem_2457", 1 + store i64 %"$consume_2461", i64* @_gasrem, align 8 + %"$m1_2462" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2462_2463" = bitcast %Map_String_String* %"$m1_2462" to i8* + %"$size_call_2464" = call %Uint32 @_size(i8* %"$$m1_2462_2463"), !dbg !266 + store %Uint32 %"$size_call_2464", %Uint32* %m1_size, align 4, !dbg !266 + %"$gasrem_2465" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2466" = icmp ugt i64 1, %"$gasrem_2465" + br i1 %"$gascmp_2466", label %"$out_of_gas_2467", label %"$have_gas_2468" + +"$out_of_gas_2467": ; preds = %"$have_gas_2460" + call void @_out_of_gas() + br label %"$have_gas_2468" + +"$have_gas_2468": ; preds = %"$out_of_gas_2467", %"$have_gas_2460" + %"$consume_2469" = sub i64 %"$gasrem_2465", 1 + store i64 %"$consume_2469", i64* @_gasrem, align 8 + %zero = alloca %Uint32, align 8 %"$gasrem_2470" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2471" = icmp ugt i64 %"$gasadd_2469", %"$gasrem_2470" + %"$gascmp_2471" = icmp ugt i64 1, %"$gasrem_2470" br i1 %"$gascmp_2471", label %"$out_of_gas_2472", label %"$have_gas_2473" -"$out_of_gas_2472": ; preds = %"$have_gas_2456" +"$out_of_gas_2472": ; preds = %"$have_gas_2468" call void @_out_of_gas() br label %"$have_gas_2473" -"$have_gas_2473": ; preds = %"$out_of_gas_2472", %"$have_gas_2456" - %"$consume_2474" = sub i64 %"$gasrem_2470", %"$gasadd_2469" +"$have_gas_2473": ; preds = %"$out_of_gas_2472", %"$have_gas_2468" + %"$consume_2474" = sub i64 %"$gasrem_2470", 1 store i64 %"$consume_2474", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !267 %"$gasrem_2475" = load i64, i64* @_gasrem, align 8 %"$gascmp_2476" = icmp ugt i64 1, %"$gasrem_2475" br i1 %"$gascmp_2476", label %"$out_of_gas_2477", label %"$have_gas_2478" @@ -5118,9 +5137,9 @@ entry: "$have_gas_2478": ; preds = %"$out_of_gas_2477", %"$have_gas_2473" %"$consume_2479" = sub i64 %"$gasrem_2475", 1 store i64 %"$consume_2479", i64* @_gasrem, align 8 - %m1_size = alloca %Uint32, align 8 + %is_empty = alloca %TName_Bool*, align 8 %"$gasrem_2480" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2481" = icmp ugt i64 1, %"$gasrem_2480" + %"$gascmp_2481" = icmp ugt i64 4, %"$gasrem_2480" br i1 %"$gascmp_2481", label %"$out_of_gas_2482", label %"$have_gas_2483" "$out_of_gas_2482": ; preds = %"$have_gas_2478" @@ -5128,219 +5147,168 @@ entry: br label %"$have_gas_2483" "$have_gas_2483": ; preds = %"$out_of_gas_2482", %"$have_gas_2478" - %"$consume_2484" = sub i64 %"$gasrem_2480", 1 + %"$consume_2484" = sub i64 %"$gasrem_2480", 4 store i64 %"$consume_2484", i64* @_gasrem, align 8 - %"$m1_2485" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2485_2486" = bitcast %Map_String_String* %"$m1_2485" to i8* - %"$size_call_2487" = call %Uint32 @_size(i8* %"$$m1_2485_2486"), !dbg !268 - store %Uint32 %"$size_call_2487", %Uint32* %m1_size, align 4, !dbg !268 - %"$gasrem_2488" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2489" = icmp ugt i64 1, %"$gasrem_2488" - br i1 %"$gascmp_2489", label %"$out_of_gas_2490", label %"$have_gas_2491" - -"$out_of_gas_2490": ; preds = %"$have_gas_2483" - call void @_out_of_gas() - br label %"$have_gas_2491" - -"$have_gas_2491": ; preds = %"$out_of_gas_2490", %"$have_gas_2483" - %"$consume_2492" = sub i64 %"$gasrem_2488", 1 - store i64 %"$consume_2492", i64* @_gasrem, align 8 - %zero = alloca %Uint32, align 8 - %"$gasrem_2493" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2494" = icmp ugt i64 1, %"$gasrem_2493" - br i1 %"$gascmp_2494", label %"$out_of_gas_2495", label %"$have_gas_2496" - -"$out_of_gas_2495": ; preds = %"$have_gas_2491" - call void @_out_of_gas() - br label %"$have_gas_2496" - -"$have_gas_2496": ; preds = %"$out_of_gas_2495", %"$have_gas_2491" - %"$consume_2497" = sub i64 %"$gasrem_2493", 1 - store i64 %"$consume_2497", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !269 - %"$gasrem_2498" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2499" = icmp ugt i64 1, %"$gasrem_2498" - br i1 %"$gascmp_2499", label %"$out_of_gas_2500", label %"$have_gas_2501" - -"$out_of_gas_2500": ; preds = %"$have_gas_2496" - call void @_out_of_gas() - br label %"$have_gas_2501" - -"$have_gas_2501": ; preds = %"$out_of_gas_2500", %"$have_gas_2496" - %"$consume_2502" = sub i64 %"$gasrem_2498", 1 - store i64 %"$consume_2502", i64* @_gasrem, align 8 - %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_2503" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2504" = icmp ugt i64 4, %"$gasrem_2503" - br i1 %"$gascmp_2504", label %"$out_of_gas_2505", label %"$have_gas_2506" - -"$out_of_gas_2505": ; preds = %"$have_gas_2501" - call void @_out_of_gas() - br label %"$have_gas_2506" - -"$have_gas_2506": ; preds = %"$out_of_gas_2505", %"$have_gas_2501" - %"$consume_2507" = sub i64 %"$gasrem_2503", 4 - store i64 %"$consume_2507", i64* @_gasrem, align 8 - %"$execptr_load_2508" = load i8*, i8** @_execptr, align 8 - %"$m1_size_2509" = load %Uint32, %Uint32* %m1_size, align 4 - %"$zero_2510" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_2511" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2508", %Uint32 %"$m1_size_2509", %Uint32 %"$zero_2510"), !dbg !270 - store %TName_Bool* %"$eq_call_2511", %TName_Bool** %is_empty, align 8, !dbg !270 - %"$gasrem_2513" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2514" = icmp ugt i64 2, %"$gasrem_2513" - br i1 %"$gascmp_2514", label %"$out_of_gas_2515", label %"$have_gas_2516" - -"$out_of_gas_2515": ; preds = %"$have_gas_2506" - call void @_out_of_gas() - br label %"$have_gas_2516" - -"$have_gas_2516": ; preds = %"$out_of_gas_2515", %"$have_gas_2506" - %"$consume_2517" = sub i64 %"$gasrem_2513", 2 - store i64 %"$consume_2517", i64* @_gasrem, align 8 - %"$is_empty_2519" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_2520" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2519", i32 0, i32 0 - %"$is_empty_tag_2521" = load i8, i8* %"$is_empty_tag_2520", align 1 - switch i8 %"$is_empty_tag_2521", label %"$empty_default_2522" [ - i8 0, label %"$True_2523" - i8 1, label %"$False_2525" - ], !dbg !271 - -"$True_2523": ; preds = %"$have_gas_2516" - %"$is_empty_2524" = bitcast %TName_Bool* %"$is_empty_2519" to %CName_True* - br label %"$matchsucc_2518" - -"$False_2525": ; preds = %"$have_gas_2516" - %"$is_empty_2526" = bitcast %TName_Bool* %"$is_empty_2519" to %CName_False* - %"$gasrem_2527" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2528" = icmp ugt i64 1, %"$gasrem_2527" - br i1 %"$gascmp_2528", label %"$out_of_gas_2529", label %"$have_gas_2530" - -"$out_of_gas_2529": ; preds = %"$False_2525" - call void @_out_of_gas() - br label %"$have_gas_2530" - -"$have_gas_2530": ; preds = %"$out_of_gas_2529", %"$False_2525" - %"$consume_2531" = sub i64 %"$gasrem_2527", 1 - store i64 %"$consume_2531", i64* @_gasrem, align 8 - %"$fail__origin_2532" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2532", align 1 - %"$fail__sender_2533" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2533", align 1 - %"$tname_2534" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2532", [20 x i8]* %"$fail__sender_2533", %String %"$tname_2534"), !dbg !272 - br label %"$matchsucc_2518" - -"$empty_default_2522": ; preds = %"$have_gas_2516" - br label %"$matchsucc_2518" - -"$matchsucc_2518": ; preds = %"$have_gas_2530", %"$True_2523", %"$empty_default_2522" - %"$gasrem_2535" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2536" = icmp ugt i64 1, %"$gasrem_2535" - br i1 %"$gascmp_2536", label %"$out_of_gas_2537", label %"$have_gas_2538" - -"$out_of_gas_2537": ; preds = %"$matchsucc_2518" - call void @_out_of_gas() - br label %"$have_gas_2538" - -"$have_gas_2538": ; preds = %"$out_of_gas_2537", %"$matchsucc_2518" - %"$consume_2539" = sub i64 %"$gasrem_2535", 1 - store i64 %"$consume_2539", i64* @_gasrem, align 8 + %"$execptr_load_2485" = load i8*, i8** @_execptr, align 8 + %"$m1_size_2486" = load %Uint32, %Uint32* %m1_size, align 4 + %"$zero_2487" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_2488" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2485", %Uint32 %"$m1_size_2486", %Uint32 %"$zero_2487"), !dbg !268 + store %TName_Bool* %"$eq_call_2488", %TName_Bool** %is_empty, align 8, !dbg !268 + %"$gasrem_2490" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2491" = icmp ugt i64 2, %"$gasrem_2490" + br i1 %"$gascmp_2491", label %"$out_of_gas_2492", label %"$have_gas_2493" + +"$out_of_gas_2492": ; preds = %"$have_gas_2483" + call void @_out_of_gas() + br label %"$have_gas_2493" + +"$have_gas_2493": ; preds = %"$out_of_gas_2492", %"$have_gas_2483" + %"$consume_2494" = sub i64 %"$gasrem_2490", 2 + store i64 %"$consume_2494", i64* @_gasrem, align 8 + %"$is_empty_2496" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_2497" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2496", i32 0, i32 0 + %"$is_empty_tag_2498" = load i8, i8* %"$is_empty_tag_2497", align 1 + switch i8 %"$is_empty_tag_2498", label %"$empty_default_2499" [ + i8 0, label %"$True_2500" + i8 1, label %"$False_2502" + ], !dbg !269 + +"$True_2500": ; preds = %"$have_gas_2493" + %"$is_empty_2501" = bitcast %TName_Bool* %"$is_empty_2496" to %CName_True* + br label %"$matchsucc_2495" + +"$False_2502": ; preds = %"$have_gas_2493" + %"$is_empty_2503" = bitcast %TName_Bool* %"$is_empty_2496" to %CName_False* + %"$gasrem_2504" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2505" = icmp ugt i64 1, %"$gasrem_2504" + br i1 %"$gascmp_2505", label %"$out_of_gas_2506", label %"$have_gas_2507" + +"$out_of_gas_2506": ; preds = %"$False_2502" + call void @_out_of_gas() + br label %"$have_gas_2507" + +"$have_gas_2507": ; preds = %"$out_of_gas_2506", %"$False_2502" + %"$consume_2508" = sub i64 %"$gasrem_2504", 1 + store i64 %"$consume_2508", i64* @_gasrem, align 8 + %"$fail__origin_2509" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2509", align 1 + %"$fail__sender_2510" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2510", align 1 + %"$tname_2511" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2509", [20 x i8]* %"$fail__sender_2510", %String %"$tname_2511"), !dbg !270 + br label %"$matchsucc_2495" + +"$empty_default_2499": ; preds = %"$have_gas_2493" + br label %"$matchsucc_2495" + +"$matchsucc_2495": ; preds = %"$have_gas_2507", %"$True_2500", %"$empty_default_2499" + %"$gasrem_2512" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2513" = icmp ugt i64 1, %"$gasrem_2512" + br i1 %"$gascmp_2513", label %"$out_of_gas_2514", label %"$have_gas_2515" + +"$out_of_gas_2514": ; preds = %"$matchsucc_2495" + call void @_out_of_gas() + br label %"$have_gas_2515" + +"$have_gas_2515": ; preds = %"$out_of_gas_2514", %"$matchsucc_2495" + %"$consume_2516" = sub i64 %"$gasrem_2512", 1 + store i64 %"$consume_2516", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_2540" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2541" = icmp ugt i64 1, %"$gasrem_2540" - br i1 %"$gascmp_2541", label %"$out_of_gas_2542", label %"$have_gas_2543" + %"$gasrem_2517" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2518" = icmp ugt i64 1, %"$gasrem_2517" + br i1 %"$gascmp_2518", label %"$out_of_gas_2519", label %"$have_gas_2520" -"$out_of_gas_2542": ; preds = %"$have_gas_2538" +"$out_of_gas_2519": ; preds = %"$have_gas_2515" call void @_out_of_gas() - br label %"$have_gas_2543" + br label %"$have_gas_2520" -"$have_gas_2543": ; preds = %"$out_of_gas_2542", %"$have_gas_2538" - %"$consume_2544" = sub i64 %"$gasrem_2540", 1 - store i64 %"$consume_2544", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2545", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !275 - %"$gasrem_2546" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2547" = icmp ugt i64 1, %"$gasrem_2546" - br i1 %"$gascmp_2547", label %"$out_of_gas_2548", label %"$have_gas_2549" +"$have_gas_2520": ; preds = %"$out_of_gas_2519", %"$have_gas_2515" + %"$consume_2521" = sub i64 %"$gasrem_2517", 1 + store i64 %"$consume_2521", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2522", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !273 + %"$gasrem_2523" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2524" = icmp ugt i64 1, %"$gasrem_2523" + br i1 %"$gascmp_2524", label %"$out_of_gas_2525", label %"$have_gas_2526" -"$out_of_gas_2548": ; preds = %"$have_gas_2543" +"$out_of_gas_2525": ; preds = %"$have_gas_2520" call void @_out_of_gas() - br label %"$have_gas_2549" + br label %"$have_gas_2526" -"$have_gas_2549": ; preds = %"$out_of_gas_2548", %"$have_gas_2543" - %"$consume_2550" = sub i64 %"$gasrem_2546", 1 - store i64 %"$consume_2550", i64* @_gasrem, align 8 +"$have_gas_2526": ; preds = %"$out_of_gas_2525", %"$have_gas_2520" + %"$consume_2527" = sub i64 %"$gasrem_2523", 1 + store i64 %"$consume_2527", i64* @_gasrem, align 8 %val = alloca %String, align 8 - %"$gasrem_2551" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2552" = icmp ugt i64 1, %"$gasrem_2551" - br i1 %"$gascmp_2552", label %"$out_of_gas_2553", label %"$have_gas_2554" + %"$gasrem_2528" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2529" = icmp ugt i64 1, %"$gasrem_2528" + br i1 %"$gascmp_2529", label %"$out_of_gas_2530", label %"$have_gas_2531" -"$out_of_gas_2553": ; preds = %"$have_gas_2549" +"$out_of_gas_2530": ; preds = %"$have_gas_2526" call void @_out_of_gas() - br label %"$have_gas_2554" + br label %"$have_gas_2531" -"$have_gas_2554": ; preds = %"$out_of_gas_2553", %"$have_gas_2549" - %"$consume_2555" = sub i64 %"$gasrem_2551", 1 - store i64 %"$consume_2555", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2556", i32 0, i32 0), i32 3 }, %String* %val, align 8, !dbg !276 - %"$gasrem_2557" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2558" = icmp ugt i64 1, %"$gasrem_2557" - br i1 %"$gascmp_2558", label %"$out_of_gas_2559", label %"$have_gas_2560" +"$have_gas_2531": ; preds = %"$out_of_gas_2530", %"$have_gas_2526" + %"$consume_2532" = sub i64 %"$gasrem_2528", 1 + store i64 %"$consume_2532", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2533", i32 0, i32 0), i32 3 }, %String* %val, align 8, !dbg !274 + %"$gasrem_2534" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2535" = icmp ugt i64 1, %"$gasrem_2534" + br i1 %"$gascmp_2535", label %"$out_of_gas_2536", label %"$have_gas_2537" -"$out_of_gas_2559": ; preds = %"$have_gas_2554" +"$out_of_gas_2536": ; preds = %"$have_gas_2531" call void @_out_of_gas() - br label %"$have_gas_2560" + br label %"$have_gas_2537" -"$have_gas_2560": ; preds = %"$out_of_gas_2559", %"$have_gas_2554" - %"$consume_2561" = sub i64 %"$gasrem_2557", 1 - store i64 %"$consume_2561", i64* @_gasrem, align 8 +"$have_gas_2537": ; preds = %"$out_of_gas_2536", %"$have_gas_2531" + %"$consume_2538" = sub i64 %"$gasrem_2534", 1 + store i64 %"$consume_2538", i64* @_gasrem, align 8 %"$m1_10" = alloca %Map_String_String*, align 8 - %"$m1_2562" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2562_2563" = bitcast %Map_String_String* %"$m1_2562" to i8* - %"$_lengthof_call_2564" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2562_2563") - %"$gasadd_2565" = add i64 1, %"$_lengthof_call_2564" - %"$gasrem_2566" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2567" = icmp ugt i64 %"$gasadd_2565", %"$gasrem_2566" - br i1 %"$gascmp_2567", label %"$out_of_gas_2568", label %"$have_gas_2569" - -"$out_of_gas_2568": ; preds = %"$have_gas_2560" - call void @_out_of_gas() - br label %"$have_gas_2569" - -"$have_gas_2569": ; preds = %"$out_of_gas_2568", %"$have_gas_2560" - %"$consume_2570" = sub i64 %"$gasrem_2566", %"$gasadd_2565" - store i64 %"$consume_2570", i64* @_gasrem, align 8 - %"$execptr_load_2571" = load i8*, i8** @_execptr, align 8 - %"$m1_2572" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2572_2573" = bitcast %Map_String_String* %"$m1_2572" to i8* - %"$put_key1a_2574" = alloca %String, align 8 - %"$key1a_2575" = load %String, %String* %key1a, align 8 - store %String %"$key1a_2575", %String* %"$put_key1a_2574", align 8 - %"$$put_key1a_2574_2576" = bitcast %String* %"$put_key1a_2574" to i8* - %"$put_val_2577" = alloca %String, align 8 - %"$val_2578" = load %String, %String* %val, align 8 - store %String %"$val_2578", %String* %"$put_val_2577", align 8 - %"$$put_val_2577_2579" = bitcast %String* %"$put_val_2577" to i8* - %"$put_call_2580" = call i8* @_put(i8* %"$execptr_load_2571", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2572_2573", i8* %"$$put_key1a_2574_2576", i8* %"$$put_val_2577_2579"), !dbg !277 - %"$put_2581" = bitcast i8* %"$put_call_2580" to %Map_String_String* - store %Map_String_String* %"$put_2581", %Map_String_String** %"$m1_10", align 8, !dbg !277 - %"$$m1_10_2582" = load %Map_String_String*, %Map_String_String** %"$m1_10", align 8 - %"$$$m1_10_2582_2583" = bitcast %Map_String_String* %"$$m1_10_2582" to i8* - %"$_literal_cost_call_2584" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$$m1_10_2582_2583") - %"$gasrem_2585" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2586" = icmp ugt i64 %"$_literal_cost_call_2584", %"$gasrem_2585" - br i1 %"$gascmp_2586", label %"$out_of_gas_2587", label %"$have_gas_2588" - -"$out_of_gas_2587": ; preds = %"$have_gas_2569" - call void @_out_of_gas() - br label %"$have_gas_2588" - -"$have_gas_2588": ; preds = %"$out_of_gas_2587", %"$have_gas_2569" - %"$consume_2589" = sub i64 %"$gasrem_2585", %"$_literal_cost_call_2584" - store i64 %"$consume_2589", i64* @_gasrem, align 8 - %"$execptr_load_2590" = load i8*, i8** @_execptr, align 8 - %"$$m1_10_2592" = load %Map_String_String*, %Map_String_String** %"$m1_10", align 8 - %"$update_value_2593" = bitcast %Map_String_String* %"$$m1_10_2592" to i8* - call void @_update_field(i8* %"$execptr_load_2590", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2591", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i8* %"$update_value_2593"), !dbg !278 + %"$m1_2539" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2539_2540" = bitcast %Map_String_String* %"$m1_2539" to i8* + %"$_lengthof_call_2541" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2539_2540") + %"$gasadd_2542" = add i64 1, %"$_lengthof_call_2541" + %"$gasrem_2543" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2544" = icmp ugt i64 %"$gasadd_2542", %"$gasrem_2543" + br i1 %"$gascmp_2544", label %"$out_of_gas_2545", label %"$have_gas_2546" + +"$out_of_gas_2545": ; preds = %"$have_gas_2537" + call void @_out_of_gas() + br label %"$have_gas_2546" + +"$have_gas_2546": ; preds = %"$out_of_gas_2545", %"$have_gas_2537" + %"$consume_2547" = sub i64 %"$gasrem_2543", %"$gasadd_2542" + store i64 %"$consume_2547", i64* @_gasrem, align 8 + %"$execptr_load_2548" = load i8*, i8** @_execptr, align 8 + %"$m1_2549" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2549_2550" = bitcast %Map_String_String* %"$m1_2549" to i8* + %"$put_key1a_2551" = alloca %String, align 8 + %"$key1a_2552" = load %String, %String* %key1a, align 8 + store %String %"$key1a_2552", %String* %"$put_key1a_2551", align 8 + %"$$put_key1a_2551_2553" = bitcast %String* %"$put_key1a_2551" to i8* + %"$put_val_2554" = alloca %String, align 8 + %"$val_2555" = load %String, %String* %val, align 8 + store %String %"$val_2555", %String* %"$put_val_2554", align 8 + %"$$put_val_2554_2556" = bitcast %String* %"$put_val_2554" to i8* + %"$put_call_2557" = call i8* @_put(i8* %"$execptr_load_2548", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2549_2550", i8* %"$$put_key1a_2551_2553", i8* %"$$put_val_2554_2556"), !dbg !275 + %"$put_2558" = bitcast i8* %"$put_call_2557" to %Map_String_String* + store %Map_String_String* %"$put_2558", %Map_String_String** %"$m1_10", align 8, !dbg !275 + %"$$m1_10_2559" = load %Map_String_String*, %Map_String_String** %"$m1_10", align 8 + %"$$$m1_10_2559_2560" = bitcast %Map_String_String* %"$$m1_10_2559" to i8* + %"$_literal_cost_call_2561" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$$m1_10_2559_2560") + %"$gasrem_2562" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2563" = icmp ugt i64 %"$_literal_cost_call_2561", %"$gasrem_2562" + br i1 %"$gascmp_2563", label %"$out_of_gas_2564", label %"$have_gas_2565" + +"$out_of_gas_2564": ; preds = %"$have_gas_2546" + call void @_out_of_gas() + br label %"$have_gas_2565" + +"$have_gas_2565": ; preds = %"$out_of_gas_2564", %"$have_gas_2546" + %"$consume_2566" = sub i64 %"$gasrem_2562", %"$_literal_cost_call_2561" + store i64 %"$consume_2566", i64* @_gasrem, align 8 + %"$execptr_load_2567" = load i8*, i8** @_execptr, align 8 + %"$$m1_10_2569" = load %Map_String_String*, %Map_String_String** %"$m1_10", align 8 + %"$update_value_2570" = bitcast %Map_String_String* %"$$m1_10_2569" to i8* + call void @_update_field(i8* %"$execptr_load_2567", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2568", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i8* %"$update_value_2570"), !dbg !276 ret void } @@ -5350,430 +5318,481 @@ declare %Uint32 @_size(i8*) declare %TName_Bool* @_eq_Uint32(i8*, %Uint32, %Uint32) -define void @t9(i8* %0) !dbg !279 { +define void @t9(i8* %0) !dbg !277 { entry: - %"$_amount_2595" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2596" = bitcast i8* %"$_amount_2595" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2596", align 8 - %"$_origin_2597" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2598" = bitcast i8* %"$_origin_2597" to [20 x i8]* - %"$_sender_2599" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2600" = bitcast i8* %"$_sender_2599" to [20 x i8]* - call void @"$t9_2445"(%Uint128 %_amount, [20 x i8]* %"$_origin_2598", [20 x i8]* %"$_sender_2600"), !dbg !280 + %"$_amount_2572" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2573" = bitcast i8* %"$_amount_2572" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2573", align 8 + %"$_origin_2574" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2575" = bitcast i8* %"$_origin_2574" to [20 x i8]* + %"$_sender_2576" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2577" = bitcast i8* %"$_sender_2576" to [20 x i8]* + call void @"$t9_2422"(%Uint128 %_amount, [20 x i8]* %"$_origin_2575", [20 x i8]* %"$_sender_2577"), !dbg !278 ret void } -define internal void @"$t10_2601"(%Uint128 %_amount, [20 x i8]* %"$_origin_2602", [20 x i8]* %"$_sender_2603") !dbg !281 { +define internal void @"$t10_2578"(%Uint128 %_amount, [20 x i8]* %"$_origin_2579", [20 x i8]* %"$_sender_2580") !dbg !279 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2602", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2603", align 1 - %"$gasrem_2604" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2605" = icmp ugt i64 1, %"$gasrem_2604" - br i1 %"$gascmp_2605", label %"$out_of_gas_2606", label %"$have_gas_2607" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2579", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2580", align 1 + %"$gasrem_2581" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2582" = icmp ugt i64 1, %"$gasrem_2581" + br i1 %"$gascmp_2582", label %"$out_of_gas_2583", label %"$have_gas_2584" -"$out_of_gas_2606": ; preds = %entry +"$out_of_gas_2583": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2607" + br label %"$have_gas_2584" -"$have_gas_2607": ; preds = %"$out_of_gas_2606", %entry - %"$consume_2608" = sub i64 %"$gasrem_2604", 1 - store i64 %"$consume_2608", i64* @_gasrem, align 8 +"$have_gas_2584": ; preds = %"$out_of_gas_2583", %entry + %"$consume_2585" = sub i64 %"$gasrem_2581", 1 + store i64 %"$consume_2585", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_2609" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2610" = icmp ugt i64 1, %"$gasrem_2609" - br i1 %"$gascmp_2610", label %"$out_of_gas_2611", label %"$have_gas_2612" + %"$gasrem_2586" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2587" = icmp ugt i64 1, %"$gasrem_2586" + br i1 %"$gascmp_2587", label %"$out_of_gas_2588", label %"$have_gas_2589" -"$out_of_gas_2611": ; preds = %"$have_gas_2607" +"$out_of_gas_2588": ; preds = %"$have_gas_2584" call void @_out_of_gas() - br label %"$have_gas_2612" + br label %"$have_gas_2589" -"$have_gas_2612": ; preds = %"$out_of_gas_2611", %"$have_gas_2607" - %"$consume_2613" = sub i64 %"$gasrem_2609", 1 - store i64 %"$consume_2613", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2614", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !282 - %"$gasrem_2615" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2616" = icmp ugt i64 1, %"$gasrem_2615" - br i1 %"$gascmp_2616", label %"$out_of_gas_2617", label %"$have_gas_2618" +"$have_gas_2589": ; preds = %"$out_of_gas_2588", %"$have_gas_2584" + %"$consume_2590" = sub i64 %"$gasrem_2586", 1 + store i64 %"$consume_2590", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2591", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !280 + %"$gasrem_2592" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2593" = icmp ugt i64 1, %"$gasrem_2592" + br i1 %"$gascmp_2593", label %"$out_of_gas_2594", label %"$have_gas_2595" -"$out_of_gas_2617": ; preds = %"$have_gas_2612" +"$out_of_gas_2594": ; preds = %"$have_gas_2589" call void @_out_of_gas() - br label %"$have_gas_2618" + br label %"$have_gas_2595" -"$have_gas_2618": ; preds = %"$out_of_gas_2617", %"$have_gas_2612" - %"$consume_2619" = sub i64 %"$gasrem_2615", 1 - store i64 %"$consume_2619", i64* @_gasrem, align 8 +"$have_gas_2595": ; preds = %"$out_of_gas_2594", %"$have_gas_2589" + %"$consume_2596" = sub i64 %"$gasrem_2592", 1 + store i64 %"$consume_2596", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_2620" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2621" = icmp ugt i64 1, %"$gasrem_2620" - br i1 %"$gascmp_2621", label %"$out_of_gas_2622", label %"$have_gas_2623" + %"$gasrem_2597" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2598" = icmp ugt i64 1, %"$gasrem_2597" + br i1 %"$gascmp_2598", label %"$out_of_gas_2599", label %"$have_gas_2600" -"$out_of_gas_2622": ; preds = %"$have_gas_2618" +"$out_of_gas_2599": ; preds = %"$have_gas_2595" call void @_out_of_gas() - br label %"$have_gas_2623" + br label %"$have_gas_2600" -"$have_gas_2623": ; preds = %"$out_of_gas_2622", %"$have_gas_2618" - %"$consume_2624" = sub i64 %"$gasrem_2620", 1 - store i64 %"$consume_2624", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2625", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !283 +"$have_gas_2600": ; preds = %"$out_of_gas_2599", %"$have_gas_2595" + %"$consume_2601" = sub i64 %"$gasrem_2597", 1 + store i64 %"$consume_2601", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2602", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !281 %m1 = alloca %Map_String_String*, align 8 - %"$execptr_load_2627" = load i8*, i8** @_execptr, align 8 - %"$m1_call_2628" = call i8* @_fetch_field(i8* %"$execptr_load_2627", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2626", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i32 1), !dbg !284 - %"$m1_2629" = bitcast i8* %"$m1_call_2628" to %Map_String_String* - store %Map_String_String* %"$m1_2629", %Map_String_String** %m1, align 8 + %"$execptr_load_2604" = load i8*, i8** @_execptr, align 8 + %"$m1_call_2605" = call i8* @_fetch_field(i8* %"$execptr_load_2604", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2603", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i32 1), !dbg !282 + %"$m1_2606" = bitcast i8* %"$m1_call_2605" to %Map_String_String* + store %Map_String_String* %"$m1_2606", %Map_String_String** %m1, align 8 + %"$m1_2607" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2607_2608" = bitcast %Map_String_String* %"$m1_2607" to i8* + %"$_literal_cost_call_2609" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2607_2608") + %"$m1_2610" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2610_2611" = bitcast %Map_String_String* %"$m1_2610" to i8* + %"$_mapsortcost_call_2612" = call i64 @_mapsortcost(i8* %"$$m1_2610_2611") + %"$gasadd_2613" = add i64 %"$_literal_cost_call_2609", %"$_mapsortcost_call_2612" + %"$gasrem_2614" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2615" = icmp ugt i64 %"$gasadd_2613", %"$gasrem_2614" + br i1 %"$gascmp_2615", label %"$out_of_gas_2616", label %"$have_gas_2617" + +"$out_of_gas_2616": ; preds = %"$have_gas_2600" + call void @_out_of_gas() + br label %"$have_gas_2617" + +"$have_gas_2617": ; preds = %"$out_of_gas_2616", %"$have_gas_2600" + %"$consume_2618" = sub i64 %"$gasrem_2614", %"$gasadd_2613" + store i64 %"$consume_2618", i64* @_gasrem, align 8 + %"$gasrem_2619" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2620" = icmp ugt i64 1, %"$gasrem_2619" + br i1 %"$gascmp_2620", label %"$out_of_gas_2621", label %"$have_gas_2622" + +"$out_of_gas_2621": ; preds = %"$have_gas_2617" + call void @_out_of_gas() + br label %"$have_gas_2622" + +"$have_gas_2622": ; preds = %"$out_of_gas_2621", %"$have_gas_2617" + %"$consume_2623" = sub i64 %"$gasrem_2619", 1 + store i64 %"$consume_2623", i64* @_gasrem, align 8 + %c1 = alloca %TName_Option_String*, align 8 + %"$gasrem_2624" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2625" = icmp ugt i64 1, %"$gasrem_2624" + br i1 %"$gascmp_2625", label %"$out_of_gas_2626", label %"$have_gas_2627" + +"$out_of_gas_2626": ; preds = %"$have_gas_2622" + call void @_out_of_gas() + br label %"$have_gas_2627" + +"$have_gas_2627": ; preds = %"$out_of_gas_2626", %"$have_gas_2622" + %"$consume_2628" = sub i64 %"$gasrem_2624", 1 + store i64 %"$consume_2628", i64* @_gasrem, align 8 + %"$execptr_load_2629" = load i8*, i8** @_execptr, align 8 %"$m1_2630" = load %Map_String_String*, %Map_String_String** %m1, align 8 %"$$m1_2630_2631" = bitcast %Map_String_String* %"$m1_2630" to i8* - %"$_literal_cost_call_2632" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2630_2631") - %"$m1_2633" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2633_2634" = bitcast %Map_String_String* %"$m1_2633" to i8* - %"$_mapsortcost_call_2635" = call i64 @_mapsortcost(i8* %"$$m1_2633_2634") - %"$gasadd_2636" = add i64 %"$_literal_cost_call_2632", %"$_mapsortcost_call_2635" + %"$get_key1a_2632" = alloca %String, align 8 + %"$key1a_2633" = load %String, %String* %key1a, align 8 + store %String %"$key1a_2633", %String* %"$get_key1a_2632", align 8 + %"$$get_key1a_2632_2634" = bitcast %String* %"$get_key1a_2632" to i8* + %"$get_call_2635" = call i8* @_get(i8* %"$execptr_load_2629", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2630_2631", i8* %"$$get_key1a_2632_2634"), !dbg !283 + %"$get_2636" = bitcast i8* %"$get_call_2635" to %TName_Option_String* + store %TName_Option_String* %"$get_2636", %TName_Option_String** %c1, align 8, !dbg !283 %"$gasrem_2637" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2638" = icmp ugt i64 %"$gasadd_2636", %"$gasrem_2637" + %"$gascmp_2638" = icmp ugt i64 2, %"$gasrem_2637" br i1 %"$gascmp_2638", label %"$out_of_gas_2639", label %"$have_gas_2640" -"$out_of_gas_2639": ; preds = %"$have_gas_2623" +"$out_of_gas_2639": ; preds = %"$have_gas_2627" call void @_out_of_gas() br label %"$have_gas_2640" -"$have_gas_2640": ; preds = %"$out_of_gas_2639", %"$have_gas_2623" - %"$consume_2641" = sub i64 %"$gasrem_2637", %"$gasadd_2636" +"$have_gas_2640": ; preds = %"$out_of_gas_2639", %"$have_gas_2627" + %"$consume_2641" = sub i64 %"$gasrem_2637", 2 store i64 %"$consume_2641", i64* @_gasrem, align 8 - %"$gasrem_2642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2643" = icmp ugt i64 1, %"$gasrem_2642" - br i1 %"$gascmp_2643", label %"$out_of_gas_2644", label %"$have_gas_2645" - -"$out_of_gas_2644": ; preds = %"$have_gas_2640" - call void @_out_of_gas() - br label %"$have_gas_2645" - -"$have_gas_2645": ; preds = %"$out_of_gas_2644", %"$have_gas_2640" - %"$consume_2646" = sub i64 %"$gasrem_2642", 1 - store i64 %"$consume_2646", i64* @_gasrem, align 8 - %c1 = alloca %TName_Option_String*, align 8 - %"$gasrem_2647" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2648" = icmp ugt i64 1, %"$gasrem_2647" - br i1 %"$gascmp_2648", label %"$out_of_gas_2649", label %"$have_gas_2650" - -"$out_of_gas_2649": ; preds = %"$have_gas_2645" - call void @_out_of_gas() - br label %"$have_gas_2650" - -"$have_gas_2650": ; preds = %"$out_of_gas_2649", %"$have_gas_2645" - %"$consume_2651" = sub i64 %"$gasrem_2647", 1 - store i64 %"$consume_2651", i64* @_gasrem, align 8 - %"$execptr_load_2652" = load i8*, i8** @_execptr, align 8 - %"$m1_2653" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2653_2654" = bitcast %Map_String_String* %"$m1_2653" to i8* - %"$get_key1a_2655" = alloca %String, align 8 - %"$key1a_2656" = load %String, %String* %key1a, align 8 - store %String %"$key1a_2656", %String* %"$get_key1a_2655", align 8 - %"$$get_key1a_2655_2657" = bitcast %String* %"$get_key1a_2655" to i8* - %"$get_call_2658" = call i8* @_get(i8* %"$execptr_load_2652", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2653_2654", i8* %"$$get_key1a_2655_2657"), !dbg !285 - %"$get_2659" = bitcast i8* %"$get_call_2658" to %TName_Option_String* - store %TName_Option_String* %"$get_2659", %TName_Option_String** %c1, align 8, !dbg !285 - %"$gasrem_2660" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2661" = icmp ugt i64 2, %"$gasrem_2660" - br i1 %"$gascmp_2661", label %"$out_of_gas_2662", label %"$have_gas_2663" - -"$out_of_gas_2662": ; preds = %"$have_gas_2650" - call void @_out_of_gas() - br label %"$have_gas_2663" - -"$have_gas_2663": ; preds = %"$out_of_gas_2662", %"$have_gas_2650" - %"$consume_2664" = sub i64 %"$gasrem_2660", 2 - store i64 %"$consume_2664", i64* @_gasrem, align 8 - %"$c1_2666" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_2667" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2666", i32 0, i32 0 - %"$c1_tag_2668" = load i8, i8* %"$c1_tag_2667", align 1 - switch i8 %"$c1_tag_2668", label %"$empty_default_2669" [ - i8 0, label %"$Some_2670" - i8 1, label %"$None_2743" - ], !dbg !286 - -"$Some_2670": ; preds = %"$have_gas_2663" - %"$c1_2671" = bitcast %TName_Option_String* %"$c1_2666" to %CName_Some_String* - %"$c_gep_2672" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2671", i32 0, i32 1 - %"$c_load_2673" = load %String, %String* %"$c_gep_2672", align 8 + %"$c1_2643" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_2644" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2643", i32 0, i32 0 + %"$c1_tag_2645" = load i8, i8* %"$c1_tag_2644", align 1 + switch i8 %"$c1_tag_2645", label %"$empty_default_2646" [ + i8 0, label %"$Some_2647" + i8 1, label %"$None_2720" + ], !dbg !284 + +"$Some_2647": ; preds = %"$have_gas_2640" + %"$c1_2648" = bitcast %TName_Option_String* %"$c1_2643" to %CName_Some_String* + %"$c_gep_2649" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2648", i32 0, i32 1 + %"$c_load_2650" = load %String, %String* %"$c_gep_2649", align 8 %c = alloca %String, align 8 - store %String %"$c_load_2673", %String* %c, align 8 - %"$gasrem_2674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2675" = icmp ugt i64 1, %"$gasrem_2674" - br i1 %"$gascmp_2675", label %"$out_of_gas_2676", label %"$have_gas_2677" + store %String %"$c_load_2650", %String* %c, align 8 + %"$gasrem_2651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2652" = icmp ugt i64 1, %"$gasrem_2651" + br i1 %"$gascmp_2652", label %"$out_of_gas_2653", label %"$have_gas_2654" -"$out_of_gas_2676": ; preds = %"$Some_2670" +"$out_of_gas_2653": ; preds = %"$Some_2647" call void @_out_of_gas() - br label %"$have_gas_2677" + br label %"$have_gas_2654" -"$have_gas_2677": ; preds = %"$out_of_gas_2676", %"$Some_2670" - %"$consume_2678" = sub i64 %"$gasrem_2674", 1 - store i64 %"$consume_2678", i64* @_gasrem, align 8 +"$have_gas_2654": ; preds = %"$out_of_gas_2653", %"$Some_2647" + %"$consume_2655" = sub i64 %"$gasrem_2651", 1 + store i64 %"$consume_2655", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_2679" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2680" = icmp ugt i64 1, %"$gasrem_2679" - br i1 %"$gascmp_2680", label %"$out_of_gas_2681", label %"$have_gas_2682" + %"$gasrem_2656" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2657" = icmp ugt i64 1, %"$gasrem_2656" + br i1 %"$gascmp_2657", label %"$out_of_gas_2658", label %"$have_gas_2659" -"$out_of_gas_2681": ; preds = %"$have_gas_2677" +"$out_of_gas_2658": ; preds = %"$have_gas_2654" call void @_out_of_gas() - br label %"$have_gas_2682" + br label %"$have_gas_2659" -"$have_gas_2682": ; preds = %"$out_of_gas_2681", %"$have_gas_2677" - %"$consume_2683" = sub i64 %"$gasrem_2679", 1 - store i64 %"$consume_2683", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2684", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !287 - %"$gasrem_2685" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2686" = icmp ugt i64 1, %"$gasrem_2685" - br i1 %"$gascmp_2686", label %"$out_of_gas_2687", label %"$have_gas_2688" +"$have_gas_2659": ; preds = %"$out_of_gas_2658", %"$have_gas_2654" + %"$consume_2660" = sub i64 %"$gasrem_2656", 1 + store i64 %"$consume_2660", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2661", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !285 + %"$gasrem_2662" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2663" = icmp ugt i64 1, %"$gasrem_2662" + br i1 %"$gascmp_2663", label %"$out_of_gas_2664", label %"$have_gas_2665" -"$out_of_gas_2687": ; preds = %"$have_gas_2682" +"$out_of_gas_2664": ; preds = %"$have_gas_2659" call void @_out_of_gas() - br label %"$have_gas_2688" + br label %"$have_gas_2665" -"$have_gas_2688": ; preds = %"$out_of_gas_2687", %"$have_gas_2682" - %"$consume_2689" = sub i64 %"$gasrem_2685", 1 - store i64 %"$consume_2689", i64* @_gasrem, align 8 +"$have_gas_2665": ; preds = %"$out_of_gas_2664", %"$have_gas_2659" + %"$consume_2666" = sub i64 %"$gasrem_2662", 1 + store i64 %"$consume_2666", i64* @_gasrem, align 8 %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_2690" = alloca %String, align 8 - %"$c_2691" = load %String, %String* %c, align 8 - store %String %"$c_2691", %String* %"$_literal_cost_c_2690", align 8 - %"$$_literal_cost_c_2690_2692" = bitcast %String* %"$_literal_cost_c_2690" to i8* - %"$_literal_cost_call_2693" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_2690_2692") - %"$_literal_cost_v_2694" = alloca %String, align 8 - %"$v_2695" = load %String, %String* %v, align 8 - store %String %"$v_2695", %String* %"$_literal_cost_v_2694", align 8 - %"$$_literal_cost_v_2694_2696" = bitcast %String* %"$_literal_cost_v_2694" to i8* - %"$_literal_cost_call_2697" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_2694_2696") - %"$gasmin_2698" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2693", i64 %"$_literal_cost_call_2697") - %"$gasrem_2699" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2700" = icmp ugt i64 %"$gasmin_2698", %"$gasrem_2699" - br i1 %"$gascmp_2700", label %"$out_of_gas_2701", label %"$have_gas_2702" - -"$out_of_gas_2701": ; preds = %"$have_gas_2688" - call void @_out_of_gas() - br label %"$have_gas_2702" - -"$have_gas_2702": ; preds = %"$out_of_gas_2701", %"$have_gas_2688" - %"$consume_2703" = sub i64 %"$gasrem_2699", %"$gasmin_2698" - store i64 %"$consume_2703", i64* @_gasrem, align 8 - %"$execptr_load_2704" = load i8*, i8** @_execptr, align 8 - %"$c_2705" = load %String, %String* %c, align 8 - %"$v_2706" = load %String, %String* %v, align 8 - %"$eq_call_2707" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2704", %String %"$c_2705", %String %"$v_2706"), !dbg !290 - store %TName_Bool* %"$eq_call_2707", %TName_Bool** %eq, align 8, !dbg !290 - %"$gasrem_2709" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2710" = icmp ugt i64 2, %"$gasrem_2709" - br i1 %"$gascmp_2710", label %"$out_of_gas_2711", label %"$have_gas_2712" - -"$out_of_gas_2711": ; preds = %"$have_gas_2702" - call void @_out_of_gas() - br label %"$have_gas_2712" - -"$have_gas_2712": ; preds = %"$out_of_gas_2711", %"$have_gas_2702" - %"$consume_2713" = sub i64 %"$gasrem_2709", 2 - store i64 %"$consume_2713", i64* @_gasrem, align 8 - %"$eq_2715" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_2716" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2715", i32 0, i32 0 - %"$eq_tag_2717" = load i8, i8* %"$eq_tag_2716", align 1 - switch i8 %"$eq_tag_2717", label %"$empty_default_2718" [ - i8 0, label %"$True_2719" - i8 1, label %"$False_2721" - ], !dbg !291 - -"$True_2719": ; preds = %"$have_gas_2712" - %"$eq_2720" = bitcast %TName_Bool* %"$eq_2715" to %CName_True* - br label %"$matchsucc_2714" - -"$False_2721": ; preds = %"$have_gas_2712" - %"$eq_2722" = bitcast %TName_Bool* %"$eq_2715" to %CName_False* - %"$gasrem_2723" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2724" = icmp ugt i64 1, %"$gasrem_2723" - br i1 %"$gascmp_2724", label %"$out_of_gas_2725", label %"$have_gas_2726" - -"$out_of_gas_2725": ; preds = %"$False_2721" - call void @_out_of_gas() - br label %"$have_gas_2726" - -"$have_gas_2726": ; preds = %"$out_of_gas_2725", %"$False_2721" - %"$consume_2727" = sub i64 %"$gasrem_2723", 1 - store i64 %"$consume_2727", i64* @_gasrem, align 8 + %"$_literal_cost_c_2667" = alloca %String, align 8 + %"$c_2668" = load %String, %String* %c, align 8 + store %String %"$c_2668", %String* %"$_literal_cost_c_2667", align 8 + %"$$_literal_cost_c_2667_2669" = bitcast %String* %"$_literal_cost_c_2667" to i8* + %"$_literal_cost_call_2670" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_2667_2669") + %"$_literal_cost_v_2671" = alloca %String, align 8 + %"$v_2672" = load %String, %String* %v, align 8 + store %String %"$v_2672", %String* %"$_literal_cost_v_2671", align 8 + %"$$_literal_cost_v_2671_2673" = bitcast %String* %"$_literal_cost_v_2671" to i8* + %"$_literal_cost_call_2674" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_2671_2673") + %"$gasmin_2675" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2670", i64 %"$_literal_cost_call_2674") + %"$gasrem_2676" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2677" = icmp ugt i64 %"$gasmin_2675", %"$gasrem_2676" + br i1 %"$gascmp_2677", label %"$out_of_gas_2678", label %"$have_gas_2679" + +"$out_of_gas_2678": ; preds = %"$have_gas_2665" + call void @_out_of_gas() + br label %"$have_gas_2679" + +"$have_gas_2679": ; preds = %"$out_of_gas_2678", %"$have_gas_2665" + %"$consume_2680" = sub i64 %"$gasrem_2676", %"$gasmin_2675" + store i64 %"$consume_2680", i64* @_gasrem, align 8 + %"$execptr_load_2681" = load i8*, i8** @_execptr, align 8 + %"$c_2682" = load %String, %String* %c, align 8 + %"$v_2683" = load %String, %String* %v, align 8 + %"$eq_call_2684" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2681", %String %"$c_2682", %String %"$v_2683"), !dbg !288 + store %TName_Bool* %"$eq_call_2684", %TName_Bool** %eq, align 8, !dbg !288 + %"$gasrem_2686" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2687" = icmp ugt i64 2, %"$gasrem_2686" + br i1 %"$gascmp_2687", label %"$out_of_gas_2688", label %"$have_gas_2689" + +"$out_of_gas_2688": ; preds = %"$have_gas_2679" + call void @_out_of_gas() + br label %"$have_gas_2689" + +"$have_gas_2689": ; preds = %"$out_of_gas_2688", %"$have_gas_2679" + %"$consume_2690" = sub i64 %"$gasrem_2686", 2 + store i64 %"$consume_2690", i64* @_gasrem, align 8 + %"$eq_2692" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_2693" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2692", i32 0, i32 0 + %"$eq_tag_2694" = load i8, i8* %"$eq_tag_2693", align 1 + switch i8 %"$eq_tag_2694", label %"$empty_default_2695" [ + i8 0, label %"$True_2696" + i8 1, label %"$False_2698" + ], !dbg !289 + +"$True_2696": ; preds = %"$have_gas_2689" + %"$eq_2697" = bitcast %TName_Bool* %"$eq_2692" to %CName_True* + br label %"$matchsucc_2691" + +"$False_2698": ; preds = %"$have_gas_2689" + %"$eq_2699" = bitcast %TName_Bool* %"$eq_2692" to %CName_False* + %"$gasrem_2700" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2701" = icmp ugt i64 1, %"$gasrem_2700" + br i1 %"$gascmp_2701", label %"$out_of_gas_2702", label %"$have_gas_2703" + +"$out_of_gas_2702": ; preds = %"$False_2698" + call void @_out_of_gas() + br label %"$have_gas_2703" + +"$have_gas_2703": ; preds = %"$out_of_gas_2702", %"$False_2698" + %"$consume_2704" = sub i64 %"$gasrem_2700", 1 + store i64 %"$consume_2704", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_2728" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2729" = icmp ugt i64 1, %"$gasrem_2728" - br i1 %"$gascmp_2729", label %"$out_of_gas_2730", label %"$have_gas_2731" + %"$gasrem_2705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2706" = icmp ugt i64 1, %"$gasrem_2705" + br i1 %"$gascmp_2706", label %"$out_of_gas_2707", label %"$have_gas_2708" -"$out_of_gas_2730": ; preds = %"$have_gas_2726" +"$out_of_gas_2707": ; preds = %"$have_gas_2703" call void @_out_of_gas() - br label %"$have_gas_2731" + br label %"$have_gas_2708" -"$have_gas_2731": ; preds = %"$out_of_gas_2730", %"$have_gas_2726" - %"$consume_2732" = sub i64 %"$gasrem_2728", 1 - store i64 %"$consume_2732", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$stringlit_2733", i32 0, i32 0), i32 25 }, %String* %m, align 8, !dbg !292 - %"$gasrem_2734" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2735" = icmp ugt i64 1, %"$gasrem_2734" - br i1 %"$gascmp_2735", label %"$out_of_gas_2736", label %"$have_gas_2737" +"$have_gas_2708": ; preds = %"$out_of_gas_2707", %"$have_gas_2703" + %"$consume_2709" = sub i64 %"$gasrem_2705", 1 + store i64 %"$consume_2709", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$stringlit_2710", i32 0, i32 0), i32 25 }, %String* %m, align 8, !dbg !290 + %"$gasrem_2711" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2712" = icmp ugt i64 1, %"$gasrem_2711" + br i1 %"$gascmp_2712", label %"$out_of_gas_2713", label %"$have_gas_2714" -"$out_of_gas_2736": ; preds = %"$have_gas_2731" +"$out_of_gas_2713": ; preds = %"$have_gas_2708" call void @_out_of_gas() - br label %"$have_gas_2737" + br label %"$have_gas_2714" -"$have_gas_2737": ; preds = %"$out_of_gas_2736", %"$have_gas_2731" - %"$consume_2738" = sub i64 %"$gasrem_2734", 1 - store i64 %"$consume_2738", i64* @_gasrem, align 8 - %"$fail_msg__origin_2739" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2739", align 1 - %"$fail_msg__sender_2740" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2740", align 1 - %"$tname_2741" = load %String, %String* %tname, align 8 - %"$m_2742" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2739", [20 x i8]* %"$fail_msg__sender_2740", %String %"$tname_2741", %String %"$m_2742"), !dbg !295 - br label %"$matchsucc_2714" +"$have_gas_2714": ; preds = %"$out_of_gas_2713", %"$have_gas_2708" + %"$consume_2715" = sub i64 %"$gasrem_2711", 1 + store i64 %"$consume_2715", i64* @_gasrem, align 8 + %"$fail_msg__origin_2716" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2716", align 1 + %"$fail_msg__sender_2717" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2717", align 1 + %"$tname_2718" = load %String, %String* %tname, align 8 + %"$m_2719" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2716", [20 x i8]* %"$fail_msg__sender_2717", %String %"$tname_2718", %String %"$m_2719"), !dbg !293 + br label %"$matchsucc_2691" -"$empty_default_2718": ; preds = %"$have_gas_2712" - br label %"$matchsucc_2714" +"$empty_default_2695": ; preds = %"$have_gas_2689" + br label %"$matchsucc_2691" -"$matchsucc_2714": ; preds = %"$have_gas_2737", %"$True_2719", %"$empty_default_2718" - br label %"$matchsucc_2665" +"$matchsucc_2691": ; preds = %"$have_gas_2714", %"$True_2696", %"$empty_default_2695" + br label %"$matchsucc_2642" -"$None_2743": ; preds = %"$have_gas_2663" - %"$c1_2744" = bitcast %TName_Option_String* %"$c1_2666" to %CName_None_String* - %"$gasrem_2745" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2746" = icmp ugt i64 1, %"$gasrem_2745" - br i1 %"$gascmp_2746", label %"$out_of_gas_2747", label %"$have_gas_2748" +"$None_2720": ; preds = %"$have_gas_2640" + %"$c1_2721" = bitcast %TName_Option_String* %"$c1_2643" to %CName_None_String* + %"$gasrem_2722" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2723" = icmp ugt i64 1, %"$gasrem_2722" + br i1 %"$gascmp_2723", label %"$out_of_gas_2724", label %"$have_gas_2725" -"$out_of_gas_2747": ; preds = %"$None_2743" +"$out_of_gas_2724": ; preds = %"$None_2720" call void @_out_of_gas() - br label %"$have_gas_2748" + br label %"$have_gas_2725" -"$have_gas_2748": ; preds = %"$out_of_gas_2747", %"$None_2743" - %"$consume_2749" = sub i64 %"$gasrem_2745", 1 - store i64 %"$consume_2749", i64* @_gasrem, align 8 +"$have_gas_2725": ; preds = %"$out_of_gas_2724", %"$None_2720" + %"$consume_2726" = sub i64 %"$gasrem_2722", 1 + store i64 %"$consume_2726", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_2750" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2751" = icmp ugt i64 1, %"$gasrem_2750" - br i1 %"$gascmp_2751", label %"$out_of_gas_2752", label %"$have_gas_2753" - -"$out_of_gas_2752": ; preds = %"$have_gas_2748" - call void @_out_of_gas() - br label %"$have_gas_2753" - -"$have_gas_2753": ; preds = %"$out_of_gas_2752", %"$have_gas_2748" - %"$consume_2754" = sub i64 %"$gasrem_2750", 1 - store i64 %"$consume_2754", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_2755", i32 0, i32 0), i32 15 }, %String* %m2, align 8, !dbg !296 - %"$gasrem_2756" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2757" = icmp ugt i64 1, %"$gasrem_2756" - br i1 %"$gascmp_2757", label %"$out_of_gas_2758", label %"$have_gas_2759" - -"$out_of_gas_2758": ; preds = %"$have_gas_2753" - call void @_out_of_gas() - br label %"$have_gas_2759" - -"$have_gas_2759": ; preds = %"$out_of_gas_2758", %"$have_gas_2753" - %"$consume_2760" = sub i64 %"$gasrem_2756", 1 - store i64 %"$consume_2760", i64* @_gasrem, align 8 - %"$fail_msg__origin_2761" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2761", align 1 - %"$fail_msg__sender_2762" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2762", align 1 - %"$tname_2763" = load %String, %String* %tname, align 8 - %"$m_2764" = load %String, %String* %m2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2761", [20 x i8]* %"$fail_msg__sender_2762", %String %"$tname_2763", %String %"$m_2764"), !dbg !298 - br label %"$matchsucc_2665" - -"$empty_default_2669": ; preds = %"$have_gas_2663" - br label %"$matchsucc_2665" - -"$matchsucc_2665": ; preds = %"$have_gas_2759", %"$matchsucc_2714", %"$empty_default_2669" - %"$gasrem_2765" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2766" = icmp ugt i64 1, %"$gasrem_2765" - br i1 %"$gascmp_2766", label %"$out_of_gas_2767", label %"$have_gas_2768" - -"$out_of_gas_2767": ; preds = %"$matchsucc_2665" - call void @_out_of_gas() - br label %"$have_gas_2768" - -"$have_gas_2768": ; preds = %"$out_of_gas_2767", %"$matchsucc_2665" - %"$consume_2769" = sub i64 %"$gasrem_2765", 1 - store i64 %"$consume_2769", i64* @_gasrem, align 8 - %"$indices_buf_2770_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2770_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2770_salloc_load", i64 16) - %"$indices_buf_2770_salloc" = bitcast i8* %"$indices_buf_2770_salloc_salloc" to [16 x i8]* - %"$indices_buf_2770" = bitcast [16 x i8]* %"$indices_buf_2770_salloc" to i8* - %"$key1a_2771" = load %String, %String* %key1a, align 8 - %"$indices_gep_2772" = getelementptr i8, i8* %"$indices_buf_2770", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_2772" to %String* - store %String %"$key1a_2771", %String* %indices_cast, align 8 - %"$execptr_load_2773" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_2773", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2774", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_2770", i8* null), !dbg !299 + %"$gasrem_2727" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2728" = icmp ugt i64 1, %"$gasrem_2727" + br i1 %"$gascmp_2728", label %"$out_of_gas_2729", label %"$have_gas_2730" + +"$out_of_gas_2729": ; preds = %"$have_gas_2725" + call void @_out_of_gas() + br label %"$have_gas_2730" + +"$have_gas_2730": ; preds = %"$out_of_gas_2729", %"$have_gas_2725" + %"$consume_2731" = sub i64 %"$gasrem_2727", 1 + store i64 %"$consume_2731", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_2732", i32 0, i32 0), i32 15 }, %String* %m2, align 8, !dbg !294 + %"$gasrem_2733" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2734" = icmp ugt i64 1, %"$gasrem_2733" + br i1 %"$gascmp_2734", label %"$out_of_gas_2735", label %"$have_gas_2736" + +"$out_of_gas_2735": ; preds = %"$have_gas_2730" + call void @_out_of_gas() + br label %"$have_gas_2736" + +"$have_gas_2736": ; preds = %"$out_of_gas_2735", %"$have_gas_2730" + %"$consume_2737" = sub i64 %"$gasrem_2733", 1 + store i64 %"$consume_2737", i64* @_gasrem, align 8 + %"$fail_msg__origin_2738" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2738", align 1 + %"$fail_msg__sender_2739" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2739", align 1 + %"$tname_2740" = load %String, %String* %tname, align 8 + %"$m_2741" = load %String, %String* %m2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2738", [20 x i8]* %"$fail_msg__sender_2739", %String %"$tname_2740", %String %"$m_2741"), !dbg !296 + br label %"$matchsucc_2642" + +"$empty_default_2646": ; preds = %"$have_gas_2640" + br label %"$matchsucc_2642" + +"$matchsucc_2642": ; preds = %"$have_gas_2736", %"$matchsucc_2691", %"$empty_default_2646" + %"$gasrem_2742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2743" = icmp ugt i64 1, %"$gasrem_2742" + br i1 %"$gascmp_2743", label %"$out_of_gas_2744", label %"$have_gas_2745" + +"$out_of_gas_2744": ; preds = %"$matchsucc_2642" + call void @_out_of_gas() + br label %"$have_gas_2745" + +"$have_gas_2745": ; preds = %"$out_of_gas_2744", %"$matchsucc_2642" + %"$consume_2746" = sub i64 %"$gasrem_2742", 1 + store i64 %"$consume_2746", i64* @_gasrem, align 8 + %"$indices_buf_2747_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2747_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2747_salloc_load", i64 16) + %"$indices_buf_2747_salloc" = bitcast i8* %"$indices_buf_2747_salloc_salloc" to [16 x i8]* + %"$indices_buf_2747" = bitcast [16 x i8]* %"$indices_buf_2747_salloc" to i8* + %"$key1a_2748" = load %String, %String* %key1a, align 8 + %"$indices_gep_2749" = getelementptr i8, i8* %"$indices_buf_2747", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2749" to %String* + store %String %"$key1a_2748", %String* %indices_cast, align 8 + %"$execptr_load_2750" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_2750", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2751", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_2747", i8* null), !dbg !297 ret void } declare i8* @_get(i8*, %_TyDescrTy_Typ*, i8*, i8*) -define void @t10(i8* %0) !dbg !300 { +define void @t10(i8* %0) !dbg !298 { entry: - %"$_amount_2776" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2777" = bitcast i8* %"$_amount_2776" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2777", align 8 - %"$_origin_2778" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2779" = bitcast i8* %"$_origin_2778" to [20 x i8]* - %"$_sender_2780" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2781" = bitcast i8* %"$_sender_2780" to [20 x i8]* - call void @"$t10_2601"(%Uint128 %_amount, [20 x i8]* %"$_origin_2779", [20 x i8]* %"$_sender_2781"), !dbg !301 + %"$_amount_2753" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2754" = bitcast i8* %"$_amount_2753" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2754", align 8 + %"$_origin_2755" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2756" = bitcast i8* %"$_origin_2755" to [20 x i8]* + %"$_sender_2757" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2758" = bitcast i8* %"$_sender_2757" to [20 x i8]* + call void @"$t10_2578"(%Uint128 %_amount, [20 x i8]* %"$_origin_2756", [20 x i8]* %"$_sender_2758"), !dbg !299 ret void } -define internal void @"$t11_2782"(%Uint128 %_amount, [20 x i8]* %"$_origin_2783", [20 x i8]* %"$_sender_2784") !dbg !302 { +define internal void @"$t11_2759"(%Uint128 %_amount, [20 x i8]* %"$_origin_2760", [20 x i8]* %"$_sender_2761") !dbg !300 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2783", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2784", align 1 - %"$gasrem_2785" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2786" = icmp ugt i64 1, %"$gasrem_2785" - br i1 %"$gascmp_2786", label %"$out_of_gas_2787", label %"$have_gas_2788" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2760", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2761", align 1 + %"$gasrem_2762" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2763" = icmp ugt i64 1, %"$gasrem_2762" + br i1 %"$gascmp_2763", label %"$out_of_gas_2764", label %"$have_gas_2765" -"$out_of_gas_2787": ; preds = %entry +"$out_of_gas_2764": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2788" + br label %"$have_gas_2765" -"$have_gas_2788": ; preds = %"$out_of_gas_2787", %entry - %"$consume_2789" = sub i64 %"$gasrem_2785", 1 - store i64 %"$consume_2789", i64* @_gasrem, align 8 +"$have_gas_2765": ; preds = %"$out_of_gas_2764", %entry + %"$consume_2766" = sub i64 %"$gasrem_2762", 1 + store i64 %"$consume_2766", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_2790" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2791" = icmp ugt i64 1, %"$gasrem_2790" - br i1 %"$gascmp_2791", label %"$out_of_gas_2792", label %"$have_gas_2793" + %"$gasrem_2767" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2768" = icmp ugt i64 1, %"$gasrem_2767" + br i1 %"$gascmp_2768", label %"$out_of_gas_2769", label %"$have_gas_2770" -"$out_of_gas_2792": ; preds = %"$have_gas_2788" +"$out_of_gas_2769": ; preds = %"$have_gas_2765" call void @_out_of_gas() - br label %"$have_gas_2793" + br label %"$have_gas_2770" -"$have_gas_2793": ; preds = %"$out_of_gas_2792", %"$have_gas_2788" - %"$consume_2794" = sub i64 %"$gasrem_2790", 1 - store i64 %"$consume_2794", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2795", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !303 +"$have_gas_2770": ; preds = %"$out_of_gas_2769", %"$have_gas_2765" + %"$consume_2771" = sub i64 %"$gasrem_2767", 1 + store i64 %"$consume_2771", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2772", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !301 %m1 = alloca %Map_String_String*, align 8 - %"$execptr_load_2797" = load i8*, i8** @_execptr, align 8 - %"$m1_call_2798" = call i8* @_fetch_field(i8* %"$execptr_load_2797", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2796", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i32 1), !dbg !304 - %"$m1_2799" = bitcast i8* %"$m1_call_2798" to %Map_String_String* - store %Map_String_String* %"$m1_2799", %Map_String_String** %m1, align 8 - %"$m1_2800" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2800_2801" = bitcast %Map_String_String* %"$m1_2800" to i8* - %"$_literal_cost_call_2802" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2800_2801") - %"$m1_2803" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2803_2804" = bitcast %Map_String_String* %"$m1_2803" to i8* - %"$_mapsortcost_call_2805" = call i64 @_mapsortcost(i8* %"$$m1_2803_2804") - %"$gasadd_2806" = add i64 %"$_literal_cost_call_2802", %"$_mapsortcost_call_2805" + %"$execptr_load_2774" = load i8*, i8** @_execptr, align 8 + %"$m1_call_2775" = call i8* @_fetch_field(i8* %"$execptr_load_2774", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2773", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i32 1), !dbg !302 + %"$m1_2776" = bitcast i8* %"$m1_call_2775" to %Map_String_String* + store %Map_String_String* %"$m1_2776", %Map_String_String** %m1, align 8 + %"$m1_2777" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2777_2778" = bitcast %Map_String_String* %"$m1_2777" to i8* + %"$_literal_cost_call_2779" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2777_2778") + %"$m1_2780" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2780_2781" = bitcast %Map_String_String* %"$m1_2780" to i8* + %"$_mapsortcost_call_2782" = call i64 @_mapsortcost(i8* %"$$m1_2780_2781") + %"$gasadd_2783" = add i64 %"$_literal_cost_call_2779", %"$_mapsortcost_call_2782" + %"$gasrem_2784" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2785" = icmp ugt i64 %"$gasadd_2783", %"$gasrem_2784" + br i1 %"$gascmp_2785", label %"$out_of_gas_2786", label %"$have_gas_2787" + +"$out_of_gas_2786": ; preds = %"$have_gas_2770" + call void @_out_of_gas() + br label %"$have_gas_2787" + +"$have_gas_2787": ; preds = %"$out_of_gas_2786", %"$have_gas_2770" + %"$consume_2788" = sub i64 %"$gasrem_2784", %"$gasadd_2783" + store i64 %"$consume_2788", i64* @_gasrem, align 8 + %"$gasrem_2789" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2790" = icmp ugt i64 1, %"$gasrem_2789" + br i1 %"$gascmp_2790", label %"$out_of_gas_2791", label %"$have_gas_2792" + +"$out_of_gas_2791": ; preds = %"$have_gas_2787" + call void @_out_of_gas() + br label %"$have_gas_2792" + +"$have_gas_2792": ; preds = %"$out_of_gas_2791", %"$have_gas_2787" + %"$consume_2793" = sub i64 %"$gasrem_2789", 1 + store i64 %"$consume_2793", i64* @_gasrem, align 8 + %m1_size = alloca %Uint32, align 8 + %"$gasrem_2794" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2795" = icmp ugt i64 1, %"$gasrem_2794" + br i1 %"$gascmp_2795", label %"$out_of_gas_2796", label %"$have_gas_2797" + +"$out_of_gas_2796": ; preds = %"$have_gas_2792" + call void @_out_of_gas() + br label %"$have_gas_2797" + +"$have_gas_2797": ; preds = %"$out_of_gas_2796", %"$have_gas_2792" + %"$consume_2798" = sub i64 %"$gasrem_2794", 1 + store i64 %"$consume_2798", i64* @_gasrem, align 8 + %"$m1_2799" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2799_2800" = bitcast %Map_String_String* %"$m1_2799" to i8* + %"$size_call_2801" = call %Uint32 @_size(i8* %"$$m1_2799_2800"), !dbg !303 + store %Uint32 %"$size_call_2801", %Uint32* %m1_size, align 4, !dbg !303 + %"$gasrem_2802" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2803" = icmp ugt i64 1, %"$gasrem_2802" + br i1 %"$gascmp_2803", label %"$out_of_gas_2804", label %"$have_gas_2805" + +"$out_of_gas_2804": ; preds = %"$have_gas_2797" + call void @_out_of_gas() + br label %"$have_gas_2805" + +"$have_gas_2805": ; preds = %"$out_of_gas_2804", %"$have_gas_2797" + %"$consume_2806" = sub i64 %"$gasrem_2802", 1 + store i64 %"$consume_2806", i64* @_gasrem, align 8 + %zero = alloca %Uint32, align 8 %"$gasrem_2807" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2808" = icmp ugt i64 %"$gasadd_2806", %"$gasrem_2807" + %"$gascmp_2808" = icmp ugt i64 1, %"$gasrem_2807" br i1 %"$gascmp_2808", label %"$out_of_gas_2809", label %"$have_gas_2810" -"$out_of_gas_2809": ; preds = %"$have_gas_2793" +"$out_of_gas_2809": ; preds = %"$have_gas_2805" call void @_out_of_gas() br label %"$have_gas_2810" -"$have_gas_2810": ; preds = %"$out_of_gas_2809", %"$have_gas_2793" - %"$consume_2811" = sub i64 %"$gasrem_2807", %"$gasadd_2806" +"$have_gas_2810": ; preds = %"$out_of_gas_2809", %"$have_gas_2805" + %"$consume_2811" = sub i64 %"$gasrem_2807", 1 store i64 %"$consume_2811", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !304 %"$gasrem_2812" = load i64, i64* @_gasrem, align 8 %"$gascmp_2813" = icmp ugt i64 1, %"$gasrem_2812" br i1 %"$gascmp_2813", label %"$out_of_gas_2814", label %"$have_gas_2815" @@ -5785,9 +5804,9 @@ entry: "$have_gas_2815": ; preds = %"$out_of_gas_2814", %"$have_gas_2810" %"$consume_2816" = sub i64 %"$gasrem_2812", 1 store i64 %"$consume_2816", i64* @_gasrem, align 8 - %m1_size = alloca %Uint32, align 8 + %is_empty = alloca %TName_Bool*, align 8 %"$gasrem_2817" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2818" = icmp ugt i64 1, %"$gasrem_2817" + %"$gascmp_2818" = icmp ugt i64 4, %"$gasrem_2817" br i1 %"$gascmp_2818", label %"$out_of_gas_2819", label %"$have_gas_2820" "$out_of_gas_2819": ; preds = %"$have_gas_2815" @@ -5795,224 +5814,224 @@ entry: br label %"$have_gas_2820" "$have_gas_2820": ; preds = %"$out_of_gas_2819", %"$have_gas_2815" - %"$consume_2821" = sub i64 %"$gasrem_2817", 1 + %"$consume_2821" = sub i64 %"$gasrem_2817", 4 store i64 %"$consume_2821", i64* @_gasrem, align 8 - %"$m1_2822" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2822_2823" = bitcast %Map_String_String* %"$m1_2822" to i8* - %"$size_call_2824" = call %Uint32 @_size(i8* %"$$m1_2822_2823"), !dbg !305 - store %Uint32 %"$size_call_2824", %Uint32* %m1_size, align 4, !dbg !305 - %"$gasrem_2825" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2826" = icmp ugt i64 1, %"$gasrem_2825" - br i1 %"$gascmp_2826", label %"$out_of_gas_2827", label %"$have_gas_2828" - -"$out_of_gas_2827": ; preds = %"$have_gas_2820" - call void @_out_of_gas() - br label %"$have_gas_2828" - -"$have_gas_2828": ; preds = %"$out_of_gas_2827", %"$have_gas_2820" - %"$consume_2829" = sub i64 %"$gasrem_2825", 1 - store i64 %"$consume_2829", i64* @_gasrem, align 8 - %zero = alloca %Uint32, align 8 - %"$gasrem_2830" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2831" = icmp ugt i64 1, %"$gasrem_2830" - br i1 %"$gascmp_2831", label %"$out_of_gas_2832", label %"$have_gas_2833" - -"$out_of_gas_2832": ; preds = %"$have_gas_2828" - call void @_out_of_gas() - br label %"$have_gas_2833" - -"$have_gas_2833": ; preds = %"$out_of_gas_2832", %"$have_gas_2828" - %"$consume_2834" = sub i64 %"$gasrem_2830", 1 - store i64 %"$consume_2834", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !306 - %"$gasrem_2835" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2836" = icmp ugt i64 1, %"$gasrem_2835" - br i1 %"$gascmp_2836", label %"$out_of_gas_2837", label %"$have_gas_2838" - -"$out_of_gas_2837": ; preds = %"$have_gas_2833" - call void @_out_of_gas() - br label %"$have_gas_2838" - -"$have_gas_2838": ; preds = %"$out_of_gas_2837", %"$have_gas_2833" - %"$consume_2839" = sub i64 %"$gasrem_2835", 1 - store i64 %"$consume_2839", i64* @_gasrem, align 8 - %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_2840" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2841" = icmp ugt i64 4, %"$gasrem_2840" - br i1 %"$gascmp_2841", label %"$out_of_gas_2842", label %"$have_gas_2843" - -"$out_of_gas_2842": ; preds = %"$have_gas_2838" - call void @_out_of_gas() - br label %"$have_gas_2843" - -"$have_gas_2843": ; preds = %"$out_of_gas_2842", %"$have_gas_2838" - %"$consume_2844" = sub i64 %"$gasrem_2840", 4 - store i64 %"$consume_2844", i64* @_gasrem, align 8 - %"$execptr_load_2845" = load i8*, i8** @_execptr, align 8 - %"$m1_size_2846" = load %Uint32, %Uint32* %m1_size, align 4 - %"$zero_2847" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_2848" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2845", %Uint32 %"$m1_size_2846", %Uint32 %"$zero_2847"), !dbg !307 - store %TName_Bool* %"$eq_call_2848", %TName_Bool** %is_empty, align 8, !dbg !307 - %"$gasrem_2850" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2851" = icmp ugt i64 2, %"$gasrem_2850" - br i1 %"$gascmp_2851", label %"$out_of_gas_2852", label %"$have_gas_2853" - -"$out_of_gas_2852": ; preds = %"$have_gas_2843" - call void @_out_of_gas() - br label %"$have_gas_2853" - -"$have_gas_2853": ; preds = %"$out_of_gas_2852", %"$have_gas_2843" - %"$consume_2854" = sub i64 %"$gasrem_2850", 2 - store i64 %"$consume_2854", i64* @_gasrem, align 8 - %"$is_empty_2856" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_2857" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2856", i32 0, i32 0 - %"$is_empty_tag_2858" = load i8, i8* %"$is_empty_tag_2857", align 1 - switch i8 %"$is_empty_tag_2858", label %"$empty_default_2859" [ - i8 0, label %"$True_2860" - i8 1, label %"$False_2862" - ], !dbg !308 - -"$True_2860": ; preds = %"$have_gas_2853" - %"$is_empty_2861" = bitcast %TName_Bool* %"$is_empty_2856" to %CName_True* - br label %"$matchsucc_2855" - -"$False_2862": ; preds = %"$have_gas_2853" - %"$is_empty_2863" = bitcast %TName_Bool* %"$is_empty_2856" to %CName_False* - %"$gasrem_2864" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2865" = icmp ugt i64 1, %"$gasrem_2864" - br i1 %"$gascmp_2865", label %"$out_of_gas_2866", label %"$have_gas_2867" - -"$out_of_gas_2866": ; preds = %"$False_2862" - call void @_out_of_gas() - br label %"$have_gas_2867" - -"$have_gas_2867": ; preds = %"$out_of_gas_2866", %"$False_2862" - %"$consume_2868" = sub i64 %"$gasrem_2864", 1 - store i64 %"$consume_2868", i64* @_gasrem, align 8 - %"$fail__origin_2869" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2869", align 1 - %"$fail__sender_2870" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2870", align 1 - %"$tname_2871" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2869", [20 x i8]* %"$fail__sender_2870", %String %"$tname_2871"), !dbg !309 - br label %"$matchsucc_2855" - -"$empty_default_2859": ; preds = %"$have_gas_2853" - br label %"$matchsucc_2855" - -"$matchsucc_2855": ; preds = %"$have_gas_2867", %"$True_2860", %"$empty_default_2859" - %"$gasrem_2872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2873" = icmp ugt i64 1, %"$gasrem_2872" - br i1 %"$gascmp_2873", label %"$out_of_gas_2874", label %"$have_gas_2875" - -"$out_of_gas_2874": ; preds = %"$matchsucc_2855" - call void @_out_of_gas() - br label %"$have_gas_2875" - -"$have_gas_2875": ; preds = %"$out_of_gas_2874", %"$matchsucc_2855" - %"$consume_2876" = sub i64 %"$gasrem_2872", 1 - store i64 %"$consume_2876", i64* @_gasrem, align 8 + %"$execptr_load_2822" = load i8*, i8** @_execptr, align 8 + %"$m1_size_2823" = load %Uint32, %Uint32* %m1_size, align 4 + %"$zero_2824" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_2825" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2822", %Uint32 %"$m1_size_2823", %Uint32 %"$zero_2824"), !dbg !305 + store %TName_Bool* %"$eq_call_2825", %TName_Bool** %is_empty, align 8, !dbg !305 + %"$gasrem_2827" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2828" = icmp ugt i64 2, %"$gasrem_2827" + br i1 %"$gascmp_2828", label %"$out_of_gas_2829", label %"$have_gas_2830" + +"$out_of_gas_2829": ; preds = %"$have_gas_2820" + call void @_out_of_gas() + br label %"$have_gas_2830" + +"$have_gas_2830": ; preds = %"$out_of_gas_2829", %"$have_gas_2820" + %"$consume_2831" = sub i64 %"$gasrem_2827", 2 + store i64 %"$consume_2831", i64* @_gasrem, align 8 + %"$is_empty_2833" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_2834" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2833", i32 0, i32 0 + %"$is_empty_tag_2835" = load i8, i8* %"$is_empty_tag_2834", align 1 + switch i8 %"$is_empty_tag_2835", label %"$empty_default_2836" [ + i8 0, label %"$True_2837" + i8 1, label %"$False_2839" + ], !dbg !306 + +"$True_2837": ; preds = %"$have_gas_2830" + %"$is_empty_2838" = bitcast %TName_Bool* %"$is_empty_2833" to %CName_True* + br label %"$matchsucc_2832" + +"$False_2839": ; preds = %"$have_gas_2830" + %"$is_empty_2840" = bitcast %TName_Bool* %"$is_empty_2833" to %CName_False* + %"$gasrem_2841" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2842" = icmp ugt i64 1, %"$gasrem_2841" + br i1 %"$gascmp_2842", label %"$out_of_gas_2843", label %"$have_gas_2844" + +"$out_of_gas_2843": ; preds = %"$False_2839" + call void @_out_of_gas() + br label %"$have_gas_2844" + +"$have_gas_2844": ; preds = %"$out_of_gas_2843", %"$False_2839" + %"$consume_2845" = sub i64 %"$gasrem_2841", 1 + store i64 %"$consume_2845", i64* @_gasrem, align 8 + %"$fail__origin_2846" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2846", align 1 + %"$fail__sender_2847" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2847", align 1 + %"$tname_2848" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2846", [20 x i8]* %"$fail__sender_2847", %String %"$tname_2848"), !dbg !307 + br label %"$matchsucc_2832" + +"$empty_default_2836": ; preds = %"$have_gas_2830" + br label %"$matchsucc_2832" + +"$matchsucc_2832": ; preds = %"$have_gas_2844", %"$True_2837", %"$empty_default_2836" + %"$gasrem_2849" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2850" = icmp ugt i64 1, %"$gasrem_2849" + br i1 %"$gascmp_2850", label %"$out_of_gas_2851", label %"$have_gas_2852" + +"$out_of_gas_2851": ; preds = %"$matchsucc_2832" + call void @_out_of_gas() + br label %"$have_gas_2852" + +"$have_gas_2852": ; preds = %"$out_of_gas_2851", %"$matchsucc_2832" + %"$consume_2853" = sub i64 %"$gasrem_2849", 1 + store i64 %"$consume_2853", i64* @_gasrem, align 8 %e2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_2877" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2878" = icmp ugt i64 1, %"$gasrem_2877" - br i1 %"$gascmp_2878", label %"$out_of_gas_2879", label %"$have_gas_2880" - -"$out_of_gas_2879": ; preds = %"$have_gas_2875" - call void @_out_of_gas() - br label %"$have_gas_2880" - -"$have_gas_2880": ; preds = %"$out_of_gas_2879", %"$have_gas_2875" - %"$consume_2881" = sub i64 %"$gasrem_2877", 1 - store i64 %"$consume_2881", i64* @_gasrem, align 8 - %"$execptr_load_2882" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2883" = call i8* @_new_empty_map(i8* %"$execptr_load_2882") - %"$_new_empty_map_2884" = bitcast i8* %"$_new_empty_map_call_2883" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_2884", %"Map_String_Map_(String)_(String)"** %e2, align 8, !dbg !312 - %"$e2_2885" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 - %"$$e2_2885_2886" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2885" to i8* - %"$_literal_cost_call_2887" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$e2_2885_2886") - %"$gasrem_2888" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2889" = icmp ugt i64 %"$_literal_cost_call_2887", %"$gasrem_2888" - br i1 %"$gascmp_2889", label %"$out_of_gas_2890", label %"$have_gas_2891" - -"$out_of_gas_2890": ; preds = %"$have_gas_2880" - call void @_out_of_gas() - br label %"$have_gas_2891" - -"$have_gas_2891": ; preds = %"$out_of_gas_2890", %"$have_gas_2880" - %"$consume_2892" = sub i64 %"$gasrem_2888", %"$_literal_cost_call_2887" - store i64 %"$consume_2892", i64* @_gasrem, align 8 - %"$execptr_load_2893" = load i8*, i8** @_execptr, align 8 - %"$e2_2895" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 - %"$update_value_2896" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2895" to i8* - call void @_update_field(i8* %"$execptr_load_2893", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2894", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i8* %"$update_value_2896"), !dbg !313 + %"$gasrem_2854" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2855" = icmp ugt i64 1, %"$gasrem_2854" + br i1 %"$gascmp_2855", label %"$out_of_gas_2856", label %"$have_gas_2857" + +"$out_of_gas_2856": ; preds = %"$have_gas_2852" + call void @_out_of_gas() + br label %"$have_gas_2857" + +"$have_gas_2857": ; preds = %"$out_of_gas_2856", %"$have_gas_2852" + %"$consume_2858" = sub i64 %"$gasrem_2854", 1 + store i64 %"$consume_2858", i64* @_gasrem, align 8 + %"$execptr_load_2859" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2860" = call i8* @_new_empty_map(i8* %"$execptr_load_2859") + %"$_new_empty_map_2861" = bitcast i8* %"$_new_empty_map_call_2860" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_2861", %"Map_String_Map_(String)_(String)"** %e2, align 8, !dbg !310 + %"$e2_2862" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 + %"$$e2_2862_2863" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2862" to i8* + %"$_literal_cost_call_2864" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$e2_2862_2863") + %"$gasrem_2865" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2866" = icmp ugt i64 %"$_literal_cost_call_2864", %"$gasrem_2865" + br i1 %"$gascmp_2866", label %"$out_of_gas_2867", label %"$have_gas_2868" + +"$out_of_gas_2867": ; preds = %"$have_gas_2857" + call void @_out_of_gas() + br label %"$have_gas_2868" + +"$have_gas_2868": ; preds = %"$out_of_gas_2867", %"$have_gas_2857" + %"$consume_2869" = sub i64 %"$gasrem_2865", %"$_literal_cost_call_2864" + store i64 %"$consume_2869", i64* @_gasrem, align 8 + %"$execptr_load_2870" = load i8*, i8** @_execptr, align 8 + %"$e2_2872" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 + %"$update_value_2873" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2872" to i8* + call void @_update_field(i8* %"$execptr_load_2870", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2871", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i8* %"$update_value_2873"), !dbg !311 ret void } -define void @t11(i8* %0) !dbg !314 { +define void @t11(i8* %0) !dbg !312 { entry: - %"$_amount_2898" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2899" = bitcast i8* %"$_amount_2898" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2899", align 8 - %"$_origin_2900" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2901" = bitcast i8* %"$_origin_2900" to [20 x i8]* - %"$_sender_2902" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2903" = bitcast i8* %"$_sender_2902" to [20 x i8]* - call void @"$t11_2782"(%Uint128 %_amount, [20 x i8]* %"$_origin_2901", [20 x i8]* %"$_sender_2903"), !dbg !315 + %"$_amount_2875" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2876" = bitcast i8* %"$_amount_2875" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2876", align 8 + %"$_origin_2877" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2878" = bitcast i8* %"$_origin_2877" to [20 x i8]* + %"$_sender_2879" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2880" = bitcast i8* %"$_sender_2879" to [20 x i8]* + call void @"$t11_2759"(%Uint128 %_amount, [20 x i8]* %"$_origin_2878", [20 x i8]* %"$_sender_2880"), !dbg !313 ret void } -define internal void @"$t12_2904"(%Uint128 %_amount, [20 x i8]* %"$_origin_2905", [20 x i8]* %"$_sender_2906") !dbg !316 { +define internal void @"$t12_2881"(%Uint128 %_amount, [20 x i8]* %"$_origin_2882", [20 x i8]* %"$_sender_2883") !dbg !314 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2905", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2906", align 1 - %"$gasrem_2907" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2908" = icmp ugt i64 1, %"$gasrem_2907" - br i1 %"$gascmp_2908", label %"$out_of_gas_2909", label %"$have_gas_2910" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2882", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2883", align 1 + %"$gasrem_2884" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2885" = icmp ugt i64 1, %"$gasrem_2884" + br i1 %"$gascmp_2885", label %"$out_of_gas_2886", label %"$have_gas_2887" -"$out_of_gas_2909": ; preds = %entry +"$out_of_gas_2886": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2910" + br label %"$have_gas_2887" -"$have_gas_2910": ; preds = %"$out_of_gas_2909", %entry - %"$consume_2911" = sub i64 %"$gasrem_2907", 1 - store i64 %"$consume_2911", i64* @_gasrem, align 8 +"$have_gas_2887": ; preds = %"$out_of_gas_2886", %entry + %"$consume_2888" = sub i64 %"$gasrem_2884", 1 + store i64 %"$consume_2888", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_2912" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2913" = icmp ugt i64 1, %"$gasrem_2912" - br i1 %"$gascmp_2913", label %"$out_of_gas_2914", label %"$have_gas_2915" + %"$gasrem_2889" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2890" = icmp ugt i64 1, %"$gasrem_2889" + br i1 %"$gascmp_2890", label %"$out_of_gas_2891", label %"$have_gas_2892" -"$out_of_gas_2914": ; preds = %"$have_gas_2910" +"$out_of_gas_2891": ; preds = %"$have_gas_2887" call void @_out_of_gas() - br label %"$have_gas_2915" + br label %"$have_gas_2892" -"$have_gas_2915": ; preds = %"$out_of_gas_2914", %"$have_gas_2910" - %"$consume_2916" = sub i64 %"$gasrem_2912", 1 - store i64 %"$consume_2916", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2917", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !317 +"$have_gas_2892": ; preds = %"$out_of_gas_2891", %"$have_gas_2887" + %"$consume_2893" = sub i64 %"$gasrem_2889", 1 + store i64 %"$consume_2893", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2894", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !315 %m2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$execptr_load_2919" = load i8*, i8** @_execptr, align 8 - %"$m2_call_2920" = call i8* @_fetch_field(i8* %"$execptr_load_2919", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2918", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i32 1), !dbg !318 - %"$m2_2921" = bitcast i8* %"$m2_call_2920" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$m2_2921", %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$m2_2922" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_2922_2923" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2922" to i8* - %"$_literal_cost_call_2924" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m2_2922_2923") - %"$m2_2925" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_2925_2926" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2925" to i8* - %"$_mapsortcost_call_2927" = call i64 @_mapsortcost(i8* %"$$m2_2925_2926") - %"$gasadd_2928" = add i64 %"$_literal_cost_call_2924", %"$_mapsortcost_call_2927" + %"$execptr_load_2896" = load i8*, i8** @_execptr, align 8 + %"$m2_call_2897" = call i8* @_fetch_field(i8* %"$execptr_load_2896", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2895", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i32 1), !dbg !316 + %"$m2_2898" = bitcast i8* %"$m2_call_2897" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$m2_2898", %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$m2_2899" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_2899_2900" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2899" to i8* + %"$_literal_cost_call_2901" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m2_2899_2900") + %"$m2_2902" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_2902_2903" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2902" to i8* + %"$_mapsortcost_call_2904" = call i64 @_mapsortcost(i8* %"$$m2_2902_2903") + %"$gasadd_2905" = add i64 %"$_literal_cost_call_2901", %"$_mapsortcost_call_2904" + %"$gasrem_2906" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2907" = icmp ugt i64 %"$gasadd_2905", %"$gasrem_2906" + br i1 %"$gascmp_2907", label %"$out_of_gas_2908", label %"$have_gas_2909" + +"$out_of_gas_2908": ; preds = %"$have_gas_2892" + call void @_out_of_gas() + br label %"$have_gas_2909" + +"$have_gas_2909": ; preds = %"$out_of_gas_2908", %"$have_gas_2892" + %"$consume_2910" = sub i64 %"$gasrem_2906", %"$gasadd_2905" + store i64 %"$consume_2910", i64* @_gasrem, align 8 + %"$gasrem_2911" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2912" = icmp ugt i64 1, %"$gasrem_2911" + br i1 %"$gascmp_2912", label %"$out_of_gas_2913", label %"$have_gas_2914" + +"$out_of_gas_2913": ; preds = %"$have_gas_2909" + call void @_out_of_gas() + br label %"$have_gas_2914" + +"$have_gas_2914": ; preds = %"$out_of_gas_2913", %"$have_gas_2909" + %"$consume_2915" = sub i64 %"$gasrem_2911", 1 + store i64 %"$consume_2915", i64* @_gasrem, align 8 + %m2_size = alloca %Uint32, align 8 + %"$gasrem_2916" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2917" = icmp ugt i64 1, %"$gasrem_2916" + br i1 %"$gascmp_2917", label %"$out_of_gas_2918", label %"$have_gas_2919" + +"$out_of_gas_2918": ; preds = %"$have_gas_2914" + call void @_out_of_gas() + br label %"$have_gas_2919" + +"$have_gas_2919": ; preds = %"$out_of_gas_2918", %"$have_gas_2914" + %"$consume_2920" = sub i64 %"$gasrem_2916", 1 + store i64 %"$consume_2920", i64* @_gasrem, align 8 + %"$m2_2921" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_2921_2922" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2921" to i8* + %"$size_call_2923" = call %Uint32 @_size(i8* %"$$m2_2921_2922"), !dbg !317 + store %Uint32 %"$size_call_2923", %Uint32* %m2_size, align 4, !dbg !317 + %"$gasrem_2924" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2925" = icmp ugt i64 1, %"$gasrem_2924" + br i1 %"$gascmp_2925", label %"$out_of_gas_2926", label %"$have_gas_2927" + +"$out_of_gas_2926": ; preds = %"$have_gas_2919" + call void @_out_of_gas() + br label %"$have_gas_2927" + +"$have_gas_2927": ; preds = %"$out_of_gas_2926", %"$have_gas_2919" + %"$consume_2928" = sub i64 %"$gasrem_2924", 1 + store i64 %"$consume_2928", i64* @_gasrem, align 8 + %zero = alloca %Uint32, align 8 %"$gasrem_2929" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2930" = icmp ugt i64 %"$gasadd_2928", %"$gasrem_2929" + %"$gascmp_2930" = icmp ugt i64 1, %"$gasrem_2929" br i1 %"$gascmp_2930", label %"$out_of_gas_2931", label %"$have_gas_2932" -"$out_of_gas_2931": ; preds = %"$have_gas_2915" +"$out_of_gas_2931": ; preds = %"$have_gas_2927" call void @_out_of_gas() br label %"$have_gas_2932" -"$have_gas_2932": ; preds = %"$out_of_gas_2931", %"$have_gas_2915" - %"$consume_2933" = sub i64 %"$gasrem_2929", %"$gasadd_2928" +"$have_gas_2932": ; preds = %"$out_of_gas_2931", %"$have_gas_2927" + %"$consume_2933" = sub i64 %"$gasrem_2929", 1 store i64 %"$consume_2933", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !318 %"$gasrem_2934" = load i64, i64* @_gasrem, align 8 %"$gascmp_2935" = icmp ugt i64 1, %"$gasrem_2934" br i1 %"$gascmp_2935", label %"$out_of_gas_2936", label %"$have_gas_2937" @@ -6024,9 +6043,9 @@ entry: "$have_gas_2937": ; preds = %"$out_of_gas_2936", %"$have_gas_2932" %"$consume_2938" = sub i64 %"$gasrem_2934", 1 store i64 %"$consume_2938", i64* @_gasrem, align 8 - %m2_size = alloca %Uint32, align 8 + %is_empty = alloca %TName_Bool*, align 8 %"$gasrem_2939" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2940" = icmp ugt i64 1, %"$gasrem_2939" + %"$gascmp_2940" = icmp ugt i64 4, %"$gasrem_2939" br i1 %"$gascmp_2940", label %"$out_of_gas_2941", label %"$have_gas_2942" "$out_of_gas_2941": ; preds = %"$have_gas_2937" @@ -6034,248 +6053,238 @@ entry: br label %"$have_gas_2942" "$have_gas_2942": ; preds = %"$out_of_gas_2941", %"$have_gas_2937" - %"$consume_2943" = sub i64 %"$gasrem_2939", 1 + %"$consume_2943" = sub i64 %"$gasrem_2939", 4 store i64 %"$consume_2943", i64* @_gasrem, align 8 - %"$m2_2944" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_2944_2945" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2944" to i8* - %"$size_call_2946" = call %Uint32 @_size(i8* %"$$m2_2944_2945"), !dbg !319 - store %Uint32 %"$size_call_2946", %Uint32* %m2_size, align 4, !dbg !319 - %"$gasrem_2947" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2948" = icmp ugt i64 1, %"$gasrem_2947" - br i1 %"$gascmp_2948", label %"$out_of_gas_2949", label %"$have_gas_2950" - -"$out_of_gas_2949": ; preds = %"$have_gas_2942" - call void @_out_of_gas() - br label %"$have_gas_2950" - -"$have_gas_2950": ; preds = %"$out_of_gas_2949", %"$have_gas_2942" - %"$consume_2951" = sub i64 %"$gasrem_2947", 1 - store i64 %"$consume_2951", i64* @_gasrem, align 8 - %zero = alloca %Uint32, align 8 - %"$gasrem_2952" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2953" = icmp ugt i64 1, %"$gasrem_2952" - br i1 %"$gascmp_2953", label %"$out_of_gas_2954", label %"$have_gas_2955" + %"$execptr_load_2944" = load i8*, i8** @_execptr, align 8 + %"$m2_size_2945" = load %Uint32, %Uint32* %m2_size, align 4 + %"$zero_2946" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_2947" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2944", %Uint32 %"$m2_size_2945", %Uint32 %"$zero_2946"), !dbg !319 + store %TName_Bool* %"$eq_call_2947", %TName_Bool** %is_empty, align 8, !dbg !319 + %"$gasrem_2949" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2950" = icmp ugt i64 2, %"$gasrem_2949" + br i1 %"$gascmp_2950", label %"$out_of_gas_2951", label %"$have_gas_2952" + +"$out_of_gas_2951": ; preds = %"$have_gas_2942" + call void @_out_of_gas() + br label %"$have_gas_2952" + +"$have_gas_2952": ; preds = %"$out_of_gas_2951", %"$have_gas_2942" + %"$consume_2953" = sub i64 %"$gasrem_2949", 2 + store i64 %"$consume_2953", i64* @_gasrem, align 8 + %"$is_empty_2955" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_2956" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2955", i32 0, i32 0 + %"$is_empty_tag_2957" = load i8, i8* %"$is_empty_tag_2956", align 1 + switch i8 %"$is_empty_tag_2957", label %"$empty_default_2958" [ + i8 0, label %"$True_2959" + i8 1, label %"$False_2961" + ], !dbg !320 + +"$True_2959": ; preds = %"$have_gas_2952" + %"$is_empty_2960" = bitcast %TName_Bool* %"$is_empty_2955" to %CName_True* + br label %"$matchsucc_2954" + +"$False_2961": ; preds = %"$have_gas_2952" + %"$is_empty_2962" = bitcast %TName_Bool* %"$is_empty_2955" to %CName_False* + %"$gasrem_2963" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2964" = icmp ugt i64 1, %"$gasrem_2963" + br i1 %"$gascmp_2964", label %"$out_of_gas_2965", label %"$have_gas_2966" + +"$out_of_gas_2965": ; preds = %"$False_2961" + call void @_out_of_gas() + br label %"$have_gas_2966" + +"$have_gas_2966": ; preds = %"$out_of_gas_2965", %"$False_2961" + %"$consume_2967" = sub i64 %"$gasrem_2963", 1 + store i64 %"$consume_2967", i64* @_gasrem, align 8 + %"$fail__origin_2968" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2968", align 1 + %"$fail__sender_2969" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2969", align 1 + %"$tname_2970" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2968", [20 x i8]* %"$fail__sender_2969", %String %"$tname_2970"), !dbg !321 + br label %"$matchsucc_2954" + +"$empty_default_2958": ; preds = %"$have_gas_2952" + br label %"$matchsucc_2954" + +"$matchsucc_2954": ; preds = %"$have_gas_2966", %"$True_2959", %"$empty_default_2958" + %"$gasrem_2971" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2972" = icmp ugt i64 1, %"$gasrem_2971" + br i1 %"$gascmp_2972", label %"$out_of_gas_2973", label %"$have_gas_2974" + +"$out_of_gas_2973": ; preds = %"$matchsucc_2954" + call void @_out_of_gas() + br label %"$have_gas_2974" + +"$have_gas_2974": ; preds = %"$out_of_gas_2973", %"$matchsucc_2954" + %"$consume_2975" = sub i64 %"$gasrem_2971", 1 + store i64 %"$consume_2975", i64* @_gasrem, align 8 + %e1 = alloca %Map_String_String*, align 8 + %"$gasrem_2976" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2977" = icmp ugt i64 1, %"$gasrem_2976" + br i1 %"$gascmp_2977", label %"$out_of_gas_2978", label %"$have_gas_2979" -"$out_of_gas_2954": ; preds = %"$have_gas_2950" +"$out_of_gas_2978": ; preds = %"$have_gas_2974" call void @_out_of_gas() - br label %"$have_gas_2955" + br label %"$have_gas_2979" -"$have_gas_2955": ; preds = %"$out_of_gas_2954", %"$have_gas_2950" - %"$consume_2956" = sub i64 %"$gasrem_2952", 1 - store i64 %"$consume_2956", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !320 - %"$gasrem_2957" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2958" = icmp ugt i64 1, %"$gasrem_2957" - br i1 %"$gascmp_2958", label %"$out_of_gas_2959", label %"$have_gas_2960" +"$have_gas_2979": ; preds = %"$out_of_gas_2978", %"$have_gas_2974" + %"$consume_2980" = sub i64 %"$gasrem_2976", 1 + store i64 %"$consume_2980", i64* @_gasrem, align 8 + %"$execptr_load_2981" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2982" = call i8* @_new_empty_map(i8* %"$execptr_load_2981") + %"$_new_empty_map_2983" = bitcast i8* %"$_new_empty_map_call_2982" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_2983", %Map_String_String** %e1, align 8, !dbg !324 + %"$gasrem_2984" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2985" = icmp ugt i64 1, %"$gasrem_2984" + br i1 %"$gascmp_2985", label %"$out_of_gas_2986", label %"$have_gas_2987" -"$out_of_gas_2959": ; preds = %"$have_gas_2955" +"$out_of_gas_2986": ; preds = %"$have_gas_2979" call void @_out_of_gas() - br label %"$have_gas_2960" + br label %"$have_gas_2987" -"$have_gas_2960": ; preds = %"$out_of_gas_2959", %"$have_gas_2955" - %"$consume_2961" = sub i64 %"$gasrem_2957", 1 - store i64 %"$consume_2961", i64* @_gasrem, align 8 - %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_2962" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2963" = icmp ugt i64 4, %"$gasrem_2962" - br i1 %"$gascmp_2963", label %"$out_of_gas_2964", label %"$have_gas_2965" - -"$out_of_gas_2964": ; preds = %"$have_gas_2960" - call void @_out_of_gas() - br label %"$have_gas_2965" - -"$have_gas_2965": ; preds = %"$out_of_gas_2964", %"$have_gas_2960" - %"$consume_2966" = sub i64 %"$gasrem_2962", 4 - store i64 %"$consume_2966", i64* @_gasrem, align 8 - %"$execptr_load_2967" = load i8*, i8** @_execptr, align 8 - %"$m2_size_2968" = load %Uint32, %Uint32* %m2_size, align 4 - %"$zero_2969" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_2970" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2967", %Uint32 %"$m2_size_2968", %Uint32 %"$zero_2969"), !dbg !321 - store %TName_Bool* %"$eq_call_2970", %TName_Bool** %is_empty, align 8, !dbg !321 - %"$gasrem_2972" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2973" = icmp ugt i64 2, %"$gasrem_2972" - br i1 %"$gascmp_2973", label %"$out_of_gas_2974", label %"$have_gas_2975" - -"$out_of_gas_2974": ; preds = %"$have_gas_2965" - call void @_out_of_gas() - br label %"$have_gas_2975" - -"$have_gas_2975": ; preds = %"$out_of_gas_2974", %"$have_gas_2965" - %"$consume_2976" = sub i64 %"$gasrem_2972", 2 - store i64 %"$consume_2976", i64* @_gasrem, align 8 - %"$is_empty_2978" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_2979" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2978", i32 0, i32 0 - %"$is_empty_tag_2980" = load i8, i8* %"$is_empty_tag_2979", align 1 - switch i8 %"$is_empty_tag_2980", label %"$empty_default_2981" [ - i8 0, label %"$True_2982" - i8 1, label %"$False_2984" - ], !dbg !322 - -"$True_2982": ; preds = %"$have_gas_2975" - %"$is_empty_2983" = bitcast %TName_Bool* %"$is_empty_2978" to %CName_True* - br label %"$matchsucc_2977" - -"$False_2984": ; preds = %"$have_gas_2975" - %"$is_empty_2985" = bitcast %TName_Bool* %"$is_empty_2978" to %CName_False* - %"$gasrem_2986" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2987" = icmp ugt i64 1, %"$gasrem_2986" - br i1 %"$gascmp_2987", label %"$out_of_gas_2988", label %"$have_gas_2989" - -"$out_of_gas_2988": ; preds = %"$False_2984" - call void @_out_of_gas() - br label %"$have_gas_2989" - -"$have_gas_2989": ; preds = %"$out_of_gas_2988", %"$False_2984" - %"$consume_2990" = sub i64 %"$gasrem_2986", 1 - store i64 %"$consume_2990", i64* @_gasrem, align 8 - %"$fail__origin_2991" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2991", align 1 - %"$fail__sender_2992" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2992", align 1 - %"$tname_2993" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2991", [20 x i8]* %"$fail__sender_2992", %String %"$tname_2993"), !dbg !323 - br label %"$matchsucc_2977" - -"$empty_default_2981": ; preds = %"$have_gas_2975" - br label %"$matchsucc_2977" - -"$matchsucc_2977": ; preds = %"$have_gas_2989", %"$True_2982", %"$empty_default_2981" - %"$gasrem_2994" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2995" = icmp ugt i64 1, %"$gasrem_2994" - br i1 %"$gascmp_2995", label %"$out_of_gas_2996", label %"$have_gas_2997" - -"$out_of_gas_2996": ; preds = %"$matchsucc_2977" - call void @_out_of_gas() - br label %"$have_gas_2997" - -"$have_gas_2997": ; preds = %"$out_of_gas_2996", %"$matchsucc_2977" - %"$consume_2998" = sub i64 %"$gasrem_2994", 1 - store i64 %"$consume_2998", i64* @_gasrem, align 8 - %e1 = alloca %Map_String_String*, align 8 +"$have_gas_2987": ; preds = %"$out_of_gas_2986", %"$have_gas_2979" + %"$consume_2988" = sub i64 %"$gasrem_2984", 1 + store i64 %"$consume_2988", i64* @_gasrem, align 8 + %key1a = alloca %String, align 8 + %"$gasrem_2989" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2990" = icmp ugt i64 1, %"$gasrem_2989" + br i1 %"$gascmp_2990", label %"$out_of_gas_2991", label %"$have_gas_2992" + +"$out_of_gas_2991": ; preds = %"$have_gas_2987" + call void @_out_of_gas() + br label %"$have_gas_2992" + +"$have_gas_2992": ; preds = %"$out_of_gas_2991", %"$have_gas_2987" + %"$consume_2993" = sub i64 %"$gasrem_2989", 1 + store i64 %"$consume_2993", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2994", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !325 + %"$e1_2995" = load %Map_String_String*, %Map_String_String** %e1, align 8 + %"$$e1_2995_2996" = bitcast %Map_String_String* %"$e1_2995" to i8* + %"$_literal_cost_call_2997" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$e1_2995_2996") + %"$gasadd_2998" = add i64 %"$_literal_cost_call_2997", 1 %"$gasrem_2999" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3000" = icmp ugt i64 1, %"$gasrem_2999" + %"$gascmp_3000" = icmp ugt i64 %"$gasadd_2998", %"$gasrem_2999" br i1 %"$gascmp_3000", label %"$out_of_gas_3001", label %"$have_gas_3002" -"$out_of_gas_3001": ; preds = %"$have_gas_2997" +"$out_of_gas_3001": ; preds = %"$have_gas_2992" call void @_out_of_gas() br label %"$have_gas_3002" -"$have_gas_3002": ; preds = %"$out_of_gas_3001", %"$have_gas_2997" - %"$consume_3003" = sub i64 %"$gasrem_2999", 1 +"$have_gas_3002": ; preds = %"$out_of_gas_3001", %"$have_gas_2992" + %"$consume_3003" = sub i64 %"$gasrem_2999", %"$gasadd_2998" store i64 %"$consume_3003", i64* @_gasrem, align 8 - %"$execptr_load_3004" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3005" = call i8* @_new_empty_map(i8* %"$execptr_load_3004") - %"$_new_empty_map_3006" = bitcast i8* %"$_new_empty_map_call_3005" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_3006", %Map_String_String** %e1, align 8, !dbg !326 - %"$gasrem_3007" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3008" = icmp ugt i64 1, %"$gasrem_3007" - br i1 %"$gascmp_3008", label %"$out_of_gas_3009", label %"$have_gas_3010" - -"$out_of_gas_3009": ; preds = %"$have_gas_3002" - call void @_out_of_gas() - br label %"$have_gas_3010" - -"$have_gas_3010": ; preds = %"$out_of_gas_3009", %"$have_gas_3002" - %"$consume_3011" = sub i64 %"$gasrem_3007", 1 - store i64 %"$consume_3011", i64* @_gasrem, align 8 - %key1a = alloca %String, align 8 - %"$gasrem_3012" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3013" = icmp ugt i64 1, %"$gasrem_3012" - br i1 %"$gascmp_3013", label %"$out_of_gas_3014", label %"$have_gas_3015" - -"$out_of_gas_3014": ; preds = %"$have_gas_3010" - call void @_out_of_gas() - br label %"$have_gas_3015" - -"$have_gas_3015": ; preds = %"$out_of_gas_3014", %"$have_gas_3010" - %"$consume_3016" = sub i64 %"$gasrem_3012", 1 - store i64 %"$consume_3016", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3017", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !327 - %"$e1_3018" = load %Map_String_String*, %Map_String_String** %e1, align 8 - %"$$e1_3018_3019" = bitcast %Map_String_String* %"$e1_3018" to i8* - %"$_literal_cost_call_3020" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$e1_3018_3019") - %"$gasadd_3021" = add i64 %"$_literal_cost_call_3020", 1 - %"$gasrem_3022" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3023" = icmp ugt i64 %"$gasadd_3021", %"$gasrem_3022" - br i1 %"$gascmp_3023", label %"$out_of_gas_3024", label %"$have_gas_3025" - -"$out_of_gas_3024": ; preds = %"$have_gas_3015" - call void @_out_of_gas() - br label %"$have_gas_3025" - -"$have_gas_3025": ; preds = %"$out_of_gas_3024", %"$have_gas_3015" - %"$consume_3026" = sub i64 %"$gasrem_3022", %"$gasadd_3021" - store i64 %"$consume_3026", i64* @_gasrem, align 8 - %"$indices_buf_3027_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3027_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3027_salloc_load", i64 16) - %"$indices_buf_3027_salloc" = bitcast i8* %"$indices_buf_3027_salloc_salloc" to [16 x i8]* - %"$indices_buf_3027" = bitcast [16 x i8]* %"$indices_buf_3027_salloc" to i8* - %"$key1a_3028" = load %String, %String* %key1a, align 8 - %"$indices_gep_3029" = getelementptr i8, i8* %"$indices_buf_3027", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3029" to %String* - store %String %"$key1a_3028", %String* %indices_cast, align 8 - %"$execptr_load_3030" = load i8*, i8** @_execptr, align 8 - %"$e1_3032" = load %Map_String_String*, %Map_String_String** %e1, align 8 - %"$update_value_3033" = bitcast %Map_String_String* %"$e1_3032" to i8* - call void @_update_field(i8* %"$execptr_load_3030", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3031", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 1, i8* %"$indices_buf_3027", i8* %"$update_value_3033"), !dbg !328 + %"$indices_buf_3004_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3004_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3004_salloc_load", i64 16) + %"$indices_buf_3004_salloc" = bitcast i8* %"$indices_buf_3004_salloc_salloc" to [16 x i8]* + %"$indices_buf_3004" = bitcast [16 x i8]* %"$indices_buf_3004_salloc" to i8* + %"$key1a_3005" = load %String, %String* %key1a, align 8 + %"$indices_gep_3006" = getelementptr i8, i8* %"$indices_buf_3004", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3006" to %String* + store %String %"$key1a_3005", %String* %indices_cast, align 8 + %"$execptr_load_3007" = load i8*, i8** @_execptr, align 8 + %"$e1_3009" = load %Map_String_String*, %Map_String_String** %e1, align 8 + %"$update_value_3010" = bitcast %Map_String_String* %"$e1_3009" to i8* + call void @_update_field(i8* %"$execptr_load_3007", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3008", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 1, i8* %"$indices_buf_3004", i8* %"$update_value_3010"), !dbg !326 ret void } -define void @t12(i8* %0) !dbg !329 { +define void @t12(i8* %0) !dbg !327 { entry: - %"$_amount_3035" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3036" = bitcast i8* %"$_amount_3035" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3036", align 8 - %"$_origin_3037" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3038" = bitcast i8* %"$_origin_3037" to [20 x i8]* - %"$_sender_3039" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3040" = bitcast i8* %"$_sender_3039" to [20 x i8]* - call void @"$t12_2904"(%Uint128 %_amount, [20 x i8]* %"$_origin_3038", [20 x i8]* %"$_sender_3040"), !dbg !330 + %"$_amount_3012" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3013" = bitcast i8* %"$_amount_3012" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3013", align 8 + %"$_origin_3014" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3015" = bitcast i8* %"$_origin_3014" to [20 x i8]* + %"$_sender_3016" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3017" = bitcast i8* %"$_sender_3016" to [20 x i8]* + call void @"$t12_2881"(%Uint128 %_amount, [20 x i8]* %"$_origin_3015", [20 x i8]* %"$_sender_3017"), !dbg !328 ret void } -define internal void @"$t13_3041"(%Uint128 %_amount, [20 x i8]* %"$_origin_3042", [20 x i8]* %"$_sender_3043") !dbg !331 { +define internal void @"$t13_3018"(%Uint128 %_amount, [20 x i8]* %"$_origin_3019", [20 x i8]* %"$_sender_3020") !dbg !329 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3042", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3043", align 1 - %"$gasrem_3044" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3045" = icmp ugt i64 1, %"$gasrem_3044" - br i1 %"$gascmp_3045", label %"$out_of_gas_3046", label %"$have_gas_3047" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3019", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3020", align 1 + %"$gasrem_3021" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3022" = icmp ugt i64 1, %"$gasrem_3021" + br i1 %"$gascmp_3022", label %"$out_of_gas_3023", label %"$have_gas_3024" -"$out_of_gas_3046": ; preds = %entry +"$out_of_gas_3023": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3047" + br label %"$have_gas_3024" -"$have_gas_3047": ; preds = %"$out_of_gas_3046", %entry - %"$consume_3048" = sub i64 %"$gasrem_3044", 1 - store i64 %"$consume_3048", i64* @_gasrem, align 8 +"$have_gas_3024": ; preds = %"$out_of_gas_3023", %entry + %"$consume_3025" = sub i64 %"$gasrem_3021", 1 + store i64 %"$consume_3025", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_3049" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3050" = icmp ugt i64 1, %"$gasrem_3049" - br i1 %"$gascmp_3050", label %"$out_of_gas_3051", label %"$have_gas_3052" + %"$gasrem_3026" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3027" = icmp ugt i64 1, %"$gasrem_3026" + br i1 %"$gascmp_3027", label %"$out_of_gas_3028", label %"$have_gas_3029" + +"$out_of_gas_3028": ; preds = %"$have_gas_3024" + call void @_out_of_gas() + br label %"$have_gas_3029" + +"$have_gas_3029": ; preds = %"$out_of_gas_3028", %"$have_gas_3024" + %"$consume_3030" = sub i64 %"$gasrem_3026", 1 + store i64 %"$consume_3030", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3031", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !330 + %"$gasrem_3032" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3033" = icmp ugt i64 1, %"$gasrem_3032" + br i1 %"$gascmp_3033", label %"$out_of_gas_3034", label %"$have_gas_3035" -"$out_of_gas_3051": ; preds = %"$have_gas_3047" +"$out_of_gas_3034": ; preds = %"$have_gas_3029" call void @_out_of_gas() - br label %"$have_gas_3052" + br label %"$have_gas_3035" -"$have_gas_3052": ; preds = %"$out_of_gas_3051", %"$have_gas_3047" - %"$consume_3053" = sub i64 %"$gasrem_3049", 1 - store i64 %"$consume_3053", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3054", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !332 +"$have_gas_3035": ; preds = %"$out_of_gas_3034", %"$have_gas_3029" + %"$consume_3036" = sub i64 %"$gasrem_3032", 1 + store i64 %"$consume_3036", i64* @_gasrem, align 8 + %key1a = alloca %String, align 8 + %"$gasrem_3037" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3038" = icmp ugt i64 1, %"$gasrem_3037" + br i1 %"$gascmp_3038", label %"$out_of_gas_3039", label %"$have_gas_3040" + +"$out_of_gas_3039": ; preds = %"$have_gas_3035" + call void @_out_of_gas() + br label %"$have_gas_3040" + +"$have_gas_3040": ; preds = %"$out_of_gas_3039", %"$have_gas_3035" + %"$consume_3041" = sub i64 %"$gasrem_3037", 1 + store i64 %"$consume_3041", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3042", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !331 + %mo = alloca %"TName_Option_Map_(String)_(String)"*, align 8 + %"$indices_buf_3043_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3043_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3043_salloc_load", i64 16) + %"$indices_buf_3043_salloc" = bitcast i8* %"$indices_buf_3043_salloc_salloc" to [16 x i8]* + %"$indices_buf_3043" = bitcast [16 x i8]* %"$indices_buf_3043_salloc" to i8* + %"$key1a_3044" = load %String, %String* %key1a, align 8 + %"$indices_gep_3045" = getelementptr i8, i8* %"$indices_buf_3043", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3045" to %String* + store %String %"$key1a_3044", %String* %indices_cast, align 8 + %"$execptr_load_3047" = load i8*, i8** @_execptr, align 8 + %"$mo_call_3048" = call i8* @_fetch_field(i8* %"$execptr_load_3047", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3046", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 1, i8* %"$indices_buf_3043", i32 1), !dbg !332 + %"$mo_3049" = bitcast i8* %"$mo_call_3048" to %"TName_Option_Map_(String)_(String)"* + store %"TName_Option_Map_(String)_(String)"* %"$mo_3049", %"TName_Option_Map_(String)_(String)"** %mo, align 8 + %"$mo_3050" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 + %"$$mo_3050_3051" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3050" to i8* + %"$_literal_cost_call_3052" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_59", i8* %"$$mo_3050_3051") + %"$gasadd_3053" = add i64 %"$_literal_cost_call_3052", 0 + %"$gasadd_3054" = add i64 %"$gasadd_3053", 1 %"$gasrem_3055" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3056" = icmp ugt i64 1, %"$gasrem_3055" + %"$gascmp_3056" = icmp ugt i64 %"$gasadd_3054", %"$gasrem_3055" br i1 %"$gascmp_3056", label %"$out_of_gas_3057", label %"$have_gas_3058" -"$out_of_gas_3057": ; preds = %"$have_gas_3052" +"$out_of_gas_3057": ; preds = %"$have_gas_3040" call void @_out_of_gas() br label %"$have_gas_3058" -"$have_gas_3058": ; preds = %"$out_of_gas_3057", %"$have_gas_3052" - %"$consume_3059" = sub i64 %"$gasrem_3055", 1 +"$have_gas_3058": ; preds = %"$out_of_gas_3057", %"$have_gas_3040" + %"$consume_3059" = sub i64 %"$gasrem_3055", %"$gasadd_3054" store i64 %"$consume_3059", i64* @_gasrem, align 8 - %key1a = alloca %String, align 8 %"$gasrem_3060" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3061" = icmp ugt i64 1, %"$gasrem_3060" + %"$gascmp_3061" = icmp ugt i64 2, %"$gasrem_3060" br i1 %"$gascmp_3061", label %"$out_of_gas_3062", label %"$have_gas_3063" "$out_of_gas_3062": ; preds = %"$have_gas_3058" @@ -6283,77 +6292,87 @@ entry: br label %"$have_gas_3063" "$have_gas_3063": ; preds = %"$out_of_gas_3062", %"$have_gas_3058" - %"$consume_3064" = sub i64 %"$gasrem_3060", 1 + %"$consume_3064" = sub i64 %"$gasrem_3060", 2 store i64 %"$consume_3064", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3065", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !333 - %mo = alloca %"TName_Option_Map_(String)_(String)"*, align 8 - %"$indices_buf_3066_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3066_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3066_salloc_load", i64 16) - %"$indices_buf_3066_salloc" = bitcast i8* %"$indices_buf_3066_salloc_salloc" to [16 x i8]* - %"$indices_buf_3066" = bitcast [16 x i8]* %"$indices_buf_3066_salloc" to i8* - %"$key1a_3067" = load %String, %String* %key1a, align 8 - %"$indices_gep_3068" = getelementptr i8, i8* %"$indices_buf_3066", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3068" to %String* - store %String %"$key1a_3067", %String* %indices_cast, align 8 - %"$execptr_load_3070" = load i8*, i8** @_execptr, align 8 - %"$mo_call_3071" = call i8* @_fetch_field(i8* %"$execptr_load_3070", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3069", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 1, i8* %"$indices_buf_3066", i32 1), !dbg !334 - %"$mo_3072" = bitcast i8* %"$mo_call_3071" to %"TName_Option_Map_(String)_(String)"* - store %"TName_Option_Map_(String)_(String)"* %"$mo_3072", %"TName_Option_Map_(String)_(String)"** %mo, align 8 - %"$mo_3073" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 - %"$$mo_3073_3074" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3073" to i8* - %"$_literal_cost_call_3075" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_67", i8* %"$$mo_3073_3074") - %"$gasadd_3076" = add i64 %"$_literal_cost_call_3075", 0 - %"$gasadd_3077" = add i64 %"$gasadd_3076", 1 - %"$gasrem_3078" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3079" = icmp ugt i64 %"$gasadd_3077", %"$gasrem_3078" - br i1 %"$gascmp_3079", label %"$out_of_gas_3080", label %"$have_gas_3081" - -"$out_of_gas_3080": ; preds = %"$have_gas_3063" - call void @_out_of_gas() - br label %"$have_gas_3081" - -"$have_gas_3081": ; preds = %"$out_of_gas_3080", %"$have_gas_3063" - %"$consume_3082" = sub i64 %"$gasrem_3078", %"$gasadd_3077" - store i64 %"$consume_3082", i64* @_gasrem, align 8 - %"$gasrem_3083" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3084" = icmp ugt i64 2, %"$gasrem_3083" - br i1 %"$gascmp_3084", label %"$out_of_gas_3085", label %"$have_gas_3086" - -"$out_of_gas_3085": ; preds = %"$have_gas_3081" - call void @_out_of_gas() - br label %"$have_gas_3086" - -"$have_gas_3086": ; preds = %"$out_of_gas_3085", %"$have_gas_3081" - %"$consume_3087" = sub i64 %"$gasrem_3083", 2 - store i64 %"$consume_3087", i64* @_gasrem, align 8 - %"$mo_3089" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 - %"$mo_tag_3090" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$mo_3089", i32 0, i32 0 - %"$mo_tag_3091" = load i8, i8* %"$mo_tag_3090", align 1 - switch i8 %"$mo_tag_3091", label %"$empty_default_3092" [ - i8 0, label %"$Some_3093" - i8 1, label %"$None_3169" - ], !dbg !335 - -"$Some_3093": ; preds = %"$have_gas_3086" - %"$mo_3094" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3089" to %"CName_Some_Map_(String)_(String)"* - %"$m_gep_3095" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$mo_3094", i32 0, i32 1 - %"$m_load_3096" = load %Map_String_String*, %Map_String_String** %"$m_gep_3095", align 8 + %"$mo_3066" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 + %"$mo_tag_3067" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$mo_3066", i32 0, i32 0 + %"$mo_tag_3068" = load i8, i8* %"$mo_tag_3067", align 1 + switch i8 %"$mo_tag_3068", label %"$empty_default_3069" [ + i8 0, label %"$Some_3070" + i8 1, label %"$None_3146" + ], !dbg !333 + +"$Some_3070": ; preds = %"$have_gas_3063" + %"$mo_3071" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3066" to %"CName_Some_Map_(String)_(String)"* + %"$m_gep_3072" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$mo_3071", i32 0, i32 1 + %"$m_load_3073" = load %Map_String_String*, %Map_String_String** %"$m_gep_3072", align 8 %m = alloca %Map_String_String*, align 8 - store %Map_String_String* %"$m_load_3096", %Map_String_String** %m, align 8 + store %Map_String_String* %"$m_load_3073", %Map_String_String** %m, align 8 + %"$gasrem_3074" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3075" = icmp ugt i64 1, %"$gasrem_3074" + br i1 %"$gascmp_3075", label %"$out_of_gas_3076", label %"$have_gas_3077" + +"$out_of_gas_3076": ; preds = %"$Some_3070" + call void @_out_of_gas() + br label %"$have_gas_3077" + +"$have_gas_3077": ; preds = %"$out_of_gas_3076", %"$Some_3070" + %"$consume_3078" = sub i64 %"$gasrem_3074", 1 + store i64 %"$consume_3078", i64* @_gasrem, align 8 + %m_size = alloca %Uint32, align 8 + %"$gasrem_3079" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3080" = icmp ugt i64 1, %"$gasrem_3079" + br i1 %"$gascmp_3080", label %"$out_of_gas_3081", label %"$have_gas_3082" + +"$out_of_gas_3081": ; preds = %"$have_gas_3077" + call void @_out_of_gas() + br label %"$have_gas_3082" + +"$have_gas_3082": ; preds = %"$out_of_gas_3081", %"$have_gas_3077" + %"$consume_3083" = sub i64 %"$gasrem_3079", 1 + store i64 %"$consume_3083", i64* @_gasrem, align 8 + %"$m_3084" = load %Map_String_String*, %Map_String_String** %m, align 8 + %"$$m_3084_3085" = bitcast %Map_String_String* %"$m_3084" to i8* + %"$size_call_3086" = call %Uint32 @_size(i8* %"$$m_3084_3085"), !dbg !334 + store %Uint32 %"$size_call_3086", %Uint32* %m_size, align 4, !dbg !334 + %"$gasrem_3087" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3088" = icmp ugt i64 1, %"$gasrem_3087" + br i1 %"$gascmp_3088", label %"$out_of_gas_3089", label %"$have_gas_3090" + +"$out_of_gas_3089": ; preds = %"$have_gas_3082" + call void @_out_of_gas() + br label %"$have_gas_3090" + +"$have_gas_3090": ; preds = %"$out_of_gas_3089", %"$have_gas_3082" + %"$consume_3091" = sub i64 %"$gasrem_3087", 1 + store i64 %"$consume_3091", i64* @_gasrem, align 8 + %zero = alloca %Uint32, align 8 + %"$gasrem_3092" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3093" = icmp ugt i64 1, %"$gasrem_3092" + br i1 %"$gascmp_3093", label %"$out_of_gas_3094", label %"$have_gas_3095" + +"$out_of_gas_3094": ; preds = %"$have_gas_3090" + call void @_out_of_gas() + br label %"$have_gas_3095" + +"$have_gas_3095": ; preds = %"$out_of_gas_3094", %"$have_gas_3090" + %"$consume_3096" = sub i64 %"$gasrem_3092", 1 + store i64 %"$consume_3096", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !337 %"$gasrem_3097" = load i64, i64* @_gasrem, align 8 %"$gascmp_3098" = icmp ugt i64 1, %"$gasrem_3097" br i1 %"$gascmp_3098", label %"$out_of_gas_3099", label %"$have_gas_3100" -"$out_of_gas_3099": ; preds = %"$Some_3093" +"$out_of_gas_3099": ; preds = %"$have_gas_3095" call void @_out_of_gas() br label %"$have_gas_3100" -"$have_gas_3100": ; preds = %"$out_of_gas_3099", %"$Some_3093" +"$have_gas_3100": ; preds = %"$out_of_gas_3099", %"$have_gas_3095" %"$consume_3101" = sub i64 %"$gasrem_3097", 1 store i64 %"$consume_3101", i64* @_gasrem, align 8 - %m_size = alloca %Uint32, align 8 + %is_empty = alloca %TName_Bool*, align 8 %"$gasrem_3102" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3103" = icmp ugt i64 1, %"$gasrem_3102" + %"$gascmp_3103" = icmp ugt i64 4, %"$gasrem_3102" br i1 %"$gascmp_3103", label %"$out_of_gas_3104", label %"$have_gas_3105" "$out_of_gas_3104": ; preds = %"$have_gas_3100" @@ -6361,432 +6380,432 @@ entry: br label %"$have_gas_3105" "$have_gas_3105": ; preds = %"$out_of_gas_3104", %"$have_gas_3100" - %"$consume_3106" = sub i64 %"$gasrem_3102", 1 + %"$consume_3106" = sub i64 %"$gasrem_3102", 4 store i64 %"$consume_3106", i64* @_gasrem, align 8 - %"$m_3107" = load %Map_String_String*, %Map_String_String** %m, align 8 - %"$$m_3107_3108" = bitcast %Map_String_String* %"$m_3107" to i8* - %"$size_call_3109" = call %Uint32 @_size(i8* %"$$m_3107_3108"), !dbg !336 - store %Uint32 %"$size_call_3109", %Uint32* %m_size, align 4, !dbg !336 - %"$gasrem_3110" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3111" = icmp ugt i64 1, %"$gasrem_3110" - br i1 %"$gascmp_3111", label %"$out_of_gas_3112", label %"$have_gas_3113" + %"$execptr_load_3107" = load i8*, i8** @_execptr, align 8 + %"$m_size_3108" = load %Uint32, %Uint32* %m_size, align 4 + %"$zero_3109" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_3110" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3107", %Uint32 %"$m_size_3108", %Uint32 %"$zero_3109"), !dbg !338 + store %TName_Bool* %"$eq_call_3110", %TName_Bool** %is_empty, align 8, !dbg !338 + %"$gasrem_3112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3113" = icmp ugt i64 2, %"$gasrem_3112" + br i1 %"$gascmp_3113", label %"$out_of_gas_3114", label %"$have_gas_3115" + +"$out_of_gas_3114": ; preds = %"$have_gas_3105" + call void @_out_of_gas() + br label %"$have_gas_3115" + +"$have_gas_3115": ; preds = %"$out_of_gas_3114", %"$have_gas_3105" + %"$consume_3116" = sub i64 %"$gasrem_3112", 2 + store i64 %"$consume_3116", i64* @_gasrem, align 8 + %"$is_empty_3118" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_3119" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3118", i32 0, i32 0 + %"$is_empty_tag_3120" = load i8, i8* %"$is_empty_tag_3119", align 1 + switch i8 %"$is_empty_tag_3120", label %"$empty_default_3121" [ + i8 0, label %"$True_3122" + i8 1, label %"$False_3124" + ], !dbg !339 + +"$True_3122": ; preds = %"$have_gas_3115" + %"$is_empty_3123" = bitcast %TName_Bool* %"$is_empty_3118" to %CName_True* + br label %"$matchsucc_3117" + +"$False_3124": ; preds = %"$have_gas_3115" + %"$is_empty_3125" = bitcast %TName_Bool* %"$is_empty_3118" to %CName_False* + %"$gasrem_3126" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3127" = icmp ugt i64 1, %"$gasrem_3126" + br i1 %"$gascmp_3127", label %"$out_of_gas_3128", label %"$have_gas_3129" + +"$out_of_gas_3128": ; preds = %"$False_3124" + call void @_out_of_gas() + br label %"$have_gas_3129" + +"$have_gas_3129": ; preds = %"$out_of_gas_3128", %"$False_3124" + %"$consume_3130" = sub i64 %"$gasrem_3126", 1 + store i64 %"$consume_3130", i64* @_gasrem, align 8 + %msg = alloca %String, align 8 + %"$gasrem_3131" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3132" = icmp ugt i64 1, %"$gasrem_3131" + br i1 %"$gascmp_3132", label %"$out_of_gas_3133", label %"$have_gas_3134" + +"$out_of_gas_3133": ; preds = %"$have_gas_3129" + call void @_out_of_gas() + br label %"$have_gas_3134" + +"$have_gas_3134": ; preds = %"$out_of_gas_3133", %"$have_gas_3129" + %"$consume_3135" = sub i64 %"$gasrem_3131", 1 + store i64 %"$consume_3135", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @"$stringlit_3136", i32 0, i32 0), i32 29 }, %String* %msg, align 8, !dbg !340 + %"$gasrem_3137" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3138" = icmp ugt i64 1, %"$gasrem_3137" + br i1 %"$gascmp_3138", label %"$out_of_gas_3139", label %"$have_gas_3140" + +"$out_of_gas_3139": ; preds = %"$have_gas_3134" + call void @_out_of_gas() + br label %"$have_gas_3140" + +"$have_gas_3140": ; preds = %"$out_of_gas_3139", %"$have_gas_3134" + %"$consume_3141" = sub i64 %"$gasrem_3137", 1 + store i64 %"$consume_3141", i64* @_gasrem, align 8 + %"$fail_msg__origin_3142" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3142", align 1 + %"$fail_msg__sender_3143" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3143", align 1 + %"$tname_3144" = load %String, %String* %tname, align 8 + %"$msg_3145" = load %String, %String* %msg, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3142", [20 x i8]* %"$fail_msg__sender_3143", %String %"$tname_3144", %String %"$msg_3145"), !dbg !343 + br label %"$matchsucc_3117" + +"$empty_default_3121": ; preds = %"$have_gas_3115" + br label %"$matchsucc_3117" + +"$matchsucc_3117": ; preds = %"$have_gas_3140", %"$True_3122", %"$empty_default_3121" + br label %"$matchsucc_3065" + +"$None_3146": ; preds = %"$have_gas_3063" + %"$mo_3147" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3066" to %"CName_None_Map_(String)_(String)"* + %"$gasrem_3148" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3149" = icmp ugt i64 1, %"$gasrem_3148" + br i1 %"$gascmp_3149", label %"$out_of_gas_3150", label %"$have_gas_3151" + +"$out_of_gas_3150": ; preds = %"$None_3146" + call void @_out_of_gas() + br label %"$have_gas_3151" + +"$have_gas_3151": ; preds = %"$out_of_gas_3150", %"$None_3146" + %"$consume_3152" = sub i64 %"$gasrem_3148", 1 + store i64 %"$consume_3152", i64* @_gasrem, align 8 + %"$fail__origin_3153" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3153", align 1 + %"$fail__sender_3154" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3154", align 1 + %"$tname_3155" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3153", [20 x i8]* %"$fail__sender_3154", %String %"$tname_3155"), !dbg !344 + br label %"$matchsucc_3065" + +"$empty_default_3069": ; preds = %"$have_gas_3063" + br label %"$matchsucc_3065" + +"$matchsucc_3065": ; preds = %"$have_gas_3151", %"$matchsucc_3117", %"$empty_default_3069" + %"$gasrem_3156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3157" = icmp ugt i64 1, %"$gasrem_3156" + br i1 %"$gascmp_3157", label %"$out_of_gas_3158", label %"$have_gas_3159" + +"$out_of_gas_3158": ; preds = %"$matchsucc_3065" + call void @_out_of_gas() + br label %"$have_gas_3159" + +"$have_gas_3159": ; preds = %"$out_of_gas_3158", %"$matchsucc_3065" + %"$consume_3160" = sub i64 %"$gasrem_3156", 1 + store i64 %"$consume_3160", i64* @_gasrem, align 8 + %m3 = alloca %Map_String_String*, align 8 + %"$gasrem_3161" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3162" = icmp ugt i64 1, %"$gasrem_3161" + br i1 %"$gascmp_3162", label %"$out_of_gas_3163", label %"$have_gas_3164" -"$out_of_gas_3112": ; preds = %"$have_gas_3105" +"$out_of_gas_3163": ; preds = %"$have_gas_3159" call void @_out_of_gas() - br label %"$have_gas_3113" + br label %"$have_gas_3164" -"$have_gas_3113": ; preds = %"$out_of_gas_3112", %"$have_gas_3105" - %"$consume_3114" = sub i64 %"$gasrem_3110", 1 - store i64 %"$consume_3114", i64* @_gasrem, align 8 - %zero = alloca %Uint32, align 8 - %"$gasrem_3115" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3116" = icmp ugt i64 1, %"$gasrem_3115" - br i1 %"$gascmp_3116", label %"$out_of_gas_3117", label %"$have_gas_3118" +"$have_gas_3164": ; preds = %"$out_of_gas_3163", %"$have_gas_3159" + %"$consume_3165" = sub i64 %"$gasrem_3161", 1 + store i64 %"$consume_3165", i64* @_gasrem, align 8 + %"$execptr_load_3166" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3167" = call i8* @_new_empty_map(i8* %"$execptr_load_3166") + %"$_new_empty_map_3168" = bitcast i8* %"$_new_empty_map_call_3167" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_3168", %Map_String_String** %m3, align 8, !dbg !346 + %"$gasrem_3169" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3170" = icmp ugt i64 1, %"$gasrem_3169" + br i1 %"$gascmp_3170", label %"$out_of_gas_3171", label %"$have_gas_3172" -"$out_of_gas_3117": ; preds = %"$have_gas_3113" +"$out_of_gas_3171": ; preds = %"$have_gas_3164" call void @_out_of_gas() - br label %"$have_gas_3118" + br label %"$have_gas_3172" -"$have_gas_3118": ; preds = %"$out_of_gas_3117", %"$have_gas_3113" - %"$consume_3119" = sub i64 %"$gasrem_3115", 1 - store i64 %"$consume_3119", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !339 - %"$gasrem_3120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3121" = icmp ugt i64 1, %"$gasrem_3120" - br i1 %"$gascmp_3121", label %"$out_of_gas_3122", label %"$have_gas_3123" +"$have_gas_3172": ; preds = %"$out_of_gas_3171", %"$have_gas_3164" + %"$consume_3173" = sub i64 %"$gasrem_3169", 1 + store i64 %"$consume_3173", i64* @_gasrem, align 8 + %m2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 + %"$gasrem_3174" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3175" = icmp ugt i64 1, %"$gasrem_3174" + br i1 %"$gascmp_3175", label %"$out_of_gas_3176", label %"$have_gas_3177" -"$out_of_gas_3122": ; preds = %"$have_gas_3118" +"$out_of_gas_3176": ; preds = %"$have_gas_3172" call void @_out_of_gas() - br label %"$have_gas_3123" + br label %"$have_gas_3177" -"$have_gas_3123": ; preds = %"$out_of_gas_3122", %"$have_gas_3118" - %"$consume_3124" = sub i64 %"$gasrem_3120", 1 - store i64 %"$consume_3124", i64* @_gasrem, align 8 - %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_3125" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3126" = icmp ugt i64 4, %"$gasrem_3125" - br i1 %"$gascmp_3126", label %"$out_of_gas_3127", label %"$have_gas_3128" - -"$out_of_gas_3127": ; preds = %"$have_gas_3123" - call void @_out_of_gas() - br label %"$have_gas_3128" - -"$have_gas_3128": ; preds = %"$out_of_gas_3127", %"$have_gas_3123" - %"$consume_3129" = sub i64 %"$gasrem_3125", 4 - store i64 %"$consume_3129", i64* @_gasrem, align 8 - %"$execptr_load_3130" = load i8*, i8** @_execptr, align 8 - %"$m_size_3131" = load %Uint32, %Uint32* %m_size, align 4 - %"$zero_3132" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_3133" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3130", %Uint32 %"$m_size_3131", %Uint32 %"$zero_3132"), !dbg !340 - store %TName_Bool* %"$eq_call_3133", %TName_Bool** %is_empty, align 8, !dbg !340 - %"$gasrem_3135" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3136" = icmp ugt i64 2, %"$gasrem_3135" - br i1 %"$gascmp_3136", label %"$out_of_gas_3137", label %"$have_gas_3138" - -"$out_of_gas_3137": ; preds = %"$have_gas_3128" - call void @_out_of_gas() - br label %"$have_gas_3138" - -"$have_gas_3138": ; preds = %"$out_of_gas_3137", %"$have_gas_3128" - %"$consume_3139" = sub i64 %"$gasrem_3135", 2 - store i64 %"$consume_3139", i64* @_gasrem, align 8 - %"$is_empty_3141" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_3142" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3141", i32 0, i32 0 - %"$is_empty_tag_3143" = load i8, i8* %"$is_empty_tag_3142", align 1 - switch i8 %"$is_empty_tag_3143", label %"$empty_default_3144" [ - i8 0, label %"$True_3145" - i8 1, label %"$False_3147" - ], !dbg !341 - -"$True_3145": ; preds = %"$have_gas_3138" - %"$is_empty_3146" = bitcast %TName_Bool* %"$is_empty_3141" to %CName_True* - br label %"$matchsucc_3140" - -"$False_3147": ; preds = %"$have_gas_3138" - %"$is_empty_3148" = bitcast %TName_Bool* %"$is_empty_3141" to %CName_False* - %"$gasrem_3149" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3150" = icmp ugt i64 1, %"$gasrem_3149" - br i1 %"$gascmp_3150", label %"$out_of_gas_3151", label %"$have_gas_3152" - -"$out_of_gas_3151": ; preds = %"$False_3147" - call void @_out_of_gas() - br label %"$have_gas_3152" - -"$have_gas_3152": ; preds = %"$out_of_gas_3151", %"$False_3147" - %"$consume_3153" = sub i64 %"$gasrem_3149", 1 - store i64 %"$consume_3153", i64* @_gasrem, align 8 - %msg = alloca %String, align 8 - %"$gasrem_3154" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3155" = icmp ugt i64 1, %"$gasrem_3154" - br i1 %"$gascmp_3155", label %"$out_of_gas_3156", label %"$have_gas_3157" - -"$out_of_gas_3156": ; preds = %"$have_gas_3152" - call void @_out_of_gas() - br label %"$have_gas_3157" - -"$have_gas_3157": ; preds = %"$out_of_gas_3156", %"$have_gas_3152" - %"$consume_3158" = sub i64 %"$gasrem_3154", 1 - store i64 %"$consume_3158", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @"$stringlit_3159", i32 0, i32 0), i32 29 }, %String* %msg, align 8, !dbg !342 - %"$gasrem_3160" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3161" = icmp ugt i64 1, %"$gasrem_3160" - br i1 %"$gascmp_3161", label %"$out_of_gas_3162", label %"$have_gas_3163" - -"$out_of_gas_3162": ; preds = %"$have_gas_3157" - call void @_out_of_gas() - br label %"$have_gas_3163" - -"$have_gas_3163": ; preds = %"$out_of_gas_3162", %"$have_gas_3157" - %"$consume_3164" = sub i64 %"$gasrem_3160", 1 - store i64 %"$consume_3164", i64* @_gasrem, align 8 - %"$fail_msg__origin_3165" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3165", align 1 - %"$fail_msg__sender_3166" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3166", align 1 - %"$tname_3167" = load %String, %String* %tname, align 8 - %"$msg_3168" = load %String, %String* %msg, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3165", [20 x i8]* %"$fail_msg__sender_3166", %String %"$tname_3167", %String %"$msg_3168"), !dbg !345 - br label %"$matchsucc_3140" - -"$empty_default_3144": ; preds = %"$have_gas_3138" - br label %"$matchsucc_3140" - -"$matchsucc_3140": ; preds = %"$have_gas_3163", %"$True_3145", %"$empty_default_3144" - br label %"$matchsucc_3088" - -"$None_3169": ; preds = %"$have_gas_3086" - %"$mo_3170" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3089" to %"CName_None_Map_(String)_(String)"* - %"$gasrem_3171" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3172" = icmp ugt i64 1, %"$gasrem_3171" - br i1 %"$gascmp_3172", label %"$out_of_gas_3173", label %"$have_gas_3174" - -"$out_of_gas_3173": ; preds = %"$None_3169" - call void @_out_of_gas() - br label %"$have_gas_3174" - -"$have_gas_3174": ; preds = %"$out_of_gas_3173", %"$None_3169" - %"$consume_3175" = sub i64 %"$gasrem_3171", 1 - store i64 %"$consume_3175", i64* @_gasrem, align 8 - %"$fail__origin_3176" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3176", align 1 - %"$fail__sender_3177" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3177", align 1 - %"$tname_3178" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3176", [20 x i8]* %"$fail__sender_3177", %String %"$tname_3178"), !dbg !346 - br label %"$matchsucc_3088" - -"$empty_default_3092": ; preds = %"$have_gas_3086" - br label %"$matchsucc_3088" - -"$matchsucc_3088": ; preds = %"$have_gas_3174", %"$matchsucc_3140", %"$empty_default_3092" +"$have_gas_3177": ; preds = %"$out_of_gas_3176", %"$have_gas_3172" + %"$consume_3178" = sub i64 %"$gasrem_3174", 1 + store i64 %"$consume_3178", i64* @_gasrem, align 8 + %key2a = alloca %String, align 8 %"$gasrem_3179" = load i64, i64* @_gasrem, align 8 %"$gascmp_3180" = icmp ugt i64 1, %"$gasrem_3179" br i1 %"$gascmp_3180", label %"$out_of_gas_3181", label %"$have_gas_3182" -"$out_of_gas_3181": ; preds = %"$matchsucc_3088" +"$out_of_gas_3181": ; preds = %"$have_gas_3177" call void @_out_of_gas() br label %"$have_gas_3182" -"$have_gas_3182": ; preds = %"$out_of_gas_3181", %"$matchsucc_3088" +"$have_gas_3182": ; preds = %"$out_of_gas_3181", %"$have_gas_3177" %"$consume_3183" = sub i64 %"$gasrem_3179", 1 store i64 %"$consume_3183", i64* @_gasrem, align 8 - %m3 = alloca %Map_String_String*, align 8 - %"$gasrem_3184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3185" = icmp ugt i64 1, %"$gasrem_3184" - br i1 %"$gascmp_3185", label %"$out_of_gas_3186", label %"$have_gas_3187" + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3184", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !347 + %"$gasrem_3185" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3186" = icmp ugt i64 1, %"$gasrem_3185" + br i1 %"$gascmp_3186", label %"$out_of_gas_3187", label %"$have_gas_3188" -"$out_of_gas_3186": ; preds = %"$have_gas_3182" +"$out_of_gas_3187": ; preds = %"$have_gas_3182" call void @_out_of_gas() - br label %"$have_gas_3187" - -"$have_gas_3187": ; preds = %"$out_of_gas_3186", %"$have_gas_3182" - %"$consume_3188" = sub i64 %"$gasrem_3184", 1 - store i64 %"$consume_3188", i64* @_gasrem, align 8 - %"$execptr_load_3189" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3190" = call i8* @_new_empty_map(i8* %"$execptr_load_3189") - %"$_new_empty_map_3191" = bitcast i8* %"$_new_empty_map_call_3190" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_3191", %Map_String_String** %m3, align 8, !dbg !348 - %"$gasrem_3192" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3193" = icmp ugt i64 1, %"$gasrem_3192" - br i1 %"$gascmp_3193", label %"$out_of_gas_3194", label %"$have_gas_3195" + br label %"$have_gas_3188" -"$out_of_gas_3194": ; preds = %"$have_gas_3187" - call void @_out_of_gas() - br label %"$have_gas_3195" - -"$have_gas_3195": ; preds = %"$out_of_gas_3194", %"$have_gas_3187" - %"$consume_3196" = sub i64 %"$gasrem_3192", 1 - store i64 %"$consume_3196", i64* @_gasrem, align 8 - %m2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3197" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3198" = icmp ugt i64 1, %"$gasrem_3197" - br i1 %"$gascmp_3198", label %"$out_of_gas_3199", label %"$have_gas_3200" - -"$out_of_gas_3199": ; preds = %"$have_gas_3195" - call void @_out_of_gas() - br label %"$have_gas_3200" - -"$have_gas_3200": ; preds = %"$out_of_gas_3199", %"$have_gas_3195" - %"$consume_3201" = sub i64 %"$gasrem_3197", 1 - store i64 %"$consume_3201", i64* @_gasrem, align 8 - %key2a = alloca %String, align 8 +"$have_gas_3188": ; preds = %"$out_of_gas_3187", %"$have_gas_3182" + %"$consume_3189" = sub i64 %"$gasrem_3185", 1 + store i64 %"$consume_3189", i64* @_gasrem, align 8 + %e = alloca %"Map_String_Map_(String)_(String)"*, align 8 + %"$gasrem_3190" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3191" = icmp ugt i64 1, %"$gasrem_3190" + br i1 %"$gascmp_3191", label %"$out_of_gas_3192", label %"$have_gas_3193" + +"$out_of_gas_3192": ; preds = %"$have_gas_3188" + call void @_out_of_gas() + br label %"$have_gas_3193" + +"$have_gas_3193": ; preds = %"$out_of_gas_3192", %"$have_gas_3188" + %"$consume_3194" = sub i64 %"$gasrem_3190", 1 + store i64 %"$consume_3194", i64* @_gasrem, align 8 + %"$execptr_load_3195" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3196" = call i8* @_new_empty_map(i8* %"$execptr_load_3195") + %"$_new_empty_map_3197" = bitcast i8* %"$_new_empty_map_call_3196" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3197", %"Map_String_Map_(String)_(String)"** %e, align 8, !dbg !348 + %"$e_3198" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$$e_3198_3199" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3198" to i8* + %"$_lengthof_call_3200" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$e_3198_3199") + %"$gasadd_3201" = add i64 1, %"$_lengthof_call_3200" %"$gasrem_3202" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3203" = icmp ugt i64 1, %"$gasrem_3202" + %"$gascmp_3203" = icmp ugt i64 %"$gasadd_3201", %"$gasrem_3202" br i1 %"$gascmp_3203", label %"$out_of_gas_3204", label %"$have_gas_3205" -"$out_of_gas_3204": ; preds = %"$have_gas_3200" +"$out_of_gas_3204": ; preds = %"$have_gas_3193" call void @_out_of_gas() br label %"$have_gas_3205" -"$have_gas_3205": ; preds = %"$out_of_gas_3204", %"$have_gas_3200" - %"$consume_3206" = sub i64 %"$gasrem_3202", 1 +"$have_gas_3205": ; preds = %"$out_of_gas_3204", %"$have_gas_3193" + %"$consume_3206" = sub i64 %"$gasrem_3202", %"$gasadd_3201" store i64 %"$consume_3206", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3207", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !349 - %"$gasrem_3208" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3209" = icmp ugt i64 1, %"$gasrem_3208" - br i1 %"$gascmp_3209", label %"$out_of_gas_3210", label %"$have_gas_3211" - -"$out_of_gas_3210": ; preds = %"$have_gas_3205" - call void @_out_of_gas() - br label %"$have_gas_3211" - -"$have_gas_3211": ; preds = %"$out_of_gas_3210", %"$have_gas_3205" - %"$consume_3212" = sub i64 %"$gasrem_3208", 1 - store i64 %"$consume_3212", i64* @_gasrem, align 8 - %e = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3213" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3214" = icmp ugt i64 1, %"$gasrem_3213" - br i1 %"$gascmp_3214", label %"$out_of_gas_3215", label %"$have_gas_3216" - -"$out_of_gas_3215": ; preds = %"$have_gas_3211" - call void @_out_of_gas() - br label %"$have_gas_3216" - -"$have_gas_3216": ; preds = %"$out_of_gas_3215", %"$have_gas_3211" - %"$consume_3217" = sub i64 %"$gasrem_3213", 1 - store i64 %"$consume_3217", i64* @_gasrem, align 8 - %"$execptr_load_3218" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3219" = call i8* @_new_empty_map(i8* %"$execptr_load_3218") - %"$_new_empty_map_3220" = bitcast i8* %"$_new_empty_map_call_3219" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3220", %"Map_String_Map_(String)_(String)"** %e, align 8, !dbg !350 - %"$e_3221" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$$e_3221_3222" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3221" to i8* - %"$_lengthof_call_3223" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$e_3221_3222") - %"$gasadd_3224" = add i64 1, %"$_lengthof_call_3223" - %"$gasrem_3225" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3226" = icmp ugt i64 %"$gasadd_3224", %"$gasrem_3225" - br i1 %"$gascmp_3226", label %"$out_of_gas_3227", label %"$have_gas_3228" - -"$out_of_gas_3227": ; preds = %"$have_gas_3216" - call void @_out_of_gas() - br label %"$have_gas_3228" - -"$have_gas_3228": ; preds = %"$out_of_gas_3227", %"$have_gas_3216" - %"$consume_3229" = sub i64 %"$gasrem_3225", %"$gasadd_3224" - store i64 %"$consume_3229", i64* @_gasrem, align 8 - %"$execptr_load_3230" = load i8*, i8** @_execptr, align 8 - %"$e_3231" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$$e_3231_3232" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3231" to i8* - %"$put_key2a_3233" = alloca %String, align 8 - %"$key2a_3234" = load %String, %String* %key2a, align 8 - store %String %"$key2a_3234", %String* %"$put_key2a_3233", align 8 - %"$$put_key2a_3233_3235" = bitcast %String* %"$put_key2a_3233" to i8* - %"$m3_3236" = load %Map_String_String*, %Map_String_String** %m3, align 8 - %"$$m3_3236_3237" = bitcast %Map_String_String* %"$m3_3236" to i8* - %"$put_call_3238" = call i8* @_put(i8* %"$execptr_load_3230", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$e_3231_3232", i8* %"$$put_key2a_3233_3235", i8* %"$$m3_3236_3237"), !dbg !351 - %"$put_3239" = bitcast i8* %"$put_call_3238" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_3239", %"Map_String_Map_(String)_(String)"** %m2, align 8, !dbg !351 - %"$gasrem_3240" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3241" = icmp ugt i64 1, %"$gasrem_3240" - br i1 %"$gascmp_3241", label %"$out_of_gas_3242", label %"$have_gas_3243" - -"$out_of_gas_3242": ; preds = %"$have_gas_3228" - call void @_out_of_gas() - br label %"$have_gas_3243" - -"$have_gas_3243": ; preds = %"$out_of_gas_3242", %"$have_gas_3228" - %"$consume_3244" = sub i64 %"$gasrem_3240", 1 - store i64 %"$consume_3244", i64* @_gasrem, align 8 + %"$execptr_load_3207" = load i8*, i8** @_execptr, align 8 + %"$e_3208" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$$e_3208_3209" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3208" to i8* + %"$put_key2a_3210" = alloca %String, align 8 + %"$key2a_3211" = load %String, %String* %key2a, align 8 + store %String %"$key2a_3211", %String* %"$put_key2a_3210", align 8 + %"$$put_key2a_3210_3212" = bitcast %String* %"$put_key2a_3210" to i8* + %"$m3_3213" = load %Map_String_String*, %Map_String_String** %m3, align 8 + %"$$m3_3213_3214" = bitcast %Map_String_String* %"$m3_3213" to i8* + %"$put_call_3215" = call i8* @_put(i8* %"$execptr_load_3207", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$e_3208_3209", i8* %"$$put_key2a_3210_3212", i8* %"$$m3_3213_3214"), !dbg !349 + %"$put_3216" = bitcast i8* %"$put_call_3215" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_3216", %"Map_String_Map_(String)_(String)"** %m2, align 8, !dbg !349 + %"$gasrem_3217" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3218" = icmp ugt i64 1, %"$gasrem_3217" + br i1 %"$gascmp_3218", label %"$out_of_gas_3219", label %"$have_gas_3220" + +"$out_of_gas_3219": ; preds = %"$have_gas_3205" + call void @_out_of_gas() + br label %"$have_gas_3220" + +"$have_gas_3220": ; preds = %"$out_of_gas_3219", %"$have_gas_3205" + %"$consume_3221" = sub i64 %"$gasrem_3217", 1 + store i64 %"$consume_3221", i64* @_gasrem, align 8 %"$m3_12" = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$gasrem_3245" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3246" = icmp ugt i64 1, %"$gasrem_3245" - br i1 %"$gascmp_3246", label %"$out_of_gas_3247", label %"$have_gas_3248" + %"$gasrem_3222" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3223" = icmp ugt i64 1, %"$gasrem_3222" + br i1 %"$gascmp_3223", label %"$out_of_gas_3224", label %"$have_gas_3225" -"$out_of_gas_3247": ; preds = %"$have_gas_3243" +"$out_of_gas_3224": ; preds = %"$have_gas_3220" call void @_out_of_gas() - br label %"$have_gas_3248" + br label %"$have_gas_3225" -"$have_gas_3248": ; preds = %"$out_of_gas_3247", %"$have_gas_3243" - %"$consume_3249" = sub i64 %"$gasrem_3245", 1 - store i64 %"$consume_3249", i64* @_gasrem, align 8 +"$have_gas_3225": ; preds = %"$out_of_gas_3224", %"$have_gas_3220" + %"$consume_3226" = sub i64 %"$gasrem_3222", 1 + store i64 %"$consume_3226", i64* @_gasrem, align 8 %"$e_11" = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$gasrem_3250" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3251" = icmp ugt i64 1, %"$gasrem_3250" - br i1 %"$gascmp_3251", label %"$out_of_gas_3252", label %"$have_gas_3253" - -"$out_of_gas_3252": ; preds = %"$have_gas_3248" - call void @_out_of_gas() - br label %"$have_gas_3253" - -"$have_gas_3253": ; preds = %"$out_of_gas_3252", %"$have_gas_3248" - %"$consume_3254" = sub i64 %"$gasrem_3250", 1 - store i64 %"$consume_3254", i64* @_gasrem, align 8 - %"$execptr_load_3255" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3256" = call i8* @_new_empty_map(i8* %"$execptr_load_3255") - %"$_new_empty_map_3257" = bitcast i8* %"$_new_empty_map_call_3256" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_3257", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8, !dbg !352 - %"$$e_11_3258" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8 - %"$$$e_11_3258_3259" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_11_3258" to i8* - %"$_lengthof_call_3260" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$$e_11_3258_3259") - %"$gasadd_3261" = add i64 1, %"$_lengthof_call_3260" - %"$gasrem_3262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3263" = icmp ugt i64 %"$gasadd_3261", %"$gasrem_3262" - br i1 %"$gascmp_3263", label %"$out_of_gas_3264", label %"$have_gas_3265" - -"$out_of_gas_3264": ; preds = %"$have_gas_3253" - call void @_out_of_gas() - br label %"$have_gas_3265" - -"$have_gas_3265": ; preds = %"$out_of_gas_3264", %"$have_gas_3253" - %"$consume_3266" = sub i64 %"$gasrem_3262", %"$gasadd_3261" - store i64 %"$consume_3266", i64* @_gasrem, align 8 - %"$execptr_load_3267" = load i8*, i8** @_execptr, align 8 - %"$$e_11_3268" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8 - %"$$$e_11_3268_3269" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_11_3268" to i8* - %"$put_key1a_3270" = alloca %String, align 8 - %"$key1a_3271" = load %String, %String* %key1a, align 8 - store %String %"$key1a_3271", %String* %"$put_key1a_3270", align 8 - %"$$put_key1a_3270_3272" = bitcast %String* %"$put_key1a_3270" to i8* - %"$m2_3273" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_3273_3274" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3273" to i8* - %"$put_call_3275" = call i8* @_put(i8* %"$execptr_load_3267", %_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$$e_11_3268_3269", i8* %"$$put_key1a_3270_3272", i8* %"$$m2_3273_3274"), !dbg !353 - %"$put_3276" = bitcast i8* %"$put_call_3275" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$put_3276", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8, !dbg !353 - %"$$m3_12_3277" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8 - %"$$$m3_12_3277_3278" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_12_3277" to i8* - %"$_literal_cost_call_3279" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$$m3_12_3277_3278") - %"$gasrem_3280" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3281" = icmp ugt i64 %"$_literal_cost_call_3279", %"$gasrem_3280" - br i1 %"$gascmp_3281", label %"$out_of_gas_3282", label %"$have_gas_3283" - -"$out_of_gas_3282": ; preds = %"$have_gas_3265" - call void @_out_of_gas() - br label %"$have_gas_3283" - -"$have_gas_3283": ; preds = %"$out_of_gas_3282", %"$have_gas_3265" - %"$consume_3284" = sub i64 %"$gasrem_3280", %"$_literal_cost_call_3279" - store i64 %"$consume_3284", i64* @_gasrem, align 8 - %"$execptr_load_3285" = load i8*, i8** @_execptr, align 8 - %"$$m3_12_3287" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8 - %"$update_value_3288" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_12_3287" to i8* - call void @_update_field(i8* %"$execptr_load_3285", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3286", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_71", i32 0, i8* null, i8* %"$update_value_3288"), !dbg !354 + %"$gasrem_3227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3228" = icmp ugt i64 1, %"$gasrem_3227" + br i1 %"$gascmp_3228", label %"$out_of_gas_3229", label %"$have_gas_3230" + +"$out_of_gas_3229": ; preds = %"$have_gas_3225" + call void @_out_of_gas() + br label %"$have_gas_3230" + +"$have_gas_3230": ; preds = %"$out_of_gas_3229", %"$have_gas_3225" + %"$consume_3231" = sub i64 %"$gasrem_3227", 1 + store i64 %"$consume_3231", i64* @_gasrem, align 8 + %"$execptr_load_3232" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3233" = call i8* @_new_empty_map(i8* %"$execptr_load_3232") + %"$_new_empty_map_3234" = bitcast i8* %"$_new_empty_map_call_3233" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_3234", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8, !dbg !350 + %"$$e_11_3235" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8 + %"$$$e_11_3235_3236" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_11_3235" to i8* + %"$_lengthof_call_3237" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$$e_11_3235_3236") + %"$gasadd_3238" = add i64 1, %"$_lengthof_call_3237" + %"$gasrem_3239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3240" = icmp ugt i64 %"$gasadd_3238", %"$gasrem_3239" + br i1 %"$gascmp_3240", label %"$out_of_gas_3241", label %"$have_gas_3242" + +"$out_of_gas_3241": ; preds = %"$have_gas_3230" + call void @_out_of_gas() + br label %"$have_gas_3242" + +"$have_gas_3242": ; preds = %"$out_of_gas_3241", %"$have_gas_3230" + %"$consume_3243" = sub i64 %"$gasrem_3239", %"$gasadd_3238" + store i64 %"$consume_3243", i64* @_gasrem, align 8 + %"$execptr_load_3244" = load i8*, i8** @_execptr, align 8 + %"$$e_11_3245" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8 + %"$$$e_11_3245_3246" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_11_3245" to i8* + %"$put_key1a_3247" = alloca %String, align 8 + %"$key1a_3248" = load %String, %String* %key1a, align 8 + store %String %"$key1a_3248", %String* %"$put_key1a_3247", align 8 + %"$$put_key1a_3247_3249" = bitcast %String* %"$put_key1a_3247" to i8* + %"$m2_3250" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_3250_3251" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3250" to i8* + %"$put_call_3252" = call i8* @_put(i8* %"$execptr_load_3244", %_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$$e_11_3245_3246", i8* %"$$put_key1a_3247_3249", i8* %"$$m2_3250_3251"), !dbg !351 + %"$put_3253" = bitcast i8* %"$put_call_3252" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$put_3253", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8, !dbg !351 + %"$$m3_12_3254" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8 + %"$$$m3_12_3254_3255" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_12_3254" to i8* + %"$_literal_cost_call_3256" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$$m3_12_3254_3255") + %"$gasrem_3257" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3258" = icmp ugt i64 %"$_literal_cost_call_3256", %"$gasrem_3257" + br i1 %"$gascmp_3258", label %"$out_of_gas_3259", label %"$have_gas_3260" + +"$out_of_gas_3259": ; preds = %"$have_gas_3242" + call void @_out_of_gas() + br label %"$have_gas_3260" + +"$have_gas_3260": ; preds = %"$out_of_gas_3259", %"$have_gas_3242" + %"$consume_3261" = sub i64 %"$gasrem_3257", %"$_literal_cost_call_3256" + store i64 %"$consume_3261", i64* @_gasrem, align 8 + %"$execptr_load_3262" = load i8*, i8** @_execptr, align 8 + %"$$m3_12_3264" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8 + %"$update_value_3265" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_12_3264" to i8* + call void @_update_field(i8* %"$execptr_load_3262", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3263", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_63", i32 0, i8* null, i8* %"$update_value_3265"), !dbg !352 ret void } -define void @t13(i8* %0) !dbg !355 { +define void @t13(i8* %0) !dbg !353 { entry: - %"$_amount_3290" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3291" = bitcast i8* %"$_amount_3290" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3291", align 8 - %"$_origin_3292" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3293" = bitcast i8* %"$_origin_3292" to [20 x i8]* - %"$_sender_3294" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3295" = bitcast i8* %"$_sender_3294" to [20 x i8]* - call void @"$t13_3041"(%Uint128 %_amount, [20 x i8]* %"$_origin_3293", [20 x i8]* %"$_sender_3295"), !dbg !356 + %"$_amount_3267" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3268" = bitcast i8* %"$_amount_3267" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3268", align 8 + %"$_origin_3269" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3270" = bitcast i8* %"$_origin_3269" to [20 x i8]* + %"$_sender_3271" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3272" = bitcast i8* %"$_sender_3271" to [20 x i8]* + call void @"$t13_3018"(%Uint128 %_amount, [20 x i8]* %"$_origin_3270", [20 x i8]* %"$_sender_3272"), !dbg !354 ret void } -define internal void @"$t14_3296"(%Uint128 %_amount, [20 x i8]* %"$_origin_3297", [20 x i8]* %"$_sender_3298") !dbg !357 { +define internal void @"$t14_3273"(%Uint128 %_amount, [20 x i8]* %"$_origin_3274", [20 x i8]* %"$_sender_3275") !dbg !355 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3297", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3298", align 1 - %"$gasrem_3299" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3300" = icmp ugt i64 1, %"$gasrem_3299" - br i1 %"$gascmp_3300", label %"$out_of_gas_3301", label %"$have_gas_3302" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3274", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3275", align 1 + %"$gasrem_3276" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3277" = icmp ugt i64 1, %"$gasrem_3276" + br i1 %"$gascmp_3277", label %"$out_of_gas_3278", label %"$have_gas_3279" -"$out_of_gas_3301": ; preds = %entry +"$out_of_gas_3278": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3302" + br label %"$have_gas_3279" -"$have_gas_3302": ; preds = %"$out_of_gas_3301", %entry - %"$consume_3303" = sub i64 %"$gasrem_3299", 1 - store i64 %"$consume_3303", i64* @_gasrem, align 8 +"$have_gas_3279": ; preds = %"$out_of_gas_3278", %entry + %"$consume_3280" = sub i64 %"$gasrem_3276", 1 + store i64 %"$consume_3280", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_3304" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3305" = icmp ugt i64 1, %"$gasrem_3304" - br i1 %"$gascmp_3305", label %"$out_of_gas_3306", label %"$have_gas_3307" + %"$gasrem_3281" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3282" = icmp ugt i64 1, %"$gasrem_3281" + br i1 %"$gascmp_3282", label %"$out_of_gas_3283", label %"$have_gas_3284" -"$out_of_gas_3306": ; preds = %"$have_gas_3302" +"$out_of_gas_3283": ; preds = %"$have_gas_3279" call void @_out_of_gas() - br label %"$have_gas_3307" + br label %"$have_gas_3284" -"$have_gas_3307": ; preds = %"$out_of_gas_3306", %"$have_gas_3302" - %"$consume_3308" = sub i64 %"$gasrem_3304", 1 - store i64 %"$consume_3308", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3309", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !358 +"$have_gas_3284": ; preds = %"$out_of_gas_3283", %"$have_gas_3279" + %"$consume_3285" = sub i64 %"$gasrem_3281", 1 + store i64 %"$consume_3285", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3286", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !356 %m3 = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$execptr_load_3311" = load i8*, i8** @_execptr, align 8 - %"$m3_call_3312" = call i8* @_fetch_field(i8* %"$execptr_load_3311", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3310", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_71", i32 0, i8* null, i32 1), !dbg !359 - %"$m3_3313" = bitcast i8* %"$m3_call_3312" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3313", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$m3_3314" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3314_3315" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3314" to i8* - %"$_literal_cost_call_3316" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$m3_3314_3315") - %"$m3_3317" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3317_3318" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3317" to i8* - %"$_mapsortcost_call_3319" = call i64 @_mapsortcost(i8* %"$$m3_3317_3318") - %"$gasadd_3320" = add i64 %"$_literal_cost_call_3316", %"$_mapsortcost_call_3319" + %"$execptr_load_3288" = load i8*, i8** @_execptr, align 8 + %"$m3_call_3289" = call i8* @_fetch_field(i8* %"$execptr_load_3288", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3287", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_63", i32 0, i8* null, i32 1), !dbg !357 + %"$m3_3290" = bitcast i8* %"$m3_call_3289" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3290", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$m3_3291" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3291_3292" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3291" to i8* + %"$_literal_cost_call_3293" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$m3_3291_3292") + %"$m3_3294" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3294_3295" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3294" to i8* + %"$_mapsortcost_call_3296" = call i64 @_mapsortcost(i8* %"$$m3_3294_3295") + %"$gasadd_3297" = add i64 %"$_literal_cost_call_3293", %"$_mapsortcost_call_3296" + %"$gasrem_3298" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3299" = icmp ugt i64 %"$gasadd_3297", %"$gasrem_3298" + br i1 %"$gascmp_3299", label %"$out_of_gas_3300", label %"$have_gas_3301" + +"$out_of_gas_3300": ; preds = %"$have_gas_3284" + call void @_out_of_gas() + br label %"$have_gas_3301" + +"$have_gas_3301": ; preds = %"$out_of_gas_3300", %"$have_gas_3284" + %"$consume_3302" = sub i64 %"$gasrem_3298", %"$gasadd_3297" + store i64 %"$consume_3302", i64* @_gasrem, align 8 + %"$gasrem_3303" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3304" = icmp ugt i64 1, %"$gasrem_3303" + br i1 %"$gascmp_3304", label %"$out_of_gas_3305", label %"$have_gas_3306" + +"$out_of_gas_3305": ; preds = %"$have_gas_3301" + call void @_out_of_gas() + br label %"$have_gas_3306" + +"$have_gas_3306": ; preds = %"$out_of_gas_3305", %"$have_gas_3301" + %"$consume_3307" = sub i64 %"$gasrem_3303", 1 + store i64 %"$consume_3307", i64* @_gasrem, align 8 + %m3_size = alloca %Uint32, align 8 + %"$gasrem_3308" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3309" = icmp ugt i64 1, %"$gasrem_3308" + br i1 %"$gascmp_3309", label %"$out_of_gas_3310", label %"$have_gas_3311" + +"$out_of_gas_3310": ; preds = %"$have_gas_3306" + call void @_out_of_gas() + br label %"$have_gas_3311" + +"$have_gas_3311": ; preds = %"$out_of_gas_3310", %"$have_gas_3306" + %"$consume_3312" = sub i64 %"$gasrem_3308", 1 + store i64 %"$consume_3312", i64* @_gasrem, align 8 + %"$m3_3313" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3313_3314" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3313" to i8* + %"$size_call_3315" = call %Uint32 @_size(i8* %"$$m3_3313_3314"), !dbg !358 + store %Uint32 %"$size_call_3315", %Uint32* %m3_size, align 4, !dbg !358 + %"$gasrem_3316" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3317" = icmp ugt i64 1, %"$gasrem_3316" + br i1 %"$gascmp_3317", label %"$out_of_gas_3318", label %"$have_gas_3319" + +"$out_of_gas_3318": ; preds = %"$have_gas_3311" + call void @_out_of_gas() + br label %"$have_gas_3319" + +"$have_gas_3319": ; preds = %"$out_of_gas_3318", %"$have_gas_3311" + %"$consume_3320" = sub i64 %"$gasrem_3316", 1 + store i64 %"$consume_3320", i64* @_gasrem, align 8 + %one = alloca %Uint32, align 8 %"$gasrem_3321" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3322" = icmp ugt i64 %"$gasadd_3320", %"$gasrem_3321" + %"$gascmp_3322" = icmp ugt i64 1, %"$gasrem_3321" br i1 %"$gascmp_3322", label %"$out_of_gas_3323", label %"$have_gas_3324" -"$out_of_gas_3323": ; preds = %"$have_gas_3307" +"$out_of_gas_3323": ; preds = %"$have_gas_3319" call void @_out_of_gas() br label %"$have_gas_3324" -"$have_gas_3324": ; preds = %"$out_of_gas_3323", %"$have_gas_3307" - %"$consume_3325" = sub i64 %"$gasrem_3321", %"$gasadd_3320" +"$have_gas_3324": ; preds = %"$out_of_gas_3323", %"$have_gas_3319" + %"$consume_3325" = sub i64 %"$gasrem_3321", 1 store i64 %"$consume_3325", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !359 %"$gasrem_3326" = load i64, i64* @_gasrem, align 8 %"$gascmp_3327" = icmp ugt i64 1, %"$gasrem_3326" br i1 %"$gascmp_3327", label %"$out_of_gas_3328", label %"$have_gas_3329" @@ -6798,9 +6817,9 @@ entry: "$have_gas_3329": ; preds = %"$out_of_gas_3328", %"$have_gas_3324" %"$consume_3330" = sub i64 %"$gasrem_3326", 1 store i64 %"$consume_3330", i64* @_gasrem, align 8 - %m3_size = alloca %Uint32, align 8 + %is_empty = alloca %TName_Bool*, align 8 %"$gasrem_3331" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3332" = icmp ugt i64 1, %"$gasrem_3331" + %"$gascmp_3332" = icmp ugt i64 4, %"$gasrem_3331" br i1 %"$gascmp_3332", label %"$out_of_gas_3333", label %"$have_gas_3334" "$out_of_gas_3333": ; preds = %"$have_gas_3329" @@ -6808,224 +6827,224 @@ entry: br label %"$have_gas_3334" "$have_gas_3334": ; preds = %"$out_of_gas_3333", %"$have_gas_3329" - %"$consume_3335" = sub i64 %"$gasrem_3331", 1 + %"$consume_3335" = sub i64 %"$gasrem_3331", 4 store i64 %"$consume_3335", i64* @_gasrem, align 8 - %"$m3_3336" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3336_3337" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3336" to i8* - %"$size_call_3338" = call %Uint32 @_size(i8* %"$$m3_3336_3337"), !dbg !360 - store %Uint32 %"$size_call_3338", %Uint32* %m3_size, align 4, !dbg !360 - %"$gasrem_3339" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3340" = icmp ugt i64 1, %"$gasrem_3339" - br i1 %"$gascmp_3340", label %"$out_of_gas_3341", label %"$have_gas_3342" - -"$out_of_gas_3341": ; preds = %"$have_gas_3334" - call void @_out_of_gas() - br label %"$have_gas_3342" - -"$have_gas_3342": ; preds = %"$out_of_gas_3341", %"$have_gas_3334" - %"$consume_3343" = sub i64 %"$gasrem_3339", 1 - store i64 %"$consume_3343", i64* @_gasrem, align 8 - %one = alloca %Uint32, align 8 - %"$gasrem_3344" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3345" = icmp ugt i64 1, %"$gasrem_3344" - br i1 %"$gascmp_3345", label %"$out_of_gas_3346", label %"$have_gas_3347" - -"$out_of_gas_3346": ; preds = %"$have_gas_3342" - call void @_out_of_gas() - br label %"$have_gas_3347" - -"$have_gas_3347": ; preds = %"$out_of_gas_3346", %"$have_gas_3342" - %"$consume_3348" = sub i64 %"$gasrem_3344", 1 - store i64 %"$consume_3348", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !361 - %"$gasrem_3349" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3350" = icmp ugt i64 1, %"$gasrem_3349" - br i1 %"$gascmp_3350", label %"$out_of_gas_3351", label %"$have_gas_3352" - -"$out_of_gas_3351": ; preds = %"$have_gas_3347" - call void @_out_of_gas() - br label %"$have_gas_3352" - -"$have_gas_3352": ; preds = %"$out_of_gas_3351", %"$have_gas_3347" - %"$consume_3353" = sub i64 %"$gasrem_3349", 1 - store i64 %"$consume_3353", i64* @_gasrem, align 8 - %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_3354" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3355" = icmp ugt i64 4, %"$gasrem_3354" - br i1 %"$gascmp_3355", label %"$out_of_gas_3356", label %"$have_gas_3357" - -"$out_of_gas_3356": ; preds = %"$have_gas_3352" - call void @_out_of_gas() - br label %"$have_gas_3357" - -"$have_gas_3357": ; preds = %"$out_of_gas_3356", %"$have_gas_3352" - %"$consume_3358" = sub i64 %"$gasrem_3354", 4 - store i64 %"$consume_3358", i64* @_gasrem, align 8 - %"$execptr_load_3359" = load i8*, i8** @_execptr, align 8 - %"$m3_size_3360" = load %Uint32, %Uint32* %m3_size, align 4 - %"$one_3361" = load %Uint32, %Uint32* %one, align 4 - %"$eq_call_3362" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3359", %Uint32 %"$m3_size_3360", %Uint32 %"$one_3361"), !dbg !362 - store %TName_Bool* %"$eq_call_3362", %TName_Bool** %is_empty, align 8, !dbg !362 - %"$gasrem_3364" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3365" = icmp ugt i64 2, %"$gasrem_3364" - br i1 %"$gascmp_3365", label %"$out_of_gas_3366", label %"$have_gas_3367" - -"$out_of_gas_3366": ; preds = %"$have_gas_3357" - call void @_out_of_gas() - br label %"$have_gas_3367" - -"$have_gas_3367": ; preds = %"$out_of_gas_3366", %"$have_gas_3357" - %"$consume_3368" = sub i64 %"$gasrem_3364", 2 - store i64 %"$consume_3368", i64* @_gasrem, align 8 - %"$is_empty_3370" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_3371" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3370", i32 0, i32 0 - %"$is_empty_tag_3372" = load i8, i8* %"$is_empty_tag_3371", align 1 - switch i8 %"$is_empty_tag_3372", label %"$empty_default_3373" [ - i8 0, label %"$True_3374" - i8 1, label %"$False_3376" - ], !dbg !363 - -"$True_3374": ; preds = %"$have_gas_3367" - %"$is_empty_3375" = bitcast %TName_Bool* %"$is_empty_3370" to %CName_True* - br label %"$matchsucc_3369" - -"$False_3376": ; preds = %"$have_gas_3367" - %"$is_empty_3377" = bitcast %TName_Bool* %"$is_empty_3370" to %CName_False* - %"$gasrem_3378" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3379" = icmp ugt i64 1, %"$gasrem_3378" - br i1 %"$gascmp_3379", label %"$out_of_gas_3380", label %"$have_gas_3381" - -"$out_of_gas_3380": ; preds = %"$False_3376" - call void @_out_of_gas() - br label %"$have_gas_3381" - -"$have_gas_3381": ; preds = %"$out_of_gas_3380", %"$False_3376" - %"$consume_3382" = sub i64 %"$gasrem_3378", 1 - store i64 %"$consume_3382", i64* @_gasrem, align 8 - %"$fail__origin_3383" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3383", align 1 - %"$fail__sender_3384" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3384", align 1 - %"$tname_3385" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3383", [20 x i8]* %"$fail__sender_3384", %String %"$tname_3385"), !dbg !364 - br label %"$matchsucc_3369" - -"$empty_default_3373": ; preds = %"$have_gas_3367" - br label %"$matchsucc_3369" - -"$matchsucc_3369": ; preds = %"$have_gas_3381", %"$True_3374", %"$empty_default_3373" - %"$gasrem_3386" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3387" = icmp ugt i64 1, %"$gasrem_3386" - br i1 %"$gascmp_3387", label %"$out_of_gas_3388", label %"$have_gas_3389" - -"$out_of_gas_3388": ; preds = %"$matchsucc_3369" - call void @_out_of_gas() - br label %"$have_gas_3389" - -"$have_gas_3389": ; preds = %"$out_of_gas_3388", %"$matchsucc_3369" - %"$consume_3390" = sub i64 %"$gasrem_3386", 1 - store i64 %"$consume_3390", i64* @_gasrem, align 8 + %"$execptr_load_3336" = load i8*, i8** @_execptr, align 8 + %"$m3_size_3337" = load %Uint32, %Uint32* %m3_size, align 4 + %"$one_3338" = load %Uint32, %Uint32* %one, align 4 + %"$eq_call_3339" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3336", %Uint32 %"$m3_size_3337", %Uint32 %"$one_3338"), !dbg !360 + store %TName_Bool* %"$eq_call_3339", %TName_Bool** %is_empty, align 8, !dbg !360 + %"$gasrem_3341" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3342" = icmp ugt i64 2, %"$gasrem_3341" + br i1 %"$gascmp_3342", label %"$out_of_gas_3343", label %"$have_gas_3344" + +"$out_of_gas_3343": ; preds = %"$have_gas_3334" + call void @_out_of_gas() + br label %"$have_gas_3344" + +"$have_gas_3344": ; preds = %"$out_of_gas_3343", %"$have_gas_3334" + %"$consume_3345" = sub i64 %"$gasrem_3341", 2 + store i64 %"$consume_3345", i64* @_gasrem, align 8 + %"$is_empty_3347" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_3348" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3347", i32 0, i32 0 + %"$is_empty_tag_3349" = load i8, i8* %"$is_empty_tag_3348", align 1 + switch i8 %"$is_empty_tag_3349", label %"$empty_default_3350" [ + i8 0, label %"$True_3351" + i8 1, label %"$False_3353" + ], !dbg !361 + +"$True_3351": ; preds = %"$have_gas_3344" + %"$is_empty_3352" = bitcast %TName_Bool* %"$is_empty_3347" to %CName_True* + br label %"$matchsucc_3346" + +"$False_3353": ; preds = %"$have_gas_3344" + %"$is_empty_3354" = bitcast %TName_Bool* %"$is_empty_3347" to %CName_False* + %"$gasrem_3355" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3356" = icmp ugt i64 1, %"$gasrem_3355" + br i1 %"$gascmp_3356", label %"$out_of_gas_3357", label %"$have_gas_3358" + +"$out_of_gas_3357": ; preds = %"$False_3353" + call void @_out_of_gas() + br label %"$have_gas_3358" + +"$have_gas_3358": ; preds = %"$out_of_gas_3357", %"$False_3353" + %"$consume_3359" = sub i64 %"$gasrem_3355", 1 + store i64 %"$consume_3359", i64* @_gasrem, align 8 + %"$fail__origin_3360" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3360", align 1 + %"$fail__sender_3361" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3361", align 1 + %"$tname_3362" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3360", [20 x i8]* %"$fail__sender_3361", %String %"$tname_3362"), !dbg !362 + br label %"$matchsucc_3346" + +"$empty_default_3350": ; preds = %"$have_gas_3344" + br label %"$matchsucc_3346" + +"$matchsucc_3346": ; preds = %"$have_gas_3358", %"$True_3351", %"$empty_default_3350" + %"$gasrem_3363" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3364" = icmp ugt i64 1, %"$gasrem_3363" + br i1 %"$gascmp_3364", label %"$out_of_gas_3365", label %"$have_gas_3366" + +"$out_of_gas_3365": ; preds = %"$matchsucc_3346" + call void @_out_of_gas() + br label %"$have_gas_3366" + +"$have_gas_3366": ; preds = %"$out_of_gas_3365", %"$matchsucc_3346" + %"$consume_3367" = sub i64 %"$gasrem_3363", 1 + store i64 %"$consume_3367", i64* @_gasrem, align 8 %e = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3391" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3392" = icmp ugt i64 1, %"$gasrem_3391" - br i1 %"$gascmp_3392", label %"$out_of_gas_3393", label %"$have_gas_3394" - -"$out_of_gas_3393": ; preds = %"$have_gas_3389" - call void @_out_of_gas() - br label %"$have_gas_3394" - -"$have_gas_3394": ; preds = %"$out_of_gas_3393", %"$have_gas_3389" - %"$consume_3395" = sub i64 %"$gasrem_3391", 1 - store i64 %"$consume_3395", i64* @_gasrem, align 8 - %"$execptr_load_3396" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3397" = call i8* @_new_empty_map(i8* %"$execptr_load_3396") - %"$_new_empty_map_3398" = bitcast i8* %"$_new_empty_map_call_3397" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3398", %"Map_String_Map_(String)_(String)"** %e, align 8, !dbg !367 - %"$e_3399" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$$e_3399_3400" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3399" to i8* - %"$_literal_cost_call_3401" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$e_3399_3400") - %"$gasrem_3402" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3403" = icmp ugt i64 %"$_literal_cost_call_3401", %"$gasrem_3402" - br i1 %"$gascmp_3403", label %"$out_of_gas_3404", label %"$have_gas_3405" - -"$out_of_gas_3404": ; preds = %"$have_gas_3394" - call void @_out_of_gas() - br label %"$have_gas_3405" - -"$have_gas_3405": ; preds = %"$out_of_gas_3404", %"$have_gas_3394" - %"$consume_3406" = sub i64 %"$gasrem_3402", %"$_literal_cost_call_3401" - store i64 %"$consume_3406", i64* @_gasrem, align 8 - %"$execptr_load_3407" = load i8*, i8** @_execptr, align 8 - %"$e_3409" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$update_value_3410" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3409" to i8* - call void @_update_field(i8* %"$execptr_load_3407", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_3408", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i8* %"$update_value_3410"), !dbg !368 + %"$gasrem_3368" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3369" = icmp ugt i64 1, %"$gasrem_3368" + br i1 %"$gascmp_3369", label %"$out_of_gas_3370", label %"$have_gas_3371" + +"$out_of_gas_3370": ; preds = %"$have_gas_3366" + call void @_out_of_gas() + br label %"$have_gas_3371" + +"$have_gas_3371": ; preds = %"$out_of_gas_3370", %"$have_gas_3366" + %"$consume_3372" = sub i64 %"$gasrem_3368", 1 + store i64 %"$consume_3372", i64* @_gasrem, align 8 + %"$execptr_load_3373" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3374" = call i8* @_new_empty_map(i8* %"$execptr_load_3373") + %"$_new_empty_map_3375" = bitcast i8* %"$_new_empty_map_call_3374" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3375", %"Map_String_Map_(String)_(String)"** %e, align 8, !dbg !365 + %"$e_3376" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$$e_3376_3377" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3376" to i8* + %"$_literal_cost_call_3378" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$e_3376_3377") + %"$gasrem_3379" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3380" = icmp ugt i64 %"$_literal_cost_call_3378", %"$gasrem_3379" + br i1 %"$gascmp_3380", label %"$out_of_gas_3381", label %"$have_gas_3382" + +"$out_of_gas_3381": ; preds = %"$have_gas_3371" + call void @_out_of_gas() + br label %"$have_gas_3382" + +"$have_gas_3382": ; preds = %"$out_of_gas_3381", %"$have_gas_3371" + %"$consume_3383" = sub i64 %"$gasrem_3379", %"$_literal_cost_call_3378" + store i64 %"$consume_3383", i64* @_gasrem, align 8 + %"$execptr_load_3384" = load i8*, i8** @_execptr, align 8 + %"$e_3386" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$update_value_3387" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3386" to i8* + call void @_update_field(i8* %"$execptr_load_3384", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_3385", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i8* %"$update_value_3387"), !dbg !366 ret void } -define void @t14(i8* %0) !dbg !369 { +define void @t14(i8* %0) !dbg !367 { entry: - %"$_amount_3412" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3413" = bitcast i8* %"$_amount_3412" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3413", align 8 - %"$_origin_3414" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3415" = bitcast i8* %"$_origin_3414" to [20 x i8]* - %"$_sender_3416" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3417" = bitcast i8* %"$_sender_3416" to [20 x i8]* - call void @"$t14_3296"(%Uint128 %_amount, [20 x i8]* %"$_origin_3415", [20 x i8]* %"$_sender_3417"), !dbg !370 + %"$_amount_3389" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3390" = bitcast i8* %"$_amount_3389" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3390", align 8 + %"$_origin_3391" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3392" = bitcast i8* %"$_origin_3391" to [20 x i8]* + %"$_sender_3393" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3394" = bitcast i8* %"$_sender_3393" to [20 x i8]* + call void @"$t14_3273"(%Uint128 %_amount, [20 x i8]* %"$_origin_3392", [20 x i8]* %"$_sender_3394"), !dbg !368 ret void } -define internal void @"$t15_3418"(%Uint128 %_amount, [20 x i8]* %"$_origin_3419", [20 x i8]* %"$_sender_3420") !dbg !371 { +define internal void @"$t15_3395"(%Uint128 %_amount, [20 x i8]* %"$_origin_3396", [20 x i8]* %"$_sender_3397") !dbg !369 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3419", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3420", align 1 - %"$gasrem_3421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3422" = icmp ugt i64 1, %"$gasrem_3421" - br i1 %"$gascmp_3422", label %"$out_of_gas_3423", label %"$have_gas_3424" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3396", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3397", align 1 + %"$gasrem_3398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3399" = icmp ugt i64 1, %"$gasrem_3398" + br i1 %"$gascmp_3399", label %"$out_of_gas_3400", label %"$have_gas_3401" -"$out_of_gas_3423": ; preds = %entry +"$out_of_gas_3400": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3424" + br label %"$have_gas_3401" -"$have_gas_3424": ; preds = %"$out_of_gas_3423", %entry - %"$consume_3425" = sub i64 %"$gasrem_3421", 1 - store i64 %"$consume_3425", i64* @_gasrem, align 8 +"$have_gas_3401": ; preds = %"$out_of_gas_3400", %entry + %"$consume_3402" = sub i64 %"$gasrem_3398", 1 + store i64 %"$consume_3402", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_3426" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3427" = icmp ugt i64 1, %"$gasrem_3426" - br i1 %"$gascmp_3427", label %"$out_of_gas_3428", label %"$have_gas_3429" + %"$gasrem_3403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3404" = icmp ugt i64 1, %"$gasrem_3403" + br i1 %"$gascmp_3404", label %"$out_of_gas_3405", label %"$have_gas_3406" -"$out_of_gas_3428": ; preds = %"$have_gas_3424" +"$out_of_gas_3405": ; preds = %"$have_gas_3401" call void @_out_of_gas() - br label %"$have_gas_3429" + br label %"$have_gas_3406" -"$have_gas_3429": ; preds = %"$out_of_gas_3428", %"$have_gas_3424" - %"$consume_3430" = sub i64 %"$gasrem_3426", 1 - store i64 %"$consume_3430", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3431", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !372 +"$have_gas_3406": ; preds = %"$out_of_gas_3405", %"$have_gas_3401" + %"$consume_3407" = sub i64 %"$gasrem_3403", 1 + store i64 %"$consume_3407", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3408", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !370 %m3 = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$execptr_load_3433" = load i8*, i8** @_execptr, align 8 - %"$m3_call_3434" = call i8* @_fetch_field(i8* %"$execptr_load_3433", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3432", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_71", i32 0, i8* null, i32 1), !dbg !373 - %"$m3_3435" = bitcast i8* %"$m3_call_3434" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3435", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$m3_3436" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3436_3437" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3436" to i8* - %"$_literal_cost_call_3438" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$m3_3436_3437") - %"$m3_3439" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3439_3440" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3439" to i8* - %"$_mapsortcost_call_3441" = call i64 @_mapsortcost(i8* %"$$m3_3439_3440") - %"$gasadd_3442" = add i64 %"$_literal_cost_call_3438", %"$_mapsortcost_call_3441" + %"$execptr_load_3410" = load i8*, i8** @_execptr, align 8 + %"$m3_call_3411" = call i8* @_fetch_field(i8* %"$execptr_load_3410", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3409", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_63", i32 0, i8* null, i32 1), !dbg !371 + %"$m3_3412" = bitcast i8* %"$m3_call_3411" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3412", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$m3_3413" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3413_3414" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3413" to i8* + %"$_literal_cost_call_3415" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$m3_3413_3414") + %"$m3_3416" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3416_3417" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3416" to i8* + %"$_mapsortcost_call_3418" = call i64 @_mapsortcost(i8* %"$$m3_3416_3417") + %"$gasadd_3419" = add i64 %"$_literal_cost_call_3415", %"$_mapsortcost_call_3418" + %"$gasrem_3420" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3421" = icmp ugt i64 %"$gasadd_3419", %"$gasrem_3420" + br i1 %"$gascmp_3421", label %"$out_of_gas_3422", label %"$have_gas_3423" + +"$out_of_gas_3422": ; preds = %"$have_gas_3406" + call void @_out_of_gas() + br label %"$have_gas_3423" + +"$have_gas_3423": ; preds = %"$out_of_gas_3422", %"$have_gas_3406" + %"$consume_3424" = sub i64 %"$gasrem_3420", %"$gasadd_3419" + store i64 %"$consume_3424", i64* @_gasrem, align 8 + %"$gasrem_3425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3426" = icmp ugt i64 1, %"$gasrem_3425" + br i1 %"$gascmp_3426", label %"$out_of_gas_3427", label %"$have_gas_3428" + +"$out_of_gas_3427": ; preds = %"$have_gas_3423" + call void @_out_of_gas() + br label %"$have_gas_3428" + +"$have_gas_3428": ; preds = %"$out_of_gas_3427", %"$have_gas_3423" + %"$consume_3429" = sub i64 %"$gasrem_3425", 1 + store i64 %"$consume_3429", i64* @_gasrem, align 8 + %m3_size = alloca %Uint32, align 8 + %"$gasrem_3430" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3431" = icmp ugt i64 1, %"$gasrem_3430" + br i1 %"$gascmp_3431", label %"$out_of_gas_3432", label %"$have_gas_3433" + +"$out_of_gas_3432": ; preds = %"$have_gas_3428" + call void @_out_of_gas() + br label %"$have_gas_3433" + +"$have_gas_3433": ; preds = %"$out_of_gas_3432", %"$have_gas_3428" + %"$consume_3434" = sub i64 %"$gasrem_3430", 1 + store i64 %"$consume_3434", i64* @_gasrem, align 8 + %"$m3_3435" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3435_3436" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3435" to i8* + %"$size_call_3437" = call %Uint32 @_size(i8* %"$$m3_3435_3436"), !dbg !372 + store %Uint32 %"$size_call_3437", %Uint32* %m3_size, align 4, !dbg !372 + %"$gasrem_3438" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3439" = icmp ugt i64 1, %"$gasrem_3438" + br i1 %"$gascmp_3439", label %"$out_of_gas_3440", label %"$have_gas_3441" + +"$out_of_gas_3440": ; preds = %"$have_gas_3433" + call void @_out_of_gas() + br label %"$have_gas_3441" + +"$have_gas_3441": ; preds = %"$out_of_gas_3440", %"$have_gas_3433" + %"$consume_3442" = sub i64 %"$gasrem_3438", 1 + store i64 %"$consume_3442", i64* @_gasrem, align 8 + %one = alloca %Uint32, align 8 %"$gasrem_3443" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3444" = icmp ugt i64 %"$gasadd_3442", %"$gasrem_3443" + %"$gascmp_3444" = icmp ugt i64 1, %"$gasrem_3443" br i1 %"$gascmp_3444", label %"$out_of_gas_3445", label %"$have_gas_3446" -"$out_of_gas_3445": ; preds = %"$have_gas_3429" +"$out_of_gas_3445": ; preds = %"$have_gas_3441" call void @_out_of_gas() br label %"$have_gas_3446" -"$have_gas_3446": ; preds = %"$out_of_gas_3445", %"$have_gas_3429" - %"$consume_3447" = sub i64 %"$gasrem_3443", %"$gasadd_3442" +"$have_gas_3446": ; preds = %"$out_of_gas_3445", %"$have_gas_3441" + %"$consume_3447" = sub i64 %"$gasrem_3443", 1 store i64 %"$consume_3447", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !373 %"$gasrem_3448" = load i64, i64* @_gasrem, align 8 %"$gascmp_3449" = icmp ugt i64 1, %"$gasrem_3448" br i1 %"$gascmp_3449", label %"$out_of_gas_3450", label %"$have_gas_3451" @@ -7037,9 +7056,9 @@ entry: "$have_gas_3451": ; preds = %"$out_of_gas_3450", %"$have_gas_3446" %"$consume_3452" = sub i64 %"$gasrem_3448", 1 store i64 %"$consume_3452", i64* @_gasrem, align 8 - %m3_size = alloca %Uint32, align 8 + %is_one = alloca %TName_Bool*, align 8 %"$gasrem_3453" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3454" = icmp ugt i64 1, %"$gasrem_3453" + %"$gascmp_3454" = icmp ugt i64 4, %"$gasrem_3453" br i1 %"$gascmp_3454", label %"$out_of_gas_3455", label %"$have_gas_3456" "$out_of_gas_3455": ; preds = %"$have_gas_3451" @@ -7047,391 +7066,391 @@ entry: br label %"$have_gas_3456" "$have_gas_3456": ; preds = %"$out_of_gas_3455", %"$have_gas_3451" - %"$consume_3457" = sub i64 %"$gasrem_3453", 1 + %"$consume_3457" = sub i64 %"$gasrem_3453", 4 store i64 %"$consume_3457", i64* @_gasrem, align 8 - %"$m3_3458" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3458_3459" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3458" to i8* - %"$size_call_3460" = call %Uint32 @_size(i8* %"$$m3_3458_3459"), !dbg !374 - store %Uint32 %"$size_call_3460", %Uint32* %m3_size, align 4, !dbg !374 - %"$gasrem_3461" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3462" = icmp ugt i64 1, %"$gasrem_3461" - br i1 %"$gascmp_3462", label %"$out_of_gas_3463", label %"$have_gas_3464" - -"$out_of_gas_3463": ; preds = %"$have_gas_3456" - call void @_out_of_gas() - br label %"$have_gas_3464" - -"$have_gas_3464": ; preds = %"$out_of_gas_3463", %"$have_gas_3456" - %"$consume_3465" = sub i64 %"$gasrem_3461", 1 - store i64 %"$consume_3465", i64* @_gasrem, align 8 - %one = alloca %Uint32, align 8 - %"$gasrem_3466" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3467" = icmp ugt i64 1, %"$gasrem_3466" - br i1 %"$gascmp_3467", label %"$out_of_gas_3468", label %"$have_gas_3469" - -"$out_of_gas_3468": ; preds = %"$have_gas_3464" - call void @_out_of_gas() - br label %"$have_gas_3469" - -"$have_gas_3469": ; preds = %"$out_of_gas_3468", %"$have_gas_3464" - %"$consume_3470" = sub i64 %"$gasrem_3466", 1 - store i64 %"$consume_3470", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !375 - %"$gasrem_3471" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3472" = icmp ugt i64 1, %"$gasrem_3471" - br i1 %"$gascmp_3472", label %"$out_of_gas_3473", label %"$have_gas_3474" - -"$out_of_gas_3473": ; preds = %"$have_gas_3469" - call void @_out_of_gas() - br label %"$have_gas_3474" - -"$have_gas_3474": ; preds = %"$out_of_gas_3473", %"$have_gas_3469" - %"$consume_3475" = sub i64 %"$gasrem_3471", 1 - store i64 %"$consume_3475", i64* @_gasrem, align 8 - %is_one = alloca %TName_Bool*, align 8 - %"$gasrem_3476" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3477" = icmp ugt i64 4, %"$gasrem_3476" - br i1 %"$gascmp_3477", label %"$out_of_gas_3478", label %"$have_gas_3479" - -"$out_of_gas_3478": ; preds = %"$have_gas_3474" - call void @_out_of_gas() - br label %"$have_gas_3479" - -"$have_gas_3479": ; preds = %"$out_of_gas_3478", %"$have_gas_3474" - %"$consume_3480" = sub i64 %"$gasrem_3476", 4 - store i64 %"$consume_3480", i64* @_gasrem, align 8 - %"$execptr_load_3481" = load i8*, i8** @_execptr, align 8 - %"$m3_size_3482" = load %Uint32, %Uint32* %m3_size, align 4 - %"$one_3483" = load %Uint32, %Uint32* %one, align 4 - %"$eq_call_3484" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3481", %Uint32 %"$m3_size_3482", %Uint32 %"$one_3483"), !dbg !376 - store %TName_Bool* %"$eq_call_3484", %TName_Bool** %is_one, align 8, !dbg !376 - %"$gasrem_3486" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3487" = icmp ugt i64 2, %"$gasrem_3486" - br i1 %"$gascmp_3487", label %"$out_of_gas_3488", label %"$have_gas_3489" - -"$out_of_gas_3488": ; preds = %"$have_gas_3479" - call void @_out_of_gas() - br label %"$have_gas_3489" - -"$have_gas_3489": ; preds = %"$out_of_gas_3488", %"$have_gas_3479" - %"$consume_3490" = sub i64 %"$gasrem_3486", 2 - store i64 %"$consume_3490", i64* @_gasrem, align 8 - %"$is_one_3492" = load %TName_Bool*, %TName_Bool** %is_one, align 8 - %"$is_one_tag_3493" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_3492", i32 0, i32 0 - %"$is_one_tag_3494" = load i8, i8* %"$is_one_tag_3493", align 1 - switch i8 %"$is_one_tag_3494", label %"$empty_default_3495" [ - i8 0, label %"$True_3496" - i8 1, label %"$False_3498" - ], !dbg !377 - -"$True_3496": ; preds = %"$have_gas_3489" - %"$is_one_3497" = bitcast %TName_Bool* %"$is_one_3492" to %CName_True* - br label %"$matchsucc_3491" - -"$False_3498": ; preds = %"$have_gas_3489" - %"$is_one_3499" = bitcast %TName_Bool* %"$is_one_3492" to %CName_False* - %"$gasrem_3500" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3501" = icmp ugt i64 1, %"$gasrem_3500" - br i1 %"$gascmp_3501", label %"$out_of_gas_3502", label %"$have_gas_3503" - -"$out_of_gas_3502": ; preds = %"$False_3498" - call void @_out_of_gas() - br label %"$have_gas_3503" - -"$have_gas_3503": ; preds = %"$out_of_gas_3502", %"$False_3498" - %"$consume_3504" = sub i64 %"$gasrem_3500", 1 - store i64 %"$consume_3504", i64* @_gasrem, align 8 + %"$execptr_load_3458" = load i8*, i8** @_execptr, align 8 + %"$m3_size_3459" = load %Uint32, %Uint32* %m3_size, align 4 + %"$one_3460" = load %Uint32, %Uint32* %one, align 4 + %"$eq_call_3461" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3458", %Uint32 %"$m3_size_3459", %Uint32 %"$one_3460"), !dbg !374 + store %TName_Bool* %"$eq_call_3461", %TName_Bool** %is_one, align 8, !dbg !374 + %"$gasrem_3463" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3464" = icmp ugt i64 2, %"$gasrem_3463" + br i1 %"$gascmp_3464", label %"$out_of_gas_3465", label %"$have_gas_3466" + +"$out_of_gas_3465": ; preds = %"$have_gas_3456" + call void @_out_of_gas() + br label %"$have_gas_3466" + +"$have_gas_3466": ; preds = %"$out_of_gas_3465", %"$have_gas_3456" + %"$consume_3467" = sub i64 %"$gasrem_3463", 2 + store i64 %"$consume_3467", i64* @_gasrem, align 8 + %"$is_one_3469" = load %TName_Bool*, %TName_Bool** %is_one, align 8 + %"$is_one_tag_3470" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_3469", i32 0, i32 0 + %"$is_one_tag_3471" = load i8, i8* %"$is_one_tag_3470", align 1 + switch i8 %"$is_one_tag_3471", label %"$empty_default_3472" [ + i8 0, label %"$True_3473" + i8 1, label %"$False_3475" + ], !dbg !375 + +"$True_3473": ; preds = %"$have_gas_3466" + %"$is_one_3474" = bitcast %TName_Bool* %"$is_one_3469" to %CName_True* + br label %"$matchsucc_3468" + +"$False_3475": ; preds = %"$have_gas_3466" + %"$is_one_3476" = bitcast %TName_Bool* %"$is_one_3469" to %CName_False* + %"$gasrem_3477" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3478" = icmp ugt i64 1, %"$gasrem_3477" + br i1 %"$gascmp_3478", label %"$out_of_gas_3479", label %"$have_gas_3480" + +"$out_of_gas_3479": ; preds = %"$False_3475" + call void @_out_of_gas() + br label %"$have_gas_3480" + +"$have_gas_3480": ; preds = %"$out_of_gas_3479", %"$False_3475" + %"$consume_3481" = sub i64 %"$gasrem_3477", 1 + store i64 %"$consume_3481", i64* @_gasrem, align 8 %err = alloca %String, align 8 - %"$gasrem_3505" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3506" = icmp ugt i64 1, %"$gasrem_3505" - br i1 %"$gascmp_3506", label %"$out_of_gas_3507", label %"$have_gas_3508" + %"$gasrem_3482" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3483" = icmp ugt i64 1, %"$gasrem_3482" + br i1 %"$gascmp_3483", label %"$out_of_gas_3484", label %"$have_gas_3485" -"$out_of_gas_3507": ; preds = %"$have_gas_3503" +"$out_of_gas_3484": ; preds = %"$have_gas_3480" call void @_out_of_gas() - br label %"$have_gas_3508" + br label %"$have_gas_3485" -"$have_gas_3508": ; preds = %"$out_of_gas_3507", %"$have_gas_3503" - %"$consume_3509" = sub i64 %"$gasrem_3505", 1 - store i64 %"$consume_3509", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @"$stringlit_3510", i32 0, i32 0), i32 22 }, %String* %err, align 8, !dbg !378 - %"$gasrem_3511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3512" = icmp ugt i64 1, %"$gasrem_3511" - br i1 %"$gascmp_3512", label %"$out_of_gas_3513", label %"$have_gas_3514" +"$have_gas_3485": ; preds = %"$out_of_gas_3484", %"$have_gas_3480" + %"$consume_3486" = sub i64 %"$gasrem_3482", 1 + store i64 %"$consume_3486", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @"$stringlit_3487", i32 0, i32 0), i32 22 }, %String* %err, align 8, !dbg !376 + %"$gasrem_3488" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3489" = icmp ugt i64 1, %"$gasrem_3488" + br i1 %"$gascmp_3489", label %"$out_of_gas_3490", label %"$have_gas_3491" -"$out_of_gas_3513": ; preds = %"$have_gas_3508" +"$out_of_gas_3490": ; preds = %"$have_gas_3485" call void @_out_of_gas() - br label %"$have_gas_3514" + br label %"$have_gas_3491" -"$have_gas_3514": ; preds = %"$out_of_gas_3513", %"$have_gas_3508" - %"$consume_3515" = sub i64 %"$gasrem_3511", 1 - store i64 %"$consume_3515", i64* @_gasrem, align 8 - %"$fail_msg__origin_3516" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3516", align 1 - %"$fail_msg__sender_3517" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3517", align 1 - %"$tname_3518" = load %String, %String* %tname, align 8 - %"$err_3519" = load %String, %String* %err, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3516", [20 x i8]* %"$fail_msg__sender_3517", %String %"$tname_3518", %String %"$err_3519"), !dbg !381 - br label %"$matchsucc_3491" +"$have_gas_3491": ; preds = %"$out_of_gas_3490", %"$have_gas_3485" + %"$consume_3492" = sub i64 %"$gasrem_3488", 1 + store i64 %"$consume_3492", i64* @_gasrem, align 8 + %"$fail_msg__origin_3493" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3493", align 1 + %"$fail_msg__sender_3494" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3494", align 1 + %"$tname_3495" = load %String, %String* %tname, align 8 + %"$err_3496" = load %String, %String* %err, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3493", [20 x i8]* %"$fail_msg__sender_3494", %String %"$tname_3495", %String %"$err_3496"), !dbg !379 + br label %"$matchsucc_3468" -"$empty_default_3495": ; preds = %"$have_gas_3489" - br label %"$matchsucc_3491" +"$empty_default_3472": ; preds = %"$have_gas_3466" + br label %"$matchsucc_3468" -"$matchsucc_3491": ; preds = %"$have_gas_3514", %"$True_3496", %"$empty_default_3495" - %"$gasrem_3520" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3521" = icmp ugt i64 1, %"$gasrem_3520" - br i1 %"$gascmp_3521", label %"$out_of_gas_3522", label %"$have_gas_3523" +"$matchsucc_3468": ; preds = %"$have_gas_3491", %"$True_3473", %"$empty_default_3472" + %"$gasrem_3497" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3498" = icmp ugt i64 1, %"$gasrem_3497" + br i1 %"$gascmp_3498", label %"$out_of_gas_3499", label %"$have_gas_3500" -"$out_of_gas_3522": ; preds = %"$matchsucc_3491" +"$out_of_gas_3499": ; preds = %"$matchsucc_3468" call void @_out_of_gas() - br label %"$have_gas_3523" + br label %"$have_gas_3500" -"$have_gas_3523": ; preds = %"$out_of_gas_3522", %"$matchsucc_3491" - %"$consume_3524" = sub i64 %"$gasrem_3520", 1 - store i64 %"$consume_3524", i64* @_gasrem, align 8 +"$have_gas_3500": ; preds = %"$out_of_gas_3499", %"$matchsucc_3468" + %"$consume_3501" = sub i64 %"$gasrem_3497", 1 + store i64 %"$consume_3501", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_3525" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3526" = icmp ugt i64 1, %"$gasrem_3525" - br i1 %"$gascmp_3526", label %"$out_of_gas_3527", label %"$have_gas_3528" + %"$gasrem_3502" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3503" = icmp ugt i64 1, %"$gasrem_3502" + br i1 %"$gascmp_3503", label %"$out_of_gas_3504", label %"$have_gas_3505" -"$out_of_gas_3527": ; preds = %"$have_gas_3523" +"$out_of_gas_3504": ; preds = %"$have_gas_3500" call void @_out_of_gas() - br label %"$have_gas_3528" + br label %"$have_gas_3505" -"$have_gas_3528": ; preds = %"$out_of_gas_3527", %"$have_gas_3523" - %"$consume_3529" = sub i64 %"$gasrem_3525", 1 - store i64 %"$consume_3529", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3530", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !382 - %"$gasrem_3531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3532" = icmp ugt i64 1, %"$gasrem_3531" - br i1 %"$gascmp_3532", label %"$out_of_gas_3533", label %"$have_gas_3534" +"$have_gas_3505": ; preds = %"$out_of_gas_3504", %"$have_gas_3500" + %"$consume_3506" = sub i64 %"$gasrem_3502", 1 + store i64 %"$consume_3506", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3507", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !380 + %"$gasrem_3508" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3509" = icmp ugt i64 1, %"$gasrem_3508" + br i1 %"$gascmp_3509", label %"$out_of_gas_3510", label %"$have_gas_3511" -"$out_of_gas_3533": ; preds = %"$have_gas_3528" +"$out_of_gas_3510": ; preds = %"$have_gas_3505" call void @_out_of_gas() - br label %"$have_gas_3534" + br label %"$have_gas_3511" -"$have_gas_3534": ; preds = %"$out_of_gas_3533", %"$have_gas_3528" - %"$consume_3535" = sub i64 %"$gasrem_3531", 1 - store i64 %"$consume_3535", i64* @_gasrem, align 8 +"$have_gas_3511": ; preds = %"$out_of_gas_3510", %"$have_gas_3505" + %"$consume_3512" = sub i64 %"$gasrem_3508", 1 + store i64 %"$consume_3512", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_3536" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3537" = icmp ugt i64 1, %"$gasrem_3536" - br i1 %"$gascmp_3537", label %"$out_of_gas_3538", label %"$have_gas_3539" + %"$gasrem_3513" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3514" = icmp ugt i64 1, %"$gasrem_3513" + br i1 %"$gascmp_3514", label %"$out_of_gas_3515", label %"$have_gas_3516" -"$out_of_gas_3538": ; preds = %"$have_gas_3534" +"$out_of_gas_3515": ; preds = %"$have_gas_3511" call void @_out_of_gas() - br label %"$have_gas_3539" + br label %"$have_gas_3516" -"$have_gas_3539": ; preds = %"$out_of_gas_3538", %"$have_gas_3534" - %"$consume_3540" = sub i64 %"$gasrem_3536", 1 - store i64 %"$consume_3540", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3541", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !383 - %"$gasrem_3542" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3543" = icmp ugt i64 1, %"$gasrem_3542" - br i1 %"$gascmp_3543", label %"$out_of_gas_3544", label %"$have_gas_3545" +"$have_gas_3516": ; preds = %"$out_of_gas_3515", %"$have_gas_3511" + %"$consume_3517" = sub i64 %"$gasrem_3513", 1 + store i64 %"$consume_3517", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3518", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !381 + %"$gasrem_3519" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3520" = icmp ugt i64 1, %"$gasrem_3519" + br i1 %"$gascmp_3520", label %"$out_of_gas_3521", label %"$have_gas_3522" -"$out_of_gas_3544": ; preds = %"$have_gas_3539" +"$out_of_gas_3521": ; preds = %"$have_gas_3516" call void @_out_of_gas() - br label %"$have_gas_3545" + br label %"$have_gas_3522" -"$have_gas_3545": ; preds = %"$out_of_gas_3544", %"$have_gas_3539" - %"$consume_3546" = sub i64 %"$gasrem_3542", 1 - store i64 %"$consume_3546", i64* @_gasrem, align 8 +"$have_gas_3522": ; preds = %"$out_of_gas_3521", %"$have_gas_3516" + %"$consume_3523" = sub i64 %"$gasrem_3519", 1 + store i64 %"$consume_3523", i64* @_gasrem, align 8 %m2o = alloca %"TName_Option_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$gasrem_3547" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3548" = icmp ugt i64 1, %"$gasrem_3547" - br i1 %"$gascmp_3548", label %"$out_of_gas_3549", label %"$have_gas_3550" - -"$out_of_gas_3549": ; preds = %"$have_gas_3545" - call void @_out_of_gas() - br label %"$have_gas_3550" - -"$have_gas_3550": ; preds = %"$out_of_gas_3549", %"$have_gas_3545" - %"$consume_3551" = sub i64 %"$gasrem_3547", 1 - store i64 %"$consume_3551", i64* @_gasrem, align 8 - %"$execptr_load_3552" = load i8*, i8** @_execptr, align 8 - %"$m3_3553" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3553_3554" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3553" to i8* - %"$get_key1a_3555" = alloca %String, align 8 - %"$key1a_3556" = load %String, %String* %key1a, align 8 - store %String %"$key1a_3556", %String* %"$get_key1a_3555", align 8 - %"$$get_key1a_3555_3557" = bitcast %String* %"$get_key1a_3555" to i8* - %"$get_call_3558" = call i8* @_get(i8* %"$execptr_load_3552", %_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$m3_3553_3554", i8* %"$$get_key1a_3555_3557"), !dbg !384 - %"$get_3559" = bitcast i8* %"$get_call_3558" to %"TName_Option_Map_(String)_(Map_(String)_(String))"* - store %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$get_3559", %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8, !dbg !384 - %"$gasrem_3560" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3561" = icmp ugt i64 2, %"$gasrem_3560" - br i1 %"$gascmp_3561", label %"$out_of_gas_3562", label %"$have_gas_3563" - -"$out_of_gas_3562": ; preds = %"$have_gas_3550" - call void @_out_of_gas() - br label %"$have_gas_3563" - -"$have_gas_3563": ; preds = %"$out_of_gas_3562", %"$have_gas_3550" - %"$consume_3564" = sub i64 %"$gasrem_3560", 2 - store i64 %"$consume_3564", i64* @_gasrem, align 8 - %"$m2o_3566" = load %"TName_Option_Map_(String)_(Map_(String)_(String))"*, %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8 - %"$m2o_tag_3567" = getelementptr inbounds %"TName_Option_Map_(String)_(Map_(String)_(String))", %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3566", i32 0, i32 0 - %"$m2o_tag_3568" = load i8, i8* %"$m2o_tag_3567", align 1 - switch i8 %"$m2o_tag_3568", label %"$empty_default_3569" [ - i8 0, label %"$Some_3570" - i8 1, label %"$None_3762" - ], !dbg !385 - -"$Some_3570": ; preds = %"$have_gas_3563" - %"$m2o_3571" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3566" to %"CName_Some_Map_(String)_(Map_(String)_(String))"* - %"$m2_gep_3572" = getelementptr inbounds %"CName_Some_Map_(String)_(Map_(String)_(String))", %"CName_Some_Map_(String)_(Map_(String)_(String))"* %"$m2o_3571", i32 0, i32 1 - %"$m2_load_3573" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$m2_gep_3572", align 8 + %"$gasrem_3524" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3525" = icmp ugt i64 1, %"$gasrem_3524" + br i1 %"$gascmp_3525", label %"$out_of_gas_3526", label %"$have_gas_3527" + +"$out_of_gas_3526": ; preds = %"$have_gas_3522" + call void @_out_of_gas() + br label %"$have_gas_3527" + +"$have_gas_3527": ; preds = %"$out_of_gas_3526", %"$have_gas_3522" + %"$consume_3528" = sub i64 %"$gasrem_3524", 1 + store i64 %"$consume_3528", i64* @_gasrem, align 8 + %"$execptr_load_3529" = load i8*, i8** @_execptr, align 8 + %"$m3_3530" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3530_3531" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3530" to i8* + %"$get_key1a_3532" = alloca %String, align 8 + %"$key1a_3533" = load %String, %String* %key1a, align 8 + store %String %"$key1a_3533", %String* %"$get_key1a_3532", align 8 + %"$$get_key1a_3532_3534" = bitcast %String* %"$get_key1a_3532" to i8* + %"$get_call_3535" = call i8* @_get(i8* %"$execptr_load_3529", %_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$m3_3530_3531", i8* %"$$get_key1a_3532_3534"), !dbg !382 + %"$get_3536" = bitcast i8* %"$get_call_3535" to %"TName_Option_Map_(String)_(Map_(String)_(String))"* + store %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$get_3536", %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8, !dbg !382 + %"$gasrem_3537" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3538" = icmp ugt i64 2, %"$gasrem_3537" + br i1 %"$gascmp_3538", label %"$out_of_gas_3539", label %"$have_gas_3540" + +"$out_of_gas_3539": ; preds = %"$have_gas_3527" + call void @_out_of_gas() + br label %"$have_gas_3540" + +"$have_gas_3540": ; preds = %"$out_of_gas_3539", %"$have_gas_3527" + %"$consume_3541" = sub i64 %"$gasrem_3537", 2 + store i64 %"$consume_3541", i64* @_gasrem, align 8 + %"$m2o_3543" = load %"TName_Option_Map_(String)_(Map_(String)_(String))"*, %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8 + %"$m2o_tag_3544" = getelementptr inbounds %"TName_Option_Map_(String)_(Map_(String)_(String))", %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3543", i32 0, i32 0 + %"$m2o_tag_3545" = load i8, i8* %"$m2o_tag_3544", align 1 + switch i8 %"$m2o_tag_3545", label %"$empty_default_3546" [ + i8 0, label %"$Some_3547" + i8 1, label %"$None_3739" + ], !dbg !383 + +"$Some_3547": ; preds = %"$have_gas_3540" + %"$m2o_3548" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3543" to %"CName_Some_Map_(String)_(Map_(String)_(String))"* + %"$m2_gep_3549" = getelementptr inbounds %"CName_Some_Map_(String)_(Map_(String)_(String))", %"CName_Some_Map_(String)_(Map_(String)_(String))"* %"$m2o_3548", i32 0, i32 1 + %"$m2_load_3550" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$m2_gep_3549", align 8 %m2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - store %"Map_String_Map_(String)_(String)"* %"$m2_load_3573", %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$gasrem_3574" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3575" = icmp ugt i64 1, %"$gasrem_3574" - br i1 %"$gascmp_3575", label %"$out_of_gas_3576", label %"$have_gas_3577" + store %"Map_String_Map_(String)_(String)"* %"$m2_load_3550", %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$gasrem_3551" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3552" = icmp ugt i64 1, %"$gasrem_3551" + br i1 %"$gascmp_3552", label %"$out_of_gas_3553", label %"$have_gas_3554" -"$out_of_gas_3576": ; preds = %"$Some_3570" +"$out_of_gas_3553": ; preds = %"$Some_3547" call void @_out_of_gas() - br label %"$have_gas_3577" + br label %"$have_gas_3554" -"$have_gas_3577": ; preds = %"$out_of_gas_3576", %"$Some_3570" - %"$consume_3578" = sub i64 %"$gasrem_3574", 1 - store i64 %"$consume_3578", i64* @_gasrem, align 8 +"$have_gas_3554": ; preds = %"$out_of_gas_3553", %"$Some_3547" + %"$consume_3555" = sub i64 %"$gasrem_3551", 1 + store i64 %"$consume_3555", i64* @_gasrem, align 8 %m2_size = alloca %Uint32, align 8 + %"$gasrem_3556" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3557" = icmp ugt i64 1, %"$gasrem_3556" + br i1 %"$gascmp_3557", label %"$out_of_gas_3558", label %"$have_gas_3559" + +"$out_of_gas_3558": ; preds = %"$have_gas_3554" + call void @_out_of_gas() + br label %"$have_gas_3559" + +"$have_gas_3559": ; preds = %"$out_of_gas_3558", %"$have_gas_3554" + %"$consume_3560" = sub i64 %"$gasrem_3556", 1 + store i64 %"$consume_3560", i64* @_gasrem, align 8 + %"$m2_3561" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_3561_3562" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3561" to i8* + %"$size_call_3563" = call %Uint32 @_size(i8* %"$$m2_3561_3562"), !dbg !384 + store %Uint32 %"$size_call_3563", %Uint32* %m2_size, align 4, !dbg !384 + %"$gasrem_3564" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3565" = icmp ugt i64 1, %"$gasrem_3564" + br i1 %"$gascmp_3565", label %"$out_of_gas_3566", label %"$have_gas_3567" + +"$out_of_gas_3566": ; preds = %"$have_gas_3559" + call void @_out_of_gas() + br label %"$have_gas_3567" + +"$have_gas_3567": ; preds = %"$out_of_gas_3566", %"$have_gas_3559" + %"$consume_3568" = sub i64 %"$gasrem_3564", 1 + store i64 %"$consume_3568", i64* @_gasrem, align 8 + %is_one_1 = alloca %TName_Bool*, align 8 + %"$gasrem_3569" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3570" = icmp ugt i64 4, %"$gasrem_3569" + br i1 %"$gascmp_3570", label %"$out_of_gas_3571", label %"$have_gas_3572" + +"$out_of_gas_3571": ; preds = %"$have_gas_3567" + call void @_out_of_gas() + br label %"$have_gas_3572" + +"$have_gas_3572": ; preds = %"$out_of_gas_3571", %"$have_gas_3567" + %"$consume_3573" = sub i64 %"$gasrem_3569", 4 + store i64 %"$consume_3573", i64* @_gasrem, align 8 + %"$execptr_load_3574" = load i8*, i8** @_execptr, align 8 + %"$m2_size_3575" = load %Uint32, %Uint32* %m2_size, align 4 + %"$one_3576" = load %Uint32, %Uint32* %one, align 4 + %"$eq_call_3577" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3574", %Uint32 %"$m2_size_3575", %Uint32 %"$one_3576"), !dbg !387 + store %TName_Bool* %"$eq_call_3577", %TName_Bool** %is_one_1, align 8, !dbg !387 %"$gasrem_3579" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3580" = icmp ugt i64 1, %"$gasrem_3579" + %"$gascmp_3580" = icmp ugt i64 2, %"$gasrem_3579" br i1 %"$gascmp_3580", label %"$out_of_gas_3581", label %"$have_gas_3582" -"$out_of_gas_3581": ; preds = %"$have_gas_3577" +"$out_of_gas_3581": ; preds = %"$have_gas_3572" call void @_out_of_gas() br label %"$have_gas_3582" -"$have_gas_3582": ; preds = %"$out_of_gas_3581", %"$have_gas_3577" - %"$consume_3583" = sub i64 %"$gasrem_3579", 1 +"$have_gas_3582": ; preds = %"$out_of_gas_3581", %"$have_gas_3572" + %"$consume_3583" = sub i64 %"$gasrem_3579", 2 store i64 %"$consume_3583", i64* @_gasrem, align 8 - %"$m2_3584" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_3584_3585" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3584" to i8* - %"$size_call_3586" = call %Uint32 @_size(i8* %"$$m2_3584_3585"), !dbg !386 - store %Uint32 %"$size_call_3586", %Uint32* %m2_size, align 4, !dbg !386 - %"$gasrem_3587" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3588" = icmp ugt i64 1, %"$gasrem_3587" - br i1 %"$gascmp_3588", label %"$out_of_gas_3589", label %"$have_gas_3590" + %"$is_one_1_3585" = load %TName_Bool*, %TName_Bool** %is_one_1, align 8 + %"$is_one_1_tag_3586" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_1_3585", i32 0, i32 0 + %"$is_one_1_tag_3587" = load i8, i8* %"$is_one_1_tag_3586", align 1 + switch i8 %"$is_one_1_tag_3587", label %"$empty_default_3588" [ + i8 0, label %"$True_3589" + i8 1, label %"$False_3717" + ], !dbg !388 + +"$True_3589": ; preds = %"$have_gas_3582" + %"$is_one_1_3590" = bitcast %TName_Bool* %"$is_one_1_3585" to %CName_True* + %"$gasrem_3591" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3592" = icmp ugt i64 1, %"$gasrem_3591" + br i1 %"$gascmp_3592", label %"$out_of_gas_3593", label %"$have_gas_3594" + +"$out_of_gas_3593": ; preds = %"$True_3589" + call void @_out_of_gas() + br label %"$have_gas_3594" + +"$have_gas_3594": ; preds = %"$out_of_gas_3593", %"$True_3589" + %"$consume_3595" = sub i64 %"$gasrem_3591", 1 + store i64 %"$consume_3595", i64* @_gasrem, align 8 + %m1o = alloca %"TName_Option_Map_(String)_(String)"*, align 8 + %"$gasrem_3596" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3597" = icmp ugt i64 1, %"$gasrem_3596" + br i1 %"$gascmp_3597", label %"$out_of_gas_3598", label %"$have_gas_3599" + +"$out_of_gas_3598": ; preds = %"$have_gas_3594" + call void @_out_of_gas() + br label %"$have_gas_3599" + +"$have_gas_3599": ; preds = %"$out_of_gas_3598", %"$have_gas_3594" + %"$consume_3600" = sub i64 %"$gasrem_3596", 1 + store i64 %"$consume_3600", i64* @_gasrem, align 8 + %"$execptr_load_3601" = load i8*, i8** @_execptr, align 8 + %"$m2_3602" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_3602_3603" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3602" to i8* + %"$get_key2a_3604" = alloca %String, align 8 + %"$key2a_3605" = load %String, %String* %key2a, align 8 + store %String %"$key2a_3605", %String* %"$get_key2a_3604", align 8 + %"$$get_key2a_3604_3606" = bitcast %String* %"$get_key2a_3604" to i8* + %"$get_call_3607" = call i8* @_get(i8* %"$execptr_load_3601", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m2_3602_3603", i8* %"$$get_key2a_3604_3606"), !dbg !389 + %"$get_3608" = bitcast i8* %"$get_call_3607" to %"TName_Option_Map_(String)_(String)"* + store %"TName_Option_Map_(String)_(String)"* %"$get_3608", %"TName_Option_Map_(String)_(String)"** %m1o, align 8, !dbg !389 + %"$gasrem_3609" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3610" = icmp ugt i64 2, %"$gasrem_3609" + br i1 %"$gascmp_3610", label %"$out_of_gas_3611", label %"$have_gas_3612" + +"$out_of_gas_3611": ; preds = %"$have_gas_3599" + call void @_out_of_gas() + br label %"$have_gas_3612" + +"$have_gas_3612": ; preds = %"$out_of_gas_3611", %"$have_gas_3599" + %"$consume_3613" = sub i64 %"$gasrem_3609", 2 + store i64 %"$consume_3613", i64* @_gasrem, align 8 + %"$m1o_3615" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %m1o, align 8 + %"$m1o_tag_3616" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$m1o_3615", i32 0, i32 0 + %"$m1o_tag_3617" = load i8, i8* %"$m1o_tag_3616", align 1 + switch i8 %"$m1o_tag_3617", label %"$empty_default_3618" [ + i8 0, label %"$Some_3619" + i8 1, label %"$None_3695" + ], !dbg !392 + +"$Some_3619": ; preds = %"$have_gas_3612" + %"$m1o_3620" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3615" to %"CName_Some_Map_(String)_(String)"* + %"$m1_gep_3621" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$m1o_3620", i32 0, i32 1 + %"$m1_load_3622" = load %Map_String_String*, %Map_String_String** %"$m1_gep_3621", align 8 + %m1 = alloca %Map_String_String*, align 8 + store %Map_String_String* %"$m1_load_3622", %Map_String_String** %m1, align 8 + %"$gasrem_3623" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3624" = icmp ugt i64 1, %"$gasrem_3623" + br i1 %"$gascmp_3624", label %"$out_of_gas_3625", label %"$have_gas_3626" -"$out_of_gas_3589": ; preds = %"$have_gas_3582" +"$out_of_gas_3625": ; preds = %"$Some_3619" call void @_out_of_gas() - br label %"$have_gas_3590" + br label %"$have_gas_3626" -"$have_gas_3590": ; preds = %"$out_of_gas_3589", %"$have_gas_3582" - %"$consume_3591" = sub i64 %"$gasrem_3587", 1 - store i64 %"$consume_3591", i64* @_gasrem, align 8 - %is_one_1 = alloca %TName_Bool*, align 8 - %"$gasrem_3592" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3593" = icmp ugt i64 4, %"$gasrem_3592" - br i1 %"$gascmp_3593", label %"$out_of_gas_3594", label %"$have_gas_3595" - -"$out_of_gas_3594": ; preds = %"$have_gas_3590" - call void @_out_of_gas() - br label %"$have_gas_3595" - -"$have_gas_3595": ; preds = %"$out_of_gas_3594", %"$have_gas_3590" - %"$consume_3596" = sub i64 %"$gasrem_3592", 4 - store i64 %"$consume_3596", i64* @_gasrem, align 8 - %"$execptr_load_3597" = load i8*, i8** @_execptr, align 8 - %"$m2_size_3598" = load %Uint32, %Uint32* %m2_size, align 4 - %"$one_3599" = load %Uint32, %Uint32* %one, align 4 - %"$eq_call_3600" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3597", %Uint32 %"$m2_size_3598", %Uint32 %"$one_3599"), !dbg !389 - store %TName_Bool* %"$eq_call_3600", %TName_Bool** %is_one_1, align 8, !dbg !389 - %"$gasrem_3602" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3603" = icmp ugt i64 2, %"$gasrem_3602" - br i1 %"$gascmp_3603", label %"$out_of_gas_3604", label %"$have_gas_3605" - -"$out_of_gas_3604": ; preds = %"$have_gas_3595" - call void @_out_of_gas() - br label %"$have_gas_3605" - -"$have_gas_3605": ; preds = %"$out_of_gas_3604", %"$have_gas_3595" - %"$consume_3606" = sub i64 %"$gasrem_3602", 2 - store i64 %"$consume_3606", i64* @_gasrem, align 8 - %"$is_one_1_3608" = load %TName_Bool*, %TName_Bool** %is_one_1, align 8 - %"$is_one_1_tag_3609" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_1_3608", i32 0, i32 0 - %"$is_one_1_tag_3610" = load i8, i8* %"$is_one_1_tag_3609", align 1 - switch i8 %"$is_one_1_tag_3610", label %"$empty_default_3611" [ - i8 0, label %"$True_3612" - i8 1, label %"$False_3740" - ], !dbg !390 - -"$True_3612": ; preds = %"$have_gas_3605" - %"$is_one_1_3613" = bitcast %TName_Bool* %"$is_one_1_3608" to %CName_True* - %"$gasrem_3614" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3615" = icmp ugt i64 1, %"$gasrem_3614" - br i1 %"$gascmp_3615", label %"$out_of_gas_3616", label %"$have_gas_3617" - -"$out_of_gas_3616": ; preds = %"$True_3612" - call void @_out_of_gas() - br label %"$have_gas_3617" - -"$have_gas_3617": ; preds = %"$out_of_gas_3616", %"$True_3612" - %"$consume_3618" = sub i64 %"$gasrem_3614", 1 - store i64 %"$consume_3618", i64* @_gasrem, align 8 - %m1o = alloca %"TName_Option_Map_(String)_(String)"*, align 8 - %"$gasrem_3619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3620" = icmp ugt i64 1, %"$gasrem_3619" - br i1 %"$gascmp_3620", label %"$out_of_gas_3621", label %"$have_gas_3622" - -"$out_of_gas_3621": ; preds = %"$have_gas_3617" - call void @_out_of_gas() - br label %"$have_gas_3622" - -"$have_gas_3622": ; preds = %"$out_of_gas_3621", %"$have_gas_3617" - %"$consume_3623" = sub i64 %"$gasrem_3619", 1 - store i64 %"$consume_3623", i64* @_gasrem, align 8 - %"$execptr_load_3624" = load i8*, i8** @_execptr, align 8 - %"$m2_3625" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_3625_3626" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3625" to i8* - %"$get_key2a_3627" = alloca %String, align 8 - %"$key2a_3628" = load %String, %String* %key2a, align 8 - store %String %"$key2a_3628", %String* %"$get_key2a_3627", align 8 - %"$$get_key2a_3627_3629" = bitcast %String* %"$get_key2a_3627" to i8* - %"$get_call_3630" = call i8* @_get(i8* %"$execptr_load_3624", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m2_3625_3626", i8* %"$$get_key2a_3627_3629"), !dbg !391 - %"$get_3631" = bitcast i8* %"$get_call_3630" to %"TName_Option_Map_(String)_(String)"* - store %"TName_Option_Map_(String)_(String)"* %"$get_3631", %"TName_Option_Map_(String)_(String)"** %m1o, align 8, !dbg !391 - %"$gasrem_3632" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3633" = icmp ugt i64 2, %"$gasrem_3632" - br i1 %"$gascmp_3633", label %"$out_of_gas_3634", label %"$have_gas_3635" - -"$out_of_gas_3634": ; preds = %"$have_gas_3622" - call void @_out_of_gas() - br label %"$have_gas_3635" - -"$have_gas_3635": ; preds = %"$out_of_gas_3634", %"$have_gas_3622" - %"$consume_3636" = sub i64 %"$gasrem_3632", 2 - store i64 %"$consume_3636", i64* @_gasrem, align 8 - %"$m1o_3638" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %m1o, align 8 - %"$m1o_tag_3639" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$m1o_3638", i32 0, i32 0 - %"$m1o_tag_3640" = load i8, i8* %"$m1o_tag_3639", align 1 - switch i8 %"$m1o_tag_3640", label %"$empty_default_3641" [ - i8 0, label %"$Some_3642" - i8 1, label %"$None_3718" - ], !dbg !394 - -"$Some_3642": ; preds = %"$have_gas_3635" - %"$m1o_3643" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3638" to %"CName_Some_Map_(String)_(String)"* - %"$m1_gep_3644" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$m1o_3643", i32 0, i32 1 - %"$m1_load_3645" = load %Map_String_String*, %Map_String_String** %"$m1_gep_3644", align 8 - %m1 = alloca %Map_String_String*, align 8 - store %Map_String_String* %"$m1_load_3645", %Map_String_String** %m1, align 8 +"$have_gas_3626": ; preds = %"$out_of_gas_3625", %"$Some_3619" + %"$consume_3627" = sub i64 %"$gasrem_3623", 1 + store i64 %"$consume_3627", i64* @_gasrem, align 8 + %m1_size = alloca %Uint32, align 8 + %"$gasrem_3628" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3629" = icmp ugt i64 1, %"$gasrem_3628" + br i1 %"$gascmp_3629", label %"$out_of_gas_3630", label %"$have_gas_3631" + +"$out_of_gas_3630": ; preds = %"$have_gas_3626" + call void @_out_of_gas() + br label %"$have_gas_3631" + +"$have_gas_3631": ; preds = %"$out_of_gas_3630", %"$have_gas_3626" + %"$consume_3632" = sub i64 %"$gasrem_3628", 1 + store i64 %"$consume_3632", i64* @_gasrem, align 8 + %"$m1_3633" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_3633_3634" = bitcast %Map_String_String* %"$m1_3633" to i8* + %"$size_call_3635" = call %Uint32 @_size(i8* %"$$m1_3633_3634"), !dbg !393 + store %Uint32 %"$size_call_3635", %Uint32* %m1_size, align 4, !dbg !393 + %"$gasrem_3636" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3637" = icmp ugt i64 1, %"$gasrem_3636" + br i1 %"$gascmp_3637", label %"$out_of_gas_3638", label %"$have_gas_3639" + +"$out_of_gas_3638": ; preds = %"$have_gas_3631" + call void @_out_of_gas() + br label %"$have_gas_3639" + +"$have_gas_3639": ; preds = %"$out_of_gas_3638", %"$have_gas_3631" + %"$consume_3640" = sub i64 %"$gasrem_3636", 1 + store i64 %"$consume_3640", i64* @_gasrem, align 8 + %zero = alloca %Uint32, align 8 + %"$gasrem_3641" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3642" = icmp ugt i64 1, %"$gasrem_3641" + br i1 %"$gascmp_3642", label %"$out_of_gas_3643", label %"$have_gas_3644" + +"$out_of_gas_3643": ; preds = %"$have_gas_3639" + call void @_out_of_gas() + br label %"$have_gas_3644" + +"$have_gas_3644": ; preds = %"$out_of_gas_3643", %"$have_gas_3639" + %"$consume_3645" = sub i64 %"$gasrem_3641", 1 + store i64 %"$consume_3645", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !396 %"$gasrem_3646" = load i64, i64* @_gasrem, align 8 %"$gascmp_3647" = icmp ugt i64 1, %"$gasrem_3646" br i1 %"$gascmp_3647", label %"$out_of_gas_3648", label %"$have_gas_3649" -"$out_of_gas_3648": ; preds = %"$Some_3642" +"$out_of_gas_3648": ; preds = %"$have_gas_3644" call void @_out_of_gas() br label %"$have_gas_3649" -"$have_gas_3649": ; preds = %"$out_of_gas_3648", %"$Some_3642" +"$have_gas_3649": ; preds = %"$out_of_gas_3648", %"$have_gas_3644" %"$consume_3650" = sub i64 %"$gasrem_3646", 1 store i64 %"$consume_3650", i64* @_gasrem, align 8 - %m1_size = alloca %Uint32, align 8 + %is_empty = alloca %TName_Bool*, align 8 %"$gasrem_3651" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3652" = icmp ugt i64 1, %"$gasrem_3651" + %"$gascmp_3652" = icmp ugt i64 4, %"$gasrem_3651" br i1 %"$gascmp_3652", label %"$out_of_gas_3653", label %"$have_gas_3654" "$out_of_gas_3653": ; preds = %"$have_gas_3649" @@ -7439,2405 +7458,2327 @@ entry: br label %"$have_gas_3654" "$have_gas_3654": ; preds = %"$out_of_gas_3653", %"$have_gas_3649" - %"$consume_3655" = sub i64 %"$gasrem_3651", 1 + %"$consume_3655" = sub i64 %"$gasrem_3651", 4 store i64 %"$consume_3655", i64* @_gasrem, align 8 - %"$m1_3656" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_3656_3657" = bitcast %Map_String_String* %"$m1_3656" to i8* - %"$size_call_3658" = call %Uint32 @_size(i8* %"$$m1_3656_3657"), !dbg !395 - store %Uint32 %"$size_call_3658", %Uint32* %m1_size, align 4, !dbg !395 - %"$gasrem_3659" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3660" = icmp ugt i64 1, %"$gasrem_3659" - br i1 %"$gascmp_3660", label %"$out_of_gas_3661", label %"$have_gas_3662" - -"$out_of_gas_3661": ; preds = %"$have_gas_3654" - call void @_out_of_gas() - br label %"$have_gas_3662" - -"$have_gas_3662": ; preds = %"$out_of_gas_3661", %"$have_gas_3654" - %"$consume_3663" = sub i64 %"$gasrem_3659", 1 - store i64 %"$consume_3663", i64* @_gasrem, align 8 - %zero = alloca %Uint32, align 8 - %"$gasrem_3664" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3665" = icmp ugt i64 1, %"$gasrem_3664" - br i1 %"$gascmp_3665", label %"$out_of_gas_3666", label %"$have_gas_3667" - -"$out_of_gas_3666": ; preds = %"$have_gas_3662" - call void @_out_of_gas() - br label %"$have_gas_3667" - -"$have_gas_3667": ; preds = %"$out_of_gas_3666", %"$have_gas_3662" - %"$consume_3668" = sub i64 %"$gasrem_3664", 1 - store i64 %"$consume_3668", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !398 - %"$gasrem_3669" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3670" = icmp ugt i64 1, %"$gasrem_3669" - br i1 %"$gascmp_3670", label %"$out_of_gas_3671", label %"$have_gas_3672" - -"$out_of_gas_3671": ; preds = %"$have_gas_3667" - call void @_out_of_gas() - br label %"$have_gas_3672" - -"$have_gas_3672": ; preds = %"$out_of_gas_3671", %"$have_gas_3667" - %"$consume_3673" = sub i64 %"$gasrem_3669", 1 - store i64 %"$consume_3673", i64* @_gasrem, align 8 - %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_3674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3675" = icmp ugt i64 4, %"$gasrem_3674" - br i1 %"$gascmp_3675", label %"$out_of_gas_3676", label %"$have_gas_3677" - -"$out_of_gas_3676": ; preds = %"$have_gas_3672" - call void @_out_of_gas() - br label %"$have_gas_3677" - -"$have_gas_3677": ; preds = %"$out_of_gas_3676", %"$have_gas_3672" - %"$consume_3678" = sub i64 %"$gasrem_3674", 4 - store i64 %"$consume_3678", i64* @_gasrem, align 8 - %"$execptr_load_3679" = load i8*, i8** @_execptr, align 8 - %"$m1_size_3680" = load %Uint32, %Uint32* %m1_size, align 4 - %"$zero_3681" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_3682" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3679", %Uint32 %"$m1_size_3680", %Uint32 %"$zero_3681"), !dbg !399 - store %TName_Bool* %"$eq_call_3682", %TName_Bool** %is_empty, align 8, !dbg !399 - %"$gasrem_3684" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3685" = icmp ugt i64 2, %"$gasrem_3684" - br i1 %"$gascmp_3685", label %"$out_of_gas_3686", label %"$have_gas_3687" - -"$out_of_gas_3686": ; preds = %"$have_gas_3677" - call void @_out_of_gas() - br label %"$have_gas_3687" - -"$have_gas_3687": ; preds = %"$out_of_gas_3686", %"$have_gas_3677" - %"$consume_3688" = sub i64 %"$gasrem_3684", 2 - store i64 %"$consume_3688", i64* @_gasrem, align 8 - %"$is_empty_3690" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_3691" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3690", i32 0, i32 0 - %"$is_empty_tag_3692" = load i8, i8* %"$is_empty_tag_3691", align 1 - switch i8 %"$is_empty_tag_3692", label %"$empty_default_3693" [ - i8 0, label %"$True_3694" - i8 1, label %"$False_3696" - ], !dbg !400 - -"$True_3694": ; preds = %"$have_gas_3687" - %"$is_empty_3695" = bitcast %TName_Bool* %"$is_empty_3690" to %CName_True* - br label %"$matchsucc_3689" - -"$False_3696": ; preds = %"$have_gas_3687" - %"$is_empty_3697" = bitcast %TName_Bool* %"$is_empty_3690" to %CName_False* - %"$gasrem_3698" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3699" = icmp ugt i64 1, %"$gasrem_3698" - br i1 %"$gascmp_3699", label %"$out_of_gas_3700", label %"$have_gas_3701" - -"$out_of_gas_3700": ; preds = %"$False_3696" - call void @_out_of_gas() - br label %"$have_gas_3701" - -"$have_gas_3701": ; preds = %"$out_of_gas_3700", %"$False_3696" - %"$consume_3702" = sub i64 %"$gasrem_3698", 1 - store i64 %"$consume_3702", i64* @_gasrem, align 8 + %"$execptr_load_3656" = load i8*, i8** @_execptr, align 8 + %"$m1_size_3657" = load %Uint32, %Uint32* %m1_size, align 4 + %"$zero_3658" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_3659" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3656", %Uint32 %"$m1_size_3657", %Uint32 %"$zero_3658"), !dbg !397 + store %TName_Bool* %"$eq_call_3659", %TName_Bool** %is_empty, align 8, !dbg !397 + %"$gasrem_3661" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3662" = icmp ugt i64 2, %"$gasrem_3661" + br i1 %"$gascmp_3662", label %"$out_of_gas_3663", label %"$have_gas_3664" + +"$out_of_gas_3663": ; preds = %"$have_gas_3654" + call void @_out_of_gas() + br label %"$have_gas_3664" + +"$have_gas_3664": ; preds = %"$out_of_gas_3663", %"$have_gas_3654" + %"$consume_3665" = sub i64 %"$gasrem_3661", 2 + store i64 %"$consume_3665", i64* @_gasrem, align 8 + %"$is_empty_3667" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_3668" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3667", i32 0, i32 0 + %"$is_empty_tag_3669" = load i8, i8* %"$is_empty_tag_3668", align 1 + switch i8 %"$is_empty_tag_3669", label %"$empty_default_3670" [ + i8 0, label %"$True_3671" + i8 1, label %"$False_3673" + ], !dbg !398 + +"$True_3671": ; preds = %"$have_gas_3664" + %"$is_empty_3672" = bitcast %TName_Bool* %"$is_empty_3667" to %CName_True* + br label %"$matchsucc_3666" + +"$False_3673": ; preds = %"$have_gas_3664" + %"$is_empty_3674" = bitcast %TName_Bool* %"$is_empty_3667" to %CName_False* + %"$gasrem_3675" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3676" = icmp ugt i64 1, %"$gasrem_3675" + br i1 %"$gascmp_3676", label %"$out_of_gas_3677", label %"$have_gas_3678" + +"$out_of_gas_3677": ; preds = %"$False_3673" + call void @_out_of_gas() + br label %"$have_gas_3678" + +"$have_gas_3678": ; preds = %"$out_of_gas_3677", %"$False_3673" + %"$consume_3679" = sub i64 %"$gasrem_3675", 1 + store i64 %"$consume_3679", i64* @_gasrem, align 8 %err1 = alloca %String, align 8 - %"$gasrem_3703" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3704" = icmp ugt i64 1, %"$gasrem_3703" - br i1 %"$gascmp_3704", label %"$out_of_gas_3705", label %"$have_gas_3706" + %"$gasrem_3680" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3681" = icmp ugt i64 1, %"$gasrem_3680" + br i1 %"$gascmp_3681", label %"$out_of_gas_3682", label %"$have_gas_3683" -"$out_of_gas_3705": ; preds = %"$have_gas_3701" +"$out_of_gas_3682": ; preds = %"$have_gas_3678" call void @_out_of_gas() - br label %"$have_gas_3706" + br label %"$have_gas_3683" -"$have_gas_3706": ; preds = %"$out_of_gas_3705", %"$have_gas_3701" - %"$consume_3707" = sub i64 %"$gasrem_3703", 1 - store i64 %"$consume_3707", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @"$stringlit_3708", i32 0, i32 0), i32 36 }, %String* %err1, align 8, !dbg !401 - %"$gasrem_3709" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3710" = icmp ugt i64 1, %"$gasrem_3709" - br i1 %"$gascmp_3710", label %"$out_of_gas_3711", label %"$have_gas_3712" +"$have_gas_3683": ; preds = %"$out_of_gas_3682", %"$have_gas_3678" + %"$consume_3684" = sub i64 %"$gasrem_3680", 1 + store i64 %"$consume_3684", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @"$stringlit_3685", i32 0, i32 0), i32 36 }, %String* %err1, align 8, !dbg !399 + %"$gasrem_3686" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3687" = icmp ugt i64 1, %"$gasrem_3686" + br i1 %"$gascmp_3687", label %"$out_of_gas_3688", label %"$have_gas_3689" -"$out_of_gas_3711": ; preds = %"$have_gas_3706" +"$out_of_gas_3688": ; preds = %"$have_gas_3683" call void @_out_of_gas() - br label %"$have_gas_3712" + br label %"$have_gas_3689" -"$have_gas_3712": ; preds = %"$out_of_gas_3711", %"$have_gas_3706" - %"$consume_3713" = sub i64 %"$gasrem_3709", 1 - store i64 %"$consume_3713", i64* @_gasrem, align 8 - %"$fail_msg__origin_3714" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3714", align 1 - %"$fail_msg__sender_3715" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3715", align 1 - %"$tname_3716" = load %String, %String* %tname, align 8 - %"$err_3717" = load %String, %String* %err1, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3714", [20 x i8]* %"$fail_msg__sender_3715", %String %"$tname_3716", %String %"$err_3717"), !dbg !404 - br label %"$matchsucc_3689" +"$have_gas_3689": ; preds = %"$out_of_gas_3688", %"$have_gas_3683" + %"$consume_3690" = sub i64 %"$gasrem_3686", 1 + store i64 %"$consume_3690", i64* @_gasrem, align 8 + %"$fail_msg__origin_3691" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3691", align 1 + %"$fail_msg__sender_3692" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3692", align 1 + %"$tname_3693" = load %String, %String* %tname, align 8 + %"$err_3694" = load %String, %String* %err1, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3691", [20 x i8]* %"$fail_msg__sender_3692", %String %"$tname_3693", %String %"$err_3694"), !dbg !402 + br label %"$matchsucc_3666" -"$empty_default_3693": ; preds = %"$have_gas_3687" - br label %"$matchsucc_3689" +"$empty_default_3670": ; preds = %"$have_gas_3664" + br label %"$matchsucc_3666" -"$matchsucc_3689": ; preds = %"$have_gas_3712", %"$True_3694", %"$empty_default_3693" - br label %"$matchsucc_3637" +"$matchsucc_3666": ; preds = %"$have_gas_3689", %"$True_3671", %"$empty_default_3670" + br label %"$matchsucc_3614" -"$None_3718": ; preds = %"$have_gas_3635" - %"$m1o_3719" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3638" to %"CName_None_Map_(String)_(String)"* - %"$gasrem_3720" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3721" = icmp ugt i64 1, %"$gasrem_3720" - br i1 %"$gascmp_3721", label %"$out_of_gas_3722", label %"$have_gas_3723" +"$None_3695": ; preds = %"$have_gas_3612" + %"$m1o_3696" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3615" to %"CName_None_Map_(String)_(String)"* + %"$gasrem_3697" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3698" = icmp ugt i64 1, %"$gasrem_3697" + br i1 %"$gascmp_3698", label %"$out_of_gas_3699", label %"$have_gas_3700" -"$out_of_gas_3722": ; preds = %"$None_3718" +"$out_of_gas_3699": ; preds = %"$None_3695" call void @_out_of_gas() - br label %"$have_gas_3723" + br label %"$have_gas_3700" -"$have_gas_3723": ; preds = %"$out_of_gas_3722", %"$None_3718" - %"$consume_3724" = sub i64 %"$gasrem_3720", 1 - store i64 %"$consume_3724", i64* @_gasrem, align 8 +"$have_gas_3700": ; preds = %"$out_of_gas_3699", %"$None_3695" + %"$consume_3701" = sub i64 %"$gasrem_3697", 1 + store i64 %"$consume_3701", i64* @_gasrem, align 8 %err2 = alloca %String, align 8 - %"$gasrem_3725" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3726" = icmp ugt i64 1, %"$gasrem_3725" - br i1 %"$gascmp_3726", label %"$out_of_gas_3727", label %"$have_gas_3728" + %"$gasrem_3702" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3703" = icmp ugt i64 1, %"$gasrem_3702" + br i1 %"$gascmp_3703", label %"$out_of_gas_3704", label %"$have_gas_3705" -"$out_of_gas_3727": ; preds = %"$have_gas_3723" +"$out_of_gas_3704": ; preds = %"$have_gas_3700" call void @_out_of_gas() - br label %"$have_gas_3728" + br label %"$have_gas_3705" -"$have_gas_3728": ; preds = %"$out_of_gas_3727", %"$have_gas_3723" - %"$consume_3729" = sub i64 %"$gasrem_3725", 1 - store i64 %"$consume_3729", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3730", i32 0, i32 0), i32 19 }, %String* %err2, align 8, !dbg !405 - %"$gasrem_3731" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3732" = icmp ugt i64 1, %"$gasrem_3731" - br i1 %"$gascmp_3732", label %"$out_of_gas_3733", label %"$have_gas_3734" +"$have_gas_3705": ; preds = %"$out_of_gas_3704", %"$have_gas_3700" + %"$consume_3706" = sub i64 %"$gasrem_3702", 1 + store i64 %"$consume_3706", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3707", i32 0, i32 0), i32 19 }, %String* %err2, align 8, !dbg !403 + %"$gasrem_3708" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3709" = icmp ugt i64 1, %"$gasrem_3708" + br i1 %"$gascmp_3709", label %"$out_of_gas_3710", label %"$have_gas_3711" -"$out_of_gas_3733": ; preds = %"$have_gas_3728" +"$out_of_gas_3710": ; preds = %"$have_gas_3705" call void @_out_of_gas() - br label %"$have_gas_3734" + br label %"$have_gas_3711" -"$have_gas_3734": ; preds = %"$out_of_gas_3733", %"$have_gas_3728" - %"$consume_3735" = sub i64 %"$gasrem_3731", 1 - store i64 %"$consume_3735", i64* @_gasrem, align 8 - %"$fail_msg__origin_3736" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3736", align 1 - %"$fail_msg__sender_3737" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3737", align 1 - %"$tname_3738" = load %String, %String* %tname, align 8 - %"$err_3739" = load %String, %String* %err2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3736", [20 x i8]* %"$fail_msg__sender_3737", %String %"$tname_3738", %String %"$err_3739"), !dbg !407 - br label %"$matchsucc_3637" +"$have_gas_3711": ; preds = %"$out_of_gas_3710", %"$have_gas_3705" + %"$consume_3712" = sub i64 %"$gasrem_3708", 1 + store i64 %"$consume_3712", i64* @_gasrem, align 8 + %"$fail_msg__origin_3713" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3713", align 1 + %"$fail_msg__sender_3714" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3714", align 1 + %"$tname_3715" = load %String, %String* %tname, align 8 + %"$err_3716" = load %String, %String* %err2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3713", [20 x i8]* %"$fail_msg__sender_3714", %String %"$tname_3715", %String %"$err_3716"), !dbg !405 + br label %"$matchsucc_3614" -"$empty_default_3641": ; preds = %"$have_gas_3635" - br label %"$matchsucc_3637" +"$empty_default_3618": ; preds = %"$have_gas_3612" + br label %"$matchsucc_3614" -"$matchsucc_3637": ; preds = %"$have_gas_3734", %"$matchsucc_3689", %"$empty_default_3641" - br label %"$matchsucc_3607" +"$matchsucc_3614": ; preds = %"$have_gas_3711", %"$matchsucc_3666", %"$empty_default_3618" + br label %"$matchsucc_3584" -"$False_3740": ; preds = %"$have_gas_3605" - %"$is_one_1_3741" = bitcast %TName_Bool* %"$is_one_1_3608" to %CName_False* - %"$gasrem_3742" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3743" = icmp ugt i64 1, %"$gasrem_3742" - br i1 %"$gascmp_3743", label %"$out_of_gas_3744", label %"$have_gas_3745" +"$False_3717": ; preds = %"$have_gas_3582" + %"$is_one_1_3718" = bitcast %TName_Bool* %"$is_one_1_3585" to %CName_False* + %"$gasrem_3719" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3720" = icmp ugt i64 1, %"$gasrem_3719" + br i1 %"$gascmp_3720", label %"$out_of_gas_3721", label %"$have_gas_3722" -"$out_of_gas_3744": ; preds = %"$False_3740" +"$out_of_gas_3721": ; preds = %"$False_3717" call void @_out_of_gas() - br label %"$have_gas_3745" + br label %"$have_gas_3722" -"$have_gas_3745": ; preds = %"$out_of_gas_3744", %"$False_3740" - %"$consume_3746" = sub i64 %"$gasrem_3742", 1 - store i64 %"$consume_3746", i64* @_gasrem, align 8 +"$have_gas_3722": ; preds = %"$out_of_gas_3721", %"$False_3717" + %"$consume_3723" = sub i64 %"$gasrem_3719", 1 + store i64 %"$consume_3723", i64* @_gasrem, align 8 %err3 = alloca %String, align 8 - %"$gasrem_3747" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3748" = icmp ugt i64 1, %"$gasrem_3747" - br i1 %"$gascmp_3748", label %"$out_of_gas_3749", label %"$have_gas_3750" + %"$gasrem_3724" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3725" = icmp ugt i64 1, %"$gasrem_3724" + br i1 %"$gascmp_3725", label %"$out_of_gas_3726", label %"$have_gas_3727" -"$out_of_gas_3749": ; preds = %"$have_gas_3745" +"$out_of_gas_3726": ; preds = %"$have_gas_3722" call void @_out_of_gas() - br label %"$have_gas_3750" + br label %"$have_gas_3727" -"$have_gas_3750": ; preds = %"$out_of_gas_3749", %"$have_gas_3745" - %"$consume_3751" = sub i64 %"$gasrem_3747", 1 - store i64 %"$consume_3751", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @"$stringlit_3752", i32 0, i32 0), i32 28 }, %String* %err3, align 8, !dbg !408 - %"$gasrem_3753" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3754" = icmp ugt i64 1, %"$gasrem_3753" - br i1 %"$gascmp_3754", label %"$out_of_gas_3755", label %"$have_gas_3756" +"$have_gas_3727": ; preds = %"$out_of_gas_3726", %"$have_gas_3722" + %"$consume_3728" = sub i64 %"$gasrem_3724", 1 + store i64 %"$consume_3728", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @"$stringlit_3729", i32 0, i32 0), i32 28 }, %String* %err3, align 8, !dbg !406 + %"$gasrem_3730" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3731" = icmp ugt i64 1, %"$gasrem_3730" + br i1 %"$gascmp_3731", label %"$out_of_gas_3732", label %"$have_gas_3733" -"$out_of_gas_3755": ; preds = %"$have_gas_3750" +"$out_of_gas_3732": ; preds = %"$have_gas_3727" call void @_out_of_gas() - br label %"$have_gas_3756" + br label %"$have_gas_3733" -"$have_gas_3756": ; preds = %"$out_of_gas_3755", %"$have_gas_3750" - %"$consume_3757" = sub i64 %"$gasrem_3753", 1 - store i64 %"$consume_3757", i64* @_gasrem, align 8 - %"$fail_msg__origin_3758" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3758", align 1 - %"$fail_msg__sender_3759" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3759", align 1 - %"$tname_3760" = load %String, %String* %tname, align 8 - %"$err_3761" = load %String, %String* %err3, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3758", [20 x i8]* %"$fail_msg__sender_3759", %String %"$tname_3760", %String %"$err_3761"), !dbg !410 - br label %"$matchsucc_3607" +"$have_gas_3733": ; preds = %"$out_of_gas_3732", %"$have_gas_3727" + %"$consume_3734" = sub i64 %"$gasrem_3730", 1 + store i64 %"$consume_3734", i64* @_gasrem, align 8 + %"$fail_msg__origin_3735" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3735", align 1 + %"$fail_msg__sender_3736" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3736", align 1 + %"$tname_3737" = load %String, %String* %tname, align 8 + %"$err_3738" = load %String, %String* %err3, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3735", [20 x i8]* %"$fail_msg__sender_3736", %String %"$tname_3737", %String %"$err_3738"), !dbg !408 + br label %"$matchsucc_3584" -"$empty_default_3611": ; preds = %"$have_gas_3605" - br label %"$matchsucc_3607" +"$empty_default_3588": ; preds = %"$have_gas_3582" + br label %"$matchsucc_3584" -"$matchsucc_3607": ; preds = %"$have_gas_3756", %"$matchsucc_3637", %"$empty_default_3611" - br label %"$matchsucc_3565" +"$matchsucc_3584": ; preds = %"$have_gas_3733", %"$matchsucc_3614", %"$empty_default_3588" + br label %"$matchsucc_3542" -"$None_3762": ; preds = %"$have_gas_3563" - %"$m2o_3763" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3566" to %"CName_None_Map_(String)_(Map_(String)_(String))"* - %"$gasrem_3764" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3765" = icmp ugt i64 1, %"$gasrem_3764" - br i1 %"$gascmp_3765", label %"$out_of_gas_3766", label %"$have_gas_3767" +"$None_3739": ; preds = %"$have_gas_3540" + %"$m2o_3740" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3543" to %"CName_None_Map_(String)_(Map_(String)_(String))"* + %"$gasrem_3741" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3742" = icmp ugt i64 1, %"$gasrem_3741" + br i1 %"$gascmp_3742", label %"$out_of_gas_3743", label %"$have_gas_3744" -"$out_of_gas_3766": ; preds = %"$None_3762" +"$out_of_gas_3743": ; preds = %"$None_3739" call void @_out_of_gas() - br label %"$have_gas_3767" + br label %"$have_gas_3744" -"$have_gas_3767": ; preds = %"$out_of_gas_3766", %"$None_3762" - %"$consume_3768" = sub i64 %"$gasrem_3764", 1 - store i64 %"$consume_3768", i64* @_gasrem, align 8 +"$have_gas_3744": ; preds = %"$out_of_gas_3743", %"$None_3739" + %"$consume_3745" = sub i64 %"$gasrem_3741", 1 + store i64 %"$consume_3745", i64* @_gasrem, align 8 %err4 = alloca %String, align 8 - %"$gasrem_3769" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3770" = icmp ugt i64 1, %"$gasrem_3769" - br i1 %"$gascmp_3770", label %"$out_of_gas_3771", label %"$have_gas_3772" + %"$gasrem_3746" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3747" = icmp ugt i64 1, %"$gasrem_3746" + br i1 %"$gascmp_3747", label %"$out_of_gas_3748", label %"$have_gas_3749" -"$out_of_gas_3771": ; preds = %"$have_gas_3767" +"$out_of_gas_3748": ; preds = %"$have_gas_3744" call void @_out_of_gas() - br label %"$have_gas_3772" + br label %"$have_gas_3749" -"$have_gas_3772": ; preds = %"$out_of_gas_3771", %"$have_gas_3767" - %"$consume_3773" = sub i64 %"$gasrem_3769", 1 - store i64 %"$consume_3773", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3774", i32 0, i32 0), i32 19 }, %String* %err4, align 8, !dbg !411 - %"$gasrem_3775" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3776" = icmp ugt i64 1, %"$gasrem_3775" - br i1 %"$gascmp_3776", label %"$out_of_gas_3777", label %"$have_gas_3778" +"$have_gas_3749": ; preds = %"$out_of_gas_3748", %"$have_gas_3744" + %"$consume_3750" = sub i64 %"$gasrem_3746", 1 + store i64 %"$consume_3750", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3751", i32 0, i32 0), i32 19 }, %String* %err4, align 8, !dbg !409 + %"$gasrem_3752" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3753" = icmp ugt i64 1, %"$gasrem_3752" + br i1 %"$gascmp_3753", label %"$out_of_gas_3754", label %"$have_gas_3755" -"$out_of_gas_3777": ; preds = %"$have_gas_3772" +"$out_of_gas_3754": ; preds = %"$have_gas_3749" call void @_out_of_gas() - br label %"$have_gas_3778" + br label %"$have_gas_3755" -"$have_gas_3778": ; preds = %"$out_of_gas_3777", %"$have_gas_3772" - %"$consume_3779" = sub i64 %"$gasrem_3775", 1 - store i64 %"$consume_3779", i64* @_gasrem, align 8 - %"$fail_msg__origin_3780" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3780", align 1 - %"$fail_msg__sender_3781" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3781", align 1 - %"$tname_3782" = load %String, %String* %tname, align 8 - %"$err_3783" = load %String, %String* %err4, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3780", [20 x i8]* %"$fail_msg__sender_3781", %String %"$tname_3782", %String %"$err_3783"), !dbg !413 - br label %"$matchsucc_3565" +"$have_gas_3755": ; preds = %"$out_of_gas_3754", %"$have_gas_3749" + %"$consume_3756" = sub i64 %"$gasrem_3752", 1 + store i64 %"$consume_3756", i64* @_gasrem, align 8 + %"$fail_msg__origin_3757" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3757", align 1 + %"$fail_msg__sender_3758" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3758", align 1 + %"$tname_3759" = load %String, %String* %tname, align 8 + %"$err_3760" = load %String, %String* %err4, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3757", [20 x i8]* %"$fail_msg__sender_3758", %String %"$tname_3759", %String %"$err_3760"), !dbg !411 + br label %"$matchsucc_3542" -"$empty_default_3569": ; preds = %"$have_gas_3563" - br label %"$matchsucc_3565" +"$empty_default_3546": ; preds = %"$have_gas_3540" + br label %"$matchsucc_3542" -"$matchsucc_3565": ; preds = %"$have_gas_3778", %"$matchsucc_3607", %"$empty_default_3569" - %"$gasrem_3784" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3785" = icmp ugt i64 1, %"$gasrem_3784" - br i1 %"$gascmp_3785", label %"$out_of_gas_3786", label %"$have_gas_3787" +"$matchsucc_3542": ; preds = %"$have_gas_3755", %"$matchsucc_3584", %"$empty_default_3546" + %"$gasrem_3761" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3762" = icmp ugt i64 1, %"$gasrem_3761" + br i1 %"$gascmp_3762", label %"$out_of_gas_3763", label %"$have_gas_3764" -"$out_of_gas_3786": ; preds = %"$matchsucc_3565" +"$out_of_gas_3763": ; preds = %"$matchsucc_3542" call void @_out_of_gas() - br label %"$have_gas_3787" + br label %"$have_gas_3764" -"$have_gas_3787": ; preds = %"$out_of_gas_3786", %"$matchsucc_3565" - %"$consume_3788" = sub i64 %"$gasrem_3784", 1 - store i64 %"$consume_3788", i64* @_gasrem, align 8 +"$have_gas_3764": ; preds = %"$out_of_gas_3763", %"$matchsucc_3542" + %"$consume_3765" = sub i64 %"$gasrem_3761", 1 + store i64 %"$consume_3765", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_3789" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3790" = icmp ugt i64 1, %"$gasrem_3789" - br i1 %"$gascmp_3790", label %"$out_of_gas_3791", label %"$have_gas_3792" + %"$gasrem_3766" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3767" = icmp ugt i64 1, %"$gasrem_3766" + br i1 %"$gascmp_3767", label %"$out_of_gas_3768", label %"$have_gas_3769" -"$out_of_gas_3791": ; preds = %"$have_gas_3787" +"$out_of_gas_3768": ; preds = %"$have_gas_3764" call void @_out_of_gas() - br label %"$have_gas_3792" + br label %"$have_gas_3769" -"$have_gas_3792": ; preds = %"$out_of_gas_3791", %"$have_gas_3787" - %"$consume_3793" = sub i64 %"$gasrem_3789", 1 - store i64 %"$consume_3793", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3794", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !414 - %"$gasrem_3795" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3796" = icmp ugt i64 1, %"$gasrem_3795" - br i1 %"$gascmp_3796", label %"$out_of_gas_3797", label %"$have_gas_3798" +"$have_gas_3769": ; preds = %"$out_of_gas_3768", %"$have_gas_3764" + %"$consume_3770" = sub i64 %"$gasrem_3766", 1 + store i64 %"$consume_3770", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3771", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !412 + %"$gasrem_3772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3773" = icmp ugt i64 1, %"$gasrem_3772" + br i1 %"$gascmp_3773", label %"$out_of_gas_3774", label %"$have_gas_3775" -"$out_of_gas_3797": ; preds = %"$have_gas_3792" +"$out_of_gas_3774": ; preds = %"$have_gas_3769" call void @_out_of_gas() - br label %"$have_gas_3798" + br label %"$have_gas_3775" -"$have_gas_3798": ; preds = %"$out_of_gas_3797", %"$have_gas_3792" - %"$consume_3799" = sub i64 %"$gasrem_3795", 1 - store i64 %"$consume_3799", i64* @_gasrem, align 8 +"$have_gas_3775": ; preds = %"$out_of_gas_3774", %"$have_gas_3769" + %"$consume_3776" = sub i64 %"$gasrem_3772", 1 + store i64 %"$consume_3776", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_3800" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3801" = icmp ugt i64 1, %"$gasrem_3800" - br i1 %"$gascmp_3801", label %"$out_of_gas_3802", label %"$have_gas_3803" + %"$gasrem_3777" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3778" = icmp ugt i64 1, %"$gasrem_3777" + br i1 %"$gascmp_3778", label %"$out_of_gas_3779", label %"$have_gas_3780" -"$out_of_gas_3802": ; preds = %"$have_gas_3798" +"$out_of_gas_3779": ; preds = %"$have_gas_3775" call void @_out_of_gas() - br label %"$have_gas_3803" + br label %"$have_gas_3780" -"$have_gas_3803": ; preds = %"$out_of_gas_3802", %"$have_gas_3798" - %"$consume_3804" = sub i64 %"$gasrem_3800", 1 - store i64 %"$consume_3804", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3805", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !415 - %"$gasrem_3806" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3807" = icmp ugt i64 1, %"$gasrem_3806" - br i1 %"$gascmp_3807", label %"$out_of_gas_3808", label %"$have_gas_3809" +"$have_gas_3780": ; preds = %"$out_of_gas_3779", %"$have_gas_3775" + %"$consume_3781" = sub i64 %"$gasrem_3777", 1 + store i64 %"$consume_3781", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3782", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !413 + %"$gasrem_3783" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3784" = icmp ugt i64 1, %"$gasrem_3783" + br i1 %"$gascmp_3784", label %"$out_of_gas_3785", label %"$have_gas_3786" -"$out_of_gas_3808": ; preds = %"$have_gas_3803" +"$out_of_gas_3785": ; preds = %"$have_gas_3780" call void @_out_of_gas() - br label %"$have_gas_3809" + br label %"$have_gas_3786" -"$have_gas_3809": ; preds = %"$out_of_gas_3808", %"$have_gas_3803" - %"$consume_3810" = sub i64 %"$gasrem_3806", 1 - store i64 %"$consume_3810", i64* @_gasrem, align 8 +"$have_gas_3786": ; preds = %"$out_of_gas_3785", %"$have_gas_3780" + %"$consume_3787" = sub i64 %"$gasrem_3783", 1 + store i64 %"$consume_3787", i64* @_gasrem, align 8 %key1c = alloca %String, align 8 - %"$gasrem_3811" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3812" = icmp ugt i64 1, %"$gasrem_3811" - br i1 %"$gascmp_3812", label %"$out_of_gas_3813", label %"$have_gas_3814" + %"$gasrem_3788" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3789" = icmp ugt i64 1, %"$gasrem_3788" + br i1 %"$gascmp_3789", label %"$out_of_gas_3790", label %"$have_gas_3791" -"$out_of_gas_3813": ; preds = %"$have_gas_3809" +"$out_of_gas_3790": ; preds = %"$have_gas_3786" call void @_out_of_gas() - br label %"$have_gas_3814" + br label %"$have_gas_3791" -"$have_gas_3814": ; preds = %"$out_of_gas_3813", %"$have_gas_3809" - %"$consume_3815" = sub i64 %"$gasrem_3811", 1 - store i64 %"$consume_3815", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3816", i32 0, i32 0), i32 5 }, %String* %key1c, align 8, !dbg !416 - %"$gasrem_3817" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3818" = icmp ugt i64 1, %"$gasrem_3817" - br i1 %"$gascmp_3818", label %"$out_of_gas_3819", label %"$have_gas_3820" +"$have_gas_3791": ; preds = %"$out_of_gas_3790", %"$have_gas_3786" + %"$consume_3792" = sub i64 %"$gasrem_3788", 1 + store i64 %"$consume_3792", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3793", i32 0, i32 0), i32 5 }, %String* %key1c, align 8, !dbg !414 + %"$gasrem_3794" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3795" = icmp ugt i64 1, %"$gasrem_3794" + br i1 %"$gascmp_3795", label %"$out_of_gas_3796", label %"$have_gas_3797" -"$out_of_gas_3819": ; preds = %"$have_gas_3814" +"$out_of_gas_3796": ; preds = %"$have_gas_3791" call void @_out_of_gas() - br label %"$have_gas_3820" + br label %"$have_gas_3797" -"$have_gas_3820": ; preds = %"$out_of_gas_3819", %"$have_gas_3814" - %"$consume_3821" = sub i64 %"$gasrem_3817", 1 - store i64 %"$consume_3821", i64* @_gasrem, align 8 +"$have_gas_3797": ; preds = %"$out_of_gas_3796", %"$have_gas_3791" + %"$consume_3798" = sub i64 %"$gasrem_3794", 1 + store i64 %"$consume_3798", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_3822" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3823" = icmp ugt i64 1, %"$gasrem_3822" - br i1 %"$gascmp_3823", label %"$out_of_gas_3824", label %"$have_gas_3825" + %"$gasrem_3799" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3800" = icmp ugt i64 1, %"$gasrem_3799" + br i1 %"$gascmp_3800", label %"$out_of_gas_3801", label %"$have_gas_3802" -"$out_of_gas_3824": ; preds = %"$have_gas_3820" +"$out_of_gas_3801": ; preds = %"$have_gas_3797" call void @_out_of_gas() - br label %"$have_gas_3825" + br label %"$have_gas_3802" -"$have_gas_3825": ; preds = %"$out_of_gas_3824", %"$have_gas_3820" - %"$consume_3826" = sub i64 %"$gasrem_3822", 1 - store i64 %"$consume_3826", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3827", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !417 - %"$gasrem_3828" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3829" = icmp ugt i64 1, %"$gasrem_3828" - br i1 %"$gascmp_3829", label %"$out_of_gas_3830", label %"$have_gas_3831" +"$have_gas_3802": ; preds = %"$out_of_gas_3801", %"$have_gas_3797" + %"$consume_3803" = sub i64 %"$gasrem_3799", 1 + store i64 %"$consume_3803", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3804", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !415 + %"$gasrem_3805" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3806" = icmp ugt i64 1, %"$gasrem_3805" + br i1 %"$gascmp_3806", label %"$out_of_gas_3807", label %"$have_gas_3808" -"$out_of_gas_3830": ; preds = %"$have_gas_3825" +"$out_of_gas_3807": ; preds = %"$have_gas_3802" call void @_out_of_gas() - br label %"$have_gas_3831" + br label %"$have_gas_3808" -"$have_gas_3831": ; preds = %"$out_of_gas_3830", %"$have_gas_3825" - %"$consume_3832" = sub i64 %"$gasrem_3828", 1 - store i64 %"$consume_3832", i64* @_gasrem, align 8 +"$have_gas_3808": ; preds = %"$out_of_gas_3807", %"$have_gas_3802" + %"$consume_3809" = sub i64 %"$gasrem_3805", 1 + store i64 %"$consume_3809", i64* @_gasrem, align 8 %key1d = alloca %String, align 8 - %"$gasrem_3833" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3834" = icmp ugt i64 1, %"$gasrem_3833" - br i1 %"$gascmp_3834", label %"$out_of_gas_3835", label %"$have_gas_3836" + %"$gasrem_3810" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3811" = icmp ugt i64 1, %"$gasrem_3810" + br i1 %"$gascmp_3811", label %"$out_of_gas_3812", label %"$have_gas_3813" -"$out_of_gas_3835": ; preds = %"$have_gas_3831" +"$out_of_gas_3812": ; preds = %"$have_gas_3808" call void @_out_of_gas() - br label %"$have_gas_3836" + br label %"$have_gas_3813" -"$have_gas_3836": ; preds = %"$out_of_gas_3835", %"$have_gas_3831" - %"$consume_3837" = sub i64 %"$gasrem_3833", 1 - store i64 %"$consume_3837", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3838", i32 0, i32 0), i32 5 }, %String* %key1d, align 8, !dbg !418 - %"$gasrem_3839" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3840" = icmp ugt i64 1, %"$gasrem_3839" - br i1 %"$gascmp_3840", label %"$out_of_gas_3841", label %"$have_gas_3842" +"$have_gas_3813": ; preds = %"$out_of_gas_3812", %"$have_gas_3808" + %"$consume_3814" = sub i64 %"$gasrem_3810", 1 + store i64 %"$consume_3814", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3815", i32 0, i32 0), i32 5 }, %String* %key1d, align 8, !dbg !416 + %"$gasrem_3816" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3817" = icmp ugt i64 1, %"$gasrem_3816" + br i1 %"$gascmp_3817", label %"$out_of_gas_3818", label %"$have_gas_3819" -"$out_of_gas_3841": ; preds = %"$have_gas_3836" +"$out_of_gas_3818": ; preds = %"$have_gas_3813" call void @_out_of_gas() - br label %"$have_gas_3842" + br label %"$have_gas_3819" -"$have_gas_3842": ; preds = %"$out_of_gas_3841", %"$have_gas_3836" - %"$consume_3843" = sub i64 %"$gasrem_3839", 1 - store i64 %"$consume_3843", i64* @_gasrem, align 8 +"$have_gas_3819": ; preds = %"$out_of_gas_3818", %"$have_gas_3813" + %"$consume_3820" = sub i64 %"$gasrem_3816", 1 + store i64 %"$consume_3820", i64* @_gasrem, align 8 %key2d = alloca %String, align 8 - %"$gasrem_3844" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3845" = icmp ugt i64 1, %"$gasrem_3844" - br i1 %"$gascmp_3845", label %"$out_of_gas_3846", label %"$have_gas_3847" + %"$gasrem_3821" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3822" = icmp ugt i64 1, %"$gasrem_3821" + br i1 %"$gascmp_3822", label %"$out_of_gas_3823", label %"$have_gas_3824" -"$out_of_gas_3846": ; preds = %"$have_gas_3842" +"$out_of_gas_3823": ; preds = %"$have_gas_3819" call void @_out_of_gas() - br label %"$have_gas_3847" + br label %"$have_gas_3824" -"$have_gas_3847": ; preds = %"$out_of_gas_3846", %"$have_gas_3842" - %"$consume_3848" = sub i64 %"$gasrem_3844", 1 - store i64 %"$consume_3848", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3849", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !419 - %"$gasrem_3850" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3851" = icmp ugt i64 1, %"$gasrem_3850" - br i1 %"$gascmp_3851", label %"$out_of_gas_3852", label %"$have_gas_3853" +"$have_gas_3824": ; preds = %"$out_of_gas_3823", %"$have_gas_3819" + %"$consume_3825" = sub i64 %"$gasrem_3821", 1 + store i64 %"$consume_3825", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3826", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !417 + %"$gasrem_3827" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3828" = icmp ugt i64 1, %"$gasrem_3827" + br i1 %"$gascmp_3828", label %"$out_of_gas_3829", label %"$have_gas_3830" -"$out_of_gas_3852": ; preds = %"$have_gas_3847" +"$out_of_gas_3829": ; preds = %"$have_gas_3824" call void @_out_of_gas() - br label %"$have_gas_3853" + br label %"$have_gas_3830" -"$have_gas_3853": ; preds = %"$out_of_gas_3852", %"$have_gas_3847" - %"$consume_3854" = sub i64 %"$gasrem_3850", 1 - store i64 %"$consume_3854", i64* @_gasrem, align 8 +"$have_gas_3830": ; preds = %"$out_of_gas_3829", %"$have_gas_3824" + %"$consume_3831" = sub i64 %"$gasrem_3827", 1 + store i64 %"$consume_3831", i64* @_gasrem, align 8 %v1 = alloca %String, align 8 - %"$gasrem_3855" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3856" = icmp ugt i64 1, %"$gasrem_3855" - br i1 %"$gascmp_3856", label %"$out_of_gas_3857", label %"$have_gas_3858" + %"$gasrem_3832" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3833" = icmp ugt i64 1, %"$gasrem_3832" + br i1 %"$gascmp_3833", label %"$out_of_gas_3834", label %"$have_gas_3835" -"$out_of_gas_3857": ; preds = %"$have_gas_3853" +"$out_of_gas_3834": ; preds = %"$have_gas_3830" call void @_out_of_gas() - br label %"$have_gas_3858" + br label %"$have_gas_3835" -"$have_gas_3858": ; preds = %"$out_of_gas_3857", %"$have_gas_3853" - %"$consume_3859" = sub i64 %"$gasrem_3855", 1 - store i64 %"$consume_3859", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3860", i32 0, i32 0), i32 3 }, %String* %v1, align 8, !dbg !420 - %"$gasrem_3861" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3862" = icmp ugt i64 1, %"$gasrem_3861" - br i1 %"$gascmp_3862", label %"$out_of_gas_3863", label %"$have_gas_3864" +"$have_gas_3835": ; preds = %"$out_of_gas_3834", %"$have_gas_3830" + %"$consume_3836" = sub i64 %"$gasrem_3832", 1 + store i64 %"$consume_3836", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3837", i32 0, i32 0), i32 3 }, %String* %v1, align 8, !dbg !418 + %"$gasrem_3838" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3839" = icmp ugt i64 1, %"$gasrem_3838" + br i1 %"$gascmp_3839", label %"$out_of_gas_3840", label %"$have_gas_3841" -"$out_of_gas_3863": ; preds = %"$have_gas_3858" +"$out_of_gas_3840": ; preds = %"$have_gas_3835" call void @_out_of_gas() - br label %"$have_gas_3864" + br label %"$have_gas_3841" -"$have_gas_3864": ; preds = %"$out_of_gas_3863", %"$have_gas_3858" - %"$consume_3865" = sub i64 %"$gasrem_3861", 1 - store i64 %"$consume_3865", i64* @_gasrem, align 8 +"$have_gas_3841": ; preds = %"$out_of_gas_3840", %"$have_gas_3835" + %"$consume_3842" = sub i64 %"$gasrem_3838", 1 + store i64 %"$consume_3842", i64* @_gasrem, align 8 %v2 = alloca %String, align 8 - %"$gasrem_3866" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3867" = icmp ugt i64 1, %"$gasrem_3866" - br i1 %"$gascmp_3867", label %"$out_of_gas_3868", label %"$have_gas_3869" + %"$gasrem_3843" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3844" = icmp ugt i64 1, %"$gasrem_3843" + br i1 %"$gascmp_3844", label %"$out_of_gas_3845", label %"$have_gas_3846" -"$out_of_gas_3868": ; preds = %"$have_gas_3864" +"$out_of_gas_3845": ; preds = %"$have_gas_3841" call void @_out_of_gas() - br label %"$have_gas_3869" + br label %"$have_gas_3846" -"$have_gas_3869": ; preds = %"$out_of_gas_3868", %"$have_gas_3864" - %"$consume_3870" = sub i64 %"$gasrem_3866", 1 - store i64 %"$consume_3870", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3871", i32 0, i32 0), i32 3 }, %String* %v2, align 8, !dbg !421 - %"$gasrem_3872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3873" = icmp ugt i64 1, %"$gasrem_3872" - br i1 %"$gascmp_3873", label %"$out_of_gas_3874", label %"$have_gas_3875" +"$have_gas_3846": ; preds = %"$out_of_gas_3845", %"$have_gas_3841" + %"$consume_3847" = sub i64 %"$gasrem_3843", 1 + store i64 %"$consume_3847", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3848", i32 0, i32 0), i32 3 }, %String* %v2, align 8, !dbg !419 + %"$gasrem_3849" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3850" = icmp ugt i64 1, %"$gasrem_3849" + br i1 %"$gascmp_3850", label %"$out_of_gas_3851", label %"$have_gas_3852" -"$out_of_gas_3874": ; preds = %"$have_gas_3869" +"$out_of_gas_3851": ; preds = %"$have_gas_3846" call void @_out_of_gas() - br label %"$have_gas_3875" + br label %"$have_gas_3852" -"$have_gas_3875": ; preds = %"$out_of_gas_3874", %"$have_gas_3869" - %"$consume_3876" = sub i64 %"$gasrem_3872", 1 - store i64 %"$consume_3876", i64* @_gasrem, align 8 +"$have_gas_3852": ; preds = %"$out_of_gas_3851", %"$have_gas_3846" + %"$consume_3853" = sub i64 %"$gasrem_3849", 1 + store i64 %"$consume_3853", i64* @_gasrem, align 8 %v3 = alloca %String, align 8 - %"$gasrem_3877" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3878" = icmp ugt i64 1, %"$gasrem_3877" - br i1 %"$gascmp_3878", label %"$out_of_gas_3879", label %"$have_gas_3880" + %"$gasrem_3854" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3855" = icmp ugt i64 1, %"$gasrem_3854" + br i1 %"$gascmp_3855", label %"$out_of_gas_3856", label %"$have_gas_3857" -"$out_of_gas_3879": ; preds = %"$have_gas_3875" +"$out_of_gas_3856": ; preds = %"$have_gas_3852" call void @_out_of_gas() - br label %"$have_gas_3880" + br label %"$have_gas_3857" -"$have_gas_3880": ; preds = %"$out_of_gas_3879", %"$have_gas_3875" - %"$consume_3881" = sub i64 %"$gasrem_3877", 1 - store i64 %"$consume_3881", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3882", i32 0, i32 0), i32 3 }, %String* %v3, align 8, !dbg !422 - %"$gasrem_3883" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3884" = icmp ugt i64 1, %"$gasrem_3883" - br i1 %"$gascmp_3884", label %"$out_of_gas_3885", label %"$have_gas_3886" +"$have_gas_3857": ; preds = %"$out_of_gas_3856", %"$have_gas_3852" + %"$consume_3858" = sub i64 %"$gasrem_3854", 1 + store i64 %"$consume_3858", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3859", i32 0, i32 0), i32 3 }, %String* %v3, align 8, !dbg !420 + %"$gasrem_3860" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3861" = icmp ugt i64 1, %"$gasrem_3860" + br i1 %"$gascmp_3861", label %"$out_of_gas_3862", label %"$have_gas_3863" -"$out_of_gas_3885": ; preds = %"$have_gas_3880" +"$out_of_gas_3862": ; preds = %"$have_gas_3857" call void @_out_of_gas() - br label %"$have_gas_3886" + br label %"$have_gas_3863" -"$have_gas_3886": ; preds = %"$out_of_gas_3885", %"$have_gas_3880" - %"$consume_3887" = sub i64 %"$gasrem_3883", 1 - store i64 %"$consume_3887", i64* @_gasrem, align 8 +"$have_gas_3863": ; preds = %"$out_of_gas_3862", %"$have_gas_3857" + %"$consume_3864" = sub i64 %"$gasrem_3860", 1 + store i64 %"$consume_3864", i64* @_gasrem, align 8 %v4 = alloca %String, align 8 - %"$gasrem_3888" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3889" = icmp ugt i64 1, %"$gasrem_3888" - br i1 %"$gascmp_3889", label %"$out_of_gas_3890", label %"$have_gas_3891" + %"$gasrem_3865" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3866" = icmp ugt i64 1, %"$gasrem_3865" + br i1 %"$gascmp_3866", label %"$out_of_gas_3867", label %"$have_gas_3868" -"$out_of_gas_3890": ; preds = %"$have_gas_3886" +"$out_of_gas_3867": ; preds = %"$have_gas_3863" call void @_out_of_gas() - br label %"$have_gas_3891" + br label %"$have_gas_3868" -"$have_gas_3891": ; preds = %"$out_of_gas_3890", %"$have_gas_3886" - %"$consume_3892" = sub i64 %"$gasrem_3888", 1 - store i64 %"$consume_3892", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3893", i32 0, i32 0), i32 3 }, %String* %v4, align 8, !dbg !423 - %"$gasrem_3894" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3895" = icmp ugt i64 1, %"$gasrem_3894" - br i1 %"$gascmp_3895", label %"$out_of_gas_3896", label %"$have_gas_3897" +"$have_gas_3868": ; preds = %"$out_of_gas_3867", %"$have_gas_3863" + %"$consume_3869" = sub i64 %"$gasrem_3865", 1 + store i64 %"$consume_3869", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3870", i32 0, i32 0), i32 3 }, %String* %v4, align 8, !dbg !421 + %"$gasrem_3871" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3872" = icmp ugt i64 1, %"$gasrem_3871" + br i1 %"$gascmp_3872", label %"$out_of_gas_3873", label %"$have_gas_3874" -"$out_of_gas_3896": ; preds = %"$have_gas_3891" +"$out_of_gas_3873": ; preds = %"$have_gas_3868" call void @_out_of_gas() - br label %"$have_gas_3897" + br label %"$have_gas_3874" -"$have_gas_3897": ; preds = %"$out_of_gas_3896", %"$have_gas_3891" - %"$consume_3898" = sub i64 %"$gasrem_3894", 1 - store i64 %"$consume_3898", i64* @_gasrem, align 8 +"$have_gas_3874": ; preds = %"$out_of_gas_3873", %"$have_gas_3868" + %"$consume_3875" = sub i64 %"$gasrem_3871", 1 + store i64 %"$consume_3875", i64* @_gasrem, align 8 %m25 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3899" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3900" = icmp ugt i64 1, %"$gasrem_3899" - br i1 %"$gascmp_3900", label %"$out_of_gas_3901", label %"$have_gas_3902" + %"$gasrem_3876" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3877" = icmp ugt i64 1, %"$gasrem_3876" + br i1 %"$gascmp_3877", label %"$out_of_gas_3878", label %"$have_gas_3879" -"$out_of_gas_3901": ; preds = %"$have_gas_3897" +"$out_of_gas_3878": ; preds = %"$have_gas_3874" call void @_out_of_gas() - br label %"$have_gas_3902" + br label %"$have_gas_3879" -"$have_gas_3902": ; preds = %"$out_of_gas_3901", %"$have_gas_3897" - %"$consume_3903" = sub i64 %"$gasrem_3899", 1 - store i64 %"$consume_3903", i64* @_gasrem, align 8 - %"$execptr_load_3904" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3905" = call i8* @_new_empty_map(i8* %"$execptr_load_3904") - %"$_new_empty_map_3906" = bitcast i8* %"$_new_empty_map_call_3905" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3906", %"Map_String_Map_(String)_(String)"** %m25, align 8, !dbg !424 - %"$gasrem_3907" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3908" = icmp ugt i64 1, %"$gasrem_3907" - br i1 %"$gascmp_3908", label %"$out_of_gas_3909", label %"$have_gas_3910" +"$have_gas_3879": ; preds = %"$out_of_gas_3878", %"$have_gas_3874" + %"$consume_3880" = sub i64 %"$gasrem_3876", 1 + store i64 %"$consume_3880", i64* @_gasrem, align 8 + %"$execptr_load_3881" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3882" = call i8* @_new_empty_map(i8* %"$execptr_load_3881") + %"$_new_empty_map_3883" = bitcast i8* %"$_new_empty_map_call_3882" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3883", %"Map_String_Map_(String)_(String)"** %m25, align 8, !dbg !422 + %"$gasrem_3884" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3885" = icmp ugt i64 1, %"$gasrem_3884" + br i1 %"$gascmp_3885", label %"$out_of_gas_3886", label %"$have_gas_3887" -"$out_of_gas_3909": ; preds = %"$have_gas_3902" +"$out_of_gas_3886": ; preds = %"$have_gas_3879" call void @_out_of_gas() - br label %"$have_gas_3910" + br label %"$have_gas_3887" -"$have_gas_3910": ; preds = %"$out_of_gas_3909", %"$have_gas_3902" - %"$consume_3911" = sub i64 %"$gasrem_3907", 1 - store i64 %"$consume_3911", i64* @_gasrem, align 8 +"$have_gas_3887": ; preds = %"$out_of_gas_3886", %"$have_gas_3879" + %"$consume_3888" = sub i64 %"$gasrem_3884", 1 + store i64 %"$consume_3888", i64* @_gasrem, align 8 %m16 = alloca %Map_String_String*, align 8 - %"$gasrem_3912" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3913" = icmp ugt i64 1, %"$gasrem_3912" - br i1 %"$gascmp_3913", label %"$out_of_gas_3914", label %"$have_gas_3915" + %"$gasrem_3889" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3890" = icmp ugt i64 1, %"$gasrem_3889" + br i1 %"$gascmp_3890", label %"$out_of_gas_3891", label %"$have_gas_3892" -"$out_of_gas_3914": ; preds = %"$have_gas_3910" +"$out_of_gas_3891": ; preds = %"$have_gas_3887" call void @_out_of_gas() - br label %"$have_gas_3915" + br label %"$have_gas_3892" -"$have_gas_3915": ; preds = %"$out_of_gas_3914", %"$have_gas_3910" - %"$consume_3916" = sub i64 %"$gasrem_3912", 1 - store i64 %"$consume_3916", i64* @_gasrem, align 8 - %"$execptr_load_3917" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3918" = call i8* @_new_empty_map(i8* %"$execptr_load_3917") - %"$_new_empty_map_3919" = bitcast i8* %"$_new_empty_map_call_3918" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_3919", %Map_String_String** %m16, align 8, !dbg !425 - %"$gasrem_3920" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3921" = icmp ugt i64 1, %"$gasrem_3920" - br i1 %"$gascmp_3921", label %"$out_of_gas_3922", label %"$have_gas_3923" +"$have_gas_3892": ; preds = %"$out_of_gas_3891", %"$have_gas_3887" + %"$consume_3893" = sub i64 %"$gasrem_3889", 1 + store i64 %"$consume_3893", i64* @_gasrem, align 8 + %"$execptr_load_3894" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3895" = call i8* @_new_empty_map(i8* %"$execptr_load_3894") + %"$_new_empty_map_3896" = bitcast i8* %"$_new_empty_map_call_3895" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_3896", %Map_String_String** %m16, align 8, !dbg !423 + %"$gasrem_3897" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3898" = icmp ugt i64 1, %"$gasrem_3897" + br i1 %"$gascmp_3898", label %"$out_of_gas_3899", label %"$have_gas_3900" -"$out_of_gas_3922": ; preds = %"$have_gas_3915" +"$out_of_gas_3899": ; preds = %"$have_gas_3892" call void @_out_of_gas() - br label %"$have_gas_3923" + br label %"$have_gas_3900" -"$have_gas_3923": ; preds = %"$out_of_gas_3922", %"$have_gas_3915" - %"$consume_3924" = sub i64 %"$gasrem_3920", 1 - store i64 %"$consume_3924", i64* @_gasrem, align 8 +"$have_gas_3900": ; preds = %"$out_of_gas_3899", %"$have_gas_3892" + %"$consume_3901" = sub i64 %"$gasrem_3897", 1 + store i64 %"$consume_3901", i64* @_gasrem, align 8 %m2_full = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3925" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3926" = icmp ugt i64 1, %"$gasrem_3925" - br i1 %"$gascmp_3926", label %"$out_of_gas_3927", label %"$have_gas_3928" + %"$gasrem_3902" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3903" = icmp ugt i64 1, %"$gasrem_3902" + br i1 %"$gascmp_3903", label %"$out_of_gas_3904", label %"$have_gas_3905" -"$out_of_gas_3927": ; preds = %"$have_gas_3923" +"$out_of_gas_3904": ; preds = %"$have_gas_3900" call void @_out_of_gas() - br label %"$have_gas_3928" + br label %"$have_gas_3905" -"$have_gas_3928": ; preds = %"$out_of_gas_3927", %"$have_gas_3923" - %"$consume_3929" = sub i64 %"$gasrem_3925", 1 - store i64 %"$consume_3929", i64* @_gasrem, align 8 +"$have_gas_3905": ; preds = %"$out_of_gas_3904", %"$have_gas_3900" + %"$consume_3906" = sub i64 %"$gasrem_3902", 1 + store i64 %"$consume_3906", i64* @_gasrem, align 8 %m21 = alloca %Map_String_String*, align 8 - %"$m1_3930" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3930_3931" = bitcast %Map_String_String* %"$m1_3930" to i8* - %"$_lengthof_call_3932" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3930_3931") - %"$gasadd_3933" = add i64 1, %"$_lengthof_call_3932" - %"$gasrem_3934" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3935" = icmp ugt i64 %"$gasadd_3933", %"$gasrem_3934" - br i1 %"$gascmp_3935", label %"$out_of_gas_3936", label %"$have_gas_3937" - -"$out_of_gas_3936": ; preds = %"$have_gas_3928" - call void @_out_of_gas() - br label %"$have_gas_3937" - -"$have_gas_3937": ; preds = %"$out_of_gas_3936", %"$have_gas_3928" - %"$consume_3938" = sub i64 %"$gasrem_3934", %"$gasadd_3933" - store i64 %"$consume_3938", i64* @_gasrem, align 8 - %"$execptr_load_3939" = load i8*, i8** @_execptr, align 8 - %"$m1_3940" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3940_3941" = bitcast %Map_String_String* %"$m1_3940" to i8* - %"$put_key2a_3942" = alloca %String, align 8 - %"$key2a_3943" = load %String, %String* %key2a, align 8 - store %String %"$key2a_3943", %String* %"$put_key2a_3942", align 8 - %"$$put_key2a_3942_3944" = bitcast %String* %"$put_key2a_3942" to i8* - %"$put_v1_3945" = alloca %String, align 8 - %"$v1_3946" = load %String, %String* %v1, align 8 - store %String %"$v1_3946", %String* %"$put_v1_3945", align 8 - %"$$put_v1_3945_3947" = bitcast %String* %"$put_v1_3945" to i8* - %"$put_call_3948" = call i8* @_put(i8* %"$execptr_load_3939", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3940_3941", i8* %"$$put_key2a_3942_3944", i8* %"$$put_v1_3945_3947"), !dbg !426 - %"$put_3949" = bitcast i8* %"$put_call_3948" to %Map_String_String* - store %Map_String_String* %"$put_3949", %Map_String_String** %m21, align 8, !dbg !426 - %"$gasrem_3950" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3951" = icmp ugt i64 1, %"$gasrem_3950" - br i1 %"$gascmp_3951", label %"$out_of_gas_3952", label %"$have_gas_3953" - -"$out_of_gas_3952": ; preds = %"$have_gas_3937" - call void @_out_of_gas() - br label %"$have_gas_3953" - -"$have_gas_3953": ; preds = %"$out_of_gas_3952", %"$have_gas_3937" - %"$consume_3954" = sub i64 %"$gasrem_3950", 1 - store i64 %"$consume_3954", i64* @_gasrem, align 8 + %"$m1_3907" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3907_3908" = bitcast %Map_String_String* %"$m1_3907" to i8* + %"$_lengthof_call_3909" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3907_3908") + %"$gasadd_3910" = add i64 1, %"$_lengthof_call_3909" + %"$gasrem_3911" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3912" = icmp ugt i64 %"$gasadd_3910", %"$gasrem_3911" + br i1 %"$gascmp_3912", label %"$out_of_gas_3913", label %"$have_gas_3914" + +"$out_of_gas_3913": ; preds = %"$have_gas_3905" + call void @_out_of_gas() + br label %"$have_gas_3914" + +"$have_gas_3914": ; preds = %"$out_of_gas_3913", %"$have_gas_3905" + %"$consume_3915" = sub i64 %"$gasrem_3911", %"$gasadd_3910" + store i64 %"$consume_3915", i64* @_gasrem, align 8 + %"$execptr_load_3916" = load i8*, i8** @_execptr, align 8 + %"$m1_3917" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3917_3918" = bitcast %Map_String_String* %"$m1_3917" to i8* + %"$put_key2a_3919" = alloca %String, align 8 + %"$key2a_3920" = load %String, %String* %key2a, align 8 + store %String %"$key2a_3920", %String* %"$put_key2a_3919", align 8 + %"$$put_key2a_3919_3921" = bitcast %String* %"$put_key2a_3919" to i8* + %"$put_v1_3922" = alloca %String, align 8 + %"$v1_3923" = load %String, %String* %v1, align 8 + store %String %"$v1_3923", %String* %"$put_v1_3922", align 8 + %"$$put_v1_3922_3924" = bitcast %String* %"$put_v1_3922" to i8* + %"$put_call_3925" = call i8* @_put(i8* %"$execptr_load_3916", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3917_3918", i8* %"$$put_key2a_3919_3921", i8* %"$$put_v1_3922_3924"), !dbg !424 + %"$put_3926" = bitcast i8* %"$put_call_3925" to %Map_String_String* + store %Map_String_String* %"$put_3926", %Map_String_String** %m21, align 8, !dbg !424 + %"$gasrem_3927" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3928" = icmp ugt i64 1, %"$gasrem_3927" + br i1 %"$gascmp_3928", label %"$out_of_gas_3929", label %"$have_gas_3930" + +"$out_of_gas_3929": ; preds = %"$have_gas_3914" + call void @_out_of_gas() + br label %"$have_gas_3930" + +"$have_gas_3930": ; preds = %"$out_of_gas_3929", %"$have_gas_3914" + %"$consume_3931" = sub i64 %"$gasrem_3927", 1 + store i64 %"$consume_3931", i64* @_gasrem, align 8 %m22 = alloca %Map_String_String*, align 8 - %"$m1_3955" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3955_3956" = bitcast %Map_String_String* %"$m1_3955" to i8* - %"$_lengthof_call_3957" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3955_3956") - %"$gasadd_3958" = add i64 1, %"$_lengthof_call_3957" - %"$gasrem_3959" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3960" = icmp ugt i64 %"$gasadd_3958", %"$gasrem_3959" - br i1 %"$gascmp_3960", label %"$out_of_gas_3961", label %"$have_gas_3962" - -"$out_of_gas_3961": ; preds = %"$have_gas_3953" - call void @_out_of_gas() - br label %"$have_gas_3962" - -"$have_gas_3962": ; preds = %"$out_of_gas_3961", %"$have_gas_3953" - %"$consume_3963" = sub i64 %"$gasrem_3959", %"$gasadd_3958" - store i64 %"$consume_3963", i64* @_gasrem, align 8 - %"$execptr_load_3964" = load i8*, i8** @_execptr, align 8 - %"$m1_3965" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3965_3966" = bitcast %Map_String_String* %"$m1_3965" to i8* - %"$put_key2b_3967" = alloca %String, align 8 - %"$key2b_3968" = load %String, %String* %key2b, align 8 - store %String %"$key2b_3968", %String* %"$put_key2b_3967", align 8 - %"$$put_key2b_3967_3969" = bitcast %String* %"$put_key2b_3967" to i8* - %"$put_v2_3970" = alloca %String, align 8 - %"$v2_3971" = load %String, %String* %v2, align 8 - store %String %"$v2_3971", %String* %"$put_v2_3970", align 8 - %"$$put_v2_3970_3972" = bitcast %String* %"$put_v2_3970" to i8* - %"$put_call_3973" = call i8* @_put(i8* %"$execptr_load_3964", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3965_3966", i8* %"$$put_key2b_3967_3969", i8* %"$$put_v2_3970_3972"), !dbg !427 - %"$put_3974" = bitcast i8* %"$put_call_3973" to %Map_String_String* - store %Map_String_String* %"$put_3974", %Map_String_String** %m22, align 8, !dbg !427 - %"$gasrem_3975" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3976" = icmp ugt i64 1, %"$gasrem_3975" - br i1 %"$gascmp_3976", label %"$out_of_gas_3977", label %"$have_gas_3978" - -"$out_of_gas_3977": ; preds = %"$have_gas_3962" - call void @_out_of_gas() - br label %"$have_gas_3978" - -"$have_gas_3978": ; preds = %"$out_of_gas_3977", %"$have_gas_3962" - %"$consume_3979" = sub i64 %"$gasrem_3975", 1 - store i64 %"$consume_3979", i64* @_gasrem, align 8 + %"$m1_3932" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3932_3933" = bitcast %Map_String_String* %"$m1_3932" to i8* + %"$_lengthof_call_3934" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3932_3933") + %"$gasadd_3935" = add i64 1, %"$_lengthof_call_3934" + %"$gasrem_3936" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3937" = icmp ugt i64 %"$gasadd_3935", %"$gasrem_3936" + br i1 %"$gascmp_3937", label %"$out_of_gas_3938", label %"$have_gas_3939" + +"$out_of_gas_3938": ; preds = %"$have_gas_3930" + call void @_out_of_gas() + br label %"$have_gas_3939" + +"$have_gas_3939": ; preds = %"$out_of_gas_3938", %"$have_gas_3930" + %"$consume_3940" = sub i64 %"$gasrem_3936", %"$gasadd_3935" + store i64 %"$consume_3940", i64* @_gasrem, align 8 + %"$execptr_load_3941" = load i8*, i8** @_execptr, align 8 + %"$m1_3942" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3942_3943" = bitcast %Map_String_String* %"$m1_3942" to i8* + %"$put_key2b_3944" = alloca %String, align 8 + %"$key2b_3945" = load %String, %String* %key2b, align 8 + store %String %"$key2b_3945", %String* %"$put_key2b_3944", align 8 + %"$$put_key2b_3944_3946" = bitcast %String* %"$put_key2b_3944" to i8* + %"$put_v2_3947" = alloca %String, align 8 + %"$v2_3948" = load %String, %String* %v2, align 8 + store %String %"$v2_3948", %String* %"$put_v2_3947", align 8 + %"$$put_v2_3947_3949" = bitcast %String* %"$put_v2_3947" to i8* + %"$put_call_3950" = call i8* @_put(i8* %"$execptr_load_3941", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3942_3943", i8* %"$$put_key2b_3944_3946", i8* %"$$put_v2_3947_3949"), !dbg !425 + %"$put_3951" = bitcast i8* %"$put_call_3950" to %Map_String_String* + store %Map_String_String* %"$put_3951", %Map_String_String** %m22, align 8, !dbg !425 + %"$gasrem_3952" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3953" = icmp ugt i64 1, %"$gasrem_3952" + br i1 %"$gascmp_3953", label %"$out_of_gas_3954", label %"$have_gas_3955" + +"$out_of_gas_3954": ; preds = %"$have_gas_3939" + call void @_out_of_gas() + br label %"$have_gas_3955" + +"$have_gas_3955": ; preds = %"$out_of_gas_3954", %"$have_gas_3939" + %"$consume_3956" = sub i64 %"$gasrem_3952", 1 + store i64 %"$consume_3956", i64* @_gasrem, align 8 %m23 = alloca %Map_String_String*, align 8 - %"$m1_3980" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3980_3981" = bitcast %Map_String_String* %"$m1_3980" to i8* - %"$_lengthof_call_3982" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3980_3981") - %"$gasadd_3983" = add i64 1, %"$_lengthof_call_3982" - %"$gasrem_3984" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3985" = icmp ugt i64 %"$gasadd_3983", %"$gasrem_3984" - br i1 %"$gascmp_3985", label %"$out_of_gas_3986", label %"$have_gas_3987" - -"$out_of_gas_3986": ; preds = %"$have_gas_3978" - call void @_out_of_gas() - br label %"$have_gas_3987" - -"$have_gas_3987": ; preds = %"$out_of_gas_3986", %"$have_gas_3978" - %"$consume_3988" = sub i64 %"$gasrem_3984", %"$gasadd_3983" - store i64 %"$consume_3988", i64* @_gasrem, align 8 - %"$execptr_load_3989" = load i8*, i8** @_execptr, align 8 - %"$m1_3990" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3990_3991" = bitcast %Map_String_String* %"$m1_3990" to i8* - %"$put_key2c_3992" = alloca %String, align 8 - %"$key2c_3993" = load %String, %String* %key2c, align 8 - store %String %"$key2c_3993", %String* %"$put_key2c_3992", align 8 - %"$$put_key2c_3992_3994" = bitcast %String* %"$put_key2c_3992" to i8* - %"$put_v3_3995" = alloca %String, align 8 - %"$v3_3996" = load %String, %String* %v3, align 8 - store %String %"$v3_3996", %String* %"$put_v3_3995", align 8 - %"$$put_v3_3995_3997" = bitcast %String* %"$put_v3_3995" to i8* - %"$put_call_3998" = call i8* @_put(i8* %"$execptr_load_3989", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3990_3991", i8* %"$$put_key2c_3992_3994", i8* %"$$put_v3_3995_3997"), !dbg !428 - %"$put_3999" = bitcast i8* %"$put_call_3998" to %Map_String_String* - store %Map_String_String* %"$put_3999", %Map_String_String** %m23, align 8, !dbg !428 - %"$gasrem_4000" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4001" = icmp ugt i64 1, %"$gasrem_4000" - br i1 %"$gascmp_4001", label %"$out_of_gas_4002", label %"$have_gas_4003" - -"$out_of_gas_4002": ; preds = %"$have_gas_3987" - call void @_out_of_gas() - br label %"$have_gas_4003" - -"$have_gas_4003": ; preds = %"$out_of_gas_4002", %"$have_gas_3987" - %"$consume_4004" = sub i64 %"$gasrem_4000", 1 - store i64 %"$consume_4004", i64* @_gasrem, align 8 + %"$m1_3957" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3957_3958" = bitcast %Map_String_String* %"$m1_3957" to i8* + %"$_lengthof_call_3959" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3957_3958") + %"$gasadd_3960" = add i64 1, %"$_lengthof_call_3959" + %"$gasrem_3961" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3962" = icmp ugt i64 %"$gasadd_3960", %"$gasrem_3961" + br i1 %"$gascmp_3962", label %"$out_of_gas_3963", label %"$have_gas_3964" + +"$out_of_gas_3963": ; preds = %"$have_gas_3955" + call void @_out_of_gas() + br label %"$have_gas_3964" + +"$have_gas_3964": ; preds = %"$out_of_gas_3963", %"$have_gas_3955" + %"$consume_3965" = sub i64 %"$gasrem_3961", %"$gasadd_3960" + store i64 %"$consume_3965", i64* @_gasrem, align 8 + %"$execptr_load_3966" = load i8*, i8** @_execptr, align 8 + %"$m1_3967" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3967_3968" = bitcast %Map_String_String* %"$m1_3967" to i8* + %"$put_key2c_3969" = alloca %String, align 8 + %"$key2c_3970" = load %String, %String* %key2c, align 8 + store %String %"$key2c_3970", %String* %"$put_key2c_3969", align 8 + %"$$put_key2c_3969_3971" = bitcast %String* %"$put_key2c_3969" to i8* + %"$put_v3_3972" = alloca %String, align 8 + %"$v3_3973" = load %String, %String* %v3, align 8 + store %String %"$v3_3973", %String* %"$put_v3_3972", align 8 + %"$$put_v3_3972_3974" = bitcast %String* %"$put_v3_3972" to i8* + %"$put_call_3975" = call i8* @_put(i8* %"$execptr_load_3966", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3967_3968", i8* %"$$put_key2c_3969_3971", i8* %"$$put_v3_3972_3974"), !dbg !426 + %"$put_3976" = bitcast i8* %"$put_call_3975" to %Map_String_String* + store %Map_String_String* %"$put_3976", %Map_String_String** %m23, align 8, !dbg !426 + %"$gasrem_3977" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3978" = icmp ugt i64 1, %"$gasrem_3977" + br i1 %"$gascmp_3978", label %"$out_of_gas_3979", label %"$have_gas_3980" + +"$out_of_gas_3979": ; preds = %"$have_gas_3964" + call void @_out_of_gas() + br label %"$have_gas_3980" + +"$have_gas_3980": ; preds = %"$out_of_gas_3979", %"$have_gas_3964" + %"$consume_3981" = sub i64 %"$gasrem_3977", 1 + store i64 %"$consume_3981", i64* @_gasrem, align 8 %m24 = alloca %Map_String_String*, align 8 - %"$m1_4005" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_4005_4006" = bitcast %Map_String_String* %"$m1_4005" to i8* - %"$_lengthof_call_4007" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_4005_4006") - %"$gasadd_4008" = add i64 1, %"$_lengthof_call_4007" - %"$gasrem_4009" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4010" = icmp ugt i64 %"$gasadd_4008", %"$gasrem_4009" - br i1 %"$gascmp_4010", label %"$out_of_gas_4011", label %"$have_gas_4012" - -"$out_of_gas_4011": ; preds = %"$have_gas_4003" - call void @_out_of_gas() - br label %"$have_gas_4012" - -"$have_gas_4012": ; preds = %"$out_of_gas_4011", %"$have_gas_4003" - %"$consume_4013" = sub i64 %"$gasrem_4009", %"$gasadd_4008" - store i64 %"$consume_4013", i64* @_gasrem, align 8 - %"$execptr_load_4014" = load i8*, i8** @_execptr, align 8 - %"$m1_4015" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_4015_4016" = bitcast %Map_String_String* %"$m1_4015" to i8* - %"$put_key2d_4017" = alloca %String, align 8 - %"$key2d_4018" = load %String, %String* %key2d, align 8 - store %String %"$key2d_4018", %String* %"$put_key2d_4017", align 8 - %"$$put_key2d_4017_4019" = bitcast %String* %"$put_key2d_4017" to i8* - %"$put_v4_4020" = alloca %String, align 8 - %"$v4_4021" = load %String, %String* %v4, align 8 - store %String %"$v4_4021", %String* %"$put_v4_4020", align 8 - %"$$put_v4_4020_4022" = bitcast %String* %"$put_v4_4020" to i8* - %"$put_call_4023" = call i8* @_put(i8* %"$execptr_load_4014", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_4015_4016", i8* %"$$put_key2d_4017_4019", i8* %"$$put_v4_4020_4022"), !dbg !429 - %"$put_4024" = bitcast i8* %"$put_call_4023" to %Map_String_String* - store %Map_String_String* %"$put_4024", %Map_String_String** %m24, align 8, !dbg !429 - %"$gasrem_4025" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4026" = icmp ugt i64 1, %"$gasrem_4025" - br i1 %"$gascmp_4026", label %"$out_of_gas_4027", label %"$have_gas_4028" - -"$out_of_gas_4027": ; preds = %"$have_gas_4012" - call void @_out_of_gas() - br label %"$have_gas_4028" - -"$have_gas_4028": ; preds = %"$out_of_gas_4027", %"$have_gas_4012" - %"$consume_4029" = sub i64 %"$gasrem_4025", 1 - store i64 %"$consume_4029", i64* @_gasrem, align 8 + %"$m1_3982" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3982_3983" = bitcast %Map_String_String* %"$m1_3982" to i8* + %"$_lengthof_call_3984" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3982_3983") + %"$gasadd_3985" = add i64 1, %"$_lengthof_call_3984" + %"$gasrem_3986" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3987" = icmp ugt i64 %"$gasadd_3985", %"$gasrem_3986" + br i1 %"$gascmp_3987", label %"$out_of_gas_3988", label %"$have_gas_3989" + +"$out_of_gas_3988": ; preds = %"$have_gas_3980" + call void @_out_of_gas() + br label %"$have_gas_3989" + +"$have_gas_3989": ; preds = %"$out_of_gas_3988", %"$have_gas_3980" + %"$consume_3990" = sub i64 %"$gasrem_3986", %"$gasadd_3985" + store i64 %"$consume_3990", i64* @_gasrem, align 8 + %"$execptr_load_3991" = load i8*, i8** @_execptr, align 8 + %"$m1_3992" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3992_3993" = bitcast %Map_String_String* %"$m1_3992" to i8* + %"$put_key2d_3994" = alloca %String, align 8 + %"$key2d_3995" = load %String, %String* %key2d, align 8 + store %String %"$key2d_3995", %String* %"$put_key2d_3994", align 8 + %"$$put_key2d_3994_3996" = bitcast %String* %"$put_key2d_3994" to i8* + %"$put_v4_3997" = alloca %String, align 8 + %"$v4_3998" = load %String, %String* %v4, align 8 + store %String %"$v4_3998", %String* %"$put_v4_3997", align 8 + %"$$put_v4_3997_3999" = bitcast %String* %"$put_v4_3997" to i8* + %"$put_call_4000" = call i8* @_put(i8* %"$execptr_load_3991", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3992_3993", i8* %"$$put_key2d_3994_3996", i8* %"$$put_v4_3997_3999"), !dbg !427 + %"$put_4001" = bitcast i8* %"$put_call_4000" to %Map_String_String* + store %Map_String_String* %"$put_4001", %Map_String_String** %m24, align 8, !dbg !427 + %"$gasrem_4002" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4003" = icmp ugt i64 1, %"$gasrem_4002" + br i1 %"$gascmp_4003", label %"$out_of_gas_4004", label %"$have_gas_4005" + +"$out_of_gas_4004": ; preds = %"$have_gas_3989" + call void @_out_of_gas() + br label %"$have_gas_4005" + +"$have_gas_4005": ; preds = %"$out_of_gas_4004", %"$have_gas_3989" + %"$consume_4006" = sub i64 %"$gasrem_4002", 1 + store i64 %"$consume_4006", i64* @_gasrem, align 8 %m11 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m2_4030" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 - %"$$m2_4030_4031" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4030" to i8* - %"$_lengthof_call_4032" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m2_4030_4031") - %"$gasadd_4033" = add i64 1, %"$_lengthof_call_4032" - %"$gasrem_4034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4035" = icmp ugt i64 %"$gasadd_4033", %"$gasrem_4034" - br i1 %"$gascmp_4035", label %"$out_of_gas_4036", label %"$have_gas_4037" - -"$out_of_gas_4036": ; preds = %"$have_gas_4028" - call void @_out_of_gas() - br label %"$have_gas_4037" - -"$have_gas_4037": ; preds = %"$out_of_gas_4036", %"$have_gas_4028" - %"$consume_4038" = sub i64 %"$gasrem_4034", %"$gasadd_4033" - store i64 %"$consume_4038", i64* @_gasrem, align 8 - %"$execptr_load_4039" = load i8*, i8** @_execptr, align 8 - %"$m2_4040" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 - %"$$m2_4040_4041" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4040" to i8* - %"$put_key1a_4042" = alloca %String, align 8 - %"$key1a_4043" = load %String, %String* %key1a, align 8 - store %String %"$key1a_4043", %String* %"$put_key1a_4042", align 8 - %"$$put_key1a_4042_4044" = bitcast %String* %"$put_key1a_4042" to i8* - %"$m21_4045" = load %Map_String_String*, %Map_String_String** %m21, align 8 - %"$$m21_4045_4046" = bitcast %Map_String_String* %"$m21_4045" to i8* - %"$put_call_4047" = call i8* @_put(i8* %"$execptr_load_4039", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m2_4040_4041", i8* %"$$put_key1a_4042_4044", i8* %"$$m21_4045_4046"), !dbg !430 - %"$put_4048" = bitcast i8* %"$put_call_4047" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_4048", %"Map_String_Map_(String)_(String)"** %m11, align 8, !dbg !430 - %"$gasrem_4049" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4050" = icmp ugt i64 1, %"$gasrem_4049" - br i1 %"$gascmp_4050", label %"$out_of_gas_4051", label %"$have_gas_4052" - -"$out_of_gas_4051": ; preds = %"$have_gas_4037" - call void @_out_of_gas() - br label %"$have_gas_4052" - -"$have_gas_4052": ; preds = %"$out_of_gas_4051", %"$have_gas_4037" - %"$consume_4053" = sub i64 %"$gasrem_4049", 1 - store i64 %"$consume_4053", i64* @_gasrem, align 8 + %"$m2_4007" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 + %"$$m2_4007_4008" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4007" to i8* + %"$_lengthof_call_4009" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m2_4007_4008") + %"$gasadd_4010" = add i64 1, %"$_lengthof_call_4009" + %"$gasrem_4011" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4012" = icmp ugt i64 %"$gasadd_4010", %"$gasrem_4011" + br i1 %"$gascmp_4012", label %"$out_of_gas_4013", label %"$have_gas_4014" + +"$out_of_gas_4013": ; preds = %"$have_gas_4005" + call void @_out_of_gas() + br label %"$have_gas_4014" + +"$have_gas_4014": ; preds = %"$out_of_gas_4013", %"$have_gas_4005" + %"$consume_4015" = sub i64 %"$gasrem_4011", %"$gasadd_4010" + store i64 %"$consume_4015", i64* @_gasrem, align 8 + %"$execptr_load_4016" = load i8*, i8** @_execptr, align 8 + %"$m2_4017" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 + %"$$m2_4017_4018" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4017" to i8* + %"$put_key1a_4019" = alloca %String, align 8 + %"$key1a_4020" = load %String, %String* %key1a, align 8 + store %String %"$key1a_4020", %String* %"$put_key1a_4019", align 8 + %"$$put_key1a_4019_4021" = bitcast %String* %"$put_key1a_4019" to i8* + %"$m21_4022" = load %Map_String_String*, %Map_String_String** %m21, align 8 + %"$$m21_4022_4023" = bitcast %Map_String_String* %"$m21_4022" to i8* + %"$put_call_4024" = call i8* @_put(i8* %"$execptr_load_4016", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m2_4017_4018", i8* %"$$put_key1a_4019_4021", i8* %"$$m21_4022_4023"), !dbg !428 + %"$put_4025" = bitcast i8* %"$put_call_4024" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4025", %"Map_String_Map_(String)_(String)"** %m11, align 8, !dbg !428 + %"$gasrem_4026" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4027" = icmp ugt i64 1, %"$gasrem_4026" + br i1 %"$gascmp_4027", label %"$out_of_gas_4028", label %"$have_gas_4029" + +"$out_of_gas_4028": ; preds = %"$have_gas_4014" + call void @_out_of_gas() + br label %"$have_gas_4029" + +"$have_gas_4029": ; preds = %"$out_of_gas_4028", %"$have_gas_4014" + %"$consume_4030" = sub i64 %"$gasrem_4026", 1 + store i64 %"$consume_4030", i64* @_gasrem, align 8 %m12 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m11_4054" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 - %"$$m11_4054_4055" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4054" to i8* - %"$_lengthof_call_4056" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m11_4054_4055") - %"$gasadd_4057" = add i64 1, %"$_lengthof_call_4056" - %"$gasrem_4058" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4059" = icmp ugt i64 %"$gasadd_4057", %"$gasrem_4058" - br i1 %"$gascmp_4059", label %"$out_of_gas_4060", label %"$have_gas_4061" - -"$out_of_gas_4060": ; preds = %"$have_gas_4052" - call void @_out_of_gas() - br label %"$have_gas_4061" - -"$have_gas_4061": ; preds = %"$out_of_gas_4060", %"$have_gas_4052" - %"$consume_4062" = sub i64 %"$gasrem_4058", %"$gasadd_4057" - store i64 %"$consume_4062", i64* @_gasrem, align 8 - %"$execptr_load_4063" = load i8*, i8** @_execptr, align 8 - %"$m11_4064" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 - %"$$m11_4064_4065" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4064" to i8* - %"$put_key1b_4066" = alloca %String, align 8 - %"$key1b_4067" = load %String, %String* %key1b, align 8 - store %String %"$key1b_4067", %String* %"$put_key1b_4066", align 8 - %"$$put_key1b_4066_4068" = bitcast %String* %"$put_key1b_4066" to i8* - %"$m22_4069" = load %Map_String_String*, %Map_String_String** %m22, align 8 - %"$$m22_4069_4070" = bitcast %Map_String_String* %"$m22_4069" to i8* - %"$put_call_4071" = call i8* @_put(i8* %"$execptr_load_4063", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m11_4064_4065", i8* %"$$put_key1b_4066_4068", i8* %"$$m22_4069_4070"), !dbg !431 - %"$put_4072" = bitcast i8* %"$put_call_4071" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_4072", %"Map_String_Map_(String)_(String)"** %m12, align 8, !dbg !431 - %"$gasrem_4073" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4074" = icmp ugt i64 1, %"$gasrem_4073" - br i1 %"$gascmp_4074", label %"$out_of_gas_4075", label %"$have_gas_4076" - -"$out_of_gas_4075": ; preds = %"$have_gas_4061" - call void @_out_of_gas() - br label %"$have_gas_4076" - -"$have_gas_4076": ; preds = %"$out_of_gas_4075", %"$have_gas_4061" - %"$consume_4077" = sub i64 %"$gasrem_4073", 1 - store i64 %"$consume_4077", i64* @_gasrem, align 8 + %"$m11_4031" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 + %"$$m11_4031_4032" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4031" to i8* + %"$_lengthof_call_4033" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m11_4031_4032") + %"$gasadd_4034" = add i64 1, %"$_lengthof_call_4033" + %"$gasrem_4035" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4036" = icmp ugt i64 %"$gasadd_4034", %"$gasrem_4035" + br i1 %"$gascmp_4036", label %"$out_of_gas_4037", label %"$have_gas_4038" + +"$out_of_gas_4037": ; preds = %"$have_gas_4029" + call void @_out_of_gas() + br label %"$have_gas_4038" + +"$have_gas_4038": ; preds = %"$out_of_gas_4037", %"$have_gas_4029" + %"$consume_4039" = sub i64 %"$gasrem_4035", %"$gasadd_4034" + store i64 %"$consume_4039", i64* @_gasrem, align 8 + %"$execptr_load_4040" = load i8*, i8** @_execptr, align 8 + %"$m11_4041" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 + %"$$m11_4041_4042" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4041" to i8* + %"$put_key1b_4043" = alloca %String, align 8 + %"$key1b_4044" = load %String, %String* %key1b, align 8 + store %String %"$key1b_4044", %String* %"$put_key1b_4043", align 8 + %"$$put_key1b_4043_4045" = bitcast %String* %"$put_key1b_4043" to i8* + %"$m22_4046" = load %Map_String_String*, %Map_String_String** %m22, align 8 + %"$$m22_4046_4047" = bitcast %Map_String_String* %"$m22_4046" to i8* + %"$put_call_4048" = call i8* @_put(i8* %"$execptr_load_4040", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m11_4041_4042", i8* %"$$put_key1b_4043_4045", i8* %"$$m22_4046_4047"), !dbg !429 + %"$put_4049" = bitcast i8* %"$put_call_4048" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4049", %"Map_String_Map_(String)_(String)"** %m12, align 8, !dbg !429 + %"$gasrem_4050" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4051" = icmp ugt i64 1, %"$gasrem_4050" + br i1 %"$gascmp_4051", label %"$out_of_gas_4052", label %"$have_gas_4053" + +"$out_of_gas_4052": ; preds = %"$have_gas_4038" + call void @_out_of_gas() + br label %"$have_gas_4053" + +"$have_gas_4053": ; preds = %"$out_of_gas_4052", %"$have_gas_4038" + %"$consume_4054" = sub i64 %"$gasrem_4050", 1 + store i64 %"$consume_4054", i64* @_gasrem, align 8 %m13 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m12_4078" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 - %"$$m12_4078_4079" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4078" to i8* - %"$_lengthof_call_4080" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m12_4078_4079") - %"$gasadd_4081" = add i64 1, %"$_lengthof_call_4080" - %"$gasrem_4082" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4083" = icmp ugt i64 %"$gasadd_4081", %"$gasrem_4082" - br i1 %"$gascmp_4083", label %"$out_of_gas_4084", label %"$have_gas_4085" - -"$out_of_gas_4084": ; preds = %"$have_gas_4076" - call void @_out_of_gas() - br label %"$have_gas_4085" - -"$have_gas_4085": ; preds = %"$out_of_gas_4084", %"$have_gas_4076" - %"$consume_4086" = sub i64 %"$gasrem_4082", %"$gasadd_4081" - store i64 %"$consume_4086", i64* @_gasrem, align 8 - %"$execptr_load_4087" = load i8*, i8** @_execptr, align 8 - %"$m12_4088" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 - %"$$m12_4088_4089" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4088" to i8* - %"$put_key1c_4090" = alloca %String, align 8 - %"$key1c_4091" = load %String, %String* %key1c, align 8 - store %String %"$key1c_4091", %String* %"$put_key1c_4090", align 8 - %"$$put_key1c_4090_4092" = bitcast %String* %"$put_key1c_4090" to i8* - %"$m23_4093" = load %Map_String_String*, %Map_String_String** %m23, align 8 - %"$$m23_4093_4094" = bitcast %Map_String_String* %"$m23_4093" to i8* - %"$put_call_4095" = call i8* @_put(i8* %"$execptr_load_4087", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m12_4088_4089", i8* %"$$put_key1c_4090_4092", i8* %"$$m23_4093_4094"), !dbg !432 - %"$put_4096" = bitcast i8* %"$put_call_4095" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_4096", %"Map_String_Map_(String)_(String)"** %m13, align 8, !dbg !432 - %"$gasrem_4097" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4098" = icmp ugt i64 1, %"$gasrem_4097" - br i1 %"$gascmp_4098", label %"$out_of_gas_4099", label %"$have_gas_4100" - -"$out_of_gas_4099": ; preds = %"$have_gas_4085" - call void @_out_of_gas() - br label %"$have_gas_4100" - -"$have_gas_4100": ; preds = %"$out_of_gas_4099", %"$have_gas_4085" - %"$consume_4101" = sub i64 %"$gasrem_4097", 1 - store i64 %"$consume_4101", i64* @_gasrem, align 8 + %"$m12_4055" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 + %"$$m12_4055_4056" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4055" to i8* + %"$_lengthof_call_4057" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m12_4055_4056") + %"$gasadd_4058" = add i64 1, %"$_lengthof_call_4057" + %"$gasrem_4059" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4060" = icmp ugt i64 %"$gasadd_4058", %"$gasrem_4059" + br i1 %"$gascmp_4060", label %"$out_of_gas_4061", label %"$have_gas_4062" + +"$out_of_gas_4061": ; preds = %"$have_gas_4053" + call void @_out_of_gas() + br label %"$have_gas_4062" + +"$have_gas_4062": ; preds = %"$out_of_gas_4061", %"$have_gas_4053" + %"$consume_4063" = sub i64 %"$gasrem_4059", %"$gasadd_4058" + store i64 %"$consume_4063", i64* @_gasrem, align 8 + %"$execptr_load_4064" = load i8*, i8** @_execptr, align 8 + %"$m12_4065" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 + %"$$m12_4065_4066" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4065" to i8* + %"$put_key1c_4067" = alloca %String, align 8 + %"$key1c_4068" = load %String, %String* %key1c, align 8 + store %String %"$key1c_4068", %String* %"$put_key1c_4067", align 8 + %"$$put_key1c_4067_4069" = bitcast %String* %"$put_key1c_4067" to i8* + %"$m23_4070" = load %Map_String_String*, %Map_String_String** %m23, align 8 + %"$$m23_4070_4071" = bitcast %Map_String_String* %"$m23_4070" to i8* + %"$put_call_4072" = call i8* @_put(i8* %"$execptr_load_4064", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m12_4065_4066", i8* %"$$put_key1c_4067_4069", i8* %"$$m23_4070_4071"), !dbg !430 + %"$put_4073" = bitcast i8* %"$put_call_4072" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4073", %"Map_String_Map_(String)_(String)"** %m13, align 8, !dbg !430 + %"$gasrem_4074" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4075" = icmp ugt i64 1, %"$gasrem_4074" + br i1 %"$gascmp_4075", label %"$out_of_gas_4076", label %"$have_gas_4077" + +"$out_of_gas_4076": ; preds = %"$have_gas_4062" + call void @_out_of_gas() + br label %"$have_gas_4077" + +"$have_gas_4077": ; preds = %"$out_of_gas_4076", %"$have_gas_4062" + %"$consume_4078" = sub i64 %"$gasrem_4074", 1 + store i64 %"$consume_4078", i64* @_gasrem, align 8 %m14 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m13_4102" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 - %"$$m13_4102_4103" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4102" to i8* - %"$_lengthof_call_4104" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m13_4102_4103") - %"$gasadd_4105" = add i64 1, %"$_lengthof_call_4104" - %"$gasrem_4106" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4107" = icmp ugt i64 %"$gasadd_4105", %"$gasrem_4106" - br i1 %"$gascmp_4107", label %"$out_of_gas_4108", label %"$have_gas_4109" - -"$out_of_gas_4108": ; preds = %"$have_gas_4100" - call void @_out_of_gas() - br label %"$have_gas_4109" - -"$have_gas_4109": ; preds = %"$out_of_gas_4108", %"$have_gas_4100" - %"$consume_4110" = sub i64 %"$gasrem_4106", %"$gasadd_4105" - store i64 %"$consume_4110", i64* @_gasrem, align 8 - %"$execptr_load_4111" = load i8*, i8** @_execptr, align 8 - %"$m13_4112" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 - %"$$m13_4112_4113" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4112" to i8* - %"$put_key1d_4114" = alloca %String, align 8 - %"$key1d_4115" = load %String, %String* %key1d, align 8 - store %String %"$key1d_4115", %String* %"$put_key1d_4114", align 8 - %"$$put_key1d_4114_4116" = bitcast %String* %"$put_key1d_4114" to i8* - %"$m24_4117" = load %Map_String_String*, %Map_String_String** %m24, align 8 - %"$$m24_4117_4118" = bitcast %Map_String_String* %"$m24_4117" to i8* - %"$put_call_4119" = call i8* @_put(i8* %"$execptr_load_4111", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m13_4112_4113", i8* %"$$put_key1d_4114_4116", i8* %"$$m24_4117_4118"), !dbg !433 - %"$put_4120" = bitcast i8* %"$put_call_4119" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_4120", %"Map_String_Map_(String)_(String)"** %m14, align 8, !dbg !433 - %"$gasrem_4121" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4122" = icmp ugt i64 1, %"$gasrem_4121" - br i1 %"$gascmp_4122", label %"$out_of_gas_4123", label %"$have_gas_4124" - -"$out_of_gas_4123": ; preds = %"$have_gas_4109" - call void @_out_of_gas() - br label %"$have_gas_4124" - -"$have_gas_4124": ; preds = %"$out_of_gas_4123", %"$have_gas_4109" - %"$consume_4125" = sub i64 %"$gasrem_4121", 1 - store i64 %"$consume_4125", i64* @_gasrem, align 8 - %"$m14_4126" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m14, align 8 - store %"Map_String_Map_(String)_(String)"* %"$m14_4126", %"Map_String_Map_(String)_(String)"** %m2_full, align 8, !dbg !434 - %"$m2_full_4127" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 - %"$$m2_full_4127_4128" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4127" to i8* - %"$_literal_cost_call_4129" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m2_full_4127_4128") - %"$gasrem_4130" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4131" = icmp ugt i64 %"$_literal_cost_call_4129", %"$gasrem_4130" - br i1 %"$gascmp_4131", label %"$out_of_gas_4132", label %"$have_gas_4133" - -"$out_of_gas_4132": ; preds = %"$have_gas_4124" - call void @_out_of_gas() - br label %"$have_gas_4133" - -"$have_gas_4133": ; preds = %"$out_of_gas_4132", %"$have_gas_4124" - %"$consume_4134" = sub i64 %"$gasrem_4130", %"$_literal_cost_call_4129" - store i64 %"$consume_4134", i64* @_gasrem, align 8 - %"$execptr_load_4135" = load i8*, i8** @_execptr, align 8 - %"$m2_full_4137" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 - %"$update_value_4138" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4137" to i8* - call void @_update_field(i8* %"$execptr_load_4135", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4136", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i8* %"$update_value_4138"), !dbg !435 + %"$m13_4079" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 + %"$$m13_4079_4080" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4079" to i8* + %"$_lengthof_call_4081" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m13_4079_4080") + %"$gasadd_4082" = add i64 1, %"$_lengthof_call_4081" + %"$gasrem_4083" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4084" = icmp ugt i64 %"$gasadd_4082", %"$gasrem_4083" + br i1 %"$gascmp_4084", label %"$out_of_gas_4085", label %"$have_gas_4086" + +"$out_of_gas_4085": ; preds = %"$have_gas_4077" + call void @_out_of_gas() + br label %"$have_gas_4086" + +"$have_gas_4086": ; preds = %"$out_of_gas_4085", %"$have_gas_4077" + %"$consume_4087" = sub i64 %"$gasrem_4083", %"$gasadd_4082" + store i64 %"$consume_4087", i64* @_gasrem, align 8 + %"$execptr_load_4088" = load i8*, i8** @_execptr, align 8 + %"$m13_4089" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 + %"$$m13_4089_4090" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4089" to i8* + %"$put_key1d_4091" = alloca %String, align 8 + %"$key1d_4092" = load %String, %String* %key1d, align 8 + store %String %"$key1d_4092", %String* %"$put_key1d_4091", align 8 + %"$$put_key1d_4091_4093" = bitcast %String* %"$put_key1d_4091" to i8* + %"$m24_4094" = load %Map_String_String*, %Map_String_String** %m24, align 8 + %"$$m24_4094_4095" = bitcast %Map_String_String* %"$m24_4094" to i8* + %"$put_call_4096" = call i8* @_put(i8* %"$execptr_load_4088", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m13_4089_4090", i8* %"$$put_key1d_4091_4093", i8* %"$$m24_4094_4095"), !dbg !431 + %"$put_4097" = bitcast i8* %"$put_call_4096" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4097", %"Map_String_Map_(String)_(String)"** %m14, align 8, !dbg !431 + %"$gasrem_4098" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4099" = icmp ugt i64 1, %"$gasrem_4098" + br i1 %"$gascmp_4099", label %"$out_of_gas_4100", label %"$have_gas_4101" + +"$out_of_gas_4100": ; preds = %"$have_gas_4086" + call void @_out_of_gas() + br label %"$have_gas_4101" + +"$have_gas_4101": ; preds = %"$out_of_gas_4100", %"$have_gas_4086" + %"$consume_4102" = sub i64 %"$gasrem_4098", 1 + store i64 %"$consume_4102", i64* @_gasrem, align 8 + %"$m14_4103" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m14, align 8 + store %"Map_String_Map_(String)_(String)"* %"$m14_4103", %"Map_String_Map_(String)_(String)"** %m2_full, align 8, !dbg !432 + %"$m2_full_4104" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 + %"$$m2_full_4104_4105" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4104" to i8* + %"$_literal_cost_call_4106" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m2_full_4104_4105") + %"$gasrem_4107" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4108" = icmp ugt i64 %"$_literal_cost_call_4106", %"$gasrem_4107" + br i1 %"$gascmp_4108", label %"$out_of_gas_4109", label %"$have_gas_4110" + +"$out_of_gas_4109": ; preds = %"$have_gas_4101" + call void @_out_of_gas() + br label %"$have_gas_4110" + +"$have_gas_4110": ; preds = %"$out_of_gas_4109", %"$have_gas_4101" + %"$consume_4111" = sub i64 %"$gasrem_4107", %"$_literal_cost_call_4106" + store i64 %"$consume_4111", i64* @_gasrem, align 8 + %"$execptr_load_4112" = load i8*, i8** @_execptr, align 8 + %"$m2_full_4114" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 + %"$update_value_4115" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4114" to i8* + call void @_update_field(i8* %"$execptr_load_4112", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4113", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i8* %"$update_value_4115"), !dbg !433 ret void } -define void @t15(i8* %0) !dbg !436 { +define void @t15(i8* %0) !dbg !434 { entry: - %"$_amount_4140" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4141" = bitcast i8* %"$_amount_4140" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4141", align 8 - %"$_origin_4142" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4143" = bitcast i8* %"$_origin_4142" to [20 x i8]* - %"$_sender_4144" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4145" = bitcast i8* %"$_sender_4144" to [20 x i8]* - call void @"$t15_3418"(%Uint128 %_amount, [20 x i8]* %"$_origin_4143", [20 x i8]* %"$_sender_4145"), !dbg !437 + %"$_amount_4117" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4118" = bitcast i8* %"$_amount_4117" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4118", align 8 + %"$_origin_4119" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4120" = bitcast i8* %"$_origin_4119" to [20 x i8]* + %"$_sender_4121" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4122" = bitcast i8* %"$_sender_4121" to [20 x i8]* + call void @"$t15_3395"(%Uint128 %_amount, [20 x i8]* %"$_origin_4120", [20 x i8]* %"$_sender_4122"), !dbg !435 ret void } -define internal void @"$t16_4146"(%Uint128 %_amount, [20 x i8]* %"$_origin_4147", [20 x i8]* %"$_sender_4148") !dbg !438 { +define internal void @"$t16_4123"(%Uint128 %_amount, [20 x i8]* %"$_origin_4124", [20 x i8]* %"$_sender_4125") !dbg !436 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4147", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4148", align 1 - %"$gasrem_4149" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4150" = icmp ugt i64 1, %"$gasrem_4149" - br i1 %"$gascmp_4150", label %"$out_of_gas_4151", label %"$have_gas_4152" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4124", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4125", align 1 + %"$gasrem_4126" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4127" = icmp ugt i64 1, %"$gasrem_4126" + br i1 %"$gascmp_4127", label %"$out_of_gas_4128", label %"$have_gas_4129" -"$out_of_gas_4151": ; preds = %entry +"$out_of_gas_4128": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_4152" + br label %"$have_gas_4129" -"$have_gas_4152": ; preds = %"$out_of_gas_4151", %entry - %"$consume_4153" = sub i64 %"$gasrem_4149", 1 - store i64 %"$consume_4153", i64* @_gasrem, align 8 +"$have_gas_4129": ; preds = %"$out_of_gas_4128", %entry + %"$consume_4130" = sub i64 %"$gasrem_4126", 1 + store i64 %"$consume_4130", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_4154" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4155" = icmp ugt i64 1, %"$gasrem_4154" - br i1 %"$gascmp_4155", label %"$out_of_gas_4156", label %"$have_gas_4157" + %"$gasrem_4131" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4132" = icmp ugt i64 1, %"$gasrem_4131" + br i1 %"$gascmp_4132", label %"$out_of_gas_4133", label %"$have_gas_4134" -"$out_of_gas_4156": ; preds = %"$have_gas_4152" +"$out_of_gas_4133": ; preds = %"$have_gas_4129" call void @_out_of_gas() - br label %"$have_gas_4157" + br label %"$have_gas_4134" -"$have_gas_4157": ; preds = %"$out_of_gas_4156", %"$have_gas_4152" - %"$consume_4158" = sub i64 %"$gasrem_4154", 1 - store i64 %"$consume_4158", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4159", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !439 - %"$gasrem_4160" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4161" = icmp ugt i64 1, %"$gasrem_4160" - br i1 %"$gascmp_4161", label %"$out_of_gas_4162", label %"$have_gas_4163" +"$have_gas_4134": ; preds = %"$out_of_gas_4133", %"$have_gas_4129" + %"$consume_4135" = sub i64 %"$gasrem_4131", 1 + store i64 %"$consume_4135", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4136", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !437 + %"$gasrem_4137" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4138" = icmp ugt i64 1, %"$gasrem_4137" + br i1 %"$gascmp_4138", label %"$out_of_gas_4139", label %"$have_gas_4140" -"$out_of_gas_4162": ; preds = %"$have_gas_4157" +"$out_of_gas_4139": ; preds = %"$have_gas_4134" call void @_out_of_gas() - br label %"$have_gas_4163" + br label %"$have_gas_4140" -"$have_gas_4163": ; preds = %"$out_of_gas_4162", %"$have_gas_4157" - %"$consume_4164" = sub i64 %"$gasrem_4160", 1 - store i64 %"$consume_4164", i64* @_gasrem, align 8 +"$have_gas_4140": ; preds = %"$out_of_gas_4139", %"$have_gas_4134" + %"$consume_4141" = sub i64 %"$gasrem_4137", 1 + store i64 %"$consume_4141", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_4165" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4166" = icmp ugt i64 1, %"$gasrem_4165" - br i1 %"$gascmp_4166", label %"$out_of_gas_4167", label %"$have_gas_4168" + %"$gasrem_4142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4143" = icmp ugt i64 1, %"$gasrem_4142" + br i1 %"$gascmp_4143", label %"$out_of_gas_4144", label %"$have_gas_4145" -"$out_of_gas_4167": ; preds = %"$have_gas_4163" +"$out_of_gas_4144": ; preds = %"$have_gas_4140" call void @_out_of_gas() - br label %"$have_gas_4168" + br label %"$have_gas_4145" -"$have_gas_4168": ; preds = %"$out_of_gas_4167", %"$have_gas_4163" - %"$consume_4169" = sub i64 %"$gasrem_4165", 1 - store i64 %"$consume_4169", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4170", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !440 - %"$gasrem_4171" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4172" = icmp ugt i64 1, %"$gasrem_4171" - br i1 %"$gascmp_4172", label %"$out_of_gas_4173", label %"$have_gas_4174" +"$have_gas_4145": ; preds = %"$out_of_gas_4144", %"$have_gas_4140" + %"$consume_4146" = sub i64 %"$gasrem_4142", 1 + store i64 %"$consume_4146", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4147", i32 0, i32 0), i32 5 }, %String* %key1a, align 8, !dbg !438 + %"$gasrem_4148" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4149" = icmp ugt i64 1, %"$gasrem_4148" + br i1 %"$gascmp_4149", label %"$out_of_gas_4150", label %"$have_gas_4151" -"$out_of_gas_4173": ; preds = %"$have_gas_4168" +"$out_of_gas_4150": ; preds = %"$have_gas_4145" call void @_out_of_gas() - br label %"$have_gas_4174" + br label %"$have_gas_4151" -"$have_gas_4174": ; preds = %"$out_of_gas_4173", %"$have_gas_4168" - %"$consume_4175" = sub i64 %"$gasrem_4171", 1 - store i64 %"$consume_4175", i64* @_gasrem, align 8 +"$have_gas_4151": ; preds = %"$out_of_gas_4150", %"$have_gas_4145" + %"$consume_4152" = sub i64 %"$gasrem_4148", 1 + store i64 %"$consume_4152", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_4176" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4177" = icmp ugt i64 1, %"$gasrem_4176" - br i1 %"$gascmp_4177", label %"$out_of_gas_4178", label %"$have_gas_4179" + %"$gasrem_4153" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4154" = icmp ugt i64 1, %"$gasrem_4153" + br i1 %"$gascmp_4154", label %"$out_of_gas_4155", label %"$have_gas_4156" -"$out_of_gas_4178": ; preds = %"$have_gas_4174" +"$out_of_gas_4155": ; preds = %"$have_gas_4151" call void @_out_of_gas() - br label %"$have_gas_4179" + br label %"$have_gas_4156" -"$have_gas_4179": ; preds = %"$out_of_gas_4178", %"$have_gas_4174" - %"$consume_4180" = sub i64 %"$gasrem_4176", 1 - store i64 %"$consume_4180", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4181", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !441 - %"$gasrem_4182" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4183" = icmp ugt i64 1, %"$gasrem_4182" - br i1 %"$gascmp_4183", label %"$out_of_gas_4184", label %"$have_gas_4185" +"$have_gas_4156": ; preds = %"$out_of_gas_4155", %"$have_gas_4151" + %"$consume_4157" = sub i64 %"$gasrem_4153", 1 + store i64 %"$consume_4157", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4158", i32 0, i32 0), i32 5 }, %String* %key2a, align 8, !dbg !439 + %"$gasrem_4159" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4160" = icmp ugt i64 1, %"$gasrem_4159" + br i1 %"$gascmp_4160", label %"$out_of_gas_4161", label %"$have_gas_4162" -"$out_of_gas_4184": ; preds = %"$have_gas_4179" +"$out_of_gas_4161": ; preds = %"$have_gas_4156" call void @_out_of_gas() - br label %"$have_gas_4185" + br label %"$have_gas_4162" -"$have_gas_4185": ; preds = %"$out_of_gas_4184", %"$have_gas_4179" - %"$consume_4186" = sub i64 %"$gasrem_4182", 1 - store i64 %"$consume_4186", i64* @_gasrem, align 8 +"$have_gas_4162": ; preds = %"$out_of_gas_4161", %"$have_gas_4156" + %"$consume_4163" = sub i64 %"$gasrem_4159", 1 + store i64 %"$consume_4163", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_4187" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4188" = icmp ugt i64 1, %"$gasrem_4187" - br i1 %"$gascmp_4188", label %"$out_of_gas_4189", label %"$have_gas_4190" + %"$gasrem_4164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4165" = icmp ugt i64 1, %"$gasrem_4164" + br i1 %"$gascmp_4165", label %"$out_of_gas_4166", label %"$have_gas_4167" -"$out_of_gas_4189": ; preds = %"$have_gas_4185" +"$out_of_gas_4166": ; preds = %"$have_gas_4162" call void @_out_of_gas() - br label %"$have_gas_4190" + br label %"$have_gas_4167" -"$have_gas_4190": ; preds = %"$out_of_gas_4189", %"$have_gas_4185" - %"$consume_4191" = sub i64 %"$gasrem_4187", 1 - store i64 %"$consume_4191", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4192", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !442 - %"$gasrem_4193" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4194" = icmp ugt i64 1, %"$gasrem_4193" - br i1 %"$gascmp_4194", label %"$out_of_gas_4195", label %"$have_gas_4196" +"$have_gas_4167": ; preds = %"$out_of_gas_4166", %"$have_gas_4162" + %"$consume_4168" = sub i64 %"$gasrem_4164", 1 + store i64 %"$consume_4168", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4169", i32 0, i32 0), i32 5 }, %String* %key1b, align 8, !dbg !440 + %"$gasrem_4170" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4171" = icmp ugt i64 1, %"$gasrem_4170" + br i1 %"$gascmp_4171", label %"$out_of_gas_4172", label %"$have_gas_4173" -"$out_of_gas_4195": ; preds = %"$have_gas_4190" +"$out_of_gas_4172": ; preds = %"$have_gas_4167" call void @_out_of_gas() - br label %"$have_gas_4196" + br label %"$have_gas_4173" -"$have_gas_4196": ; preds = %"$out_of_gas_4195", %"$have_gas_4190" - %"$consume_4197" = sub i64 %"$gasrem_4193", 1 - store i64 %"$consume_4197", i64* @_gasrem, align 8 +"$have_gas_4173": ; preds = %"$out_of_gas_4172", %"$have_gas_4167" + %"$consume_4174" = sub i64 %"$gasrem_4170", 1 + store i64 %"$consume_4174", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_4198" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4199" = icmp ugt i64 1, %"$gasrem_4198" - br i1 %"$gascmp_4199", label %"$out_of_gas_4200", label %"$have_gas_4201" + %"$gasrem_4175" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4176" = icmp ugt i64 1, %"$gasrem_4175" + br i1 %"$gascmp_4176", label %"$out_of_gas_4177", label %"$have_gas_4178" -"$out_of_gas_4200": ; preds = %"$have_gas_4196" +"$out_of_gas_4177": ; preds = %"$have_gas_4173" call void @_out_of_gas() - br label %"$have_gas_4201" + br label %"$have_gas_4178" -"$have_gas_4201": ; preds = %"$out_of_gas_4200", %"$have_gas_4196" - %"$consume_4202" = sub i64 %"$gasrem_4198", 1 - store i64 %"$consume_4202", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4203", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !443 - %"$gasrem_4204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4205" = icmp ugt i64 1, %"$gasrem_4204" - br i1 %"$gascmp_4205", label %"$out_of_gas_4206", label %"$have_gas_4207" +"$have_gas_4178": ; preds = %"$out_of_gas_4177", %"$have_gas_4173" + %"$consume_4179" = sub i64 %"$gasrem_4175", 1 + store i64 %"$consume_4179", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4180", i32 0, i32 0), i32 5 }, %String* %key2b, align 8, !dbg !441 + %"$gasrem_4181" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4182" = icmp ugt i64 1, %"$gasrem_4181" + br i1 %"$gascmp_4182", label %"$out_of_gas_4183", label %"$have_gas_4184" -"$out_of_gas_4206": ; preds = %"$have_gas_4201" +"$out_of_gas_4183": ; preds = %"$have_gas_4178" call void @_out_of_gas() - br label %"$have_gas_4207" + br label %"$have_gas_4184" -"$have_gas_4207": ; preds = %"$out_of_gas_4206", %"$have_gas_4201" - %"$consume_4208" = sub i64 %"$gasrem_4204", 1 - store i64 %"$consume_4208", i64* @_gasrem, align 8 +"$have_gas_4184": ; preds = %"$out_of_gas_4183", %"$have_gas_4178" + %"$consume_4185" = sub i64 %"$gasrem_4181", 1 + store i64 %"$consume_4185", i64* @_gasrem, align 8 %key1c = alloca %String, align 8 - %"$gasrem_4209" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4210" = icmp ugt i64 1, %"$gasrem_4209" - br i1 %"$gascmp_4210", label %"$out_of_gas_4211", label %"$have_gas_4212" + %"$gasrem_4186" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4187" = icmp ugt i64 1, %"$gasrem_4186" + br i1 %"$gascmp_4187", label %"$out_of_gas_4188", label %"$have_gas_4189" -"$out_of_gas_4211": ; preds = %"$have_gas_4207" +"$out_of_gas_4188": ; preds = %"$have_gas_4184" call void @_out_of_gas() - br label %"$have_gas_4212" + br label %"$have_gas_4189" -"$have_gas_4212": ; preds = %"$out_of_gas_4211", %"$have_gas_4207" - %"$consume_4213" = sub i64 %"$gasrem_4209", 1 - store i64 %"$consume_4213", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4214", i32 0, i32 0), i32 5 }, %String* %key1c, align 8, !dbg !444 - %"$gasrem_4215" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4216" = icmp ugt i64 1, %"$gasrem_4215" - br i1 %"$gascmp_4216", label %"$out_of_gas_4217", label %"$have_gas_4218" +"$have_gas_4189": ; preds = %"$out_of_gas_4188", %"$have_gas_4184" + %"$consume_4190" = sub i64 %"$gasrem_4186", 1 + store i64 %"$consume_4190", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4191", i32 0, i32 0), i32 5 }, %String* %key1c, align 8, !dbg !442 + %"$gasrem_4192" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4193" = icmp ugt i64 1, %"$gasrem_4192" + br i1 %"$gascmp_4193", label %"$out_of_gas_4194", label %"$have_gas_4195" -"$out_of_gas_4217": ; preds = %"$have_gas_4212" +"$out_of_gas_4194": ; preds = %"$have_gas_4189" call void @_out_of_gas() - br label %"$have_gas_4218" + br label %"$have_gas_4195" -"$have_gas_4218": ; preds = %"$out_of_gas_4217", %"$have_gas_4212" - %"$consume_4219" = sub i64 %"$gasrem_4215", 1 - store i64 %"$consume_4219", i64* @_gasrem, align 8 +"$have_gas_4195": ; preds = %"$out_of_gas_4194", %"$have_gas_4189" + %"$consume_4196" = sub i64 %"$gasrem_4192", 1 + store i64 %"$consume_4196", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_4220" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4221" = icmp ugt i64 1, %"$gasrem_4220" - br i1 %"$gascmp_4221", label %"$out_of_gas_4222", label %"$have_gas_4223" + %"$gasrem_4197" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4198" = icmp ugt i64 1, %"$gasrem_4197" + br i1 %"$gascmp_4198", label %"$out_of_gas_4199", label %"$have_gas_4200" -"$out_of_gas_4222": ; preds = %"$have_gas_4218" +"$out_of_gas_4199": ; preds = %"$have_gas_4195" call void @_out_of_gas() - br label %"$have_gas_4223" + br label %"$have_gas_4200" -"$have_gas_4223": ; preds = %"$out_of_gas_4222", %"$have_gas_4218" - %"$consume_4224" = sub i64 %"$gasrem_4220", 1 - store i64 %"$consume_4224", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4225", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !445 - %"$gasrem_4226" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4227" = icmp ugt i64 1, %"$gasrem_4226" - br i1 %"$gascmp_4227", label %"$out_of_gas_4228", label %"$have_gas_4229" +"$have_gas_4200": ; preds = %"$out_of_gas_4199", %"$have_gas_4195" + %"$consume_4201" = sub i64 %"$gasrem_4197", 1 + store i64 %"$consume_4201", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4202", i32 0, i32 0), i32 5 }, %String* %key2c, align 8, !dbg !443 + %"$gasrem_4203" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4204" = icmp ugt i64 1, %"$gasrem_4203" + br i1 %"$gascmp_4204", label %"$out_of_gas_4205", label %"$have_gas_4206" -"$out_of_gas_4228": ; preds = %"$have_gas_4223" +"$out_of_gas_4205": ; preds = %"$have_gas_4200" call void @_out_of_gas() - br label %"$have_gas_4229" + br label %"$have_gas_4206" -"$have_gas_4229": ; preds = %"$out_of_gas_4228", %"$have_gas_4223" - %"$consume_4230" = sub i64 %"$gasrem_4226", 1 - store i64 %"$consume_4230", i64* @_gasrem, align 8 +"$have_gas_4206": ; preds = %"$out_of_gas_4205", %"$have_gas_4200" + %"$consume_4207" = sub i64 %"$gasrem_4203", 1 + store i64 %"$consume_4207", i64* @_gasrem, align 8 %key1d = alloca %String, align 8 - %"$gasrem_4231" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4232" = icmp ugt i64 1, %"$gasrem_4231" - br i1 %"$gascmp_4232", label %"$out_of_gas_4233", label %"$have_gas_4234" + %"$gasrem_4208" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4209" = icmp ugt i64 1, %"$gasrem_4208" + br i1 %"$gascmp_4209", label %"$out_of_gas_4210", label %"$have_gas_4211" -"$out_of_gas_4233": ; preds = %"$have_gas_4229" +"$out_of_gas_4210": ; preds = %"$have_gas_4206" call void @_out_of_gas() - br label %"$have_gas_4234" + br label %"$have_gas_4211" -"$have_gas_4234": ; preds = %"$out_of_gas_4233", %"$have_gas_4229" - %"$consume_4235" = sub i64 %"$gasrem_4231", 1 - store i64 %"$consume_4235", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4236", i32 0, i32 0), i32 5 }, %String* %key1d, align 8, !dbg !446 - %"$gasrem_4237" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4238" = icmp ugt i64 1, %"$gasrem_4237" - br i1 %"$gascmp_4238", label %"$out_of_gas_4239", label %"$have_gas_4240" +"$have_gas_4211": ; preds = %"$out_of_gas_4210", %"$have_gas_4206" + %"$consume_4212" = sub i64 %"$gasrem_4208", 1 + store i64 %"$consume_4212", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4213", i32 0, i32 0), i32 5 }, %String* %key1d, align 8, !dbg !444 + %"$gasrem_4214" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4215" = icmp ugt i64 1, %"$gasrem_4214" + br i1 %"$gascmp_4215", label %"$out_of_gas_4216", label %"$have_gas_4217" -"$out_of_gas_4239": ; preds = %"$have_gas_4234" +"$out_of_gas_4216": ; preds = %"$have_gas_4211" call void @_out_of_gas() - br label %"$have_gas_4240" + br label %"$have_gas_4217" -"$have_gas_4240": ; preds = %"$out_of_gas_4239", %"$have_gas_4234" - %"$consume_4241" = sub i64 %"$gasrem_4237", 1 - store i64 %"$consume_4241", i64* @_gasrem, align 8 +"$have_gas_4217": ; preds = %"$out_of_gas_4216", %"$have_gas_4211" + %"$consume_4218" = sub i64 %"$gasrem_4214", 1 + store i64 %"$consume_4218", i64* @_gasrem, align 8 %key2d = alloca %String, align 8 - %"$gasrem_4242" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4243" = icmp ugt i64 1, %"$gasrem_4242" - br i1 %"$gascmp_4243", label %"$out_of_gas_4244", label %"$have_gas_4245" + %"$gasrem_4219" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4220" = icmp ugt i64 1, %"$gasrem_4219" + br i1 %"$gascmp_4220", label %"$out_of_gas_4221", label %"$have_gas_4222" -"$out_of_gas_4244": ; preds = %"$have_gas_4240" +"$out_of_gas_4221": ; preds = %"$have_gas_4217" call void @_out_of_gas() - br label %"$have_gas_4245" + br label %"$have_gas_4222" -"$have_gas_4245": ; preds = %"$out_of_gas_4244", %"$have_gas_4240" - %"$consume_4246" = sub i64 %"$gasrem_4242", 1 - store i64 %"$consume_4246", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4247", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !447 +"$have_gas_4222": ; preds = %"$out_of_gas_4221", %"$have_gas_4217" + %"$consume_4223" = sub i64 %"$gasrem_4219", 1 + store i64 %"$consume_4223", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4224", i32 0, i32 0), i32 5 }, %String* %key2d, align 8, !dbg !445 %t1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4248_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4248_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4248_salloc_load", i64 32) - %"$indices_buf_4248_salloc" = bitcast i8* %"$indices_buf_4248_salloc_salloc" to [32 x i8]* - %"$indices_buf_4248" = bitcast [32 x i8]* %"$indices_buf_4248_salloc" to i8* - %"$key1a_4249" = load %String, %String* %key1a, align 8 - %"$indices_gep_4250" = getelementptr i8, i8* %"$indices_buf_4248", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4250" to %String* - store %String %"$key1a_4249", %String* %indices_cast, align 8 - %"$key2a_4251" = load %String, %String* %key2a, align 8 - %"$indices_gep_4252" = getelementptr i8, i8* %"$indices_buf_4248", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_4252" to %String* - store %String %"$key2a_4251", %String* %indices_cast1, align 8 - %"$execptr_load_4254" = load i8*, i8** @_execptr, align 8 - %"$t1_call_4255" = call i8* @_fetch_field(i8* %"$execptr_load_4254", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4253", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_4248", i32 1), !dbg !448 - %"$t1_4256" = bitcast i8* %"$t1_call_4255" to %TName_Option_String* - store %TName_Option_String* %"$t1_4256", %TName_Option_String** %t1, align 8 - %"$t1_4257" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 - %"$$t1_4257_4258" = bitcast %TName_Option_String* %"$t1_4257" to i8* - %"$_literal_cost_call_4259" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$t1_4257_4258") - %"$gasadd_4260" = add i64 %"$_literal_cost_call_4259", 0 - %"$gasadd_4261" = add i64 %"$gasadd_4260", 2 - %"$gasrem_4262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4263" = icmp ugt i64 %"$gasadd_4261", %"$gasrem_4262" - br i1 %"$gascmp_4263", label %"$out_of_gas_4264", label %"$have_gas_4265" - -"$out_of_gas_4264": ; preds = %"$have_gas_4245" - call void @_out_of_gas() - br label %"$have_gas_4265" - -"$have_gas_4265": ; preds = %"$out_of_gas_4264", %"$have_gas_4245" - %"$consume_4266" = sub i64 %"$gasrem_4262", %"$gasadd_4261" - store i64 %"$consume_4266", i64* @_gasrem, align 8 + %"$indices_buf_4225_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4225_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4225_salloc_load", i64 32) + %"$indices_buf_4225_salloc" = bitcast i8* %"$indices_buf_4225_salloc_salloc" to [32 x i8]* + %"$indices_buf_4225" = bitcast [32 x i8]* %"$indices_buf_4225_salloc" to i8* + %"$key1a_4226" = load %String, %String* %key1a, align 8 + %"$indices_gep_4227" = getelementptr i8, i8* %"$indices_buf_4225", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4227" to %String* + store %String %"$key1a_4226", %String* %indices_cast, align 8 + %"$key2a_4228" = load %String, %String* %key2a, align 8 + %"$indices_gep_4229" = getelementptr i8, i8* %"$indices_buf_4225", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_4229" to %String* + store %String %"$key2a_4228", %String* %indices_cast1, align 8 + %"$execptr_load_4231" = load i8*, i8** @_execptr, align 8 + %"$t1_call_4232" = call i8* @_fetch_field(i8* %"$execptr_load_4231", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4230", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_4225", i32 1), !dbg !446 + %"$t1_4233" = bitcast i8* %"$t1_call_4232" to %TName_Option_String* + store %TName_Option_String* %"$t1_4233", %TName_Option_String** %t1, align 8 + %"$t1_4234" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 + %"$$t1_4234_4235" = bitcast %TName_Option_String* %"$t1_4234" to i8* + %"$_literal_cost_call_4236" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$t1_4234_4235") + %"$gasadd_4237" = add i64 %"$_literal_cost_call_4236", 0 + %"$gasadd_4238" = add i64 %"$gasadd_4237", 2 + %"$gasrem_4239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4240" = icmp ugt i64 %"$gasadd_4238", %"$gasrem_4239" + br i1 %"$gascmp_4240", label %"$out_of_gas_4241", label %"$have_gas_4242" + +"$out_of_gas_4241": ; preds = %"$have_gas_4222" + call void @_out_of_gas() + br label %"$have_gas_4242" + +"$have_gas_4242": ; preds = %"$out_of_gas_4241", %"$have_gas_4222" + %"$consume_4243" = sub i64 %"$gasrem_4239", %"$gasadd_4238" + store i64 %"$consume_4243", i64* @_gasrem, align 8 %t2 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4267_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4267_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4267_salloc_load", i64 32) - %"$indices_buf_4267_salloc" = bitcast i8* %"$indices_buf_4267_salloc_salloc" to [32 x i8]* - %"$indices_buf_4267" = bitcast [32 x i8]* %"$indices_buf_4267_salloc" to i8* - %"$key1b_4268" = load %String, %String* %key1b, align 8 - %"$indices_gep_4269" = getelementptr i8, i8* %"$indices_buf_4267", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_4269" to %String* - store %String %"$key1b_4268", %String* %indices_cast2, align 8 - %"$key2b_4270" = load %String, %String* %key2b, align 8 - %"$indices_gep_4271" = getelementptr i8, i8* %"$indices_buf_4267", i32 16 - %indices_cast3 = bitcast i8* %"$indices_gep_4271" to %String* - store %String %"$key2b_4270", %String* %indices_cast3, align 8 - %"$execptr_load_4273" = load i8*, i8** @_execptr, align 8 - %"$t2_call_4274" = call i8* @_fetch_field(i8* %"$execptr_load_4273", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4272", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_4267", i32 1), !dbg !449 - %"$t2_4275" = bitcast i8* %"$t2_call_4274" to %TName_Option_String* - store %TName_Option_String* %"$t2_4275", %TName_Option_String** %t2, align 8 - %"$t2_4276" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 - %"$$t2_4276_4277" = bitcast %TName_Option_String* %"$t2_4276" to i8* - %"$_literal_cost_call_4278" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$t2_4276_4277") - %"$gasadd_4279" = add i64 %"$_literal_cost_call_4278", 0 - %"$gasadd_4280" = add i64 %"$gasadd_4279", 2 - %"$gasrem_4281" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4282" = icmp ugt i64 %"$gasadd_4280", %"$gasrem_4281" - br i1 %"$gascmp_4282", label %"$out_of_gas_4283", label %"$have_gas_4284" - -"$out_of_gas_4283": ; preds = %"$have_gas_4265" - call void @_out_of_gas() - br label %"$have_gas_4284" - -"$have_gas_4284": ; preds = %"$out_of_gas_4283", %"$have_gas_4265" - %"$consume_4285" = sub i64 %"$gasrem_4281", %"$gasadd_4280" - store i64 %"$consume_4285", i64* @_gasrem, align 8 + %"$indices_buf_4244_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4244_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4244_salloc_load", i64 32) + %"$indices_buf_4244_salloc" = bitcast i8* %"$indices_buf_4244_salloc_salloc" to [32 x i8]* + %"$indices_buf_4244" = bitcast [32 x i8]* %"$indices_buf_4244_salloc" to i8* + %"$key1b_4245" = load %String, %String* %key1b, align 8 + %"$indices_gep_4246" = getelementptr i8, i8* %"$indices_buf_4244", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_4246" to %String* + store %String %"$key1b_4245", %String* %indices_cast2, align 8 + %"$key2b_4247" = load %String, %String* %key2b, align 8 + %"$indices_gep_4248" = getelementptr i8, i8* %"$indices_buf_4244", i32 16 + %indices_cast3 = bitcast i8* %"$indices_gep_4248" to %String* + store %String %"$key2b_4247", %String* %indices_cast3, align 8 + %"$execptr_load_4250" = load i8*, i8** @_execptr, align 8 + %"$t2_call_4251" = call i8* @_fetch_field(i8* %"$execptr_load_4250", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4249", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_4244", i32 1), !dbg !447 + %"$t2_4252" = bitcast i8* %"$t2_call_4251" to %TName_Option_String* + store %TName_Option_String* %"$t2_4252", %TName_Option_String** %t2, align 8 + %"$t2_4253" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 + %"$$t2_4253_4254" = bitcast %TName_Option_String* %"$t2_4253" to i8* + %"$_literal_cost_call_4255" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$t2_4253_4254") + %"$gasadd_4256" = add i64 %"$_literal_cost_call_4255", 0 + %"$gasadd_4257" = add i64 %"$gasadd_4256", 2 + %"$gasrem_4258" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4259" = icmp ugt i64 %"$gasadd_4257", %"$gasrem_4258" + br i1 %"$gascmp_4259", label %"$out_of_gas_4260", label %"$have_gas_4261" + +"$out_of_gas_4260": ; preds = %"$have_gas_4242" + call void @_out_of_gas() + br label %"$have_gas_4261" + +"$have_gas_4261": ; preds = %"$out_of_gas_4260", %"$have_gas_4242" + %"$consume_4262" = sub i64 %"$gasrem_4258", %"$gasadd_4257" + store i64 %"$consume_4262", i64* @_gasrem, align 8 %t3 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4286_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4286_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4286_salloc_load", i64 32) - %"$indices_buf_4286_salloc" = bitcast i8* %"$indices_buf_4286_salloc_salloc" to [32 x i8]* - %"$indices_buf_4286" = bitcast [32 x i8]* %"$indices_buf_4286_salloc" to i8* - %"$key1c_4287" = load %String, %String* %key1c, align 8 - %"$indices_gep_4288" = getelementptr i8, i8* %"$indices_buf_4286", i32 0 - %indices_cast4 = bitcast i8* %"$indices_gep_4288" to %String* - store %String %"$key1c_4287", %String* %indices_cast4, align 8 - %"$key2c_4289" = load %String, %String* %key2c, align 8 - %"$indices_gep_4290" = getelementptr i8, i8* %"$indices_buf_4286", i32 16 - %indices_cast5 = bitcast i8* %"$indices_gep_4290" to %String* - store %String %"$key2c_4289", %String* %indices_cast5, align 8 - %"$execptr_load_4292" = load i8*, i8** @_execptr, align 8 - %"$t3_call_4293" = call i8* @_fetch_field(i8* %"$execptr_load_4292", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4291", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_4286", i32 1), !dbg !450 - %"$t3_4294" = bitcast i8* %"$t3_call_4293" to %TName_Option_String* - store %TName_Option_String* %"$t3_4294", %TName_Option_String** %t3, align 8 - %"$t3_4295" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 - %"$$t3_4295_4296" = bitcast %TName_Option_String* %"$t3_4295" to i8* - %"$_literal_cost_call_4297" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$t3_4295_4296") - %"$gasadd_4298" = add i64 %"$_literal_cost_call_4297", 0 - %"$gasadd_4299" = add i64 %"$gasadd_4298", 2 - %"$gasrem_4300" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4301" = icmp ugt i64 %"$gasadd_4299", %"$gasrem_4300" - br i1 %"$gascmp_4301", label %"$out_of_gas_4302", label %"$have_gas_4303" - -"$out_of_gas_4302": ; preds = %"$have_gas_4284" - call void @_out_of_gas() - br label %"$have_gas_4303" - -"$have_gas_4303": ; preds = %"$out_of_gas_4302", %"$have_gas_4284" - %"$consume_4304" = sub i64 %"$gasrem_4300", %"$gasadd_4299" - store i64 %"$consume_4304", i64* @_gasrem, align 8 + %"$indices_buf_4263_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4263_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4263_salloc_load", i64 32) + %"$indices_buf_4263_salloc" = bitcast i8* %"$indices_buf_4263_salloc_salloc" to [32 x i8]* + %"$indices_buf_4263" = bitcast [32 x i8]* %"$indices_buf_4263_salloc" to i8* + %"$key1c_4264" = load %String, %String* %key1c, align 8 + %"$indices_gep_4265" = getelementptr i8, i8* %"$indices_buf_4263", i32 0 + %indices_cast4 = bitcast i8* %"$indices_gep_4265" to %String* + store %String %"$key1c_4264", %String* %indices_cast4, align 8 + %"$key2c_4266" = load %String, %String* %key2c, align 8 + %"$indices_gep_4267" = getelementptr i8, i8* %"$indices_buf_4263", i32 16 + %indices_cast5 = bitcast i8* %"$indices_gep_4267" to %String* + store %String %"$key2c_4266", %String* %indices_cast5, align 8 + %"$execptr_load_4269" = load i8*, i8** @_execptr, align 8 + %"$t3_call_4270" = call i8* @_fetch_field(i8* %"$execptr_load_4269", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4268", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_4263", i32 1), !dbg !448 + %"$t3_4271" = bitcast i8* %"$t3_call_4270" to %TName_Option_String* + store %TName_Option_String* %"$t3_4271", %TName_Option_String** %t3, align 8 + %"$t3_4272" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 + %"$$t3_4272_4273" = bitcast %TName_Option_String* %"$t3_4272" to i8* + %"$_literal_cost_call_4274" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$t3_4272_4273") + %"$gasadd_4275" = add i64 %"$_literal_cost_call_4274", 0 + %"$gasadd_4276" = add i64 %"$gasadd_4275", 2 + %"$gasrem_4277" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4278" = icmp ugt i64 %"$gasadd_4276", %"$gasrem_4277" + br i1 %"$gascmp_4278", label %"$out_of_gas_4279", label %"$have_gas_4280" + +"$out_of_gas_4279": ; preds = %"$have_gas_4261" + call void @_out_of_gas() + br label %"$have_gas_4280" + +"$have_gas_4280": ; preds = %"$out_of_gas_4279", %"$have_gas_4261" + %"$consume_4281" = sub i64 %"$gasrem_4277", %"$gasadd_4276" + store i64 %"$consume_4281", i64* @_gasrem, align 8 %t4 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4305_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4305_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4305_salloc_load", i64 32) - %"$indices_buf_4305_salloc" = bitcast i8* %"$indices_buf_4305_salloc_salloc" to [32 x i8]* - %"$indices_buf_4305" = bitcast [32 x i8]* %"$indices_buf_4305_salloc" to i8* - %"$key1d_4306" = load %String, %String* %key1d, align 8 - %"$indices_gep_4307" = getelementptr i8, i8* %"$indices_buf_4305", i32 0 - %indices_cast6 = bitcast i8* %"$indices_gep_4307" to %String* - store %String %"$key1d_4306", %String* %indices_cast6, align 8 - %"$key2d_4308" = load %String, %String* %key2d, align 8 - %"$indices_gep_4309" = getelementptr i8, i8* %"$indices_buf_4305", i32 16 - %indices_cast7 = bitcast i8* %"$indices_gep_4309" to %String* - store %String %"$key2d_4308", %String* %indices_cast7, align 8 - %"$execptr_load_4311" = load i8*, i8** @_execptr, align 8 - %"$t4_call_4312" = call i8* @_fetch_field(i8* %"$execptr_load_4311", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4310", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_4305", i32 1), !dbg !451 - %"$t4_4313" = bitcast i8* %"$t4_call_4312" to %TName_Option_String* - store %TName_Option_String* %"$t4_4313", %TName_Option_String** %t4, align 8 - %"$t4_4314" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 - %"$$t4_4314_4315" = bitcast %TName_Option_String* %"$t4_4314" to i8* - %"$_literal_cost_call_4316" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$t4_4314_4315") - %"$gasadd_4317" = add i64 %"$_literal_cost_call_4316", 0 - %"$gasadd_4318" = add i64 %"$gasadd_4317", 2 - %"$gasrem_4319" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4320" = icmp ugt i64 %"$gasadd_4318", %"$gasrem_4319" - br i1 %"$gascmp_4320", label %"$out_of_gas_4321", label %"$have_gas_4322" - -"$out_of_gas_4321": ; preds = %"$have_gas_4303" - call void @_out_of_gas() - br label %"$have_gas_4322" - -"$have_gas_4322": ; preds = %"$out_of_gas_4321", %"$have_gas_4303" - %"$consume_4323" = sub i64 %"$gasrem_4319", %"$gasadd_4318" - store i64 %"$consume_4323", i64* @_gasrem, align 8 - %"$gasrem_4324" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4325" = icmp ugt i64 1, %"$gasrem_4324" - br i1 %"$gascmp_4325", label %"$out_of_gas_4326", label %"$have_gas_4327" - -"$out_of_gas_4326": ; preds = %"$have_gas_4322" - call void @_out_of_gas() - br label %"$have_gas_4327" - -"$have_gas_4327": ; preds = %"$out_of_gas_4326", %"$have_gas_4322" - %"$consume_4328" = sub i64 %"$gasrem_4324", 1 - store i64 %"$consume_4328", i64* @_gasrem, align 8 + %"$indices_buf_4282_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4282_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4282_salloc_load", i64 32) + %"$indices_buf_4282_salloc" = bitcast i8* %"$indices_buf_4282_salloc_salloc" to [32 x i8]* + %"$indices_buf_4282" = bitcast [32 x i8]* %"$indices_buf_4282_salloc" to i8* + %"$key1d_4283" = load %String, %String* %key1d, align 8 + %"$indices_gep_4284" = getelementptr i8, i8* %"$indices_buf_4282", i32 0 + %indices_cast6 = bitcast i8* %"$indices_gep_4284" to %String* + store %String %"$key1d_4283", %String* %indices_cast6, align 8 + %"$key2d_4285" = load %String, %String* %key2d, align 8 + %"$indices_gep_4286" = getelementptr i8, i8* %"$indices_buf_4282", i32 16 + %indices_cast7 = bitcast i8* %"$indices_gep_4286" to %String* + store %String %"$key2d_4285", %String* %indices_cast7, align 8 + %"$execptr_load_4288" = load i8*, i8** @_execptr, align 8 + %"$t4_call_4289" = call i8* @_fetch_field(i8* %"$execptr_load_4288", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4287", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_4282", i32 1), !dbg !449 + %"$t4_4290" = bitcast i8* %"$t4_call_4289" to %TName_Option_String* + store %TName_Option_String* %"$t4_4290", %TName_Option_String** %t4, align 8 + %"$t4_4291" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 + %"$$t4_4291_4292" = bitcast %TName_Option_String* %"$t4_4291" to i8* + %"$_literal_cost_call_4293" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$t4_4291_4292") + %"$gasadd_4294" = add i64 %"$_literal_cost_call_4293", 0 + %"$gasadd_4295" = add i64 %"$gasadd_4294", 2 + %"$gasrem_4296" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4297" = icmp ugt i64 %"$gasadd_4295", %"$gasrem_4296" + br i1 %"$gascmp_4297", label %"$out_of_gas_4298", label %"$have_gas_4299" + +"$out_of_gas_4298": ; preds = %"$have_gas_4280" + call void @_out_of_gas() + br label %"$have_gas_4299" + +"$have_gas_4299": ; preds = %"$out_of_gas_4298", %"$have_gas_4280" + %"$consume_4300" = sub i64 %"$gasrem_4296", %"$gasadd_4295" + store i64 %"$consume_4300", i64* @_gasrem, align 8 + %"$gasrem_4301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4302" = icmp ugt i64 1, %"$gasrem_4301" + br i1 %"$gascmp_4302", label %"$out_of_gas_4303", label %"$have_gas_4304" + +"$out_of_gas_4303": ; preds = %"$have_gas_4299" + call void @_out_of_gas() + br label %"$have_gas_4304" + +"$have_gas_4304": ; preds = %"$out_of_gas_4303", %"$have_gas_4299" + %"$consume_4305" = sub i64 %"$gasrem_4301", 1 + store i64 %"$consume_4305", i64* @_gasrem, align 8 %v1 = alloca %String, align 8 - %"$gasrem_4329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4330" = icmp ugt i64 1, %"$gasrem_4329" - br i1 %"$gascmp_4330", label %"$out_of_gas_4331", label %"$have_gas_4332" + %"$gasrem_4306" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4307" = icmp ugt i64 1, %"$gasrem_4306" + br i1 %"$gascmp_4307", label %"$out_of_gas_4308", label %"$have_gas_4309" -"$out_of_gas_4331": ; preds = %"$have_gas_4327" +"$out_of_gas_4308": ; preds = %"$have_gas_4304" call void @_out_of_gas() - br label %"$have_gas_4332" + br label %"$have_gas_4309" -"$have_gas_4332": ; preds = %"$out_of_gas_4331", %"$have_gas_4327" - %"$consume_4333" = sub i64 %"$gasrem_4329", 1 - store i64 %"$consume_4333", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4334", i32 0, i32 0), i32 3 }, %String* %v1, align 8, !dbg !452 - %"$gasrem_4335" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4336" = icmp ugt i64 1, %"$gasrem_4335" - br i1 %"$gascmp_4336", label %"$out_of_gas_4337", label %"$have_gas_4338" +"$have_gas_4309": ; preds = %"$out_of_gas_4308", %"$have_gas_4304" + %"$consume_4310" = sub i64 %"$gasrem_4306", 1 + store i64 %"$consume_4310", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4311", i32 0, i32 0), i32 3 }, %String* %v1, align 8, !dbg !450 + %"$gasrem_4312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4313" = icmp ugt i64 1, %"$gasrem_4312" + br i1 %"$gascmp_4313", label %"$out_of_gas_4314", label %"$have_gas_4315" -"$out_of_gas_4337": ; preds = %"$have_gas_4332" +"$out_of_gas_4314": ; preds = %"$have_gas_4309" call void @_out_of_gas() - br label %"$have_gas_4338" + br label %"$have_gas_4315" -"$have_gas_4338": ; preds = %"$out_of_gas_4337", %"$have_gas_4332" - %"$consume_4339" = sub i64 %"$gasrem_4335", 1 - store i64 %"$consume_4339", i64* @_gasrem, align 8 +"$have_gas_4315": ; preds = %"$out_of_gas_4314", %"$have_gas_4309" + %"$consume_4316" = sub i64 %"$gasrem_4312", 1 + store i64 %"$consume_4316", i64* @_gasrem, align 8 %v2 = alloca %String, align 8 - %"$gasrem_4340" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4341" = icmp ugt i64 1, %"$gasrem_4340" - br i1 %"$gascmp_4341", label %"$out_of_gas_4342", label %"$have_gas_4343" + %"$gasrem_4317" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4318" = icmp ugt i64 1, %"$gasrem_4317" + br i1 %"$gascmp_4318", label %"$out_of_gas_4319", label %"$have_gas_4320" -"$out_of_gas_4342": ; preds = %"$have_gas_4338" +"$out_of_gas_4319": ; preds = %"$have_gas_4315" call void @_out_of_gas() - br label %"$have_gas_4343" + br label %"$have_gas_4320" -"$have_gas_4343": ; preds = %"$out_of_gas_4342", %"$have_gas_4338" - %"$consume_4344" = sub i64 %"$gasrem_4340", 1 - store i64 %"$consume_4344", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4345", i32 0, i32 0), i32 3 }, %String* %v2, align 8, !dbg !453 - %"$gasrem_4346" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4347" = icmp ugt i64 1, %"$gasrem_4346" - br i1 %"$gascmp_4347", label %"$out_of_gas_4348", label %"$have_gas_4349" +"$have_gas_4320": ; preds = %"$out_of_gas_4319", %"$have_gas_4315" + %"$consume_4321" = sub i64 %"$gasrem_4317", 1 + store i64 %"$consume_4321", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4322", i32 0, i32 0), i32 3 }, %String* %v2, align 8, !dbg !451 + %"$gasrem_4323" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4324" = icmp ugt i64 1, %"$gasrem_4323" + br i1 %"$gascmp_4324", label %"$out_of_gas_4325", label %"$have_gas_4326" -"$out_of_gas_4348": ; preds = %"$have_gas_4343" +"$out_of_gas_4325": ; preds = %"$have_gas_4320" call void @_out_of_gas() - br label %"$have_gas_4349" + br label %"$have_gas_4326" -"$have_gas_4349": ; preds = %"$out_of_gas_4348", %"$have_gas_4343" - %"$consume_4350" = sub i64 %"$gasrem_4346", 1 - store i64 %"$consume_4350", i64* @_gasrem, align 8 +"$have_gas_4326": ; preds = %"$out_of_gas_4325", %"$have_gas_4320" + %"$consume_4327" = sub i64 %"$gasrem_4323", 1 + store i64 %"$consume_4327", i64* @_gasrem, align 8 %v3 = alloca %String, align 8 - %"$gasrem_4351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4352" = icmp ugt i64 1, %"$gasrem_4351" - br i1 %"$gascmp_4352", label %"$out_of_gas_4353", label %"$have_gas_4354" + %"$gasrem_4328" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4329" = icmp ugt i64 1, %"$gasrem_4328" + br i1 %"$gascmp_4329", label %"$out_of_gas_4330", label %"$have_gas_4331" -"$out_of_gas_4353": ; preds = %"$have_gas_4349" +"$out_of_gas_4330": ; preds = %"$have_gas_4326" call void @_out_of_gas() - br label %"$have_gas_4354" + br label %"$have_gas_4331" -"$have_gas_4354": ; preds = %"$out_of_gas_4353", %"$have_gas_4349" - %"$consume_4355" = sub i64 %"$gasrem_4351", 1 - store i64 %"$consume_4355", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4356", i32 0, i32 0), i32 3 }, %String* %v3, align 8, !dbg !454 - %"$gasrem_4357" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4358" = icmp ugt i64 1, %"$gasrem_4357" - br i1 %"$gascmp_4358", label %"$out_of_gas_4359", label %"$have_gas_4360" +"$have_gas_4331": ; preds = %"$out_of_gas_4330", %"$have_gas_4326" + %"$consume_4332" = sub i64 %"$gasrem_4328", 1 + store i64 %"$consume_4332", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4333", i32 0, i32 0), i32 3 }, %String* %v3, align 8, !dbg !452 + %"$gasrem_4334" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4335" = icmp ugt i64 1, %"$gasrem_4334" + br i1 %"$gascmp_4335", label %"$out_of_gas_4336", label %"$have_gas_4337" -"$out_of_gas_4359": ; preds = %"$have_gas_4354" +"$out_of_gas_4336": ; preds = %"$have_gas_4331" call void @_out_of_gas() - br label %"$have_gas_4360" + br label %"$have_gas_4337" -"$have_gas_4360": ; preds = %"$out_of_gas_4359", %"$have_gas_4354" - %"$consume_4361" = sub i64 %"$gasrem_4357", 1 - store i64 %"$consume_4361", i64* @_gasrem, align 8 +"$have_gas_4337": ; preds = %"$out_of_gas_4336", %"$have_gas_4331" + %"$consume_4338" = sub i64 %"$gasrem_4334", 1 + store i64 %"$consume_4338", i64* @_gasrem, align 8 %v4 = alloca %String, align 8 - %"$gasrem_4362" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4363" = icmp ugt i64 1, %"$gasrem_4362" - br i1 %"$gascmp_4363", label %"$out_of_gas_4364", label %"$have_gas_4365" + %"$gasrem_4339" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4340" = icmp ugt i64 1, %"$gasrem_4339" + br i1 %"$gascmp_4340", label %"$out_of_gas_4341", label %"$have_gas_4342" -"$out_of_gas_4364": ; preds = %"$have_gas_4360" +"$out_of_gas_4341": ; preds = %"$have_gas_4337" call void @_out_of_gas() - br label %"$have_gas_4365" + br label %"$have_gas_4342" -"$have_gas_4365": ; preds = %"$out_of_gas_4364", %"$have_gas_4360" - %"$consume_4366" = sub i64 %"$gasrem_4362", 1 - store i64 %"$consume_4366", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4367", i32 0, i32 0), i32 3 }, %String* %v4, align 8, !dbg !455 - %"$gasrem_4368" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4369" = icmp ugt i64 1, %"$gasrem_4368" - br i1 %"$gascmp_4369", label %"$out_of_gas_4370", label %"$have_gas_4371" +"$have_gas_4342": ; preds = %"$out_of_gas_4341", %"$have_gas_4337" + %"$consume_4343" = sub i64 %"$gasrem_4339", 1 + store i64 %"$consume_4343", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4344", i32 0, i32 0), i32 3 }, %String* %v4, align 8, !dbg !453 + %"$gasrem_4345" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4346" = icmp ugt i64 1, %"$gasrem_4345" + br i1 %"$gascmp_4346", label %"$out_of_gas_4347", label %"$have_gas_4348" -"$out_of_gas_4370": ; preds = %"$have_gas_4365" +"$out_of_gas_4347": ; preds = %"$have_gas_4342" call void @_out_of_gas() - br label %"$have_gas_4371" + br label %"$have_gas_4348" -"$have_gas_4371": ; preds = %"$out_of_gas_4370", %"$have_gas_4365" - %"$consume_4372" = sub i64 %"$gasrem_4368", 1 - store i64 %"$consume_4372", i64* @_gasrem, align 8 +"$have_gas_4348": ; preds = %"$out_of_gas_4347", %"$have_gas_4342" + %"$consume_4349" = sub i64 %"$gasrem_4345", 1 + store i64 %"$consume_4349", i64* @_gasrem, align 8 %b1 = alloca %TName_Bool*, align 8 + %"$gasrem_4350" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4351" = icmp ugt i64 2, %"$gasrem_4350" + br i1 %"$gascmp_4351", label %"$out_of_gas_4352", label %"$have_gas_4353" + +"$out_of_gas_4352": ; preds = %"$have_gas_4348" + call void @_out_of_gas() + br label %"$have_gas_4353" + +"$have_gas_4353": ; preds = %"$out_of_gas_4352", %"$have_gas_4348" + %"$consume_4354" = sub i64 %"$gasrem_4350", 2 + store i64 %"$consume_4354", i64* @_gasrem, align 8 + %"$t1_4356" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 + %"$t1_tag_4357" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t1_4356", i32 0, i32 0 + %"$t1_tag_4358" = load i8, i8* %"$t1_tag_4357", align 1 + switch i8 %"$t1_tag_4358", label %"$empty_default_4359" [ + i8 0, label %"$Some_4360" + i8 1, label %"$None_4383" + ], !dbg !454 + +"$Some_4360": ; preds = %"$have_gas_4353" + %"$t1_4361" = bitcast %TName_Option_String* %"$t1_4356" to %CName_Some_String* + %"$t1v_gep_4362" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t1_4361", i32 0, i32 1 + %"$t1v_load_4363" = load %String, %String* %"$t1v_gep_4362", align 8 + %t1v = alloca %String, align 8 + store %String %"$t1v_load_4363", %String* %t1v, align 8 + %"$_literal_cost_t1v_4364" = alloca %String, align 8 + %"$t1v_4365" = load %String, %String* %t1v, align 8 + store %String %"$t1v_4365", %String* %"$_literal_cost_t1v_4364", align 8 + %"$$_literal_cost_t1v_4364_4366" = bitcast %String* %"$_literal_cost_t1v_4364" to i8* + %"$_literal_cost_call_4367" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_t1v_4364_4366") + %"$_literal_cost_v1_4368" = alloca %String, align 8 + %"$v1_4369" = load %String, %String* %v1, align 8 + store %String %"$v1_4369", %String* %"$_literal_cost_v1_4368", align 8 + %"$$_literal_cost_v1_4368_4370" = bitcast %String* %"$_literal_cost_v1_4368" to i8* + %"$_literal_cost_call_4371" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v1_4368_4370") + %"$gasmin_4372" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4367", i64 %"$_literal_cost_call_4371") %"$gasrem_4373" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4374" = icmp ugt i64 2, %"$gasrem_4373" + %"$gascmp_4374" = icmp ugt i64 %"$gasmin_4372", %"$gasrem_4373" br i1 %"$gascmp_4374", label %"$out_of_gas_4375", label %"$have_gas_4376" -"$out_of_gas_4375": ; preds = %"$have_gas_4371" +"$out_of_gas_4375": ; preds = %"$Some_4360" call void @_out_of_gas() br label %"$have_gas_4376" -"$have_gas_4376": ; preds = %"$out_of_gas_4375", %"$have_gas_4371" - %"$consume_4377" = sub i64 %"$gasrem_4373", 2 +"$have_gas_4376": ; preds = %"$out_of_gas_4375", %"$Some_4360" + %"$consume_4377" = sub i64 %"$gasrem_4373", %"$gasmin_4372" store i64 %"$consume_4377", i64* @_gasrem, align 8 - %"$t1_4379" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 - %"$t1_tag_4380" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t1_4379", i32 0, i32 0 - %"$t1_tag_4381" = load i8, i8* %"$t1_tag_4380", align 1 - switch i8 %"$t1_tag_4381", label %"$empty_default_4382" [ - i8 0, label %"$Some_4383" - i8 1, label %"$None_4406" - ], !dbg !456 - -"$Some_4383": ; preds = %"$have_gas_4376" - %"$t1_4384" = bitcast %TName_Option_String* %"$t1_4379" to %CName_Some_String* - %"$t1v_gep_4385" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t1_4384", i32 0, i32 1 - %"$t1v_load_4386" = load %String, %String* %"$t1v_gep_4385", align 8 - %t1v = alloca %String, align 8 - store %String %"$t1v_load_4386", %String* %t1v, align 8 - %"$_literal_cost_t1v_4387" = alloca %String, align 8 - %"$t1v_4388" = load %String, %String* %t1v, align 8 - store %String %"$t1v_4388", %String* %"$_literal_cost_t1v_4387", align 8 - %"$$_literal_cost_t1v_4387_4389" = bitcast %String* %"$_literal_cost_t1v_4387" to i8* - %"$_literal_cost_call_4390" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_t1v_4387_4389") - %"$_literal_cost_v1_4391" = alloca %String, align 8 - %"$v1_4392" = load %String, %String* %v1, align 8 - store %String %"$v1_4392", %String* %"$_literal_cost_v1_4391", align 8 - %"$$_literal_cost_v1_4391_4393" = bitcast %String* %"$_literal_cost_v1_4391" to i8* - %"$_literal_cost_call_4394" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v1_4391_4393") - %"$gasmin_4395" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4390", i64 %"$_literal_cost_call_4394") - %"$gasrem_4396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4397" = icmp ugt i64 %"$gasmin_4395", %"$gasrem_4396" - br i1 %"$gascmp_4397", label %"$out_of_gas_4398", label %"$have_gas_4399" - -"$out_of_gas_4398": ; preds = %"$Some_4383" - call void @_out_of_gas() - br label %"$have_gas_4399" - -"$have_gas_4399": ; preds = %"$out_of_gas_4398", %"$Some_4383" - %"$consume_4400" = sub i64 %"$gasrem_4396", %"$gasmin_4395" - store i64 %"$consume_4400", i64* @_gasrem, align 8 - %"$execptr_load_4401" = load i8*, i8** @_execptr, align 8 - %"$t1v_4402" = load %String, %String* %t1v, align 8 - %"$v1_4403" = load %String, %String* %v1, align 8 - %"$eq_call_4404" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4401", %String %"$t1v_4402", %String %"$v1_4403"), !dbg !457 - store %TName_Bool* %"$eq_call_4404", %TName_Bool** %b1, align 8, !dbg !457 - br label %"$matchsucc_4378" - -"$None_4406": ; preds = %"$have_gas_4376" - %"$t1_4407" = bitcast %TName_Option_String* %"$t1_4379" to %CName_None_String* - %"$gasrem_4408" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4409" = icmp ugt i64 1, %"$gasrem_4408" - br i1 %"$gascmp_4409", label %"$out_of_gas_4410", label %"$have_gas_4411" - -"$out_of_gas_4410": ; preds = %"$None_4406" - call void @_out_of_gas() - br label %"$have_gas_4411" - -"$have_gas_4411": ; preds = %"$out_of_gas_4410", %"$None_4406" - %"$consume_4412" = sub i64 %"$gasrem_4408", 1 - store i64 %"$consume_4412", i64* @_gasrem, align 8 - %"$adtval_4413_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4413_salloc" = call i8* @_salloc(i8* %"$adtval_4413_load", i64 1) - %"$adtval_4413" = bitcast i8* %"$adtval_4413_salloc" to %CName_False* - %"$adtgep_4414" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4413", i32 0, i32 0 - store i8 1, i8* %"$adtgep_4414", align 1 - %"$adtptr_4415" = bitcast %CName_False* %"$adtval_4413" to %TName_Bool* - store %TName_Bool* %"$adtptr_4415", %TName_Bool** %b1, align 8, !dbg !460 - br label %"$matchsucc_4378" - -"$empty_default_4382": ; preds = %"$have_gas_4376" - br label %"$matchsucc_4378" - -"$matchsucc_4378": ; preds = %"$have_gas_4411", %"$have_gas_4399", %"$empty_default_4382" - %"$gasrem_4416" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4417" = icmp ugt i64 1, %"$gasrem_4416" - br i1 %"$gascmp_4417", label %"$out_of_gas_4418", label %"$have_gas_4419" - -"$out_of_gas_4418": ; preds = %"$matchsucc_4378" - call void @_out_of_gas() - br label %"$have_gas_4419" - -"$have_gas_4419": ; preds = %"$out_of_gas_4418", %"$matchsucc_4378" - %"$consume_4420" = sub i64 %"$gasrem_4416", 1 - store i64 %"$consume_4420", i64* @_gasrem, align 8 + %"$execptr_load_4378" = load i8*, i8** @_execptr, align 8 + %"$t1v_4379" = load %String, %String* %t1v, align 8 + %"$v1_4380" = load %String, %String* %v1, align 8 + %"$eq_call_4381" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4378", %String %"$t1v_4379", %String %"$v1_4380"), !dbg !455 + store %TName_Bool* %"$eq_call_4381", %TName_Bool** %b1, align 8, !dbg !455 + br label %"$matchsucc_4355" + +"$None_4383": ; preds = %"$have_gas_4353" + %"$t1_4384" = bitcast %TName_Option_String* %"$t1_4356" to %CName_None_String* + %"$gasrem_4385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4386" = icmp ugt i64 1, %"$gasrem_4385" + br i1 %"$gascmp_4386", label %"$out_of_gas_4387", label %"$have_gas_4388" + +"$out_of_gas_4387": ; preds = %"$None_4383" + call void @_out_of_gas() + br label %"$have_gas_4388" + +"$have_gas_4388": ; preds = %"$out_of_gas_4387", %"$None_4383" + %"$consume_4389" = sub i64 %"$gasrem_4385", 1 + store i64 %"$consume_4389", i64* @_gasrem, align 8 + %"$adtval_4390_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4390_salloc" = call i8* @_salloc(i8* %"$adtval_4390_load", i64 1) + %"$adtval_4390" = bitcast i8* %"$adtval_4390_salloc" to %CName_False* + %"$adtgep_4391" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4390", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4391", align 1 + %"$adtptr_4392" = bitcast %CName_False* %"$adtval_4390" to %TName_Bool* + store %TName_Bool* %"$adtptr_4392", %TName_Bool** %b1, align 8, !dbg !458 + br label %"$matchsucc_4355" + +"$empty_default_4359": ; preds = %"$have_gas_4353" + br label %"$matchsucc_4355" + +"$matchsucc_4355": ; preds = %"$have_gas_4388", %"$have_gas_4376", %"$empty_default_4359" + %"$gasrem_4393" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4394" = icmp ugt i64 1, %"$gasrem_4393" + br i1 %"$gascmp_4394", label %"$out_of_gas_4395", label %"$have_gas_4396" + +"$out_of_gas_4395": ; preds = %"$matchsucc_4355" + call void @_out_of_gas() + br label %"$have_gas_4396" + +"$have_gas_4396": ; preds = %"$out_of_gas_4395", %"$matchsucc_4355" + %"$consume_4397" = sub i64 %"$gasrem_4393", 1 + store i64 %"$consume_4397", i64* @_gasrem, align 8 %b2 = alloca %TName_Bool*, align 8 + %"$gasrem_4398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4399" = icmp ugt i64 2, %"$gasrem_4398" + br i1 %"$gascmp_4399", label %"$out_of_gas_4400", label %"$have_gas_4401" + +"$out_of_gas_4400": ; preds = %"$have_gas_4396" + call void @_out_of_gas() + br label %"$have_gas_4401" + +"$have_gas_4401": ; preds = %"$out_of_gas_4400", %"$have_gas_4396" + %"$consume_4402" = sub i64 %"$gasrem_4398", 2 + store i64 %"$consume_4402", i64* @_gasrem, align 8 + %"$t2_4404" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 + %"$t2_tag_4405" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t2_4404", i32 0, i32 0 + %"$t2_tag_4406" = load i8, i8* %"$t2_tag_4405", align 1 + switch i8 %"$t2_tag_4406", label %"$empty_default_4407" [ + i8 0, label %"$Some_4408" + i8 1, label %"$None_4431" + ], !dbg !460 + +"$Some_4408": ; preds = %"$have_gas_4401" + %"$t2_4409" = bitcast %TName_Option_String* %"$t2_4404" to %CName_Some_String* + %"$t2v_gep_4410" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t2_4409", i32 0, i32 1 + %"$t2v_load_4411" = load %String, %String* %"$t2v_gep_4410", align 8 + %t2v = alloca %String, align 8 + store %String %"$t2v_load_4411", %String* %t2v, align 8 + %"$_literal_cost_t2v_4412" = alloca %String, align 8 + %"$t2v_4413" = load %String, %String* %t2v, align 8 + store %String %"$t2v_4413", %String* %"$_literal_cost_t2v_4412", align 8 + %"$$_literal_cost_t2v_4412_4414" = bitcast %String* %"$_literal_cost_t2v_4412" to i8* + %"$_literal_cost_call_4415" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_t2v_4412_4414") + %"$_literal_cost_v2_4416" = alloca %String, align 8 + %"$v2_4417" = load %String, %String* %v2, align 8 + store %String %"$v2_4417", %String* %"$_literal_cost_v2_4416", align 8 + %"$$_literal_cost_v2_4416_4418" = bitcast %String* %"$_literal_cost_v2_4416" to i8* + %"$_literal_cost_call_4419" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v2_4416_4418") + %"$gasmin_4420" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4415", i64 %"$_literal_cost_call_4419") %"$gasrem_4421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4422" = icmp ugt i64 2, %"$gasrem_4421" + %"$gascmp_4422" = icmp ugt i64 %"$gasmin_4420", %"$gasrem_4421" br i1 %"$gascmp_4422", label %"$out_of_gas_4423", label %"$have_gas_4424" -"$out_of_gas_4423": ; preds = %"$have_gas_4419" +"$out_of_gas_4423": ; preds = %"$Some_4408" call void @_out_of_gas() br label %"$have_gas_4424" -"$have_gas_4424": ; preds = %"$out_of_gas_4423", %"$have_gas_4419" - %"$consume_4425" = sub i64 %"$gasrem_4421", 2 +"$have_gas_4424": ; preds = %"$out_of_gas_4423", %"$Some_4408" + %"$consume_4425" = sub i64 %"$gasrem_4421", %"$gasmin_4420" store i64 %"$consume_4425", i64* @_gasrem, align 8 - %"$t2_4427" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 - %"$t2_tag_4428" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t2_4427", i32 0, i32 0 - %"$t2_tag_4429" = load i8, i8* %"$t2_tag_4428", align 1 - switch i8 %"$t2_tag_4429", label %"$empty_default_4430" [ - i8 0, label %"$Some_4431" - i8 1, label %"$None_4454" - ], !dbg !462 - -"$Some_4431": ; preds = %"$have_gas_4424" - %"$t2_4432" = bitcast %TName_Option_String* %"$t2_4427" to %CName_Some_String* - %"$t2v_gep_4433" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t2_4432", i32 0, i32 1 - %"$t2v_load_4434" = load %String, %String* %"$t2v_gep_4433", align 8 - %t2v = alloca %String, align 8 - store %String %"$t2v_load_4434", %String* %t2v, align 8 - %"$_literal_cost_t2v_4435" = alloca %String, align 8 - %"$t2v_4436" = load %String, %String* %t2v, align 8 - store %String %"$t2v_4436", %String* %"$_literal_cost_t2v_4435", align 8 - %"$$_literal_cost_t2v_4435_4437" = bitcast %String* %"$_literal_cost_t2v_4435" to i8* - %"$_literal_cost_call_4438" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_t2v_4435_4437") - %"$_literal_cost_v2_4439" = alloca %String, align 8 - %"$v2_4440" = load %String, %String* %v2, align 8 - store %String %"$v2_4440", %String* %"$_literal_cost_v2_4439", align 8 - %"$$_literal_cost_v2_4439_4441" = bitcast %String* %"$_literal_cost_v2_4439" to i8* - %"$_literal_cost_call_4442" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v2_4439_4441") - %"$gasmin_4443" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4438", i64 %"$_literal_cost_call_4442") - %"$gasrem_4444" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4445" = icmp ugt i64 %"$gasmin_4443", %"$gasrem_4444" - br i1 %"$gascmp_4445", label %"$out_of_gas_4446", label %"$have_gas_4447" - -"$out_of_gas_4446": ; preds = %"$Some_4431" - call void @_out_of_gas() - br label %"$have_gas_4447" - -"$have_gas_4447": ; preds = %"$out_of_gas_4446", %"$Some_4431" - %"$consume_4448" = sub i64 %"$gasrem_4444", %"$gasmin_4443" - store i64 %"$consume_4448", i64* @_gasrem, align 8 - %"$execptr_load_4449" = load i8*, i8** @_execptr, align 8 - %"$t2v_4450" = load %String, %String* %t2v, align 8 - %"$v2_4451" = load %String, %String* %v2, align 8 - %"$eq_call_4452" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4449", %String %"$t2v_4450", %String %"$v2_4451"), !dbg !463 - store %TName_Bool* %"$eq_call_4452", %TName_Bool** %b2, align 8, !dbg !463 - br label %"$matchsucc_4426" - -"$None_4454": ; preds = %"$have_gas_4424" - %"$t2_4455" = bitcast %TName_Option_String* %"$t2_4427" to %CName_None_String* - %"$gasrem_4456" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4457" = icmp ugt i64 1, %"$gasrem_4456" - br i1 %"$gascmp_4457", label %"$out_of_gas_4458", label %"$have_gas_4459" - -"$out_of_gas_4458": ; preds = %"$None_4454" - call void @_out_of_gas() - br label %"$have_gas_4459" - -"$have_gas_4459": ; preds = %"$out_of_gas_4458", %"$None_4454" - %"$consume_4460" = sub i64 %"$gasrem_4456", 1 - store i64 %"$consume_4460", i64* @_gasrem, align 8 - %"$adtval_4461_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4461_salloc" = call i8* @_salloc(i8* %"$adtval_4461_load", i64 1) - %"$adtval_4461" = bitcast i8* %"$adtval_4461_salloc" to %CName_False* - %"$adtgep_4462" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4461", i32 0, i32 0 - store i8 1, i8* %"$adtgep_4462", align 1 - %"$adtptr_4463" = bitcast %CName_False* %"$adtval_4461" to %TName_Bool* - store %TName_Bool* %"$adtptr_4463", %TName_Bool** %b2, align 8, !dbg !466 - br label %"$matchsucc_4426" - -"$empty_default_4430": ; preds = %"$have_gas_4424" - br label %"$matchsucc_4426" - -"$matchsucc_4426": ; preds = %"$have_gas_4459", %"$have_gas_4447", %"$empty_default_4430" - %"$gasrem_4464" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4465" = icmp ugt i64 1, %"$gasrem_4464" - br i1 %"$gascmp_4465", label %"$out_of_gas_4466", label %"$have_gas_4467" - -"$out_of_gas_4466": ; preds = %"$matchsucc_4426" - call void @_out_of_gas() - br label %"$have_gas_4467" - -"$have_gas_4467": ; preds = %"$out_of_gas_4466", %"$matchsucc_4426" - %"$consume_4468" = sub i64 %"$gasrem_4464", 1 - store i64 %"$consume_4468", i64* @_gasrem, align 8 + %"$execptr_load_4426" = load i8*, i8** @_execptr, align 8 + %"$t2v_4427" = load %String, %String* %t2v, align 8 + %"$v2_4428" = load %String, %String* %v2, align 8 + %"$eq_call_4429" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4426", %String %"$t2v_4427", %String %"$v2_4428"), !dbg !461 + store %TName_Bool* %"$eq_call_4429", %TName_Bool** %b2, align 8, !dbg !461 + br label %"$matchsucc_4403" + +"$None_4431": ; preds = %"$have_gas_4401" + %"$t2_4432" = bitcast %TName_Option_String* %"$t2_4404" to %CName_None_String* + %"$gasrem_4433" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4434" = icmp ugt i64 1, %"$gasrem_4433" + br i1 %"$gascmp_4434", label %"$out_of_gas_4435", label %"$have_gas_4436" + +"$out_of_gas_4435": ; preds = %"$None_4431" + call void @_out_of_gas() + br label %"$have_gas_4436" + +"$have_gas_4436": ; preds = %"$out_of_gas_4435", %"$None_4431" + %"$consume_4437" = sub i64 %"$gasrem_4433", 1 + store i64 %"$consume_4437", i64* @_gasrem, align 8 + %"$adtval_4438_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4438_salloc" = call i8* @_salloc(i8* %"$adtval_4438_load", i64 1) + %"$adtval_4438" = bitcast i8* %"$adtval_4438_salloc" to %CName_False* + %"$adtgep_4439" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4438", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4439", align 1 + %"$adtptr_4440" = bitcast %CName_False* %"$adtval_4438" to %TName_Bool* + store %TName_Bool* %"$adtptr_4440", %TName_Bool** %b2, align 8, !dbg !464 + br label %"$matchsucc_4403" + +"$empty_default_4407": ; preds = %"$have_gas_4401" + br label %"$matchsucc_4403" + +"$matchsucc_4403": ; preds = %"$have_gas_4436", %"$have_gas_4424", %"$empty_default_4407" + %"$gasrem_4441" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4442" = icmp ugt i64 1, %"$gasrem_4441" + br i1 %"$gascmp_4442", label %"$out_of_gas_4443", label %"$have_gas_4444" + +"$out_of_gas_4443": ; preds = %"$matchsucc_4403" + call void @_out_of_gas() + br label %"$have_gas_4444" + +"$have_gas_4444": ; preds = %"$out_of_gas_4443", %"$matchsucc_4403" + %"$consume_4445" = sub i64 %"$gasrem_4441", 1 + store i64 %"$consume_4445", i64* @_gasrem, align 8 %b3 = alloca %TName_Bool*, align 8 + %"$gasrem_4446" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4447" = icmp ugt i64 2, %"$gasrem_4446" + br i1 %"$gascmp_4447", label %"$out_of_gas_4448", label %"$have_gas_4449" + +"$out_of_gas_4448": ; preds = %"$have_gas_4444" + call void @_out_of_gas() + br label %"$have_gas_4449" + +"$have_gas_4449": ; preds = %"$out_of_gas_4448", %"$have_gas_4444" + %"$consume_4450" = sub i64 %"$gasrem_4446", 2 + store i64 %"$consume_4450", i64* @_gasrem, align 8 + %"$t3_4452" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 + %"$t3_tag_4453" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t3_4452", i32 0, i32 0 + %"$t3_tag_4454" = load i8, i8* %"$t3_tag_4453", align 1 + switch i8 %"$t3_tag_4454", label %"$empty_default_4455" [ + i8 0, label %"$Some_4456" + i8 1, label %"$None_4479" + ], !dbg !466 + +"$Some_4456": ; preds = %"$have_gas_4449" + %"$t3_4457" = bitcast %TName_Option_String* %"$t3_4452" to %CName_Some_String* + %"$t3v_gep_4458" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t3_4457", i32 0, i32 1 + %"$t3v_load_4459" = load %String, %String* %"$t3v_gep_4458", align 8 + %t3v = alloca %String, align 8 + store %String %"$t3v_load_4459", %String* %t3v, align 8 + %"$_literal_cost_t3v_4460" = alloca %String, align 8 + %"$t3v_4461" = load %String, %String* %t3v, align 8 + store %String %"$t3v_4461", %String* %"$_literal_cost_t3v_4460", align 8 + %"$$_literal_cost_t3v_4460_4462" = bitcast %String* %"$_literal_cost_t3v_4460" to i8* + %"$_literal_cost_call_4463" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_t3v_4460_4462") + %"$_literal_cost_v3_4464" = alloca %String, align 8 + %"$v3_4465" = load %String, %String* %v3, align 8 + store %String %"$v3_4465", %String* %"$_literal_cost_v3_4464", align 8 + %"$$_literal_cost_v3_4464_4466" = bitcast %String* %"$_literal_cost_v3_4464" to i8* + %"$_literal_cost_call_4467" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v3_4464_4466") + %"$gasmin_4468" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4463", i64 %"$_literal_cost_call_4467") %"$gasrem_4469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4470" = icmp ugt i64 2, %"$gasrem_4469" + %"$gascmp_4470" = icmp ugt i64 %"$gasmin_4468", %"$gasrem_4469" br i1 %"$gascmp_4470", label %"$out_of_gas_4471", label %"$have_gas_4472" -"$out_of_gas_4471": ; preds = %"$have_gas_4467" +"$out_of_gas_4471": ; preds = %"$Some_4456" call void @_out_of_gas() br label %"$have_gas_4472" -"$have_gas_4472": ; preds = %"$out_of_gas_4471", %"$have_gas_4467" - %"$consume_4473" = sub i64 %"$gasrem_4469", 2 +"$have_gas_4472": ; preds = %"$out_of_gas_4471", %"$Some_4456" + %"$consume_4473" = sub i64 %"$gasrem_4469", %"$gasmin_4468" store i64 %"$consume_4473", i64* @_gasrem, align 8 - %"$t3_4475" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 - %"$t3_tag_4476" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t3_4475", i32 0, i32 0 - %"$t3_tag_4477" = load i8, i8* %"$t3_tag_4476", align 1 - switch i8 %"$t3_tag_4477", label %"$empty_default_4478" [ - i8 0, label %"$Some_4479" - i8 1, label %"$None_4502" - ], !dbg !468 - -"$Some_4479": ; preds = %"$have_gas_4472" - %"$t3_4480" = bitcast %TName_Option_String* %"$t3_4475" to %CName_Some_String* - %"$t3v_gep_4481" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t3_4480", i32 0, i32 1 - %"$t3v_load_4482" = load %String, %String* %"$t3v_gep_4481", align 8 - %t3v = alloca %String, align 8 - store %String %"$t3v_load_4482", %String* %t3v, align 8 - %"$_literal_cost_t3v_4483" = alloca %String, align 8 - %"$t3v_4484" = load %String, %String* %t3v, align 8 - store %String %"$t3v_4484", %String* %"$_literal_cost_t3v_4483", align 8 - %"$$_literal_cost_t3v_4483_4485" = bitcast %String* %"$_literal_cost_t3v_4483" to i8* - %"$_literal_cost_call_4486" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_t3v_4483_4485") - %"$_literal_cost_v3_4487" = alloca %String, align 8 - %"$v3_4488" = load %String, %String* %v3, align 8 - store %String %"$v3_4488", %String* %"$_literal_cost_v3_4487", align 8 - %"$$_literal_cost_v3_4487_4489" = bitcast %String* %"$_literal_cost_v3_4487" to i8* - %"$_literal_cost_call_4490" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v3_4487_4489") - %"$gasmin_4491" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4486", i64 %"$_literal_cost_call_4490") - %"$gasrem_4492" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4493" = icmp ugt i64 %"$gasmin_4491", %"$gasrem_4492" - br i1 %"$gascmp_4493", label %"$out_of_gas_4494", label %"$have_gas_4495" - -"$out_of_gas_4494": ; preds = %"$Some_4479" - call void @_out_of_gas() - br label %"$have_gas_4495" - -"$have_gas_4495": ; preds = %"$out_of_gas_4494", %"$Some_4479" - %"$consume_4496" = sub i64 %"$gasrem_4492", %"$gasmin_4491" - store i64 %"$consume_4496", i64* @_gasrem, align 8 - %"$execptr_load_4497" = load i8*, i8** @_execptr, align 8 - %"$t3v_4498" = load %String, %String* %t3v, align 8 - %"$v3_4499" = load %String, %String* %v3, align 8 - %"$eq_call_4500" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4497", %String %"$t3v_4498", %String %"$v3_4499"), !dbg !469 - store %TName_Bool* %"$eq_call_4500", %TName_Bool** %b3, align 8, !dbg !469 - br label %"$matchsucc_4474" - -"$None_4502": ; preds = %"$have_gas_4472" - %"$t3_4503" = bitcast %TName_Option_String* %"$t3_4475" to %CName_None_String* - %"$gasrem_4504" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4505" = icmp ugt i64 1, %"$gasrem_4504" - br i1 %"$gascmp_4505", label %"$out_of_gas_4506", label %"$have_gas_4507" - -"$out_of_gas_4506": ; preds = %"$None_4502" - call void @_out_of_gas() - br label %"$have_gas_4507" - -"$have_gas_4507": ; preds = %"$out_of_gas_4506", %"$None_4502" - %"$consume_4508" = sub i64 %"$gasrem_4504", 1 - store i64 %"$consume_4508", i64* @_gasrem, align 8 - %"$adtval_4509_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4509_salloc" = call i8* @_salloc(i8* %"$adtval_4509_load", i64 1) - %"$adtval_4509" = bitcast i8* %"$adtval_4509_salloc" to %CName_False* - %"$adtgep_4510" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4509", i32 0, i32 0 - store i8 1, i8* %"$adtgep_4510", align 1 - %"$adtptr_4511" = bitcast %CName_False* %"$adtval_4509" to %TName_Bool* - store %TName_Bool* %"$adtptr_4511", %TName_Bool** %b3, align 8, !dbg !472 - br label %"$matchsucc_4474" - -"$empty_default_4478": ; preds = %"$have_gas_4472" - br label %"$matchsucc_4474" - -"$matchsucc_4474": ; preds = %"$have_gas_4507", %"$have_gas_4495", %"$empty_default_4478" - %"$gasrem_4512" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4513" = icmp ugt i64 1, %"$gasrem_4512" - br i1 %"$gascmp_4513", label %"$out_of_gas_4514", label %"$have_gas_4515" - -"$out_of_gas_4514": ; preds = %"$matchsucc_4474" - call void @_out_of_gas() - br label %"$have_gas_4515" - -"$have_gas_4515": ; preds = %"$out_of_gas_4514", %"$matchsucc_4474" - %"$consume_4516" = sub i64 %"$gasrem_4512", 1 - store i64 %"$consume_4516", i64* @_gasrem, align 8 + %"$execptr_load_4474" = load i8*, i8** @_execptr, align 8 + %"$t3v_4475" = load %String, %String* %t3v, align 8 + %"$v3_4476" = load %String, %String* %v3, align 8 + %"$eq_call_4477" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4474", %String %"$t3v_4475", %String %"$v3_4476"), !dbg !467 + store %TName_Bool* %"$eq_call_4477", %TName_Bool** %b3, align 8, !dbg !467 + br label %"$matchsucc_4451" + +"$None_4479": ; preds = %"$have_gas_4449" + %"$t3_4480" = bitcast %TName_Option_String* %"$t3_4452" to %CName_None_String* + %"$gasrem_4481" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4482" = icmp ugt i64 1, %"$gasrem_4481" + br i1 %"$gascmp_4482", label %"$out_of_gas_4483", label %"$have_gas_4484" + +"$out_of_gas_4483": ; preds = %"$None_4479" + call void @_out_of_gas() + br label %"$have_gas_4484" + +"$have_gas_4484": ; preds = %"$out_of_gas_4483", %"$None_4479" + %"$consume_4485" = sub i64 %"$gasrem_4481", 1 + store i64 %"$consume_4485", i64* @_gasrem, align 8 + %"$adtval_4486_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4486_salloc" = call i8* @_salloc(i8* %"$adtval_4486_load", i64 1) + %"$adtval_4486" = bitcast i8* %"$adtval_4486_salloc" to %CName_False* + %"$adtgep_4487" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4486", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4487", align 1 + %"$adtptr_4488" = bitcast %CName_False* %"$adtval_4486" to %TName_Bool* + store %TName_Bool* %"$adtptr_4488", %TName_Bool** %b3, align 8, !dbg !470 + br label %"$matchsucc_4451" + +"$empty_default_4455": ; preds = %"$have_gas_4449" + br label %"$matchsucc_4451" + +"$matchsucc_4451": ; preds = %"$have_gas_4484", %"$have_gas_4472", %"$empty_default_4455" + %"$gasrem_4489" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4490" = icmp ugt i64 1, %"$gasrem_4489" + br i1 %"$gascmp_4490", label %"$out_of_gas_4491", label %"$have_gas_4492" + +"$out_of_gas_4491": ; preds = %"$matchsucc_4451" + call void @_out_of_gas() + br label %"$have_gas_4492" + +"$have_gas_4492": ; preds = %"$out_of_gas_4491", %"$matchsucc_4451" + %"$consume_4493" = sub i64 %"$gasrem_4489", 1 + store i64 %"$consume_4493", i64* @_gasrem, align 8 %b4 = alloca %TName_Bool*, align 8 + %"$gasrem_4494" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4495" = icmp ugt i64 2, %"$gasrem_4494" + br i1 %"$gascmp_4495", label %"$out_of_gas_4496", label %"$have_gas_4497" + +"$out_of_gas_4496": ; preds = %"$have_gas_4492" + call void @_out_of_gas() + br label %"$have_gas_4497" + +"$have_gas_4497": ; preds = %"$out_of_gas_4496", %"$have_gas_4492" + %"$consume_4498" = sub i64 %"$gasrem_4494", 2 + store i64 %"$consume_4498", i64* @_gasrem, align 8 + %"$t4_4500" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 + %"$t4_tag_4501" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t4_4500", i32 0, i32 0 + %"$t4_tag_4502" = load i8, i8* %"$t4_tag_4501", align 1 + switch i8 %"$t4_tag_4502", label %"$empty_default_4503" [ + i8 0, label %"$Some_4504" + i8 1, label %"$None_4527" + ], !dbg !472 + +"$Some_4504": ; preds = %"$have_gas_4497" + %"$t4_4505" = bitcast %TName_Option_String* %"$t4_4500" to %CName_Some_String* + %"$t4v_gep_4506" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t4_4505", i32 0, i32 1 + %"$t4v_load_4507" = load %String, %String* %"$t4v_gep_4506", align 8 + %t4v = alloca %String, align 8 + store %String %"$t4v_load_4507", %String* %t4v, align 8 + %"$_literal_cost_t4v_4508" = alloca %String, align 8 + %"$t4v_4509" = load %String, %String* %t4v, align 8 + store %String %"$t4v_4509", %String* %"$_literal_cost_t4v_4508", align 8 + %"$$_literal_cost_t4v_4508_4510" = bitcast %String* %"$_literal_cost_t4v_4508" to i8* + %"$_literal_cost_call_4511" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_t4v_4508_4510") + %"$_literal_cost_v4_4512" = alloca %String, align 8 + %"$v4_4513" = load %String, %String* %v4, align 8 + store %String %"$v4_4513", %String* %"$_literal_cost_v4_4512", align 8 + %"$$_literal_cost_v4_4512_4514" = bitcast %String* %"$_literal_cost_v4_4512" to i8* + %"$_literal_cost_call_4515" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v4_4512_4514") + %"$gasmin_4516" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4511", i64 %"$_literal_cost_call_4515") %"$gasrem_4517" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4518" = icmp ugt i64 2, %"$gasrem_4517" + %"$gascmp_4518" = icmp ugt i64 %"$gasmin_4516", %"$gasrem_4517" br i1 %"$gascmp_4518", label %"$out_of_gas_4519", label %"$have_gas_4520" -"$out_of_gas_4519": ; preds = %"$have_gas_4515" +"$out_of_gas_4519": ; preds = %"$Some_4504" call void @_out_of_gas() br label %"$have_gas_4520" -"$have_gas_4520": ; preds = %"$out_of_gas_4519", %"$have_gas_4515" - %"$consume_4521" = sub i64 %"$gasrem_4517", 2 +"$have_gas_4520": ; preds = %"$out_of_gas_4519", %"$Some_4504" + %"$consume_4521" = sub i64 %"$gasrem_4517", %"$gasmin_4516" store i64 %"$consume_4521", i64* @_gasrem, align 8 - %"$t4_4523" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 - %"$t4_tag_4524" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t4_4523", i32 0, i32 0 - %"$t4_tag_4525" = load i8, i8* %"$t4_tag_4524", align 1 - switch i8 %"$t4_tag_4525", label %"$empty_default_4526" [ - i8 0, label %"$Some_4527" - i8 1, label %"$None_4550" - ], !dbg !474 - -"$Some_4527": ; preds = %"$have_gas_4520" - %"$t4_4528" = bitcast %TName_Option_String* %"$t4_4523" to %CName_Some_String* - %"$t4v_gep_4529" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t4_4528", i32 0, i32 1 - %"$t4v_load_4530" = load %String, %String* %"$t4v_gep_4529", align 8 - %t4v = alloca %String, align 8 - store %String %"$t4v_load_4530", %String* %t4v, align 8 - %"$_literal_cost_t4v_4531" = alloca %String, align 8 - %"$t4v_4532" = load %String, %String* %t4v, align 8 - store %String %"$t4v_4532", %String* %"$_literal_cost_t4v_4531", align 8 - %"$$_literal_cost_t4v_4531_4533" = bitcast %String* %"$_literal_cost_t4v_4531" to i8* - %"$_literal_cost_call_4534" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_t4v_4531_4533") - %"$_literal_cost_v4_4535" = alloca %String, align 8 - %"$v4_4536" = load %String, %String* %v4, align 8 - store %String %"$v4_4536", %String* %"$_literal_cost_v4_4535", align 8 - %"$$_literal_cost_v4_4535_4537" = bitcast %String* %"$_literal_cost_v4_4535" to i8* - %"$_literal_cost_call_4538" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v4_4535_4537") - %"$gasmin_4539" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4534", i64 %"$_literal_cost_call_4538") - %"$gasrem_4540" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4541" = icmp ugt i64 %"$gasmin_4539", %"$gasrem_4540" - br i1 %"$gascmp_4541", label %"$out_of_gas_4542", label %"$have_gas_4543" - -"$out_of_gas_4542": ; preds = %"$Some_4527" - call void @_out_of_gas() - br label %"$have_gas_4543" - -"$have_gas_4543": ; preds = %"$out_of_gas_4542", %"$Some_4527" - %"$consume_4544" = sub i64 %"$gasrem_4540", %"$gasmin_4539" - store i64 %"$consume_4544", i64* @_gasrem, align 8 - %"$execptr_load_4545" = load i8*, i8** @_execptr, align 8 - %"$t4v_4546" = load %String, %String* %t4v, align 8 - %"$v4_4547" = load %String, %String* %v4, align 8 - %"$eq_call_4548" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4545", %String %"$t4v_4546", %String %"$v4_4547"), !dbg !475 - store %TName_Bool* %"$eq_call_4548", %TName_Bool** %b4, align 8, !dbg !475 - br label %"$matchsucc_4522" - -"$None_4550": ; preds = %"$have_gas_4520" - %"$t4_4551" = bitcast %TName_Option_String* %"$t4_4523" to %CName_None_String* - %"$gasrem_4552" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4553" = icmp ugt i64 1, %"$gasrem_4552" - br i1 %"$gascmp_4553", label %"$out_of_gas_4554", label %"$have_gas_4555" - -"$out_of_gas_4554": ; preds = %"$None_4550" - call void @_out_of_gas() - br label %"$have_gas_4555" - -"$have_gas_4555": ; preds = %"$out_of_gas_4554", %"$None_4550" - %"$consume_4556" = sub i64 %"$gasrem_4552", 1 - store i64 %"$consume_4556", i64* @_gasrem, align 8 - %"$adtval_4557_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4557_salloc" = call i8* @_salloc(i8* %"$adtval_4557_load", i64 1) - %"$adtval_4557" = bitcast i8* %"$adtval_4557_salloc" to %CName_False* - %"$adtgep_4558" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4557", i32 0, i32 0 - store i8 1, i8* %"$adtgep_4558", align 1 - %"$adtptr_4559" = bitcast %CName_False* %"$adtval_4557" to %TName_Bool* - store %TName_Bool* %"$adtptr_4559", %TName_Bool** %b4, align 8, !dbg !478 - br label %"$matchsucc_4522" - -"$empty_default_4526": ; preds = %"$have_gas_4520" - br label %"$matchsucc_4522" - -"$matchsucc_4522": ; preds = %"$have_gas_4555", %"$have_gas_4543", %"$empty_default_4526" - %"$gasrem_4560" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4561" = icmp ugt i64 1, %"$gasrem_4560" - br i1 %"$gascmp_4561", label %"$out_of_gas_4562", label %"$have_gas_4563" - -"$out_of_gas_4562": ; preds = %"$matchsucc_4522" - call void @_out_of_gas() - br label %"$have_gas_4563" - -"$have_gas_4563": ; preds = %"$out_of_gas_4562", %"$matchsucc_4522" - %"$consume_4564" = sub i64 %"$gasrem_4560", 1 - store i64 %"$consume_4564", i64* @_gasrem, align 8 + %"$execptr_load_4522" = load i8*, i8** @_execptr, align 8 + %"$t4v_4523" = load %String, %String* %t4v, align 8 + %"$v4_4524" = load %String, %String* %v4, align 8 + %"$eq_call_4525" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4522", %String %"$t4v_4523", %String %"$v4_4524"), !dbg !473 + store %TName_Bool* %"$eq_call_4525", %TName_Bool** %b4, align 8, !dbg !473 + br label %"$matchsucc_4499" + +"$None_4527": ; preds = %"$have_gas_4497" + %"$t4_4528" = bitcast %TName_Option_String* %"$t4_4500" to %CName_None_String* + %"$gasrem_4529" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4530" = icmp ugt i64 1, %"$gasrem_4529" + br i1 %"$gascmp_4530", label %"$out_of_gas_4531", label %"$have_gas_4532" + +"$out_of_gas_4531": ; preds = %"$None_4527" + call void @_out_of_gas() + br label %"$have_gas_4532" + +"$have_gas_4532": ; preds = %"$out_of_gas_4531", %"$None_4527" + %"$consume_4533" = sub i64 %"$gasrem_4529", 1 + store i64 %"$consume_4533", i64* @_gasrem, align 8 + %"$adtval_4534_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4534_salloc" = call i8* @_salloc(i8* %"$adtval_4534_load", i64 1) + %"$adtval_4534" = bitcast i8* %"$adtval_4534_salloc" to %CName_False* + %"$adtgep_4535" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4534", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4535", align 1 + %"$adtptr_4536" = bitcast %CName_False* %"$adtval_4534" to %TName_Bool* + store %TName_Bool* %"$adtptr_4536", %TName_Bool** %b4, align 8, !dbg !476 + br label %"$matchsucc_4499" + +"$empty_default_4503": ; preds = %"$have_gas_4497" + br label %"$matchsucc_4499" + +"$matchsucc_4499": ; preds = %"$have_gas_4532", %"$have_gas_4520", %"$empty_default_4503" + %"$gasrem_4537" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4538" = icmp ugt i64 1, %"$gasrem_4537" + br i1 %"$gascmp_4538", label %"$out_of_gas_4539", label %"$have_gas_4540" + +"$out_of_gas_4539": ; preds = %"$matchsucc_4499" + call void @_out_of_gas() + br label %"$have_gas_4540" + +"$have_gas_4540": ; preds = %"$out_of_gas_4539", %"$matchsucc_4499" + %"$consume_4541" = sub i64 %"$gasrem_4537", 1 + store i64 %"$consume_4541", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_4565" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4566" = icmp ugt i64 1, %"$gasrem_4565" - br i1 %"$gascmp_4566", label %"$out_of_gas_4567", label %"$have_gas_4568" + %"$gasrem_4542" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4543" = icmp ugt i64 1, %"$gasrem_4542" + br i1 %"$gascmp_4543", label %"$out_of_gas_4544", label %"$have_gas_4545" -"$out_of_gas_4567": ; preds = %"$have_gas_4563" +"$out_of_gas_4544": ; preds = %"$have_gas_4540" call void @_out_of_gas() - br label %"$have_gas_4568" + br label %"$have_gas_4545" -"$have_gas_4568": ; preds = %"$out_of_gas_4567", %"$have_gas_4563" - %"$consume_4569" = sub i64 %"$gasrem_4565", 1 - store i64 %"$consume_4569", i64* @_gasrem, align 8 +"$have_gas_4545": ; preds = %"$out_of_gas_4544", %"$have_gas_4540" + %"$consume_4546" = sub i64 %"$gasrem_4542", 1 + store i64 %"$consume_4546", i64* @_gasrem, align 8 %a1 = alloca %TName_Bool*, align 8 - %"$gasrem_4570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4571" = icmp ugt i64 1, %"$gasrem_4570" - br i1 %"$gascmp_4571", label %"$out_of_gas_4572", label %"$have_gas_4573" - -"$out_of_gas_4572": ; preds = %"$have_gas_4568" - call void @_out_of_gas() - br label %"$have_gas_4573" - -"$have_gas_4573": ; preds = %"$out_of_gas_4572", %"$have_gas_4568" - %"$consume_4574" = sub i64 %"$gasrem_4570", 1 - store i64 %"$consume_4574", i64* @_gasrem, align 8 - %"$BoolUtils.andb_17" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_4575" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_4576" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4575", 0 - %"$BoolUtils.andb_envptr_4577" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4575", 1 - %"$b1_4578" = load %TName_Bool*, %TName_Bool** %b1, align 8 - %"$BoolUtils.andb_call_4579" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4576"(i8* %"$BoolUtils.andb_envptr_4577", %TName_Bool* %"$b1_4578"), !dbg !480 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4579", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8, !dbg !480 - %"$BoolUtils.andb_18" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_17_4580" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 - %"$$BoolUtils.andb_17_fptr_4581" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_4580", 0 - %"$$BoolUtils.andb_17_envptr_4582" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_4580", 1 - %"$b2_4583" = load %TName_Bool*, %TName_Bool** %b2, align 8 - %"$$BoolUtils.andb_17_call_4584" = call %TName_Bool* %"$$BoolUtils.andb_17_fptr_4581"(i8* %"$$BoolUtils.andb_17_envptr_4582", %TName_Bool* %"$b2_4583"), !dbg !480 - store %TName_Bool* %"$$BoolUtils.andb_17_call_4584", %TName_Bool** %"$BoolUtils.andb_18", align 8, !dbg !480 - %"$$BoolUtils.andb_18_4585" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_18", align 8 - store %TName_Bool* %"$$BoolUtils.andb_18_4585", %TName_Bool** %a1, align 8, !dbg !480 - %"$gasrem_4586" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4587" = icmp ugt i64 1, %"$gasrem_4586" - br i1 %"$gascmp_4587", label %"$out_of_gas_4588", label %"$have_gas_4589" - -"$out_of_gas_4588": ; preds = %"$have_gas_4573" - call void @_out_of_gas() - br label %"$have_gas_4589" - -"$have_gas_4589": ; preds = %"$out_of_gas_4588", %"$have_gas_4573" - %"$consume_4590" = sub i64 %"$gasrem_4586", 1 - store i64 %"$consume_4590", i64* @_gasrem, align 8 + %"$gasrem_4547" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4548" = icmp ugt i64 1, %"$gasrem_4547" + br i1 %"$gascmp_4548", label %"$out_of_gas_4549", label %"$have_gas_4550" + +"$out_of_gas_4549": ; preds = %"$have_gas_4545" + call void @_out_of_gas() + br label %"$have_gas_4550" + +"$have_gas_4550": ; preds = %"$out_of_gas_4549", %"$have_gas_4545" + %"$consume_4551" = sub i64 %"$gasrem_4547", 1 + store i64 %"$consume_4551", i64* @_gasrem, align 8 + %"$BoolUtils.andb_4552" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_4553" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4552", 0 + %"$BoolUtils.andb_envptr_4554" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4552", 1 + %"$b1_4555" = load %TName_Bool*, %TName_Bool** %b1, align 8 + %"$b2_4556" = load %TName_Bool*, %TName_Bool** %b2, align 8 + %"$BoolUtils.andb_call_4557" = call %TName_Bool* %"$BoolUtils.andb_fptr_4553"(i8* %"$BoolUtils.andb_envptr_4554", %TName_Bool* %"$b1_4555", %TName_Bool* %"$b2_4556"), !dbg !478 + store %TName_Bool* %"$BoolUtils.andb_call_4557", %TName_Bool** %a1, align 8, !dbg !478 + %"$gasrem_4558" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4559" = icmp ugt i64 1, %"$gasrem_4558" + br i1 %"$gascmp_4559", label %"$out_of_gas_4560", label %"$have_gas_4561" + +"$out_of_gas_4560": ; preds = %"$have_gas_4550" + call void @_out_of_gas() + br label %"$have_gas_4561" + +"$have_gas_4561": ; preds = %"$out_of_gas_4560", %"$have_gas_4550" + %"$consume_4562" = sub i64 %"$gasrem_4558", 1 + store i64 %"$consume_4562", i64* @_gasrem, align 8 %a2 = alloca %TName_Bool*, align 8 - %"$gasrem_4591" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4592" = icmp ugt i64 1, %"$gasrem_4591" - br i1 %"$gascmp_4592", label %"$out_of_gas_4593", label %"$have_gas_4594" - -"$out_of_gas_4593": ; preds = %"$have_gas_4589" - call void @_out_of_gas() - br label %"$have_gas_4594" - -"$have_gas_4594": ; preds = %"$out_of_gas_4593", %"$have_gas_4589" - %"$consume_4595" = sub i64 %"$gasrem_4591", 1 - store i64 %"$consume_4595", i64* @_gasrem, align 8 - %"$BoolUtils.andb_19" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_4596" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_4597" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4596", 0 - %"$BoolUtils.andb_envptr_4598" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4596", 1 - %"$b3_4599" = load %TName_Bool*, %TName_Bool** %b3, align 8 - %"$BoolUtils.andb_call_4600" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4597"(i8* %"$BoolUtils.andb_envptr_4598", %TName_Bool* %"$b3_4599"), !dbg !481 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4600", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8, !dbg !481 - %"$BoolUtils.andb_20" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_19_4601" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8 - %"$$BoolUtils.andb_19_fptr_4602" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_4601", 0 - %"$$BoolUtils.andb_19_envptr_4603" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_4601", 1 - %"$b4_4604" = load %TName_Bool*, %TName_Bool** %b4, align 8 - %"$$BoolUtils.andb_19_call_4605" = call %TName_Bool* %"$$BoolUtils.andb_19_fptr_4602"(i8* %"$$BoolUtils.andb_19_envptr_4603", %TName_Bool* %"$b4_4604"), !dbg !481 - store %TName_Bool* %"$$BoolUtils.andb_19_call_4605", %TName_Bool** %"$BoolUtils.andb_20", align 8, !dbg !481 - %"$$BoolUtils.andb_20_4606" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_20", align 8 - store %TName_Bool* %"$$BoolUtils.andb_20_4606", %TName_Bool** %a2, align 8, !dbg !481 + %"$gasrem_4563" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4564" = icmp ugt i64 1, %"$gasrem_4563" + br i1 %"$gascmp_4564", label %"$out_of_gas_4565", label %"$have_gas_4566" + +"$out_of_gas_4565": ; preds = %"$have_gas_4561" + call void @_out_of_gas() + br label %"$have_gas_4566" + +"$have_gas_4566": ; preds = %"$out_of_gas_4565", %"$have_gas_4561" + %"$consume_4567" = sub i64 %"$gasrem_4563", 1 + store i64 %"$consume_4567", i64* @_gasrem, align 8 + %"$BoolUtils.andb_4568" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_4569" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4568", 0 + %"$BoolUtils.andb_envptr_4570" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4568", 1 + %"$b3_4571" = load %TName_Bool*, %TName_Bool** %b3, align 8 + %"$b4_4572" = load %TName_Bool*, %TName_Bool** %b4, align 8 + %"$BoolUtils.andb_call_4573" = call %TName_Bool* %"$BoolUtils.andb_fptr_4569"(i8* %"$BoolUtils.andb_envptr_4570", %TName_Bool* %"$b3_4571", %TName_Bool* %"$b4_4572"), !dbg !479 + store %TName_Bool* %"$BoolUtils.andb_call_4573", %TName_Bool** %a2, align 8, !dbg !479 + %"$gasrem_4574" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4575" = icmp ugt i64 1, %"$gasrem_4574" + br i1 %"$gascmp_4575", label %"$out_of_gas_4576", label %"$have_gas_4577" + +"$out_of_gas_4576": ; preds = %"$have_gas_4566" + call void @_out_of_gas() + br label %"$have_gas_4577" + +"$have_gas_4577": ; preds = %"$out_of_gas_4576", %"$have_gas_4566" + %"$consume_4578" = sub i64 %"$gasrem_4574", 1 + store i64 %"$consume_4578", i64* @_gasrem, align 8 + %"$BoolUtils.andb_4579" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_4580" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4579", 0 + %"$BoolUtils.andb_envptr_4581" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4579", 1 + %"$a1_4582" = load %TName_Bool*, %TName_Bool** %a1, align 8 + %"$a2_4583" = load %TName_Bool*, %TName_Bool** %a2, align 8 + %"$BoolUtils.andb_call_4584" = call %TName_Bool* %"$BoolUtils.andb_fptr_4580"(i8* %"$BoolUtils.andb_envptr_4581", %TName_Bool* %"$a1_4582", %TName_Bool* %"$a2_4583"), !dbg !480 + store %TName_Bool* %"$BoolUtils.andb_call_4584", %TName_Bool** %b, align 8, !dbg !480 + %"$gasrem_4585" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4586" = icmp ugt i64 2, %"$gasrem_4585" + br i1 %"$gascmp_4586", label %"$out_of_gas_4587", label %"$have_gas_4588" + +"$out_of_gas_4587": ; preds = %"$have_gas_4577" + call void @_out_of_gas() + br label %"$have_gas_4588" + +"$have_gas_4588": ; preds = %"$out_of_gas_4587", %"$have_gas_4577" + %"$consume_4589" = sub i64 %"$gasrem_4585", 2 + store i64 %"$consume_4589", i64* @_gasrem, align 8 + %"$b_4591" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_4592" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_4591", i32 0, i32 0 + %"$b_tag_4593" = load i8, i8* %"$b_tag_4592", align 1 + switch i8 %"$b_tag_4593", label %"$empty_default_4594" [ + i8 0, label %"$True_4595" + i8 1, label %"$False_4597" + ], !dbg !481 + +"$True_4595": ; preds = %"$have_gas_4588" + %"$b_4596" = bitcast %TName_Bool* %"$b_4591" to %CName_True* + br label %"$matchsucc_4590" + +"$False_4597": ; preds = %"$have_gas_4588" + %"$b_4598" = bitcast %TName_Bool* %"$b_4591" to %CName_False* + %"$gasrem_4599" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4600" = icmp ugt i64 1, %"$gasrem_4599" + br i1 %"$gascmp_4600", label %"$out_of_gas_4601", label %"$have_gas_4602" + +"$out_of_gas_4601": ; preds = %"$False_4597" + call void @_out_of_gas() + br label %"$have_gas_4602" + +"$have_gas_4602": ; preds = %"$out_of_gas_4601", %"$False_4597" + %"$consume_4603" = sub i64 %"$gasrem_4599", 1 + store i64 %"$consume_4603", i64* @_gasrem, align 8 + %"$fail__origin_4604" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4604", align 1 + %"$fail__sender_4605" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4605", align 1 + %"$tname_4606" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4604", [20 x i8]* %"$fail__sender_4605", %String %"$tname_4606"), !dbg !482 + br label %"$matchsucc_4590" + +"$empty_default_4594": ; preds = %"$have_gas_4588" + br label %"$matchsucc_4590" + +"$matchsucc_4590": ; preds = %"$have_gas_4602", %"$True_4595", %"$empty_default_4594" %"$gasrem_4607" = load i64, i64* @_gasrem, align 8 %"$gascmp_4608" = icmp ugt i64 1, %"$gasrem_4607" br i1 %"$gascmp_4608", label %"$out_of_gas_4609", label %"$have_gas_4610" -"$out_of_gas_4609": ; preds = %"$have_gas_4594" +"$out_of_gas_4609": ; preds = %"$matchsucc_4590" call void @_out_of_gas() br label %"$have_gas_4610" -"$have_gas_4610": ; preds = %"$out_of_gas_4609", %"$have_gas_4594" +"$have_gas_4610": ; preds = %"$out_of_gas_4609", %"$matchsucc_4590" %"$consume_4611" = sub i64 %"$gasrem_4607", 1 store i64 %"$consume_4611", i64* @_gasrem, align 8 - %"$BoolUtils.andb_21" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_4612" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_4613" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4612", 0 - %"$BoolUtils.andb_envptr_4614" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4612", 1 - %"$a1_4615" = load %TName_Bool*, %TName_Bool** %a1, align 8 - %"$BoolUtils.andb_call_4616" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4613"(i8* %"$BoolUtils.andb_envptr_4614", %TName_Bool* %"$a1_4615"), !dbg !482 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4616", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8, !dbg !482 - %"$BoolUtils.andb_22" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_21_4617" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8 - %"$$BoolUtils.andb_21_fptr_4618" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_4617", 0 - %"$$BoolUtils.andb_21_envptr_4619" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_4617", 1 - %"$a2_4620" = load %TName_Bool*, %TName_Bool** %a2, align 8 - %"$$BoolUtils.andb_21_call_4621" = call %TName_Bool* %"$$BoolUtils.andb_21_fptr_4618"(i8* %"$$BoolUtils.andb_21_envptr_4619", %TName_Bool* %"$a2_4620"), !dbg !482 - store %TName_Bool* %"$$BoolUtils.andb_21_call_4621", %TName_Bool** %"$BoolUtils.andb_22", align 8, !dbg !482 - %"$$BoolUtils.andb_22_4622" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_22", align 8 - store %TName_Bool* %"$$BoolUtils.andb_22_4622", %TName_Bool** %b, align 8, !dbg !482 - %"$gasrem_4623" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4624" = icmp ugt i64 2, %"$gasrem_4623" - br i1 %"$gascmp_4624", label %"$out_of_gas_4625", label %"$have_gas_4626" - -"$out_of_gas_4625": ; preds = %"$have_gas_4610" - call void @_out_of_gas() - br label %"$have_gas_4626" - -"$have_gas_4626": ; preds = %"$out_of_gas_4625", %"$have_gas_4610" - %"$consume_4627" = sub i64 %"$gasrem_4623", 2 - store i64 %"$consume_4627", i64* @_gasrem, align 8 - %"$b_4629" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_4630" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_4629", i32 0, i32 0 - %"$b_tag_4631" = load i8, i8* %"$b_tag_4630", align 1 - switch i8 %"$b_tag_4631", label %"$empty_default_4632" [ - i8 0, label %"$True_4633" - i8 1, label %"$False_4635" - ], !dbg !483 - -"$True_4633": ; preds = %"$have_gas_4626" - %"$b_4634" = bitcast %TName_Bool* %"$b_4629" to %CName_True* - br label %"$matchsucc_4628" - -"$False_4635": ; preds = %"$have_gas_4626" - %"$b_4636" = bitcast %TName_Bool* %"$b_4629" to %CName_False* - %"$gasrem_4637" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4638" = icmp ugt i64 1, %"$gasrem_4637" - br i1 %"$gascmp_4638", label %"$out_of_gas_4639", label %"$have_gas_4640" - -"$out_of_gas_4639": ; preds = %"$False_4635" - call void @_out_of_gas() - br label %"$have_gas_4640" - -"$have_gas_4640": ; preds = %"$out_of_gas_4639", %"$False_4635" - %"$consume_4641" = sub i64 %"$gasrem_4637", 1 - store i64 %"$consume_4641", i64* @_gasrem, align 8 - %"$fail__origin_4642" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4642", align 1 - %"$fail__sender_4643" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4643", align 1 - %"$tname_4644" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4642", [20 x i8]* %"$fail__sender_4643", %String %"$tname_4644"), !dbg !484 - br label %"$matchsucc_4628" - -"$empty_default_4632": ; preds = %"$have_gas_4626" - br label %"$matchsucc_4628" - -"$matchsucc_4628": ; preds = %"$have_gas_4640", %"$True_4633", %"$empty_default_4632" - %"$gasrem_4645" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4646" = icmp ugt i64 1, %"$gasrem_4645" - br i1 %"$gascmp_4646", label %"$out_of_gas_4647", label %"$have_gas_4648" - -"$out_of_gas_4647": ; preds = %"$matchsucc_4628" - call void @_out_of_gas() - br label %"$have_gas_4648" - -"$have_gas_4648": ; preds = %"$out_of_gas_4647", %"$matchsucc_4628" - %"$consume_4649" = sub i64 %"$gasrem_4645", 1 - store i64 %"$consume_4649", i64* @_gasrem, align 8 %m1 = alloca %Map_String_String*, align 8 - %"$gasrem_4650" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4651" = icmp ugt i64 1, %"$gasrem_4650" - br i1 %"$gascmp_4651", label %"$out_of_gas_4652", label %"$have_gas_4653" + %"$gasrem_4612" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4613" = icmp ugt i64 1, %"$gasrem_4612" + br i1 %"$gascmp_4613", label %"$out_of_gas_4614", label %"$have_gas_4615" -"$out_of_gas_4652": ; preds = %"$have_gas_4648" +"$out_of_gas_4614": ; preds = %"$have_gas_4610" call void @_out_of_gas() - br label %"$have_gas_4653" + br label %"$have_gas_4615" -"$have_gas_4653": ; preds = %"$out_of_gas_4652", %"$have_gas_4648" - %"$consume_4654" = sub i64 %"$gasrem_4650", 1 - store i64 %"$consume_4654", i64* @_gasrem, align 8 +"$have_gas_4615": ; preds = %"$out_of_gas_4614", %"$have_gas_4610" + %"$consume_4616" = sub i64 %"$gasrem_4612", 1 + store i64 %"$consume_4616", i64* @_gasrem, align 8 %k = alloca %String, align 8 - %"$gasrem_4655" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4656" = icmp ugt i64 1, %"$gasrem_4655" - br i1 %"$gascmp_4656", label %"$out_of_gas_4657", label %"$have_gas_4658" + %"$gasrem_4617" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4618" = icmp ugt i64 1, %"$gasrem_4617" + br i1 %"$gascmp_4618", label %"$out_of_gas_4619", label %"$have_gas_4620" -"$out_of_gas_4657": ; preds = %"$have_gas_4653" +"$out_of_gas_4619": ; preds = %"$have_gas_4615" call void @_out_of_gas() - br label %"$have_gas_4658" + br label %"$have_gas_4620" -"$have_gas_4658": ; preds = %"$out_of_gas_4657", %"$have_gas_4653" - %"$consume_4659" = sub i64 %"$gasrem_4655", 1 - store i64 %"$consume_4659", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4660", i32 0, i32 0), i32 0 }, %String* %k, align 8, !dbg !487 - %"$gasrem_4661" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4662" = icmp ugt i64 1, %"$gasrem_4661" - br i1 %"$gascmp_4662", label %"$out_of_gas_4663", label %"$have_gas_4664" +"$have_gas_4620": ; preds = %"$out_of_gas_4619", %"$have_gas_4615" + %"$consume_4621" = sub i64 %"$gasrem_4617", 1 + store i64 %"$consume_4621", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4622", i32 0, i32 0), i32 0 }, %String* %k, align 8, !dbg !485 + %"$gasrem_4623" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4624" = icmp ugt i64 1, %"$gasrem_4623" + br i1 %"$gascmp_4624", label %"$out_of_gas_4625", label %"$have_gas_4626" -"$out_of_gas_4663": ; preds = %"$have_gas_4658" +"$out_of_gas_4625": ; preds = %"$have_gas_4620" call void @_out_of_gas() - br label %"$have_gas_4664" + br label %"$have_gas_4626" -"$have_gas_4664": ; preds = %"$out_of_gas_4663", %"$have_gas_4658" - %"$consume_4665" = sub i64 %"$gasrem_4661", 1 - store i64 %"$consume_4665", i64* @_gasrem, align 8 +"$have_gas_4626": ; preds = %"$out_of_gas_4625", %"$have_gas_4620" + %"$consume_4627" = sub i64 %"$gasrem_4623", 1 + store i64 %"$consume_4627", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_4666" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4667" = icmp ugt i64 1, %"$gasrem_4666" - br i1 %"$gascmp_4667", label %"$out_of_gas_4668", label %"$have_gas_4669" + %"$gasrem_4628" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4629" = icmp ugt i64 1, %"$gasrem_4628" + br i1 %"$gascmp_4629", label %"$out_of_gas_4630", label %"$have_gas_4631" -"$out_of_gas_4668": ; preds = %"$have_gas_4664" +"$out_of_gas_4630": ; preds = %"$have_gas_4626" call void @_out_of_gas() - br label %"$have_gas_4669" + br label %"$have_gas_4631" -"$have_gas_4669": ; preds = %"$out_of_gas_4668", %"$have_gas_4664" - %"$consume_4670" = sub i64 %"$gasrem_4666", 1 - store i64 %"$consume_4670", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4671", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !488 - %"$gasrem_4672" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4673" = icmp ugt i64 1, %"$gasrem_4672" - br i1 %"$gascmp_4673", label %"$out_of_gas_4674", label %"$have_gas_4675" +"$have_gas_4631": ; preds = %"$out_of_gas_4630", %"$have_gas_4626" + %"$consume_4632" = sub i64 %"$gasrem_4628", 1 + store i64 %"$consume_4632", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4633", i32 0, i32 0), i32 3 }, %String* %v, align 8, !dbg !486 + %"$gasrem_4634" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4635" = icmp ugt i64 1, %"$gasrem_4634" + br i1 %"$gascmp_4635", label %"$out_of_gas_4636", label %"$have_gas_4637" -"$out_of_gas_4674": ; preds = %"$have_gas_4669" +"$out_of_gas_4636": ; preds = %"$have_gas_4631" call void @_out_of_gas() - br label %"$have_gas_4675" + br label %"$have_gas_4637" -"$have_gas_4675": ; preds = %"$out_of_gas_4674", %"$have_gas_4669" - %"$consume_4676" = sub i64 %"$gasrem_4672", 1 - store i64 %"$consume_4676", i64* @_gasrem, align 8 +"$have_gas_4637": ; preds = %"$out_of_gas_4636", %"$have_gas_4631" + %"$consume_4638" = sub i64 %"$gasrem_4634", 1 + store i64 %"$consume_4638", i64* @_gasrem, align 8 %e = alloca %Map_String_String*, align 8 - %"$gasrem_4677" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4678" = icmp ugt i64 1, %"$gasrem_4677" - br i1 %"$gascmp_4678", label %"$out_of_gas_4679", label %"$have_gas_4680" - -"$out_of_gas_4679": ; preds = %"$have_gas_4675" - call void @_out_of_gas() - br label %"$have_gas_4680" - -"$have_gas_4680": ; preds = %"$out_of_gas_4679", %"$have_gas_4675" - %"$consume_4681" = sub i64 %"$gasrem_4677", 1 - store i64 %"$consume_4681", i64* @_gasrem, align 8 - %"$execptr_load_4682" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_4683" = call i8* @_new_empty_map(i8* %"$execptr_load_4682") - %"$_new_empty_map_4684" = bitcast i8* %"$_new_empty_map_call_4683" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_4684", %Map_String_String** %e, align 8, !dbg !489 - %"$e_4685" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_4685_4686" = bitcast %Map_String_String* %"$e_4685" to i8* - %"$_lengthof_call_4687" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$e_4685_4686") - %"$gasadd_4688" = add i64 1, %"$_lengthof_call_4687" - %"$gasrem_4689" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4690" = icmp ugt i64 %"$gasadd_4688", %"$gasrem_4689" - br i1 %"$gascmp_4690", label %"$out_of_gas_4691", label %"$have_gas_4692" - -"$out_of_gas_4691": ; preds = %"$have_gas_4680" - call void @_out_of_gas() - br label %"$have_gas_4692" - -"$have_gas_4692": ; preds = %"$out_of_gas_4691", %"$have_gas_4680" - %"$consume_4693" = sub i64 %"$gasrem_4689", %"$gasadd_4688" - store i64 %"$consume_4693", i64* @_gasrem, align 8 - %"$execptr_load_4694" = load i8*, i8** @_execptr, align 8 - %"$e_4695" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_4695_4696" = bitcast %Map_String_String* %"$e_4695" to i8* - %"$put_k_4697" = alloca %String, align 8 - %"$k_4698" = load %String, %String* %k, align 8 - store %String %"$k_4698", %String* %"$put_k_4697", align 8 - %"$$put_k_4697_4699" = bitcast %String* %"$put_k_4697" to i8* - %"$put_v_4700" = alloca %String, align 8 - %"$v_4701" = load %String, %String* %v, align 8 - store %String %"$v_4701", %String* %"$put_v_4700", align 8 - %"$$put_v_4700_4702" = bitcast %String* %"$put_v_4700" to i8* - %"$put_call_4703" = call i8* @_put(i8* %"$execptr_load_4694", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$e_4695_4696", i8* %"$$put_k_4697_4699", i8* %"$$put_v_4700_4702"), !dbg !490 - %"$put_4704" = bitcast i8* %"$put_call_4703" to %Map_String_String* - store %Map_String_String* %"$put_4704", %Map_String_String** %m1, align 8, !dbg !490 - %"$m1_4705" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_4705_4706" = bitcast %Map_String_String* %"$m1_4705" to i8* - %"$_literal_cost_call_4707" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_4705_4706") - %"$gasrem_4708" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4709" = icmp ugt i64 %"$_literal_cost_call_4707", %"$gasrem_4708" - br i1 %"$gascmp_4709", label %"$out_of_gas_4710", label %"$have_gas_4711" - -"$out_of_gas_4710": ; preds = %"$have_gas_4692" - call void @_out_of_gas() - br label %"$have_gas_4711" - -"$have_gas_4711": ; preds = %"$out_of_gas_4710", %"$have_gas_4692" - %"$consume_4712" = sub i64 %"$gasrem_4708", %"$_literal_cost_call_4707" - store i64 %"$consume_4712", i64* @_gasrem, align 8 - %"$execptr_load_4713" = load i8*, i8** @_execptr, align 8 - %"$m1_4715" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$update_value_4716" = bitcast %Map_String_String* %"$m1_4715" to i8* - call void @_update_field(i8* %"$execptr_load_4713", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4714", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i8* %"$update_value_4716"), !dbg !491 + %"$gasrem_4639" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4640" = icmp ugt i64 1, %"$gasrem_4639" + br i1 %"$gascmp_4640", label %"$out_of_gas_4641", label %"$have_gas_4642" + +"$out_of_gas_4641": ; preds = %"$have_gas_4637" + call void @_out_of_gas() + br label %"$have_gas_4642" + +"$have_gas_4642": ; preds = %"$out_of_gas_4641", %"$have_gas_4637" + %"$consume_4643" = sub i64 %"$gasrem_4639", 1 + store i64 %"$consume_4643", i64* @_gasrem, align 8 + %"$execptr_load_4644" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_4645" = call i8* @_new_empty_map(i8* %"$execptr_load_4644") + %"$_new_empty_map_4646" = bitcast i8* %"$_new_empty_map_call_4645" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_4646", %Map_String_String** %e, align 8, !dbg !487 + %"$e_4647" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_4647_4648" = bitcast %Map_String_String* %"$e_4647" to i8* + %"$_lengthof_call_4649" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$e_4647_4648") + %"$gasadd_4650" = add i64 1, %"$_lengthof_call_4649" + %"$gasrem_4651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4652" = icmp ugt i64 %"$gasadd_4650", %"$gasrem_4651" + br i1 %"$gascmp_4652", label %"$out_of_gas_4653", label %"$have_gas_4654" + +"$out_of_gas_4653": ; preds = %"$have_gas_4642" + call void @_out_of_gas() + br label %"$have_gas_4654" + +"$have_gas_4654": ; preds = %"$out_of_gas_4653", %"$have_gas_4642" + %"$consume_4655" = sub i64 %"$gasrem_4651", %"$gasadd_4650" + store i64 %"$consume_4655", i64* @_gasrem, align 8 + %"$execptr_load_4656" = load i8*, i8** @_execptr, align 8 + %"$e_4657" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_4657_4658" = bitcast %Map_String_String* %"$e_4657" to i8* + %"$put_k_4659" = alloca %String, align 8 + %"$k_4660" = load %String, %String* %k, align 8 + store %String %"$k_4660", %String* %"$put_k_4659", align 8 + %"$$put_k_4659_4661" = bitcast %String* %"$put_k_4659" to i8* + %"$put_v_4662" = alloca %String, align 8 + %"$v_4663" = load %String, %String* %v, align 8 + store %String %"$v_4663", %String* %"$put_v_4662", align 8 + %"$$put_v_4662_4664" = bitcast %String* %"$put_v_4662" to i8* + %"$put_call_4665" = call i8* @_put(i8* %"$execptr_load_4656", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$e_4657_4658", i8* %"$$put_k_4659_4661", i8* %"$$put_v_4662_4664"), !dbg !488 + %"$put_4666" = bitcast i8* %"$put_call_4665" to %Map_String_String* + store %Map_String_String* %"$put_4666", %Map_String_String** %m1, align 8, !dbg !488 + %"$m1_4667" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_4667_4668" = bitcast %Map_String_String* %"$m1_4667" to i8* + %"$_literal_cost_call_4669" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_4667_4668") + %"$gasrem_4670" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4671" = icmp ugt i64 %"$_literal_cost_call_4669", %"$gasrem_4670" + br i1 %"$gascmp_4671", label %"$out_of_gas_4672", label %"$have_gas_4673" + +"$out_of_gas_4672": ; preds = %"$have_gas_4654" + call void @_out_of_gas() + br label %"$have_gas_4673" + +"$have_gas_4673": ; preds = %"$out_of_gas_4672", %"$have_gas_4654" + %"$consume_4674" = sub i64 %"$gasrem_4670", %"$_literal_cost_call_4669" + store i64 %"$consume_4674", i64* @_gasrem, align 8 + %"$execptr_load_4675" = load i8*, i8** @_execptr, align 8 + %"$m1_4677" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$update_value_4678" = bitcast %Map_String_String* %"$m1_4677" to i8* + call void @_update_field(i8* %"$execptr_load_4675", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4676", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i8* %"$update_value_4678"), !dbg !489 ret void } -define void @t16(i8* %0) !dbg !492 { +define void @t16(i8* %0) !dbg !490 { entry: - %"$_amount_4718" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4719" = bitcast i8* %"$_amount_4718" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4719", align 8 - %"$_origin_4720" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4721" = bitcast i8* %"$_origin_4720" to [20 x i8]* - %"$_sender_4722" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4723" = bitcast i8* %"$_sender_4722" to [20 x i8]* - call void @"$t16_4146"(%Uint128 %_amount, [20 x i8]* %"$_origin_4721", [20 x i8]* %"$_sender_4723"), !dbg !493 + %"$_amount_4680" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4681" = bitcast i8* %"$_amount_4680" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4681", align 8 + %"$_origin_4682" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4683" = bitcast i8* %"$_origin_4682" to [20 x i8]* + %"$_sender_4684" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4685" = bitcast i8* %"$_sender_4684" to [20 x i8]* + call void @"$t16_4123"(%Uint128 %_amount, [20 x i8]* %"$_origin_4683", [20 x i8]* %"$_sender_4685"), !dbg !491 ret void } -define internal void @"$t17_4724"(%Uint128 %_amount, [20 x i8]* %"$_origin_4725", [20 x i8]* %"$_sender_4726") !dbg !494 { +define internal void @"$t17_4686"(%Uint128 %_amount, [20 x i8]* %"$_origin_4687", [20 x i8]* %"$_sender_4688") !dbg !492 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4725", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4726", align 1 - %"$gasrem_4727" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4728" = icmp ugt i64 1, %"$gasrem_4727" - br i1 %"$gascmp_4728", label %"$out_of_gas_4729", label %"$have_gas_4730" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4687", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4688", align 1 + %"$gasrem_4689" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4690" = icmp ugt i64 1, %"$gasrem_4689" + br i1 %"$gascmp_4690", label %"$out_of_gas_4691", label %"$have_gas_4692" -"$out_of_gas_4729": ; preds = %entry +"$out_of_gas_4691": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_4730" + br label %"$have_gas_4692" -"$have_gas_4730": ; preds = %"$out_of_gas_4729", %entry - %"$consume_4731" = sub i64 %"$gasrem_4727", 1 - store i64 %"$consume_4731", i64* @_gasrem, align 8 +"$have_gas_4692": ; preds = %"$out_of_gas_4691", %entry + %"$consume_4693" = sub i64 %"$gasrem_4689", 1 + store i64 %"$consume_4693", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_4732" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4733" = icmp ugt i64 1, %"$gasrem_4732" - br i1 %"$gascmp_4733", label %"$out_of_gas_4734", label %"$have_gas_4735" + %"$gasrem_4694" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4695" = icmp ugt i64 1, %"$gasrem_4694" + br i1 %"$gascmp_4695", label %"$out_of_gas_4696", label %"$have_gas_4697" -"$out_of_gas_4734": ; preds = %"$have_gas_4730" +"$out_of_gas_4696": ; preds = %"$have_gas_4692" call void @_out_of_gas() - br label %"$have_gas_4735" + br label %"$have_gas_4697" -"$have_gas_4735": ; preds = %"$out_of_gas_4734", %"$have_gas_4730" - %"$consume_4736" = sub i64 %"$gasrem_4732", 1 - store i64 %"$consume_4736", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4737", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !495 - %"$gasrem_4738" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4739" = icmp ugt i64 1, %"$gasrem_4738" - br i1 %"$gascmp_4739", label %"$out_of_gas_4740", label %"$have_gas_4741" +"$have_gas_4697": ; preds = %"$out_of_gas_4696", %"$have_gas_4692" + %"$consume_4698" = sub i64 %"$gasrem_4694", 1 + store i64 %"$consume_4698", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4699", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !493 + %"$gasrem_4700" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4701" = icmp ugt i64 1, %"$gasrem_4700" + br i1 %"$gascmp_4701", label %"$out_of_gas_4702", label %"$have_gas_4703" -"$out_of_gas_4740": ; preds = %"$have_gas_4735" +"$out_of_gas_4702": ; preds = %"$have_gas_4697" call void @_out_of_gas() - br label %"$have_gas_4741" + br label %"$have_gas_4703" -"$have_gas_4741": ; preds = %"$out_of_gas_4740", %"$have_gas_4735" - %"$consume_4742" = sub i64 %"$gasrem_4738", 1 - store i64 %"$consume_4742", i64* @_gasrem, align 8 +"$have_gas_4703": ; preds = %"$out_of_gas_4702", %"$have_gas_4697" + %"$consume_4704" = sub i64 %"$gasrem_4700", 1 + store i64 %"$consume_4704", i64* @_gasrem, align 8 %key = alloca %String, align 8 - %"$gasrem_4743" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4744" = icmp ugt i64 1, %"$gasrem_4743" - br i1 %"$gascmp_4744", label %"$out_of_gas_4745", label %"$have_gas_4746" + %"$gasrem_4705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4706" = icmp ugt i64 1, %"$gasrem_4705" + br i1 %"$gascmp_4706", label %"$out_of_gas_4707", label %"$have_gas_4708" -"$out_of_gas_4745": ; preds = %"$have_gas_4741" +"$out_of_gas_4707": ; preds = %"$have_gas_4703" call void @_out_of_gas() - br label %"$have_gas_4746" + br label %"$have_gas_4708" -"$have_gas_4746": ; preds = %"$out_of_gas_4745", %"$have_gas_4741" - %"$consume_4747" = sub i64 %"$gasrem_4743", 1 - store i64 %"$consume_4747", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4748", i32 0, i32 0), i32 0 }, %String* %key, align 8, !dbg !496 +"$have_gas_4708": ; preds = %"$out_of_gas_4707", %"$have_gas_4703" + %"$consume_4709" = sub i64 %"$gasrem_4705", 1 + store i64 %"$consume_4709", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4710", i32 0, i32 0), i32 0 }, %String* %key, align 8, !dbg !494 %found = alloca %TName_Bool*, align 8 - %"$indices_buf_4749_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4749_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4749_salloc_load", i64 16) - %"$indices_buf_4749_salloc" = bitcast i8* %"$indices_buf_4749_salloc_salloc" to [16 x i8]* - %"$indices_buf_4749" = bitcast [16 x i8]* %"$indices_buf_4749_salloc" to i8* - %"$key_4750" = load %String, %String* %key, align 8 - %"$indices_gep_4751" = getelementptr i8, i8* %"$indices_buf_4749", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4751" to %String* - store %String %"$key_4750", %String* %indices_cast, align 8 - %"$execptr_load_4753" = load i8*, i8** @_execptr, align 8 - %"$found_call_4754" = call i8* @_fetch_field(i8* %"$execptr_load_4753", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4752", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_4749", i32 0), !dbg !497 - %"$found_4755" = bitcast i8* %"$found_call_4754" to %TName_Bool* - store %TName_Bool* %"$found_4755", %TName_Bool** %found, align 8 - %"$found_4756" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$$found_4756_4757" = bitcast %TName_Bool* %"$found_4756" to i8* - %"$_literal_cost_call_4758" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_69", i8* %"$$found_4756_4757") - %"$gasadd_4759" = add i64 %"$_literal_cost_call_4758", 0 - %"$gasadd_4760" = add i64 %"$gasadd_4759", 1 - %"$gasrem_4761" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4762" = icmp ugt i64 %"$gasadd_4760", %"$gasrem_4761" - br i1 %"$gascmp_4762", label %"$out_of_gas_4763", label %"$have_gas_4764" - -"$out_of_gas_4763": ; preds = %"$have_gas_4746" - call void @_out_of_gas() - br label %"$have_gas_4764" - -"$have_gas_4764": ; preds = %"$out_of_gas_4763", %"$have_gas_4746" - %"$consume_4765" = sub i64 %"$gasrem_4761", %"$gasadd_4760" - store i64 %"$consume_4765", i64* @_gasrem, align 8 - %"$gasrem_4766" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4767" = icmp ugt i64 2, %"$gasrem_4766" - br i1 %"$gascmp_4767", label %"$out_of_gas_4768", label %"$have_gas_4769" - -"$out_of_gas_4768": ; preds = %"$have_gas_4764" - call void @_out_of_gas() - br label %"$have_gas_4769" - -"$have_gas_4769": ; preds = %"$out_of_gas_4768", %"$have_gas_4764" - %"$consume_4770" = sub i64 %"$gasrem_4766", 2 - store i64 %"$consume_4770", i64* @_gasrem, align 8 - %"$found_4772" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$found_tag_4773" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4772", i32 0, i32 0 - %"$found_tag_4774" = load i8, i8* %"$found_tag_4773", align 1 - switch i8 %"$found_tag_4774", label %"$empty_default_4775" [ - i8 0, label %"$True_4776" - i8 1, label %"$False_4778" - ], !dbg !498 - -"$True_4776": ; preds = %"$have_gas_4769" - %"$found_4777" = bitcast %TName_Bool* %"$found_4772" to %CName_True* - br label %"$matchsucc_4771" - -"$False_4778": ; preds = %"$have_gas_4769" - %"$found_4779" = bitcast %TName_Bool* %"$found_4772" to %CName_False* - %"$gasrem_4780" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4781" = icmp ugt i64 1, %"$gasrem_4780" - br i1 %"$gascmp_4781", label %"$out_of_gas_4782", label %"$have_gas_4783" - -"$out_of_gas_4782": ; preds = %"$False_4778" - call void @_out_of_gas() - br label %"$have_gas_4783" - -"$have_gas_4783": ; preds = %"$out_of_gas_4782", %"$False_4778" - %"$consume_4784" = sub i64 %"$gasrem_4780", 1 - store i64 %"$consume_4784", i64* @_gasrem, align 8 - %"$fail__origin_4785" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4785", align 1 - %"$fail__sender_4786" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4786", align 1 - %"$tname_4787" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4785", [20 x i8]* %"$fail__sender_4786", %String %"$tname_4787"), !dbg !499 - br label %"$matchsucc_4771" - -"$empty_default_4775": ; preds = %"$have_gas_4769" - br label %"$matchsucc_4771" - -"$matchsucc_4771": ; preds = %"$have_gas_4783", %"$True_4776", %"$empty_default_4775" - %"$gasrem_4788" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4789" = icmp ugt i64 1, %"$gasrem_4788" - br i1 %"$gascmp_4789", label %"$out_of_gas_4790", label %"$have_gas_4791" - -"$out_of_gas_4790": ; preds = %"$matchsucc_4771" - call void @_out_of_gas() - br label %"$have_gas_4791" - -"$have_gas_4791": ; preds = %"$out_of_gas_4790", %"$matchsucc_4771" - %"$consume_4792" = sub i64 %"$gasrem_4788", 1 - store i64 %"$consume_4792", i64* @_gasrem, align 8 - %"$indices_buf_4793_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4793_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4793_salloc_load", i64 16) - %"$indices_buf_4793_salloc" = bitcast i8* %"$indices_buf_4793_salloc_salloc" to [16 x i8]* - %"$indices_buf_4793" = bitcast [16 x i8]* %"$indices_buf_4793_salloc" to i8* - %"$key_4794" = load %String, %String* %key, align 8 - %"$indices_gep_4795" = getelementptr i8, i8* %"$indices_buf_4793", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_4795" to %String* - store %String %"$key_4794", %String* %indices_cast1, align 8 - %"$execptr_load_4796" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_4796", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4797", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_4793", i8* null), !dbg !502 + %"$indices_buf_4711_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4711_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4711_salloc_load", i64 16) + %"$indices_buf_4711_salloc" = bitcast i8* %"$indices_buf_4711_salloc_salloc" to [16 x i8]* + %"$indices_buf_4711" = bitcast [16 x i8]* %"$indices_buf_4711_salloc" to i8* + %"$key_4712" = load %String, %String* %key, align 8 + %"$indices_gep_4713" = getelementptr i8, i8* %"$indices_buf_4711", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4713" to %String* + store %String %"$key_4712", %String* %indices_cast, align 8 + %"$execptr_load_4715" = load i8*, i8** @_execptr, align 8 + %"$found_call_4716" = call i8* @_fetch_field(i8* %"$execptr_load_4715", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4714", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_4711", i32 0), !dbg !495 + %"$found_4717" = bitcast i8* %"$found_call_4716" to %TName_Bool* + store %TName_Bool* %"$found_4717", %TName_Bool** %found, align 8 + %"$found_4718" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$$found_4718_4719" = bitcast %TName_Bool* %"$found_4718" to i8* + %"$_literal_cost_call_4720" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_61", i8* %"$$found_4718_4719") + %"$gasadd_4721" = add i64 %"$_literal_cost_call_4720", 0 + %"$gasadd_4722" = add i64 %"$gasadd_4721", 1 + %"$gasrem_4723" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4724" = icmp ugt i64 %"$gasadd_4722", %"$gasrem_4723" + br i1 %"$gascmp_4724", label %"$out_of_gas_4725", label %"$have_gas_4726" + +"$out_of_gas_4725": ; preds = %"$have_gas_4708" + call void @_out_of_gas() + br label %"$have_gas_4726" + +"$have_gas_4726": ; preds = %"$out_of_gas_4725", %"$have_gas_4708" + %"$consume_4727" = sub i64 %"$gasrem_4723", %"$gasadd_4722" + store i64 %"$consume_4727", i64* @_gasrem, align 8 + %"$gasrem_4728" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4729" = icmp ugt i64 2, %"$gasrem_4728" + br i1 %"$gascmp_4729", label %"$out_of_gas_4730", label %"$have_gas_4731" + +"$out_of_gas_4730": ; preds = %"$have_gas_4726" + call void @_out_of_gas() + br label %"$have_gas_4731" + +"$have_gas_4731": ; preds = %"$out_of_gas_4730", %"$have_gas_4726" + %"$consume_4732" = sub i64 %"$gasrem_4728", 2 + store i64 %"$consume_4732", i64* @_gasrem, align 8 + %"$found_4734" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$found_tag_4735" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4734", i32 0, i32 0 + %"$found_tag_4736" = load i8, i8* %"$found_tag_4735", align 1 + switch i8 %"$found_tag_4736", label %"$empty_default_4737" [ + i8 0, label %"$True_4738" + i8 1, label %"$False_4740" + ], !dbg !496 + +"$True_4738": ; preds = %"$have_gas_4731" + %"$found_4739" = bitcast %TName_Bool* %"$found_4734" to %CName_True* + br label %"$matchsucc_4733" + +"$False_4740": ; preds = %"$have_gas_4731" + %"$found_4741" = bitcast %TName_Bool* %"$found_4734" to %CName_False* + %"$gasrem_4742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4743" = icmp ugt i64 1, %"$gasrem_4742" + br i1 %"$gascmp_4743", label %"$out_of_gas_4744", label %"$have_gas_4745" + +"$out_of_gas_4744": ; preds = %"$False_4740" + call void @_out_of_gas() + br label %"$have_gas_4745" + +"$have_gas_4745": ; preds = %"$out_of_gas_4744", %"$False_4740" + %"$consume_4746" = sub i64 %"$gasrem_4742", 1 + store i64 %"$consume_4746", i64* @_gasrem, align 8 + %"$fail__origin_4747" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4747", align 1 + %"$fail__sender_4748" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4748", align 1 + %"$tname_4749" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4747", [20 x i8]* %"$fail__sender_4748", %String %"$tname_4749"), !dbg !497 + br label %"$matchsucc_4733" + +"$empty_default_4737": ; preds = %"$have_gas_4731" + br label %"$matchsucc_4733" + +"$matchsucc_4733": ; preds = %"$have_gas_4745", %"$True_4738", %"$empty_default_4737" + %"$gasrem_4750" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4751" = icmp ugt i64 1, %"$gasrem_4750" + br i1 %"$gascmp_4751", label %"$out_of_gas_4752", label %"$have_gas_4753" + +"$out_of_gas_4752": ; preds = %"$matchsucc_4733" + call void @_out_of_gas() + br label %"$have_gas_4753" + +"$have_gas_4753": ; preds = %"$out_of_gas_4752", %"$matchsucc_4733" + %"$consume_4754" = sub i64 %"$gasrem_4750", 1 + store i64 %"$consume_4754", i64* @_gasrem, align 8 + %"$indices_buf_4755_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4755_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4755_salloc_load", i64 16) + %"$indices_buf_4755_salloc" = bitcast i8* %"$indices_buf_4755_salloc_salloc" to [16 x i8]* + %"$indices_buf_4755" = bitcast [16 x i8]* %"$indices_buf_4755_salloc" to i8* + %"$key_4756" = load %String, %String* %key, align 8 + %"$indices_gep_4757" = getelementptr i8, i8* %"$indices_buf_4755", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_4757" to %String* + store %String %"$key_4756", %String* %indices_cast1, align 8 + %"$execptr_load_4758" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_4758", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4759", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_4755", i8* null), !dbg !500 ret void } -define void @t17(i8* %0) !dbg !503 { +define void @t17(i8* %0) !dbg !501 { entry: - %"$_amount_4799" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4800" = bitcast i8* %"$_amount_4799" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4800", align 8 - %"$_origin_4801" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4802" = bitcast i8* %"$_origin_4801" to [20 x i8]* - %"$_sender_4803" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4804" = bitcast i8* %"$_sender_4803" to [20 x i8]* - call void @"$t17_4724"(%Uint128 %_amount, [20 x i8]* %"$_origin_4802", [20 x i8]* %"$_sender_4804"), !dbg !504 + %"$_amount_4761" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4762" = bitcast i8* %"$_amount_4761" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4762", align 8 + %"$_origin_4763" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4764" = bitcast i8* %"$_origin_4763" to [20 x i8]* + %"$_sender_4765" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4766" = bitcast i8* %"$_sender_4765" to [20 x i8]* + call void @"$t17_4686"(%Uint128 %_amount, [20 x i8]* %"$_origin_4764", [20 x i8]* %"$_sender_4766"), !dbg !502 ret void } -define internal void @"$t18_4805"(%Uint128 %_amount, [20 x i8]* %"$_origin_4806", [20 x i8]* %"$_sender_4807") !dbg !505 { +define internal void @"$t18_4767"(%Uint128 %_amount, [20 x i8]* %"$_origin_4768", [20 x i8]* %"$_sender_4769") !dbg !503 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4806", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4807", align 1 - %"$gasrem_4808" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4809" = icmp ugt i64 1, %"$gasrem_4808" - br i1 %"$gascmp_4809", label %"$out_of_gas_4810", label %"$have_gas_4811" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4768", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4769", align 1 + %"$gasrem_4770" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4771" = icmp ugt i64 1, %"$gasrem_4770" + br i1 %"$gascmp_4771", label %"$out_of_gas_4772", label %"$have_gas_4773" -"$out_of_gas_4810": ; preds = %entry +"$out_of_gas_4772": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_4811" + br label %"$have_gas_4773" -"$have_gas_4811": ; preds = %"$out_of_gas_4810", %entry - %"$consume_4812" = sub i64 %"$gasrem_4808", 1 - store i64 %"$consume_4812", i64* @_gasrem, align 8 +"$have_gas_4773": ; preds = %"$out_of_gas_4772", %entry + %"$consume_4774" = sub i64 %"$gasrem_4770", 1 + store i64 %"$consume_4774", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_4813" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4814" = icmp ugt i64 1, %"$gasrem_4813" - br i1 %"$gascmp_4814", label %"$out_of_gas_4815", label %"$have_gas_4816" + %"$gasrem_4775" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4776" = icmp ugt i64 1, %"$gasrem_4775" + br i1 %"$gascmp_4776", label %"$out_of_gas_4777", label %"$have_gas_4778" -"$out_of_gas_4815": ; preds = %"$have_gas_4811" +"$out_of_gas_4777": ; preds = %"$have_gas_4773" call void @_out_of_gas() - br label %"$have_gas_4816" + br label %"$have_gas_4778" -"$have_gas_4816": ; preds = %"$out_of_gas_4815", %"$have_gas_4811" - %"$consume_4817" = sub i64 %"$gasrem_4813", 1 - store i64 %"$consume_4817", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4818", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !506 - %"$gasrem_4819" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4820" = icmp ugt i64 1, %"$gasrem_4819" - br i1 %"$gascmp_4820", label %"$out_of_gas_4821", label %"$have_gas_4822" +"$have_gas_4778": ; preds = %"$out_of_gas_4777", %"$have_gas_4773" + %"$consume_4779" = sub i64 %"$gasrem_4775", 1 + store i64 %"$consume_4779", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4780", i32 0, i32 0), i32 3 }, %String* %tname, align 8, !dbg !504 + %"$gasrem_4781" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4782" = icmp ugt i64 1, %"$gasrem_4781" + br i1 %"$gascmp_4782", label %"$out_of_gas_4783", label %"$have_gas_4784" -"$out_of_gas_4821": ; preds = %"$have_gas_4816" +"$out_of_gas_4783": ; preds = %"$have_gas_4778" call void @_out_of_gas() - br label %"$have_gas_4822" + br label %"$have_gas_4784" -"$have_gas_4822": ; preds = %"$out_of_gas_4821", %"$have_gas_4816" - %"$consume_4823" = sub i64 %"$gasrem_4819", 1 - store i64 %"$consume_4823", i64* @_gasrem, align 8 +"$have_gas_4784": ; preds = %"$out_of_gas_4783", %"$have_gas_4778" + %"$consume_4785" = sub i64 %"$gasrem_4781", 1 + store i64 %"$consume_4785", i64* @_gasrem, align 8 %key = alloca %String, align 8 - %"$gasrem_4824" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4825" = icmp ugt i64 1, %"$gasrem_4824" - br i1 %"$gascmp_4825", label %"$out_of_gas_4826", label %"$have_gas_4827" + %"$gasrem_4786" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4787" = icmp ugt i64 1, %"$gasrem_4786" + br i1 %"$gascmp_4787", label %"$out_of_gas_4788", label %"$have_gas_4789" -"$out_of_gas_4826": ; preds = %"$have_gas_4822" +"$out_of_gas_4788": ; preds = %"$have_gas_4784" call void @_out_of_gas() - br label %"$have_gas_4827" + br label %"$have_gas_4789" -"$have_gas_4827": ; preds = %"$out_of_gas_4826", %"$have_gas_4822" - %"$consume_4828" = sub i64 %"$gasrem_4824", 1 - store i64 %"$consume_4828", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4829", i32 0, i32 0), i32 0 }, %String* %key, align 8, !dbg !507 +"$have_gas_4789": ; preds = %"$out_of_gas_4788", %"$have_gas_4784" + %"$consume_4790" = sub i64 %"$gasrem_4786", 1 + store i64 %"$consume_4790", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4791", i32 0, i32 0), i32 0 }, %String* %key, align 8, !dbg !505 %found = alloca %TName_Bool*, align 8 - %"$indices_buf_4830_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4830_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4830_salloc_load", i64 16) - %"$indices_buf_4830_salloc" = bitcast i8* %"$indices_buf_4830_salloc_salloc" to [16 x i8]* - %"$indices_buf_4830" = bitcast [16 x i8]* %"$indices_buf_4830_salloc" to i8* - %"$key_4831" = load %String, %String* %key, align 8 - %"$indices_gep_4832" = getelementptr i8, i8* %"$indices_buf_4830", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4832" to %String* - store %String %"$key_4831", %String* %indices_cast, align 8 - %"$execptr_load_4834" = load i8*, i8** @_execptr, align 8 - %"$found_call_4835" = call i8* @_fetch_field(i8* %"$execptr_load_4834", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4833", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_4830", i32 0), !dbg !508 - %"$found_4836" = bitcast i8* %"$found_call_4835" to %TName_Bool* - store %TName_Bool* %"$found_4836", %TName_Bool** %found, align 8 - %"$found_4837" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$$found_4837_4838" = bitcast %TName_Bool* %"$found_4837" to i8* - %"$_literal_cost_call_4839" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_69", i8* %"$$found_4837_4838") - %"$gasadd_4840" = add i64 %"$_literal_cost_call_4839", 0 - %"$gasadd_4841" = add i64 %"$gasadd_4840", 1 - %"$gasrem_4842" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4843" = icmp ugt i64 %"$gasadd_4841", %"$gasrem_4842" - br i1 %"$gascmp_4843", label %"$out_of_gas_4844", label %"$have_gas_4845" - -"$out_of_gas_4844": ; preds = %"$have_gas_4827" - call void @_out_of_gas() - br label %"$have_gas_4845" - -"$have_gas_4845": ; preds = %"$out_of_gas_4844", %"$have_gas_4827" - %"$consume_4846" = sub i64 %"$gasrem_4842", %"$gasadd_4841" - store i64 %"$consume_4846", i64* @_gasrem, align 8 - %"$gasrem_4847" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4848" = icmp ugt i64 2, %"$gasrem_4847" - br i1 %"$gascmp_4848", label %"$out_of_gas_4849", label %"$have_gas_4850" - -"$out_of_gas_4849": ; preds = %"$have_gas_4845" - call void @_out_of_gas() - br label %"$have_gas_4850" - -"$have_gas_4850": ; preds = %"$out_of_gas_4849", %"$have_gas_4845" - %"$consume_4851" = sub i64 %"$gasrem_4847", 2 - store i64 %"$consume_4851", i64* @_gasrem, align 8 - %"$found_4853" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$found_tag_4854" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4853", i32 0, i32 0 - %"$found_tag_4855" = load i8, i8* %"$found_tag_4854", align 1 - switch i8 %"$found_tag_4855", label %"$empty_default_4856" [ - i8 0, label %"$True_4857" - i8 1, label %"$False_4867" - ], !dbg !509 - -"$True_4857": ; preds = %"$have_gas_4850" - %"$found_4858" = bitcast %TName_Bool* %"$found_4853" to %CName_True* - %"$gasrem_4859" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4860" = icmp ugt i64 1, %"$gasrem_4859" - br i1 %"$gascmp_4860", label %"$out_of_gas_4861", label %"$have_gas_4862" - -"$out_of_gas_4861": ; preds = %"$True_4857" - call void @_out_of_gas() - br label %"$have_gas_4862" - -"$have_gas_4862": ; preds = %"$out_of_gas_4861", %"$True_4857" - %"$consume_4863" = sub i64 %"$gasrem_4859", 1 - store i64 %"$consume_4863", i64* @_gasrem, align 8 - %"$fail__origin_4864" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4864", align 1 - %"$fail__sender_4865" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4865", align 1 - %"$tname_4866" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4864", [20 x i8]* %"$fail__sender_4865", %String %"$tname_4866"), !dbg !510 - br label %"$matchsucc_4852" - -"$False_4867": ; preds = %"$have_gas_4850" - %"$found_4868" = bitcast %TName_Bool* %"$found_4853" to %CName_False* - br label %"$matchsucc_4852" - -"$empty_default_4856": ; preds = %"$have_gas_4850" - br label %"$matchsucc_4852" - -"$matchsucc_4852": ; preds = %"$False_4867", %"$have_gas_4862", %"$empty_default_4856" + %"$indices_buf_4792_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4792_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4792_salloc_load", i64 16) + %"$indices_buf_4792_salloc" = bitcast i8* %"$indices_buf_4792_salloc_salloc" to [16 x i8]* + %"$indices_buf_4792" = bitcast [16 x i8]* %"$indices_buf_4792_salloc" to i8* + %"$key_4793" = load %String, %String* %key, align 8 + %"$indices_gep_4794" = getelementptr i8, i8* %"$indices_buf_4792", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4794" to %String* + store %String %"$key_4793", %String* %indices_cast, align 8 + %"$execptr_load_4796" = load i8*, i8** @_execptr, align 8 + %"$found_call_4797" = call i8* @_fetch_field(i8* %"$execptr_load_4796", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4795", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_4792", i32 0), !dbg !506 + %"$found_4798" = bitcast i8* %"$found_call_4797" to %TName_Bool* + store %TName_Bool* %"$found_4798", %TName_Bool** %found, align 8 + %"$found_4799" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$$found_4799_4800" = bitcast %TName_Bool* %"$found_4799" to i8* + %"$_literal_cost_call_4801" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_61", i8* %"$$found_4799_4800") + %"$gasadd_4802" = add i64 %"$_literal_cost_call_4801", 0 + %"$gasadd_4803" = add i64 %"$gasadd_4802", 1 + %"$gasrem_4804" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4805" = icmp ugt i64 %"$gasadd_4803", %"$gasrem_4804" + br i1 %"$gascmp_4805", label %"$out_of_gas_4806", label %"$have_gas_4807" + +"$out_of_gas_4806": ; preds = %"$have_gas_4789" + call void @_out_of_gas() + br label %"$have_gas_4807" + +"$have_gas_4807": ; preds = %"$out_of_gas_4806", %"$have_gas_4789" + %"$consume_4808" = sub i64 %"$gasrem_4804", %"$gasadd_4803" + store i64 %"$consume_4808", i64* @_gasrem, align 8 + %"$gasrem_4809" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4810" = icmp ugt i64 2, %"$gasrem_4809" + br i1 %"$gascmp_4810", label %"$out_of_gas_4811", label %"$have_gas_4812" + +"$out_of_gas_4811": ; preds = %"$have_gas_4807" + call void @_out_of_gas() + br label %"$have_gas_4812" + +"$have_gas_4812": ; preds = %"$out_of_gas_4811", %"$have_gas_4807" + %"$consume_4813" = sub i64 %"$gasrem_4809", 2 + store i64 %"$consume_4813", i64* @_gasrem, align 8 + %"$found_4815" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$found_tag_4816" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4815", i32 0, i32 0 + %"$found_tag_4817" = load i8, i8* %"$found_tag_4816", align 1 + switch i8 %"$found_tag_4817", label %"$empty_default_4818" [ + i8 0, label %"$True_4819" + i8 1, label %"$False_4829" + ], !dbg !507 + +"$True_4819": ; preds = %"$have_gas_4812" + %"$found_4820" = bitcast %TName_Bool* %"$found_4815" to %CName_True* + %"$gasrem_4821" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4822" = icmp ugt i64 1, %"$gasrem_4821" + br i1 %"$gascmp_4822", label %"$out_of_gas_4823", label %"$have_gas_4824" + +"$out_of_gas_4823": ; preds = %"$True_4819" + call void @_out_of_gas() + br label %"$have_gas_4824" + +"$have_gas_4824": ; preds = %"$out_of_gas_4823", %"$True_4819" + %"$consume_4825" = sub i64 %"$gasrem_4821", 1 + store i64 %"$consume_4825", i64* @_gasrem, align 8 + %"$fail__origin_4826" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4826", align 1 + %"$fail__sender_4827" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4827", align 1 + %"$tname_4828" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4826", [20 x i8]* %"$fail__sender_4827", %String %"$tname_4828"), !dbg !508 + br label %"$matchsucc_4814" + +"$False_4829": ; preds = %"$have_gas_4812" + %"$found_4830" = bitcast %TName_Bool* %"$found_4815" to %CName_False* + br label %"$matchsucc_4814" + +"$empty_default_4818": ; preds = %"$have_gas_4812" + br label %"$matchsucc_4814" + +"$matchsucc_4814": ; preds = %"$False_4829", %"$have_gas_4824", %"$empty_default_4818" ret void } -define void @t18(i8* %0) !dbg !513 { +define void @t18(i8* %0) !dbg !511 { entry: - %"$_amount_4870" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4871" = bitcast i8* %"$_amount_4870" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4871", align 8 - %"$_origin_4872" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4873" = bitcast i8* %"$_origin_4872" to [20 x i8]* - %"$_sender_4874" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4875" = bitcast i8* %"$_sender_4874" to [20 x i8]* - call void @"$t18_4805"(%Uint128 %_amount, [20 x i8]* %"$_origin_4873", [20 x i8]* %"$_sender_4875"), !dbg !514 + %"$_amount_4832" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4833" = bitcast i8* %"$_amount_4832" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4833", align 8 + %"$_origin_4834" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4835" = bitcast i8* %"$_origin_4834" to [20 x i8]* + %"$_sender_4836" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4837" = bitcast i8* %"$_sender_4836" to [20 x i8]* + call void @"$t18_4767"(%Uint128 %_amount, [20 x i8]* %"$_origin_4835", [20 x i8]* %"$_sender_4837"), !dbg !512 ret void } @@ -9850,7 +9791,7 @@ attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } !1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) !2 = !DIFile(filename: "map_corners_test.scilla", directory: "codegen/contr") !3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_25", linkageName: "$fundef_25", scope: !5, file: !5, line: 8, type: !6, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!4 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !5, file: !5, line: 7, type: !6, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !5 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") !6 = !DISubroutineType(types: !7) !7 = !{!8} @@ -9861,503 +9802,501 @@ attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } !12 = distinct !DILexicalBlock(scope: !4, file: !5, line: 8, column: 5) !13 = !DILocation(line: 10, column: 16, scope: !14) !14 = distinct !DILexicalBlock(scope: !12, file: !5, line: 10, column: 7) -!15 = distinct !DISubprogram(name: "$fundef_23", linkageName: "$fundef_23", scope: !5, file: !5, line: 7, type: !6, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!16 = !DILocation(line: 8, column: 5, scope: !15) -!17 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !18, file: !18, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!18 = !DIFile(filename: ".", directory: ".") -!19 = !DILocation(line: 7, column: 3, scope: !17) -!20 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !18, file: !18, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!21 = !DILocation(line: 11, column: 27, scope: !20) -!22 = !DILocation(line: 12, column: 34, scope: !20) -!23 = !DILocation(line: 13, column: 47, scope: !20) -!24 = !DILocation(line: 14, column: 60, scope: !20) -!25 = !DILocation(line: 15, column: 46, scope: !20) -!26 = distinct !DISubprogram(name: "fail", linkageName: "fail", scope: !2, file: !2, line: 17, type: !6, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!27 = !DILocation(line: 18, column: 7, scope: !26) -!28 = !DILocation(line: 19, column: 3, scope: !26) -!29 = distinct !DISubprogram(name: "fail_msg", linkageName: "fail_msg", scope: !2, file: !2, line: 22, type: !6, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DILocation(line: 23, column: 7, scope: !29) -!31 = !DILocation(line: 24, column: 3, scope: !29) -!32 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 28, type: !6, scopeLine: 28, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!33 = !DILocation(line: 30, column: 14, scope: !32) -!34 = !DILocation(line: 31, column: 3, scope: !32) -!35 = !DILocation(line: 32, column: 11, scope: !32) -!36 = !DILocation(line: 33, column: 7, scope: !32) -!37 = !DILocation(line: 34, column: 3, scope: !32) -!38 = !DILocation(line: 36, column: 5, scope: !39) -!39 = distinct !DILexicalBlock(scope: !40, file: !2, line: 35, column: 5) -!40 = distinct !DILexicalBlock(scope: !32, file: !2, line: 34, column: 3) -!41 = !DILocation(line: 41, column: 12, scope: !32) -!42 = !DILocation(line: 42, column: 3, scope: !32) -!43 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 28, type: !6, scopeLine: 28, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!44 = !DILocation(line: 28, column: 12, scope: !43) -!45 = distinct !DISubprogram(name: "t2", linkageName: "t2", scope: !2, file: !2, line: 46, type: !6, scopeLine: 46, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!46 = !DILocation(line: 48, column: 14, scope: !45) -!47 = !DILocation(line: 49, column: 3, scope: !45) -!48 = !DILocation(line: 50, column: 11, scope: !45) -!49 = !DILocation(line: 51, column: 7, scope: !45) -!50 = !DILocation(line: 52, column: 3, scope: !45) -!51 = !DILocation(line: 54, column: 5, scope: !52) -!52 = distinct !DILexicalBlock(scope: !53, file: !2, line: 53, column: 5) -!53 = distinct !DILexicalBlock(scope: !45, file: !2, line: 52, column: 3) -!54 = !DILocation(line: 59, column: 15, scope: !45) -!55 = !DILocation(line: 60, column: 14, scope: !45) -!56 = !DILocation(line: 61, column: 3, scope: !45) -!57 = distinct !DISubprogram(name: "t2", linkageName: "t2", scope: !2, file: !2, line: 46, type: !6, scopeLine: 46, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!58 = !DILocation(line: 46, column: 12, scope: !57) -!59 = distinct !DISubprogram(name: "t3", linkageName: "t3", scope: !2, file: !2, line: 65, type: !6, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!60 = !DILocation(line: 66, column: 14, scope: !59) -!61 = !DILocation(line: 67, column: 11, scope: !59) -!62 = !DILocation(line: 69, column: 15, scope: !59) -!63 = !DILocation(line: 70, column: 3, scope: !59) -!64 = !DILocation(line: 71, column: 3, scope: !59) -!65 = !DILocation(line: 73, column: 9, scope: !66) -!66 = distinct !DILexicalBlock(scope: !67, file: !2, line: 72, column: 5) -!67 = distinct !DILexicalBlock(scope: !59, file: !2, line: 71, column: 3) -!68 = !DILocation(line: 74, column: 5, scope: !66) -!69 = !DILocation(line: 76, column: 35, scope: !70) -!70 = distinct !DILexicalBlock(scope: !71, file: !2, line: 75, column: 7) -!71 = distinct !DILexicalBlock(scope: !66, file: !2, line: 74, column: 5) -!72 = !DILocation(line: 77, column: 7, scope: !70) -!73 = !DILocation(line: 81, column: 5, scope: !74) -!74 = distinct !DILexicalBlock(scope: !67, file: !2, line: 80, column: 5) -!75 = !DILocation(line: 85, column: 15, scope: !59) -!76 = !DILocation(line: 86, column: 3, scope: !59) -!77 = !DILocation(line: 87, column: 3, scope: !59) -!78 = !DILocation(line: 89, column: 35, scope: !79) -!79 = distinct !DILexicalBlock(scope: !80, file: !2, line: 88, column: 5) -!80 = distinct !DILexicalBlock(scope: !59, file: !2, line: 87, column: 3) -!81 = !DILocation(line: 90, column: 5, scope: !79) -!82 = !DILocation(line: 95, column: 3, scope: !59) -!83 = distinct !DISubprogram(name: "t3", linkageName: "t3", scope: !2, file: !2, line: 65, type: !6, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!84 = !DILocation(line: 65, column: 12, scope: !83) -!85 = distinct !DISubprogram(name: "t4", linkageName: "t4", scope: !2, file: !2, line: 99, type: !6, scopeLine: 99, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!86 = !DILocation(line: 100, column: 14, scope: !85) -!87 = !DILocation(line: 103, column: 15, scope: !85) -!88 = !DILocation(line: 104, column: 3, scope: !85) -!89 = !DILocation(line: 105, column: 3, scope: !85) -!90 = !DILocation(line: 107, column: 5, scope: !91) -!91 = distinct !DILexicalBlock(scope: !92, file: !2, line: 106, column: 5) -!92 = distinct !DILexicalBlock(scope: !85, file: !2, line: 105, column: 3) -!93 = !DILocation(line: 112, column: 17, scope: !85) -!94 = !DILocation(line: 113, column: 17, scope: !85) -!95 = !DILocation(line: 114, column: 11, scope: !85) -!96 = !DILocation(line: 115, column: 3, scope: !85) -!97 = distinct !DISubprogram(name: "t4", linkageName: "t4", scope: !2, file: !2, line: 99, type: !6, scopeLine: 99, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!98 = !DILocation(line: 99, column: 12, scope: !97) -!99 = distinct !DISubprogram(name: "t5", linkageName: "t5", scope: !2, file: !2, line: 119, type: !6, scopeLine: 119, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!100 = !DILocation(line: 120, column: 14, scope: !99) -!101 = !DILocation(line: 121, column: 11, scope: !99) -!102 = !DILocation(line: 124, column: 17, scope: !99) -!103 = !DILocation(line: 125, column: 17, scope: !99) -!104 = !DILocation(line: 126, column: 3, scope: !99) -!105 = !DILocation(line: 127, column: 3, scope: !99) -!106 = !DILocation(line: 129, column: 9, scope: !107) -!107 = distinct !DILexicalBlock(scope: !108, file: !2, line: 128, column: 5) -!108 = distinct !DILexicalBlock(scope: !99, file: !2, line: 127, column: 3) -!109 = !DILocation(line: 130, column: 5, scope: !107) -!110 = !DILocation(line: 133, column: 35, scope: !111) -!111 = distinct !DILexicalBlock(scope: !112, file: !2, line: 132, column: 7) -!112 = distinct !DILexicalBlock(scope: !107, file: !2, line: 130, column: 5) -!113 = !DILocation(line: 134, column: 7, scope: !111) -!114 = !DILocation(line: 137, column: 5, scope: !115) -!115 = distinct !DILexicalBlock(scope: !108, file: !2, line: 136, column: 5) -!116 = !DILocation(line: 142, column: 13, scope: !99) -!117 = !DILocation(line: 143, column: 23, scope: !99) -!118 = !DILocation(line: 144, column: 18, scope: !99) -!119 = !DILocation(line: 145, column: 14, scope: !99) -!120 = !DILocation(line: 146, column: 23, scope: !99) -!121 = !DILocation(line: 147, column: 18, scope: !99) -!122 = !DILocation(line: 148, column: 5, scope: !99) -!123 = !DILocation(line: 149, column: 17, scope: !99) -!124 = !DILocation(line: 150, column: 3, scope: !99) -!125 = distinct !DISubprogram(name: "t5", linkageName: "t5", scope: !2, file: !2, line: 119, type: !6, scopeLine: 119, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!126 = !DILocation(line: 119, column: 12, scope: !125) -!127 = distinct !DISubprogram(name: "t6", linkageName: "t6", scope: !2, file: !2, line: 155, type: !6, scopeLine: 155, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!128 = !DILocation(line: 156, column: 14, scope: !127) -!129 = !DILocation(line: 162, column: 17, scope: !127) -!130 = !DILocation(line: 162, column: 34, scope: !127) -!131 = !DILocation(line: 163, column: 3, scope: !127) -!132 = !DILocation(line: 164, column: 3, scope: !127) -!133 = !DILocation(line: 166, column: 13, scope: !134) -!134 = distinct !DILexicalBlock(scope: !135, file: !2, line: 165, column: 5) -!135 = distinct !DILexicalBlock(scope: !127, file: !2, line: 164, column: 3) -!136 = !DILocation(line: 167, column: 10, scope: !134) -!137 = !DILocation(line: 168, column: 5, scope: !134) -!138 = !DILocation(line: 171, column: 43, scope: !139) -!139 = distinct !DILexicalBlock(scope: !140, file: !2, line: 170, column: 7) -!140 = distinct !DILexicalBlock(scope: !134, file: !2, line: 168, column: 5) -!141 = !DILocation(line: 172, column: 7, scope: !139) -!142 = !DILocation(line: 175, column: 31, scope: !143) -!143 = distinct !DILexicalBlock(scope: !135, file: !2, line: 174, column: 5) -!144 = !DILocation(line: 176, column: 5, scope: !143) -!145 = !DILocation(line: 179, column: 17, scope: !127) -!146 = !DILocation(line: 179, column: 34, scope: !127) -!147 = !DILocation(line: 180, column: 3, scope: !127) -!148 = !DILocation(line: 181, column: 3, scope: !127) -!149 = !DILocation(line: 183, column: 13, scope: !150) -!150 = distinct !DILexicalBlock(scope: !151, file: !2, line: 182, column: 5) -!151 = distinct !DILexicalBlock(scope: !127, file: !2, line: 181, column: 3) -!152 = !DILocation(line: 184, column: 10, scope: !150) -!153 = !DILocation(line: 185, column: 5, scope: !150) -!154 = !DILocation(line: 188, column: 43, scope: !155) -!155 = distinct !DILexicalBlock(scope: !156, file: !2, line: 187, column: 7) -!156 = distinct !DILexicalBlock(scope: !150, file: !2, line: 185, column: 5) -!157 = !DILocation(line: 189, column: 7, scope: !155) -!158 = !DILocation(line: 192, column: 31, scope: !159) -!159 = distinct !DILexicalBlock(scope: !151, file: !2, line: 191, column: 5) -!160 = !DILocation(line: 193, column: 5, scope: !159) -!161 = !DILocation(line: 196, column: 17, scope: !127) -!162 = !DILocation(line: 196, column: 34, scope: !127) -!163 = !DILocation(line: 197, column: 3, scope: !127) -!164 = !DILocation(line: 198, column: 3, scope: !127) -!165 = !DILocation(line: 200, column: 13, scope: !166) -!166 = distinct !DILexicalBlock(scope: !167, file: !2, line: 199, column: 5) -!167 = distinct !DILexicalBlock(scope: !127, file: !2, line: 198, column: 3) -!168 = !DILocation(line: 201, column: 10, scope: !166) -!169 = !DILocation(line: 202, column: 5, scope: !166) -!170 = !DILocation(line: 205, column: 43, scope: !171) -!171 = distinct !DILexicalBlock(scope: !172, file: !2, line: 204, column: 7) -!172 = distinct !DILexicalBlock(scope: !166, file: !2, line: 202, column: 5) -!173 = !DILocation(line: 206, column: 7, scope: !171) -!174 = !DILocation(line: 209, column: 31, scope: !175) -!175 = distinct !DILexicalBlock(scope: !167, file: !2, line: 208, column: 5) -!176 = !DILocation(line: 210, column: 5, scope: !175) -!177 = !DILocation(line: 214, column: 3, scope: !127) -!178 = distinct !DISubprogram(name: "t6", linkageName: "t6", scope: !2, file: !2, line: 155, type: !6, scopeLine: 155, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!179 = !DILocation(line: 155, column: 12, scope: !178) -!180 = distinct !DISubprogram(name: "t7", linkageName: "t7", scope: !2, file: !2, line: 219, type: !6, scopeLine: 219, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!181 = !DILocation(line: 220, column: 14, scope: !180) -!182 = !DILocation(line: 224, column: 17, scope: !180) -!183 = !DILocation(line: 224, column: 34, scope: !180) -!184 = !DILocation(line: 225, column: 3, scope: !180) -!185 = !DILocation(line: 226, column: 3, scope: !180) -!186 = !DILocation(line: 228, column: 13, scope: !187) -!187 = distinct !DILexicalBlock(scope: !188, file: !2, line: 227, column: 5) -!188 = distinct !DILexicalBlock(scope: !180, file: !2, line: 226, column: 3) -!189 = !DILocation(line: 229, column: 10, scope: !187) -!190 = !DILocation(line: 230, column: 5, scope: !187) -!191 = !DILocation(line: 233, column: 43, scope: !192) -!192 = distinct !DILexicalBlock(scope: !193, file: !2, line: 232, column: 7) -!193 = distinct !DILexicalBlock(scope: !187, file: !2, line: 230, column: 5) -!194 = !DILocation(line: 234, column: 7, scope: !192) -!195 = !DILocation(line: 237, column: 31, scope: !196) -!196 = distinct !DILexicalBlock(scope: !188, file: !2, line: 236, column: 5) -!197 = !DILocation(line: 238, column: 5, scope: !196) -!198 = !DILocation(line: 242, column: 17, scope: !180) -!199 = !DILocation(line: 243, column: 3, scope: !180) -!200 = !DILocation(line: 244, column: 3, scope: !180) -!201 = !DILocation(line: 246, column: 48, scope: !202) -!202 = distinct !DILexicalBlock(scope: !203, file: !2, line: 245, column: 5) -!203 = distinct !DILexicalBlock(scope: !180, file: !2, line: 244, column: 3) -!204 = !DILocation(line: 247, column: 7, scope: !202) -!205 = !DILocation(line: 252, column: 17, scope: !180) -!206 = !DILocation(line: 252, column: 34, scope: !180) -!207 = !DILocation(line: 253, column: 3, scope: !180) -!208 = !DILocation(line: 254, column: 3, scope: !180) -!209 = !DILocation(line: 256, column: 54, scope: !210) -!210 = distinct !DILexicalBlock(scope: !211, file: !2, line: 255, column: 5) -!211 = distinct !DILexicalBlock(scope: !180, file: !2, line: 254, column: 3) -!212 = !DILocation(line: 257, column: 7, scope: !210) -!213 = !DILocation(line: 262, column: 17, scope: !180) -!214 = !DILocation(line: 262, column: 34, scope: !180) -!215 = !DILocation(line: 263, column: 3, scope: !180) -!216 = !DILocation(line: 264, column: 3, scope: !180) -!217 = !DILocation(line: 266, column: 54, scope: !218) -!218 = distinct !DILexicalBlock(scope: !219, file: !2, line: 265, column: 5) -!219 = distinct !DILexicalBlock(scope: !180, file: !2, line: 264, column: 3) -!220 = !DILocation(line: 267, column: 7, scope: !218) -!221 = !DILocation(line: 272, column: 17, scope: !180) -!222 = !DILocation(line: 272, column: 34, scope: !180) -!223 = !DILocation(line: 273, column: 11, scope: !180) -!224 = !DILocation(line: 274, column: 3, scope: !180) -!225 = distinct !DISubprogram(name: "t7", linkageName: "t7", scope: !2, file: !2, line: 219, type: !6, scopeLine: 219, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!226 = !DILocation(line: 219, column: 12, scope: !225) -!227 = distinct !DISubprogram(name: "t8", linkageName: "t8", scope: !2, file: !2, line: 279, type: !6, scopeLine: 279, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!228 = !DILocation(line: 280, column: 14, scope: !227) -!229 = !DILocation(line: 285, column: 17, scope: !227) -!230 = !DILocation(line: 285, column: 34, scope: !227) -!231 = !DILocation(line: 286, column: 3, scope: !227) -!232 = !DILocation(line: 287, column: 3, scope: !227) -!233 = !DILocation(line: 289, column: 13, scope: !234) -!234 = distinct !DILexicalBlock(scope: !235, file: !2, line: 288, column: 5) -!235 = distinct !DILexicalBlock(scope: !227, file: !2, line: 287, column: 3) -!236 = !DILocation(line: 290, column: 10, scope: !234) -!237 = !DILocation(line: 291, column: 5, scope: !234) -!238 = !DILocation(line: 294, column: 43, scope: !239) -!239 = distinct !DILexicalBlock(scope: !240, file: !2, line: 293, column: 7) -!240 = distinct !DILexicalBlock(scope: !234, file: !2, line: 291, column: 5) -!241 = !DILocation(line: 295, column: 7, scope: !239) -!242 = !DILocation(line: 298, column: 31, scope: !243) -!243 = distinct !DILexicalBlock(scope: !235, file: !2, line: 297, column: 5) -!244 = !DILocation(line: 299, column: 5, scope: !243) -!245 = !DILocation(line: 302, column: 17, scope: !227) -!246 = !DILocation(line: 302, column: 34, scope: !227) -!247 = !DILocation(line: 303, column: 3, scope: !227) -!248 = !DILocation(line: 304, column: 3, scope: !227) -!249 = !DILocation(line: 306, column: 13, scope: !250) -!250 = distinct !DILexicalBlock(scope: !251, file: !2, line: 305, column: 5) -!251 = distinct !DILexicalBlock(scope: !227, file: !2, line: 304, column: 3) -!252 = !DILocation(line: 307, column: 10, scope: !250) -!253 = !DILocation(line: 308, column: 5, scope: !250) -!254 = !DILocation(line: 311, column: 43, scope: !255) -!255 = distinct !DILexicalBlock(scope: !256, file: !2, line: 310, column: 7) -!256 = distinct !DILexicalBlock(scope: !250, file: !2, line: 308, column: 5) -!257 = !DILocation(line: 312, column: 7, scope: !255) -!258 = !DILocation(line: 315, column: 31, scope: !259) -!259 = distinct !DILexicalBlock(scope: !251, file: !2, line: 314, column: 5) -!260 = !DILocation(line: 316, column: 5, scope: !259) -!261 = !DILocation(line: 320, column: 8, scope: !227) -!262 = !DILocation(line: 321, column: 3, scope: !227) -!263 = distinct !DISubprogram(name: "t8", linkageName: "t8", scope: !2, file: !2, line: 279, type: !6, scopeLine: 279, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!264 = !DILocation(line: 279, column: 12, scope: !263) -!265 = distinct !DISubprogram(name: "t9", linkageName: "t9", scope: !2, file: !2, line: 326, type: !6, scopeLine: 326, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!266 = !DILocation(line: 327, column: 14, scope: !265) -!267 = !DILocation(line: 330, column: 3, scope: !265) -!268 = !DILocation(line: 331, column: 13, scope: !265) -!269 = !DILocation(line: 332, column: 10, scope: !265) -!270 = !DILocation(line: 333, column: 14, scope: !265) -!271 = !DILocation(line: 334, column: 3, scope: !265) -!272 = !DILocation(line: 337, column: 5, scope: !273) -!273 = distinct !DILexicalBlock(scope: !274, file: !2, line: 336, column: 5) -!274 = distinct !DILexicalBlock(scope: !265, file: !2, line: 334, column: 3) -!275 = !DILocation(line: 341, column: 17, scope: !265) -!276 = !DILocation(line: 342, column: 13, scope: !265) -!277 = !DILocation(line: 343, column: 8, scope: !265) -!278 = !DILocation(line: 344, column: 3, scope: !265) -!279 = distinct !DISubprogram(name: "t9", linkageName: "t9", scope: !2, file: !2, line: 326, type: !6, scopeLine: 326, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!280 = !DILocation(line: 326, column: 12, scope: !279) -!281 = distinct !DISubprogram(name: "t10", linkageName: "t10", scope: !2, file: !2, line: 348, type: !6, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!282 = !DILocation(line: 349, column: 15, scope: !281) -!283 = !DILocation(line: 353, column: 17, scope: !281) -!284 = !DILocation(line: 354, column: 3, scope: !281) -!285 = !DILocation(line: 355, column: 8, scope: !281) -!286 = !DILocation(line: 356, column: 3, scope: !281) -!287 = !DILocation(line: 358, column: 13, scope: !288) -!288 = distinct !DILexicalBlock(scope: !289, file: !2, line: 357, column: 5) -!289 = distinct !DILexicalBlock(scope: !281, file: !2, line: 356, column: 3) -!290 = !DILocation(line: 359, column: 10, scope: !288) -!291 = !DILocation(line: 360, column: 5, scope: !288) -!292 = !DILocation(line: 363, column: 37, scope: !293) -!293 = distinct !DILexicalBlock(scope: !294, file: !2, line: 362, column: 7) -!294 = distinct !DILexicalBlock(scope: !288, file: !2, line: 360, column: 5) -!295 = !DILocation(line: 364, column: 7, scope: !293) -!296 = !DILocation(line: 367, column: 25, scope: !297) -!297 = distinct !DILexicalBlock(scope: !289, file: !2, line: 366, column: 5) -!298 = !DILocation(line: 368, column: 5, scope: !297) -!299 = !DILocation(line: 372, column: 3, scope: !281) -!300 = distinct !DISubprogram(name: "t10", linkageName: "t10", scope: !2, file: !2, line: 348, type: !6, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!301 = !DILocation(line: 348, column: 12, scope: !300) -!302 = distinct !DISubprogram(name: "t11", linkageName: "t11", scope: !2, file: !2, line: 377, type: !6, scopeLine: 377, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!303 = !DILocation(line: 378, column: 15, scope: !302) -!304 = !DILocation(line: 381, column: 3, scope: !302) -!305 = !DILocation(line: 382, column: 13, scope: !302) -!306 = !DILocation(line: 383, column: 10, scope: !302) -!307 = !DILocation(line: 384, column: 14, scope: !302) -!308 = !DILocation(line: 385, column: 3, scope: !302) -!309 = !DILocation(line: 388, column: 5, scope: !310) -!310 = distinct !DILexicalBlock(scope: !311, file: !2, line: 387, column: 5) -!311 = distinct !DILexicalBlock(scope: !302, file: !2, line: 385, column: 3) -!312 = !DILocation(line: 392, column: 8, scope: !302) -!313 = !DILocation(line: 393, column: 3, scope: !302) -!314 = distinct !DISubprogram(name: "t11", linkageName: "t11", scope: !2, file: !2, line: 377, type: !6, scopeLine: 377, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!315 = !DILocation(line: 377, column: 12, scope: !314) -!316 = distinct !DISubprogram(name: "t12", linkageName: "t12", scope: !2, file: !2, line: 397, type: !6, scopeLine: 397, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!317 = !DILocation(line: 398, column: 15, scope: !316) -!318 = !DILocation(line: 401, column: 3, scope: !316) -!319 = !DILocation(line: 402, column: 13, scope: !316) -!320 = !DILocation(line: 403, column: 10, scope: !316) -!321 = !DILocation(line: 404, column: 14, scope: !316) -!322 = !DILocation(line: 405, column: 3, scope: !316) -!323 = !DILocation(line: 408, column: 5, scope: !324) -!324 = distinct !DILexicalBlock(scope: !325, file: !2, line: 407, column: 5) -!325 = distinct !DILexicalBlock(scope: !316, file: !2, line: 405, column: 3) -!326 = !DILocation(line: 412, column: 8, scope: !316) -!327 = !DILocation(line: 413, column: 17, scope: !316) -!328 = !DILocation(line: 414, column: 3, scope: !316) -!329 = distinct !DISubprogram(name: "t12", linkageName: "t12", scope: !2, file: !2, line: 397, type: !6, scopeLine: 397, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!330 = !DILocation(line: 397, column: 12, scope: !329) -!331 = distinct !DISubprogram(name: "t13", linkageName: "t13", scope: !2, file: !2, line: 418, type: !6, scopeLine: 418, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!332 = !DILocation(line: 419, column: 15, scope: !331) -!333 = !DILocation(line: 422, column: 17, scope: !331) -!334 = !DILocation(line: 423, column: 3, scope: !331) -!335 = !DILocation(line: 424, column: 3, scope: !331) -!336 = !DILocation(line: 426, column: 14, scope: !337) -!337 = distinct !DILexicalBlock(scope: !338, file: !2, line: 425, column: 5) -!338 = distinct !DILexicalBlock(scope: !331, file: !2, line: 424, column: 3) -!339 = !DILocation(line: 427, column: 12, scope: !337) -!340 = !DILocation(line: 428, column: 16, scope: !337) -!341 = !DILocation(line: 429, column: 5, scope: !337) -!342 = !DILocation(line: 432, column: 43, scope: !343) -!343 = distinct !DILexicalBlock(scope: !344, file: !2, line: 431, column: 7) -!344 = distinct !DILexicalBlock(scope: !337, file: !2, line: 429, column: 5) -!345 = !DILocation(line: 433, column: 7, scope: !343) -!346 = !DILocation(line: 436, column: 5, scope: !347) -!347 = distinct !DILexicalBlock(scope: !338, file: !2, line: 435, column: 5) -!348 = !DILocation(line: 440, column: 8, scope: !331) -!349 = !DILocation(line: 442, column: 23, scope: !331) -!350 = !DILocation(line: 443, column: 13, scope: !331) -!351 = !DILocation(line: 444, column: 5, scope: !331) -!352 = !DILocation(line: 446, column: 13, scope: !331) -!353 = !DILocation(line: 447, column: 5, scope: !331) -!354 = !DILocation(line: 449, column: 3, scope: !331) -!355 = distinct !DISubprogram(name: "t13", linkageName: "t13", scope: !2, file: !2, line: 418, type: !6, scopeLine: 418, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!356 = !DILocation(line: 418, column: 12, scope: !355) -!357 = distinct !DISubprogram(name: "t14", linkageName: "t14", scope: !2, file: !2, line: 454, type: !6, scopeLine: 454, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!358 = !DILocation(line: 455, column: 15, scope: !357) -!359 = !DILocation(line: 458, column: 3, scope: !357) -!360 = !DILocation(line: 459, column: 13, scope: !357) -!361 = !DILocation(line: 460, column: 9, scope: !357) -!362 = !DILocation(line: 461, column: 14, scope: !357) -!363 = !DILocation(line: 462, column: 3, scope: !357) -!364 = !DILocation(line: 465, column: 5, scope: !365) -!365 = distinct !DILexicalBlock(scope: !366, file: !2, line: 464, column: 5) -!366 = distinct !DILexicalBlock(scope: !357, file: !2, line: 462, column: 3) -!367 = !DILocation(line: 469, column: 6, scope: !357) -!368 = !DILocation(line: 470, column: 2, scope: !357) -!369 = distinct !DISubprogram(name: "t14", linkageName: "t14", scope: !2, file: !2, line: 454, type: !6, scopeLine: 454, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!370 = !DILocation(line: 454, column: 12, scope: !369) -!371 = distinct !DISubprogram(name: "t15", linkageName: "t15", scope: !2, file: !2, line: 475, type: !6, scopeLine: 475, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!372 = !DILocation(line: 476, column: 15, scope: !371) -!373 = !DILocation(line: 479, column: 3, scope: !371) -!374 = !DILocation(line: 480, column: 13, scope: !371) -!375 = !DILocation(line: 481, column: 9, scope: !371) -!376 = !DILocation(line: 482, column: 12, scope: !371) -!377 = !DILocation(line: 483, column: 3, scope: !371) -!378 = !DILocation(line: 486, column: 34, scope: !379) -!379 = distinct !DILexicalBlock(scope: !380, file: !2, line: 485, column: 5) -!380 = distinct !DILexicalBlock(scope: !371, file: !2, line: 483, column: 3) -!381 = !DILocation(line: 487, column: 5, scope: !379) -!382 = !DILocation(line: 490, column: 17, scope: !371) -!383 = !DILocation(line: 491, column: 17, scope: !371) -!384 = !DILocation(line: 492, column: 9, scope: !371) -!385 = !DILocation(line: 493, column: 3, scope: !371) -!386 = !DILocation(line: 495, column: 15, scope: !387) -!387 = distinct !DILexicalBlock(scope: !388, file: !2, line: 494, column: 5) -!388 = distinct !DILexicalBlock(scope: !371, file: !2, line: 493, column: 3) -!389 = !DILocation(line: 496, column: 16, scope: !387) -!390 = !DILocation(line: 497, column: 5, scope: !387) -!391 = !DILocation(line: 499, column: 13, scope: !392) -!392 = distinct !DILexicalBlock(scope: !393, file: !2, line: 498, column: 7) -!393 = distinct !DILexicalBlock(scope: !387, file: !2, line: 497, column: 5) -!394 = !DILocation(line: 500, column: 7, scope: !392) -!395 = !DILocation(line: 502, column: 19, scope: !396) -!396 = distinct !DILexicalBlock(scope: !397, file: !2, line: 501, column: 9) -!397 = distinct !DILexicalBlock(scope: !392, file: !2, line: 500, column: 7) -!398 = !DILocation(line: 503, column: 16, scope: !396) -!399 = !DILocation(line: 504, column: 20, scope: !396) -!400 = !DILocation(line: 505, column: 9, scope: !396) -!401 = !DILocation(line: 508, column: 54, scope: !402) -!402 = distinct !DILexicalBlock(scope: !403, file: !2, line: 507, column: 11) -!403 = distinct !DILexicalBlock(scope: !396, file: !2, line: 505, column: 9) -!404 = !DILocation(line: 509, column: 11, scope: !402) -!405 = !DILocation(line: 512, column: 35, scope: !406) -!406 = distinct !DILexicalBlock(scope: !397, file: !2, line: 511, column: 9) -!407 = !DILocation(line: 513, column: 9, scope: !406) -!408 = !DILocation(line: 516, column: 42, scope: !409) -!409 = distinct !DILexicalBlock(scope: !393, file: !2, line: 515, column: 7) -!410 = !DILocation(line: 517, column: 7, scope: !409) -!411 = !DILocation(line: 520, column: 31, scope: !412) -!412 = distinct !DILexicalBlock(scope: !388, file: !2, line: 519, column: 5) -!413 = !DILocation(line: 521, column: 5, scope: !412) -!414 = !DILocation(line: 525, column: 17, scope: !371) -!415 = !DILocation(line: 525, column: 34, scope: !371) -!416 = !DILocation(line: 526, column: 17, scope: !371) -!417 = !DILocation(line: 526, column: 34, scope: !371) -!418 = !DILocation(line: 527, column: 17, scope: !371) -!419 = !DILocation(line: 527, column: 34, scope: !371) -!420 = !DILocation(line: 528, column: 12, scope: !371) -!421 = !DILocation(line: 528, column: 24, scope: !371) -!422 = !DILocation(line: 528, column: 36, scope: !371) -!423 = !DILocation(line: 528, column: 48, scope: !371) -!424 = !DILocation(line: 529, column: 8, scope: !371) -!425 = !DILocation(line: 530, column: 8, scope: !371) -!426 = !DILocation(line: 532, column: 15, scope: !371) -!427 = !DILocation(line: 533, column: 15, scope: !371) -!428 = !DILocation(line: 534, column: 15, scope: !371) -!429 = !DILocation(line: 535, column: 15, scope: !371) -!430 = !DILocation(line: 536, column: 15, scope: !371) -!431 = !DILocation(line: 537, column: 15, scope: !371) -!432 = !DILocation(line: 538, column: 15, scope: !371) -!433 = !DILocation(line: 539, column: 15, scope: !371) -!434 = !DILocation(line: 540, column: 5, scope: !371) -!435 = !DILocation(line: 541, column: 3, scope: !371) -!436 = distinct !DISubprogram(name: "t15", linkageName: "t15", scope: !2, file: !2, line: 475, type: !6, scopeLine: 475, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!437 = !DILocation(line: 475, column: 12, scope: !436) -!438 = distinct !DISubprogram(name: "t16", linkageName: "t16", scope: !2, file: !2, line: 545, type: !6, scopeLine: 545, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!439 = !DILocation(line: 546, column: 15, scope: !438) -!440 = !DILocation(line: 553, column: 17, scope: !438) -!441 = !DILocation(line: 553, column: 34, scope: !438) -!442 = !DILocation(line: 554, column: 17, scope: !438) -!443 = !DILocation(line: 554, column: 34, scope: !438) -!444 = !DILocation(line: 555, column: 17, scope: !438) -!445 = !DILocation(line: 555, column: 34, scope: !438) -!446 = !DILocation(line: 556, column: 17, scope: !438) -!447 = !DILocation(line: 556, column: 34, scope: !438) -!448 = !DILocation(line: 558, column: 3, scope: !438) -!449 = !DILocation(line: 559, column: 3, scope: !438) -!450 = !DILocation(line: 560, column: 3, scope: !438) -!451 = !DILocation(line: 561, column: 3, scope: !438) -!452 = !DILocation(line: 562, column: 12, scope: !438) -!453 = !DILocation(line: 562, column: 24, scope: !438) -!454 = !DILocation(line: 562, column: 36, scope: !438) -!455 = !DILocation(line: 562, column: 48, scope: !438) -!456 = !DILocation(line: 564, column: 8, scope: !438) -!457 = !DILocation(line: 566, column: 9, scope: !458) -!458 = distinct !DILexicalBlock(scope: !459, file: !2, line: 565, column: 9) -!459 = distinct !DILexicalBlock(scope: !438, file: !2, line: 564, column: 8) -!460 = !DILocation(line: 567, column: 17, scope: !461) -!461 = distinct !DILexicalBlock(scope: !459, file: !2, line: 567, column: 9) -!462 = !DILocation(line: 570, column: 8, scope: !438) -!463 = !DILocation(line: 572, column: 9, scope: !464) -!464 = distinct !DILexicalBlock(scope: !465, file: !2, line: 571, column: 9) -!465 = distinct !DILexicalBlock(scope: !438, file: !2, line: 570, column: 8) -!466 = !DILocation(line: 573, column: 17, scope: !467) -!467 = distinct !DILexicalBlock(scope: !465, file: !2, line: 573, column: 9) -!468 = !DILocation(line: 576, column: 8, scope: !438) -!469 = !DILocation(line: 578, column: 9, scope: !470) -!470 = distinct !DILexicalBlock(scope: !471, file: !2, line: 577, column: 9) -!471 = distinct !DILexicalBlock(scope: !438, file: !2, line: 576, column: 8) -!472 = !DILocation(line: 579, column: 17, scope: !473) -!473 = distinct !DILexicalBlock(scope: !471, file: !2, line: 579, column: 9) -!474 = !DILocation(line: 582, column: 8, scope: !438) -!475 = !DILocation(line: 584, column: 9, scope: !476) -!476 = distinct !DILexicalBlock(scope: !477, file: !2, line: 583, column: 9) -!477 = distinct !DILexicalBlock(scope: !438, file: !2, line: 582, column: 8) -!478 = !DILocation(line: 585, column: 17, scope: !479) -!479 = distinct !DILexicalBlock(scope: !477, file: !2, line: 585, column: 9) -!480 = !DILocation(line: 589, column: 14, scope: !438) -!481 = !DILocation(line: 590, column: 14, scope: !438) -!482 = !DILocation(line: 591, column: 5, scope: !438) -!483 = !DILocation(line: 593, column: 3, scope: !438) -!484 = !DILocation(line: 596, column: 5, scope: !485) -!485 = distinct !DILexicalBlock(scope: !486, file: !2, line: 595, column: 5) -!486 = distinct !DILexicalBlock(scope: !438, file: !2, line: 593, column: 3) -!487 = !DILocation(line: 601, column: 14, scope: !438) -!488 = !DILocation(line: 602, column: 17, scope: !438) -!489 = !DILocation(line: 603, column: 13, scope: !438) -!490 = !DILocation(line: 604, column: 5, scope: !438) -!491 = !DILocation(line: 606, column: 3, scope: !438) -!492 = distinct !DISubprogram(name: "t16", linkageName: "t16", scope: !2, file: !2, line: 545, type: !6, scopeLine: 545, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!493 = !DILocation(line: 545, column: 12, scope: !492) -!494 = distinct !DISubprogram(name: "t17", linkageName: "t17", scope: !2, file: !2, line: 611, type: !6, scopeLine: 611, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!495 = !DILocation(line: 613, column: 15, scope: !494) -!496 = !DILocation(line: 617, column: 10, scope: !494) -!497 = !DILocation(line: 618, column: 3, scope: !494) -!498 = !DILocation(line: 619, column: 3, scope: !494) -!499 = !DILocation(line: 622, column: 5, scope: !500) -!500 = distinct !DILexicalBlock(scope: !501, file: !2, line: 621, column: 5) -!501 = distinct !DILexicalBlock(scope: !494, file: !2, line: 619, column: 3) -!502 = !DILocation(line: 626, column: 3, scope: !494) -!503 = distinct !DISubprogram(name: "t17", linkageName: "t17", scope: !2, file: !2, line: 611, type: !6, scopeLine: 611, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!504 = !DILocation(line: 611, column: 12, scope: !503) -!505 = distinct !DISubprogram(name: "t18", linkageName: "t18", scope: !2, file: !2, line: 630, type: !6, scopeLine: 630, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!506 = !DILocation(line: 632, column: 15, scope: !505) -!507 = !DILocation(line: 636, column: 10, scope: !505) -!508 = !DILocation(line: 637, column: 3, scope: !505) -!509 = !DILocation(line: 638, column: 3, scope: !505) -!510 = !DILocation(line: 640, column: 5, scope: !511) -!511 = distinct !DILexicalBlock(scope: !512, file: !2, line: 639, column: 5) -!512 = distinct !DILexicalBlock(scope: !505, file: !2, line: 638, column: 3) -!513 = distinct !DISubprogram(name: "t18", linkageName: "t18", scope: !2, file: !2, line: 630, type: !6, scopeLine: 630, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!514 = !DILocation(line: 630, column: 12, scope: !513) +!15 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !16, file: !16, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!16 = !DIFile(filename: ".", directory: ".") +!17 = !DILocation(line: 7, column: 3, scope: !15) +!18 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !16, file: !16, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!19 = !DILocation(line: 11, column: 27, scope: !18) +!20 = !DILocation(line: 12, column: 34, scope: !18) +!21 = !DILocation(line: 13, column: 47, scope: !18) +!22 = !DILocation(line: 14, column: 60, scope: !18) +!23 = !DILocation(line: 15, column: 46, scope: !18) +!24 = distinct !DISubprogram(name: "fail", linkageName: "fail", scope: !2, file: !2, line: 17, type: !6, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!25 = !DILocation(line: 18, column: 7, scope: !24) +!26 = !DILocation(line: 19, column: 3, scope: !24) +!27 = distinct !DISubprogram(name: "fail_msg", linkageName: "fail_msg", scope: !2, file: !2, line: 22, type: !6, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!28 = !DILocation(line: 23, column: 7, scope: !27) +!29 = !DILocation(line: 24, column: 3, scope: !27) +!30 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 28, type: !6, scopeLine: 28, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!31 = !DILocation(line: 30, column: 14, scope: !30) +!32 = !DILocation(line: 31, column: 3, scope: !30) +!33 = !DILocation(line: 32, column: 11, scope: !30) +!34 = !DILocation(line: 33, column: 7, scope: !30) +!35 = !DILocation(line: 34, column: 3, scope: !30) +!36 = !DILocation(line: 36, column: 5, scope: !37) +!37 = distinct !DILexicalBlock(scope: !38, file: !2, line: 35, column: 5) +!38 = distinct !DILexicalBlock(scope: !30, file: !2, line: 34, column: 3) +!39 = !DILocation(line: 41, column: 12, scope: !30) +!40 = !DILocation(line: 42, column: 3, scope: !30) +!41 = distinct !DISubprogram(name: "t1", linkageName: "t1", scope: !2, file: !2, line: 28, type: !6, scopeLine: 28, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!42 = !DILocation(line: 28, column: 12, scope: !41) +!43 = distinct !DISubprogram(name: "t2", linkageName: "t2", scope: !2, file: !2, line: 46, type: !6, scopeLine: 46, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!44 = !DILocation(line: 48, column: 14, scope: !43) +!45 = !DILocation(line: 49, column: 3, scope: !43) +!46 = !DILocation(line: 50, column: 11, scope: !43) +!47 = !DILocation(line: 51, column: 7, scope: !43) +!48 = !DILocation(line: 52, column: 3, scope: !43) +!49 = !DILocation(line: 54, column: 5, scope: !50) +!50 = distinct !DILexicalBlock(scope: !51, file: !2, line: 53, column: 5) +!51 = distinct !DILexicalBlock(scope: !43, file: !2, line: 52, column: 3) +!52 = !DILocation(line: 59, column: 15, scope: !43) +!53 = !DILocation(line: 60, column: 14, scope: !43) +!54 = !DILocation(line: 61, column: 3, scope: !43) +!55 = distinct !DISubprogram(name: "t2", linkageName: "t2", scope: !2, file: !2, line: 46, type: !6, scopeLine: 46, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!56 = !DILocation(line: 46, column: 12, scope: !55) +!57 = distinct !DISubprogram(name: "t3", linkageName: "t3", scope: !2, file: !2, line: 65, type: !6, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!58 = !DILocation(line: 66, column: 14, scope: !57) +!59 = !DILocation(line: 67, column: 11, scope: !57) +!60 = !DILocation(line: 69, column: 15, scope: !57) +!61 = !DILocation(line: 70, column: 3, scope: !57) +!62 = !DILocation(line: 71, column: 3, scope: !57) +!63 = !DILocation(line: 73, column: 9, scope: !64) +!64 = distinct !DILexicalBlock(scope: !65, file: !2, line: 72, column: 5) +!65 = distinct !DILexicalBlock(scope: !57, file: !2, line: 71, column: 3) +!66 = !DILocation(line: 74, column: 5, scope: !64) +!67 = !DILocation(line: 76, column: 35, scope: !68) +!68 = distinct !DILexicalBlock(scope: !69, file: !2, line: 75, column: 7) +!69 = distinct !DILexicalBlock(scope: !64, file: !2, line: 74, column: 5) +!70 = !DILocation(line: 77, column: 7, scope: !68) +!71 = !DILocation(line: 81, column: 5, scope: !72) +!72 = distinct !DILexicalBlock(scope: !65, file: !2, line: 80, column: 5) +!73 = !DILocation(line: 85, column: 15, scope: !57) +!74 = !DILocation(line: 86, column: 3, scope: !57) +!75 = !DILocation(line: 87, column: 3, scope: !57) +!76 = !DILocation(line: 89, column: 35, scope: !77) +!77 = distinct !DILexicalBlock(scope: !78, file: !2, line: 88, column: 5) +!78 = distinct !DILexicalBlock(scope: !57, file: !2, line: 87, column: 3) +!79 = !DILocation(line: 90, column: 5, scope: !77) +!80 = !DILocation(line: 95, column: 3, scope: !57) +!81 = distinct !DISubprogram(name: "t3", linkageName: "t3", scope: !2, file: !2, line: 65, type: !6, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!82 = !DILocation(line: 65, column: 12, scope: !81) +!83 = distinct !DISubprogram(name: "t4", linkageName: "t4", scope: !2, file: !2, line: 99, type: !6, scopeLine: 99, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!84 = !DILocation(line: 100, column: 14, scope: !83) +!85 = !DILocation(line: 103, column: 15, scope: !83) +!86 = !DILocation(line: 104, column: 3, scope: !83) +!87 = !DILocation(line: 105, column: 3, scope: !83) +!88 = !DILocation(line: 107, column: 5, scope: !89) +!89 = distinct !DILexicalBlock(scope: !90, file: !2, line: 106, column: 5) +!90 = distinct !DILexicalBlock(scope: !83, file: !2, line: 105, column: 3) +!91 = !DILocation(line: 112, column: 17, scope: !83) +!92 = !DILocation(line: 113, column: 17, scope: !83) +!93 = !DILocation(line: 114, column: 11, scope: !83) +!94 = !DILocation(line: 115, column: 3, scope: !83) +!95 = distinct !DISubprogram(name: "t4", linkageName: "t4", scope: !2, file: !2, line: 99, type: !6, scopeLine: 99, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!96 = !DILocation(line: 99, column: 12, scope: !95) +!97 = distinct !DISubprogram(name: "t5", linkageName: "t5", scope: !2, file: !2, line: 119, type: !6, scopeLine: 119, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!98 = !DILocation(line: 120, column: 14, scope: !97) +!99 = !DILocation(line: 121, column: 11, scope: !97) +!100 = !DILocation(line: 124, column: 17, scope: !97) +!101 = !DILocation(line: 125, column: 17, scope: !97) +!102 = !DILocation(line: 126, column: 3, scope: !97) +!103 = !DILocation(line: 127, column: 3, scope: !97) +!104 = !DILocation(line: 129, column: 9, scope: !105) +!105 = distinct !DILexicalBlock(scope: !106, file: !2, line: 128, column: 5) +!106 = distinct !DILexicalBlock(scope: !97, file: !2, line: 127, column: 3) +!107 = !DILocation(line: 130, column: 5, scope: !105) +!108 = !DILocation(line: 133, column: 35, scope: !109) +!109 = distinct !DILexicalBlock(scope: !110, file: !2, line: 132, column: 7) +!110 = distinct !DILexicalBlock(scope: !105, file: !2, line: 130, column: 5) +!111 = !DILocation(line: 134, column: 7, scope: !109) +!112 = !DILocation(line: 137, column: 5, scope: !113) +!113 = distinct !DILexicalBlock(scope: !106, file: !2, line: 136, column: 5) +!114 = !DILocation(line: 142, column: 13, scope: !97) +!115 = !DILocation(line: 143, column: 23, scope: !97) +!116 = !DILocation(line: 144, column: 18, scope: !97) +!117 = !DILocation(line: 145, column: 14, scope: !97) +!118 = !DILocation(line: 146, column: 23, scope: !97) +!119 = !DILocation(line: 147, column: 18, scope: !97) +!120 = !DILocation(line: 148, column: 5, scope: !97) +!121 = !DILocation(line: 149, column: 17, scope: !97) +!122 = !DILocation(line: 150, column: 3, scope: !97) +!123 = distinct !DISubprogram(name: "t5", linkageName: "t5", scope: !2, file: !2, line: 119, type: !6, scopeLine: 119, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!124 = !DILocation(line: 119, column: 12, scope: !123) +!125 = distinct !DISubprogram(name: "t6", linkageName: "t6", scope: !2, file: !2, line: 155, type: !6, scopeLine: 155, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!126 = !DILocation(line: 156, column: 14, scope: !125) +!127 = !DILocation(line: 162, column: 17, scope: !125) +!128 = !DILocation(line: 162, column: 34, scope: !125) +!129 = !DILocation(line: 163, column: 3, scope: !125) +!130 = !DILocation(line: 164, column: 3, scope: !125) +!131 = !DILocation(line: 166, column: 13, scope: !132) +!132 = distinct !DILexicalBlock(scope: !133, file: !2, line: 165, column: 5) +!133 = distinct !DILexicalBlock(scope: !125, file: !2, line: 164, column: 3) +!134 = !DILocation(line: 167, column: 10, scope: !132) +!135 = !DILocation(line: 168, column: 5, scope: !132) +!136 = !DILocation(line: 171, column: 43, scope: !137) +!137 = distinct !DILexicalBlock(scope: !138, file: !2, line: 170, column: 7) +!138 = distinct !DILexicalBlock(scope: !132, file: !2, line: 168, column: 5) +!139 = !DILocation(line: 172, column: 7, scope: !137) +!140 = !DILocation(line: 175, column: 31, scope: !141) +!141 = distinct !DILexicalBlock(scope: !133, file: !2, line: 174, column: 5) +!142 = !DILocation(line: 176, column: 5, scope: !141) +!143 = !DILocation(line: 179, column: 17, scope: !125) +!144 = !DILocation(line: 179, column: 34, scope: !125) +!145 = !DILocation(line: 180, column: 3, scope: !125) +!146 = !DILocation(line: 181, column: 3, scope: !125) +!147 = !DILocation(line: 183, column: 13, scope: !148) +!148 = distinct !DILexicalBlock(scope: !149, file: !2, line: 182, column: 5) +!149 = distinct !DILexicalBlock(scope: !125, file: !2, line: 181, column: 3) +!150 = !DILocation(line: 184, column: 10, scope: !148) +!151 = !DILocation(line: 185, column: 5, scope: !148) +!152 = !DILocation(line: 188, column: 43, scope: !153) +!153 = distinct !DILexicalBlock(scope: !154, file: !2, line: 187, column: 7) +!154 = distinct !DILexicalBlock(scope: !148, file: !2, line: 185, column: 5) +!155 = !DILocation(line: 189, column: 7, scope: !153) +!156 = !DILocation(line: 192, column: 31, scope: !157) +!157 = distinct !DILexicalBlock(scope: !149, file: !2, line: 191, column: 5) +!158 = !DILocation(line: 193, column: 5, scope: !157) +!159 = !DILocation(line: 196, column: 17, scope: !125) +!160 = !DILocation(line: 196, column: 34, scope: !125) +!161 = !DILocation(line: 197, column: 3, scope: !125) +!162 = !DILocation(line: 198, column: 3, scope: !125) +!163 = !DILocation(line: 200, column: 13, scope: !164) +!164 = distinct !DILexicalBlock(scope: !165, file: !2, line: 199, column: 5) +!165 = distinct !DILexicalBlock(scope: !125, file: !2, line: 198, column: 3) +!166 = !DILocation(line: 201, column: 10, scope: !164) +!167 = !DILocation(line: 202, column: 5, scope: !164) +!168 = !DILocation(line: 205, column: 43, scope: !169) +!169 = distinct !DILexicalBlock(scope: !170, file: !2, line: 204, column: 7) +!170 = distinct !DILexicalBlock(scope: !164, file: !2, line: 202, column: 5) +!171 = !DILocation(line: 206, column: 7, scope: !169) +!172 = !DILocation(line: 209, column: 31, scope: !173) +!173 = distinct !DILexicalBlock(scope: !165, file: !2, line: 208, column: 5) +!174 = !DILocation(line: 210, column: 5, scope: !173) +!175 = !DILocation(line: 214, column: 3, scope: !125) +!176 = distinct !DISubprogram(name: "t6", linkageName: "t6", scope: !2, file: !2, line: 155, type: !6, scopeLine: 155, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!177 = !DILocation(line: 155, column: 12, scope: !176) +!178 = distinct !DISubprogram(name: "t7", linkageName: "t7", scope: !2, file: !2, line: 219, type: !6, scopeLine: 219, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!179 = !DILocation(line: 220, column: 14, scope: !178) +!180 = !DILocation(line: 224, column: 17, scope: !178) +!181 = !DILocation(line: 224, column: 34, scope: !178) +!182 = !DILocation(line: 225, column: 3, scope: !178) +!183 = !DILocation(line: 226, column: 3, scope: !178) +!184 = !DILocation(line: 228, column: 13, scope: !185) +!185 = distinct !DILexicalBlock(scope: !186, file: !2, line: 227, column: 5) +!186 = distinct !DILexicalBlock(scope: !178, file: !2, line: 226, column: 3) +!187 = !DILocation(line: 229, column: 10, scope: !185) +!188 = !DILocation(line: 230, column: 5, scope: !185) +!189 = !DILocation(line: 233, column: 43, scope: !190) +!190 = distinct !DILexicalBlock(scope: !191, file: !2, line: 232, column: 7) +!191 = distinct !DILexicalBlock(scope: !185, file: !2, line: 230, column: 5) +!192 = !DILocation(line: 234, column: 7, scope: !190) +!193 = !DILocation(line: 237, column: 31, scope: !194) +!194 = distinct !DILexicalBlock(scope: !186, file: !2, line: 236, column: 5) +!195 = !DILocation(line: 238, column: 5, scope: !194) +!196 = !DILocation(line: 242, column: 17, scope: !178) +!197 = !DILocation(line: 243, column: 3, scope: !178) +!198 = !DILocation(line: 244, column: 3, scope: !178) +!199 = !DILocation(line: 246, column: 48, scope: !200) +!200 = distinct !DILexicalBlock(scope: !201, file: !2, line: 245, column: 5) +!201 = distinct !DILexicalBlock(scope: !178, file: !2, line: 244, column: 3) +!202 = !DILocation(line: 247, column: 7, scope: !200) +!203 = !DILocation(line: 252, column: 17, scope: !178) +!204 = !DILocation(line: 252, column: 34, scope: !178) +!205 = !DILocation(line: 253, column: 3, scope: !178) +!206 = !DILocation(line: 254, column: 3, scope: !178) +!207 = !DILocation(line: 256, column: 54, scope: !208) +!208 = distinct !DILexicalBlock(scope: !209, file: !2, line: 255, column: 5) +!209 = distinct !DILexicalBlock(scope: !178, file: !2, line: 254, column: 3) +!210 = !DILocation(line: 257, column: 7, scope: !208) +!211 = !DILocation(line: 262, column: 17, scope: !178) +!212 = !DILocation(line: 262, column: 34, scope: !178) +!213 = !DILocation(line: 263, column: 3, scope: !178) +!214 = !DILocation(line: 264, column: 3, scope: !178) +!215 = !DILocation(line: 266, column: 54, scope: !216) +!216 = distinct !DILexicalBlock(scope: !217, file: !2, line: 265, column: 5) +!217 = distinct !DILexicalBlock(scope: !178, file: !2, line: 264, column: 3) +!218 = !DILocation(line: 267, column: 7, scope: !216) +!219 = !DILocation(line: 272, column: 17, scope: !178) +!220 = !DILocation(line: 272, column: 34, scope: !178) +!221 = !DILocation(line: 273, column: 11, scope: !178) +!222 = !DILocation(line: 274, column: 3, scope: !178) +!223 = distinct !DISubprogram(name: "t7", linkageName: "t7", scope: !2, file: !2, line: 219, type: !6, scopeLine: 219, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!224 = !DILocation(line: 219, column: 12, scope: !223) +!225 = distinct !DISubprogram(name: "t8", linkageName: "t8", scope: !2, file: !2, line: 279, type: !6, scopeLine: 279, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!226 = !DILocation(line: 280, column: 14, scope: !225) +!227 = !DILocation(line: 285, column: 17, scope: !225) +!228 = !DILocation(line: 285, column: 34, scope: !225) +!229 = !DILocation(line: 286, column: 3, scope: !225) +!230 = !DILocation(line: 287, column: 3, scope: !225) +!231 = !DILocation(line: 289, column: 13, scope: !232) +!232 = distinct !DILexicalBlock(scope: !233, file: !2, line: 288, column: 5) +!233 = distinct !DILexicalBlock(scope: !225, file: !2, line: 287, column: 3) +!234 = !DILocation(line: 290, column: 10, scope: !232) +!235 = !DILocation(line: 291, column: 5, scope: !232) +!236 = !DILocation(line: 294, column: 43, scope: !237) +!237 = distinct !DILexicalBlock(scope: !238, file: !2, line: 293, column: 7) +!238 = distinct !DILexicalBlock(scope: !232, file: !2, line: 291, column: 5) +!239 = !DILocation(line: 295, column: 7, scope: !237) +!240 = !DILocation(line: 298, column: 31, scope: !241) +!241 = distinct !DILexicalBlock(scope: !233, file: !2, line: 297, column: 5) +!242 = !DILocation(line: 299, column: 5, scope: !241) +!243 = !DILocation(line: 302, column: 17, scope: !225) +!244 = !DILocation(line: 302, column: 34, scope: !225) +!245 = !DILocation(line: 303, column: 3, scope: !225) +!246 = !DILocation(line: 304, column: 3, scope: !225) +!247 = !DILocation(line: 306, column: 13, scope: !248) +!248 = distinct !DILexicalBlock(scope: !249, file: !2, line: 305, column: 5) +!249 = distinct !DILexicalBlock(scope: !225, file: !2, line: 304, column: 3) +!250 = !DILocation(line: 307, column: 10, scope: !248) +!251 = !DILocation(line: 308, column: 5, scope: !248) +!252 = !DILocation(line: 311, column: 43, scope: !253) +!253 = distinct !DILexicalBlock(scope: !254, file: !2, line: 310, column: 7) +!254 = distinct !DILexicalBlock(scope: !248, file: !2, line: 308, column: 5) +!255 = !DILocation(line: 312, column: 7, scope: !253) +!256 = !DILocation(line: 315, column: 31, scope: !257) +!257 = distinct !DILexicalBlock(scope: !249, file: !2, line: 314, column: 5) +!258 = !DILocation(line: 316, column: 5, scope: !257) +!259 = !DILocation(line: 320, column: 8, scope: !225) +!260 = !DILocation(line: 321, column: 3, scope: !225) +!261 = distinct !DISubprogram(name: "t8", linkageName: "t8", scope: !2, file: !2, line: 279, type: !6, scopeLine: 279, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!262 = !DILocation(line: 279, column: 12, scope: !261) +!263 = distinct !DISubprogram(name: "t9", linkageName: "t9", scope: !2, file: !2, line: 326, type: !6, scopeLine: 326, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!264 = !DILocation(line: 327, column: 14, scope: !263) +!265 = !DILocation(line: 330, column: 3, scope: !263) +!266 = !DILocation(line: 331, column: 13, scope: !263) +!267 = !DILocation(line: 332, column: 10, scope: !263) +!268 = !DILocation(line: 333, column: 14, scope: !263) +!269 = !DILocation(line: 334, column: 3, scope: !263) +!270 = !DILocation(line: 337, column: 5, scope: !271) +!271 = distinct !DILexicalBlock(scope: !272, file: !2, line: 336, column: 5) +!272 = distinct !DILexicalBlock(scope: !263, file: !2, line: 334, column: 3) +!273 = !DILocation(line: 341, column: 17, scope: !263) +!274 = !DILocation(line: 342, column: 13, scope: !263) +!275 = !DILocation(line: 343, column: 8, scope: !263) +!276 = !DILocation(line: 344, column: 3, scope: !263) +!277 = distinct !DISubprogram(name: "t9", linkageName: "t9", scope: !2, file: !2, line: 326, type: !6, scopeLine: 326, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!278 = !DILocation(line: 326, column: 12, scope: !277) +!279 = distinct !DISubprogram(name: "t10", linkageName: "t10", scope: !2, file: !2, line: 348, type: !6, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!280 = !DILocation(line: 349, column: 15, scope: !279) +!281 = !DILocation(line: 353, column: 17, scope: !279) +!282 = !DILocation(line: 354, column: 3, scope: !279) +!283 = !DILocation(line: 355, column: 8, scope: !279) +!284 = !DILocation(line: 356, column: 3, scope: !279) +!285 = !DILocation(line: 358, column: 13, scope: !286) +!286 = distinct !DILexicalBlock(scope: !287, file: !2, line: 357, column: 5) +!287 = distinct !DILexicalBlock(scope: !279, file: !2, line: 356, column: 3) +!288 = !DILocation(line: 359, column: 10, scope: !286) +!289 = !DILocation(line: 360, column: 5, scope: !286) +!290 = !DILocation(line: 363, column: 37, scope: !291) +!291 = distinct !DILexicalBlock(scope: !292, file: !2, line: 362, column: 7) +!292 = distinct !DILexicalBlock(scope: !286, file: !2, line: 360, column: 5) +!293 = !DILocation(line: 364, column: 7, scope: !291) +!294 = !DILocation(line: 367, column: 25, scope: !295) +!295 = distinct !DILexicalBlock(scope: !287, file: !2, line: 366, column: 5) +!296 = !DILocation(line: 368, column: 5, scope: !295) +!297 = !DILocation(line: 372, column: 3, scope: !279) +!298 = distinct !DISubprogram(name: "t10", linkageName: "t10", scope: !2, file: !2, line: 348, type: !6, scopeLine: 348, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!299 = !DILocation(line: 348, column: 12, scope: !298) +!300 = distinct !DISubprogram(name: "t11", linkageName: "t11", scope: !2, file: !2, line: 377, type: !6, scopeLine: 377, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!301 = !DILocation(line: 378, column: 15, scope: !300) +!302 = !DILocation(line: 381, column: 3, scope: !300) +!303 = !DILocation(line: 382, column: 13, scope: !300) +!304 = !DILocation(line: 383, column: 10, scope: !300) +!305 = !DILocation(line: 384, column: 14, scope: !300) +!306 = !DILocation(line: 385, column: 3, scope: !300) +!307 = !DILocation(line: 388, column: 5, scope: !308) +!308 = distinct !DILexicalBlock(scope: !309, file: !2, line: 387, column: 5) +!309 = distinct !DILexicalBlock(scope: !300, file: !2, line: 385, column: 3) +!310 = !DILocation(line: 392, column: 8, scope: !300) +!311 = !DILocation(line: 393, column: 3, scope: !300) +!312 = distinct !DISubprogram(name: "t11", linkageName: "t11", scope: !2, file: !2, line: 377, type: !6, scopeLine: 377, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!313 = !DILocation(line: 377, column: 12, scope: !312) +!314 = distinct !DISubprogram(name: "t12", linkageName: "t12", scope: !2, file: !2, line: 397, type: !6, scopeLine: 397, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!315 = !DILocation(line: 398, column: 15, scope: !314) +!316 = !DILocation(line: 401, column: 3, scope: !314) +!317 = !DILocation(line: 402, column: 13, scope: !314) +!318 = !DILocation(line: 403, column: 10, scope: !314) +!319 = !DILocation(line: 404, column: 14, scope: !314) +!320 = !DILocation(line: 405, column: 3, scope: !314) +!321 = !DILocation(line: 408, column: 5, scope: !322) +!322 = distinct !DILexicalBlock(scope: !323, file: !2, line: 407, column: 5) +!323 = distinct !DILexicalBlock(scope: !314, file: !2, line: 405, column: 3) +!324 = !DILocation(line: 412, column: 8, scope: !314) +!325 = !DILocation(line: 413, column: 17, scope: !314) +!326 = !DILocation(line: 414, column: 3, scope: !314) +!327 = distinct !DISubprogram(name: "t12", linkageName: "t12", scope: !2, file: !2, line: 397, type: !6, scopeLine: 397, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!328 = !DILocation(line: 397, column: 12, scope: !327) +!329 = distinct !DISubprogram(name: "t13", linkageName: "t13", scope: !2, file: !2, line: 418, type: !6, scopeLine: 418, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!330 = !DILocation(line: 419, column: 15, scope: !329) +!331 = !DILocation(line: 422, column: 17, scope: !329) +!332 = !DILocation(line: 423, column: 3, scope: !329) +!333 = !DILocation(line: 424, column: 3, scope: !329) +!334 = !DILocation(line: 426, column: 14, scope: !335) +!335 = distinct !DILexicalBlock(scope: !336, file: !2, line: 425, column: 5) +!336 = distinct !DILexicalBlock(scope: !329, file: !2, line: 424, column: 3) +!337 = !DILocation(line: 427, column: 12, scope: !335) +!338 = !DILocation(line: 428, column: 16, scope: !335) +!339 = !DILocation(line: 429, column: 5, scope: !335) +!340 = !DILocation(line: 432, column: 43, scope: !341) +!341 = distinct !DILexicalBlock(scope: !342, file: !2, line: 431, column: 7) +!342 = distinct !DILexicalBlock(scope: !335, file: !2, line: 429, column: 5) +!343 = !DILocation(line: 433, column: 7, scope: !341) +!344 = !DILocation(line: 436, column: 5, scope: !345) +!345 = distinct !DILexicalBlock(scope: !336, file: !2, line: 435, column: 5) +!346 = !DILocation(line: 440, column: 8, scope: !329) +!347 = !DILocation(line: 442, column: 23, scope: !329) +!348 = !DILocation(line: 443, column: 13, scope: !329) +!349 = !DILocation(line: 444, column: 5, scope: !329) +!350 = !DILocation(line: 446, column: 13, scope: !329) +!351 = !DILocation(line: 447, column: 5, scope: !329) +!352 = !DILocation(line: 449, column: 3, scope: !329) +!353 = distinct !DISubprogram(name: "t13", linkageName: "t13", scope: !2, file: !2, line: 418, type: !6, scopeLine: 418, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!354 = !DILocation(line: 418, column: 12, scope: !353) +!355 = distinct !DISubprogram(name: "t14", linkageName: "t14", scope: !2, file: !2, line: 454, type: !6, scopeLine: 454, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!356 = !DILocation(line: 455, column: 15, scope: !355) +!357 = !DILocation(line: 458, column: 3, scope: !355) +!358 = !DILocation(line: 459, column: 13, scope: !355) +!359 = !DILocation(line: 460, column: 9, scope: !355) +!360 = !DILocation(line: 461, column: 14, scope: !355) +!361 = !DILocation(line: 462, column: 3, scope: !355) +!362 = !DILocation(line: 465, column: 5, scope: !363) +!363 = distinct !DILexicalBlock(scope: !364, file: !2, line: 464, column: 5) +!364 = distinct !DILexicalBlock(scope: !355, file: !2, line: 462, column: 3) +!365 = !DILocation(line: 469, column: 6, scope: !355) +!366 = !DILocation(line: 470, column: 2, scope: !355) +!367 = distinct !DISubprogram(name: "t14", linkageName: "t14", scope: !2, file: !2, line: 454, type: !6, scopeLine: 454, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!368 = !DILocation(line: 454, column: 12, scope: !367) +!369 = distinct !DISubprogram(name: "t15", linkageName: "t15", scope: !2, file: !2, line: 475, type: !6, scopeLine: 475, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!370 = !DILocation(line: 476, column: 15, scope: !369) +!371 = !DILocation(line: 479, column: 3, scope: !369) +!372 = !DILocation(line: 480, column: 13, scope: !369) +!373 = !DILocation(line: 481, column: 9, scope: !369) +!374 = !DILocation(line: 482, column: 12, scope: !369) +!375 = !DILocation(line: 483, column: 3, scope: !369) +!376 = !DILocation(line: 486, column: 34, scope: !377) +!377 = distinct !DILexicalBlock(scope: !378, file: !2, line: 485, column: 5) +!378 = distinct !DILexicalBlock(scope: !369, file: !2, line: 483, column: 3) +!379 = !DILocation(line: 487, column: 5, scope: !377) +!380 = !DILocation(line: 490, column: 17, scope: !369) +!381 = !DILocation(line: 491, column: 17, scope: !369) +!382 = !DILocation(line: 492, column: 9, scope: !369) +!383 = !DILocation(line: 493, column: 3, scope: !369) +!384 = !DILocation(line: 495, column: 15, scope: !385) +!385 = distinct !DILexicalBlock(scope: !386, file: !2, line: 494, column: 5) +!386 = distinct !DILexicalBlock(scope: !369, file: !2, line: 493, column: 3) +!387 = !DILocation(line: 496, column: 16, scope: !385) +!388 = !DILocation(line: 497, column: 5, scope: !385) +!389 = !DILocation(line: 499, column: 13, scope: !390) +!390 = distinct !DILexicalBlock(scope: !391, file: !2, line: 498, column: 7) +!391 = distinct !DILexicalBlock(scope: !385, file: !2, line: 497, column: 5) +!392 = !DILocation(line: 500, column: 7, scope: !390) +!393 = !DILocation(line: 502, column: 19, scope: !394) +!394 = distinct !DILexicalBlock(scope: !395, file: !2, line: 501, column: 9) +!395 = distinct !DILexicalBlock(scope: !390, file: !2, line: 500, column: 7) +!396 = !DILocation(line: 503, column: 16, scope: !394) +!397 = !DILocation(line: 504, column: 20, scope: !394) +!398 = !DILocation(line: 505, column: 9, scope: !394) +!399 = !DILocation(line: 508, column: 54, scope: !400) +!400 = distinct !DILexicalBlock(scope: !401, file: !2, line: 507, column: 11) +!401 = distinct !DILexicalBlock(scope: !394, file: !2, line: 505, column: 9) +!402 = !DILocation(line: 509, column: 11, scope: !400) +!403 = !DILocation(line: 512, column: 35, scope: !404) +!404 = distinct !DILexicalBlock(scope: !395, file: !2, line: 511, column: 9) +!405 = !DILocation(line: 513, column: 9, scope: !404) +!406 = !DILocation(line: 516, column: 42, scope: !407) +!407 = distinct !DILexicalBlock(scope: !391, file: !2, line: 515, column: 7) +!408 = !DILocation(line: 517, column: 7, scope: !407) +!409 = !DILocation(line: 520, column: 31, scope: !410) +!410 = distinct !DILexicalBlock(scope: !386, file: !2, line: 519, column: 5) +!411 = !DILocation(line: 521, column: 5, scope: !410) +!412 = !DILocation(line: 525, column: 17, scope: !369) +!413 = !DILocation(line: 525, column: 34, scope: !369) +!414 = !DILocation(line: 526, column: 17, scope: !369) +!415 = !DILocation(line: 526, column: 34, scope: !369) +!416 = !DILocation(line: 527, column: 17, scope: !369) +!417 = !DILocation(line: 527, column: 34, scope: !369) +!418 = !DILocation(line: 528, column: 12, scope: !369) +!419 = !DILocation(line: 528, column: 24, scope: !369) +!420 = !DILocation(line: 528, column: 36, scope: !369) +!421 = !DILocation(line: 528, column: 48, scope: !369) +!422 = !DILocation(line: 529, column: 8, scope: !369) +!423 = !DILocation(line: 530, column: 8, scope: !369) +!424 = !DILocation(line: 532, column: 15, scope: !369) +!425 = !DILocation(line: 533, column: 15, scope: !369) +!426 = !DILocation(line: 534, column: 15, scope: !369) +!427 = !DILocation(line: 535, column: 15, scope: !369) +!428 = !DILocation(line: 536, column: 15, scope: !369) +!429 = !DILocation(line: 537, column: 15, scope: !369) +!430 = !DILocation(line: 538, column: 15, scope: !369) +!431 = !DILocation(line: 539, column: 15, scope: !369) +!432 = !DILocation(line: 540, column: 5, scope: !369) +!433 = !DILocation(line: 541, column: 3, scope: !369) +!434 = distinct !DISubprogram(name: "t15", linkageName: "t15", scope: !2, file: !2, line: 475, type: !6, scopeLine: 475, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!435 = !DILocation(line: 475, column: 12, scope: !434) +!436 = distinct !DISubprogram(name: "t16", linkageName: "t16", scope: !2, file: !2, line: 545, type: !6, scopeLine: 545, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!437 = !DILocation(line: 546, column: 15, scope: !436) +!438 = !DILocation(line: 553, column: 17, scope: !436) +!439 = !DILocation(line: 553, column: 34, scope: !436) +!440 = !DILocation(line: 554, column: 17, scope: !436) +!441 = !DILocation(line: 554, column: 34, scope: !436) +!442 = !DILocation(line: 555, column: 17, scope: !436) +!443 = !DILocation(line: 555, column: 34, scope: !436) +!444 = !DILocation(line: 556, column: 17, scope: !436) +!445 = !DILocation(line: 556, column: 34, scope: !436) +!446 = !DILocation(line: 558, column: 3, scope: !436) +!447 = !DILocation(line: 559, column: 3, scope: !436) +!448 = !DILocation(line: 560, column: 3, scope: !436) +!449 = !DILocation(line: 561, column: 3, scope: !436) +!450 = !DILocation(line: 562, column: 12, scope: !436) +!451 = !DILocation(line: 562, column: 24, scope: !436) +!452 = !DILocation(line: 562, column: 36, scope: !436) +!453 = !DILocation(line: 562, column: 48, scope: !436) +!454 = !DILocation(line: 564, column: 8, scope: !436) +!455 = !DILocation(line: 566, column: 9, scope: !456) +!456 = distinct !DILexicalBlock(scope: !457, file: !2, line: 565, column: 9) +!457 = distinct !DILexicalBlock(scope: !436, file: !2, line: 564, column: 8) +!458 = !DILocation(line: 567, column: 17, scope: !459) +!459 = distinct !DILexicalBlock(scope: !457, file: !2, line: 567, column: 9) +!460 = !DILocation(line: 570, column: 8, scope: !436) +!461 = !DILocation(line: 572, column: 9, scope: !462) +!462 = distinct !DILexicalBlock(scope: !463, file: !2, line: 571, column: 9) +!463 = distinct !DILexicalBlock(scope: !436, file: !2, line: 570, column: 8) +!464 = !DILocation(line: 573, column: 17, scope: !465) +!465 = distinct !DILexicalBlock(scope: !463, file: !2, line: 573, column: 9) +!466 = !DILocation(line: 576, column: 8, scope: !436) +!467 = !DILocation(line: 578, column: 9, scope: !468) +!468 = distinct !DILexicalBlock(scope: !469, file: !2, line: 577, column: 9) +!469 = distinct !DILexicalBlock(scope: !436, file: !2, line: 576, column: 8) +!470 = !DILocation(line: 579, column: 17, scope: !471) +!471 = distinct !DILexicalBlock(scope: !469, file: !2, line: 579, column: 9) +!472 = !DILocation(line: 582, column: 8, scope: !436) +!473 = !DILocation(line: 584, column: 9, scope: !474) +!474 = distinct !DILexicalBlock(scope: !475, file: !2, line: 583, column: 9) +!475 = distinct !DILexicalBlock(scope: !436, file: !2, line: 582, column: 8) +!476 = !DILocation(line: 585, column: 17, scope: !477) +!477 = distinct !DILexicalBlock(scope: !475, file: !2, line: 585, column: 9) +!478 = !DILocation(line: 589, column: 14, scope: !436) +!479 = !DILocation(line: 590, column: 14, scope: !436) +!480 = !DILocation(line: 591, column: 5, scope: !436) +!481 = !DILocation(line: 593, column: 3, scope: !436) +!482 = !DILocation(line: 596, column: 5, scope: !483) +!483 = distinct !DILexicalBlock(scope: !484, file: !2, line: 595, column: 5) +!484 = distinct !DILexicalBlock(scope: !436, file: !2, line: 593, column: 3) +!485 = !DILocation(line: 601, column: 14, scope: !436) +!486 = !DILocation(line: 602, column: 17, scope: !436) +!487 = !DILocation(line: 603, column: 13, scope: !436) +!488 = !DILocation(line: 604, column: 5, scope: !436) +!489 = !DILocation(line: 606, column: 3, scope: !436) +!490 = distinct !DISubprogram(name: "t16", linkageName: "t16", scope: !2, file: !2, line: 545, type: !6, scopeLine: 545, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!491 = !DILocation(line: 545, column: 12, scope: !490) +!492 = distinct !DISubprogram(name: "t17", linkageName: "t17", scope: !2, file: !2, line: 611, type: !6, scopeLine: 611, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!493 = !DILocation(line: 613, column: 15, scope: !492) +!494 = !DILocation(line: 617, column: 10, scope: !492) +!495 = !DILocation(line: 618, column: 3, scope: !492) +!496 = !DILocation(line: 619, column: 3, scope: !492) +!497 = !DILocation(line: 622, column: 5, scope: !498) +!498 = distinct !DILexicalBlock(scope: !499, file: !2, line: 621, column: 5) +!499 = distinct !DILexicalBlock(scope: !492, file: !2, line: 619, column: 3) +!500 = !DILocation(line: 626, column: 3, scope: !492) +!501 = distinct !DISubprogram(name: "t17", linkageName: "t17", scope: !2, file: !2, line: 611, type: !6, scopeLine: 611, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!502 = !DILocation(line: 611, column: 12, scope: !501) +!503 = distinct !DISubprogram(name: "t18", linkageName: "t18", scope: !2, file: !2, line: 630, type: !6, scopeLine: 630, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!504 = !DILocation(line: 632, column: 15, scope: !503) +!505 = !DILocation(line: 636, column: 10, scope: !503) +!506 = !DILocation(line: 637, column: 3, scope: !503) +!507 = !DILocation(line: 638, column: 3, scope: !503) +!508 = !DILocation(line: 640, column: 5, scope: !509) +!509 = distinct !DILexicalBlock(scope: !510, file: !2, line: 639, column: 5) +!510 = distinct !DILexicalBlock(scope: !503, file: !2, line: 638, column: 3) +!511 = distinct !DISubprogram(name: "t18", linkageName: "t18", scope: !2, file: !2, line: 630, type: !6, scopeLine: 630, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!512 = !DILocation(line: 630, column: 12, scope: !511) diff --git a/tests/codegen/contr/dgold/map_misc.scilla.gold b/tests/codegen/contr/dgold/map_misc.scilla.gold index 812e6ee5..fae323cd 100644 --- a/tests/codegen/contr/dgold/map_misc.scilla.gold +++ b/tests/codegen/contr/dgold/map_misc.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'MapMisc' source_filename = "MapMisc" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/match_assign.scilla.gold b/tests/codegen/contr/dgold/match_assign.scilla.gold index d23262ab..3ae3a165 100644 --- a/tests/codegen/contr/dgold/match_assign.scilla.gold +++ b/tests/codegen/contr/dgold/match_assign.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM1' source_filename = "PM1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/match_assign2.scilla.gold b/tests/codegen/contr/dgold/match_assign2.scilla.gold index b3ebdeaf..da79bd3d 100644 --- a/tests/codegen/contr/dgold/match_assign2.scilla.gold +++ b/tests/codegen/contr/dgold/match_assign2.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM1' source_filename = "PM1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/match_assign3.scilla.gold b/tests/codegen/contr/dgold/match_assign3.scilla.gold index 554346d8..a64d7e6e 100644 --- a/tests/codegen/contr/dgold/match_assign3.scilla.gold +++ b/tests/codegen/contr/dgold/match_assign3.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM1' source_filename = "PM1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_0" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/name_clash1.scilla.gold b/tests/codegen/contr/dgold/name_clash1.scilla.gold index 21e4ac3c..a4286cef 100644 --- a/tests/codegen/contr/dgold/name_clash1.scilla.gold +++ b/tests/codegen/contr/dgold/name_clash1.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'NameClash1' source_filename = "NameClash1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/name_clash2.scilla.gold b/tests/codegen/contr/dgold/name_clash2.scilla.gold index 42941457..5f513354 100644 --- a/tests/codegen/contr/dgold/name_clash2.scilla.gold +++ b/tests/codegen/contr/dgold/name_clash2.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'NameClash1' source_filename = "NameClash1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/pm-empty.scilla.gold b/tests/codegen/contr/dgold/pm-empty.scilla.gold index 81b7ff62..a991b487 100644 --- a/tests/codegen/contr/dgold/pm-empty.scilla.gold +++ b/tests/codegen/contr/dgold/pm-empty.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM_empty' source_filename = "PM_empty" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_0" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/pm1.scilla.gold b/tests/codegen/contr/dgold/pm1.scilla.gold index 2d199d46..fb81b7c3 100644 --- a/tests/codegen/contr/dgold/pm1.scilla.gold +++ b/tests/codegen/contr/dgold/pm1.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM1' source_filename = "PM1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/pm2.scilla.gold b/tests/codegen/contr/dgold/pm2.scilla.gold index 3e7cac4a..862c090c 100644 --- a/tests/codegen/contr/dgold/pm2.scilla.gold +++ b/tests/codegen/contr/dgold/pm2.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM2' source_filename = "PM2" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/pm3.scilla.gold b/tests/codegen/contr/dgold/pm3.scilla.gold index 764972de..8a942dd8 100644 --- a/tests/codegen/contr/dgold/pm3.scilla.gold +++ b/tests/codegen/contr/dgold/pm3.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM3' source_filename = "PM3" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/pm4.scilla.gold b/tests/codegen/contr/dgold/pm4.scilla.gold index 9270fef5..14a840ab 100644 --- a/tests/codegen/contr/dgold/pm4.scilla.gold +++ b/tests/codegen/contr/dgold/pm4.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM4' source_filename = "PM4" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/pm5.scilla.gold b/tests/codegen/contr/dgold/pm5.scilla.gold index fbb57d8c..e5be4fb5 100644 --- a/tests/codegen/contr/dgold/pm5.scilla.gold +++ b/tests/codegen/contr/dgold/pm5.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM5' source_filename = "PM5" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/pm6.scilla.gold b/tests/codegen/contr/dgold/pm6.scilla.gold index b59fc1b2..e9fa6642 100644 --- a/tests/codegen/contr/dgold/pm6.scilla.gold +++ b/tests/codegen/contr/dgold/pm6.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM6' source_filename = "PM6" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/pm7.scilla.gold b/tests/codegen/contr/dgold/pm7.scilla.gold index a8eb5853..34ad3e8d 100644 --- a/tests/codegen/contr/dgold/pm7.scilla.gold +++ b/tests/codegen/contr/dgold/pm7.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM7' source_filename = "PM7" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_11" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/remote_state_reads.scilla.gold b/tests/codegen/contr/dgold/remote_state_reads.scilla.gold index e96556f7..6e4f4979 100644 --- a/tests/codegen/contr/dgold/remote_state_reads.scilla.gold +++ b/tests/codegen/contr/dgold/remote_state_reads.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'RRContract' source_filename = "RRContract" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_30" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/remote_state_reads_2.scilla.gold b/tests/codegen/contr/dgold/remote_state_reads_2.scilla.gold index 8b19de76..7a04c2ea 100644 --- a/tests/codegen/contr/dgold/remote_state_reads_2.scilla.gold +++ b/tests/codegen/contr/dgold/remote_state_reads_2.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'RRContract' source_filename = "RRContract" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/send.scilla.gold b/tests/codegen/contr/dgold/send.scilla.gold index 7a52938c..a84f14e6 100644 --- a/tests/codegen/contr/dgold/send.scilla.gold +++ b/tests/codegen/contr/dgold/send.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'Send' source_filename = "Send" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/simple-iterate.scilla.gold b/tests/codegen/contr/dgold/simple-iterate.scilla.gold index 724eed39..ef221b3b 100644 --- a/tests/codegen/contr/dgold/simple-iterate.scilla.gold +++ b/tests/codegen/contr/dgold/simple-iterate.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'SimpleIterate' source_filename = "SimpleIterate" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/simple-map.scilla.gold b/tests/codegen/contr/dgold/simple-map.scilla.gold index 0ea7f606..07109b4c 100644 --- a/tests/codegen/contr/dgold/simple-map.scilla.gold +++ b/tests/codegen/contr/dgold/simple-map.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'SimpleMap' source_filename = "SimpleMap" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/throw.scilla.gold b/tests/codegen/contr/dgold/throw.scilla.gold index 8905e8e8..718eca21 100644 --- a/tests/codegen/contr/dgold/throw.scilla.gold +++ b/tests/codegen/contr/dgold/throw.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'Throw' source_filename = "Throw" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_0" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/type_casts.scilla.gold b/tests/codegen/contr/dgold/type_casts.scilla.gold index bb6cfa0a..769083df 100644 --- a/tests/codegen/contr/dgold/type_casts.scilla.gold +++ b/tests/codegen/contr/dgold/type_casts.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'CastContract' source_filename = "CastContract" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_21" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/dgold/ud-proxy.scilla.gold b/tests/codegen/contr/dgold/ud-proxy.scilla.gold index 70460fe8..b73c5bb9 100644 --- a/tests/codegen/contr/dgold/ud-proxy.scilla.gold +++ b/tests/codegen/contr/dgold/ud-proxy.scilla.gold @@ -3,18 +3,18 @@ ; gas_remaining: 4001918 ; ModuleID = 'Admin' source_filename = "Admin" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_10" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_42" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_41"** } +%"$TyDescrTy_ADTTyp_38" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_37"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_41" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_43"**, %"$TyDescrTy_ADTTyp_42"* } -%"$TyDescrTy_ADTTyp_Constr_43" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$TyDescr_MapTyp_47" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } -%"$TyDescr_AddrTyp_50" = type { i32, %"$TyDescr_AddrFieldTyp_49"* } -%"$TyDescr_AddrFieldTyp_49" = type { %TyDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_37" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_39"**, %"$TyDescrTy_ADTTyp_38"* } +%"$TyDescrTy_ADTTyp_Constr_39" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$TyDescr_MapTyp_43" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } +%"$TyDescr_AddrTyp_46" = type { i32, %"$TyDescr_AddrFieldTyp_45"* } +%"$TyDescr_AddrFieldTyp_45" = type { %TyDescrString, %_TyDescrTy_Typ* } %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> @@ -22,13 +22,12 @@ target triple = "x86_64-unknown-linux-gnu" %CName_Cons_Message = type <{ i8, i8*, %TName_List_Message* }> %CName_Nil_Message = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_545" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_521" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_546" = type { %ParamDescrString, i32, %"$ParamDescr_545"* } -%"$$fundef_5_env_90" = type { [20 x i8] } +%"$TransDescr_522" = type { %ParamDescrString, i32, %"$ParamDescr_521"* } +%"$$fundef_1_env_86" = type {} %String = type { i8*, i32 } -%"$$fundef_3_env_91" = type {} -%"$$fundef_7_env_92" = type { %TName_List_Message* } +%"$$fundef_3_env_87" = type { %TName_List_Message* } %Map_ByStr20_Bool = type { [20 x i8], %TName_Bool* } %Uint128 = type { i128 } %TName_Option_Bool = type { i8, %CName_Some_Bool*, %CName_None_Bool* } @@ -37,292 +36,293 @@ target triple = "x86_64-unknown-linux-gnu" @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_11" = global %"$TyDescrTy_PrimTyp_10" zeroinitializer -@"$TyDescr_Int32_12" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int32_Prim_11" to i8*) } -@"$TyDescr_Uint32_Prim_13" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 0 } -@"$TyDescr_Uint32_14" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint32_Prim_13" to i8*) } -@"$TyDescr_Int64_Prim_15" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 1 } -@"$TyDescr_Int64_16" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int64_Prim_15" to i8*) } -@"$TyDescr_Uint64_Prim_17" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 1 } -@"$TyDescr_Uint64_18" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint64_Prim_17" to i8*) } -@"$TyDescr_Int128_Prim_19" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 2 } -@"$TyDescr_Int128_20" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int128_Prim_19" to i8*) } -@"$TyDescr_Uint128_Prim_21" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 2 } -@"$TyDescr_Uint128_22" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint128_Prim_21" to i8*) } -@"$TyDescr_Int256_Prim_23" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 3 } -@"$TyDescr_Int256_24" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int256_Prim_23" to i8*) } -@"$TyDescr_Uint256_Prim_25" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 3 } -@"$TyDescr_Uint256_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint256_Prim_25" to i8*) } -@"$TyDescr_String_Prim_27" = global %"$TyDescrTy_PrimTyp_10" { i32 2, i32 0 } -@"$TyDescr_String_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_String_Prim_27" to i8*) } -@"$TyDescr_Bnum_Prim_29" = global %"$TyDescrTy_PrimTyp_10" { i32 3, i32 0 } -@"$TyDescr_Bnum_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Bnum_Prim_29" to i8*) } -@"$TyDescr_Message_Prim_31" = global %"$TyDescrTy_PrimTyp_10" { i32 4, i32 0 } -@"$TyDescr_Message_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Message_Prim_31" to i8*) } -@"$TyDescr_Event_Prim_33" = global %"$TyDescrTy_PrimTyp_10" { i32 5, i32 0 } -@"$TyDescr_Event_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Event_Prim_33" to i8*) } -@"$TyDescr_Exception_Prim_35" = global %"$TyDescrTy_PrimTyp_10" { i32 6, i32 0 } -@"$TyDescr_Exception_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Exception_Prim_35" to i8*) } -@"$TyDescr_Bystr_Prim_37" = global %"$TyDescrTy_PrimTyp_10" { i32 7, i32 0 } -@"$TyDescr_Bystr_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Bystr_Prim_37" to i8*) } -@"$TyDescr_Bystr20_Prim_39" = global %"$TyDescrTy_PrimTyp_10" { i32 8, i32 20 } -@"$TyDescr_Bystr20_40" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Bystr20_Prim_39" to i8*) } -@"$TyDescr_ADT_Option_Bool_44" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_Option_Bool_ADTTyp_Specl_61" to i8*) } -@"$TyDescr_ADT_Bool_45" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_Bool_ADTTyp_Specl_73" to i8*) } -@"$TyDescr_ADT_List_Message_46" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_List_Message_ADTTyp_Specl_85" to i8*) } -@"$TyDescr_Map_48" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_47"* @"$TyDescr_MapTyp_88" to i8*) } -@"$TyDescr_Addr_51" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_50"* @"$TyDescr_AddrFields_89" to i8*) } -@"$TyDescr_Option_ADTTyp_52" = unnamed_addr constant %"$TyDescrTy_ADTTyp_42" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_63", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_41"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_41"*], [1 x %"$TyDescrTy_ADTTyp_Specl_41"*]* @"$TyDescr_Option_ADTTyp_m_specls_62", i32 0, i32 0) } -@"$TyDescr_Option_Some_Bool_Constr_m_args_53" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45"] -@"$TyDescr_ADT_Some_54" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_Bool_ADTTyp_Constr_55" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_54", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Bool_Constr_m_args_53", i32 0, i32 0) } -@"$TyDescr_Option_None_Bool_Constr_m_args_56" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_57" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_Bool_ADTTyp_Constr_58" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_57", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Bool_Constr_m_args_56", i32 0, i32 0) } -@"$TyDescr_Option_Bool_ADTTyp_Specl_m_constrs_59" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_43"*] [%"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_Option_Some_Bool_ADTTyp_Constr_55", %"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_Option_None_Bool_ADTTyp_Constr_58"] -@"$TyDescr_Option_Bool_ADTTyp_Specl_m_TArgs_60" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45"] -@"$TyDescr_Option_Bool_ADTTyp_Specl_61" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_41" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Bool_ADTTyp_Specl_m_TArgs_60", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_43"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_43"*], [2 x %"$TyDescrTy_ADTTyp_Constr_43"*]* @"$TyDescr_Option_Bool_ADTTyp_Specl_m_constrs_59", i32 0, i32 0), %"$TyDescrTy_ADTTyp_42"* @"$TyDescr_Option_ADTTyp_52" } -@"$TyDescr_Option_ADTTyp_m_specls_62" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_41"*] [%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_Option_Bool_ADTTyp_Specl_61"] -@"$TyDescr_ADT_Option_63" = unnamed_addr constant [6 x i8] c"Option" -@"$TyDescr_Bool_ADTTyp_64" = unnamed_addr constant %"$TyDescrTy_ADTTyp_42" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_75", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_41"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_41"*], [1 x %"$TyDescrTy_ADTTyp_Specl_41"*]* @"$TyDescr_Bool_ADTTyp_m_specls_74", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_65" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_66" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_67" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_66", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_65", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_68" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_69" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_70" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_69", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_68", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_71" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_43"*] [%"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_Bool_True_ADTTyp_Constr_67", %"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_Bool_False_ADTTyp_Constr_70"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_72" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_73" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_41" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_72", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_43"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_43"*], [2 x %"$TyDescrTy_ADTTyp_Constr_43"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_71", i32 0, i32 0), %"$TyDescrTy_ADTTyp_42"* @"$TyDescr_Bool_ADTTyp_64" } -@"$TyDescr_Bool_ADTTyp_m_specls_74" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_41"*] [%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_Bool_ADTTyp_Specl_73"] -@"$TyDescr_ADT_Bool_75" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_List_ADTTyp_76" = unnamed_addr constant %"$TyDescrTy_ADTTyp_42" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_87", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_41"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_41"*], [1 x %"$TyDescrTy_ADTTyp_Specl_41"*]* @"$TyDescr_List_ADTTyp_m_specls_86", i32 0, i32 0) } -@"$TyDescr_List_Cons_Message_Constr_m_args_77" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_32", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46"] -@"$TyDescr_ADT_Cons_78" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_Message_ADTTyp_Constr_79" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_78", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_77", i32 0, i32 0) } -@"$TyDescr_List_Nil_Message_Constr_m_args_80" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_81" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_Message_ADTTyp_Constr_82" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_81", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_80", i32 0, i32 0) } -@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_83" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_43"*] [%"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_79", %"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_82"] -@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_84" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_32"] -@"$TyDescr_List_Message_ADTTyp_Specl_85" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_41" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_84", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_43"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_43"*], [2 x %"$TyDescrTy_ADTTyp_Constr_43"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_83", i32 0, i32 0), %"$TyDescrTy_ADTTyp_42"* @"$TyDescr_List_ADTTyp_76" } -@"$TyDescr_List_ADTTyp_m_specls_86" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_41"*] [%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_List_Message_ADTTyp_Specl_85"] -@"$TyDescr_ADT_List_87" = unnamed_addr constant [4 x i8] c"List" -@"$TyDescr_MapTyp_88" = unnamed_addr constant %"$TyDescr_MapTyp_47" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45" } -@"$TyDescr_AddrFields_89" = unnamed_addr constant %"$TyDescr_AddrTyp_50" { i32 -1, %"$TyDescr_AddrFieldTyp_49"* null } -@"$stringlit_126" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_131" = unnamed_addr constant [8 x i8] c"AdminSet" -@"$stringlit_134" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_142" = unnamed_addr constant [10 x i8] c"isApproved" +@"$TyDescr_Int32_Prim_7" = global %"$TyDescrTy_PrimTyp_6" zeroinitializer +@"$TyDescr_Int32_8" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int32_Prim_7" to i8*) } +@"$TyDescr_Uint32_Prim_9" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 0 } +@"$TyDescr_Uint32_10" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint32_Prim_9" to i8*) } +@"$TyDescr_Int64_Prim_11" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 1 } +@"$TyDescr_Int64_12" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int64_Prim_11" to i8*) } +@"$TyDescr_Uint64_Prim_13" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 1 } +@"$TyDescr_Uint64_14" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint64_Prim_13" to i8*) } +@"$TyDescr_Int128_Prim_15" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 2 } +@"$TyDescr_Int128_16" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int128_Prim_15" to i8*) } +@"$TyDescr_Uint128_Prim_17" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 2 } +@"$TyDescr_Uint128_18" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint128_Prim_17" to i8*) } +@"$TyDescr_Int256_Prim_19" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 3 } +@"$TyDescr_Int256_20" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int256_Prim_19" to i8*) } +@"$TyDescr_Uint256_Prim_21" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 3 } +@"$TyDescr_Uint256_22" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint256_Prim_21" to i8*) } +@"$TyDescr_String_Prim_23" = global %"$TyDescrTy_PrimTyp_6" { i32 2, i32 0 } +@"$TyDescr_String_24" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_String_Prim_23" to i8*) } +@"$TyDescr_Bnum_Prim_25" = global %"$TyDescrTy_PrimTyp_6" { i32 3, i32 0 } +@"$TyDescr_Bnum_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Bnum_Prim_25" to i8*) } +@"$TyDescr_Message_Prim_27" = global %"$TyDescrTy_PrimTyp_6" { i32 4, i32 0 } +@"$TyDescr_Message_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Message_Prim_27" to i8*) } +@"$TyDescr_Event_Prim_29" = global %"$TyDescrTy_PrimTyp_6" { i32 5, i32 0 } +@"$TyDescr_Event_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Event_Prim_29" to i8*) } +@"$TyDescr_Exception_Prim_31" = global %"$TyDescrTy_PrimTyp_6" { i32 6, i32 0 } +@"$TyDescr_Exception_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Exception_Prim_31" to i8*) } +@"$TyDescr_Bystr_Prim_33" = global %"$TyDescrTy_PrimTyp_6" { i32 7, i32 0 } +@"$TyDescr_Bystr_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Bystr_Prim_33" to i8*) } +@"$TyDescr_Bystr20_Prim_35" = global %"$TyDescrTy_PrimTyp_6" { i32 8, i32 20 } +@"$TyDescr_Bystr20_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Bystr20_Prim_35" to i8*) } +@"$TyDescr_ADT_Option_Bool_40" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_Option_Bool_ADTTyp_Specl_57" to i8*) } +@"$TyDescr_ADT_Bool_41" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_Bool_ADTTyp_Specl_69" to i8*) } +@"$TyDescr_ADT_List_Message_42" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_List_Message_ADTTyp_Specl_81" to i8*) } +@"$TyDescr_Map_44" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_43"* @"$TyDescr_MapTyp_84" to i8*) } +@"$TyDescr_Addr_47" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_46"* @"$TyDescr_AddrFields_85" to i8*) } +@"$TyDescr_Option_ADTTyp_48" = unnamed_addr constant %"$TyDescrTy_ADTTyp_38" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_59", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_37"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_37"*], [1 x %"$TyDescrTy_ADTTyp_Specl_37"*]* @"$TyDescr_Option_ADTTyp_m_specls_58", i32 0, i32 0) } +@"$TyDescr_Option_Some_Bool_Constr_m_args_49" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41"] +@"$TyDescr_ADT_Some_50" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_Bool_ADTTyp_Constr_51" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_50", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Bool_Constr_m_args_49", i32 0, i32 0) } +@"$TyDescr_Option_None_Bool_Constr_m_args_52" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_53" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_Bool_ADTTyp_Constr_54" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_53", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Bool_Constr_m_args_52", i32 0, i32 0) } +@"$TyDescr_Option_Bool_ADTTyp_Specl_m_constrs_55" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_39"*] [%"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_Option_Some_Bool_ADTTyp_Constr_51", %"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_Option_None_Bool_ADTTyp_Constr_54"] +@"$TyDescr_Option_Bool_ADTTyp_Specl_m_TArgs_56" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41"] +@"$TyDescr_Option_Bool_ADTTyp_Specl_57" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_37" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Bool_ADTTyp_Specl_m_TArgs_56", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_39"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_39"*], [2 x %"$TyDescrTy_ADTTyp_Constr_39"*]* @"$TyDescr_Option_Bool_ADTTyp_Specl_m_constrs_55", i32 0, i32 0), %"$TyDescrTy_ADTTyp_38"* @"$TyDescr_Option_ADTTyp_48" } +@"$TyDescr_Option_ADTTyp_m_specls_58" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_37"*] [%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_Option_Bool_ADTTyp_Specl_57"] +@"$TyDescr_ADT_Option_59" = unnamed_addr constant [6 x i8] c"Option" +@"$TyDescr_Bool_ADTTyp_60" = unnamed_addr constant %"$TyDescrTy_ADTTyp_38" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_71", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_37"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_37"*], [1 x %"$TyDescrTy_ADTTyp_Specl_37"*]* @"$TyDescr_Bool_ADTTyp_m_specls_70", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_61" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_62" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_63" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_62", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_61", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_64" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_65" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_66" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_65", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_64", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_67" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_39"*] [%"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_Bool_True_ADTTyp_Constr_63", %"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_Bool_False_ADTTyp_Constr_66"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_68" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_69" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_37" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_68", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_39"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_39"*], [2 x %"$TyDescrTy_ADTTyp_Constr_39"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_67", i32 0, i32 0), %"$TyDescrTy_ADTTyp_38"* @"$TyDescr_Bool_ADTTyp_60" } +@"$TyDescr_Bool_ADTTyp_m_specls_70" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_37"*] [%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_Bool_ADTTyp_Specl_69"] +@"$TyDescr_ADT_Bool_71" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_List_ADTTyp_72" = unnamed_addr constant %"$TyDescrTy_ADTTyp_38" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_83", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_37"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_37"*], [1 x %"$TyDescrTy_ADTTyp_Specl_37"*]* @"$TyDescr_List_ADTTyp_m_specls_82", i32 0, i32 0) } +@"$TyDescr_List_Cons_Message_Constr_m_args_73" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_28", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_42"] +@"$TyDescr_ADT_Cons_74" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_Message_ADTTyp_Constr_75" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_74", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_73", i32 0, i32 0) } +@"$TyDescr_List_Nil_Message_Constr_m_args_76" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_77" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_Message_ADTTyp_Constr_78" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_77", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_76", i32 0, i32 0) } +@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_79" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_39"*] [%"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_75", %"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_78"] +@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_80" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_28"] +@"$TyDescr_List_Message_ADTTyp_Specl_81" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_37" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_80", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_39"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_39"*], [2 x %"$TyDescrTy_ADTTyp_Constr_39"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_79", i32 0, i32 0), %"$TyDescrTy_ADTTyp_38"* @"$TyDescr_List_ADTTyp_72" } +@"$TyDescr_List_ADTTyp_m_specls_82" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_37"*] [%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_List_Message_ADTTyp_Specl_81"] +@"$TyDescr_ADT_List_83" = unnamed_addr constant [4 x i8] c"List" +@"$TyDescr_MapTyp_84" = unnamed_addr constant %"$TyDescr_MapTyp_43" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41" } +@"$TyDescr_AddrFields_85" = unnamed_addr constant %"$TyDescr_AddrTyp_46" { i32 -1, %"$TyDescr_AddrFieldTyp_45"* null } +@"$stringlit_108" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_113" = unnamed_addr constant [8 x i8] c"AdminSet" +@"$stringlit_116" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_123" = unnamed_addr constant [10 x i8] c"isApproved" @ud-proxy.true = global %TName_Bool* null @ud-proxy.nilMessage = global %TName_List_Message* null @ud-proxy.oneMsg = global { %TName_List_Message* (i8*, i8*)*, i8* } zeroinitializer -@ud-proxy.eAdminSet = global { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } zeroinitializer +@ud-proxy.eAdminSet = global { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } zeroinitializer @ud-proxy.eError = global i8* null -@"$stringlit_192" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_197" = unnamed_addr constant [5 x i8] c"Error" +@"$stringlit_173" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_178" = unnamed_addr constant [5 x i8] c"Error" @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null @_cparam_initialAdmin = global [20 x i8] zeroinitializer @_cparam_registry = global [20 x i8] zeroinitializer -@"$admins_234" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_243" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_315" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_377" = unnamed_addr constant [7 x i8] c"admins\00" -@"$stringlit_454" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_459" = unnamed_addr constant [6 x i8] c"bestow" -@"$stringlit_462" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_470" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_477" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_484" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_491" = unnamed_addr constant [8 x i8] c"resolver" -@_tydescr_table = constant [20 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46", %_TyDescrTy_Typ* @"$TyDescr_Event_34", %_TyDescrTy_Typ* @"$TyDescr_Int64_16", %_TyDescrTy_Typ* @"$TyDescr_Addr_51", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ* @"$TyDescr_Uint256_26", %_TyDescrTy_Typ* @"$TyDescr_Uint32_14", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_44", %_TyDescrTy_Typ* @"$TyDescr_Uint64_18", %_TyDescrTy_Typ* @"$TyDescr_Bnum_30", %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ* @"$TyDescr_Map_48", %_TyDescrTy_Typ* @"$TyDescr_Exception_36", %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ* @"$TyDescr_Int256_24", %_TyDescrTy_Typ* @"$TyDescr_Int128_20", %_TyDescrTy_Typ* @"$TyDescr_Bystr_38", %_TyDescrTy_Typ* @"$TyDescr_Message_32", %_TyDescrTy_Typ* @"$TyDescr_Int32_12"] +@"$admins_215" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_224" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_296" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_353" = unnamed_addr constant [7 x i8] c"admins\00" +@"$stringlit_430" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_435" = unnamed_addr constant [6 x i8] c"bestow" +@"$stringlit_438" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_446" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_453" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_460" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_467" = unnamed_addr constant [8 x i8] c"resolver" +@_tydescr_table = constant [20 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_42", %_TyDescrTy_Typ* @"$TyDescr_Event_30", %_TyDescrTy_Typ* @"$TyDescr_Int64_12", %_TyDescrTy_Typ* @"$TyDescr_Addr_47", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ* @"$TyDescr_Uint256_22", %_TyDescrTy_Typ* @"$TyDescr_Uint32_10", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_40", %_TyDescrTy_Typ* @"$TyDescr_Uint64_14", %_TyDescrTy_Typ* @"$TyDescr_Bnum_26", %_TyDescrTy_Typ* @"$TyDescr_Uint128_18", %_TyDescrTy_Typ* @"$TyDescr_Map_44", %_TyDescrTy_Typ* @"$TyDescr_Exception_32", %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ* @"$TyDescr_Int256_20", %_TyDescrTy_Typ* @"$TyDescr_Int128_16", %_TyDescrTy_Typ* @"$TyDescr_Bystr_34", %_TyDescrTy_Typ* @"$TyDescr_Message_28", %_TyDescrTy_Typ* @"$TyDescr_Int32_8"] @_tydescr_table_length = constant i32 20 -@"$pname__scilla_version_547" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_548" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_549" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_initialAdmin_550" = unnamed_addr constant [12 x i8] c"initialAdmin" -@"$pname_registry_551" = unnamed_addr constant [8 x i8] c"registry" -@_contract_parameters = constant [5 x %"$ParamDescr_545"] [%"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_547", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_14" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_548", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_549", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_30" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialAdmin_550", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_registry_551", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }] +@"$pname__scilla_version_523" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_524" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_525" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_initialAdmin_526" = unnamed_addr constant [12 x i8] c"initialAdmin" +@"$pname_registry_527" = unnamed_addr constant [8 x i8] c"registry" +@_contract_parameters = constant [5 x %"$ParamDescr_521"] [%"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_523", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_10" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_524", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_525", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_26" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialAdmin_526", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_registry_527", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }] @_contract_parameters_length = constant i32 5 -@"$tpname__amount_552" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_553" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_554" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_555" = unnamed_addr constant [7 x i8] c"address" -@"$tpname_isApproved_556" = unnamed_addr constant [10 x i8] c"isApproved" -@"$tparams_setAdmin_557" = unnamed_addr constant [5 x %"$ParamDescr_545"] [%"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_552", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_22" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_553", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_51" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_554", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_51" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_555", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_556", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45" }] -@"$tname_setAdmin_558" = unnamed_addr constant [8 x i8] c"setAdmin" -@"$tpname__amount_559" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_560" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_561" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_label_562" = unnamed_addr constant [5 x i8] c"label" -@"$tpname_owner_563" = unnamed_addr constant [5 x i8] c"owner" -@"$tpname_resolver_564" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_bestow_565" = unnamed_addr constant [6 x %"$ParamDescr_545"] [%"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_559", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_22" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_560", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_51" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_561", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_51" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_562", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_28" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_563", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_564", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }] -@"$tname_bestow_566" = unnamed_addr constant [6 x i8] c"bestow" -@_transition_parameters = constant [2 x %"$TransDescr_546"] [%"$TransDescr_546" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_558", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_545"* getelementptr inbounds ([5 x %"$ParamDescr_545"], [5 x %"$ParamDescr_545"]* @"$tparams_setAdmin_557", i32 0, i32 0) }, %"$TransDescr_546" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_566", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_545"* getelementptr inbounds ([6 x %"$ParamDescr_545"], [6 x %"$ParamDescr_545"]* @"$tparams_bestow_565", i32 0, i32 0) }] +@"$tpname__amount_528" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_529" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_530" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_531" = unnamed_addr constant [7 x i8] c"address" +@"$tpname_isApproved_532" = unnamed_addr constant [10 x i8] c"isApproved" +@"$tparams_setAdmin_533" = unnamed_addr constant [5 x %"$ParamDescr_521"] [%"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_528", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_18" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_529", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_47" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_530", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_47" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_531", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_532", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41" }] +@"$tname_setAdmin_534" = unnamed_addr constant [8 x i8] c"setAdmin" +@"$tpname__amount_535" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_536" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_537" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_label_538" = unnamed_addr constant [5 x i8] c"label" +@"$tpname_owner_539" = unnamed_addr constant [5 x i8] c"owner" +@"$tpname_resolver_540" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_bestow_541" = unnamed_addr constant [6 x %"$ParamDescr_521"] [%"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_535", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_18" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_536", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_47" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_537", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_47" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_538", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_24" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_539", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_540", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }] +@"$tname_bestow_542" = unnamed_addr constant [6 x i8] c"bestow" +@_transition_parameters = constant [2 x %"$TransDescr_522"] [%"$TransDescr_522" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_534", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_521"* getelementptr inbounds ([5 x %"$ParamDescr_521"], [5 x %"$ParamDescr_521"]* @"$tparams_setAdmin_533", i32 0, i32 0) }, %"$TransDescr_522" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_542", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_521"* getelementptr inbounds ([6 x %"$ParamDescr_521"], [6 x %"$ParamDescr_521"]* @"$tparams_bestow_541", i32 0, i32 0) }] @_transition_parameters_length = constant i32 2 -define internal i8* @"$fundef_5"(%"$$fundef_5_env_90"* %0, %TName_Bool* %1) !dbg !4 { -entry: - %"$$fundef_5_env_address_118" = getelementptr inbounds %"$$fundef_5_env_90", %"$$fundef_5_env_90"* %0, i32 0, i32 0 - %"$address_envload_119" = load [20 x i8], [20 x i8]* %"$$fundef_5_env_address_118", align 1 - %address = alloca [20 x i8], align 1 - store [20 x i8] %"$address_envload_119", [20 x i8]* %address, align 1 - %"$retval_6" = alloca i8*, align 8 - %"$gasrem_120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_121" = icmp ugt i64 1, %"$gasrem_120" - br i1 %"$gascmp_121", label %"$out_of_gas_122", label %"$have_gas_123" - -"$out_of_gas_122": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_123" - -"$have_gas_123": ; preds = %"$out_of_gas_122", %entry - %"$consume_124" = sub i64 %"$gasrem_120", 1 - store i64 %"$consume_124", i64* @_gasrem, align 8 - %"$msgobj_125_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_125_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_125_salloc_load", i64 117) - %"$msgobj_125_salloc" = bitcast i8* %"$msgobj_125_salloc_salloc" to [117 x i8]* - %"$msgobj_125" = bitcast [117 x i8]* %"$msgobj_125_salloc" to i8* - store i8 3, i8* %"$msgobj_125", align 1 - %"$msgobj_fname_127" = getelementptr i8, i8* %"$msgobj_125", i32 1 - %"$msgobj_fname_128" = bitcast i8* %"$msgobj_fname_127" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_126", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_128", align 8 - %"$msgobj_td_129" = getelementptr i8, i8* %"$msgobj_125", i32 17 - %"$msgobj_td_130" = bitcast i8* %"$msgobj_td_129" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_130", align 8 - %"$msgobj_v_132" = getelementptr i8, i8* %"$msgobj_125", i32 25 - %"$msgobj_v_133" = bitcast i8* %"$msgobj_v_132" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_131", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_133", align 8 - %"$msgobj_fname_135" = getelementptr i8, i8* %"$msgobj_125", i32 41 - %"$msgobj_fname_136" = bitcast i8* %"$msgobj_fname_135" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_134", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_136", align 8 - %"$msgobj_td_137" = getelementptr i8, i8* %"$msgobj_125", i32 57 - %"$msgobj_td_138" = bitcast i8* %"$msgobj_td_137" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ** %"$msgobj_td_138", align 8 - %"$address_139" = load [20 x i8], [20 x i8]* %address, align 1 - %"$msgobj_v_140" = getelementptr i8, i8* %"$msgobj_125", i32 65 - %"$msgobj_v_141" = bitcast i8* %"$msgobj_v_140" to [20 x i8]* - store [20 x i8] %"$address_139", [20 x i8]* %"$msgobj_v_141", align 1 - %"$msgobj_fname_143" = getelementptr i8, i8* %"$msgobj_125", i32 85 - %"$msgobj_fname_144" = bitcast i8* %"$msgobj_fname_143" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_142", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_144", align 8 - %"$msgobj_td_145" = getelementptr i8, i8* %"$msgobj_125", i32 101 - %"$msgobj_td_146" = bitcast i8* %"$msgobj_td_145" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45", %_TyDescrTy_Typ** %"$msgobj_td_146", align 8 - %"$msgobj_v_147" = getelementptr i8, i8* %"$msgobj_125", i32 109 - %"$msgobj_v_148" = bitcast i8* %"$msgobj_v_147" to %TName_Bool** - store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_148", align 8 - store i8* %"$msgobj_125", i8** %"$retval_6", align 8, !dbg !8 - %"$$retval_6_150" = load i8*, i8** %"$retval_6", align 8 - ret i8* %"$$retval_6_150" -} - -define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_3"(%"$$fundef_3_env_91"* %0, [20 x i8]* %1) !dbg !9 { +define internal i8* @"$fundef_1"(%"$$fundef_1_env_86"* %0, [20 x i8]* %1, %TName_Bool* %2) !dbg !4 { entry: %address = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_4" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_107" = load i64, i64* @_gasrem, align 8 - %"$gascmp_108" = icmp ugt i64 1, %"$gasrem_107" - br i1 %"$gascmp_108", label %"$out_of_gas_109", label %"$have_gas_110" + %"$retval_2" = alloca i8*, align 8 + %"$gasrem_102" = load i64, i64* @_gasrem, align 8 + %"$gascmp_103" = icmp ugt i64 1, %"$gasrem_102" + br i1 %"$gascmp_103", label %"$out_of_gas_104", label %"$have_gas_105" -"$out_of_gas_109": ; preds = %entry +"$out_of_gas_104": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_110" - -"$have_gas_110": ; preds = %"$out_of_gas_109", %entry - %"$consume_111" = sub i64 %"$gasrem_107", 1 - store i64 %"$consume_111", i64* @_gasrem, align 8 - %"$$fundef_5_envp_112_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_5_envp_112_salloc" = call i8* @_salloc(i8* %"$$fundef_5_envp_112_load", i64 20) - %"$$fundef_5_envp_112" = bitcast i8* %"$$fundef_5_envp_112_salloc" to %"$$fundef_5_env_90"* - %"$$fundef_5_env_voidp_114" = bitcast %"$$fundef_5_env_90"* %"$$fundef_5_envp_112" to i8* - %"$$fundef_5_cloval_115" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_5_env_90"*, %TName_Bool*)* @"$fundef_5" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_5_env_voidp_114", 1 - %"$$fundef_5_env_address_116" = getelementptr inbounds %"$$fundef_5_env_90", %"$$fundef_5_env_90"* %"$$fundef_5_envp_112", i32 0, i32 0 - store [20 x i8] %address, [20 x i8]* %"$$fundef_5_env_address_116", align 1 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_5_cloval_115", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_4", align 8, !dbg !10 - %"$$retval_4_117" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_4", align 8 - ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_4_117" + br label %"$have_gas_105" + +"$have_gas_105": ; preds = %"$out_of_gas_104", %entry + %"$consume_106" = sub i64 %"$gasrem_102", 1 + store i64 %"$consume_106", i64* @_gasrem, align 8 + %"$msgobj_107_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_107_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_107_salloc_load", i64 117) + %"$msgobj_107_salloc" = bitcast i8* %"$msgobj_107_salloc_salloc" to [117 x i8]* + %"$msgobj_107" = bitcast [117 x i8]* %"$msgobj_107_salloc" to i8* + store i8 3, i8* %"$msgobj_107", align 1 + %"$msgobj_fname_109" = getelementptr i8, i8* %"$msgobj_107", i32 1 + %"$msgobj_fname_110" = bitcast i8* %"$msgobj_fname_109" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_108", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_110", align 8 + %"$msgobj_td_111" = getelementptr i8, i8* %"$msgobj_107", i32 17 + %"$msgobj_td_112" = bitcast i8* %"$msgobj_td_111" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ** %"$msgobj_td_112", align 8 + %"$msgobj_v_114" = getelementptr i8, i8* %"$msgobj_107", i32 25 + %"$msgobj_v_115" = bitcast i8* %"$msgobj_v_114" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_113", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_115", align 8 + %"$msgobj_fname_117" = getelementptr i8, i8* %"$msgobj_107", i32 41 + %"$msgobj_fname_118" = bitcast i8* %"$msgobj_fname_117" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_116", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_118", align 8 + %"$msgobj_td_119" = getelementptr i8, i8* %"$msgobj_107", i32 57 + %"$msgobj_td_120" = bitcast i8* %"$msgobj_td_119" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ** %"$msgobj_td_120", align 8 + %"$msgobj_v_121" = getelementptr i8, i8* %"$msgobj_107", i32 65 + %"$msgobj_v_122" = bitcast i8* %"$msgobj_v_121" to [20 x i8]* + store [20 x i8] %address, [20 x i8]* %"$msgobj_v_122", align 1 + %"$msgobj_fname_124" = getelementptr i8, i8* %"$msgobj_107", i32 85 + %"$msgobj_fname_125" = bitcast i8* %"$msgobj_fname_124" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_123", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_125", align 8 + %"$msgobj_td_126" = getelementptr i8, i8* %"$msgobj_107", i32 101 + %"$msgobj_td_127" = bitcast i8* %"$msgobj_td_126" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41", %_TyDescrTy_Typ** %"$msgobj_td_127", align 8 + %"$msgobj_v_128" = getelementptr i8, i8* %"$msgobj_107", i32 109 + %"$msgobj_v_129" = bitcast i8* %"$msgobj_v_128" to %TName_Bool** + store %TName_Bool* %2, %TName_Bool** %"$msgobj_v_129", align 8 + store i8* %"$msgobj_107", i8** %"$retval_2", align 8, !dbg !8 + %"$$retval_2_131" = load i8*, i8** %"$retval_2", align 8 + ret i8* %"$$retval_2_131" } -define internal %TName_List_Message* @"$fundef_7"(%"$$fundef_7_env_92"* %0, i8* %1) !dbg !11 { +define internal %TName_List_Message* @"$fundef_3"(%"$$fundef_3_env_87"* %0, i8* %1) !dbg !9 { entry: - %"$$fundef_7_env_ud-proxy.nilMessage_93" = getelementptr inbounds %"$$fundef_7_env_92", %"$$fundef_7_env_92"* %0, i32 0, i32 0 - %"$ud-proxy.nilMessage_envload_94" = load %TName_List_Message*, %TName_List_Message** %"$$fundef_7_env_ud-proxy.nilMessage_93", align 8 + %"$$fundef_3_env_ud-proxy.nilMessage_88" = getelementptr inbounds %"$$fundef_3_env_87", %"$$fundef_3_env_87"* %0, i32 0, i32 0 + %"$ud-proxy.nilMessage_envload_89" = load %TName_List_Message*, %TName_List_Message** %"$$fundef_3_env_ud-proxy.nilMessage_88", align 8 %ud-proxy.nilMessage = alloca %TName_List_Message*, align 8 - store %TName_List_Message* %"$ud-proxy.nilMessage_envload_94", %TName_List_Message** %ud-proxy.nilMessage, align 8 - %"$retval_8" = alloca %TName_List_Message*, align 8 - %"$gasrem_95" = load i64, i64* @_gasrem, align 8 - %"$gascmp_96" = icmp ugt i64 1, %"$gasrem_95" - br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" + store %TName_List_Message* %"$ud-proxy.nilMessage_envload_89", %TName_List_Message** %ud-proxy.nilMessage, align 8 + %"$retval_4" = alloca %TName_List_Message*, align 8 + %"$gasrem_90" = load i64, i64* @_gasrem, align 8 + %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" + br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" -"$out_of_gas_97": ; preds = %entry +"$out_of_gas_92": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_98" - -"$have_gas_98": ; preds = %"$out_of_gas_97", %entry - %"$consume_99" = sub i64 %"$gasrem_95", 1 - store i64 %"$consume_99", i64* @_gasrem, align 8 - %"$ud-proxy.nilMessage_100" = load %TName_List_Message*, %TName_List_Message** %ud-proxy.nilMessage, align 8 - %"$adtval_101_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_101_salloc" = call i8* @_salloc(i8* %"$adtval_101_load", i64 17) - %"$adtval_101" = bitcast i8* %"$adtval_101_salloc" to %CName_Cons_Message* - %"$adtgep_102" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_101", i32 0, i32 0 - store i8 0, i8* %"$adtgep_102", align 1 - %"$adtgep_103" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_101", i32 0, i32 1 - store i8* %1, i8** %"$adtgep_103", align 8 - %"$adtgep_104" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_101", i32 0, i32 2 - store %TName_List_Message* %"$ud-proxy.nilMessage_100", %TName_List_Message** %"$adtgep_104", align 8 - %"$adtptr_105" = bitcast %CName_Cons_Message* %"$adtval_101" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_105", %TName_List_Message** %"$retval_8", align 8, !dbg !12 - %"$$retval_8_106" = load %TName_List_Message*, %TName_List_Message** %"$retval_8", align 8 - ret %TName_List_Message* %"$$retval_8_106" + br label %"$have_gas_93" + +"$have_gas_93": ; preds = %"$out_of_gas_92", %entry + %"$consume_94" = sub i64 %"$gasrem_90", 1 + store i64 %"$consume_94", i64* @_gasrem, align 8 + %"$ud-proxy.nilMessage_95" = load %TName_List_Message*, %TName_List_Message** %ud-proxy.nilMessage, align 8 + %"$adtval_96_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_96_salloc" = call i8* @_salloc(i8* %"$adtval_96_load", i64 17) + %"$adtval_96" = bitcast i8* %"$adtval_96_salloc" to %CName_Cons_Message* + %"$adtgep_97" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_96", i32 0, i32 0 + store i8 0, i8* %"$adtgep_97", align 1 + %"$adtgep_98" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_96", i32 0, i32 1 + store i8* %1, i8** %"$adtgep_98", align 8 + %"$adtgep_99" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_96", i32 0, i32 2 + store %TName_List_Message* %"$ud-proxy.nilMessage_95", %TName_List_Message** %"$adtgep_99", align 8 + %"$adtptr_100" = bitcast %CName_Cons_Message* %"$adtval_96" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_100", %TName_List_Message** %"$retval_4", align 8, !dbg !10 + %"$$retval_4_101" = load %TName_List_Message*, %TName_List_Message** %"$retval_4", align 8 + ret %TName_List_Message* %"$$retval_4_101" } declare void @_out_of_gas() declare i8* @_salloc(i8*, i64) -define void @_init_libs() !dbg !13 { +define void @_init_libs() !dbg !11 { entry: - %"$gasrem_151" = load i64, i64* @_gasrem, align 8 - %"$gascmp_152" = icmp ugt i64 1, %"$gasrem_151" - br i1 %"$gascmp_152", label %"$out_of_gas_153", label %"$have_gas_154" + %"$gasrem_132" = load i64, i64* @_gasrem, align 8 + %"$gascmp_133" = icmp ugt i64 1, %"$gasrem_132" + br i1 %"$gascmp_133", label %"$out_of_gas_134", label %"$have_gas_135" -"$out_of_gas_153": ; preds = %entry +"$out_of_gas_134": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_135" + +"$have_gas_135": ; preds = %"$out_of_gas_134", %entry + %"$consume_136" = sub i64 %"$gasrem_132", 1 + store i64 %"$consume_136", i64* @_gasrem, align 8 + %"$adtval_137_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_137_salloc" = call i8* @_salloc(i8* %"$adtval_137_load", i64 1) + %"$adtval_137" = bitcast i8* %"$adtval_137_salloc" to %CName_True* + %"$adtgep_138" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_137", i32 0, i32 0 + store i8 0, i8* %"$adtgep_138", align 1 + %"$adtptr_139" = bitcast %CName_True* %"$adtval_137" to %TName_Bool* + store %TName_Bool* %"$adtptr_139", %TName_Bool** @ud-proxy.true, align 8, !dbg !13 + %"$gasrem_140" = load i64, i64* @_gasrem, align 8 + %"$gascmp_141" = icmp ugt i64 1, %"$gasrem_140" + br i1 %"$gascmp_141", label %"$out_of_gas_142", label %"$have_gas_143" + +"$out_of_gas_142": ; preds = %"$have_gas_135" call void @_out_of_gas() - br label %"$have_gas_154" - -"$have_gas_154": ; preds = %"$out_of_gas_153", %entry - %"$consume_155" = sub i64 %"$gasrem_151", 1 - store i64 %"$consume_155", i64* @_gasrem, align 8 - %"$adtval_156_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_156_salloc" = call i8* @_salloc(i8* %"$adtval_156_load", i64 1) - %"$adtval_156" = bitcast i8* %"$adtval_156_salloc" to %CName_True* - %"$adtgep_157" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_156", i32 0, i32 0 - store i8 0, i8* %"$adtgep_157", align 1 - %"$adtptr_158" = bitcast %CName_True* %"$adtval_156" to %TName_Bool* - store %TName_Bool* %"$adtptr_158", %TName_Bool** @ud-proxy.true, align 8, !dbg !15 + br label %"$have_gas_143" + +"$have_gas_143": ; preds = %"$out_of_gas_142", %"$have_gas_135" + %"$consume_144" = sub i64 %"$gasrem_140", 1 + store i64 %"$consume_144", i64* @_gasrem, align 8 + %"$adtval_145_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_145_salloc" = call i8* @_salloc(i8* %"$adtval_145_load", i64 1) + %"$adtval_145" = bitcast i8* %"$adtval_145_salloc" to %CName_Nil_Message* + %"$adtgep_146" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_145", i32 0, i32 0 + store i8 1, i8* %"$adtgep_146", align 1 + %"$adtptr_147" = bitcast %CName_Nil_Message* %"$adtval_145" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_147", %TName_List_Message** @ud-proxy.nilMessage, align 8, !dbg !14 + %"$gasrem_148" = load i64, i64* @_gasrem, align 8 + %"$gascmp_149" = icmp ugt i64 1, %"$gasrem_148" + br i1 %"$gascmp_149", label %"$out_of_gas_150", label %"$have_gas_151" + +"$out_of_gas_150": ; preds = %"$have_gas_143" + call void @_out_of_gas() + br label %"$have_gas_151" + +"$have_gas_151": ; preds = %"$out_of_gas_150", %"$have_gas_143" + %"$consume_152" = sub i64 %"$gasrem_148", 1 + store i64 %"$consume_152", i64* @_gasrem, align 8 + %"$$fundef_3_envp_153_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_3_envp_153_salloc" = call i8* @_salloc(i8* %"$$fundef_3_envp_153_load", i64 8) + %"$$fundef_3_envp_153" = bitcast i8* %"$$fundef_3_envp_153_salloc" to %"$$fundef_3_env_87"* + %"$$fundef_3_env_voidp_155" = bitcast %"$$fundef_3_env_87"* %"$$fundef_3_envp_153" to i8* + %"$$fundef_3_cloval_156" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_3_env_87"*, i8*)* @"$fundef_3" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_3_env_voidp_155", 1 + %"$$fundef_3_env_ud-proxy.nilMessage_157" = getelementptr inbounds %"$$fundef_3_env_87", %"$$fundef_3_env_87"* %"$$fundef_3_envp_153", i32 0, i32 0 + %"$ud-proxy.nilMessage_158" = load %TName_List_Message*, %TName_List_Message** @ud-proxy.nilMessage, align 8 + store %TName_List_Message* %"$ud-proxy.nilMessage_158", %TName_List_Message** %"$$fundef_3_env_ud-proxy.nilMessage_157", align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_3_cloval_156", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8, !dbg !15 %"$gasrem_159" = load i64, i64* @_gasrem, align 8 - %"$gascmp_160" = icmp ugt i64 1, %"$gasrem_159" + %"$gascmp_160" = icmp ugt i64 2, %"$gasrem_159" br i1 %"$gascmp_160", label %"$out_of_gas_161", label %"$have_gas_162" -"$out_of_gas_161": ; preds = %"$have_gas_154" +"$out_of_gas_161": ; preds = %"$have_gas_151" call void @_out_of_gas() br label %"$have_gas_162" -"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_154" - %"$consume_163" = sub i64 %"$gasrem_159", 1 +"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_151" + %"$consume_163" = sub i64 %"$gasrem_159", 2 store i64 %"$consume_163", i64* @_gasrem, align 8 - %"$adtval_164_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_164_salloc" = call i8* @_salloc(i8* %"$adtval_164_load", i64 1) - %"$adtval_164" = bitcast i8* %"$adtval_164_salloc" to %CName_Nil_Message* - %"$adtgep_165" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_164", i32 0, i32 0 - store i8 1, i8* %"$adtgep_165", align 1 - %"$adtptr_166" = bitcast %CName_Nil_Message* %"$adtval_164" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_166", %TName_List_Message** @ud-proxy.nilMessage, align 8, !dbg !16 + store { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } { i8* (i8*, [20 x i8]*, %TName_Bool*)* bitcast (i8* (%"$$fundef_1_env_86"*, [20 x i8]*, %TName_Bool*)* @"$fundef_1" to i8* (i8*, [20 x i8]*, %TName_Bool*)*), i8* null }, { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-proxy.eAdminSet, align 8, !dbg !16 %"$gasrem_167" = load i64, i64* @_gasrem, align 8 %"$gascmp_168" = icmp ugt i64 1, %"$gasrem_167" br i1 %"$gascmp_168", label %"$out_of_gas_169", label %"$have_gas_170" @@ -334,117 +334,85 @@ entry: "$have_gas_170": ; preds = %"$out_of_gas_169", %"$have_gas_162" %"$consume_171" = sub i64 %"$gasrem_167", 1 store i64 %"$consume_171", i64* @_gasrem, align 8 - %"$$fundef_7_envp_172_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_7_envp_172_salloc" = call i8* @_salloc(i8* %"$$fundef_7_envp_172_load", i64 8) - %"$$fundef_7_envp_172" = bitcast i8* %"$$fundef_7_envp_172_salloc" to %"$$fundef_7_env_92"* - %"$$fundef_7_env_voidp_174" = bitcast %"$$fundef_7_env_92"* %"$$fundef_7_envp_172" to i8* - %"$$fundef_7_cloval_175" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_7_env_92"*, i8*)* @"$fundef_7" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_7_env_voidp_174", 1 - %"$$fundef_7_env_ud-proxy.nilMessage_176" = getelementptr inbounds %"$$fundef_7_env_92", %"$$fundef_7_env_92"* %"$$fundef_7_envp_172", i32 0, i32 0 - %"$ud-proxy.nilMessage_177" = load %TName_List_Message*, %TName_List_Message** @ud-proxy.nilMessage, align 8 - store %TName_List_Message* %"$ud-proxy.nilMessage_177", %TName_List_Message** %"$$fundef_7_env_ud-proxy.nilMessage_176", align 8 - store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_7_cloval_175", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8, !dbg !17 - %"$gasrem_178" = load i64, i64* @_gasrem, align 8 - %"$gascmp_179" = icmp ugt i64 1, %"$gasrem_178" - br i1 %"$gascmp_179", label %"$out_of_gas_180", label %"$have_gas_181" - -"$out_of_gas_180": ; preds = %"$have_gas_170" - call void @_out_of_gas() - br label %"$have_gas_181" - -"$have_gas_181": ; preds = %"$out_of_gas_180", %"$have_gas_170" - %"$consume_182" = sub i64 %"$gasrem_178", 1 - store i64 %"$consume_182", i64* @_gasrem, align 8 - store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ i8* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_3_env_91"*, [20 x i8]*)* @"$fundef_3" to { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*), i8* null }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-proxy.eAdminSet, align 8, !dbg !18 - %"$gasrem_186" = load i64, i64* @_gasrem, align 8 - %"$gascmp_187" = icmp ugt i64 1, %"$gasrem_186" - br i1 %"$gascmp_187", label %"$out_of_gas_188", label %"$have_gas_189" - -"$out_of_gas_188": ; preds = %"$have_gas_181" - call void @_out_of_gas() - br label %"$have_gas_189" - -"$have_gas_189": ; preds = %"$out_of_gas_188", %"$have_gas_181" - %"$consume_190" = sub i64 %"$gasrem_186", 1 - store i64 %"$consume_190", i64* @_gasrem, align 8 - %"$msgobj_191_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_191_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_191_salloc_load", i64 41) - %"$msgobj_191_salloc" = bitcast i8* %"$msgobj_191_salloc_salloc" to [41 x i8]* - %"$msgobj_191" = bitcast [41 x i8]* %"$msgobj_191_salloc" to i8* - store i8 1, i8* %"$msgobj_191", align 1 - %"$msgobj_fname_193" = getelementptr i8, i8* %"$msgobj_191", i32 1 - %"$msgobj_fname_194" = bitcast i8* %"$msgobj_fname_193" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_192", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_194", align 8 - %"$msgobj_td_195" = getelementptr i8, i8* %"$msgobj_191", i32 17 - %"$msgobj_td_196" = bitcast i8* %"$msgobj_td_195" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_196", align 8 - %"$msgobj_v_198" = getelementptr i8, i8* %"$msgobj_191", i32 25 - %"$msgobj_v_199" = bitcast i8* %"$msgobj_v_198" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_197", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_199", align 8 - store i8* %"$msgobj_191", i8** @ud-proxy.eError, align 8, !dbg !19 + %"$msgobj_172_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_172_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_172_salloc_load", i64 41) + %"$msgobj_172_salloc" = bitcast i8* %"$msgobj_172_salloc_salloc" to [41 x i8]* + %"$msgobj_172" = bitcast [41 x i8]* %"$msgobj_172_salloc" to i8* + store i8 1, i8* %"$msgobj_172", align 1 + %"$msgobj_fname_174" = getelementptr i8, i8* %"$msgobj_172", i32 1 + %"$msgobj_fname_175" = bitcast i8* %"$msgobj_fname_174" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_173", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_175", align 8 + %"$msgobj_td_176" = getelementptr i8, i8* %"$msgobj_172", i32 17 + %"$msgobj_td_177" = bitcast i8* %"$msgobj_td_176" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ** %"$msgobj_td_177", align 8 + %"$msgobj_v_179" = getelementptr i8, i8* %"$msgobj_172", i32 25 + %"$msgobj_v_180" = bitcast i8* %"$msgobj_v_179" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_178", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_180", align 8 + store i8* %"$msgobj_172", i8** @ud-proxy.eError, align 8, !dbg !17 ret void } -define void @_init_state() !dbg !20 { +define void @_init_state() !dbg !18 { entry: - %"$admins_9" = alloca %Map_ByStr20_Bool*, align 8 - %"$gasrem_201" = load i64, i64* @_gasrem, align 8 - %"$gascmp_202" = icmp ugt i64 1, %"$gasrem_201" - br i1 %"$gascmp_202", label %"$out_of_gas_203", label %"$have_gas_204" + %"$admins_5" = alloca %Map_ByStr20_Bool*, align 8 + %"$gasrem_182" = load i64, i64* @_gasrem, align 8 + %"$gascmp_183" = icmp ugt i64 1, %"$gasrem_182" + br i1 %"$gascmp_183", label %"$out_of_gas_184", label %"$have_gas_185" -"$out_of_gas_203": ; preds = %entry +"$out_of_gas_184": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_204" + br label %"$have_gas_185" -"$have_gas_204": ; preds = %"$out_of_gas_203", %entry - %"$consume_205" = sub i64 %"$gasrem_201", 1 - store i64 %"$consume_205", i64* @_gasrem, align 8 +"$have_gas_185": ; preds = %"$out_of_gas_184", %entry + %"$consume_186" = sub i64 %"$gasrem_182", 1 + store i64 %"$consume_186", i64* @_gasrem, align 8 %empty = alloca %Map_ByStr20_Bool*, align 8 - %"$gasrem_206" = load i64, i64* @_gasrem, align 8 - %"$gascmp_207" = icmp ugt i64 1, %"$gasrem_206" - br i1 %"$gascmp_207", label %"$out_of_gas_208", label %"$have_gas_209" + %"$gasrem_187" = load i64, i64* @_gasrem, align 8 + %"$gascmp_188" = icmp ugt i64 1, %"$gasrem_187" + br i1 %"$gascmp_188", label %"$out_of_gas_189", label %"$have_gas_190" -"$out_of_gas_208": ; preds = %"$have_gas_204" +"$out_of_gas_189": ; preds = %"$have_gas_185" call void @_out_of_gas() - br label %"$have_gas_209" - -"$have_gas_209": ; preds = %"$out_of_gas_208", %"$have_gas_204" - %"$consume_210" = sub i64 %"$gasrem_206", 1 - store i64 %"$consume_210", i64* @_gasrem, align 8 - %"$execptr_load_211" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_212" = call i8* @_new_empty_map(i8* %"$execptr_load_211") - %"$_new_empty_map_213" = bitcast i8* %"$_new_empty_map_call_212" to %Map_ByStr20_Bool* - store %Map_ByStr20_Bool* %"$_new_empty_map_213", %Map_ByStr20_Bool** %empty, align 8, !dbg !21 - %"$empty_214" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 - %"$$empty_214_215" = bitcast %Map_ByStr20_Bool* %"$empty_214" to i8* - %"$_lengthof_call_216" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_48", i8* %"$$empty_214_215") - %"$gasadd_217" = add i64 1, %"$_lengthof_call_216" - %"$gasrem_218" = load i64, i64* @_gasrem, align 8 - %"$gascmp_219" = icmp ugt i64 %"$gasadd_217", %"$gasrem_218" - br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" - -"$out_of_gas_220": ; preds = %"$have_gas_209" + br label %"$have_gas_190" + +"$have_gas_190": ; preds = %"$out_of_gas_189", %"$have_gas_185" + %"$consume_191" = sub i64 %"$gasrem_187", 1 + store i64 %"$consume_191", i64* @_gasrem, align 8 + %"$execptr_load_192" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_193" = call i8* @_new_empty_map(i8* %"$execptr_load_192") + %"$_new_empty_map_194" = bitcast i8* %"$_new_empty_map_call_193" to %Map_ByStr20_Bool* + store %Map_ByStr20_Bool* %"$_new_empty_map_194", %Map_ByStr20_Bool** %empty, align 8, !dbg !19 + %"$empty_195" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 + %"$$empty_195_196" = bitcast %Map_ByStr20_Bool* %"$empty_195" to i8* + %"$_lengthof_call_197" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$empty_195_196") + %"$gasadd_198" = add i64 1, %"$_lengthof_call_197" + %"$gasrem_199" = load i64, i64* @_gasrem, align 8 + %"$gascmp_200" = icmp ugt i64 %"$gasadd_198", %"$gasrem_199" + br i1 %"$gascmp_200", label %"$out_of_gas_201", label %"$have_gas_202" + +"$out_of_gas_201": ; preds = %"$have_gas_190" call void @_out_of_gas() - br label %"$have_gas_221" - -"$have_gas_221": ; preds = %"$out_of_gas_220", %"$have_gas_209" - %"$consume_222" = sub i64 %"$gasrem_218", %"$gasadd_217" - store i64 %"$consume_222", i64* @_gasrem, align 8 - %"$execptr_load_223" = load i8*, i8** @_execptr, align 8 - %"$empty_224" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 - %"$$empty_224_225" = bitcast %Map_ByStr20_Bool* %"$empty_224" to i8* - %"$put_initialAdmin_226" = alloca [20 x i8], align 1 - %"$initialAdmin_227" = load [20 x i8], [20 x i8]* @_cparam_initialAdmin, align 1 - store [20 x i8] %"$initialAdmin_227", [20 x i8]* %"$put_initialAdmin_226", align 1 - %"$$put_initialAdmin_226_228" = bitcast [20 x i8]* %"$put_initialAdmin_226" to i8* - %"$ud-proxy.true_229" = load %TName_Bool*, %TName_Bool** @ud-proxy.true, align 8 - %"$$ud-proxy.true_229_230" = bitcast %TName_Bool* %"$ud-proxy.true_229" to i8* - %"$put_call_231" = call i8* @_put(i8* %"$execptr_load_223", %_TyDescrTy_Typ* @"$TyDescr_Map_48", i8* %"$$empty_224_225", i8* %"$$put_initialAdmin_226_228", i8* %"$$ud-proxy.true_229_230"), !dbg !22 - %"$put_232" = bitcast i8* %"$put_call_231" to %Map_ByStr20_Bool* - store %Map_ByStr20_Bool* %"$put_232", %Map_ByStr20_Bool** %"$admins_9", align 8, !dbg !22 - %"$execptr_load_233" = load i8*, i8** @_execptr, align 8 - %"$$admins_9_235" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %"$admins_9", align 8 - %"$update_value_236" = bitcast %Map_ByStr20_Bool* %"$$admins_9_235" to i8* - call void @_update_field(i8* %"$execptr_load_233", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_234", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_48", i32 0, i8* null, i8* %"$update_value_236"), !dbg !21 + br label %"$have_gas_202" + +"$have_gas_202": ; preds = %"$out_of_gas_201", %"$have_gas_190" + %"$consume_203" = sub i64 %"$gasrem_199", %"$gasadd_198" + store i64 %"$consume_203", i64* @_gasrem, align 8 + %"$execptr_load_204" = load i8*, i8** @_execptr, align 8 + %"$empty_205" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 + %"$$empty_205_206" = bitcast %Map_ByStr20_Bool* %"$empty_205" to i8* + %"$put_initialAdmin_207" = alloca [20 x i8], align 1 + %"$initialAdmin_208" = load [20 x i8], [20 x i8]* @_cparam_initialAdmin, align 1 + store [20 x i8] %"$initialAdmin_208", [20 x i8]* %"$put_initialAdmin_207", align 1 + %"$$put_initialAdmin_207_209" = bitcast [20 x i8]* %"$put_initialAdmin_207" to i8* + %"$ud-proxy.true_210" = load %TName_Bool*, %TName_Bool** @ud-proxy.true, align 8 + %"$$ud-proxy.true_210_211" = bitcast %TName_Bool* %"$ud-proxy.true_210" to i8* + %"$put_call_212" = call i8* @_put(i8* %"$execptr_load_204", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$empty_205_206", i8* %"$$put_initialAdmin_207_209", i8* %"$$ud-proxy.true_210_211"), !dbg !20 + %"$put_213" = bitcast i8* %"$put_call_212" to %Map_ByStr20_Bool* + store %Map_ByStr20_Bool* %"$put_213", %Map_ByStr20_Bool** %"$admins_5", align 8, !dbg !20 + %"$execptr_load_214" = load i8*, i8** @_execptr, align 8 + %"$$admins_5_216" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %"$admins_5", align 8 + %"$update_value_217" = bitcast %Map_ByStr20_Bool* %"$$admins_5_216" to i8* + call void @_update_field(i8* %"$execptr_load_214", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_215", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 0, i8* null, i8* %"$update_value_217"), !dbg !19 ret void } @@ -456,243 +424,234 @@ declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$setAdmin_237"(%Uint128 %_amount, [20 x i8]* %"$_origin_238", [20 x i8]* %"$_sender_239", [20 x i8]* %"$address_240", %TName_Bool* %isApproved) !dbg !23 { +define internal void @"$setAdmin_218"(%Uint128 %_amount, [20 x i8]* %"$_origin_219", [20 x i8]* %"$_sender_220", [20 x i8]* %"$address_221", %TName_Bool* %isApproved) !dbg !21 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_238", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_239", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_240", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_219", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_220", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_221", align 1 %maybeAdmin = alloca %TName_Option_Bool*, align 8 - %"$indices_buf_241_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_241_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_241_salloc_load", i64 20) - %"$indices_buf_241_salloc" = bitcast i8* %"$indices_buf_241_salloc_salloc" to [20 x i8]* - %"$indices_buf_241" = bitcast [20 x i8]* %"$indices_buf_241_salloc" to i8* - %"$indices_gep_242" = getelementptr i8, i8* %"$indices_buf_241", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_242" to [20 x i8]* + %"$indices_buf_222_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_222_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_222_salloc_load", i64 20) + %"$indices_buf_222_salloc" = bitcast i8* %"$indices_buf_222_salloc_salloc" to [20 x i8]* + %"$indices_buf_222" = bitcast [20 x i8]* %"$indices_buf_222_salloc" to i8* + %"$indices_gep_223" = getelementptr i8, i8* %"$indices_buf_222", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_223" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 - %"$execptr_load_244" = load i8*, i8** @_execptr, align 8 - %"$maybeAdmin_call_245" = call i8* @_fetch_field(i8* %"$execptr_load_244", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_243", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_48", i32 1, i8* %"$indices_buf_241", i32 1), !dbg !24 - %"$maybeAdmin_246" = bitcast i8* %"$maybeAdmin_call_245" to %TName_Option_Bool* - store %TName_Option_Bool* %"$maybeAdmin_246", %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_247" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$$maybeAdmin_247_248" = bitcast %TName_Option_Bool* %"$maybeAdmin_247" to i8* - %"$_literal_cost_call_249" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_44", i8* %"$$maybeAdmin_247_248") - %"$gasadd_250" = add i64 %"$_literal_cost_call_249", 0 - %"$gasadd_251" = add i64 %"$gasadd_250", 1 - %"$gasrem_252" = load i64, i64* @_gasrem, align 8 - %"$gascmp_253" = icmp ugt i64 %"$gasadd_251", %"$gasrem_252" - br i1 %"$gascmp_253", label %"$out_of_gas_254", label %"$have_gas_255" - -"$out_of_gas_254": ; preds = %entry + %"$execptr_load_225" = load i8*, i8** @_execptr, align 8 + %"$maybeAdmin_call_226" = call i8* @_fetch_field(i8* %"$execptr_load_225", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_224", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 1, i8* %"$indices_buf_222", i32 1), !dbg !22 + %"$maybeAdmin_227" = bitcast i8* %"$maybeAdmin_call_226" to %TName_Option_Bool* + store %TName_Option_Bool* %"$maybeAdmin_227", %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_228" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$$maybeAdmin_228_229" = bitcast %TName_Option_Bool* %"$maybeAdmin_228" to i8* + %"$_literal_cost_call_230" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_40", i8* %"$$maybeAdmin_228_229") + %"$gasadd_231" = add i64 %"$_literal_cost_call_230", 0 + %"$gasadd_232" = add i64 %"$gasadd_231", 1 + %"$gasrem_233" = load i64, i64* @_gasrem, align 8 + %"$gascmp_234" = icmp ugt i64 %"$gasadd_232", %"$gasrem_233" + br i1 %"$gascmp_234", label %"$out_of_gas_235", label %"$have_gas_236" + +"$out_of_gas_235": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_236" + +"$have_gas_236": ; preds = %"$out_of_gas_235", %entry + %"$consume_237" = sub i64 %"$gasrem_233", %"$gasadd_232" + store i64 %"$consume_237", i64* @_gasrem, align 8 + %"$gasrem_238" = load i64, i64* @_gasrem, align 8 + %"$gascmp_239" = icmp ugt i64 1, %"$gasrem_238" + br i1 %"$gascmp_239", label %"$out_of_gas_240", label %"$have_gas_241" + +"$out_of_gas_240": ; preds = %"$have_gas_236" call void @_out_of_gas() - br label %"$have_gas_255" + br label %"$have_gas_241" -"$have_gas_255": ; preds = %"$out_of_gas_254", %entry - %"$consume_256" = sub i64 %"$gasrem_252", %"$gasadd_251" - store i64 %"$consume_256", i64* @_gasrem, align 8 +"$have_gas_241": ; preds = %"$out_of_gas_240", %"$have_gas_236" + %"$consume_242" = sub i64 %"$gasrem_238", 1 + store i64 %"$consume_242", i64* @_gasrem, align 8 + %isSenderAdmin = alloca %TName_Bool*, align 8 + %"$gasrem_243" = load i64, i64* @_gasrem, align 8 + %"$gascmp_244" = icmp ugt i64 2, %"$gasrem_243" + br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" + +"$out_of_gas_245": ; preds = %"$have_gas_241" + call void @_out_of_gas() + br label %"$have_gas_246" + +"$have_gas_246": ; preds = %"$out_of_gas_245", %"$have_gas_241" + %"$consume_247" = sub i64 %"$gasrem_243", 2 + store i64 %"$consume_247", i64* @_gasrem, align 8 + %"$maybeAdmin_249" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_tag_250" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_249", i32 0, i32 0 + %"$maybeAdmin_tag_251" = load i8, i8* %"$maybeAdmin_tag_250", align 1 + switch i8 %"$maybeAdmin_tag_251", label %"$empty_default_252" [ + i8 0, label %"$Some_253" + i8 1, label %"$None_263" + ], !dbg !23 + +"$Some_253": ; preds = %"$have_gas_246" + %"$maybeAdmin_254" = bitcast %TName_Option_Bool* %"$maybeAdmin_249" to %CName_Some_Bool* + %"$approval_gep_255" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_254", i32 0, i32 1 + %"$approval_load_256" = load %TName_Bool*, %TName_Bool** %"$approval_gep_255", align 8 + %approval = alloca %TName_Bool*, align 8 + store %TName_Bool* %"$approval_load_256", %TName_Bool** %approval, align 8 %"$gasrem_257" = load i64, i64* @_gasrem, align 8 %"$gascmp_258" = icmp ugt i64 1, %"$gasrem_257" br i1 %"$gascmp_258", label %"$out_of_gas_259", label %"$have_gas_260" -"$out_of_gas_259": ; preds = %"$have_gas_255" +"$out_of_gas_259": ; preds = %"$Some_253" call void @_out_of_gas() br label %"$have_gas_260" -"$have_gas_260": ; preds = %"$out_of_gas_259", %"$have_gas_255" +"$have_gas_260": ; preds = %"$out_of_gas_259", %"$Some_253" %"$consume_261" = sub i64 %"$gasrem_257", 1 store i64 %"$consume_261", i64* @_gasrem, align 8 - %isSenderAdmin = alloca %TName_Bool*, align 8 - %"$gasrem_262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_263" = icmp ugt i64 2, %"$gasrem_262" - br i1 %"$gascmp_263", label %"$out_of_gas_264", label %"$have_gas_265" + %"$approval_262" = load %TName_Bool*, %TName_Bool** %approval, align 8 + store %TName_Bool* %"$approval_262", %TName_Bool** %isSenderAdmin, align 8, !dbg !24 + br label %"$matchsucc_248" -"$out_of_gas_264": ; preds = %"$have_gas_260" - call void @_out_of_gas() - br label %"$have_gas_265" - -"$have_gas_265": ; preds = %"$out_of_gas_264", %"$have_gas_260" - %"$consume_266" = sub i64 %"$gasrem_262", 2 - store i64 %"$consume_266", i64* @_gasrem, align 8 - %"$maybeAdmin_268" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_tag_269" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_268", i32 0, i32 0 - %"$maybeAdmin_tag_270" = load i8, i8* %"$maybeAdmin_tag_269", align 1 - switch i8 %"$maybeAdmin_tag_270", label %"$empty_default_271" [ - i8 0, label %"$Some_272" - i8 1, label %"$None_282" - ], !dbg !25 - -"$Some_272": ; preds = %"$have_gas_265" - %"$maybeAdmin_273" = bitcast %TName_Option_Bool* %"$maybeAdmin_268" to %CName_Some_Bool* - %"$approval_gep_274" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_273", i32 0, i32 1 - %"$approval_load_275" = load %TName_Bool*, %TName_Bool** %"$approval_gep_274", align 8 - %approval = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$approval_load_275", %TName_Bool** %approval, align 8 - %"$gasrem_276" = load i64, i64* @_gasrem, align 8 - %"$gascmp_277" = icmp ugt i64 1, %"$gasrem_276" - br i1 %"$gascmp_277", label %"$out_of_gas_278", label %"$have_gas_279" +"$None_263": ; preds = %"$have_gas_246" + %"$maybeAdmin_264" = bitcast %TName_Option_Bool* %"$maybeAdmin_249" to %CName_None_Bool* + %"$gasrem_265" = load i64, i64* @_gasrem, align 8 + %"$gascmp_266" = icmp ugt i64 1, %"$gasrem_265" + br i1 %"$gascmp_266", label %"$out_of_gas_267", label %"$have_gas_268" -"$out_of_gas_278": ; preds = %"$Some_272" - call void @_out_of_gas() - br label %"$have_gas_279" - -"$have_gas_279": ; preds = %"$out_of_gas_278", %"$Some_272" - %"$consume_280" = sub i64 %"$gasrem_276", 1 - store i64 %"$consume_280", i64* @_gasrem, align 8 - %"$approval_281" = load %TName_Bool*, %TName_Bool** %approval, align 8 - store %TName_Bool* %"$approval_281", %TName_Bool** %isSenderAdmin, align 8, !dbg !26 - br label %"$matchsucc_267" - -"$None_282": ; preds = %"$have_gas_265" - %"$maybeAdmin_283" = bitcast %TName_Option_Bool* %"$maybeAdmin_268" to %CName_None_Bool* - %"$gasrem_284" = load i64, i64* @_gasrem, align 8 - %"$gascmp_285" = icmp ugt i64 1, %"$gasrem_284" - br i1 %"$gascmp_285", label %"$out_of_gas_286", label %"$have_gas_287" - -"$out_of_gas_286": ; preds = %"$None_282" +"$out_of_gas_267": ; preds = %"$None_263" call void @_out_of_gas() - br label %"$have_gas_287" - -"$have_gas_287": ; preds = %"$out_of_gas_286", %"$None_282" - %"$consume_288" = sub i64 %"$gasrem_284", 1 - store i64 %"$consume_288", i64* @_gasrem, align 8 - %"$adtval_289_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_289_salloc" = call i8* @_salloc(i8* %"$adtval_289_load", i64 1) - %"$adtval_289" = bitcast i8* %"$adtval_289_salloc" to %CName_False* - %"$adtgep_290" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_289", i32 0, i32 0 - store i8 1, i8* %"$adtgep_290", align 1 - %"$adtptr_291" = bitcast %CName_False* %"$adtval_289" to %TName_Bool* - store %TName_Bool* %"$adtptr_291", %TName_Bool** %isSenderAdmin, align 8, !dbg !29 - br label %"$matchsucc_267" - -"$empty_default_271": ; preds = %"$have_gas_265" - br label %"$matchsucc_267" - -"$matchsucc_267": ; preds = %"$have_gas_287", %"$have_gas_279", %"$empty_default_271" - %"$gasrem_292" = load i64, i64* @_gasrem, align 8 - %"$gascmp_293" = icmp ugt i64 2, %"$gasrem_292" - br i1 %"$gascmp_293", label %"$out_of_gas_294", label %"$have_gas_295" - -"$out_of_gas_294": ; preds = %"$matchsucc_267" + br label %"$have_gas_268" + +"$have_gas_268": ; preds = %"$out_of_gas_267", %"$None_263" + %"$consume_269" = sub i64 %"$gasrem_265", 1 + store i64 %"$consume_269", i64* @_gasrem, align 8 + %"$adtval_270_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_270_salloc" = call i8* @_salloc(i8* %"$adtval_270_load", i64 1) + %"$adtval_270" = bitcast i8* %"$adtval_270_salloc" to %CName_False* + %"$adtgep_271" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_270", i32 0, i32 0 + store i8 1, i8* %"$adtgep_271", align 1 + %"$adtptr_272" = bitcast %CName_False* %"$adtval_270" to %TName_Bool* + store %TName_Bool* %"$adtptr_272", %TName_Bool** %isSenderAdmin, align 8, !dbg !27 + br label %"$matchsucc_248" + +"$empty_default_252": ; preds = %"$have_gas_246" + br label %"$matchsucc_248" + +"$matchsucc_248": ; preds = %"$have_gas_268", %"$have_gas_260", %"$empty_default_252" + %"$gasrem_273" = load i64, i64* @_gasrem, align 8 + %"$gascmp_274" = icmp ugt i64 2, %"$gasrem_273" + br i1 %"$gascmp_274", label %"$out_of_gas_275", label %"$have_gas_276" + +"$out_of_gas_275": ; preds = %"$matchsucc_248" call void @_out_of_gas() - br label %"$have_gas_295" - -"$have_gas_295": ; preds = %"$out_of_gas_294", %"$matchsucc_267" - %"$consume_296" = sub i64 %"$gasrem_292", 2 - store i64 %"$consume_296", i64* @_gasrem, align 8 - %"$isSenderAdmin_298" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$isSenderAdmin_tag_299" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_298", i32 0, i32 0 - %"$isSenderAdmin_tag_300" = load i8, i8* %"$isSenderAdmin_tag_299", align 1 - switch i8 %"$isSenderAdmin_tag_300", label %"$empty_default_301" [ - i8 0, label %"$True_302" - i8 1, label %"$False_347" - ], !dbg !31 - -"$True_302": ; preds = %"$have_gas_295" - %"$isSenderAdmin_303" = bitcast %TName_Bool* %"$isSenderAdmin_298" to %CName_True* - %"$isApproved_304" = bitcast %TName_Bool* %isApproved to i8* - %"$_literal_cost_call_305" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45", i8* %"$isApproved_304") - %"$gasadd_306" = add i64 %"$_literal_cost_call_305", 1 - %"$gasrem_307" = load i64, i64* @_gasrem, align 8 - %"$gascmp_308" = icmp ugt i64 %"$gasadd_306", %"$gasrem_307" - br i1 %"$gascmp_308", label %"$out_of_gas_309", label %"$have_gas_310" - -"$out_of_gas_309": ; preds = %"$True_302" + br label %"$have_gas_276" + +"$have_gas_276": ; preds = %"$out_of_gas_275", %"$matchsucc_248" + %"$consume_277" = sub i64 %"$gasrem_273", 2 + store i64 %"$consume_277", i64* @_gasrem, align 8 + %"$isSenderAdmin_279" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$isSenderAdmin_tag_280" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_279", i32 0, i32 0 + %"$isSenderAdmin_tag_281" = load i8, i8* %"$isSenderAdmin_tag_280", align 1 + switch i8 %"$isSenderAdmin_tag_281", label %"$empty_default_282" [ + i8 0, label %"$True_283" + i8 1, label %"$False_323" + ], !dbg !29 + +"$True_283": ; preds = %"$have_gas_276" + %"$isSenderAdmin_284" = bitcast %TName_Bool* %"$isSenderAdmin_279" to %CName_True* + %"$isApproved_285" = bitcast %TName_Bool* %isApproved to i8* + %"$_literal_cost_call_286" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41", i8* %"$isApproved_285") + %"$gasadd_287" = add i64 %"$_literal_cost_call_286", 1 + %"$gasrem_288" = load i64, i64* @_gasrem, align 8 + %"$gascmp_289" = icmp ugt i64 %"$gasadd_287", %"$gasrem_288" + br i1 %"$gascmp_289", label %"$out_of_gas_290", label %"$have_gas_291" + +"$out_of_gas_290": ; preds = %"$True_283" call void @_out_of_gas() - br label %"$have_gas_310" - -"$have_gas_310": ; preds = %"$out_of_gas_309", %"$True_302" - %"$consume_311" = sub i64 %"$gasrem_307", %"$gasadd_306" - store i64 %"$consume_311", i64* @_gasrem, align 8 - %"$indices_buf_312_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_312_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_312_salloc_load", i64 20) - %"$indices_buf_312_salloc" = bitcast i8* %"$indices_buf_312_salloc_salloc" to [20 x i8]* - %"$indices_buf_312" = bitcast [20 x i8]* %"$indices_buf_312_salloc" to i8* - %"$indices_gep_313" = getelementptr i8, i8* %"$indices_buf_312", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_313" to [20 x i8]* + br label %"$have_gas_291" + +"$have_gas_291": ; preds = %"$out_of_gas_290", %"$True_283" + %"$consume_292" = sub i64 %"$gasrem_288", %"$gasadd_287" + store i64 %"$consume_292", i64* @_gasrem, align 8 + %"$indices_buf_293_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_293_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_293_salloc_load", i64 20) + %"$indices_buf_293_salloc" = bitcast i8* %"$indices_buf_293_salloc_salloc" to [20 x i8]* + %"$indices_buf_293" = bitcast [20 x i8]* %"$indices_buf_293_salloc" to i8* + %"$indices_gep_294" = getelementptr i8, i8* %"$indices_buf_293", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_294" to [20 x i8]* store [20 x i8] %address, [20 x i8]* %indices_cast1, align 1 - %"$execptr_load_314" = load i8*, i8** @_execptr, align 8 - %"$update_value_316" = bitcast %TName_Bool* %isApproved to i8* - call void @_update_field(i8* %"$execptr_load_314", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_315", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_48", i32 1, i8* %"$indices_buf_312", i8* %"$update_value_316"), !dbg !32 - %"$gasrem_317" = load i64, i64* @_gasrem, align 8 - %"$gascmp_318" = icmp ugt i64 1, %"$gasrem_317" - br i1 %"$gascmp_318", label %"$out_of_gas_319", label %"$have_gas_320" - -"$out_of_gas_319": ; preds = %"$have_gas_310" + %"$execptr_load_295" = load i8*, i8** @_execptr, align 8 + %"$update_value_297" = bitcast %TName_Bool* %isApproved to i8* + call void @_update_field(i8* %"$execptr_load_295", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_296", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 1, i8* %"$indices_buf_293", i8* %"$update_value_297"), !dbg !30 + %"$gasrem_298" = load i64, i64* @_gasrem, align 8 + %"$gascmp_299" = icmp ugt i64 1, %"$gasrem_298" + br i1 %"$gascmp_299", label %"$out_of_gas_300", label %"$have_gas_301" + +"$out_of_gas_300": ; preds = %"$have_gas_291" call void @_out_of_gas() - br label %"$have_gas_320" + br label %"$have_gas_301" -"$have_gas_320": ; preds = %"$out_of_gas_319", %"$have_gas_310" - %"$consume_321" = sub i64 %"$gasrem_317", 1 - store i64 %"$consume_321", i64* @_gasrem, align 8 +"$have_gas_301": ; preds = %"$out_of_gas_300", %"$have_gas_291" + %"$consume_302" = sub i64 %"$gasrem_298", 1 + store i64 %"$consume_302", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_322" = load i64, i64* @_gasrem, align 8 - %"$gascmp_323" = icmp ugt i64 1, %"$gasrem_322" - br i1 %"$gascmp_323", label %"$out_of_gas_324", label %"$have_gas_325" + %"$gasrem_303" = load i64, i64* @_gasrem, align 8 + %"$gascmp_304" = icmp ugt i64 1, %"$gasrem_303" + br i1 %"$gascmp_304", label %"$out_of_gas_305", label %"$have_gas_306" -"$out_of_gas_324": ; preds = %"$have_gas_320" +"$out_of_gas_305": ; preds = %"$have_gas_301" call void @_out_of_gas() - br label %"$have_gas_325" - -"$have_gas_325": ; preds = %"$out_of_gas_324", %"$have_gas_320" - %"$consume_326" = sub i64 %"$gasrem_322", 1 - store i64 %"$consume_326", i64* @_gasrem, align 8 - %"$ud-proxy.eAdminSet_0" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-proxy.eAdminSet_327" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-proxy.eAdminSet, align 8 - %"$ud-proxy.eAdminSet_fptr_328" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-proxy.eAdminSet_327", 0 - %"$ud-proxy.eAdminSet_envptr_329" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-proxy.eAdminSet_327", 1 - %"$ud-proxy.eAdminSet_address_330" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-proxy.eAdminSet_address_330", align 1 - %"$ud-proxy.eAdminSet_call_331" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_fptr_328"(i8* %"$ud-proxy.eAdminSet_envptr_329", [20 x i8]* %"$ud-proxy.eAdminSet_address_330"), !dbg !35 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_call_331", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-proxy.eAdminSet_0", align 8, !dbg !35 - %"$ud-proxy.eAdminSet_1" = alloca i8*, align 8 - %"$$ud-proxy.eAdminSet_0_332" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-proxy.eAdminSet_0", align 8 - %"$$ud-proxy.eAdminSet_0_fptr_333" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-proxy.eAdminSet_0_332", 0 - %"$$ud-proxy.eAdminSet_0_envptr_334" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-proxy.eAdminSet_0_332", 1 - %"$$ud-proxy.eAdminSet_0_call_335" = call i8* %"$$ud-proxy.eAdminSet_0_fptr_333"(i8* %"$$ud-proxy.eAdminSet_0_envptr_334", %TName_Bool* %isApproved), !dbg !35 - store i8* %"$$ud-proxy.eAdminSet_0_call_335", i8** %"$ud-proxy.eAdminSet_1", align 8, !dbg !35 - %"$$ud-proxy.eAdminSet_1_336" = load i8*, i8** %"$ud-proxy.eAdminSet_1", align 8 - store i8* %"$$ud-proxy.eAdminSet_1_336", i8** %e, align 8, !dbg !35 - %"$e_337" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_339" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$e_337") - %"$gasrem_340" = load i64, i64* @_gasrem, align 8 - %"$gascmp_341" = icmp ugt i64 %"$_literal_cost_call_339", %"$gasrem_340" - br i1 %"$gascmp_341", label %"$out_of_gas_342", label %"$have_gas_343" - -"$out_of_gas_342": ; preds = %"$have_gas_325" + br label %"$have_gas_306" + +"$have_gas_306": ; preds = %"$out_of_gas_305", %"$have_gas_301" + %"$consume_307" = sub i64 %"$gasrem_303", 1 + store i64 %"$consume_307", i64* @_gasrem, align 8 + %"$ud-proxy.eAdminSet_308" = load { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }, { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-proxy.eAdminSet, align 8 + %"$ud-proxy.eAdminSet_fptr_309" = extractvalue { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_308", 0 + %"$ud-proxy.eAdminSet_envptr_310" = extractvalue { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_308", 1 + %"$ud-proxy.eAdminSet_address_311" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-proxy.eAdminSet_address_311", align 1 + %"$ud-proxy.eAdminSet_call_312" = call i8* %"$ud-proxy.eAdminSet_fptr_309"(i8* %"$ud-proxy.eAdminSet_envptr_310", [20 x i8]* %"$ud-proxy.eAdminSet_address_311", %TName_Bool* %isApproved), !dbg !33 + store i8* %"$ud-proxy.eAdminSet_call_312", i8** %e, align 8, !dbg !33 + %"$e_313" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_315" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$e_313") + %"$gasrem_316" = load i64, i64* @_gasrem, align 8 + %"$gascmp_317" = icmp ugt i64 %"$_literal_cost_call_315", %"$gasrem_316" + br i1 %"$gascmp_317", label %"$out_of_gas_318", label %"$have_gas_319" + +"$out_of_gas_318": ; preds = %"$have_gas_306" call void @_out_of_gas() - br label %"$have_gas_343" - -"$have_gas_343": ; preds = %"$out_of_gas_342", %"$have_gas_325" - %"$consume_344" = sub i64 %"$gasrem_340", %"$_literal_cost_call_339" - store i64 %"$consume_344", i64* @_gasrem, align 8 - %"$execptr_load_345" = load i8*, i8** @_execptr, align 8 - %"$e_346" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_345", %_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$e_346"), !dbg !36 - br label %"$matchsucc_297" - -"$False_347": ; preds = %"$have_gas_295" - %"$isSenderAdmin_348" = bitcast %TName_Bool* %"$isSenderAdmin_298" to %CName_False* - %"$ud-proxy.eError_349" = load i8*, i8** @ud-proxy.eError, align 8 - %"$_literal_cost_call_351" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$ud-proxy.eError_349") - %"$gasrem_352" = load i64, i64* @_gasrem, align 8 - %"$gascmp_353" = icmp ugt i64 %"$_literal_cost_call_351", %"$gasrem_352" - br i1 %"$gascmp_353", label %"$out_of_gas_354", label %"$have_gas_355" - -"$out_of_gas_354": ; preds = %"$False_347" + br label %"$have_gas_319" + +"$have_gas_319": ; preds = %"$out_of_gas_318", %"$have_gas_306" + %"$consume_320" = sub i64 %"$gasrem_316", %"$_literal_cost_call_315" + store i64 %"$consume_320", i64* @_gasrem, align 8 + %"$execptr_load_321" = load i8*, i8** @_execptr, align 8 + %"$e_322" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_321", %_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$e_322"), !dbg !34 + br label %"$matchsucc_278" + +"$False_323": ; preds = %"$have_gas_276" + %"$isSenderAdmin_324" = bitcast %TName_Bool* %"$isSenderAdmin_279" to %CName_False* + %"$ud-proxy.eError_325" = load i8*, i8** @ud-proxy.eError, align 8 + %"$_literal_cost_call_327" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$ud-proxy.eError_325") + %"$gasrem_328" = load i64, i64* @_gasrem, align 8 + %"$gascmp_329" = icmp ugt i64 %"$_literal_cost_call_327", %"$gasrem_328" + br i1 %"$gascmp_329", label %"$out_of_gas_330", label %"$have_gas_331" + +"$out_of_gas_330": ; preds = %"$False_323" call void @_out_of_gas() - br label %"$have_gas_355" + br label %"$have_gas_331" -"$have_gas_355": ; preds = %"$out_of_gas_354", %"$False_347" - %"$consume_356" = sub i64 %"$gasrem_352", %"$_literal_cost_call_351" - store i64 %"$consume_356", i64* @_gasrem, align 8 - %"$execptr_load_357" = load i8*, i8** @_execptr, align 8 - %"$ud-proxy.eError_358" = load i8*, i8** @ud-proxy.eError, align 8 - call void @_event(i8* %"$execptr_load_357", %_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$ud-proxy.eError_358"), !dbg !37 - br label %"$matchsucc_297" +"$have_gas_331": ; preds = %"$out_of_gas_330", %"$False_323" + %"$consume_332" = sub i64 %"$gasrem_328", %"$_literal_cost_call_327" + store i64 %"$consume_332", i64* @_gasrem, align 8 + %"$execptr_load_333" = load i8*, i8** @_execptr, align 8 + %"$ud-proxy.eError_334" = load i8*, i8** @ud-proxy.eError, align 8 + call void @_event(i8* %"$execptr_load_333", %_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$ud-proxy.eError_334"), !dbg !35 + br label %"$matchsucc_278" -"$empty_default_301": ; preds = %"$have_gas_295" - br label %"$matchsucc_297" +"$empty_default_282": ; preds = %"$have_gas_276" + br label %"$matchsucc_278" -"$matchsucc_297": ; preds = %"$have_gas_355", %"$have_gas_343", %"$empty_default_301" +"$matchsucc_278": ; preds = %"$have_gas_331", %"$have_gas_319", %"$empty_default_282" ret void } @@ -702,338 +661,338 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -define void @setAdmin(i8* %0) !dbg !39 { +define void @setAdmin(i8* %0) !dbg !37 { entry: - %"$_amount_360" = getelementptr i8, i8* %0, i32 0 - %"$_amount_361" = bitcast i8* %"$_amount_360" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_361", align 8 - %"$_origin_362" = getelementptr i8, i8* %0, i32 16 - %"$_origin_363" = bitcast i8* %"$_origin_362" to [20 x i8]* - %"$_sender_364" = getelementptr i8, i8* %0, i32 36 - %"$_sender_365" = bitcast i8* %"$_sender_364" to [20 x i8]* - %"$address_366" = getelementptr i8, i8* %0, i32 56 - %"$address_367" = bitcast i8* %"$address_366" to [20 x i8]* - %"$isApproved_368" = getelementptr i8, i8* %0, i32 76 - %"$isApproved_369" = bitcast i8* %"$isApproved_368" to %TName_Bool** - %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_369", align 8 - call void @"$setAdmin_237"(%Uint128 %_amount, [20 x i8]* %"$_origin_363", [20 x i8]* %"$_sender_365", [20 x i8]* %"$address_367", %TName_Bool* %isApproved), !dbg !40 + %"$_amount_336" = getelementptr i8, i8* %0, i32 0 + %"$_amount_337" = bitcast i8* %"$_amount_336" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_337", align 8 + %"$_origin_338" = getelementptr i8, i8* %0, i32 16 + %"$_origin_339" = bitcast i8* %"$_origin_338" to [20 x i8]* + %"$_sender_340" = getelementptr i8, i8* %0, i32 36 + %"$_sender_341" = bitcast i8* %"$_sender_340" to [20 x i8]* + %"$address_342" = getelementptr i8, i8* %0, i32 56 + %"$address_343" = bitcast i8* %"$address_342" to [20 x i8]* + %"$isApproved_344" = getelementptr i8, i8* %0, i32 76 + %"$isApproved_345" = bitcast i8* %"$isApproved_344" to %TName_Bool** + %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_345", align 8 + call void @"$setAdmin_218"(%Uint128 %_amount, [20 x i8]* %"$_origin_339", [20 x i8]* %"$_sender_341", [20 x i8]* %"$address_343", %TName_Bool* %isApproved), !dbg !38 ret void } -define internal void @"$bestow_370"(%Uint128 %_amount, [20 x i8]* %"$_origin_371", [20 x i8]* %"$_sender_372", %String %label, [20 x i8]* %"$owner_373", [20 x i8]* %"$resolver_374") !dbg !41 { +define internal void @"$bestow_346"(%Uint128 %_amount, [20 x i8]* %"$_origin_347", [20 x i8]* %"$_sender_348", %String %label, [20 x i8]* %"$owner_349", [20 x i8]* %"$resolver_350") !dbg !39 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_371", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_372", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_373", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_374", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_347", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_348", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_349", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_350", align 1 %maybeAdmin = alloca %TName_Option_Bool*, align 8 - %"$indices_buf_375_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_375_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_375_salloc_load", i64 20) - %"$indices_buf_375_salloc" = bitcast i8* %"$indices_buf_375_salloc_salloc" to [20 x i8]* - %"$indices_buf_375" = bitcast [20 x i8]* %"$indices_buf_375_salloc" to i8* - %"$indices_gep_376" = getelementptr i8, i8* %"$indices_buf_375", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_376" to [20 x i8]* + %"$indices_buf_351_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_351_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_351_salloc_load", i64 20) + %"$indices_buf_351_salloc" = bitcast i8* %"$indices_buf_351_salloc_salloc" to [20 x i8]* + %"$indices_buf_351" = bitcast [20 x i8]* %"$indices_buf_351_salloc" to i8* + %"$indices_gep_352" = getelementptr i8, i8* %"$indices_buf_351", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_352" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 - %"$execptr_load_378" = load i8*, i8** @_execptr, align 8 - %"$maybeAdmin_call_379" = call i8* @_fetch_field(i8* %"$execptr_load_378", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_377", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_48", i32 1, i8* %"$indices_buf_375", i32 1), !dbg !42 - %"$maybeAdmin_380" = bitcast i8* %"$maybeAdmin_call_379" to %TName_Option_Bool* - store %TName_Option_Bool* %"$maybeAdmin_380", %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_381" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$$maybeAdmin_381_382" = bitcast %TName_Option_Bool* %"$maybeAdmin_381" to i8* - %"$_literal_cost_call_383" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_44", i8* %"$$maybeAdmin_381_382") - %"$gasadd_384" = add i64 %"$_literal_cost_call_383", 0 - %"$gasadd_385" = add i64 %"$gasadd_384", 1 - %"$gasrem_386" = load i64, i64* @_gasrem, align 8 - %"$gascmp_387" = icmp ugt i64 %"$gasadd_385", %"$gasrem_386" - br i1 %"$gascmp_387", label %"$out_of_gas_388", label %"$have_gas_389" - -"$out_of_gas_388": ; preds = %entry + %"$execptr_load_354" = load i8*, i8** @_execptr, align 8 + %"$maybeAdmin_call_355" = call i8* @_fetch_field(i8* %"$execptr_load_354", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_353", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 1, i8* %"$indices_buf_351", i32 1), !dbg !40 + %"$maybeAdmin_356" = bitcast i8* %"$maybeAdmin_call_355" to %TName_Option_Bool* + store %TName_Option_Bool* %"$maybeAdmin_356", %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_357" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$$maybeAdmin_357_358" = bitcast %TName_Option_Bool* %"$maybeAdmin_357" to i8* + %"$_literal_cost_call_359" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_40", i8* %"$$maybeAdmin_357_358") + %"$gasadd_360" = add i64 %"$_literal_cost_call_359", 0 + %"$gasadd_361" = add i64 %"$gasadd_360", 1 + %"$gasrem_362" = load i64, i64* @_gasrem, align 8 + %"$gascmp_363" = icmp ugt i64 %"$gasadd_361", %"$gasrem_362" + br i1 %"$gascmp_363", label %"$out_of_gas_364", label %"$have_gas_365" + +"$out_of_gas_364": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_389" + br label %"$have_gas_365" -"$have_gas_389": ; preds = %"$out_of_gas_388", %entry - %"$consume_390" = sub i64 %"$gasrem_386", %"$gasadd_385" - store i64 %"$consume_390", i64* @_gasrem, align 8 - %"$gasrem_391" = load i64, i64* @_gasrem, align 8 - %"$gascmp_392" = icmp ugt i64 1, %"$gasrem_391" - br i1 %"$gascmp_392", label %"$out_of_gas_393", label %"$have_gas_394" +"$have_gas_365": ; preds = %"$out_of_gas_364", %entry + %"$consume_366" = sub i64 %"$gasrem_362", %"$gasadd_361" + store i64 %"$consume_366", i64* @_gasrem, align 8 + %"$gasrem_367" = load i64, i64* @_gasrem, align 8 + %"$gascmp_368" = icmp ugt i64 1, %"$gasrem_367" + br i1 %"$gascmp_368", label %"$out_of_gas_369", label %"$have_gas_370" -"$out_of_gas_393": ; preds = %"$have_gas_389" +"$out_of_gas_369": ; preds = %"$have_gas_365" call void @_out_of_gas() - br label %"$have_gas_394" + br label %"$have_gas_370" -"$have_gas_394": ; preds = %"$out_of_gas_393", %"$have_gas_389" - %"$consume_395" = sub i64 %"$gasrem_391", 1 - store i64 %"$consume_395", i64* @_gasrem, align 8 +"$have_gas_370": ; preds = %"$out_of_gas_369", %"$have_gas_365" + %"$consume_371" = sub i64 %"$gasrem_367", 1 + store i64 %"$consume_371", i64* @_gasrem, align 8 %isSenderAdmin = alloca %TName_Bool*, align 8 - %"$gasrem_396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_397" = icmp ugt i64 2, %"$gasrem_396" - br i1 %"$gascmp_397", label %"$out_of_gas_398", label %"$have_gas_399" + %"$gasrem_372" = load i64, i64* @_gasrem, align 8 + %"$gascmp_373" = icmp ugt i64 2, %"$gasrem_372" + br i1 %"$gascmp_373", label %"$out_of_gas_374", label %"$have_gas_375" -"$out_of_gas_398": ; preds = %"$have_gas_394" +"$out_of_gas_374": ; preds = %"$have_gas_370" call void @_out_of_gas() - br label %"$have_gas_399" - -"$have_gas_399": ; preds = %"$out_of_gas_398", %"$have_gas_394" - %"$consume_400" = sub i64 %"$gasrem_396", 2 - store i64 %"$consume_400", i64* @_gasrem, align 8 - %"$maybeAdmin_402" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_tag_403" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_402", i32 0, i32 0 - %"$maybeAdmin_tag_404" = load i8, i8* %"$maybeAdmin_tag_403", align 1 - switch i8 %"$maybeAdmin_tag_404", label %"$empty_default_405" [ - i8 0, label %"$Some_406" - i8 1, label %"$None_416" - ], !dbg !43 - -"$Some_406": ; preds = %"$have_gas_399" - %"$maybeAdmin_407" = bitcast %TName_Option_Bool* %"$maybeAdmin_402" to %CName_Some_Bool* - %"$isAdmin_gep_408" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_407", i32 0, i32 1 - %"$isAdmin_load_409" = load %TName_Bool*, %TName_Bool** %"$isAdmin_gep_408", align 8 + br label %"$have_gas_375" + +"$have_gas_375": ; preds = %"$out_of_gas_374", %"$have_gas_370" + %"$consume_376" = sub i64 %"$gasrem_372", 2 + store i64 %"$consume_376", i64* @_gasrem, align 8 + %"$maybeAdmin_378" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_tag_379" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_378", i32 0, i32 0 + %"$maybeAdmin_tag_380" = load i8, i8* %"$maybeAdmin_tag_379", align 1 + switch i8 %"$maybeAdmin_tag_380", label %"$empty_default_381" [ + i8 0, label %"$Some_382" + i8 1, label %"$None_392" + ], !dbg !41 + +"$Some_382": ; preds = %"$have_gas_375" + %"$maybeAdmin_383" = bitcast %TName_Option_Bool* %"$maybeAdmin_378" to %CName_Some_Bool* + %"$isAdmin_gep_384" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_383", i32 0, i32 1 + %"$isAdmin_load_385" = load %TName_Bool*, %TName_Bool** %"$isAdmin_gep_384", align 8 %isAdmin = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$isAdmin_load_409", %TName_Bool** %isAdmin, align 8 - %"$gasrem_410" = load i64, i64* @_gasrem, align 8 - %"$gascmp_411" = icmp ugt i64 1, %"$gasrem_410" - br i1 %"$gascmp_411", label %"$out_of_gas_412", label %"$have_gas_413" + store %TName_Bool* %"$isAdmin_load_385", %TName_Bool** %isAdmin, align 8 + %"$gasrem_386" = load i64, i64* @_gasrem, align 8 + %"$gascmp_387" = icmp ugt i64 1, %"$gasrem_386" + br i1 %"$gascmp_387", label %"$out_of_gas_388", label %"$have_gas_389" -"$out_of_gas_412": ; preds = %"$Some_406" +"$out_of_gas_388": ; preds = %"$Some_382" call void @_out_of_gas() - br label %"$have_gas_413" - -"$have_gas_413": ; preds = %"$out_of_gas_412", %"$Some_406" - %"$consume_414" = sub i64 %"$gasrem_410", 1 - store i64 %"$consume_414", i64* @_gasrem, align 8 - %"$isAdmin_415" = load %TName_Bool*, %TName_Bool** %isAdmin, align 8 - store %TName_Bool* %"$isAdmin_415", %TName_Bool** %isSenderAdmin, align 8, !dbg !44 - br label %"$matchsucc_401" - -"$None_416": ; preds = %"$have_gas_399" - %"$maybeAdmin_417" = bitcast %TName_Option_Bool* %"$maybeAdmin_402" to %CName_None_Bool* - %"$gasrem_418" = load i64, i64* @_gasrem, align 8 - %"$gascmp_419" = icmp ugt i64 1, %"$gasrem_418" - br i1 %"$gascmp_419", label %"$out_of_gas_420", label %"$have_gas_421" - -"$out_of_gas_420": ; preds = %"$None_416" + br label %"$have_gas_389" + +"$have_gas_389": ; preds = %"$out_of_gas_388", %"$Some_382" + %"$consume_390" = sub i64 %"$gasrem_386", 1 + store i64 %"$consume_390", i64* @_gasrem, align 8 + %"$isAdmin_391" = load %TName_Bool*, %TName_Bool** %isAdmin, align 8 + store %TName_Bool* %"$isAdmin_391", %TName_Bool** %isSenderAdmin, align 8, !dbg !42 + br label %"$matchsucc_377" + +"$None_392": ; preds = %"$have_gas_375" + %"$maybeAdmin_393" = bitcast %TName_Option_Bool* %"$maybeAdmin_378" to %CName_None_Bool* + %"$gasrem_394" = load i64, i64* @_gasrem, align 8 + %"$gascmp_395" = icmp ugt i64 1, %"$gasrem_394" + br i1 %"$gascmp_395", label %"$out_of_gas_396", label %"$have_gas_397" + +"$out_of_gas_396": ; preds = %"$None_392" call void @_out_of_gas() - br label %"$have_gas_421" - -"$have_gas_421": ; preds = %"$out_of_gas_420", %"$None_416" - %"$consume_422" = sub i64 %"$gasrem_418", 1 - store i64 %"$consume_422", i64* @_gasrem, align 8 - %"$adtval_423_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_423_salloc" = call i8* @_salloc(i8* %"$adtval_423_load", i64 1) - %"$adtval_423" = bitcast i8* %"$adtval_423_salloc" to %CName_False* - %"$adtgep_424" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_423", i32 0, i32 0 - store i8 1, i8* %"$adtgep_424", align 1 - %"$adtptr_425" = bitcast %CName_False* %"$adtval_423" to %TName_Bool* - store %TName_Bool* %"$adtptr_425", %TName_Bool** %isSenderAdmin, align 8, !dbg !47 - br label %"$matchsucc_401" - -"$empty_default_405": ; preds = %"$have_gas_399" - br label %"$matchsucc_401" - -"$matchsucc_401": ; preds = %"$have_gas_421", %"$have_gas_413", %"$empty_default_405" - %"$gasrem_426" = load i64, i64* @_gasrem, align 8 - %"$gascmp_427" = icmp ugt i64 2, %"$gasrem_426" - br i1 %"$gascmp_427", label %"$out_of_gas_428", label %"$have_gas_429" - -"$out_of_gas_428": ; preds = %"$matchsucc_401" + br label %"$have_gas_397" + +"$have_gas_397": ; preds = %"$out_of_gas_396", %"$None_392" + %"$consume_398" = sub i64 %"$gasrem_394", 1 + store i64 %"$consume_398", i64* @_gasrem, align 8 + %"$adtval_399_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_399_salloc" = call i8* @_salloc(i8* %"$adtval_399_load", i64 1) + %"$adtval_399" = bitcast i8* %"$adtval_399_salloc" to %CName_False* + %"$adtgep_400" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_399", i32 0, i32 0 + store i8 1, i8* %"$adtgep_400", align 1 + %"$adtptr_401" = bitcast %CName_False* %"$adtval_399" to %TName_Bool* + store %TName_Bool* %"$adtptr_401", %TName_Bool** %isSenderAdmin, align 8, !dbg !45 + br label %"$matchsucc_377" + +"$empty_default_381": ; preds = %"$have_gas_375" + br label %"$matchsucc_377" + +"$matchsucc_377": ; preds = %"$have_gas_397", %"$have_gas_389", %"$empty_default_381" + %"$gasrem_402" = load i64, i64* @_gasrem, align 8 + %"$gascmp_403" = icmp ugt i64 2, %"$gasrem_402" + br i1 %"$gascmp_403", label %"$out_of_gas_404", label %"$have_gas_405" + +"$out_of_gas_404": ; preds = %"$matchsucc_377" call void @_out_of_gas() - br label %"$have_gas_429" - -"$have_gas_429": ; preds = %"$out_of_gas_428", %"$matchsucc_401" - %"$consume_430" = sub i64 %"$gasrem_426", 2 - store i64 %"$consume_430", i64* @_gasrem, align 8 - %"$isSenderAdmin_432" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$isSenderAdmin_tag_433" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_432", i32 0, i32 0 - %"$isSenderAdmin_tag_434" = load i8, i8* %"$isSenderAdmin_tag_433", align 1 - switch i8 %"$isSenderAdmin_tag_434", label %"$empty_default_435" [ - i8 0, label %"$True_436" - i8 1, label %"$False_520" - ], !dbg !49 - -"$True_436": ; preds = %"$have_gas_429" - %"$isSenderAdmin_437" = bitcast %TName_Bool* %"$isSenderAdmin_432" to %CName_True* - %"$gasrem_438" = load i64, i64* @_gasrem, align 8 - %"$gascmp_439" = icmp ugt i64 1, %"$gasrem_438" - br i1 %"$gascmp_439", label %"$out_of_gas_440", label %"$have_gas_441" - -"$out_of_gas_440": ; preds = %"$True_436" + br label %"$have_gas_405" + +"$have_gas_405": ; preds = %"$out_of_gas_404", %"$matchsucc_377" + %"$consume_406" = sub i64 %"$gasrem_402", 2 + store i64 %"$consume_406", i64* @_gasrem, align 8 + %"$isSenderAdmin_408" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$isSenderAdmin_tag_409" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_408", i32 0, i32 0 + %"$isSenderAdmin_tag_410" = load i8, i8* %"$isSenderAdmin_tag_409", align 1 + switch i8 %"$isSenderAdmin_tag_410", label %"$empty_default_411" [ + i8 0, label %"$True_412" + i8 1, label %"$False_496" + ], !dbg !47 + +"$True_412": ; preds = %"$have_gas_405" + %"$isSenderAdmin_413" = bitcast %TName_Bool* %"$isSenderAdmin_408" to %CName_True* + %"$gasrem_414" = load i64, i64* @_gasrem, align 8 + %"$gascmp_415" = icmp ugt i64 1, %"$gasrem_414" + br i1 %"$gascmp_415", label %"$out_of_gas_416", label %"$have_gas_417" + +"$out_of_gas_416": ; preds = %"$True_412" call void @_out_of_gas() - br label %"$have_gas_441" + br label %"$have_gas_417" -"$have_gas_441": ; preds = %"$out_of_gas_440", %"$True_436" - %"$consume_442" = sub i64 %"$gasrem_438", 1 - store i64 %"$consume_442", i64* @_gasrem, align 8 +"$have_gas_417": ; preds = %"$out_of_gas_416", %"$True_412" + %"$consume_418" = sub i64 %"$gasrem_414", 1 + store i64 %"$consume_418", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_443" = load i64, i64* @_gasrem, align 8 - %"$gascmp_444" = icmp ugt i64 1, %"$gasrem_443" - br i1 %"$gascmp_444", label %"$out_of_gas_445", label %"$have_gas_446" + %"$gasrem_419" = load i64, i64* @_gasrem, align 8 + %"$gascmp_420" = icmp ugt i64 1, %"$gasrem_419" + br i1 %"$gascmp_420", label %"$out_of_gas_421", label %"$have_gas_422" -"$out_of_gas_445": ; preds = %"$have_gas_441" +"$out_of_gas_421": ; preds = %"$have_gas_417" call void @_out_of_gas() - br label %"$have_gas_446" + br label %"$have_gas_422" -"$have_gas_446": ; preds = %"$out_of_gas_445", %"$have_gas_441" - %"$consume_447" = sub i64 %"$gasrem_443", 1 - store i64 %"$consume_447", i64* @_gasrem, align 8 +"$have_gas_422": ; preds = %"$out_of_gas_421", %"$have_gas_417" + %"$consume_423" = sub i64 %"$gasrem_419", 1 + store i64 %"$consume_423", i64* @_gasrem, align 8 %m = alloca i8*, align 8 - %"$gasrem_448" = load i64, i64* @_gasrem, align 8 - %"$gascmp_449" = icmp ugt i64 1, %"$gasrem_448" - br i1 %"$gascmp_449", label %"$out_of_gas_450", label %"$have_gas_451" + %"$gasrem_424" = load i64, i64* @_gasrem, align 8 + %"$gascmp_425" = icmp ugt i64 1, %"$gasrem_424" + br i1 %"$gascmp_425", label %"$out_of_gas_426", label %"$have_gas_427" -"$out_of_gas_450": ; preds = %"$have_gas_446" +"$out_of_gas_426": ; preds = %"$have_gas_422" call void @_out_of_gas() - br label %"$have_gas_451" - -"$have_gas_451": ; preds = %"$out_of_gas_450", %"$have_gas_446" - %"$consume_452" = sub i64 %"$gasrem_448", 1 - store i64 %"$consume_452", i64* @_gasrem, align 8 - %"$msgobj_453_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_453_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_453_salloc_load", i64 253) - %"$msgobj_453_salloc" = bitcast i8* %"$msgobj_453_salloc_salloc" to [253 x i8]* - %"$msgobj_453" = bitcast [253 x i8]* %"$msgobj_453_salloc" to i8* - store i8 6, i8* %"$msgobj_453", align 1 - %"$msgobj_fname_455" = getelementptr i8, i8* %"$msgobj_453", i32 1 - %"$msgobj_fname_456" = bitcast i8* %"$msgobj_fname_455" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_454", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_456", align 8 - %"$msgobj_td_457" = getelementptr i8, i8* %"$msgobj_453", i32 17 - %"$msgobj_td_458" = bitcast i8* %"$msgobj_td_457" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_458", align 8 - %"$msgobj_v_460" = getelementptr i8, i8* %"$msgobj_453", i32 25 - %"$msgobj_v_461" = bitcast i8* %"$msgobj_v_460" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_459", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_461", align 8 - %"$msgobj_fname_463" = getelementptr i8, i8* %"$msgobj_453", i32 41 - %"$msgobj_fname_464" = bitcast i8* %"$msgobj_fname_463" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_462", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_464", align 8 - %"$msgobj_td_465" = getelementptr i8, i8* %"$msgobj_453", i32 57 - %"$msgobj_td_466" = bitcast i8* %"$msgobj_td_465" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ** %"$msgobj_td_466", align 8 - %"$registry_467" = load [20 x i8], [20 x i8]* @_cparam_registry, align 1 - %"$msgobj_v_468" = getelementptr i8, i8* %"$msgobj_453", i32 65 - %"$msgobj_v_469" = bitcast i8* %"$msgobj_v_468" to [20 x i8]* - store [20 x i8] %"$registry_467", [20 x i8]* %"$msgobj_v_469", align 1 - %"$msgobj_fname_471" = getelementptr i8, i8* %"$msgobj_453", i32 85 - %"$msgobj_fname_472" = bitcast i8* %"$msgobj_fname_471" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_470", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_472", align 8 - %"$msgobj_td_473" = getelementptr i8, i8* %"$msgobj_453", i32 101 - %"$msgobj_td_474" = bitcast i8* %"$msgobj_td_473" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ** %"$msgobj_td_474", align 8 - %"$msgobj_v_475" = getelementptr i8, i8* %"$msgobj_453", i32 109 - %"$msgobj_v_476" = bitcast i8* %"$msgobj_v_475" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_476", align 8 - %"$msgobj_fname_478" = getelementptr i8, i8* %"$msgobj_453", i32 125 - %"$msgobj_fname_479" = bitcast i8* %"$msgobj_fname_478" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_477", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_479", align 8 - %"$msgobj_td_480" = getelementptr i8, i8* %"$msgobj_453", i32 141 - %"$msgobj_td_481" = bitcast i8* %"$msgobj_td_480" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_481", align 8 - %"$msgobj_v_482" = getelementptr i8, i8* %"$msgobj_453", i32 149 - %"$msgobj_v_483" = bitcast i8* %"$msgobj_v_482" to %String* - store %String %label, %String* %"$msgobj_v_483", align 8 - %"$msgobj_fname_485" = getelementptr i8, i8* %"$msgobj_453", i32 165 - %"$msgobj_fname_486" = bitcast i8* %"$msgobj_fname_485" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_484", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_486", align 8 - %"$msgobj_td_487" = getelementptr i8, i8* %"$msgobj_453", i32 181 - %"$msgobj_td_488" = bitcast i8* %"$msgobj_td_487" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ** %"$msgobj_td_488", align 8 - %"$msgobj_v_489" = getelementptr i8, i8* %"$msgobj_453", i32 189 - %"$msgobj_v_490" = bitcast i8* %"$msgobj_v_489" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_490", align 1 - %"$msgobj_fname_492" = getelementptr i8, i8* %"$msgobj_453", i32 209 - %"$msgobj_fname_493" = bitcast i8* %"$msgobj_fname_492" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_491", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_493", align 8 - %"$msgobj_td_494" = getelementptr i8, i8* %"$msgobj_453", i32 225 - %"$msgobj_td_495" = bitcast i8* %"$msgobj_td_494" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ** %"$msgobj_td_495", align 8 - %"$msgobj_v_496" = getelementptr i8, i8* %"$msgobj_453", i32 233 - %"$msgobj_v_497" = bitcast i8* %"$msgobj_v_496" to [20 x i8]* - store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_497", align 1 - store i8* %"$msgobj_453", i8** %m, align 8, !dbg !50 - %"$gasrem_499" = load i64, i64* @_gasrem, align 8 - %"$gascmp_500" = icmp ugt i64 1, %"$gasrem_499" - br i1 %"$gascmp_500", label %"$out_of_gas_501", label %"$have_gas_502" - -"$out_of_gas_501": ; preds = %"$have_gas_451" + br label %"$have_gas_427" + +"$have_gas_427": ; preds = %"$out_of_gas_426", %"$have_gas_422" + %"$consume_428" = sub i64 %"$gasrem_424", 1 + store i64 %"$consume_428", i64* @_gasrem, align 8 + %"$msgobj_429_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_429_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_429_salloc_load", i64 253) + %"$msgobj_429_salloc" = bitcast i8* %"$msgobj_429_salloc_salloc" to [253 x i8]* + %"$msgobj_429" = bitcast [253 x i8]* %"$msgobj_429_salloc" to i8* + store i8 6, i8* %"$msgobj_429", align 1 + %"$msgobj_fname_431" = getelementptr i8, i8* %"$msgobj_429", i32 1 + %"$msgobj_fname_432" = bitcast i8* %"$msgobj_fname_431" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_430", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_432", align 8 + %"$msgobj_td_433" = getelementptr i8, i8* %"$msgobj_429", i32 17 + %"$msgobj_td_434" = bitcast i8* %"$msgobj_td_433" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ** %"$msgobj_td_434", align 8 + %"$msgobj_v_436" = getelementptr i8, i8* %"$msgobj_429", i32 25 + %"$msgobj_v_437" = bitcast i8* %"$msgobj_v_436" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_435", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_437", align 8 + %"$msgobj_fname_439" = getelementptr i8, i8* %"$msgobj_429", i32 41 + %"$msgobj_fname_440" = bitcast i8* %"$msgobj_fname_439" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_438", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_440", align 8 + %"$msgobj_td_441" = getelementptr i8, i8* %"$msgobj_429", i32 57 + %"$msgobj_td_442" = bitcast i8* %"$msgobj_td_441" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ** %"$msgobj_td_442", align 8 + %"$registry_443" = load [20 x i8], [20 x i8]* @_cparam_registry, align 1 + %"$msgobj_v_444" = getelementptr i8, i8* %"$msgobj_429", i32 65 + %"$msgobj_v_445" = bitcast i8* %"$msgobj_v_444" to [20 x i8]* + store [20 x i8] %"$registry_443", [20 x i8]* %"$msgobj_v_445", align 1 + %"$msgobj_fname_447" = getelementptr i8, i8* %"$msgobj_429", i32 85 + %"$msgobj_fname_448" = bitcast i8* %"$msgobj_fname_447" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_446", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_448", align 8 + %"$msgobj_td_449" = getelementptr i8, i8* %"$msgobj_429", i32 101 + %"$msgobj_td_450" = bitcast i8* %"$msgobj_td_449" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_18", %_TyDescrTy_Typ** %"$msgobj_td_450", align 8 + %"$msgobj_v_451" = getelementptr i8, i8* %"$msgobj_429", i32 109 + %"$msgobj_v_452" = bitcast i8* %"$msgobj_v_451" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_452", align 8 + %"$msgobj_fname_454" = getelementptr i8, i8* %"$msgobj_429", i32 125 + %"$msgobj_fname_455" = bitcast i8* %"$msgobj_fname_454" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_453", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_455", align 8 + %"$msgobj_td_456" = getelementptr i8, i8* %"$msgobj_429", i32 141 + %"$msgobj_td_457" = bitcast i8* %"$msgobj_td_456" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ** %"$msgobj_td_457", align 8 + %"$msgobj_v_458" = getelementptr i8, i8* %"$msgobj_429", i32 149 + %"$msgobj_v_459" = bitcast i8* %"$msgobj_v_458" to %String* + store %String %label, %String* %"$msgobj_v_459", align 8 + %"$msgobj_fname_461" = getelementptr i8, i8* %"$msgobj_429", i32 165 + %"$msgobj_fname_462" = bitcast i8* %"$msgobj_fname_461" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_460", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_462", align 8 + %"$msgobj_td_463" = getelementptr i8, i8* %"$msgobj_429", i32 181 + %"$msgobj_td_464" = bitcast i8* %"$msgobj_td_463" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ** %"$msgobj_td_464", align 8 + %"$msgobj_v_465" = getelementptr i8, i8* %"$msgobj_429", i32 189 + %"$msgobj_v_466" = bitcast i8* %"$msgobj_v_465" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_466", align 1 + %"$msgobj_fname_468" = getelementptr i8, i8* %"$msgobj_429", i32 209 + %"$msgobj_fname_469" = bitcast i8* %"$msgobj_fname_468" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_467", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_469", align 8 + %"$msgobj_td_470" = getelementptr i8, i8* %"$msgobj_429", i32 225 + %"$msgobj_td_471" = bitcast i8* %"$msgobj_td_470" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ** %"$msgobj_td_471", align 8 + %"$msgobj_v_472" = getelementptr i8, i8* %"$msgobj_429", i32 233 + %"$msgobj_v_473" = bitcast i8* %"$msgobj_v_472" to [20 x i8]* + store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_473", align 1 + store i8* %"$msgobj_429", i8** %m, align 8, !dbg !48 + %"$gasrem_475" = load i64, i64* @_gasrem, align 8 + %"$gascmp_476" = icmp ugt i64 1, %"$gasrem_475" + br i1 %"$gascmp_476", label %"$out_of_gas_477", label %"$have_gas_478" + +"$out_of_gas_477": ; preds = %"$have_gas_427" call void @_out_of_gas() - br label %"$have_gas_502" - -"$have_gas_502": ; preds = %"$out_of_gas_501", %"$have_gas_451" - %"$consume_503" = sub i64 %"$gasrem_499", 1 - store i64 %"$consume_503", i64* @_gasrem, align 8 - %"$ud-proxy.oneMsg_2" = alloca %TName_List_Message*, align 8 - %"$ud-proxy.oneMsg_504" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8 - %"$ud-proxy.oneMsg_fptr_505" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_504", 0 - %"$ud-proxy.oneMsg_envptr_506" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_504", 1 - %"$m_507" = load i8*, i8** %m, align 8 - %"$ud-proxy.oneMsg_call_508" = call %TName_List_Message* %"$ud-proxy.oneMsg_fptr_505"(i8* %"$ud-proxy.oneMsg_envptr_506", i8* %"$m_507"), !dbg !53 - store %TName_List_Message* %"$ud-proxy.oneMsg_call_508", %TName_List_Message** %"$ud-proxy.oneMsg_2", align 8, !dbg !53 - %"$$ud-proxy.oneMsg_2_509" = load %TName_List_Message*, %TName_List_Message** %"$ud-proxy.oneMsg_2", align 8 - store %TName_List_Message* %"$$ud-proxy.oneMsg_2_509", %TName_List_Message** %msgs, align 8, !dbg !53 - %"$msgs_510" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_510_511" = bitcast %TName_List_Message* %"$msgs_510" to i8* - %"$_literal_cost_call_512" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46", i8* %"$$msgs_510_511") - %"$gasrem_513" = load i64, i64* @_gasrem, align 8 - %"$gascmp_514" = icmp ugt i64 %"$_literal_cost_call_512", %"$gasrem_513" - br i1 %"$gascmp_514", label %"$out_of_gas_515", label %"$have_gas_516" - -"$out_of_gas_515": ; preds = %"$have_gas_502" + br label %"$have_gas_478" + +"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_427" + %"$consume_479" = sub i64 %"$gasrem_475", 1 + store i64 %"$consume_479", i64* @_gasrem, align 8 + %"$ud-proxy.oneMsg_0" = alloca %TName_List_Message*, align 8 + %"$ud-proxy.oneMsg_480" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8 + %"$ud-proxy.oneMsg_fptr_481" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_480", 0 + %"$ud-proxy.oneMsg_envptr_482" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_480", 1 + %"$m_483" = load i8*, i8** %m, align 8 + %"$ud-proxy.oneMsg_call_484" = call %TName_List_Message* %"$ud-proxy.oneMsg_fptr_481"(i8* %"$ud-proxy.oneMsg_envptr_482", i8* %"$m_483"), !dbg !51 + store %TName_List_Message* %"$ud-proxy.oneMsg_call_484", %TName_List_Message** %"$ud-proxy.oneMsg_0", align 8, !dbg !51 + %"$$ud-proxy.oneMsg_0_485" = load %TName_List_Message*, %TName_List_Message** %"$ud-proxy.oneMsg_0", align 8 + store %TName_List_Message* %"$$ud-proxy.oneMsg_0_485", %TName_List_Message** %msgs, align 8, !dbg !51 + %"$msgs_486" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_486_487" = bitcast %TName_List_Message* %"$msgs_486" to i8* + %"$_literal_cost_call_488" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_42", i8* %"$$msgs_486_487") + %"$gasrem_489" = load i64, i64* @_gasrem, align 8 + %"$gascmp_490" = icmp ugt i64 %"$_literal_cost_call_488", %"$gasrem_489" + br i1 %"$gascmp_490", label %"$out_of_gas_491", label %"$have_gas_492" + +"$out_of_gas_491": ; preds = %"$have_gas_478" call void @_out_of_gas() - br label %"$have_gas_516" - -"$have_gas_516": ; preds = %"$out_of_gas_515", %"$have_gas_502" - %"$consume_517" = sub i64 %"$gasrem_513", %"$_literal_cost_call_512" - store i64 %"$consume_517", i64* @_gasrem, align 8 - %"$execptr_load_518" = load i8*, i8** @_execptr, align 8 - %"$msgs_519" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_518", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46", %TName_List_Message* %"$msgs_519"), !dbg !54 - br label %"$matchsucc_431" - -"$False_520": ; preds = %"$have_gas_429" - %"$isSenderAdmin_521" = bitcast %TName_Bool* %"$isSenderAdmin_432" to %CName_False* - %"$ud-proxy.eError_522" = load i8*, i8** @ud-proxy.eError, align 8 - %"$_literal_cost_call_524" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$ud-proxy.eError_522") - %"$gasrem_525" = load i64, i64* @_gasrem, align 8 - %"$gascmp_526" = icmp ugt i64 %"$_literal_cost_call_524", %"$gasrem_525" - br i1 %"$gascmp_526", label %"$out_of_gas_527", label %"$have_gas_528" - -"$out_of_gas_527": ; preds = %"$False_520" + br label %"$have_gas_492" + +"$have_gas_492": ; preds = %"$out_of_gas_491", %"$have_gas_478" + %"$consume_493" = sub i64 %"$gasrem_489", %"$_literal_cost_call_488" + store i64 %"$consume_493", i64* @_gasrem, align 8 + %"$execptr_load_494" = load i8*, i8** @_execptr, align 8 + %"$msgs_495" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_494", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_42", %TName_List_Message* %"$msgs_495"), !dbg !52 + br label %"$matchsucc_407" + +"$False_496": ; preds = %"$have_gas_405" + %"$isSenderAdmin_497" = bitcast %TName_Bool* %"$isSenderAdmin_408" to %CName_False* + %"$ud-proxy.eError_498" = load i8*, i8** @ud-proxy.eError, align 8 + %"$_literal_cost_call_500" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$ud-proxy.eError_498") + %"$gasrem_501" = load i64, i64* @_gasrem, align 8 + %"$gascmp_502" = icmp ugt i64 %"$_literal_cost_call_500", %"$gasrem_501" + br i1 %"$gascmp_502", label %"$out_of_gas_503", label %"$have_gas_504" + +"$out_of_gas_503": ; preds = %"$False_496" call void @_out_of_gas() - br label %"$have_gas_528" + br label %"$have_gas_504" -"$have_gas_528": ; preds = %"$out_of_gas_527", %"$False_520" - %"$consume_529" = sub i64 %"$gasrem_525", %"$_literal_cost_call_524" - store i64 %"$consume_529", i64* @_gasrem, align 8 - %"$execptr_load_530" = load i8*, i8** @_execptr, align 8 - %"$ud-proxy.eError_531" = load i8*, i8** @ud-proxy.eError, align 8 - call void @_event(i8* %"$execptr_load_530", %_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$ud-proxy.eError_531"), !dbg !55 - br label %"$matchsucc_431" +"$have_gas_504": ; preds = %"$out_of_gas_503", %"$False_496" + %"$consume_505" = sub i64 %"$gasrem_501", %"$_literal_cost_call_500" + store i64 %"$consume_505", i64* @_gasrem, align 8 + %"$execptr_load_506" = load i8*, i8** @_execptr, align 8 + %"$ud-proxy.eError_507" = load i8*, i8** @ud-proxy.eError, align 8 + call void @_event(i8* %"$execptr_load_506", %_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$ud-proxy.eError_507"), !dbg !53 + br label %"$matchsucc_407" -"$empty_default_435": ; preds = %"$have_gas_429" - br label %"$matchsucc_431" +"$empty_default_411": ; preds = %"$have_gas_405" + br label %"$matchsucc_407" -"$matchsucc_431": ; preds = %"$have_gas_528", %"$have_gas_516", %"$empty_default_435" +"$matchsucc_407": ; preds = %"$have_gas_504", %"$have_gas_492", %"$empty_default_411" ret void } declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) -define void @bestow(i8* %0) !dbg !57 { +define void @bestow(i8* %0) !dbg !55 { entry: - %"$_amount_533" = getelementptr i8, i8* %0, i32 0 - %"$_amount_534" = bitcast i8* %"$_amount_533" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_534", align 8 - %"$_origin_535" = getelementptr i8, i8* %0, i32 16 - %"$_origin_536" = bitcast i8* %"$_origin_535" to [20 x i8]* - %"$_sender_537" = getelementptr i8, i8* %0, i32 36 - %"$_sender_538" = bitcast i8* %"$_sender_537" to [20 x i8]* - %"$label_539" = getelementptr i8, i8* %0, i32 56 - %"$label_540" = bitcast i8* %"$label_539" to %String* - %label = load %String, %String* %"$label_540", align 8 - %"$owner_541" = getelementptr i8, i8* %0, i32 72 - %"$owner_542" = bitcast i8* %"$owner_541" to [20 x i8]* - %"$resolver_543" = getelementptr i8, i8* %0, i32 92 - %"$resolver_544" = bitcast i8* %"$resolver_543" to [20 x i8]* - call void @"$bestow_370"(%Uint128 %_amount, [20 x i8]* %"$_origin_536", [20 x i8]* %"$_sender_538", %String %label, [20 x i8]* %"$owner_542", [20 x i8]* %"$resolver_544"), !dbg !58 + %"$_amount_509" = getelementptr i8, i8* %0, i32 0 + %"$_amount_510" = bitcast i8* %"$_amount_509" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_510", align 8 + %"$_origin_511" = getelementptr i8, i8* %0, i32 16 + %"$_origin_512" = bitcast i8* %"$_origin_511" to [20 x i8]* + %"$_sender_513" = getelementptr i8, i8* %0, i32 36 + %"$_sender_514" = bitcast i8* %"$_sender_513" to [20 x i8]* + %"$label_515" = getelementptr i8, i8* %0, i32 56 + %"$label_516" = bitcast i8* %"$label_515" to %String* + %label = load %String, %String* %"$label_516", align 8 + %"$owner_517" = getelementptr i8, i8* %0, i32 72 + %"$owner_518" = bitcast i8* %"$owner_517" to [20 x i8]* + %"$resolver_519" = getelementptr i8, i8* %0, i32 92 + %"$resolver_520" = bitcast i8* %"$resolver_519" to [20 x i8]* + call void @"$bestow_346"(%Uint128 %_amount, [20 x i8]* %"$_origin_512", [20 x i8]* %"$_sender_514", %String %label, [20 x i8]* %"$owner_518", [20 x i8]* %"$resolver_520"), !dbg !56 ret void } @@ -1044,58 +1003,56 @@ entry: !1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) !2 = !DIFile(filename: "ud-proxy.scilla", directory: "codegen/contr") !3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_5", linkageName: "$fundef_5", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!4 = distinct !DISubprogram(name: "$fundef_1", linkageName: "$fundef_1", scope: !2, file: !2, line: 16, type: !5, scopeLine: 16, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !5 = !DISubroutineType(types: !6) !6 = !{!7} !7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") !8 = !DILocation(line: 17, column: 5, scope: !4) -!9 = distinct !DISubprogram(name: "$fundef_3", linkageName: "$fundef_3", scope: !2, file: !2, line: 16, type: !5, scopeLine: 16, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!10 = !DILocation(line: 17, column: 5, scope: !9) -!11 = distinct !DISubprogram(name: "$fundef_7", linkageName: "$fundef_7", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!12 = !DILocation(line: 12, column: 5, scope: !11) -!13 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !14, file: !14, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!14 = !DIFile(filename: ".", directory: ".") -!15 = !DILocation(line: 7, column: 12, scope: !13) -!16 = !DILocation(line: 8, column: 18, scope: !13) -!17 = !DILocation(line: 12, column: 5, scope: !13) -!18 = !DILocation(line: 16, column: 3, scope: !13) -!19 = !DILocation(line: 19, column: 14, scope: !13) -!20 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !14, file: !14, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!21 = !DILocation(line: 26, column: 15, scope: !20) -!22 = !DILocation(line: 27, column: 5, scope: !20) -!23 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 29, type: !5, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 30, column: 3, scope: !23) -!25 = !DILocation(line: 33, column: 5, scope: !23) -!26 = !DILocation(line: 34, column: 24, scope: !27) -!27 = distinct !DILexicalBlock(scope: !28, file: !2, line: 34, column: 7) -!28 = distinct !DILexicalBlock(scope: !23, file: !2, line: 33, column: 5) -!29 = !DILocation(line: 35, column: 15, scope: !30) -!30 = distinct !DILexicalBlock(scope: !28, file: !2, line: 35, column: 7) -!31 = !DILocation(line: 38, column: 3, scope: !23) -!32 = !DILocation(line: 40, column: 5, scope: !33) -!33 = distinct !DILexicalBlock(scope: !34, file: !2, line: 39, column: 5) -!34 = distinct !DILexicalBlock(scope: !23, file: !2, line: 38, column: 3) -!35 = !DILocation(line: 42, column: 9, scope: !33) -!36 = !DILocation(line: 43, column: 5, scope: !33) -!37 = !DILocation(line: 45, column: 5, scope: !38) -!38 = distinct !DILexicalBlock(scope: !34, file: !2, line: 44, column: 5) -!39 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 29, type: !5, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!40 = !DILocation(line: 29, column: 12, scope: !39) -!41 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 49, type: !5, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!42 = !DILocation(line: 50, column: 3, scope: !41) -!43 = !DILocation(line: 53, column: 5, scope: !41) -!44 = !DILocation(line: 54, column: 23, scope: !45) -!45 = distinct !DILexicalBlock(scope: !46, file: !2, line: 54, column: 7) -!46 = distinct !DILexicalBlock(scope: !41, file: !2, line: 53, column: 5) -!47 = !DILocation(line: 55, column: 15, scope: !48) -!48 = distinct !DILexicalBlock(scope: !46, file: !2, line: 55, column: 7) -!49 = !DILocation(line: 58, column: 3, scope: !41) -!50 = !DILocation(line: 61, column: 15, scope: !51) -!51 = distinct !DILexicalBlock(scope: !52, file: !2, line: 59, column: 5) -!52 = distinct !DILexicalBlock(scope: !41, file: !2, line: 58, column: 3) -!53 = !DILocation(line: 63, column: 7, scope: !51) -!54 = !DILocation(line: 64, column: 5, scope: !51) -!55 = !DILocation(line: 66, column: 5, scope: !56) -!56 = distinct !DILexicalBlock(scope: !52, file: !2, line: 65, column: 5) -!57 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 49, type: !5, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!58 = !DILocation(line: 49, column: 12, scope: !57) +!9 = distinct !DISubprogram(name: "$fundef_3", linkageName: "$fundef_3", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!10 = !DILocation(line: 12, column: 5, scope: !9) +!11 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !12, file: !12, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!12 = !DIFile(filename: ".", directory: ".") +!13 = !DILocation(line: 7, column: 12, scope: !11) +!14 = !DILocation(line: 8, column: 18, scope: !11) +!15 = !DILocation(line: 12, column: 5, scope: !11) +!16 = !DILocation(line: 16, column: 3, scope: !11) +!17 = !DILocation(line: 19, column: 14, scope: !11) +!18 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !12, file: !12, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!19 = !DILocation(line: 26, column: 15, scope: !18) +!20 = !DILocation(line: 27, column: 5, scope: !18) +!21 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 29, type: !5, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!22 = !DILocation(line: 30, column: 3, scope: !21) +!23 = !DILocation(line: 33, column: 5, scope: !21) +!24 = !DILocation(line: 34, column: 24, scope: !25) +!25 = distinct !DILexicalBlock(scope: !26, file: !2, line: 34, column: 7) +!26 = distinct !DILexicalBlock(scope: !21, file: !2, line: 33, column: 5) +!27 = !DILocation(line: 35, column: 15, scope: !28) +!28 = distinct !DILexicalBlock(scope: !26, file: !2, line: 35, column: 7) +!29 = !DILocation(line: 38, column: 3, scope: !21) +!30 = !DILocation(line: 40, column: 5, scope: !31) +!31 = distinct !DILexicalBlock(scope: !32, file: !2, line: 39, column: 5) +!32 = distinct !DILexicalBlock(scope: !21, file: !2, line: 38, column: 3) +!33 = !DILocation(line: 42, column: 9, scope: !31) +!34 = !DILocation(line: 43, column: 5, scope: !31) +!35 = !DILocation(line: 45, column: 5, scope: !36) +!36 = distinct !DILexicalBlock(scope: !32, file: !2, line: 44, column: 5) +!37 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 29, type: !5, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!38 = !DILocation(line: 29, column: 12, scope: !37) +!39 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 49, type: !5, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!40 = !DILocation(line: 50, column: 3, scope: !39) +!41 = !DILocation(line: 53, column: 5, scope: !39) +!42 = !DILocation(line: 54, column: 23, scope: !43) +!43 = distinct !DILexicalBlock(scope: !44, file: !2, line: 54, column: 7) +!44 = distinct !DILexicalBlock(scope: !39, file: !2, line: 53, column: 5) +!45 = !DILocation(line: 55, column: 15, scope: !46) +!46 = distinct !DILexicalBlock(scope: !44, file: !2, line: 55, column: 7) +!47 = !DILocation(line: 58, column: 3, scope: !39) +!48 = !DILocation(line: 61, column: 15, scope: !49) +!49 = distinct !DILexicalBlock(scope: !50, file: !2, line: 59, column: 5) +!50 = distinct !DILexicalBlock(scope: !39, file: !2, line: 58, column: 3) +!51 = !DILocation(line: 63, column: 7, scope: !49) +!52 = !DILocation(line: 64, column: 5, scope: !49) +!53 = !DILocation(line: 66, column: 5, scope: !54) +!54 = distinct !DILexicalBlock(scope: !50, file: !2, line: 65, column: 5) +!55 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 49, type: !5, scopeLine: 49, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!56 = !DILocation(line: 49, column: 12, scope: !55) diff --git a/tests/codegen/contr/dgold/ud-registry.scilla.gold b/tests/codegen/contr/dgold/ud-registry.scilla.gold index f569d9c9..f210bd98 100644 --- a/tests/codegen/contr/dgold/ud-registry.scilla.gold +++ b/tests/codegen/contr/dgold/ud-registry.scilla.gold @@ -3,18 +3,18 @@ ; gas_remaining: 4001916 ; ModuleID = 'Registry' source_filename = "Registry" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_277" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_160" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_313" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_312"** } +%"$TyDescrTy_ADTTyp_196" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_195"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_312" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_314"**, %"$TyDescrTy_ADTTyp_313"* } -%"$TyDescrTy_ADTTyp_Constr_314" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$TyDescr_MapTyp_322" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } -%"$TyDescr_AddrTyp_327" = type { i32, %"$TyDescr_AddrFieldTyp_326"* } -%"$TyDescr_AddrFieldTyp_326" = type { %TyDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_195" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_197"**, %"$TyDescrTy_ADTTyp_196"* } +%"$TyDescrTy_ADTTyp_Constr_197" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$TyDescr_MapTyp_205" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } +%"$TyDescr_AddrTyp_210" = type { i32, %"$TyDescr_AddrFieldTyp_209"* } +%"$TyDescr_AddrFieldTyp_209" = type { %TyDescrString, %_TyDescrTy_Typ* } %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> @@ -30,79 +30,63 @@ target triple = "x86_64-unknown-linux-gnu" %TName_ud-registry.Record = type { i8, %CName_ud-registry.Record* } %CName_ud-registry.Record = type <{ i8, [20 x i8], [20 x i8] }> %CName_None_ud-registry.Record = type <{ i8 }> -%"TName_Option_List_(ByStr20)" = type { i8, %"CName_Some_List_(ByStr20)"*, %"CName_None_List_(ByStr20)"* } -%"CName_Some_List_(ByStr20)" = type <{ i8, %TName_List_ByStr20* }> -%"CName_None_List_(ByStr20)" = type <{ i8 }> %TName_Option_ByStr20 = type { i8, %CName_Some_ByStr20*, %CName_None_ByStr20* } %CName_Some_ByStr20 = type <{ i8, [20 x i8] }> %CName_None_ByStr20 = type <{ i8 }> +%"TName_Option_List_(ByStr20)" = type { i8, %"CName_Some_List_(ByStr20)"*, %"CName_None_List_(ByStr20)"* } +%"CName_Some_List_(ByStr20)" = type <{ i8, %TName_List_ByStr20* }> +%"CName_None_List_(ByStr20)" = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_5929" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_5267" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_5930" = type { %ParamDescrString, i32, %"$ParamDescr_5929"* } -%"$$fundef_214_env_405" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, %TName_Option_ByStr20*, [20 x i8], [20 x i8], { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_212_env_406" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, [20 x i8], [20 x i8], { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_210_env_407" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, [20 x i8], { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_208_env_408" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_218_env_409" = type { [32 x i8] } -%"$$fundef_216_env_410" = type {} -%"$$fundef_220_env_411" = type { [20 x i8] } -%"$$fundef_222_env_412" = type {} -%"$$fundef_228_env_413" = type { [32 x i8], [20 x i8] } -%"$$fundef_226_env_414" = type { [32 x i8] } -%"$$fundef_224_env_415" = type {} -%"$$fundef_232_env_416" = type { [32 x i8] } -%"$$fundef_230_env_417" = type {} -%"$$fundef_234_env_418" = type {} -%"$$fundef_236_env_419" = type {} -%"$$fundef_242_env_420" = type { [20 x i8], [20 x i8] } -%"$$fundef_240_env_421" = type { [20 x i8] } -%"$$fundef_238_env_422" = type {} -%"$$fundef_246_env_423" = type { [20 x i8] } -%"$$fundef_244_env_424" = type {} -%"$$fundef_250_env_425" = type { %TName_Bool* } -%"$$fundef_248_env_426" = type {} -%"$$fundef_256_env_427" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, [20 x i8] } -%"$$fundef_254_env_428" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { i8*, i8* }*, %TName_List_ByStr20* } -%"$$fundef_252_env_429" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { i8*, i8* }* } -%"$$fundef_260_env_430" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, %TName_List_ByStr20*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_258_env_431" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_264_env_432" = type { { i8*, i8* }*, %TName_List_ByStr20*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_262_env_433" = type { { i8*, i8* }*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_268_env_434" = type { [20 x i8] } -%"$$fundef_266_env_435" = type {} -%"$$fundef_270_env_436" = type { %TName_List_Message* } -%"$$fundef_182_env_437" = type { { i8*, i8* }*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_180_env_438" = type { { i8*, i8* }* } -%"$$fundef_178_env_439" = type { { i8*, i8* }* } -%"$$fundef_188_env_440" = type { { i8*, i8* }*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_186_env_441" = type { { i8*, i8* }* } -%"$$fundef_184_env_442" = type { { i8*, i8* }* } -%"$$fundef_198_env_443" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, [20 x i8] } -%"$$fundef_196_env_444" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_194_env_445" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_192_env_446" = type { { i8*, i8* }* } -%"$$fundef_190_env_447" = type { { i8*, i8* }* } -%"$$fundef_206_env_448" = type { { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, [20 x i8] } -%"$$fundef_204_env_449" = type { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_202_env_450" = type { { i8*, i8* }* } -%"$$fundef_200_env_451" = type { { i8*, i8* }* } -%"$$fundef_168_env_452" = type {} -%"$$fundef_172_env_453" = type { %TName_Bool* } -%"$$fundef_170_env_454" = type {} -%"$$fundef_176_env_455" = type { %TName_Bool* } -%"$$fundef_174_env_456" = type {} -%"$$fundef_156_env_457" = type { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, %TName_List_ByStr20* } -%"$$fundef_154_env_458" = type { { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, %TName_Option_ByStr20* } -%"$$fundef_152_env_459" = type { { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } } -%"$$fundef_150_env_460" = type {} -%"$$fundef_148_env_461" = type {} -%"$$fundef_146_env_462" = type {} -%"$$fundef_166_env_463" = type { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, %TName_List_ByStr20* } -%"$$fundef_164_env_464" = type { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_162_env_465" = type {} -%"$$fundef_160_env_466" = type {} -%"$$fundef_158_env_467" = type {} +%"$TransDescr_5268" = type { %ParamDescrString, i32, %"$ParamDescr_5267"* } +%"$$fundef_119_env_288" = type { { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } } +%"$$fundef_121_env_289" = type {} +%"$$fundef_123_env_290" = type { [20 x i8] } +%"$$fundef_125_env_291" = type {} +%"$$fundef_127_env_292" = type {} +%"$$fundef_129_env_293" = type {} +%"$$fundef_131_env_294" = type {} +%"$$fundef_133_env_295" = type {} +%"$$fundef_135_env_296" = type {} +%"$$fundef_137_env_297" = type {} +%"$$fundef_139_env_298" = type {} +%"$$fundef_143_env_299" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, [20 x i8] } +%"$$fundef_141_env_300" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { i8*, i8* }* } +%"$$fundef_145_env_301" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } } +%"$$fundef_147_env_302" = type { { i8*, i8* }*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_151_env_303" = type { [20 x i8] } +%"$$fundef_149_env_304" = type {} +%"$$fundef_153_env_305" = type { %TName_List_Message* } +%"$$fundef_93_env_306" = type { { i8*, i8* }*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_91_env_307" = type { { i8*, i8* }* } +%"$$fundef_89_env_308" = type { { i8*, i8* }* } +%"$$fundef_99_env_309" = type { { i8*, i8* }*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_97_env_310" = type { { i8*, i8* }* } +%"$$fundef_95_env_311" = type { { i8*, i8* }* } +%"$$fundef_109_env_312" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, [20 x i8] } +%"$$fundef_107_env_313" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_105_env_314" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_103_env_315" = type { { i8*, i8* }* } +%"$$fundef_101_env_316" = type { { i8*, i8* }* } +%"$$fundef_117_env_317" = type { { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, [20 x i8] } +%"$$fundef_115_env_318" = type { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_113_env_319" = type { { i8*, i8* }* } +%"$$fundef_111_env_320" = type { { i8*, i8* }* } +%"$$fundef_83_env_321" = type {} +%"$$fundef_85_env_322" = type {} +%"$$fundef_87_env_323" = type {} +%"$$fundef_71_env_324" = type { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, %TName_List_ByStr20* } +%"$$fundef_69_env_325" = type { { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, %TName_Option_ByStr20* } +%"$$fundef_67_env_326" = type { { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } } +%"$$fundef_65_env_327" = type {} +%"$$fundef_63_env_328" = type {} +%"$$fundef_61_env_329" = type {} +%"$$fundef_81_env_330" = type { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, %TName_List_ByStr20* } +%"$$fundef_79_env_331" = type { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } +%"$$fundef_77_env_332" = type {} +%"$$fundef_75_env_333" = type {} +%"$$fundef_73_env_334" = type {} %Map_ByStr32_ud-registry.Record = type { [32 x i8], %TName_ud-registry.Record* } %Map_ByStr32_ByStr20 = type { [32 x i8], [20 x i8] } %"Map_ByStr20_List_(ByStr20)" = type { [20 x i8], %TName_List_ByStr20* } @@ -110,158 +94,158 @@ target triple = "x86_64-unknown-linux-gnu" @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_278" = global %"$TyDescrTy_PrimTyp_277" zeroinitializer -@"$TyDescr_Int32_279" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Int32_Prim_278" to i8*) } -@"$TyDescr_Uint32_Prim_280" = global %"$TyDescrTy_PrimTyp_277" { i32 1, i32 0 } -@"$TyDescr_Uint32_281" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Uint32_Prim_280" to i8*) } -@"$TyDescr_Int64_Prim_282" = global %"$TyDescrTy_PrimTyp_277" { i32 0, i32 1 } -@"$TyDescr_Int64_283" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Int64_Prim_282" to i8*) } -@"$TyDescr_Uint64_Prim_284" = global %"$TyDescrTy_PrimTyp_277" { i32 1, i32 1 } -@"$TyDescr_Uint64_285" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Uint64_Prim_284" to i8*) } -@"$TyDescr_Int128_Prim_286" = global %"$TyDescrTy_PrimTyp_277" { i32 0, i32 2 } -@"$TyDescr_Int128_287" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Int128_Prim_286" to i8*) } -@"$TyDescr_Uint128_Prim_288" = global %"$TyDescrTy_PrimTyp_277" { i32 1, i32 2 } -@"$TyDescr_Uint128_289" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Uint128_Prim_288" to i8*) } -@"$TyDescr_Int256_Prim_290" = global %"$TyDescrTy_PrimTyp_277" { i32 0, i32 3 } -@"$TyDescr_Int256_291" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Int256_Prim_290" to i8*) } -@"$TyDescr_Uint256_Prim_292" = global %"$TyDescrTy_PrimTyp_277" { i32 1, i32 3 } -@"$TyDescr_Uint256_293" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Uint256_Prim_292" to i8*) } -@"$TyDescr_String_Prim_294" = global %"$TyDescrTy_PrimTyp_277" { i32 2, i32 0 } -@"$TyDescr_String_295" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_String_Prim_294" to i8*) } -@"$TyDescr_Bnum_Prim_296" = global %"$TyDescrTy_PrimTyp_277" { i32 3, i32 0 } -@"$TyDescr_Bnum_297" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Bnum_Prim_296" to i8*) } -@"$TyDescr_Message_Prim_298" = global %"$TyDescrTy_PrimTyp_277" { i32 4, i32 0 } -@"$TyDescr_Message_299" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Message_Prim_298" to i8*) } -@"$TyDescr_Event_Prim_300" = global %"$TyDescrTy_PrimTyp_277" { i32 5, i32 0 } -@"$TyDescr_Event_301" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Event_Prim_300" to i8*) } -@"$TyDescr_Exception_Prim_302" = global %"$TyDescrTy_PrimTyp_277" { i32 6, i32 0 } -@"$TyDescr_Exception_303" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Exception_Prim_302" to i8*) } -@"$TyDescr_Bystr_Prim_304" = global %"$TyDescrTy_PrimTyp_277" { i32 7, i32 0 } -@"$TyDescr_Bystr_305" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Bystr_Prim_304" to i8*) } -@"$TyDescr_Bystr64_Prim_306" = global %"$TyDescrTy_PrimTyp_277" { i32 8, i32 64 } -@"$TyDescr_Bystr64_307" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Bystr64_Prim_306" to i8*) } -@"$TyDescr_Bystr32_Prim_308" = global %"$TyDescrTy_PrimTyp_277" { i32 8, i32 32 } -@"$TyDescr_Bystr32_309" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Bystr32_Prim_308" to i8*) } -@"$TyDescr_Bystr20_Prim_310" = global %"$TyDescrTy_PrimTyp_277" { i32 8, i32 20 } -@"$TyDescr_Bystr20_311" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Bystr20_Prim_310" to i8*) } -@"$TyDescr_ADT_Option_List_(ByStr20)_315" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_338" to i8*) } -@"$TyDescr_ADT_Option_ud-registry.Record_316" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_347" to i8*) } -@"$TyDescr_ADT_Option_ByStr20_317" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_356" to i8*) } -@"$TyDescr_ADT_ud-registry.Record_318" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_365" to i8*) } -@"$TyDescr_ADT_List_Message_319" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_List_Message_ADTTyp_Specl_377" to i8*) } -@"$TyDescr_ADT_List_ByStr20_320" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_386" to i8*) } -@"$TyDescr_ADT_Bool_321" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Bool_ADTTyp_Specl_398" to i8*) } -@"$TyDescr_Map_323" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_322"* @"$TyDescr_MapTyp_401" to i8*) } -@"$TyDescr_Map_324" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_322"* @"$TyDescr_MapTyp_402" to i8*) } -@"$TyDescr_Map_325" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_322"* @"$TyDescr_MapTyp_403" to i8*) } -@"$TyDescr_Addr_328" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_327"* @"$TyDescr_AddrFields_404" to i8*) } -@"$TyDescr_Option_ADTTyp_329" = unnamed_addr constant %"$TyDescrTy_ADTTyp_313" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_358", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 3, %"$TyDescrTy_ADTTyp_Specl_312"** getelementptr inbounds ([3 x %"$TyDescrTy_ADTTyp_Specl_312"*], [3 x %"$TyDescrTy_ADTTyp_Specl_312"*]* @"$TyDescr_Option_ADTTyp_m_specls_357", i32 0, i32 0) } -@"$TyDescr_Option_Some_List_(ByStr20)_Constr_m_args_330" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320"] -@"$TyDescr_ADT_Some_331" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_List_(ByStr20)_ADTTyp_Constr_332" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_331", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_List_(ByStr20)_Constr_m_args_330", i32 0, i32 0) } -@"$TyDescr_Option_None_List_(ByStr20)_Constr_m_args_333" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_334" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_List_(ByStr20)_ADTTyp_Constr_335" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_334", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_List_(ByStr20)_Constr_m_args_333", i32 0, i32 0) } -@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_constrs_336" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_Some_List_(ByStr20)_ADTTyp_Constr_332", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_None_List_(ByStr20)_ADTTyp_Constr_335"] -@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_TArgs_337" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320"] -@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_338" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_TArgs_337", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_constrs_336", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_Option_ADTTyp_329" } -@"$TyDescr_Option_Some_ud-registry.Record_Constr_m_args_339" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318"] -@"$TyDescr_ADT_Some_340" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_ud-registry.Record_ADTTyp_Constr_341" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_340", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ud-registry.Record_Constr_m_args_339", i32 0, i32 0) } -@"$TyDescr_Option_None_ud-registry.Record_Constr_m_args_342" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_343" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_ud-registry.Record_ADTTyp_Constr_344" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_343", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ud-registry.Record_Constr_m_args_342", i32 0, i32 0) } -@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_constrs_345" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_Some_ud-registry.Record_ADTTyp_Constr_341", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_None_ud-registry.Record_ADTTyp_Constr_344"] -@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_TArgs_346" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318"] -@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_347" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_TArgs_346", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_constrs_345", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_Option_ADTTyp_329" } -@"$TyDescr_Option_Some_ByStr20_Constr_m_args_348" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311"] -@"$TyDescr_ADT_Some_349" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_350" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_349", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ByStr20_Constr_m_args_348", i32 0, i32 0) } -@"$TyDescr_Option_None_ByStr20_Constr_m_args_351" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_352" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_353" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_352", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ByStr20_Constr_m_args_351", i32 0, i32 0) } -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_354" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_350", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_353"] -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_355" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311"] -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_356" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_355", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_354", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_Option_ADTTyp_329" } -@"$TyDescr_Option_ADTTyp_m_specls_357" = unnamed_addr constant [3 x %"$TyDescrTy_ADTTyp_Specl_312"*] [%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_338", %"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_347", %"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_356"] -@"$TyDescr_ADT_Option_358" = unnamed_addr constant [6 x i8] c"Option" -@"$TyDescr_ud-registry.Record_ADTTyp_359" = unnamed_addr constant %"$TyDescrTy_ADTTyp_313" { %TyDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$TyDescr_ADT_ud-registry.Record_367", i32 0, i32 0), i32 18 }, i32 0, i32 1, i32 1, %"$TyDescrTy_ADTTyp_Specl_312"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_312"*], [1 x %"$TyDescrTy_ADTTyp_Specl_312"*]* @"$TyDescr_ud-registry.Record_ADTTyp_m_specls_366", i32 0, i32 0) } -@"$TyDescr_ud-registry.Record_ud-registry.Record_Constr_m_args_360" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311"] -@"$TyDescr_ADT_ud-registry.Record_361" = unnamed_addr constant [18 x i8] c"ud-registry.Record" -@"$TyDescr_ud-registry.Record_ud-registry.Record_ADTTyp_Constr_362" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$TyDescr_ADT_ud-registry.Record_361", i32 0, i32 0), i32 18 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_ud-registry.Record_ud-registry.Record_Constr_m_args_360", i32 0, i32 0) } -@"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_constrs_363" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_ud-registry.Record_ud-registry.Record_ADTTyp_Constr_362"] -@"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_TArgs_364" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ud-registry.Record_ADTTyp_Specl_365" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_TArgs_364", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Constr_314"*], [1 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_constrs_363", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_ud-registry.Record_ADTTyp_359" } -@"$TyDescr_ud-registry.Record_ADTTyp_m_specls_366" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_312"*] [%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_365"] -@"$TyDescr_ADT_ud-registry.Record_367" = unnamed_addr constant [18 x i8] c"ud-registry.Record" -@"$TyDescr_List_ADTTyp_368" = unnamed_addr constant %"$TyDescrTy_ADTTyp_313" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_388", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_312"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_312"*], [2 x %"$TyDescrTy_ADTTyp_Specl_312"*]* @"$TyDescr_List_ADTTyp_m_specls_387", i32 0, i32 0) } -@"$TyDescr_List_Cons_Message_Constr_m_args_369" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_299", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319"] -@"$TyDescr_ADT_Cons_370" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_Message_ADTTyp_Constr_371" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_370", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_369", i32 0, i32 0) } -@"$TyDescr_List_Nil_Message_Constr_m_args_372" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_373" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_Message_ADTTyp_Constr_374" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_373", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_372", i32 0, i32 0) } -@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_375" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_371", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_374"] -@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_376" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_299"] -@"$TyDescr_List_Message_ADTTyp_Specl_377" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_376", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_375", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_List_ADTTyp_368" } -@"$TyDescr_List_Cons_ByStr20_Constr_m_args_378" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320"] -@"$TyDescr_ADT_Cons_379" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_380" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_379", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_ByStr20_Constr_m_args_378", i32 0, i32 0) } -@"$TyDescr_List_Nil_ByStr20_Constr_m_args_381" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_382" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_383" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_382", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_ByStr20_Constr_m_args_381", i32 0, i32 0) } -@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_384" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_380", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_383"] -@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_385" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311"] -@"$TyDescr_List_ByStr20_ADTTyp_Specl_386" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_385", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_384", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_List_ADTTyp_368" } -@"$TyDescr_List_ADTTyp_m_specls_387" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_312"*] [%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_List_Message_ADTTyp_Specl_377", %"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_386"] -@"$TyDescr_ADT_List_388" = unnamed_addr constant [4 x i8] c"List" -@"$TyDescr_Bool_ADTTyp_389" = unnamed_addr constant %"$TyDescrTy_ADTTyp_313" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_400", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_312"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_312"*], [1 x %"$TyDescrTy_ADTTyp_Specl_312"*]* @"$TyDescr_Bool_ADTTyp_m_specls_399", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_390" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_391" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_392" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_391", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_390", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_393" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_394" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_395" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_394", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_393", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_396" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Bool_True_ADTTyp_Constr_392", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Bool_False_ADTTyp_Constr_395"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_397" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_398" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_397", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_396", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_Bool_ADTTyp_389" } -@"$TyDescr_Bool_ADTTyp_m_specls_399" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_312"*] [%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Bool_ADTTyp_Specl_398"] -@"$TyDescr_ADT_Bool_400" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_MapTyp_401" = unnamed_addr constant %"$TyDescr_MapTyp_322" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320" } -@"$TyDescr_MapTyp_402" = unnamed_addr constant %"$TyDescr_MapTyp_322" { %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" } -@"$TyDescr_MapTyp_403" = unnamed_addr constant %"$TyDescr_MapTyp_322" { %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318" } -@"$TyDescr_AddrFields_404" = unnamed_addr constant %"$TyDescr_AddrTyp_327" { i32 -1, %"$TyDescr_AddrFieldTyp_326"* null } -@"$stringlit_1747" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1752" = unnamed_addr constant [8 x i8] c"AdminSet" -@"$stringlit_1755" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_1763" = unnamed_addr constant [10 x i8] c"isApproved" -@"$stringlit_1808" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1813" = unnamed_addr constant [11 x i8] c"ApprovedFor" -@"$stringlit_1816" = unnamed_addr constant [4 x i8] c"user" -@"$stringlit_1824" = unnamed_addr constant [8 x i8] c"operator" -@"$stringlit_1832" = unnamed_addr constant [10 x i8] c"isApproved" -@"$stringlit_1847" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1852" = unnamed_addr constant [8 x i8] c"Approved" -@"$stringlit_1855" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_1870" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1875" = unnamed_addr constant [12 x i8] c"NewRegistrar" -@"$stringlit_1878" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_1906" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1911" = unnamed_addr constant [9 x i8] c"NewDomain" -@"$stringlit_1914" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_1922" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_1967" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1972" = unnamed_addr constant [10 x i8] c"Configured" -@"$stringlit_1975" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_1983" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_1991" = unnamed_addr constant [8 x i8] c"resolver" -@"$stringlit_2006" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_2011" = unnamed_addr constant [5 x i8] c"Error" -@"$stringlit_2014" = unnamed_addr constant [3 x i8] c"msg" +@"$TyDescr_Int32_Prim_161" = global %"$TyDescrTy_PrimTyp_160" zeroinitializer +@"$TyDescr_Int32_162" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Int32_Prim_161" to i8*) } +@"$TyDescr_Uint32_Prim_163" = global %"$TyDescrTy_PrimTyp_160" { i32 1, i32 0 } +@"$TyDescr_Uint32_164" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Uint32_Prim_163" to i8*) } +@"$TyDescr_Int64_Prim_165" = global %"$TyDescrTy_PrimTyp_160" { i32 0, i32 1 } +@"$TyDescr_Int64_166" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Int64_Prim_165" to i8*) } +@"$TyDescr_Uint64_Prim_167" = global %"$TyDescrTy_PrimTyp_160" { i32 1, i32 1 } +@"$TyDescr_Uint64_168" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Uint64_Prim_167" to i8*) } +@"$TyDescr_Int128_Prim_169" = global %"$TyDescrTy_PrimTyp_160" { i32 0, i32 2 } +@"$TyDescr_Int128_170" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Int128_Prim_169" to i8*) } +@"$TyDescr_Uint128_Prim_171" = global %"$TyDescrTy_PrimTyp_160" { i32 1, i32 2 } +@"$TyDescr_Uint128_172" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Uint128_Prim_171" to i8*) } +@"$TyDescr_Int256_Prim_173" = global %"$TyDescrTy_PrimTyp_160" { i32 0, i32 3 } +@"$TyDescr_Int256_174" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Int256_Prim_173" to i8*) } +@"$TyDescr_Uint256_Prim_175" = global %"$TyDescrTy_PrimTyp_160" { i32 1, i32 3 } +@"$TyDescr_Uint256_176" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Uint256_Prim_175" to i8*) } +@"$TyDescr_String_Prim_177" = global %"$TyDescrTy_PrimTyp_160" { i32 2, i32 0 } +@"$TyDescr_String_178" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_String_Prim_177" to i8*) } +@"$TyDescr_Bnum_Prim_179" = global %"$TyDescrTy_PrimTyp_160" { i32 3, i32 0 } +@"$TyDescr_Bnum_180" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Bnum_Prim_179" to i8*) } +@"$TyDescr_Message_Prim_181" = global %"$TyDescrTy_PrimTyp_160" { i32 4, i32 0 } +@"$TyDescr_Message_182" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Message_Prim_181" to i8*) } +@"$TyDescr_Event_Prim_183" = global %"$TyDescrTy_PrimTyp_160" { i32 5, i32 0 } +@"$TyDescr_Event_184" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Event_Prim_183" to i8*) } +@"$TyDescr_Exception_Prim_185" = global %"$TyDescrTy_PrimTyp_160" { i32 6, i32 0 } +@"$TyDescr_Exception_186" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Exception_Prim_185" to i8*) } +@"$TyDescr_Bystr_Prim_187" = global %"$TyDescrTy_PrimTyp_160" { i32 7, i32 0 } +@"$TyDescr_Bystr_188" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Bystr_Prim_187" to i8*) } +@"$TyDescr_Bystr64_Prim_189" = global %"$TyDescrTy_PrimTyp_160" { i32 8, i32 64 } +@"$TyDescr_Bystr64_190" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Bystr64_Prim_189" to i8*) } +@"$TyDescr_Bystr32_Prim_191" = global %"$TyDescrTy_PrimTyp_160" { i32 8, i32 32 } +@"$TyDescr_Bystr32_192" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Bystr32_Prim_191" to i8*) } +@"$TyDescr_Bystr20_Prim_193" = global %"$TyDescrTy_PrimTyp_160" { i32 8, i32 20 } +@"$TyDescr_Bystr20_194" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Bystr20_Prim_193" to i8*) } +@"$TyDescr_ADT_Option_List_(ByStr20)_198" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_221" to i8*) } +@"$TyDescr_ADT_Option_ud-registry.Record_199" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_230" to i8*) } +@"$TyDescr_ADT_Option_ByStr20_200" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_239" to i8*) } +@"$TyDescr_ADT_ud-registry.Record_201" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_248" to i8*) } +@"$TyDescr_ADT_List_Message_202" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_List_Message_ADTTyp_Specl_260" to i8*) } +@"$TyDescr_ADT_List_ByStr20_203" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_269" to i8*) } +@"$TyDescr_ADT_Bool_204" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Bool_ADTTyp_Specl_281" to i8*) } +@"$TyDescr_Map_206" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_205"* @"$TyDescr_MapTyp_284" to i8*) } +@"$TyDescr_Map_207" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_205"* @"$TyDescr_MapTyp_285" to i8*) } +@"$TyDescr_Map_208" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_205"* @"$TyDescr_MapTyp_286" to i8*) } +@"$TyDescr_Addr_211" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_210"* @"$TyDescr_AddrFields_287" to i8*) } +@"$TyDescr_Option_ADTTyp_212" = unnamed_addr constant %"$TyDescrTy_ADTTyp_196" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_241", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 3, %"$TyDescrTy_ADTTyp_Specl_195"** getelementptr inbounds ([3 x %"$TyDescrTy_ADTTyp_Specl_195"*], [3 x %"$TyDescrTy_ADTTyp_Specl_195"*]* @"$TyDescr_Option_ADTTyp_m_specls_240", i32 0, i32 0) } +@"$TyDescr_Option_Some_List_(ByStr20)_Constr_m_args_213" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203"] +@"$TyDescr_ADT_Some_214" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_List_(ByStr20)_ADTTyp_Constr_215" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_214", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_List_(ByStr20)_Constr_m_args_213", i32 0, i32 0) } +@"$TyDescr_Option_None_List_(ByStr20)_Constr_m_args_216" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_217" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_List_(ByStr20)_ADTTyp_Constr_218" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_217", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_List_(ByStr20)_Constr_m_args_216", i32 0, i32 0) } +@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_constrs_219" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_Some_List_(ByStr20)_ADTTyp_Constr_215", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_None_List_(ByStr20)_ADTTyp_Constr_218"] +@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_TArgs_220" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203"] +@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_221" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_TArgs_220", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_constrs_219", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_Option_ADTTyp_212" } +@"$TyDescr_Option_Some_ud-registry.Record_Constr_m_args_222" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201"] +@"$TyDescr_ADT_Some_223" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_ud-registry.Record_ADTTyp_Constr_224" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_223", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ud-registry.Record_Constr_m_args_222", i32 0, i32 0) } +@"$TyDescr_Option_None_ud-registry.Record_Constr_m_args_225" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_226" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_ud-registry.Record_ADTTyp_Constr_227" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_226", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ud-registry.Record_Constr_m_args_225", i32 0, i32 0) } +@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_constrs_228" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_Some_ud-registry.Record_ADTTyp_Constr_224", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_None_ud-registry.Record_ADTTyp_Constr_227"] +@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_TArgs_229" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201"] +@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_230" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_TArgs_229", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_constrs_228", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_Option_ADTTyp_212" } +@"$TyDescr_Option_Some_ByStr20_Constr_m_args_231" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194"] +@"$TyDescr_ADT_Some_232" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_233" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_232", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ByStr20_Constr_m_args_231", i32 0, i32 0) } +@"$TyDescr_Option_None_ByStr20_Constr_m_args_234" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_235" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_236" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_235", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ByStr20_Constr_m_args_234", i32 0, i32 0) } +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_237" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_233", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_236"] +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_238" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194"] +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_239" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_238", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_237", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_Option_ADTTyp_212" } +@"$TyDescr_Option_ADTTyp_m_specls_240" = unnamed_addr constant [3 x %"$TyDescrTy_ADTTyp_Specl_195"*] [%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_221", %"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_230", %"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_239"] +@"$TyDescr_ADT_Option_241" = unnamed_addr constant [6 x i8] c"Option" +@"$TyDescr_ud-registry.Record_ADTTyp_242" = unnamed_addr constant %"$TyDescrTy_ADTTyp_196" { %TyDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$TyDescr_ADT_ud-registry.Record_250", i32 0, i32 0), i32 18 }, i32 0, i32 1, i32 1, %"$TyDescrTy_ADTTyp_Specl_195"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_195"*], [1 x %"$TyDescrTy_ADTTyp_Specl_195"*]* @"$TyDescr_ud-registry.Record_ADTTyp_m_specls_249", i32 0, i32 0) } +@"$TyDescr_ud-registry.Record_ud-registry.Record_Constr_m_args_243" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194"] +@"$TyDescr_ADT_ud-registry.Record_244" = unnamed_addr constant [18 x i8] c"ud-registry.Record" +@"$TyDescr_ud-registry.Record_ud-registry.Record_ADTTyp_Constr_245" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$TyDescr_ADT_ud-registry.Record_244", i32 0, i32 0), i32 18 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_ud-registry.Record_ud-registry.Record_Constr_m_args_243", i32 0, i32 0) } +@"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_constrs_246" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_ud-registry.Record_ud-registry.Record_ADTTyp_Constr_245"] +@"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_TArgs_247" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ud-registry.Record_ADTTyp_Specl_248" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_TArgs_247", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Constr_197"*], [1 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_constrs_246", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_ud-registry.Record_ADTTyp_242" } +@"$TyDescr_ud-registry.Record_ADTTyp_m_specls_249" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_195"*] [%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_248"] +@"$TyDescr_ADT_ud-registry.Record_250" = unnamed_addr constant [18 x i8] c"ud-registry.Record" +@"$TyDescr_List_ADTTyp_251" = unnamed_addr constant %"$TyDescrTy_ADTTyp_196" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_271", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_195"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_195"*], [2 x %"$TyDescrTy_ADTTyp_Specl_195"*]* @"$TyDescr_List_ADTTyp_m_specls_270", i32 0, i32 0) } +@"$TyDescr_List_Cons_Message_Constr_m_args_252" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_182", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202"] +@"$TyDescr_ADT_Cons_253" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_Message_ADTTyp_Constr_254" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_253", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_252", i32 0, i32 0) } +@"$TyDescr_List_Nil_Message_Constr_m_args_255" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_256" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_Message_ADTTyp_Constr_257" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_256", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_255", i32 0, i32 0) } +@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_258" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_254", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_257"] +@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_259" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_182"] +@"$TyDescr_List_Message_ADTTyp_Specl_260" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_259", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_258", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_List_ADTTyp_251" } +@"$TyDescr_List_Cons_ByStr20_Constr_m_args_261" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203"] +@"$TyDescr_ADT_Cons_262" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_263" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_262", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_ByStr20_Constr_m_args_261", i32 0, i32 0) } +@"$TyDescr_List_Nil_ByStr20_Constr_m_args_264" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_265" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_266" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_265", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_ByStr20_Constr_m_args_264", i32 0, i32 0) } +@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_267" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_263", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_266"] +@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_268" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194"] +@"$TyDescr_List_ByStr20_ADTTyp_Specl_269" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_268", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_267", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_List_ADTTyp_251" } +@"$TyDescr_List_ADTTyp_m_specls_270" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_195"*] [%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_List_Message_ADTTyp_Specl_260", %"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_269"] +@"$TyDescr_ADT_List_271" = unnamed_addr constant [4 x i8] c"List" +@"$TyDescr_Bool_ADTTyp_272" = unnamed_addr constant %"$TyDescrTy_ADTTyp_196" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_283", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_195"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_195"*], [1 x %"$TyDescrTy_ADTTyp_Specl_195"*]* @"$TyDescr_Bool_ADTTyp_m_specls_282", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_273" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_274" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_275" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_274", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_273", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_276" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_277" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_278" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_277", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_276", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_279" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Bool_True_ADTTyp_Constr_275", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Bool_False_ADTTyp_Constr_278"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_280" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_281" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_280", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_279", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_Bool_ADTTyp_272" } +@"$TyDescr_Bool_ADTTyp_m_specls_282" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_195"*] [%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Bool_ADTTyp_Specl_281"] +@"$TyDescr_ADT_Bool_283" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_MapTyp_284" = unnamed_addr constant %"$TyDescr_MapTyp_205" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203" } +@"$TyDescr_MapTyp_285" = unnamed_addr constant %"$TyDescr_MapTyp_205" { %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" } +@"$TyDescr_MapTyp_286" = unnamed_addr constant %"$TyDescr_MapTyp_205" { %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201" } +@"$TyDescr_AddrFields_287" = unnamed_addr constant %"$TyDescr_AddrTyp_210" { i32 -1, %"$TyDescr_AddrFieldTyp_209"* null } +@"$stringlit_1488" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1493" = unnamed_addr constant [8 x i8] c"AdminSet" +@"$stringlit_1496" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_1503" = unnamed_addr constant [10 x i8] c"isApproved" +@"$stringlit_1518" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1523" = unnamed_addr constant [11 x i8] c"ApprovedFor" +@"$stringlit_1526" = unnamed_addr constant [4 x i8] c"user" +@"$stringlit_1533" = unnamed_addr constant [8 x i8] c"operator" +@"$stringlit_1540" = unnamed_addr constant [10 x i8] c"isApproved" +@"$stringlit_1555" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1560" = unnamed_addr constant [8 x i8] c"Approved" +@"$stringlit_1563" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_1578" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1583" = unnamed_addr constant [12 x i8] c"NewRegistrar" +@"$stringlit_1586" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_1601" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1606" = unnamed_addr constant [9 x i8] c"NewDomain" +@"$stringlit_1609" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_1616" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_1631" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1636" = unnamed_addr constant [10 x i8] c"Configured" +@"$stringlit_1639" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_1646" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_1653" = unnamed_addr constant [8 x i8] c"resolver" +@"$stringlit_1668" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1673" = unnamed_addr constant [5 x i8] c"Error" +@"$stringlit_1676" = unnamed_addr constant [3 x i8] c"msg" @list_foldr = global { i8*, i8* }* null @list_foldk = global { i8*, i8* }* null -@BoolUtils.andb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer -@BoolUtils.orb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer +@BoolUtils.andb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer +@BoolUtils.orb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer @BoolUtils.negb = global { %TName_Bool* (i8*, %TName_Bool*)*, i8* } zeroinitializer @ListUtils.list_filter = global { i8*, i8* }* null @ListUtils.list_find = global { i8*, i8* }* null @@ -272,4142 +256,3489 @@ target triple = "x86_64-unknown-linux-gnu" @ud-registry.nilMessage = global %TName_List_Message* null @ud-registry.oneMsg = global { %TName_List_Message* (i8*, i8*)*, i8* } zeroinitializer @ud-registry.eqByStr20 = global { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } zeroinitializer -@ud-registry.listByStr20Contains = global { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } zeroinitializer -@ud-registry.listByStr20Excludes = global { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } zeroinitializer -@ud-registry.listByStr20FilterOut = global { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } zeroinitializer -@ud-registry.xandb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer -@ud-registry.eAdminSet = global { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } zeroinitializer -@ud-registry.eApprovedFor = global { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } zeroinitializer +@ud-registry.listByStr20Contains = global { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } zeroinitializer +@ud-registry.listByStr20Excludes = global { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } zeroinitializer +@ud-registry.listByStr20FilterOut = global { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } zeroinitializer +@ud-registry.xandb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer +@ud-registry.eAdminSet = global { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } zeroinitializer +@ud-registry.eApprovedFor = global { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* } zeroinitializer @ud-registry.eApproved = global { i8* (i8*, [20 x i8]*)*, i8* } zeroinitializer @ud-registry.eNewRegistrar = global { i8* (i8*, [20 x i8]*)*, i8* } zeroinitializer -@ud-registry.eNewDomain = global { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } zeroinitializer -@ud-registry.eConfigured = global { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } zeroinitializer +@ud-registry.eNewDomain = global { i8* (i8*, [32 x i8]*, %String)*, i8* } zeroinitializer +@ud-registry.eConfigured = global { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } zeroinitializer @ud-registry.eError = global { i8* (i8*, %String)*, i8* } zeroinitializer @ud-registry.recordMemberOwner = global { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } zeroinitializer -@ud-registry.parentLabelToNode = global { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } zeroinitializer -@ud-registry.getIsOAO = global { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } zeroinitializer +@ud-registry.parentLabelToNode = global { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } zeroinitializer +@ud-registry.getIsOAO = global { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } zeroinitializer @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null @_cparam_initialOwner = global [20 x i8] zeroinitializer @_cparam_rootNode = global [32 x i8] zeroinitializer -@"$records_2699" = unnamed_addr constant [8 x i8] c"records\00" -@"$registrar_2709" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$approvals_2722" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_2734" = unnamed_addr constant [10 x i8] c"operators\00" -@"$admins_2750" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_2757" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_2910" = unnamed_addr constant [7 x i8] c"admins\00" -@"$stringlit_2960" = unnamed_addr constant [26 x i8] c"Sender not root node owner" -@"$records_3000" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_3063" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$approvals_3168" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$stringlit_3214" = unnamed_addr constant [21 x i8] c"Sender not node owner" -@"$operators_3253" = unnamed_addr constant [10 x i8] c"operators\00" -@"$operators_3410" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_3467" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_3483" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_3517" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_3602" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_3657" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3662" = unnamed_addr constant [18 x i8] c"onConfigureSuccess" -@"$stringlit_3665" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_3672" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_3679" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_3686" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3732" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" -@"$stringlit_3770" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3775" = unnamed_addr constant [18 x i8] c"onConfigureFailure" -@"$stringlit_3778" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_3785" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_3793" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_3800" = unnamed_addr constant [10 x i8] c"_recipient" -@"$records_3849" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_3865" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_3899" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_3985" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_4042" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" -@"$records_4082" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_4098" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_4132" = unnamed_addr constant [10 x i8] c"operators\00" -@"$approvals_4198" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$records_4227" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_4283" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_4288" = unnamed_addr constant [17 x i8] c"onTransferSuccess" -@"$stringlit_4291" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_4298" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_4305" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_4312" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_4358" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" -@"$stringlit_4396" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_4401" = unnamed_addr constant [17 x i8] c"onTransferFailure" -@"$stringlit_4404" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_4411" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_4418" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_4425" = unnamed_addr constant [10 x i8] c"_recipient" -@"$records_4472" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_4488" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_4522" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_4604" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_4669" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$records_4699" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_4756" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_4761" = unnamed_addr constant [15 x i8] c"onAssignSuccess" -@"$stringlit_4764" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_4771" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_4778" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_4785" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_4792" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_4838" = unnamed_addr constant [45 x i8] c"Sender not parent owner, approved or operator" -@"$stringlit_4876" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_4881" = unnamed_addr constant [15 x i8] c"onAssignFailure" -@"$stringlit_4884" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_4891" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_4898" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_4906" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_4913" = unnamed_addr constant [10 x i8] c"_recipient" -@"$admins_4960" = unnamed_addr constant [7 x i8] c"admins\00" -@"$records_4998" = unnamed_addr constant [8 x i8] c"records\00" -@"$records_5015" = unnamed_addr constant [8 x i8] c"records\00" -@"$registrar_5029" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$records_5305" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_5362" = unnamed_addr constant [12 x i8] c"Sender admin" -@"$admins_5401" = unnamed_addr constant [7 x i8] c"admins\00" -@"$registrar_5482" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$records_5522" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_5539" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$registrar_5603" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$stringlit_5711" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_5716" = unnamed_addr constant [8 x i8] c"register" -@"$stringlit_5719" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_5726" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_5734" = unnamed_addr constant [6 x i8] c"origin" -@"$stringlit_5741" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_5749" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_5756" = unnamed_addr constant [5 x i8] c"label" -@"$records_5804" = unnamed_addr constant [8 x i8] c"records\00" -@_tydescr_table = constant [28 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %_TyDescrTy_Typ* @"$TyDescr_Event_301", %_TyDescrTy_Typ* @"$TyDescr_Int64_283", %_TyDescrTy_Typ* @"$TyDescr_Addr_328", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ* @"$TyDescr_Uint256_293", %_TyDescrTy_Typ* @"$TyDescr_Uint32_281", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_307", %_TyDescrTy_Typ* @"$TyDescr_Uint64_285", %_TyDescrTy_Typ* @"$TyDescr_Bnum_297", %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ* @"$TyDescr_Map_325", %_TyDescrTy_Typ* @"$TyDescr_Exception_303", %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ* @"$TyDescr_Int256_291", %_TyDescrTy_Typ* @"$TyDescr_Int128_287", %_TyDescrTy_Typ* @"$TyDescr_Map_323", %_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", %_TyDescrTy_Typ* @"$TyDescr_Bystr_305", %_TyDescrTy_Typ* @"$TyDescr_Message_299", %_TyDescrTy_Typ* @"$TyDescr_Map_324", %_TyDescrTy_Typ* @"$TyDescr_Int32_279"] +@"$records_2252" = unnamed_addr constant [8 x i8] c"records\00" +@"$registrar_2262" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$approvals_2275" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_2287" = unnamed_addr constant [10 x i8] c"operators\00" +@"$admins_2303" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_2310" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_2443" = unnamed_addr constant [7 x i8] c"admins\00" +@"$stringlit_2488" = unnamed_addr constant [26 x i8] c"Sender not root node owner" +@"$records_2528" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_2591" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$approvals_2696" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$stringlit_2742" = unnamed_addr constant [21 x i8] c"Sender not node owner" +@"$operators_2781" = unnamed_addr constant [10 x i8] c"operators\00" +@"$operators_2923" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_2971" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_2987" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_3021" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_3093" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_3139" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3144" = unnamed_addr constant [18 x i8] c"onConfigureSuccess" +@"$stringlit_3147" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_3154" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_3161" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3168" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3214" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" +@"$stringlit_3252" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3257" = unnamed_addr constant [18 x i8] c"onConfigureFailure" +@"$stringlit_3260" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_3267" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_3275" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3282" = unnamed_addr constant [10 x i8] c"_recipient" +@"$records_3331" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_3347" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_3381" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_3454" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_3502" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" +@"$records_3542" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_3558" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_3592" = unnamed_addr constant [10 x i8] c"operators\00" +@"$approvals_3645" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$records_3674" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_3721" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3726" = unnamed_addr constant [17 x i8] c"onTransferSuccess" +@"$stringlit_3729" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_3736" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_3743" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3750" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3796" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" +@"$stringlit_3834" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3839" = unnamed_addr constant [17 x i8] c"onTransferFailure" +@"$stringlit_3842" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_3849" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_3856" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3863" = unnamed_addr constant [10 x i8] c"_recipient" +@"$records_3910" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_3926" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_3960" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_4024" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_4084" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$records_4114" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_4162" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_4167" = unnamed_addr constant [15 x i8] c"onAssignSuccess" +@"$stringlit_4170" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_4177" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_4184" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_4191" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_4198" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_4244" = unnamed_addr constant [45 x i8] c"Sender not parent owner, approved or operator" +@"$stringlit_4282" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_4287" = unnamed_addr constant [15 x i8] c"onAssignFailure" +@"$stringlit_4290" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_4297" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_4304" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_4312" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_4319" = unnamed_addr constant [10 x i8] c"_recipient" +@"$admins_4366" = unnamed_addr constant [7 x i8] c"admins\00" +@"$records_4399" = unnamed_addr constant [8 x i8] c"records\00" +@"$records_4416" = unnamed_addr constant [8 x i8] c"records\00" +@"$registrar_4430" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$records_4676" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_4724" = unnamed_addr constant [12 x i8] c"Sender admin" +@"$admins_4763" = unnamed_addr constant [7 x i8] c"admins\00" +@"$registrar_4839" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$records_4874" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_4891" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$registrar_4955" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$stringlit_5058" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_5063" = unnamed_addr constant [8 x i8] c"register" +@"$stringlit_5066" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_5073" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_5081" = unnamed_addr constant [6 x i8] c"origin" +@"$stringlit_5088" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_5096" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_5103" = unnamed_addr constant [5 x i8] c"label" +@"$records_5151" = unnamed_addr constant [8 x i8] c"records\00" +@_tydescr_table = constant [28 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %_TyDescrTy_Typ* @"$TyDescr_Event_184", %_TyDescrTy_Typ* @"$TyDescr_Int64_166", %_TyDescrTy_Typ* @"$TyDescr_Addr_211", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ* @"$TyDescr_Uint256_176", %_TyDescrTy_Typ* @"$TyDescr_Uint32_164", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_190", %_TyDescrTy_Typ* @"$TyDescr_Uint64_168", %_TyDescrTy_Typ* @"$TyDescr_Bnum_180", %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ* @"$TyDescr_Map_208", %_TyDescrTy_Typ* @"$TyDescr_Exception_186", %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ* @"$TyDescr_Int256_174", %_TyDescrTy_Typ* @"$TyDescr_Int128_170", %_TyDescrTy_Typ* @"$TyDescr_Map_206", %_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", %_TyDescrTy_Typ* @"$TyDescr_Bystr_188", %_TyDescrTy_Typ* @"$TyDescr_Message_182", %_TyDescrTy_Typ* @"$TyDescr_Map_207", %_TyDescrTy_Typ* @"$TyDescr_Int32_162"] @_tydescr_table_length = constant i32 28 -@"$pname__scilla_version_5931" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_5932" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_5933" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_initialOwner_5934" = unnamed_addr constant [12 x i8] c"initialOwner" -@"$pname_rootNode_5935" = unnamed_addr constant [8 x i8] c"rootNode" -@_contract_parameters = constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_5931", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_281" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_5932", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_5933", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_297" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialOwner_5934", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_rootNode_5935", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }] +@"$pname__scilla_version_5269" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_5270" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_5271" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_initialOwner_5272" = unnamed_addr constant [12 x i8] c"initialOwner" +@"$pname_rootNode_5273" = unnamed_addr constant [8 x i8] c"rootNode" +@_contract_parameters = constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_5269", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_164" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_5270", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_5271", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_180" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialOwner_5272", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_rootNode_5273", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }] @_contract_parameters_length = constant i32 5 -@"$tpname__amount_5936" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5937" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5938" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_5939" = unnamed_addr constant [7 x i8] c"address" -@"$tpname_isApproved_5940" = unnamed_addr constant [10 x i8] c"isApproved" -@"$tparams_setAdmin_5941" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5936", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5937", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5938", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5939", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_5940", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321" }] -@"$tname_setAdmin_5942" = unnamed_addr constant [8 x i8] c"setAdmin" -@"$tpname__amount_5943" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5944" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5945" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_5946" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_address_5947" = unnamed_addr constant [7 x i8] c"address" -@"$tparams_approve_5948" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5943", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5944", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5945", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5946", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5947", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_approve_5949" = unnamed_addr constant [7 x i8] c"approve" -@"$tpname__amount_5950" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5951" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5952" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_5953" = unnamed_addr constant [7 x i8] c"address" -@"$tpname_isApproved_5954" = unnamed_addr constant [10 x i8] c"isApproved" -@"$tparams_approveFor_5955" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5950", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5951", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5952", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5953", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_5954", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321" }] -@"$tname_approveFor_5956" = unnamed_addr constant [10 x i8] c"approveFor" -@"$tpname__amount_5957" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5958" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5959" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_5960" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_owner_5961" = unnamed_addr constant [5 x i8] c"owner" -@"$tpname_resolver_5962" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_configureNode_5963" = unnamed_addr constant [6 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5957", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5958", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5959", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5960", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5961", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5962", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_configureNode_5964" = unnamed_addr constant [13 x i8] c"configureNode" -@"$tpname__amount_5965" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5966" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5967" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_5968" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_resolver_5969" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_configureResolver_5970" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5965", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5966", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5967", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5968", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5969", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_configureResolver_5971" = unnamed_addr constant [17 x i8] c"configureResolver" -@"$tpname__amount_5972" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5973" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5974" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_5975" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_owner_5976" = unnamed_addr constant [5 x i8] c"owner" -@"$tparams_transfer_5977" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5972", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5973", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5974", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5975", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5976", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_transfer_5978" = unnamed_addr constant [8 x i8] c"transfer" -@"$tpname__amount_5979" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5980" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5981" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_parent_5982" = unnamed_addr constant [6 x i8] c"parent" -@"$tpname_label_5983" = unnamed_addr constant [5 x i8] c"label" -@"$tpname_owner_5984" = unnamed_addr constant [5 x i8] c"owner" -@"$tparams_assign_5985" = unnamed_addr constant [6 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5979", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5980", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5981", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_5982", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_5983", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_295" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5984", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_assign_5986" = unnamed_addr constant [6 x i8] c"assign" -@"$tpname__amount_5987" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5988" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5989" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_label_5990" = unnamed_addr constant [5 x i8] c"label" -@"$tpname_owner_5991" = unnamed_addr constant [5 x i8] c"owner" -@"$tpname_resolver_5992" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_bestow_5993" = unnamed_addr constant [6 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5987", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5988", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5989", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_5990", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_295" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5991", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5992", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_bestow_5994" = unnamed_addr constant [6 x i8] c"bestow" -@"$tpname__amount_5995" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5996" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5997" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_5998" = unnamed_addr constant [7 x i8] c"address" -@"$tparams_setRegistrar_5999" = unnamed_addr constant [4 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5995", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5996", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5997", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5998", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_setRegistrar_6000" = unnamed_addr constant [12 x i8] c"setRegistrar" -@"$tpname__amount_6001" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_6002" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_6003" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_parent_6004" = unnamed_addr constant [6 x i8] c"parent" -@"$tpname_label_6005" = unnamed_addr constant [5 x i8] c"label" -@"$tparams_register_6006" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_6001", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_6002", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_6003", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_6004", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_6005", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_295" }] -@"$tname_register_6007" = unnamed_addr constant [8 x i8] c"register" -@"$tpname__amount_6008" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_6009" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_6010" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_6011" = unnamed_addr constant [4 x i8] c"node" -@"$tparams_onResolverConfigured_6012" = unnamed_addr constant [4 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_6008", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_6009", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_6010", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_6011", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }] -@"$tname_onResolverConfigured_6013" = unnamed_addr constant [20 x i8] c"onResolverConfigured" -@_transition_parameters = constant [11 x %"$TransDescr_5930"] [%"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_5942", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_setAdmin_5941", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_approve_5949", i32 0, i32 0), i32 7 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_approve_5948", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tname_approveFor_5956", i32 0, i32 0), i32 10 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_approveFor_5955", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$tname_configureNode_5964", i32 0, i32 0), i32 13 }, i32 6, %"$ParamDescr_5929"* getelementptr inbounds ([6 x %"$ParamDescr_5929"], [6 x %"$ParamDescr_5929"]* @"$tparams_configureNode_5963", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$tname_configureResolver_5971", i32 0, i32 0), i32 17 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_configureResolver_5970", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_transfer_5978", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_transfer_5977", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_assign_5986", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_5929"* getelementptr inbounds ([6 x %"$ParamDescr_5929"], [6 x %"$ParamDescr_5929"]* @"$tparams_assign_5985", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_5994", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_5929"* getelementptr inbounds ([6 x %"$ParamDescr_5929"], [6 x %"$ParamDescr_5929"]* @"$tparams_bestow_5993", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_setRegistrar_6000", i32 0, i32 0), i32 12 }, i32 4, %"$ParamDescr_5929"* getelementptr inbounds ([4 x %"$ParamDescr_5929"], [4 x %"$ParamDescr_5929"]* @"$tparams_setRegistrar_5999", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_register_6007", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_register_6006", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_onResolverConfigured_6013", i32 0, i32 0), i32 20 }, i32 4, %"$ParamDescr_5929"* getelementptr inbounds ([4 x %"$ParamDescr_5929"], [4 x %"$ParamDescr_5929"]* @"$tparams_onResolverConfigured_6012", i32 0, i32 0) }] +@"$tpname__amount_5274" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5275" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5276" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_5277" = unnamed_addr constant [7 x i8] c"address" +@"$tpname_isApproved_5278" = unnamed_addr constant [10 x i8] c"isApproved" +@"$tparams_setAdmin_5279" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5274", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5275", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5276", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5277", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_5278", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204" }] +@"$tname_setAdmin_5280" = unnamed_addr constant [8 x i8] c"setAdmin" +@"$tpname__amount_5281" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5282" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5283" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_5284" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_address_5285" = unnamed_addr constant [7 x i8] c"address" +@"$tparams_approve_5286" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5281", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5282", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5283", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5284", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5285", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_approve_5287" = unnamed_addr constant [7 x i8] c"approve" +@"$tpname__amount_5288" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5289" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5290" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_5291" = unnamed_addr constant [7 x i8] c"address" +@"$tpname_isApproved_5292" = unnamed_addr constant [10 x i8] c"isApproved" +@"$tparams_approveFor_5293" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5288", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5289", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5290", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5291", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_5292", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204" }] +@"$tname_approveFor_5294" = unnamed_addr constant [10 x i8] c"approveFor" +@"$tpname__amount_5295" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5296" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5297" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_5298" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_owner_5299" = unnamed_addr constant [5 x i8] c"owner" +@"$tpname_resolver_5300" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_configureNode_5301" = unnamed_addr constant [6 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5295", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5296", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5297", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5298", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5299", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5300", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_configureNode_5302" = unnamed_addr constant [13 x i8] c"configureNode" +@"$tpname__amount_5303" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5304" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5305" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_5306" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_resolver_5307" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_configureResolver_5308" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5303", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5304", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5305", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5306", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5307", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_configureResolver_5309" = unnamed_addr constant [17 x i8] c"configureResolver" +@"$tpname__amount_5310" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5311" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5312" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_5313" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_owner_5314" = unnamed_addr constant [5 x i8] c"owner" +@"$tparams_transfer_5315" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5310", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5311", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5312", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5313", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5314", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_transfer_5316" = unnamed_addr constant [8 x i8] c"transfer" +@"$tpname__amount_5317" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5318" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5319" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_parent_5320" = unnamed_addr constant [6 x i8] c"parent" +@"$tpname_label_5321" = unnamed_addr constant [5 x i8] c"label" +@"$tpname_owner_5322" = unnamed_addr constant [5 x i8] c"owner" +@"$tparams_assign_5323" = unnamed_addr constant [6 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5317", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5318", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5319", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_5320", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_5321", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_178" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5322", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_assign_5324" = unnamed_addr constant [6 x i8] c"assign" +@"$tpname__amount_5325" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5326" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5327" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_label_5328" = unnamed_addr constant [5 x i8] c"label" +@"$tpname_owner_5329" = unnamed_addr constant [5 x i8] c"owner" +@"$tpname_resolver_5330" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_bestow_5331" = unnamed_addr constant [6 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5325", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5326", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5327", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_5328", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_178" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5329", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5330", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_bestow_5332" = unnamed_addr constant [6 x i8] c"bestow" +@"$tpname__amount_5333" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5334" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5335" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_5336" = unnamed_addr constant [7 x i8] c"address" +@"$tparams_setRegistrar_5337" = unnamed_addr constant [4 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5333", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5334", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5335", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5336", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_setRegistrar_5338" = unnamed_addr constant [12 x i8] c"setRegistrar" +@"$tpname__amount_5339" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5340" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5341" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_parent_5342" = unnamed_addr constant [6 x i8] c"parent" +@"$tpname_label_5343" = unnamed_addr constant [5 x i8] c"label" +@"$tparams_register_5344" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5339", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5340", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5341", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_5342", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_5343", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_178" }] +@"$tname_register_5345" = unnamed_addr constant [8 x i8] c"register" +@"$tpname__amount_5346" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5347" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5348" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_5349" = unnamed_addr constant [4 x i8] c"node" +@"$tparams_onResolverConfigured_5350" = unnamed_addr constant [4 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5346", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5347", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5348", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5349", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }] +@"$tname_onResolverConfigured_5351" = unnamed_addr constant [20 x i8] c"onResolverConfigured" +@_transition_parameters = constant [11 x %"$TransDescr_5268"] [%"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_5280", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_setAdmin_5279", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_approve_5287", i32 0, i32 0), i32 7 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_approve_5286", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tname_approveFor_5294", i32 0, i32 0), i32 10 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_approveFor_5293", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$tname_configureNode_5302", i32 0, i32 0), i32 13 }, i32 6, %"$ParamDescr_5267"* getelementptr inbounds ([6 x %"$ParamDescr_5267"], [6 x %"$ParamDescr_5267"]* @"$tparams_configureNode_5301", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$tname_configureResolver_5309", i32 0, i32 0), i32 17 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_configureResolver_5308", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_transfer_5316", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_transfer_5315", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_assign_5324", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_5267"* getelementptr inbounds ([6 x %"$ParamDescr_5267"], [6 x %"$ParamDescr_5267"]* @"$tparams_assign_5323", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_5332", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_5267"* getelementptr inbounds ([6 x %"$ParamDescr_5267"], [6 x %"$ParamDescr_5267"]* @"$tparams_bestow_5331", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_setRegistrar_5338", i32 0, i32 0), i32 12 }, i32 4, %"$ParamDescr_5267"* getelementptr inbounds ([4 x %"$ParamDescr_5267"], [4 x %"$ParamDescr_5267"]* @"$tparams_setRegistrar_5337", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_register_5345", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_register_5344", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_onResolverConfigured_5351", i32 0, i32 0), i32 20 }, i32 4, %"$ParamDescr_5267"* getelementptr inbounds ([4 x %"$ParamDescr_5267"], [4 x %"$ParamDescr_5267"]* @"$tparams_onResolverConfigured_5350", i32 0, i32 0) }] @_transition_parameters_length = constant i32 11 -define internal %TName_Bool* @"$fundef_214"(%"$$fundef_214_env_405"* %0, %"TName_Option_List_(ByStr20)"* %1) !dbg !4 { +define internal %TName_Bool* @"$fundef_119"(%"$$fundef_119_env_288"* %0, [20 x i8]* %1, [20 x i8]* %2, %TName_Option_ByStr20* %3, %"TName_Option_List_(ByStr20)"* %4) !dbg !4 { entry: - %"$$fundef_214_env_BoolUtils.orb_2217" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_2218" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_214_env_BoolUtils.orb_2217", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_2218", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$$fundef_214_env_maybeApproved_2219" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %0, i32 0, i32 1 - %"$maybeApproved_envload_2220" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_214_env_maybeApproved_2219", align 8 - %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$maybeApproved_envload_2220", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$fundef_214_env_recordOwner_2221" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %0, i32 0, i32 2 - %"$recordOwner_envload_2222" = load [20 x i8], [20 x i8]* %"$$fundef_214_env_recordOwner_2221", align 1 - %recordOwner = alloca [20 x i8], align 1 - store [20 x i8] %"$recordOwner_envload_2222", [20 x i8]* %recordOwner, align 1 - %"$$fundef_214_env_sender_2223" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %0, i32 0, i32 3 - %"$sender_envload_2224" = load [20 x i8], [20 x i8]* %"$$fundef_214_env_sender_2223", align 1 - %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_2224", [20 x i8]* %sender, align 1 - %"$$fundef_214_env_ud-registry.listByStr20Contains_2225" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %0, i32 0, i32 4 - %"$ud-registry.listByStr20Contains_envload_2226" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_214_env_ud-registry.listByStr20Contains_2225", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_2226", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_215" = alloca %TName_Bool*, align 8 - %"$gasrem_2227" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2228" = icmp ugt i64 1, %"$gasrem_2227" - br i1 %"$gascmp_2228", label %"$out_of_gas_2229", label %"$have_gas_2230" - -"$out_of_gas_2229": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2230" - -"$have_gas_2230": ; preds = %"$out_of_gas_2229", %entry - %"$consume_2231" = sub i64 %"$gasrem_2227", 1 - store i64 %"$consume_2231", i64* @_gasrem, align 8 + %recordOwner = load [20 x i8], [20 x i8]* %2, align 1 + %sender = load [20 x i8], [20 x i8]* %1, align 1 + %"$$fundef_119_env_BoolUtils.orb_1796" = getelementptr inbounds %"$$fundef_119_env_288", %"$$fundef_119_env_288"* %0, i32 0, i32 0 + %"$BoolUtils.orb_envload_1797" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %"$$fundef_119_env_BoolUtils.orb_1796", align 8 + %BoolUtils.orb = alloca { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_1797", { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 + %"$$fundef_119_env_ud-registry.listByStr20Contains_1798" = getelementptr inbounds %"$$fundef_119_env_288", %"$$fundef_119_env_288"* %0, i32 0, i32 1 + %"$ud-registry.listByStr20Contains_envload_1799" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %"$$fundef_119_env_ud-registry.listByStr20Contains_1798", align 8 + %ud-registry.listByStr20Contains = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_envload_1799", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %ud-registry.listByStr20Contains, align 8 + %"$retval_120" = alloca %TName_Bool*, align 8 + %"$gasrem_1800" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1801" = icmp ugt i64 1, %"$gasrem_1800" + br i1 %"$gascmp_1801", label %"$out_of_gas_1802", label %"$have_gas_1803" + +"$out_of_gas_1802": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1803" + +"$have_gas_1803": ; preds = %"$out_of_gas_1802", %entry + %"$consume_1804" = sub i64 %"$gasrem_1800", 1 + store i64 %"$consume_1804", i64* @_gasrem, align 8 %isOwner = alloca %TName_Bool*, align 8 - %"$gasrem_2232" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2233" = icmp ugt i64 20, %"$gasrem_2232" - br i1 %"$gascmp_2233", label %"$out_of_gas_2234", label %"$have_gas_2235" - -"$out_of_gas_2234": ; preds = %"$have_gas_2230" - call void @_out_of_gas() - br label %"$have_gas_2235" - -"$have_gas_2235": ; preds = %"$out_of_gas_2234", %"$have_gas_2230" - %"$consume_2236" = sub i64 %"$gasrem_2232", 20 - store i64 %"$consume_2236", i64* @_gasrem, align 8 - %"$execptr_load_2237" = load i8*, i8** @_execptr, align 8 - %"$eq_sender_2238" = alloca [20 x i8], align 1 - %"$sender_2239" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_2239", [20 x i8]* %"$eq_sender_2238", align 1 - %"$$eq_sender_2238_2240" = bitcast [20 x i8]* %"$eq_sender_2238" to i8* - %"$eq_recordOwner_2241" = alloca [20 x i8], align 1 - %"$recordOwner_2242" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_2242", [20 x i8]* %"$eq_recordOwner_2241", align 1 - %"$$eq_recordOwner_2241_2243" = bitcast [20 x i8]* %"$eq_recordOwner_2241" to i8* - %"$eq_call_2244" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_2237", i32 20, i8* %"$$eq_sender_2238_2240", i8* %"$$eq_recordOwner_2241_2243"), !dbg !8 - store %TName_Bool* %"$eq_call_2244", %TName_Bool** %isOwner, align 8, !dbg !8 - %"$gasrem_2246" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2247" = icmp ugt i64 1, %"$gasrem_2246" - br i1 %"$gascmp_2247", label %"$out_of_gas_2248", label %"$have_gas_2249" - -"$out_of_gas_2248": ; preds = %"$have_gas_2235" - call void @_out_of_gas() - br label %"$have_gas_2249" - -"$have_gas_2249": ; preds = %"$out_of_gas_2248", %"$have_gas_2235" - %"$consume_2250" = sub i64 %"$gasrem_2246", 1 - store i64 %"$consume_2250", i64* @_gasrem, align 8 + %"$gasrem_1805" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1806" = icmp ugt i64 20, %"$gasrem_1805" + br i1 %"$gascmp_1806", label %"$out_of_gas_1807", label %"$have_gas_1808" + +"$out_of_gas_1807": ; preds = %"$have_gas_1803" + call void @_out_of_gas() + br label %"$have_gas_1808" + +"$have_gas_1808": ; preds = %"$out_of_gas_1807", %"$have_gas_1803" + %"$consume_1809" = sub i64 %"$gasrem_1805", 20 + store i64 %"$consume_1809", i64* @_gasrem, align 8 + %"$execptr_load_1810" = load i8*, i8** @_execptr, align 8 + %"$eq_sender_1811" = alloca [20 x i8], align 1 + store [20 x i8] %sender, [20 x i8]* %"$eq_sender_1811", align 1 + %"$$eq_sender_1811_1812" = bitcast [20 x i8]* %"$eq_sender_1811" to i8* + %"$eq_recordOwner_1813" = alloca [20 x i8], align 1 + store [20 x i8] %recordOwner, [20 x i8]* %"$eq_recordOwner_1813", align 1 + %"$$eq_recordOwner_1813_1814" = bitcast [20 x i8]* %"$eq_recordOwner_1813" to i8* + %"$eq_call_1815" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1810", i32 20, i8* %"$$eq_sender_1811_1812", i8* %"$$eq_recordOwner_1813_1814"), !dbg !8 + store %TName_Bool* %"$eq_call_1815", %TName_Bool** %isOwner, align 8, !dbg !8 + %"$gasrem_1817" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1818" = icmp ugt i64 1, %"$gasrem_1817" + br i1 %"$gascmp_1818", label %"$out_of_gas_1819", label %"$have_gas_1820" + +"$out_of_gas_1819": ; preds = %"$have_gas_1808" + call void @_out_of_gas() + br label %"$have_gas_1820" + +"$have_gas_1820": ; preds = %"$out_of_gas_1819", %"$have_gas_1808" + %"$consume_1821" = sub i64 %"$gasrem_1817", 1 + store i64 %"$consume_1821", i64* @_gasrem, align 8 %isApproved = alloca %TName_Bool*, align 8 - %"$gasrem_2251" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2252" = icmp ugt i64 2, %"$gasrem_2251" - br i1 %"$gascmp_2252", label %"$out_of_gas_2253", label %"$have_gas_2254" - -"$out_of_gas_2253": ; preds = %"$have_gas_2249" - call void @_out_of_gas() - br label %"$have_gas_2254" - -"$have_gas_2254": ; preds = %"$out_of_gas_2253", %"$have_gas_2249" - %"$consume_2255" = sub i64 %"$gasrem_2251", 2 - store i64 %"$consume_2255", i64* @_gasrem, align 8 - %"$maybeApproved_2257" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_tag_2258" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_2257", i32 0, i32 0 - %"$maybeApproved_tag_2259" = load i8, i8* %"$maybeApproved_tag_2258", align 1 - switch i8 %"$maybeApproved_tag_2259", label %"$empty_default_2260" [ - i8 1, label %"$None_2261" - i8 0, label %"$Some_2271" + %"$gasrem_1822" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1823" = icmp ugt i64 2, %"$gasrem_1822" + br i1 %"$gascmp_1823", label %"$out_of_gas_1824", label %"$have_gas_1825" + +"$out_of_gas_1824": ; preds = %"$have_gas_1820" + call void @_out_of_gas() + br label %"$have_gas_1825" + +"$have_gas_1825": ; preds = %"$out_of_gas_1824", %"$have_gas_1820" + %"$consume_1826" = sub i64 %"$gasrem_1822", 2 + store i64 %"$consume_1826", i64* @_gasrem, align 8 + %"$maybeApproved_tag_1828" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %3, i32 0, i32 0 + %"$maybeApproved_tag_1829" = load i8, i8* %"$maybeApproved_tag_1828", align 1 + switch i8 %"$maybeApproved_tag_1829", label %"$empty_default_1830" [ + i8 1, label %"$None_1831" + i8 0, label %"$Some_1841" ], !dbg !9 -"$None_2261": ; preds = %"$have_gas_2254" - %"$maybeApproved_2262" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2257" to %CName_None_ByStr20* - %"$gasrem_2263" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2264" = icmp ugt i64 1, %"$gasrem_2263" - br i1 %"$gascmp_2264", label %"$out_of_gas_2265", label %"$have_gas_2266" - -"$out_of_gas_2265": ; preds = %"$None_2261" - call void @_out_of_gas() - br label %"$have_gas_2266" - -"$have_gas_2266": ; preds = %"$out_of_gas_2265", %"$None_2261" - %"$consume_2267" = sub i64 %"$gasrem_2263", 1 - store i64 %"$consume_2267", i64* @_gasrem, align 8 - %"$adtval_2268_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2268_salloc" = call i8* @_salloc(i8* %"$adtval_2268_load", i64 1) - %"$adtval_2268" = bitcast i8* %"$adtval_2268_salloc" to %CName_False* - %"$adtgep_2269" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2268", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2269", align 1 - %"$adtptr_2270" = bitcast %CName_False* %"$adtval_2268" to %TName_Bool* - store %TName_Bool* %"$adtptr_2270", %TName_Bool** %isApproved, align 8, !dbg !10 - br label %"$matchsucc_2256" - -"$Some_2271": ; preds = %"$have_gas_2254" - %"$maybeApproved_2272" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2257" to %CName_Some_ByStr20* - %"$approved_gep_2273" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_2272", i32 0, i32 1 - %"$approved_load_2274" = load [20 x i8], [20 x i8]* %"$approved_gep_2273", align 1 +"$None_1831": ; preds = %"$have_gas_1825" + %"$maybeApproved_1832" = bitcast %TName_Option_ByStr20* %3 to %CName_None_ByStr20* + %"$gasrem_1833" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1834" = icmp ugt i64 1, %"$gasrem_1833" + br i1 %"$gascmp_1834", label %"$out_of_gas_1835", label %"$have_gas_1836" + +"$out_of_gas_1835": ; preds = %"$None_1831" + call void @_out_of_gas() + br label %"$have_gas_1836" + +"$have_gas_1836": ; preds = %"$out_of_gas_1835", %"$None_1831" + %"$consume_1837" = sub i64 %"$gasrem_1833", 1 + store i64 %"$consume_1837", i64* @_gasrem, align 8 + %"$adtval_1838_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1838_salloc" = call i8* @_salloc(i8* %"$adtval_1838_load", i64 1) + %"$adtval_1838" = bitcast i8* %"$adtval_1838_salloc" to %CName_False* + %"$adtgep_1839" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1838", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1839", align 1 + %"$adtptr_1840" = bitcast %CName_False* %"$adtval_1838" to %TName_Bool* + store %TName_Bool* %"$adtptr_1840", %TName_Bool** %isApproved, align 8, !dbg !10 + br label %"$matchsucc_1827" + +"$Some_1841": ; preds = %"$have_gas_1825" + %"$maybeApproved_1842" = bitcast %TName_Option_ByStr20* %3 to %CName_Some_ByStr20* + %"$approved_gep_1843" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_1842", i32 0, i32 1 + %"$approved_load_1844" = load [20 x i8], [20 x i8]* %"$approved_gep_1843", align 1 %approved = alloca [20 x i8], align 1 - store [20 x i8] %"$approved_load_2274", [20 x i8]* %approved, align 1 - %"$gasrem_2275" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2276" = icmp ugt i64 20, %"$gasrem_2275" - br i1 %"$gascmp_2276", label %"$out_of_gas_2277", label %"$have_gas_2278" - -"$out_of_gas_2277": ; preds = %"$Some_2271" - call void @_out_of_gas() - br label %"$have_gas_2278" - -"$have_gas_2278": ; preds = %"$out_of_gas_2277", %"$Some_2271" - %"$consume_2279" = sub i64 %"$gasrem_2275", 20 - store i64 %"$consume_2279", i64* @_gasrem, align 8 - %"$execptr_load_2280" = load i8*, i8** @_execptr, align 8 - %"$eq_sender_2281" = alloca [20 x i8], align 1 - %"$sender_2282" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_2282", [20 x i8]* %"$eq_sender_2281", align 1 - %"$$eq_sender_2281_2283" = bitcast [20 x i8]* %"$eq_sender_2281" to i8* - %"$eq_approved_2284" = alloca [20 x i8], align 1 - %"$approved_2285" = load [20 x i8], [20 x i8]* %approved, align 1 - store [20 x i8] %"$approved_2285", [20 x i8]* %"$eq_approved_2284", align 1 - %"$$eq_approved_2284_2286" = bitcast [20 x i8]* %"$eq_approved_2284" to i8* - %"$eq_call_2287" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_2280", i32 20, i8* %"$$eq_sender_2281_2283", i8* %"$$eq_approved_2284_2286"), !dbg !13 - store %TName_Bool* %"$eq_call_2287", %TName_Bool** %isApproved, align 8, !dbg !13 - br label %"$matchsucc_2256" - -"$empty_default_2260": ; preds = %"$have_gas_2254" - br label %"$matchsucc_2256" - -"$matchsucc_2256": ; preds = %"$have_gas_2278", %"$have_gas_2266", %"$empty_default_2260" - %"$gasrem_2289" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2290" = icmp ugt i64 1, %"$gasrem_2289" - br i1 %"$gascmp_2290", label %"$out_of_gas_2291", label %"$have_gas_2292" - -"$out_of_gas_2291": ; preds = %"$matchsucc_2256" - call void @_out_of_gas() - br label %"$have_gas_2292" - -"$have_gas_2292": ; preds = %"$out_of_gas_2291", %"$matchsucc_2256" - %"$consume_2293" = sub i64 %"$gasrem_2289", 1 - store i64 %"$consume_2293", i64* @_gasrem, align 8 + store [20 x i8] %"$approved_load_1844", [20 x i8]* %approved, align 1 + %"$gasrem_1845" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1846" = icmp ugt i64 20, %"$gasrem_1845" + br i1 %"$gascmp_1846", label %"$out_of_gas_1847", label %"$have_gas_1848" + +"$out_of_gas_1847": ; preds = %"$Some_1841" + call void @_out_of_gas() + br label %"$have_gas_1848" + +"$have_gas_1848": ; preds = %"$out_of_gas_1847", %"$Some_1841" + %"$consume_1849" = sub i64 %"$gasrem_1845", 20 + store i64 %"$consume_1849", i64* @_gasrem, align 8 + %"$execptr_load_1850" = load i8*, i8** @_execptr, align 8 + %"$eq_sender_1851" = alloca [20 x i8], align 1 + store [20 x i8] %sender, [20 x i8]* %"$eq_sender_1851", align 1 + %"$$eq_sender_1851_1852" = bitcast [20 x i8]* %"$eq_sender_1851" to i8* + %"$eq_approved_1853" = alloca [20 x i8], align 1 + %"$approved_1854" = load [20 x i8], [20 x i8]* %approved, align 1 + store [20 x i8] %"$approved_1854", [20 x i8]* %"$eq_approved_1853", align 1 + %"$$eq_approved_1853_1855" = bitcast [20 x i8]* %"$eq_approved_1853" to i8* + %"$eq_call_1856" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1850", i32 20, i8* %"$$eq_sender_1851_1852", i8* %"$$eq_approved_1853_1855"), !dbg !13 + store %TName_Bool* %"$eq_call_1856", %TName_Bool** %isApproved, align 8, !dbg !13 + br label %"$matchsucc_1827" + +"$empty_default_1830": ; preds = %"$have_gas_1825" + br label %"$matchsucc_1827" + +"$matchsucc_1827": ; preds = %"$have_gas_1848", %"$have_gas_1836", %"$empty_default_1830" + %"$gasrem_1858" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1859" = icmp ugt i64 1, %"$gasrem_1858" + br i1 %"$gascmp_1859", label %"$out_of_gas_1860", label %"$have_gas_1861" + +"$out_of_gas_1860": ; preds = %"$matchsucc_1827" + call void @_out_of_gas() + br label %"$have_gas_1861" + +"$have_gas_1861": ; preds = %"$out_of_gas_1860", %"$matchsucc_1827" + %"$consume_1862" = sub i64 %"$gasrem_1858", 1 + store i64 %"$consume_1862", i64* @_gasrem, align 8 %isOperator = alloca %TName_Bool*, align 8 - %"$gasrem_2294" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2295" = icmp ugt i64 2, %"$gasrem_2294" - br i1 %"$gascmp_2295", label %"$out_of_gas_2296", label %"$have_gas_2297" - -"$out_of_gas_2296": ; preds = %"$have_gas_2292" - call void @_out_of_gas() - br label %"$have_gas_2297" - -"$have_gas_2297": ; preds = %"$out_of_gas_2296", %"$have_gas_2292" - %"$consume_2298" = sub i64 %"$gasrem_2294", 2 - store i64 %"$consume_2298", i64* @_gasrem, align 8 - %"$maybeOperators_tag_2300" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %1, i32 0, i32 0 - %"$maybeOperators_tag_2301" = load i8, i8* %"$maybeOperators_tag_2300", align 1 - switch i8 %"$maybeOperators_tag_2301", label %"$empty_default_2302" [ - i8 1, label %"$None_2303" - i8 0, label %"$Some_2313" + %"$gasrem_1863" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1864" = icmp ugt i64 2, %"$gasrem_1863" + br i1 %"$gascmp_1864", label %"$out_of_gas_1865", label %"$have_gas_1866" + +"$out_of_gas_1865": ; preds = %"$have_gas_1861" + call void @_out_of_gas() + br label %"$have_gas_1866" + +"$have_gas_1866": ; preds = %"$out_of_gas_1865", %"$have_gas_1861" + %"$consume_1867" = sub i64 %"$gasrem_1863", 2 + store i64 %"$consume_1867", i64* @_gasrem, align 8 + %"$maybeOperators_tag_1869" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %4, i32 0, i32 0 + %"$maybeOperators_tag_1870" = load i8, i8* %"$maybeOperators_tag_1869", align 1 + switch i8 %"$maybeOperators_tag_1870", label %"$empty_default_1871" [ + i8 1, label %"$None_1872" + i8 0, label %"$Some_1882" ], !dbg !15 -"$None_2303": ; preds = %"$have_gas_2297" - %"$maybeOperators_2304" = bitcast %"TName_Option_List_(ByStr20)"* %1 to %"CName_None_List_(ByStr20)"* - %"$gasrem_2305" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2306" = icmp ugt i64 1, %"$gasrem_2305" - br i1 %"$gascmp_2306", label %"$out_of_gas_2307", label %"$have_gas_2308" - -"$out_of_gas_2307": ; preds = %"$None_2303" - call void @_out_of_gas() - br label %"$have_gas_2308" - -"$have_gas_2308": ; preds = %"$out_of_gas_2307", %"$None_2303" - %"$consume_2309" = sub i64 %"$gasrem_2305", 1 - store i64 %"$consume_2309", i64* @_gasrem, align 8 - %"$adtval_2310_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2310_salloc" = call i8* @_salloc(i8* %"$adtval_2310_load", i64 1) - %"$adtval_2310" = bitcast i8* %"$adtval_2310_salloc" to %CName_False* - %"$adtgep_2311" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2310", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2311", align 1 - %"$adtptr_2312" = bitcast %CName_False* %"$adtval_2310" to %TName_Bool* - store %TName_Bool* %"$adtptr_2312", %TName_Bool** %isOperator, align 8, !dbg !16 - br label %"$matchsucc_2299" - -"$Some_2313": ; preds = %"$have_gas_2297" - %"$maybeOperators_2314" = bitcast %"TName_Option_List_(ByStr20)"* %1 to %"CName_Some_List_(ByStr20)"* - %"$operators_gep_2315" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_2314", i32 0, i32 1 - %"$operators_load_2316" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$operators_gep_2315", align 8 +"$None_1872": ; preds = %"$have_gas_1866" + %"$maybeOperators_1873" = bitcast %"TName_Option_List_(ByStr20)"* %4 to %"CName_None_List_(ByStr20)"* + %"$gasrem_1874" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1875" = icmp ugt i64 1, %"$gasrem_1874" + br i1 %"$gascmp_1875", label %"$out_of_gas_1876", label %"$have_gas_1877" + +"$out_of_gas_1876": ; preds = %"$None_1872" + call void @_out_of_gas() + br label %"$have_gas_1877" + +"$have_gas_1877": ; preds = %"$out_of_gas_1876", %"$None_1872" + %"$consume_1878" = sub i64 %"$gasrem_1874", 1 + store i64 %"$consume_1878", i64* @_gasrem, align 8 + %"$adtval_1879_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1879_salloc" = call i8* @_salloc(i8* %"$adtval_1879_load", i64 1) + %"$adtval_1879" = bitcast i8* %"$adtval_1879_salloc" to %CName_False* + %"$adtgep_1880" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1879", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1880", align 1 + %"$adtptr_1881" = bitcast %CName_False* %"$adtval_1879" to %TName_Bool* + store %TName_Bool* %"$adtptr_1881", %TName_Bool** %isOperator, align 8, !dbg !16 + br label %"$matchsucc_1868" + +"$Some_1882": ; preds = %"$have_gas_1866" + %"$maybeOperators_1883" = bitcast %"TName_Option_List_(ByStr20)"* %4 to %"CName_Some_List_(ByStr20)"* + %"$operators_gep_1884" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_1883", i32 0, i32 1 + %"$operators_load_1885" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$operators_gep_1884", align 8 %operators = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$operators_load_2316", %TName_List_ByStr20** %operators, align 8 - %"$gasrem_2317" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2318" = icmp ugt i64 1, %"$gasrem_2317" - br i1 %"$gascmp_2318", label %"$out_of_gas_2319", label %"$have_gas_2320" - -"$out_of_gas_2319": ; preds = %"$Some_2313" - call void @_out_of_gas() - br label %"$have_gas_2320" - -"$have_gas_2320": ; preds = %"$out_of_gas_2319", %"$Some_2313" - %"$consume_2321" = sub i64 %"$gasrem_2317", 1 - store i64 %"$consume_2321", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Contains_39" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_2322" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$ud-registry.listByStr20Contains_fptr_2323" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2322", 0 - %"$ud-registry.listByStr20Contains_envptr_2324" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2322", 1 - %"$operators_2325" = load %TName_List_ByStr20*, %TName_List_ByStr20** %operators, align 8 - %"$ud-registry.listByStr20Contains_call_2326" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_2323"(i8* %"$ud-registry.listByStr20Contains_envptr_2324", %TName_List_ByStr20* %"$operators_2325"), !dbg !19 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_2326", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_39", align 8, !dbg !19 - %"$ud-registry.listByStr20Contains_40" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_39_2327" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_39", align 8 - %"$$ud-registry.listByStr20Contains_39_fptr_2328" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_39_2327", 0 - %"$$ud-registry.listByStr20Contains_39_envptr_2329" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_39_2327", 1 - %"$$ud-registry.listByStr20Contains_39_sender_2330" = alloca [20 x i8], align 1 - %"$sender_2331" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_2331", [20 x i8]* %"$$ud-registry.listByStr20Contains_39_sender_2330", align 1 - %"$$ud-registry.listByStr20Contains_39_call_2332" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_39_fptr_2328"(i8* %"$$ud-registry.listByStr20Contains_39_envptr_2329", [20 x i8]* %"$$ud-registry.listByStr20Contains_39_sender_2330"), !dbg !19 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_39_call_2332", %TName_Bool** %"$ud-registry.listByStr20Contains_40", align 8, !dbg !19 - %"$$ud-registry.listByStr20Contains_40_2333" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_40", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_40_2333", %TName_Bool** %isOperator, align 8, !dbg !19 - br label %"$matchsucc_2299" - -"$empty_default_2302": ; preds = %"$have_gas_2297" - br label %"$matchsucc_2299" - -"$matchsucc_2299": ; preds = %"$have_gas_2320", %"$have_gas_2308", %"$empty_default_2302" - %"$gasrem_2334" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2335" = icmp ugt i64 1, %"$gasrem_2334" - br i1 %"$gascmp_2335", label %"$out_of_gas_2336", label %"$have_gas_2337" - -"$out_of_gas_2336": ; preds = %"$matchsucc_2299" - call void @_out_of_gas() - br label %"$have_gas_2337" - -"$have_gas_2337": ; preds = %"$out_of_gas_2336", %"$matchsucc_2299" - %"$consume_2338" = sub i64 %"$gasrem_2334", 1 - store i64 %"$consume_2338", i64* @_gasrem, align 8 + store %TName_List_ByStr20* %"$operators_load_1885", %TName_List_ByStr20** %operators, align 8 + %"$gasrem_1886" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1887" = icmp ugt i64 1, %"$gasrem_1886" + br i1 %"$gascmp_1887", label %"$out_of_gas_1888", label %"$have_gas_1889" + +"$out_of_gas_1888": ; preds = %"$Some_1882" + call void @_out_of_gas() + br label %"$have_gas_1889" + +"$have_gas_1889": ; preds = %"$out_of_gas_1888", %"$Some_1882" + %"$consume_1890" = sub i64 %"$gasrem_1886", 1 + store i64 %"$consume_1890", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Contains_1891" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %ud-registry.listByStr20Contains, align 8 + %"$ud-registry.listByStr20Contains_fptr_1892" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_1891", 0 + %"$ud-registry.listByStr20Contains_envptr_1893" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_1891", 1 + %"$operators_1894" = load %TName_List_ByStr20*, %TName_List_ByStr20** %operators, align 8 + %"$ud-registry.listByStr20Contains_sender_1895" = alloca [20 x i8], align 1 + store [20 x i8] %sender, [20 x i8]* %"$ud-registry.listByStr20Contains_sender_1895", align 1 + %"$ud-registry.listByStr20Contains_call_1896" = call %TName_Bool* %"$ud-registry.listByStr20Contains_fptr_1892"(i8* %"$ud-registry.listByStr20Contains_envptr_1893", %TName_List_ByStr20* %"$operators_1894", [20 x i8]* %"$ud-registry.listByStr20Contains_sender_1895"), !dbg !19 + store %TName_Bool* %"$ud-registry.listByStr20Contains_call_1896", %TName_Bool** %isOperator, align 8, !dbg !19 + br label %"$matchsucc_1868" + +"$empty_default_1871": ; preds = %"$have_gas_1866" + br label %"$matchsucc_1868" + +"$matchsucc_1868": ; preds = %"$have_gas_1889", %"$have_gas_1877", %"$empty_default_1871" + %"$gasrem_1897" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1898" = icmp ugt i64 1, %"$gasrem_1897" + br i1 %"$gascmp_1898", label %"$out_of_gas_1899", label %"$have_gas_1900" + +"$out_of_gas_1899": ; preds = %"$matchsucc_1868" + call void @_out_of_gas() + br label %"$have_gas_1900" + +"$have_gas_1900": ; preds = %"$out_of_gas_1899", %"$matchsucc_1868" + %"$consume_1901" = sub i64 %"$gasrem_1897", 1 + store i64 %"$consume_1901", i64* @_gasrem, align 8 %b1 = alloca %TName_Bool*, align 8 - %"$gasrem_2339" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2340" = icmp ugt i64 1, %"$gasrem_2339" - br i1 %"$gascmp_2340", label %"$out_of_gas_2341", label %"$have_gas_2342" - -"$out_of_gas_2341": ; preds = %"$have_gas_2337" - call void @_out_of_gas() - br label %"$have_gas_2342" - -"$have_gas_2342": ; preds = %"$out_of_gas_2341", %"$have_gas_2337" - %"$consume_2343" = sub i64 %"$gasrem_2339", 1 - store i64 %"$consume_2343", i64* @_gasrem, align 8 - %"$BoolUtils.orb_41" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_2344" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$BoolUtils.orb_fptr_2345" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2344", 0 - %"$BoolUtils.orb_envptr_2346" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2344", 1 - %"$isOwner_2347" = load %TName_Bool*, %TName_Bool** %isOwner, align 8 - %"$BoolUtils.orb_call_2348" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_2345"(i8* %"$BoolUtils.orb_envptr_2346", %TName_Bool* %"$isOwner_2347"), !dbg !21 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_2348", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_41", align 8, !dbg !21 - %"$BoolUtils.orb_42" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_41_2349" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_41", align 8 - %"$$BoolUtils.orb_41_fptr_2350" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_41_2349", 0 - %"$$BoolUtils.orb_41_envptr_2351" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_41_2349", 1 - %"$isApproved_2352" = load %TName_Bool*, %TName_Bool** %isApproved, align 8 - %"$$BoolUtils.orb_41_call_2353" = call %TName_Bool* %"$$BoolUtils.orb_41_fptr_2350"(i8* %"$$BoolUtils.orb_41_envptr_2351", %TName_Bool* %"$isApproved_2352"), !dbg !21 - store %TName_Bool* %"$$BoolUtils.orb_41_call_2353", %TName_Bool** %"$BoolUtils.orb_42", align 8, !dbg !21 - %"$$BoolUtils.orb_42_2354" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_42", align 8 - store %TName_Bool* %"$$BoolUtils.orb_42_2354", %TName_Bool** %b1, align 8, !dbg !21 - %"$gasrem_2355" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2356" = icmp ugt i64 1, %"$gasrem_2355" - br i1 %"$gascmp_2356", label %"$out_of_gas_2357", label %"$have_gas_2358" - -"$out_of_gas_2357": ; preds = %"$have_gas_2342" - call void @_out_of_gas() - br label %"$have_gas_2358" - -"$have_gas_2358": ; preds = %"$out_of_gas_2357", %"$have_gas_2342" - %"$consume_2359" = sub i64 %"$gasrem_2355", 1 - store i64 %"$consume_2359", i64* @_gasrem, align 8 - %"$BoolUtils.orb_43" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_2360" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$BoolUtils.orb_fptr_2361" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2360", 0 - %"$BoolUtils.orb_envptr_2362" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2360", 1 - %"$b1_2363" = load %TName_Bool*, %TName_Bool** %b1, align 8 - %"$BoolUtils.orb_call_2364" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_2361"(i8* %"$BoolUtils.orb_envptr_2362", %TName_Bool* %"$b1_2363"), !dbg !22 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_2364", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_43", align 8, !dbg !22 - %"$BoolUtils.orb_44" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_43_2365" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_43", align 8 - %"$$BoolUtils.orb_43_fptr_2366" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_43_2365", 0 - %"$$BoolUtils.orb_43_envptr_2367" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_43_2365", 1 - %"$isOperator_2368" = load %TName_Bool*, %TName_Bool** %isOperator, align 8 - %"$$BoolUtils.orb_43_call_2369" = call %TName_Bool* %"$$BoolUtils.orb_43_fptr_2366"(i8* %"$$BoolUtils.orb_43_envptr_2367", %TName_Bool* %"$isOperator_2368"), !dbg !22 - store %TName_Bool* %"$$BoolUtils.orb_43_call_2369", %TName_Bool** %"$BoolUtils.orb_44", align 8, !dbg !22 - %"$$BoolUtils.orb_44_2370" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_44", align 8 - store %TName_Bool* %"$$BoolUtils.orb_44_2370", %TName_Bool** %"$retval_215", align 8, !dbg !22 - %"$$retval_215_2371" = load %TName_Bool*, %TName_Bool** %"$retval_215", align 8 - ret %TName_Bool* %"$$retval_215_2371" + %"$gasrem_1902" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1903" = icmp ugt i64 1, %"$gasrem_1902" + br i1 %"$gascmp_1903", label %"$out_of_gas_1904", label %"$have_gas_1905" + +"$out_of_gas_1904": ; preds = %"$have_gas_1900" + call void @_out_of_gas() + br label %"$have_gas_1905" + +"$have_gas_1905": ; preds = %"$out_of_gas_1904", %"$have_gas_1900" + %"$consume_1906" = sub i64 %"$gasrem_1902", 1 + store i64 %"$consume_1906", i64* @_gasrem, align 8 + %"$BoolUtils.orb_1907" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 + %"$BoolUtils.orb_fptr_1908" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_1907", 0 + %"$BoolUtils.orb_envptr_1909" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_1907", 1 + %"$isOwner_1910" = load %TName_Bool*, %TName_Bool** %isOwner, align 8 + %"$isApproved_1911" = load %TName_Bool*, %TName_Bool** %isApproved, align 8 + %"$BoolUtils.orb_call_1912" = call %TName_Bool* %"$BoolUtils.orb_fptr_1908"(i8* %"$BoolUtils.orb_envptr_1909", %TName_Bool* %"$isOwner_1910", %TName_Bool* %"$isApproved_1911"), !dbg !21 + store %TName_Bool* %"$BoolUtils.orb_call_1912", %TName_Bool** %b1, align 8, !dbg !21 + %"$gasrem_1913" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1914" = icmp ugt i64 1, %"$gasrem_1913" + br i1 %"$gascmp_1914", label %"$out_of_gas_1915", label %"$have_gas_1916" + +"$out_of_gas_1915": ; preds = %"$have_gas_1905" + call void @_out_of_gas() + br label %"$have_gas_1916" + +"$have_gas_1916": ; preds = %"$out_of_gas_1915", %"$have_gas_1905" + %"$consume_1917" = sub i64 %"$gasrem_1913", 1 + store i64 %"$consume_1917", i64* @_gasrem, align 8 + %"$BoolUtils.orb_1918" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 + %"$BoolUtils.orb_fptr_1919" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_1918", 0 + %"$BoolUtils.orb_envptr_1920" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_1918", 1 + %"$b1_1921" = load %TName_Bool*, %TName_Bool** %b1, align 8 + %"$isOperator_1922" = load %TName_Bool*, %TName_Bool** %isOperator, align 8 + %"$BoolUtils.orb_call_1923" = call %TName_Bool* %"$BoolUtils.orb_fptr_1919"(i8* %"$BoolUtils.orb_envptr_1920", %TName_Bool* %"$b1_1921", %TName_Bool* %"$isOperator_1922"), !dbg !22 + store %TName_Bool* %"$BoolUtils.orb_call_1923", %TName_Bool** %"$retval_120", align 8, !dbg !22 + %"$$retval_120_1924" = load %TName_Bool*, %TName_Bool** %"$retval_120", align 8 + ret %TName_Bool* %"$$retval_120_1924" } -define internal { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } @"$fundef_212"(%"$$fundef_212_env_406"* %0, %TName_Option_ByStr20* %1) !dbg !23 { +define internal void @"$fundef_121"(%"$$fundef_121_env_289"* %0, [32 x i8]* %1, [32 x i8]* %2, %String %3) !dbg !23 { entry: - %"$$fundef_212_env_BoolUtils.orb_2190" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_2191" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_212_env_BoolUtils.orb_2190", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_2191", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$$fundef_212_env_recordOwner_2192" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %0, i32 0, i32 1 - %"$recordOwner_envload_2193" = load [20 x i8], [20 x i8]* %"$$fundef_212_env_recordOwner_2192", align 1 - %recordOwner = alloca [20 x i8], align 1 - store [20 x i8] %"$recordOwner_envload_2193", [20 x i8]* %recordOwner, align 1 - %"$$fundef_212_env_sender_2194" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %0, i32 0, i32 2 - %"$sender_envload_2195" = load [20 x i8], [20 x i8]* %"$$fundef_212_env_sender_2194", align 1 - %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_2195", [20 x i8]* %sender, align 1 - %"$$fundef_212_env_ud-registry.listByStr20Contains_2196" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %0, i32 0, i32 3 - %"$ud-registry.listByStr20Contains_envload_2197" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_212_env_ud-registry.listByStr20Contains_2196", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_2197", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_213" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$gasrem_2198" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2199" = icmp ugt i64 1, %"$gasrem_2198" - br i1 %"$gascmp_2199", label %"$out_of_gas_2200", label %"$have_gas_2201" - -"$out_of_gas_2200": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2201" - -"$have_gas_2201": ; preds = %"$out_of_gas_2200", %entry - %"$consume_2202" = sub i64 %"$gasrem_2198", 1 - store i64 %"$consume_2202", i64* @_gasrem, align 8 - %"$$fundef_214_envp_2203_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_214_envp_2203_salloc" = call i8* @_salloc(i8* %"$$fundef_214_envp_2203_load", i64 80) - %"$$fundef_214_envp_2203" = bitcast i8* %"$$fundef_214_envp_2203_salloc" to %"$$fundef_214_env_405"* - %"$$fundef_214_env_voidp_2205" = bitcast %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203" to i8* - %"$$fundef_214_cloval_2206" = insertvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)* bitcast (%TName_Bool* (%"$$fundef_214_env_405"*, %"TName_Option_List_(ByStr20)"*)* @"$fundef_214" to %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*), i8* undef }, i8* %"$$fundef_214_env_voidp_2205", 1 - %"$$fundef_214_env_BoolUtils.orb_2207" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203", i32 0, i32 0 - %"$BoolUtils.orb_2208" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2208", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_214_env_BoolUtils.orb_2207", align 8 - %"$$fundef_214_env_maybeApproved_2209" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203", i32 0, i32 1 - store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_214_env_maybeApproved_2209", align 8 - %"$$fundef_214_env_recordOwner_2210" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203", i32 0, i32 2 - %"$recordOwner_2211" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_2211", [20 x i8]* %"$$fundef_214_env_recordOwner_2210", align 1 - %"$$fundef_214_env_sender_2212" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203", i32 0, i32 3 - %"$sender_2213" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_2213", [20 x i8]* %"$$fundef_214_env_sender_2212", align 1 - %"$$fundef_214_env_ud-registry.listByStr20Contains_2214" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203", i32 0, i32 4 - %"$ud-registry.listByStr20Contains_2215" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2215", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_214_env_ud-registry.listByStr20Contains_2214", align 8 - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$fundef_214_cloval_2206", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$retval_213", align 8, !dbg !24 - %"$$retval_213_2216" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$retval_213", align 8 - ret { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$retval_213_2216" -} - -define internal { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_210"(%"$$fundef_210_env_407"* %0, [20 x i8]* %1) !dbg !25 { -entry: - %recordOwner = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_210_env_BoolUtils.orb_2167" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_2168" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_210_env_BoolUtils.orb_2167", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_2168", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$$fundef_210_env_sender_2169" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %0, i32 0, i32 1 - %"$sender_envload_2170" = load [20 x i8], [20 x i8]* %"$$fundef_210_env_sender_2169", align 1 - %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_2170", [20 x i8]* %sender, align 1 - %"$$fundef_210_env_ud-registry.listByStr20Contains_2171" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %0, i32 0, i32 2 - %"$ud-registry.listByStr20Contains_envload_2172" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_210_env_ud-registry.listByStr20Contains_2171", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_2172", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_211" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_2173" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2174" = icmp ugt i64 1, %"$gasrem_2173" - br i1 %"$gascmp_2174", label %"$out_of_gas_2175", label %"$have_gas_2176" - -"$out_of_gas_2175": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2176" - -"$have_gas_2176": ; preds = %"$out_of_gas_2175", %entry - %"$consume_2177" = sub i64 %"$gasrem_2173", 1 - store i64 %"$consume_2177", i64* @_gasrem, align 8 - %"$$fundef_212_envp_2178_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_212_envp_2178_salloc" = call i8* @_salloc(i8* %"$$fundef_212_envp_2178_load", i64 72) - %"$$fundef_212_envp_2178" = bitcast i8* %"$$fundef_212_envp_2178_salloc" to %"$$fundef_212_env_406"* - %"$$fundef_212_env_voidp_2180" = bitcast %"$$fundef_212_env_406"* %"$$fundef_212_envp_2178" to i8* - %"$$fundef_212_cloval_2181" = insertvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)* bitcast ({ %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (%"$$fundef_212_env_406"*, %TName_Option_ByStr20*)* @"$fundef_212" to { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_212_env_voidp_2180", 1 - %"$$fundef_212_env_BoolUtils.orb_2182" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %"$$fundef_212_envp_2178", i32 0, i32 0 - %"$BoolUtils.orb_2183" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2183", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_212_env_BoolUtils.orb_2182", align 8 - %"$$fundef_212_env_recordOwner_2184" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %"$$fundef_212_envp_2178", i32 0, i32 1 - store [20 x i8] %recordOwner, [20 x i8]* %"$$fundef_212_env_recordOwner_2184", align 1 - %"$$fundef_212_env_sender_2185" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %"$$fundef_212_envp_2178", i32 0, i32 2 - %"$sender_2186" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_2186", [20 x i8]* %"$$fundef_212_env_sender_2185", align 1 - %"$$fundef_212_env_ud-registry.listByStr20Contains_2187" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %"$$fundef_212_envp_2178", i32 0, i32 3 - %"$ud-registry.listByStr20Contains_2188" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2188", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_212_env_ud-registry.listByStr20Contains_2187", align 8 - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_212_cloval_2181", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_211", align 8, !dbg !26 - %"$$retval_211_2189" = load { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_211", align 8 - ret { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_211_2189" -} - -define internal { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_208"(%"$$fundef_208_env_408"* %0, [20 x i8]* %1) !dbg !27 { -entry: - %sender = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_208_env_BoolUtils.orb_2148" = getelementptr inbounds %"$$fundef_208_env_408", %"$$fundef_208_env_408"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_2149" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_208_env_BoolUtils.orb_2148", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_2149", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$$fundef_208_env_ud-registry.listByStr20Contains_2150" = getelementptr inbounds %"$$fundef_208_env_408", %"$$fundef_208_env_408"* %0, i32 0, i32 1 - %"$ud-registry.listByStr20Contains_envload_2151" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_208_env_ud-registry.listByStr20Contains_2150", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_2151", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_209" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_2152" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2153" = icmp ugt i64 1, %"$gasrem_2152" - br i1 %"$gascmp_2153", label %"$out_of_gas_2154", label %"$have_gas_2155" - -"$out_of_gas_2154": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2155" - -"$have_gas_2155": ; preds = %"$out_of_gas_2154", %entry - %"$consume_2156" = sub i64 %"$gasrem_2152", 1 - store i64 %"$consume_2156", i64* @_gasrem, align 8 - %"$$fundef_210_envp_2157_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_210_envp_2157_salloc" = call i8* @_salloc(i8* %"$$fundef_210_envp_2157_load", i64 56) - %"$$fundef_210_envp_2157" = bitcast i8* %"$$fundef_210_envp_2157_salloc" to %"$$fundef_210_env_407"* - %"$$fundef_210_env_voidp_2159" = bitcast %"$$fundef_210_env_407"* %"$$fundef_210_envp_2157" to i8* - %"$$fundef_210_cloval_2160" = insertvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (%"$$fundef_210_env_407"*, [20 x i8]*)* @"$fundef_210" to { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_210_env_voidp_2159", 1 - %"$$fundef_210_env_BoolUtils.orb_2161" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %"$$fundef_210_envp_2157", i32 0, i32 0 - %"$BoolUtils.orb_2162" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2162", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_210_env_BoolUtils.orb_2161", align 8 - %"$$fundef_210_env_sender_2163" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %"$$fundef_210_envp_2157", i32 0, i32 1 - store [20 x i8] %sender, [20 x i8]* %"$$fundef_210_env_sender_2163", align 1 - %"$$fundef_210_env_ud-registry.listByStr20Contains_2164" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %"$$fundef_210_envp_2157", i32 0, i32 2 - %"$ud-registry.listByStr20Contains_2165" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2165", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_210_env_ud-registry.listByStr20Contains_2164", align 8 - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_210_cloval_2160", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_209", align 8, !dbg !28 - %"$$retval_209_2166" = load { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_209", align 8 - ret { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_209_2166" -} - -define internal void @"$fundef_218"(%"$$fundef_218_env_409"* %0, [32 x i8]* %1, %String %2) !dbg !29 { -entry: - %"$$fundef_218_env_parent_2080" = getelementptr inbounds %"$$fundef_218_env_409", %"$$fundef_218_env_409"* %0, i32 0, i32 0 - %"$parent_envload_2081" = load [32 x i8], [32 x i8]* %"$$fundef_218_env_parent_2080", align 1 - %parent = alloca [32 x i8], align 1 - store [32 x i8] %"$parent_envload_2081", [32 x i8]* %parent, align 1 - %"$retval_219" = alloca [32 x i8], align 1 - %"$gasrem_2082" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2083" = icmp ugt i64 1, %"$gasrem_2082" - br i1 %"$gascmp_2083", label %"$out_of_gas_2084", label %"$have_gas_2085" - -"$out_of_gas_2084": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2085" - -"$have_gas_2085": ; preds = %"$out_of_gas_2084", %entry - %"$consume_2086" = sub i64 %"$gasrem_2082", 1 - store i64 %"$consume_2086", i64* @_gasrem, align 8 - %labelHash = alloca [32 x i8], align 1 - %"$_literal_cost_label_2087" = alloca %String, align 8 - store %String %2, %String* %"$_literal_cost_label_2087", align 8 - %"$$_literal_cost_label_2087_2088" = bitcast %String* %"$_literal_cost_label_2087" to i8* - %"$_literal_cost_call_2089" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_295", i8* %"$$_literal_cost_label_2087_2088") - %"$gasdivceil_2090" = urem i64 %"$_literal_cost_call_2089", 960 - %"$gasdivceil_2091" = udiv i64 %"$_literal_cost_call_2089", 960 - %"$gasdivceil_2092" = icmp eq i64 %"$gasdivceil_2090", 0 - %"$gasdivceil_2093" = add i64 %"$gasdivceil_2091", 1 - %"$gasdivceil_2094" = select i1 %"$gasdivceil_2092", i64 %"$gasdivceil_2091", i64 %"$gasdivceil_2093" - %"$gasrem_2095" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2096" = icmp ugt i64 %"$gasdivceil_2094", %"$gasrem_2095" - br i1 %"$gascmp_2096", label %"$out_of_gas_2097", label %"$have_gas_2098" - -"$out_of_gas_2097": ; preds = %"$have_gas_2085" - call void @_out_of_gas() - br label %"$have_gas_2098" - -"$have_gas_2098": ; preds = %"$out_of_gas_2097", %"$have_gas_2085" - %"$consume_2099" = sub i64 %"$gasrem_2095", %"$gasdivceil_2094" - store i64 %"$consume_2099", i64* @_gasrem, align 8 - %"$execptr_load_2100" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_label_2101" = alloca %String, align 8 - store %String %2, %String* %"$sha256hash_label_2101", align 8 - %"$$sha256hash_label_2101_2102" = bitcast %String* %"$sha256hash_label_2101" to i8* - %"$sha256hash_call_2103" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_2100", %_TyDescrTy_Typ* @"$TyDescr_String_295", i8* %"$$sha256hash_label_2101_2102"), !dbg !30 - %"$sha256hash_2105" = load [32 x i8], [32 x i8]* %"$sha256hash_call_2103", align 1 - store [32 x i8] %"$sha256hash_2105", [32 x i8]* %labelHash, align 1, !dbg !30 - %"$gasrem_2106" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2107" = icmp ugt i64 1, %"$gasrem_2106" - br i1 %"$gascmp_2107", label %"$out_of_gas_2108", label %"$have_gas_2109" + %parent = load [32 x i8], [32 x i8]* %2, align 1 + %"$retval_122" = alloca [32 x i8], align 1 + %"$gasrem_1731" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1732" = icmp ugt i64 1, %"$gasrem_1731" + br i1 %"$gascmp_1732", label %"$out_of_gas_1733", label %"$have_gas_1734" -"$out_of_gas_2108": ; preds = %"$have_gas_2098" +"$out_of_gas_1733": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2109" + br label %"$have_gas_1734" -"$have_gas_2109": ; preds = %"$out_of_gas_2108", %"$have_gas_2098" - %"$consume_2110" = sub i64 %"$gasrem_2106", 1 - store i64 %"$consume_2110", i64* @_gasrem, align 8 +"$have_gas_1734": ; preds = %"$out_of_gas_1733", %entry + %"$consume_1735" = sub i64 %"$gasrem_1731", 1 + store i64 %"$consume_1735", i64* @_gasrem, align 8 + %labelHash = alloca [32 x i8], align 1 + %"$_literal_cost_label_1736" = alloca %String, align 8 + store %String %3, %String* %"$_literal_cost_label_1736", align 8 + %"$$_literal_cost_label_1736_1737" = bitcast %String* %"$_literal_cost_label_1736" to i8* + %"$_literal_cost_call_1738" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_178", i8* %"$$_literal_cost_label_1736_1737") + %"$gasdivceil_1739" = urem i64 %"$_literal_cost_call_1738", 960 + %"$gasdivceil_1740" = udiv i64 %"$_literal_cost_call_1738", 960 + %"$gasdivceil_1741" = icmp eq i64 %"$gasdivceil_1739", 0 + %"$gasdivceil_1742" = add i64 %"$gasdivceil_1740", 1 + %"$gasdivceil_1743" = select i1 %"$gasdivceil_1741", i64 %"$gasdivceil_1740", i64 %"$gasdivceil_1742" + %"$gasrem_1744" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1745" = icmp ugt i64 %"$gasdivceil_1743", %"$gasrem_1744" + br i1 %"$gascmp_1745", label %"$out_of_gas_1746", label %"$have_gas_1747" + +"$out_of_gas_1746": ; preds = %"$have_gas_1734" + call void @_out_of_gas() + br label %"$have_gas_1747" + +"$have_gas_1747": ; preds = %"$out_of_gas_1746", %"$have_gas_1734" + %"$consume_1748" = sub i64 %"$gasrem_1744", %"$gasdivceil_1743" + store i64 %"$consume_1748", i64* @_gasrem, align 8 + %"$execptr_load_1749" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_label_1750" = alloca %String, align 8 + store %String %3, %String* %"$sha256hash_label_1750", align 8 + %"$$sha256hash_label_1750_1751" = bitcast %String* %"$sha256hash_label_1750" to i8* + %"$sha256hash_call_1752" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_1749", %_TyDescrTy_Typ* @"$TyDescr_String_178", i8* %"$$sha256hash_label_1750_1751"), !dbg !24 + %"$sha256hash_1754" = load [32 x i8], [32 x i8]* %"$sha256hash_call_1752", align 1 + store [32 x i8] %"$sha256hash_1754", [32 x i8]* %labelHash, align 1, !dbg !24 + %"$gasrem_1755" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1756" = icmp ugt i64 1, %"$gasrem_1755" + br i1 %"$gascmp_1756", label %"$out_of_gas_1757", label %"$have_gas_1758" + +"$out_of_gas_1757": ; preds = %"$have_gas_1747" + call void @_out_of_gas() + br label %"$have_gas_1758" + +"$have_gas_1758": ; preds = %"$out_of_gas_1757", %"$have_gas_1747" + %"$consume_1759" = sub i64 %"$gasrem_1755", 1 + store i64 %"$consume_1759", i64* @_gasrem, align 8 %nodeInput = alloca [64 x i8], align 1 - %"$gasrem_2111" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2112" = icmp ugt i64 64, %"$gasrem_2111" - br i1 %"$gascmp_2112", label %"$out_of_gas_2113", label %"$have_gas_2114" - -"$out_of_gas_2113": ; preds = %"$have_gas_2109" - call void @_out_of_gas() - br label %"$have_gas_2114" - -"$have_gas_2114": ; preds = %"$out_of_gas_2113", %"$have_gas_2109" - %"$consume_2115" = sub i64 %"$gasrem_2111", 64 - store i64 %"$consume_2115", i64* @_gasrem, align 8 - %"$execptr_load_2116" = load i8*, i8** @_execptr, align 8 - %"$concat_parent_2117" = alloca [32 x i8], align 1 - %"$parent_2118" = load [32 x i8], [32 x i8]* %parent, align 1 - store [32 x i8] %"$parent_2118", [32 x i8]* %"$concat_parent_2117", align 1 - %"$$concat_parent_2117_2119" = bitcast [32 x i8]* %"$concat_parent_2117" to i8* - %"$concat_labelHash_2120" = alloca [32 x i8], align 1 - %"$labelHash_2121" = load [32 x i8], [32 x i8]* %labelHash, align 1 - store [32 x i8] %"$labelHash_2121", [32 x i8]* %"$concat_labelHash_2120", align 1 - %"$$concat_labelHash_2120_2122" = bitcast [32 x i8]* %"$concat_labelHash_2120" to i8* - %"$concat_call_2123" = call i8* @_concat_ByStrX(i8* %"$execptr_load_2116", i32 32, i8* %"$$concat_parent_2117_2119", i32 32, i8* %"$$concat_labelHash_2120_2122"), !dbg !31 - %"$concat_2124" = bitcast i8* %"$concat_call_2123" to [64 x i8]* - %"$concat_2125" = load [64 x i8], [64 x i8]* %"$concat_2124", align 1 - store [64 x i8] %"$concat_2125", [64 x i8]* %nodeInput, align 1, !dbg !31 - %"$_literal_cost_nodeInput_2126" = alloca [64 x i8], align 1 - %"$nodeInput_2127" = load [64 x i8], [64 x i8]* %nodeInput, align 1 - store [64 x i8] %"$nodeInput_2127", [64 x i8]* %"$_literal_cost_nodeInput_2126", align 1 - %"$$_literal_cost_nodeInput_2126_2128" = bitcast [64 x i8]* %"$_literal_cost_nodeInput_2126" to i8* - %"$_literal_cost_call_2129" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr64_307", i8* %"$$_literal_cost_nodeInput_2126_2128") - %"$gasdivceil_2130" = urem i64 %"$_literal_cost_call_2129", 960 - %"$gasdivceil_2131" = udiv i64 %"$_literal_cost_call_2129", 960 - %"$gasdivceil_2132" = icmp eq i64 %"$gasdivceil_2130", 0 - %"$gasdivceil_2133" = add i64 %"$gasdivceil_2131", 1 - %"$gasdivceil_2134" = select i1 %"$gasdivceil_2132", i64 %"$gasdivceil_2131", i64 %"$gasdivceil_2133" - %"$gasrem_2135" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2136" = icmp ugt i64 %"$gasdivceil_2134", %"$gasrem_2135" - br i1 %"$gascmp_2136", label %"$out_of_gas_2137", label %"$have_gas_2138" - -"$out_of_gas_2137": ; preds = %"$have_gas_2114" - call void @_out_of_gas() - br label %"$have_gas_2138" - -"$have_gas_2138": ; preds = %"$out_of_gas_2137", %"$have_gas_2114" - %"$consume_2139" = sub i64 %"$gasrem_2135", %"$gasdivceil_2134" - store i64 %"$consume_2139", i64* @_gasrem, align 8 - %"$execptr_load_2140" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_nodeInput_2141" = alloca [64 x i8], align 1 - %"$nodeInput_2142" = load [64 x i8], [64 x i8]* %nodeInput, align 1 - store [64 x i8] %"$nodeInput_2142", [64 x i8]* %"$sha256hash_nodeInput_2141", align 1 - %"$$sha256hash_nodeInput_2141_2143" = bitcast [64 x i8]* %"$sha256hash_nodeInput_2141" to i8* - %"$sha256hash_call_2144" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_2140", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_307", i8* %"$$sha256hash_nodeInput_2141_2143"), !dbg !32 - %"$sha256hash_2146" = load [32 x i8], [32 x i8]* %"$sha256hash_call_2144", align 1 - store [32 x i8] %"$sha256hash_2146", [32 x i8]* %"$retval_219", align 1, !dbg !32 - %"$$retval_219_2147" = load [32 x i8], [32 x i8]* %"$retval_219", align 1 - store [32 x i8] %"$$retval_219_2147", [32 x i8]* %1, align 1 + %"$gasrem_1760" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1761" = icmp ugt i64 64, %"$gasrem_1760" + br i1 %"$gascmp_1761", label %"$out_of_gas_1762", label %"$have_gas_1763" + +"$out_of_gas_1762": ; preds = %"$have_gas_1758" + call void @_out_of_gas() + br label %"$have_gas_1763" + +"$have_gas_1763": ; preds = %"$out_of_gas_1762", %"$have_gas_1758" + %"$consume_1764" = sub i64 %"$gasrem_1760", 64 + store i64 %"$consume_1764", i64* @_gasrem, align 8 + %"$execptr_load_1765" = load i8*, i8** @_execptr, align 8 + %"$concat_parent_1766" = alloca [32 x i8], align 1 + store [32 x i8] %parent, [32 x i8]* %"$concat_parent_1766", align 1 + %"$$concat_parent_1766_1767" = bitcast [32 x i8]* %"$concat_parent_1766" to i8* + %"$concat_labelHash_1768" = alloca [32 x i8], align 1 + %"$labelHash_1769" = load [32 x i8], [32 x i8]* %labelHash, align 1 + store [32 x i8] %"$labelHash_1769", [32 x i8]* %"$concat_labelHash_1768", align 1 + %"$$concat_labelHash_1768_1770" = bitcast [32 x i8]* %"$concat_labelHash_1768" to i8* + %"$concat_call_1771" = call i8* @_concat_ByStrX(i8* %"$execptr_load_1765", i32 32, i8* %"$$concat_parent_1766_1767", i32 32, i8* %"$$concat_labelHash_1768_1770"), !dbg !25 + %"$concat_1772" = bitcast i8* %"$concat_call_1771" to [64 x i8]* + %"$concat_1773" = load [64 x i8], [64 x i8]* %"$concat_1772", align 1 + store [64 x i8] %"$concat_1773", [64 x i8]* %nodeInput, align 1, !dbg !25 + %"$_literal_cost_nodeInput_1774" = alloca [64 x i8], align 1 + %"$nodeInput_1775" = load [64 x i8], [64 x i8]* %nodeInput, align 1 + store [64 x i8] %"$nodeInput_1775", [64 x i8]* %"$_literal_cost_nodeInput_1774", align 1 + %"$$_literal_cost_nodeInput_1774_1776" = bitcast [64 x i8]* %"$_literal_cost_nodeInput_1774" to i8* + %"$_literal_cost_call_1777" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr64_190", i8* %"$$_literal_cost_nodeInput_1774_1776") + %"$gasdivceil_1778" = urem i64 %"$_literal_cost_call_1777", 960 + %"$gasdivceil_1779" = udiv i64 %"$_literal_cost_call_1777", 960 + %"$gasdivceil_1780" = icmp eq i64 %"$gasdivceil_1778", 0 + %"$gasdivceil_1781" = add i64 %"$gasdivceil_1779", 1 + %"$gasdivceil_1782" = select i1 %"$gasdivceil_1780", i64 %"$gasdivceil_1779", i64 %"$gasdivceil_1781" + %"$gasrem_1783" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1784" = icmp ugt i64 %"$gasdivceil_1782", %"$gasrem_1783" + br i1 %"$gascmp_1784", label %"$out_of_gas_1785", label %"$have_gas_1786" + +"$out_of_gas_1785": ; preds = %"$have_gas_1763" + call void @_out_of_gas() + br label %"$have_gas_1786" + +"$have_gas_1786": ; preds = %"$out_of_gas_1785", %"$have_gas_1763" + %"$consume_1787" = sub i64 %"$gasrem_1783", %"$gasdivceil_1782" + store i64 %"$consume_1787", i64* @_gasrem, align 8 + %"$execptr_load_1788" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_nodeInput_1789" = alloca [64 x i8], align 1 + %"$nodeInput_1790" = load [64 x i8], [64 x i8]* %nodeInput, align 1 + store [64 x i8] %"$nodeInput_1790", [64 x i8]* %"$sha256hash_nodeInput_1789", align 1 + %"$$sha256hash_nodeInput_1789_1791" = bitcast [64 x i8]* %"$sha256hash_nodeInput_1789" to i8* + %"$sha256hash_call_1792" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_1788", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_190", i8* %"$$sha256hash_nodeInput_1789_1791"), !dbg !26 + %"$sha256hash_1794" = load [32 x i8], [32 x i8]* %"$sha256hash_call_1792", align 1 + store [32 x i8] %"$sha256hash_1794", [32 x i8]* %"$retval_122", align 1, !dbg !26 + %"$$retval_122_1795" = load [32 x i8], [32 x i8]* %"$retval_122", align 1 + store [32 x i8] %"$$retval_122_1795", [32 x i8]* %1, align 1 ret void } -define internal { void (i8*, [32 x i8]*, %String)*, i8* } @"$fundef_216"(%"$$fundef_216_env_410"* %0, [32 x i8]* %1) !dbg !33 { -entry: - %parent = load [32 x i8], [32 x i8]* %1, align 1 - %"$retval_217" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$gasrem_2069" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2070" = icmp ugt i64 1, %"$gasrem_2069" - br i1 %"$gascmp_2070", label %"$out_of_gas_2071", label %"$have_gas_2072" - -"$out_of_gas_2071": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2072" - -"$have_gas_2072": ; preds = %"$out_of_gas_2071", %entry - %"$consume_2073" = sub i64 %"$gasrem_2069", 1 - store i64 %"$consume_2073", i64* @_gasrem, align 8 - %"$$fundef_218_envp_2074_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_218_envp_2074_salloc" = call i8* @_salloc(i8* %"$$fundef_218_envp_2074_load", i64 32) - %"$$fundef_218_envp_2074" = bitcast i8* %"$$fundef_218_envp_2074_salloc" to %"$$fundef_218_env_409"* - %"$$fundef_218_env_voidp_2076" = bitcast %"$$fundef_218_env_409"* %"$$fundef_218_envp_2074" to i8* - %"$$fundef_218_cloval_2077" = insertvalue { void (i8*, [32 x i8]*, %String)*, i8* } { void (i8*, [32 x i8]*, %String)* bitcast (void (%"$$fundef_218_env_409"*, [32 x i8]*, %String)* @"$fundef_218" to void (i8*, [32 x i8]*, %String)*), i8* undef }, i8* %"$$fundef_218_env_voidp_2076", 1 - %"$$fundef_218_env_parent_2078" = getelementptr inbounds %"$$fundef_218_env_409", %"$$fundef_218_env_409"* %"$$fundef_218_envp_2074", i32 0, i32 0 - store [32 x i8] %parent, [32 x i8]* %"$$fundef_218_env_parent_2078", align 1 - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$$fundef_218_cloval_2077", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$retval_217", align 8, !dbg !34 - %"$$retval_217_2079" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$retval_217", align 8 - ret { void (i8*, [32 x i8]*, %String)*, i8* } %"$$retval_217_2079" -} - -define internal void @"$fundef_220"(%"$$fundef_220_env_411"* %0, [20 x i8]* %1, %TName_Option_ud-registry.Record* %2) !dbg !35 { +define internal void @"$fundef_123"(%"$$fundef_123_env_290"* %0, [20 x i8]* %1, %TName_Option_ud-registry.Record* %2) !dbg !27 { entry: - %"$$fundef_220_env_ud-registry.zeroByStr20_2023" = getelementptr inbounds %"$$fundef_220_env_411", %"$$fundef_220_env_411"* %0, i32 0, i32 0 - %"$ud-registry.zeroByStr20_envload_2024" = load [20 x i8], [20 x i8]* %"$$fundef_220_env_ud-registry.zeroByStr20_2023", align 1 + %"$$fundef_123_env_ud-registry.zeroByStr20_1685" = getelementptr inbounds %"$$fundef_123_env_290", %"$$fundef_123_env_290"* %0, i32 0, i32 0 + %"$ud-registry.zeroByStr20_envload_1686" = load [20 x i8], [20 x i8]* %"$$fundef_123_env_ud-registry.zeroByStr20_1685", align 1 %ud-registry.zeroByStr20 = alloca [20 x i8], align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_envload_2024", [20 x i8]* %ud-registry.zeroByStr20, align 1 - %"$retval_221" = alloca [20 x i8], align 1 - %"$gasrem_2025" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2026" = icmp ugt i64 2, %"$gasrem_2025" - br i1 %"$gascmp_2026", label %"$out_of_gas_2027", label %"$have_gas_2028" - -"$out_of_gas_2027": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2028" - -"$have_gas_2028": ; preds = %"$out_of_gas_2027", %entry - %"$consume_2029" = sub i64 %"$gasrem_2025", 2 - store i64 %"$consume_2029", i64* @_gasrem, align 8 - %"$maybeRecord_tag_2031" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %2, i32 0, i32 0 - %"$maybeRecord_tag_2032" = load i8, i8* %"$maybeRecord_tag_2031", align 1 - switch i8 %"$maybeRecord_tag_2032", label %"$empty_default_2033" [ - i8 1, label %"$None_2034" - i8 0, label %"$Some_2042" - ], !dbg !36 - -"$None_2034": ; preds = %"$have_gas_2028" - %"$maybeRecord_2035" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_None_ud-registry.Record* - %"$gasrem_2036" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2037" = icmp ugt i64 1, %"$gasrem_2036" - br i1 %"$gascmp_2037", label %"$out_of_gas_2038", label %"$have_gas_2039" - -"$out_of_gas_2038": ; preds = %"$None_2034" - call void @_out_of_gas() - br label %"$have_gas_2039" - -"$have_gas_2039": ; preds = %"$out_of_gas_2038", %"$None_2034" - %"$consume_2040" = sub i64 %"$gasrem_2036", 1 - store i64 %"$consume_2040", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_2041" = load [20 x i8], [20 x i8]* %ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_2041", [20 x i8]* %"$retval_221", align 1, !dbg !37 - br label %"$matchsucc_2030" - -"$Some_2042": ; preds = %"$have_gas_2028" - %"$maybeRecord_2043" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_Some_ud-registry.Record* - %"$record_gep_2044" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_2043", i32 0, i32 1 - %"$record_load_2045" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_2044", align 8 + store [20 x i8] %"$ud-registry.zeroByStr20_envload_1686", [20 x i8]* %ud-registry.zeroByStr20, align 1 + %"$retval_124" = alloca [20 x i8], align 1 + %"$gasrem_1687" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1688" = icmp ugt i64 2, %"$gasrem_1687" + br i1 %"$gascmp_1688", label %"$out_of_gas_1689", label %"$have_gas_1690" + +"$out_of_gas_1689": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1690" + +"$have_gas_1690": ; preds = %"$out_of_gas_1689", %entry + %"$consume_1691" = sub i64 %"$gasrem_1687", 2 + store i64 %"$consume_1691", i64* @_gasrem, align 8 + %"$maybeRecord_tag_1693" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %2, i32 0, i32 0 + %"$maybeRecord_tag_1694" = load i8, i8* %"$maybeRecord_tag_1693", align 1 + switch i8 %"$maybeRecord_tag_1694", label %"$empty_default_1695" [ + i8 1, label %"$None_1696" + i8 0, label %"$Some_1704" + ], !dbg !28 + +"$None_1696": ; preds = %"$have_gas_1690" + %"$maybeRecord_1697" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_None_ud-registry.Record* + %"$gasrem_1698" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1699" = icmp ugt i64 1, %"$gasrem_1698" + br i1 %"$gascmp_1699", label %"$out_of_gas_1700", label %"$have_gas_1701" + +"$out_of_gas_1700": ; preds = %"$None_1696" + call void @_out_of_gas() + br label %"$have_gas_1701" + +"$have_gas_1701": ; preds = %"$out_of_gas_1700", %"$None_1696" + %"$consume_1702" = sub i64 %"$gasrem_1698", 1 + store i64 %"$consume_1702", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_1703" = load [20 x i8], [20 x i8]* %ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_1703", [20 x i8]* %"$retval_124", align 1, !dbg !29 + br label %"$matchsucc_1692" + +"$Some_1704": ; preds = %"$have_gas_1690" + %"$maybeRecord_1705" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_Some_ud-registry.Record* + %"$record_gep_1706" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_1705", i32 0, i32 1 + %"$record_load_1707" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_1706", align 8 %record = alloca %TName_ud-registry.Record*, align 8 - store %TName_ud-registry.Record* %"$record_load_2045", %TName_ud-registry.Record** %record, align 8 - %"$gasrem_2046" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2047" = icmp ugt i64 1, %"$gasrem_2046" - br i1 %"$gascmp_2047", label %"$out_of_gas_2048", label %"$have_gas_2049" - -"$out_of_gas_2048": ; preds = %"$Some_2042" - call void @_out_of_gas() - br label %"$have_gas_2049" - -"$have_gas_2049": ; preds = %"$out_of_gas_2048", %"$Some_2042" - %"$consume_2050" = sub i64 %"$gasrem_2046", 1 - store i64 %"$consume_2050", i64* @_gasrem, align 8 - %"$record_2052" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 - %"$record_tag_2053" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_2052", i32 0, i32 0 - %"$record_tag_2054" = load i8, i8* %"$record_tag_2053", align 1 - switch i8 %"$record_tag_2054", label %"$empty_default_2055" [ - i8 0, label %"$ud-registry.Record_2056" - ], !dbg !40 - -"$ud-registry.Record_2056": ; preds = %"$have_gas_2049" - %"$record_2057" = bitcast %TName_ud-registry.Record* %"$record_2052" to %CName_ud-registry.Record* - %"$owner_gep_2058" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_2057", i32 0, i32 1 - %"$owner_load_2059" = load [20 x i8], [20 x i8]* %"$owner_gep_2058", align 1 + store %TName_ud-registry.Record* %"$record_load_1707", %TName_ud-registry.Record** %record, align 8 + %"$gasrem_1708" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1709" = icmp ugt i64 1, %"$gasrem_1708" + br i1 %"$gascmp_1709", label %"$out_of_gas_1710", label %"$have_gas_1711" + +"$out_of_gas_1710": ; preds = %"$Some_1704" + call void @_out_of_gas() + br label %"$have_gas_1711" + +"$have_gas_1711": ; preds = %"$out_of_gas_1710", %"$Some_1704" + %"$consume_1712" = sub i64 %"$gasrem_1708", 1 + store i64 %"$consume_1712", i64* @_gasrem, align 8 + %"$record_1714" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 + %"$record_tag_1715" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_1714", i32 0, i32 0 + %"$record_tag_1716" = load i8, i8* %"$record_tag_1715", align 1 + switch i8 %"$record_tag_1716", label %"$empty_default_1717" [ + i8 0, label %"$ud-registry.Record_1718" + ], !dbg !32 + +"$ud-registry.Record_1718": ; preds = %"$have_gas_1711" + %"$record_1719" = bitcast %TName_ud-registry.Record* %"$record_1714" to %CName_ud-registry.Record* + %"$owner_gep_1720" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_1719", i32 0, i32 1 + %"$owner_load_1721" = load [20 x i8], [20 x i8]* %"$owner_gep_1720", align 1 %owner = alloca [20 x i8], align 1 - store [20 x i8] %"$owner_load_2059", [20 x i8]* %owner, align 1 - %"$resolver_gep_2060" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_2057", i32 0, i32 2 - %"$resolver_load_2061" = load [20 x i8], [20 x i8]* %"$resolver_gep_2060", align 1 + store [20 x i8] %"$owner_load_1721", [20 x i8]* %owner, align 1 + %"$resolver_gep_1722" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_1719", i32 0, i32 2 + %"$resolver_load_1723" = load [20 x i8], [20 x i8]* %"$resolver_gep_1722", align 1 %resolver = alloca [20 x i8], align 1 - store [20 x i8] %"$resolver_load_2061", [20 x i8]* %resolver, align 1 - %"$gasrem_2062" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2063" = icmp ugt i64 1, %"$gasrem_2062" - br i1 %"$gascmp_2063", label %"$out_of_gas_2064", label %"$have_gas_2065" + store [20 x i8] %"$resolver_load_1723", [20 x i8]* %resolver, align 1 + %"$gasrem_1724" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1725" = icmp ugt i64 1, %"$gasrem_1724" + br i1 %"$gascmp_1725", label %"$out_of_gas_1726", label %"$have_gas_1727" -"$out_of_gas_2064": ; preds = %"$ud-registry.Record_2056" +"$out_of_gas_1726": ; preds = %"$ud-registry.Record_1718" call void @_out_of_gas() - br label %"$have_gas_2065" + br label %"$have_gas_1727" -"$have_gas_2065": ; preds = %"$out_of_gas_2064", %"$ud-registry.Record_2056" - %"$consume_2066" = sub i64 %"$gasrem_2062", 1 - store i64 %"$consume_2066", i64* @_gasrem, align 8 - %"$owner_2067" = load [20 x i8], [20 x i8]* %owner, align 1 - store [20 x i8] %"$owner_2067", [20 x i8]* %"$retval_221", align 1, !dbg !42 - br label %"$matchsucc_2051" +"$have_gas_1727": ; preds = %"$out_of_gas_1726", %"$ud-registry.Record_1718" + %"$consume_1728" = sub i64 %"$gasrem_1724", 1 + store i64 %"$consume_1728", i64* @_gasrem, align 8 + %"$owner_1729" = load [20 x i8], [20 x i8]* %owner, align 1 + store [20 x i8] %"$owner_1729", [20 x i8]* %"$retval_124", align 1, !dbg !34 + br label %"$matchsucc_1713" -"$empty_default_2055": ; preds = %"$have_gas_2049" - br label %"$matchsucc_2051" +"$empty_default_1717": ; preds = %"$have_gas_1711" + br label %"$matchsucc_1713" -"$matchsucc_2051": ; preds = %"$have_gas_2065", %"$empty_default_2055" - br label %"$matchsucc_2030" +"$matchsucc_1713": ; preds = %"$have_gas_1727", %"$empty_default_1717" + br label %"$matchsucc_1692" -"$empty_default_2033": ; preds = %"$have_gas_2028" - br label %"$matchsucc_2030" +"$empty_default_1695": ; preds = %"$have_gas_1690" + br label %"$matchsucc_1692" -"$matchsucc_2030": ; preds = %"$matchsucc_2051", %"$have_gas_2039", %"$empty_default_2033" - %"$$retval_221_2068" = load [20 x i8], [20 x i8]* %"$retval_221", align 1 - store [20 x i8] %"$$retval_221_2068", [20 x i8]* %1, align 1 +"$matchsucc_1692": ; preds = %"$matchsucc_1713", %"$have_gas_1701", %"$empty_default_1695" + %"$$retval_124_1730" = load [20 x i8], [20 x i8]* %"$retval_124", align 1 + store [20 x i8] %"$$retval_124_1730", [20 x i8]* %1, align 1 ret void } -define internal i8* @"$fundef_222"(%"$$fundef_222_env_412"* %0, %String %1) !dbg !45 { -entry: - %"$retval_223" = alloca i8*, align 8 - %"$gasrem_2000" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2001" = icmp ugt i64 1, %"$gasrem_2000" - br i1 %"$gascmp_2001", label %"$out_of_gas_2002", label %"$have_gas_2003" - -"$out_of_gas_2002": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2003" - -"$have_gas_2003": ; preds = %"$out_of_gas_2002", %entry - %"$consume_2004" = sub i64 %"$gasrem_2000", 1 - store i64 %"$consume_2004", i64* @_gasrem, align 8 - %"$msgobj_2005_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2005_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2005_salloc_load", i64 81) - %"$msgobj_2005_salloc" = bitcast i8* %"$msgobj_2005_salloc_salloc" to [81 x i8]* - %"$msgobj_2005" = bitcast [81 x i8]* %"$msgobj_2005_salloc" to i8* - store i8 2, i8* %"$msgobj_2005", align 1 - %"$msgobj_fname_2007" = getelementptr i8, i8* %"$msgobj_2005", i32 1 - %"$msgobj_fname_2008" = bitcast i8* %"$msgobj_fname_2007" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2006", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2008", align 8 - %"$msgobj_td_2009" = getelementptr i8, i8* %"$msgobj_2005", i32 17 - %"$msgobj_td_2010" = bitcast i8* %"$msgobj_td_2009" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_2010", align 8 - %"$msgobj_v_2012" = getelementptr i8, i8* %"$msgobj_2005", i32 25 - %"$msgobj_v_2013" = bitcast i8* %"$msgobj_v_2012" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2011", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_2013", align 8 - %"$msgobj_fname_2015" = getelementptr i8, i8* %"$msgobj_2005", i32 41 - %"$msgobj_fname_2016" = bitcast i8* %"$msgobj_fname_2015" to %String* - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2014", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_2016", align 8 - %"$msgobj_td_2017" = getelementptr i8, i8* %"$msgobj_2005", i32 57 - %"$msgobj_td_2018" = bitcast i8* %"$msgobj_td_2017" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_2018", align 8 - %"$msgobj_v_2019" = getelementptr i8, i8* %"$msgobj_2005", i32 65 - %"$msgobj_v_2020" = bitcast i8* %"$msgobj_v_2019" to %String* - store %String %1, %String* %"$msgobj_v_2020", align 8 - store i8* %"$msgobj_2005", i8** %"$retval_223", align 8, !dbg !46 - %"$$retval_223_2022" = load i8*, i8** %"$retval_223", align 8 - ret i8* %"$$retval_223_2022" -} - -define internal i8* @"$fundef_228"(%"$$fundef_228_env_413"* %0, [20 x i8]* %1) !dbg !47 { -entry: - %resolver = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_228_env_node_1957" = getelementptr inbounds %"$$fundef_228_env_413", %"$$fundef_228_env_413"* %0, i32 0, i32 0 - %"$node_envload_1958" = load [32 x i8], [32 x i8]* %"$$fundef_228_env_node_1957", align 1 - %node = alloca [32 x i8], align 1 - store [32 x i8] %"$node_envload_1958", [32 x i8]* %node, align 1 - %"$$fundef_228_env_owner_1959" = getelementptr inbounds %"$$fundef_228_env_413", %"$$fundef_228_env_413"* %0, i32 0, i32 1 - %"$owner_envload_1960" = load [20 x i8], [20 x i8]* %"$$fundef_228_env_owner_1959", align 1 - %owner = alloca [20 x i8], align 1 - store [20 x i8] %"$owner_envload_1960", [20 x i8]* %owner, align 1 - %"$retval_229" = alloca i8*, align 8 - %"$gasrem_1961" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1962" = icmp ugt i64 1, %"$gasrem_1961" - br i1 %"$gascmp_1962", label %"$out_of_gas_1963", label %"$have_gas_1964" - -"$out_of_gas_1963": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1964" - -"$have_gas_1964": ; preds = %"$out_of_gas_1963", %entry - %"$consume_1965" = sub i64 %"$gasrem_1961", 1 - store i64 %"$consume_1965", i64* @_gasrem, align 8 - %"$msgobj_1966_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1966_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1966_salloc_load", i64 185) - %"$msgobj_1966_salloc" = bitcast i8* %"$msgobj_1966_salloc_salloc" to [185 x i8]* - %"$msgobj_1966" = bitcast [185 x i8]* %"$msgobj_1966_salloc" to i8* - store i8 4, i8* %"$msgobj_1966", align 1 - %"$msgobj_fname_1968" = getelementptr i8, i8* %"$msgobj_1966", i32 1 - %"$msgobj_fname_1969" = bitcast i8* %"$msgobj_fname_1968" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1967", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1969", align 8 - %"$msgobj_td_1970" = getelementptr i8, i8* %"$msgobj_1966", i32 17 - %"$msgobj_td_1971" = bitcast i8* %"$msgobj_td_1970" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1971", align 8 - %"$msgobj_v_1973" = getelementptr i8, i8* %"$msgobj_1966", i32 25 - %"$msgobj_v_1974" = bitcast i8* %"$msgobj_v_1973" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1972", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_1974", align 8 - %"$msgobj_fname_1976" = getelementptr i8, i8* %"$msgobj_1966", i32 41 - %"$msgobj_fname_1977" = bitcast i8* %"$msgobj_fname_1976" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1975", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1977", align 8 - %"$msgobj_td_1978" = getelementptr i8, i8* %"$msgobj_1966", i32 57 - %"$msgobj_td_1979" = bitcast i8* %"$msgobj_td_1978" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_1979", align 8 - %"$node_1980" = load [32 x i8], [32 x i8]* %node, align 1 - %"$msgobj_v_1981" = getelementptr i8, i8* %"$msgobj_1966", i32 65 - %"$msgobj_v_1982" = bitcast i8* %"$msgobj_v_1981" to [32 x i8]* - store [32 x i8] %"$node_1980", [32 x i8]* %"$msgobj_v_1982", align 1 - %"$msgobj_fname_1984" = getelementptr i8, i8* %"$msgobj_1966", i32 97 - %"$msgobj_fname_1985" = bitcast i8* %"$msgobj_fname_1984" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1983", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1985", align 8 - %"$msgobj_td_1986" = getelementptr i8, i8* %"$msgobj_1966", i32 113 - %"$msgobj_td_1987" = bitcast i8* %"$msgobj_td_1986" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1987", align 8 - %"$owner_1988" = load [20 x i8], [20 x i8]* %owner, align 1 - %"$msgobj_v_1989" = getelementptr i8, i8* %"$msgobj_1966", i32 121 - %"$msgobj_v_1990" = bitcast i8* %"$msgobj_v_1989" to [20 x i8]* - store [20 x i8] %"$owner_1988", [20 x i8]* %"$msgobj_v_1990", align 1 - %"$msgobj_fname_1992" = getelementptr i8, i8* %"$msgobj_1966", i32 141 - %"$msgobj_fname_1993" = bitcast i8* %"$msgobj_fname_1992" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1991", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_1993", align 8 - %"$msgobj_td_1994" = getelementptr i8, i8* %"$msgobj_1966", i32 157 - %"$msgobj_td_1995" = bitcast i8* %"$msgobj_td_1994" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1995", align 8 - %"$msgobj_v_1996" = getelementptr i8, i8* %"$msgobj_1966", i32 165 - %"$msgobj_v_1997" = bitcast i8* %"$msgobj_v_1996" to [20 x i8]* - store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_1997", align 1 - store i8* %"$msgobj_1966", i8** %"$retval_229", align 8, !dbg !48 - %"$$retval_229_1999" = load i8*, i8** %"$retval_229", align 8 - ret i8* %"$$retval_229_1999" -} - -define internal { i8* (i8*, [20 x i8]*)*, i8* } @"$fundef_226"(%"$$fundef_226_env_414"* %0, [20 x i8]* %1) !dbg !49 { +define internal i8* @"$fundef_125"(%"$$fundef_125_env_291"* %0, %String %1) !dbg !37 { entry: - %owner = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_226_env_node_1942" = getelementptr inbounds %"$$fundef_226_env_414", %"$$fundef_226_env_414"* %0, i32 0, i32 0 - %"$node_envload_1943" = load [32 x i8], [32 x i8]* %"$$fundef_226_env_node_1942", align 1 - %node = alloca [32 x i8], align 1 - store [32 x i8] %"$node_envload_1943", [32 x i8]* %node, align 1 - %"$retval_227" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1944" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1945" = icmp ugt i64 1, %"$gasrem_1944" - br i1 %"$gascmp_1945", label %"$out_of_gas_1946", label %"$have_gas_1947" - -"$out_of_gas_1946": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1947" - -"$have_gas_1947": ; preds = %"$out_of_gas_1946", %entry - %"$consume_1948" = sub i64 %"$gasrem_1944", 1 - store i64 %"$consume_1948", i64* @_gasrem, align 8 - %"$$fundef_228_envp_1949_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_228_envp_1949_salloc" = call i8* @_salloc(i8* %"$$fundef_228_envp_1949_load", i64 52) - %"$$fundef_228_envp_1949" = bitcast i8* %"$$fundef_228_envp_1949_salloc" to %"$$fundef_228_env_413"* - %"$$fundef_228_env_voidp_1951" = bitcast %"$$fundef_228_env_413"* %"$$fundef_228_envp_1949" to i8* - %"$$fundef_228_cloval_1952" = insertvalue { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_228_env_413"*, [20 x i8]*)* @"$fundef_228" to i8* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_228_env_voidp_1951", 1 - %"$$fundef_228_env_node_1953" = getelementptr inbounds %"$$fundef_228_env_413", %"$$fundef_228_env_413"* %"$$fundef_228_envp_1949", i32 0, i32 0 - %"$node_1954" = load [32 x i8], [32 x i8]* %node, align 1 - store [32 x i8] %"$node_1954", [32 x i8]* %"$$fundef_228_env_node_1953", align 1 - %"$$fundef_228_env_owner_1955" = getelementptr inbounds %"$$fundef_228_env_413", %"$$fundef_228_env_413"* %"$$fundef_228_envp_1949", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$$fundef_228_env_owner_1955", align 1 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$fundef_228_cloval_1952", { i8* (i8*, [20 x i8]*)*, i8* }* %"$retval_227", align 8, !dbg !50 - %"$$retval_227_1956" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$retval_227", align 8 - ret { i8* (i8*, [20 x i8]*)*, i8* } %"$$retval_227_1956" + %"$retval_126" = alloca i8*, align 8 + %"$gasrem_1662" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1663" = icmp ugt i64 1, %"$gasrem_1662" + br i1 %"$gascmp_1663", label %"$out_of_gas_1664", label %"$have_gas_1665" + +"$out_of_gas_1664": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1665" + +"$have_gas_1665": ; preds = %"$out_of_gas_1664", %entry + %"$consume_1666" = sub i64 %"$gasrem_1662", 1 + store i64 %"$consume_1666", i64* @_gasrem, align 8 + %"$msgobj_1667_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1667_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1667_salloc_load", i64 81) + %"$msgobj_1667_salloc" = bitcast i8* %"$msgobj_1667_salloc_salloc" to [81 x i8]* + %"$msgobj_1667" = bitcast [81 x i8]* %"$msgobj_1667_salloc" to i8* + store i8 2, i8* %"$msgobj_1667", align 1 + %"$msgobj_fname_1669" = getelementptr i8, i8* %"$msgobj_1667", i32 1 + %"$msgobj_fname_1670" = bitcast i8* %"$msgobj_fname_1669" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1668", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1670", align 8 + %"$msgobj_td_1671" = getelementptr i8, i8* %"$msgobj_1667", i32 17 + %"$msgobj_td_1672" = bitcast i8* %"$msgobj_td_1671" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1672", align 8 + %"$msgobj_v_1674" = getelementptr i8, i8* %"$msgobj_1667", i32 25 + %"$msgobj_v_1675" = bitcast i8* %"$msgobj_v_1674" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1673", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_1675", align 8 + %"$msgobj_fname_1677" = getelementptr i8, i8* %"$msgobj_1667", i32 41 + %"$msgobj_fname_1678" = bitcast i8* %"$msgobj_fname_1677" to %String* + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1676", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_1678", align 8 + %"$msgobj_td_1679" = getelementptr i8, i8* %"$msgobj_1667", i32 57 + %"$msgobj_td_1680" = bitcast i8* %"$msgobj_td_1679" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1680", align 8 + %"$msgobj_v_1681" = getelementptr i8, i8* %"$msgobj_1667", i32 65 + %"$msgobj_v_1682" = bitcast i8* %"$msgobj_v_1681" to %String* + store %String %1, %String* %"$msgobj_v_1682", align 8 + store i8* %"$msgobj_1667", i8** %"$retval_126", align 8, !dbg !38 + %"$$retval_126_1684" = load i8*, i8** %"$retval_126", align 8 + ret i8* %"$$retval_126_1684" } -define internal { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_224"(%"$$fundef_224_env_415"* %0, [32 x i8]* %1) !dbg !51 { +define internal i8* @"$fundef_127"(%"$$fundef_127_env_292"* %0, [32 x i8]* %1, [20 x i8]* %2, [20 x i8]* %3) !dbg !39 { entry: + %resolver = load [20 x i8], [20 x i8]* %3, align 1 + %owner = load [20 x i8], [20 x i8]* %2, align 1 %node = load [32 x i8], [32 x i8]* %1, align 1 - %"$retval_225" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1931" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1932" = icmp ugt i64 1, %"$gasrem_1931" - br i1 %"$gascmp_1932", label %"$out_of_gas_1933", label %"$have_gas_1934" - -"$out_of_gas_1933": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1934" - -"$have_gas_1934": ; preds = %"$out_of_gas_1933", %entry - %"$consume_1935" = sub i64 %"$gasrem_1931", 1 - store i64 %"$consume_1935", i64* @_gasrem, align 8 - %"$$fundef_226_envp_1936_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_226_envp_1936_salloc" = call i8* @_salloc(i8* %"$$fundef_226_envp_1936_load", i64 32) - %"$$fundef_226_envp_1936" = bitcast i8* %"$$fundef_226_envp_1936_salloc" to %"$$fundef_226_env_414"* - %"$$fundef_226_env_voidp_1938" = bitcast %"$$fundef_226_env_414"* %"$$fundef_226_envp_1936" to i8* - %"$$fundef_226_cloval_1939" = insertvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ i8* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_226_env_414"*, [20 x i8]*)* @"$fundef_226" to { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_226_env_voidp_1938", 1 - %"$$fundef_226_env_node_1940" = getelementptr inbounds %"$$fundef_226_env_414", %"$$fundef_226_env_414"* %"$$fundef_226_envp_1936", i32 0, i32 0 - store [32 x i8] %node, [32 x i8]* %"$$fundef_226_env_node_1940", align 1 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_226_cloval_1939", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_225", align 8, !dbg !52 - %"$$retval_225_1941" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_225", align 8 - ret { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_225_1941" -} - -define internal i8* @"$fundef_232"(%"$$fundef_232_env_416"* %0, %String %1) !dbg !53 { -entry: - %"$$fundef_232_env_parent_1898" = getelementptr inbounds %"$$fundef_232_env_416", %"$$fundef_232_env_416"* %0, i32 0, i32 0 - %"$parent_envload_1899" = load [32 x i8], [32 x i8]* %"$$fundef_232_env_parent_1898", align 1 - %parent = alloca [32 x i8], align 1 - store [32 x i8] %"$parent_envload_1899", [32 x i8]* %parent, align 1 - %"$retval_233" = alloca i8*, align 8 - %"$gasrem_1900" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1901" = icmp ugt i64 1, %"$gasrem_1900" - br i1 %"$gascmp_1901", label %"$out_of_gas_1902", label %"$have_gas_1903" - -"$out_of_gas_1902": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1903" - -"$have_gas_1903": ; preds = %"$out_of_gas_1902", %entry - %"$consume_1904" = sub i64 %"$gasrem_1900", 1 - store i64 %"$consume_1904", i64* @_gasrem, align 8 - %"$msgobj_1905_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1905_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1905_salloc_load", i64 137) - %"$msgobj_1905_salloc" = bitcast i8* %"$msgobj_1905_salloc_salloc" to [137 x i8]* - %"$msgobj_1905" = bitcast [137 x i8]* %"$msgobj_1905_salloc" to i8* - store i8 3, i8* %"$msgobj_1905", align 1 - %"$msgobj_fname_1907" = getelementptr i8, i8* %"$msgobj_1905", i32 1 - %"$msgobj_fname_1908" = bitcast i8* %"$msgobj_fname_1907" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1906", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1908", align 8 - %"$msgobj_td_1909" = getelementptr i8, i8* %"$msgobj_1905", i32 17 - %"$msgobj_td_1910" = bitcast i8* %"$msgobj_td_1909" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1910", align 8 - %"$msgobj_v_1912" = getelementptr i8, i8* %"$msgobj_1905", i32 25 - %"$msgobj_v_1913" = bitcast i8* %"$msgobj_v_1912" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_1911", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_1913", align 8 - %"$msgobj_fname_1915" = getelementptr i8, i8* %"$msgobj_1905", i32 41 - %"$msgobj_fname_1916" = bitcast i8* %"$msgobj_fname_1915" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1914", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1916", align 8 - %"$msgobj_td_1917" = getelementptr i8, i8* %"$msgobj_1905", i32 57 - %"$msgobj_td_1918" = bitcast i8* %"$msgobj_td_1917" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_1918", align 8 - %"$parent_1919" = load [32 x i8], [32 x i8]* %parent, align 1 - %"$msgobj_v_1920" = getelementptr i8, i8* %"$msgobj_1905", i32 65 - %"$msgobj_v_1921" = bitcast i8* %"$msgobj_v_1920" to [32 x i8]* - store [32 x i8] %"$parent_1919", [32 x i8]* %"$msgobj_v_1921", align 1 - %"$msgobj_fname_1923" = getelementptr i8, i8* %"$msgobj_1905", i32 97 - %"$msgobj_fname_1924" = bitcast i8* %"$msgobj_fname_1923" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1922", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1924", align 8 - %"$msgobj_td_1925" = getelementptr i8, i8* %"$msgobj_1905", i32 113 - %"$msgobj_td_1926" = bitcast i8* %"$msgobj_td_1925" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1926", align 8 - %"$msgobj_v_1927" = getelementptr i8, i8* %"$msgobj_1905", i32 121 - %"$msgobj_v_1928" = bitcast i8* %"$msgobj_v_1927" to %String* - store %String %1, %String* %"$msgobj_v_1928", align 8 - store i8* %"$msgobj_1905", i8** %"$retval_233", align 8, !dbg !54 - %"$$retval_233_1930" = load i8*, i8** %"$retval_233", align 8 - ret i8* %"$$retval_233_1930" + %"$retval_128" = alloca i8*, align 8 + %"$gasrem_1625" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1626" = icmp ugt i64 1, %"$gasrem_1625" + br i1 %"$gascmp_1626", label %"$out_of_gas_1627", label %"$have_gas_1628" + +"$out_of_gas_1627": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1628" + +"$have_gas_1628": ; preds = %"$out_of_gas_1627", %entry + %"$consume_1629" = sub i64 %"$gasrem_1625", 1 + store i64 %"$consume_1629", i64* @_gasrem, align 8 + %"$msgobj_1630_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1630_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1630_salloc_load", i64 185) + %"$msgobj_1630_salloc" = bitcast i8* %"$msgobj_1630_salloc_salloc" to [185 x i8]* + %"$msgobj_1630" = bitcast [185 x i8]* %"$msgobj_1630_salloc" to i8* + store i8 4, i8* %"$msgobj_1630", align 1 + %"$msgobj_fname_1632" = getelementptr i8, i8* %"$msgobj_1630", i32 1 + %"$msgobj_fname_1633" = bitcast i8* %"$msgobj_fname_1632" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1631", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1633", align 8 + %"$msgobj_td_1634" = getelementptr i8, i8* %"$msgobj_1630", i32 17 + %"$msgobj_td_1635" = bitcast i8* %"$msgobj_td_1634" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1635", align 8 + %"$msgobj_v_1637" = getelementptr i8, i8* %"$msgobj_1630", i32 25 + %"$msgobj_v_1638" = bitcast i8* %"$msgobj_v_1637" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1636", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_1638", align 8 + %"$msgobj_fname_1640" = getelementptr i8, i8* %"$msgobj_1630", i32 41 + %"$msgobj_fname_1641" = bitcast i8* %"$msgobj_fname_1640" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1639", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1641", align 8 + %"$msgobj_td_1642" = getelementptr i8, i8* %"$msgobj_1630", i32 57 + %"$msgobj_td_1643" = bitcast i8* %"$msgobj_td_1642" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_1643", align 8 + %"$msgobj_v_1644" = getelementptr i8, i8* %"$msgobj_1630", i32 65 + %"$msgobj_v_1645" = bitcast i8* %"$msgobj_v_1644" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_1645", align 1 + %"$msgobj_fname_1647" = getelementptr i8, i8* %"$msgobj_1630", i32 97 + %"$msgobj_fname_1648" = bitcast i8* %"$msgobj_fname_1647" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1646", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1648", align 8 + %"$msgobj_td_1649" = getelementptr i8, i8* %"$msgobj_1630", i32 113 + %"$msgobj_td_1650" = bitcast i8* %"$msgobj_td_1649" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1650", align 8 + %"$msgobj_v_1651" = getelementptr i8, i8* %"$msgobj_1630", i32 121 + %"$msgobj_v_1652" = bitcast i8* %"$msgobj_v_1651" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_1652", align 1 + %"$msgobj_fname_1654" = getelementptr i8, i8* %"$msgobj_1630", i32 141 + %"$msgobj_fname_1655" = bitcast i8* %"$msgobj_fname_1654" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1653", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_1655", align 8 + %"$msgobj_td_1656" = getelementptr i8, i8* %"$msgobj_1630", i32 157 + %"$msgobj_td_1657" = bitcast i8* %"$msgobj_td_1656" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1657", align 8 + %"$msgobj_v_1658" = getelementptr i8, i8* %"$msgobj_1630", i32 165 + %"$msgobj_v_1659" = bitcast i8* %"$msgobj_v_1658" to [20 x i8]* + store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_1659", align 1 + store i8* %"$msgobj_1630", i8** %"$retval_128", align 8, !dbg !40 + %"$$retval_128_1661" = load i8*, i8** %"$retval_128", align 8 + ret i8* %"$$retval_128_1661" } -define internal { i8* (i8*, %String)*, i8* } @"$fundef_230"(%"$$fundef_230_env_417"* %0, [32 x i8]* %1) !dbg !55 { +define internal i8* @"$fundef_129"(%"$$fundef_129_env_293"* %0, [32 x i8]* %1, %String %2) !dbg !41 { entry: %parent = load [32 x i8], [32 x i8]* %1, align 1 - %"$retval_231" = alloca { i8* (i8*, %String)*, i8* }, align 8 - %"$gasrem_1887" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1888" = icmp ugt i64 1, %"$gasrem_1887" - br i1 %"$gascmp_1888", label %"$out_of_gas_1889", label %"$have_gas_1890" - -"$out_of_gas_1889": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1890" - -"$have_gas_1890": ; preds = %"$out_of_gas_1889", %entry - %"$consume_1891" = sub i64 %"$gasrem_1887", 1 - store i64 %"$consume_1891", i64* @_gasrem, align 8 - %"$$fundef_232_envp_1892_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_232_envp_1892_salloc" = call i8* @_salloc(i8* %"$$fundef_232_envp_1892_load", i64 32) - %"$$fundef_232_envp_1892" = bitcast i8* %"$$fundef_232_envp_1892_salloc" to %"$$fundef_232_env_416"* - %"$$fundef_232_env_voidp_1894" = bitcast %"$$fundef_232_env_416"* %"$$fundef_232_envp_1892" to i8* - %"$$fundef_232_cloval_1895" = insertvalue { i8* (i8*, %String)*, i8* } { i8* (i8*, %String)* bitcast (i8* (%"$$fundef_232_env_416"*, %String)* @"$fundef_232" to i8* (i8*, %String)*), i8* undef }, i8* %"$$fundef_232_env_voidp_1894", 1 - %"$$fundef_232_env_parent_1896" = getelementptr inbounds %"$$fundef_232_env_416", %"$$fundef_232_env_416"* %"$$fundef_232_envp_1892", i32 0, i32 0 - store [32 x i8] %parent, [32 x i8]* %"$$fundef_232_env_parent_1896", align 1 - store { i8* (i8*, %String)*, i8* } %"$$fundef_232_cloval_1895", { i8* (i8*, %String)*, i8* }* %"$retval_231", align 8, !dbg !56 - %"$$retval_231_1897" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$retval_231", align 8 - ret { i8* (i8*, %String)*, i8* } %"$$retval_231_1897" + %"$retval_130" = alloca i8*, align 8 + %"$gasrem_1595" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1596" = icmp ugt i64 1, %"$gasrem_1595" + br i1 %"$gascmp_1596", label %"$out_of_gas_1597", label %"$have_gas_1598" + +"$out_of_gas_1597": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1598" + +"$have_gas_1598": ; preds = %"$out_of_gas_1597", %entry + %"$consume_1599" = sub i64 %"$gasrem_1595", 1 + store i64 %"$consume_1599", i64* @_gasrem, align 8 + %"$msgobj_1600_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1600_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1600_salloc_load", i64 137) + %"$msgobj_1600_salloc" = bitcast i8* %"$msgobj_1600_salloc_salloc" to [137 x i8]* + %"$msgobj_1600" = bitcast [137 x i8]* %"$msgobj_1600_salloc" to i8* + store i8 3, i8* %"$msgobj_1600", align 1 + %"$msgobj_fname_1602" = getelementptr i8, i8* %"$msgobj_1600", i32 1 + %"$msgobj_fname_1603" = bitcast i8* %"$msgobj_fname_1602" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1601", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1603", align 8 + %"$msgobj_td_1604" = getelementptr i8, i8* %"$msgobj_1600", i32 17 + %"$msgobj_td_1605" = bitcast i8* %"$msgobj_td_1604" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1605", align 8 + %"$msgobj_v_1607" = getelementptr i8, i8* %"$msgobj_1600", i32 25 + %"$msgobj_v_1608" = bitcast i8* %"$msgobj_v_1607" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_1606", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_1608", align 8 + %"$msgobj_fname_1610" = getelementptr i8, i8* %"$msgobj_1600", i32 41 + %"$msgobj_fname_1611" = bitcast i8* %"$msgobj_fname_1610" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1609", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1611", align 8 + %"$msgobj_td_1612" = getelementptr i8, i8* %"$msgobj_1600", i32 57 + %"$msgobj_td_1613" = bitcast i8* %"$msgobj_td_1612" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_1613", align 8 + %"$msgobj_v_1614" = getelementptr i8, i8* %"$msgobj_1600", i32 65 + %"$msgobj_v_1615" = bitcast i8* %"$msgobj_v_1614" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_1615", align 1 + %"$msgobj_fname_1617" = getelementptr i8, i8* %"$msgobj_1600", i32 97 + %"$msgobj_fname_1618" = bitcast i8* %"$msgobj_fname_1617" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1616", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1618", align 8 + %"$msgobj_td_1619" = getelementptr i8, i8* %"$msgobj_1600", i32 113 + %"$msgobj_td_1620" = bitcast i8* %"$msgobj_td_1619" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1620", align 8 + %"$msgobj_v_1621" = getelementptr i8, i8* %"$msgobj_1600", i32 121 + %"$msgobj_v_1622" = bitcast i8* %"$msgobj_v_1621" to %String* + store %String %2, %String* %"$msgobj_v_1622", align 8 + store i8* %"$msgobj_1600", i8** %"$retval_130", align 8, !dbg !42 + %"$$retval_130_1624" = load i8*, i8** %"$retval_130", align 8 + ret i8* %"$$retval_130_1624" } -define internal i8* @"$fundef_234"(%"$$fundef_234_env_418"* %0, [20 x i8]* %1) !dbg !57 { +define internal i8* @"$fundef_131"(%"$$fundef_131_env_294"* %0, [20 x i8]* %1) !dbg !43 { entry: %address = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_235" = alloca i8*, align 8 - %"$gasrem_1864" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1865" = icmp ugt i64 1, %"$gasrem_1864" - br i1 %"$gascmp_1865", label %"$out_of_gas_1866", label %"$have_gas_1867" - -"$out_of_gas_1866": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1867" - -"$have_gas_1867": ; preds = %"$out_of_gas_1866", %entry - %"$consume_1868" = sub i64 %"$gasrem_1864", 1 - store i64 %"$consume_1868", i64* @_gasrem, align 8 - %"$msgobj_1869_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1869_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1869_salloc_load", i64 85) - %"$msgobj_1869_salloc" = bitcast i8* %"$msgobj_1869_salloc_salloc" to [85 x i8]* - %"$msgobj_1869" = bitcast [85 x i8]* %"$msgobj_1869_salloc" to i8* - store i8 2, i8* %"$msgobj_1869", align 1 - %"$msgobj_fname_1871" = getelementptr i8, i8* %"$msgobj_1869", i32 1 - %"$msgobj_fname_1872" = bitcast i8* %"$msgobj_fname_1871" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1870", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1872", align 8 - %"$msgobj_td_1873" = getelementptr i8, i8* %"$msgobj_1869", i32 17 - %"$msgobj_td_1874" = bitcast i8* %"$msgobj_td_1873" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1874", align 8 - %"$msgobj_v_1876" = getelementptr i8, i8* %"$msgobj_1869", i32 25 - %"$msgobj_v_1877" = bitcast i8* %"$msgobj_v_1876" to %String* - store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_1875", i32 0, i32 0), i32 12 }, %String* %"$msgobj_v_1877", align 8 - %"$msgobj_fname_1879" = getelementptr i8, i8* %"$msgobj_1869", i32 41 - %"$msgobj_fname_1880" = bitcast i8* %"$msgobj_fname_1879" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1878", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1880", align 8 - %"$msgobj_td_1881" = getelementptr i8, i8* %"$msgobj_1869", i32 57 - %"$msgobj_td_1882" = bitcast i8* %"$msgobj_td_1881" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1882", align 8 - %"$msgobj_v_1883" = getelementptr i8, i8* %"$msgobj_1869", i32 65 - %"$msgobj_v_1884" = bitcast i8* %"$msgobj_v_1883" to [20 x i8]* - store [20 x i8] %address, [20 x i8]* %"$msgobj_v_1884", align 1 - store i8* %"$msgobj_1869", i8** %"$retval_235", align 8, !dbg !58 - %"$$retval_235_1886" = load i8*, i8** %"$retval_235", align 8 - ret i8* %"$$retval_235_1886" + %"$retval_132" = alloca i8*, align 8 + %"$gasrem_1572" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1573" = icmp ugt i64 1, %"$gasrem_1572" + br i1 %"$gascmp_1573", label %"$out_of_gas_1574", label %"$have_gas_1575" + +"$out_of_gas_1574": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1575" + +"$have_gas_1575": ; preds = %"$out_of_gas_1574", %entry + %"$consume_1576" = sub i64 %"$gasrem_1572", 1 + store i64 %"$consume_1576", i64* @_gasrem, align 8 + %"$msgobj_1577_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1577_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1577_salloc_load", i64 85) + %"$msgobj_1577_salloc" = bitcast i8* %"$msgobj_1577_salloc_salloc" to [85 x i8]* + %"$msgobj_1577" = bitcast [85 x i8]* %"$msgobj_1577_salloc" to i8* + store i8 2, i8* %"$msgobj_1577", align 1 + %"$msgobj_fname_1579" = getelementptr i8, i8* %"$msgobj_1577", i32 1 + %"$msgobj_fname_1580" = bitcast i8* %"$msgobj_fname_1579" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1578", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1580", align 8 + %"$msgobj_td_1581" = getelementptr i8, i8* %"$msgobj_1577", i32 17 + %"$msgobj_td_1582" = bitcast i8* %"$msgobj_td_1581" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1582", align 8 + %"$msgobj_v_1584" = getelementptr i8, i8* %"$msgobj_1577", i32 25 + %"$msgobj_v_1585" = bitcast i8* %"$msgobj_v_1584" to %String* + store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_1583", i32 0, i32 0), i32 12 }, %String* %"$msgobj_v_1585", align 8 + %"$msgobj_fname_1587" = getelementptr i8, i8* %"$msgobj_1577", i32 41 + %"$msgobj_fname_1588" = bitcast i8* %"$msgobj_fname_1587" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1586", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1588", align 8 + %"$msgobj_td_1589" = getelementptr i8, i8* %"$msgobj_1577", i32 57 + %"$msgobj_td_1590" = bitcast i8* %"$msgobj_td_1589" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1590", align 8 + %"$msgobj_v_1591" = getelementptr i8, i8* %"$msgobj_1577", i32 65 + %"$msgobj_v_1592" = bitcast i8* %"$msgobj_v_1591" to [20 x i8]* + store [20 x i8] %address, [20 x i8]* %"$msgobj_v_1592", align 1 + store i8* %"$msgobj_1577", i8** %"$retval_132", align 8, !dbg !44 + %"$$retval_132_1594" = load i8*, i8** %"$retval_132", align 8 + ret i8* %"$$retval_132_1594" } -define internal i8* @"$fundef_236"(%"$$fundef_236_env_419"* %0, [20 x i8]* %1) !dbg !59 { +define internal i8* @"$fundef_133"(%"$$fundef_133_env_295"* %0, [20 x i8]* %1) !dbg !45 { entry: %address = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_237" = alloca i8*, align 8 - %"$gasrem_1841" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1842" = icmp ugt i64 1, %"$gasrem_1841" - br i1 %"$gascmp_1842", label %"$out_of_gas_1843", label %"$have_gas_1844" - -"$out_of_gas_1843": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1844" - -"$have_gas_1844": ; preds = %"$out_of_gas_1843", %entry - %"$consume_1845" = sub i64 %"$gasrem_1841", 1 - store i64 %"$consume_1845", i64* @_gasrem, align 8 - %"$msgobj_1846_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1846_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1846_salloc_load", i64 85) - %"$msgobj_1846_salloc" = bitcast i8* %"$msgobj_1846_salloc_salloc" to [85 x i8]* - %"$msgobj_1846" = bitcast [85 x i8]* %"$msgobj_1846_salloc" to i8* - store i8 2, i8* %"$msgobj_1846", align 1 - %"$msgobj_fname_1848" = getelementptr i8, i8* %"$msgobj_1846", i32 1 - %"$msgobj_fname_1849" = bitcast i8* %"$msgobj_fname_1848" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1847", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1849", align 8 - %"$msgobj_td_1850" = getelementptr i8, i8* %"$msgobj_1846", i32 17 - %"$msgobj_td_1851" = bitcast i8* %"$msgobj_td_1850" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1851", align 8 - %"$msgobj_v_1853" = getelementptr i8, i8* %"$msgobj_1846", i32 25 - %"$msgobj_v_1854" = bitcast i8* %"$msgobj_v_1853" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1852", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_1854", align 8 - %"$msgobj_fname_1856" = getelementptr i8, i8* %"$msgobj_1846", i32 41 - %"$msgobj_fname_1857" = bitcast i8* %"$msgobj_fname_1856" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1855", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1857", align 8 - %"$msgobj_td_1858" = getelementptr i8, i8* %"$msgobj_1846", i32 57 - %"$msgobj_td_1859" = bitcast i8* %"$msgobj_td_1858" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1859", align 8 - %"$msgobj_v_1860" = getelementptr i8, i8* %"$msgobj_1846", i32 65 - %"$msgobj_v_1861" = bitcast i8* %"$msgobj_v_1860" to [20 x i8]* - store [20 x i8] %address, [20 x i8]* %"$msgobj_v_1861", align 1 - store i8* %"$msgobj_1846", i8** %"$retval_237", align 8, !dbg !60 - %"$$retval_237_1863" = load i8*, i8** %"$retval_237", align 8 - ret i8* %"$$retval_237_1863" + %"$retval_134" = alloca i8*, align 8 + %"$gasrem_1549" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1550" = icmp ugt i64 1, %"$gasrem_1549" + br i1 %"$gascmp_1550", label %"$out_of_gas_1551", label %"$have_gas_1552" + +"$out_of_gas_1551": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1552" + +"$have_gas_1552": ; preds = %"$out_of_gas_1551", %entry + %"$consume_1553" = sub i64 %"$gasrem_1549", 1 + store i64 %"$consume_1553", i64* @_gasrem, align 8 + %"$msgobj_1554_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1554_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1554_salloc_load", i64 85) + %"$msgobj_1554_salloc" = bitcast i8* %"$msgobj_1554_salloc_salloc" to [85 x i8]* + %"$msgobj_1554" = bitcast [85 x i8]* %"$msgobj_1554_salloc" to i8* + store i8 2, i8* %"$msgobj_1554", align 1 + %"$msgobj_fname_1556" = getelementptr i8, i8* %"$msgobj_1554", i32 1 + %"$msgobj_fname_1557" = bitcast i8* %"$msgobj_fname_1556" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1555", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1557", align 8 + %"$msgobj_td_1558" = getelementptr i8, i8* %"$msgobj_1554", i32 17 + %"$msgobj_td_1559" = bitcast i8* %"$msgobj_td_1558" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1559", align 8 + %"$msgobj_v_1561" = getelementptr i8, i8* %"$msgobj_1554", i32 25 + %"$msgobj_v_1562" = bitcast i8* %"$msgobj_v_1561" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1560", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_1562", align 8 + %"$msgobj_fname_1564" = getelementptr i8, i8* %"$msgobj_1554", i32 41 + %"$msgobj_fname_1565" = bitcast i8* %"$msgobj_fname_1564" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1563", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1565", align 8 + %"$msgobj_td_1566" = getelementptr i8, i8* %"$msgobj_1554", i32 57 + %"$msgobj_td_1567" = bitcast i8* %"$msgobj_td_1566" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1567", align 8 + %"$msgobj_v_1568" = getelementptr i8, i8* %"$msgobj_1554", i32 65 + %"$msgobj_v_1569" = bitcast i8* %"$msgobj_v_1568" to [20 x i8]* + store [20 x i8] %address, [20 x i8]* %"$msgobj_v_1569", align 1 + store i8* %"$msgobj_1554", i8** %"$retval_134", align 8, !dbg !46 + %"$$retval_134_1571" = load i8*, i8** %"$retval_134", align 8 + ret i8* %"$$retval_134_1571" } -define internal i8* @"$fundef_242"(%"$$fundef_242_env_420"* %0, %TName_Bool* %1) !dbg !61 { -entry: - %"$$fundef_242_env_operator_1798" = getelementptr inbounds %"$$fundef_242_env_420", %"$$fundef_242_env_420"* %0, i32 0, i32 0 - %"$operator_envload_1799" = load [20 x i8], [20 x i8]* %"$$fundef_242_env_operator_1798", align 1 - %operator = alloca [20 x i8], align 1 - store [20 x i8] %"$operator_envload_1799", [20 x i8]* %operator, align 1 - %"$$fundef_242_env_user_1800" = getelementptr inbounds %"$$fundef_242_env_420", %"$$fundef_242_env_420"* %0, i32 0, i32 1 - %"$user_envload_1801" = load [20 x i8], [20 x i8]* %"$$fundef_242_env_user_1800", align 1 - %user = alloca [20 x i8], align 1 - store [20 x i8] %"$user_envload_1801", [20 x i8]* %user, align 1 - %"$retval_243" = alloca i8*, align 8 - %"$gasrem_1802" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1803" = icmp ugt i64 1, %"$gasrem_1802" - br i1 %"$gascmp_1803", label %"$out_of_gas_1804", label %"$have_gas_1805" - -"$out_of_gas_1804": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1805" - -"$have_gas_1805": ; preds = %"$out_of_gas_1804", %entry - %"$consume_1806" = sub i64 %"$gasrem_1802", 1 - store i64 %"$consume_1806", i64* @_gasrem, align 8 - %"$msgobj_1807_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1807_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1807_salloc_load", i64 161) - %"$msgobj_1807_salloc" = bitcast i8* %"$msgobj_1807_salloc_salloc" to [161 x i8]* - %"$msgobj_1807" = bitcast [161 x i8]* %"$msgobj_1807_salloc" to i8* - store i8 4, i8* %"$msgobj_1807", align 1 - %"$msgobj_fname_1809" = getelementptr i8, i8* %"$msgobj_1807", i32 1 - %"$msgobj_fname_1810" = bitcast i8* %"$msgobj_fname_1809" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1808", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1810", align 8 - %"$msgobj_td_1811" = getelementptr i8, i8* %"$msgobj_1807", i32 17 - %"$msgobj_td_1812" = bitcast i8* %"$msgobj_td_1811" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1812", align 8 - %"$msgobj_v_1814" = getelementptr i8, i8* %"$msgobj_1807", i32 25 - %"$msgobj_v_1815" = bitcast i8* %"$msgobj_v_1814" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1813", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1815", align 8 - %"$msgobj_fname_1817" = getelementptr i8, i8* %"$msgobj_1807", i32 41 - %"$msgobj_fname_1818" = bitcast i8* %"$msgobj_fname_1817" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1816", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1818", align 8 - %"$msgobj_td_1819" = getelementptr i8, i8* %"$msgobj_1807", i32 57 - %"$msgobj_td_1820" = bitcast i8* %"$msgobj_td_1819" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1820", align 8 - %"$user_1821" = load [20 x i8], [20 x i8]* %user, align 1 - %"$msgobj_v_1822" = getelementptr i8, i8* %"$msgobj_1807", i32 65 - %"$msgobj_v_1823" = bitcast i8* %"$msgobj_v_1822" to [20 x i8]* - store [20 x i8] %"$user_1821", [20 x i8]* %"$msgobj_v_1823", align 1 - %"$msgobj_fname_1825" = getelementptr i8, i8* %"$msgobj_1807", i32 85 - %"$msgobj_fname_1826" = bitcast i8* %"$msgobj_fname_1825" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1824", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_1826", align 8 - %"$msgobj_td_1827" = getelementptr i8, i8* %"$msgobj_1807", i32 101 - %"$msgobj_td_1828" = bitcast i8* %"$msgobj_td_1827" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1828", align 8 - %"$operator_1829" = load [20 x i8], [20 x i8]* %operator, align 1 - %"$msgobj_v_1830" = getelementptr i8, i8* %"$msgobj_1807", i32 109 - %"$msgobj_v_1831" = bitcast i8* %"$msgobj_v_1830" to [20 x i8]* - store [20 x i8] %"$operator_1829", [20 x i8]* %"$msgobj_v_1831", align 1 - %"$msgobj_fname_1833" = getelementptr i8, i8* %"$msgobj_1807", i32 129 - %"$msgobj_fname_1834" = bitcast i8* %"$msgobj_fname_1833" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1832", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1834", align 8 - %"$msgobj_td_1835" = getelementptr i8, i8* %"$msgobj_1807", i32 145 - %"$msgobj_td_1836" = bitcast i8* %"$msgobj_td_1835" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321", %_TyDescrTy_Typ** %"$msgobj_td_1836", align 8 - %"$msgobj_v_1837" = getelementptr i8, i8* %"$msgobj_1807", i32 153 - %"$msgobj_v_1838" = bitcast i8* %"$msgobj_v_1837" to %TName_Bool** - store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_1838", align 8 - store i8* %"$msgobj_1807", i8** %"$retval_243", align 8, !dbg !62 - %"$$retval_243_1840" = load i8*, i8** %"$retval_243", align 8 - ret i8* %"$$retval_243_1840" -} - -define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_240"(%"$$fundef_240_env_421"* %0, [20 x i8]* %1) !dbg !63 { -entry: - %operator = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_240_env_user_1783" = getelementptr inbounds %"$$fundef_240_env_421", %"$$fundef_240_env_421"* %0, i32 0, i32 0 - %"$user_envload_1784" = load [20 x i8], [20 x i8]* %"$$fundef_240_env_user_1783", align 1 - %user = alloca [20 x i8], align 1 - store [20 x i8] %"$user_envload_1784", [20 x i8]* %user, align 1 - %"$retval_241" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_1785" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1786" = icmp ugt i64 1, %"$gasrem_1785" - br i1 %"$gascmp_1786", label %"$out_of_gas_1787", label %"$have_gas_1788" - -"$out_of_gas_1787": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1788" - -"$have_gas_1788": ; preds = %"$out_of_gas_1787", %entry - %"$consume_1789" = sub i64 %"$gasrem_1785", 1 - store i64 %"$consume_1789", i64* @_gasrem, align 8 - %"$$fundef_242_envp_1790_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_242_envp_1790_salloc" = call i8* @_salloc(i8* %"$$fundef_242_envp_1790_load", i64 40) - %"$$fundef_242_envp_1790" = bitcast i8* %"$$fundef_242_envp_1790_salloc" to %"$$fundef_242_env_420"* - %"$$fundef_242_env_voidp_1792" = bitcast %"$$fundef_242_env_420"* %"$$fundef_242_envp_1790" to i8* - %"$$fundef_242_cloval_1793" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_242_env_420"*, %TName_Bool*)* @"$fundef_242" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_242_env_voidp_1792", 1 - %"$$fundef_242_env_operator_1794" = getelementptr inbounds %"$$fundef_242_env_420", %"$$fundef_242_env_420"* %"$$fundef_242_envp_1790", i32 0, i32 0 - store [20 x i8] %operator, [20 x i8]* %"$$fundef_242_env_operator_1794", align 1 - %"$$fundef_242_env_user_1795" = getelementptr inbounds %"$$fundef_242_env_420", %"$$fundef_242_env_420"* %"$$fundef_242_envp_1790", i32 0, i32 1 - %"$user_1796" = load [20 x i8], [20 x i8]* %user, align 1 - store [20 x i8] %"$user_1796", [20 x i8]* %"$$fundef_242_env_user_1795", align 1 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_242_cloval_1793", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_241", align 8, !dbg !64 - %"$$retval_241_1797" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_241", align 8 - ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_241_1797" -} - -define internal { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_238"(%"$$fundef_238_env_422"* %0, [20 x i8]* %1) !dbg !65 { +define internal i8* @"$fundef_135"(%"$$fundef_135_env_296"* %0, [20 x i8]* %1, [20 x i8]* %2, %TName_Bool* %3) !dbg !47 { entry: + %operator = load [20 x i8], [20 x i8]* %2, align 1 %user = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_239" = alloca { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1772" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1773" = icmp ugt i64 1, %"$gasrem_1772" - br i1 %"$gascmp_1773", label %"$out_of_gas_1774", label %"$have_gas_1775" - -"$out_of_gas_1774": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1775" - -"$have_gas_1775": ; preds = %"$out_of_gas_1774", %entry - %"$consume_1776" = sub i64 %"$gasrem_1772", 1 - store i64 %"$consume_1776", i64* @_gasrem, align 8 - %"$$fundef_240_envp_1777_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_240_envp_1777_salloc" = call i8* @_salloc(i8* %"$$fundef_240_envp_1777_load", i64 20) - %"$$fundef_240_envp_1777" = bitcast i8* %"$$fundef_240_envp_1777_salloc" to %"$$fundef_240_env_421"* - %"$$fundef_240_env_voidp_1779" = bitcast %"$$fundef_240_env_421"* %"$$fundef_240_envp_1777" to i8* - %"$$fundef_240_cloval_1780" = insertvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ i8* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_240_env_421"*, [20 x i8]*)* @"$fundef_240" to { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_240_env_voidp_1779", 1 - %"$$fundef_240_env_user_1781" = getelementptr inbounds %"$$fundef_240_env_421", %"$$fundef_240_env_421"* %"$$fundef_240_envp_1777", i32 0, i32 0 - store [20 x i8] %user, [20 x i8]* %"$$fundef_240_env_user_1781", align 1 - store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_240_cloval_1780", { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_239", align 8, !dbg !66 - %"$$retval_239_1782" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_239", align 8 - ret { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_239_1782" -} - -define internal i8* @"$fundef_246"(%"$$fundef_246_env_423"* %0, %TName_Bool* %1) !dbg !67 { -entry: - %"$$fundef_246_env_address_1739" = getelementptr inbounds %"$$fundef_246_env_423", %"$$fundef_246_env_423"* %0, i32 0, i32 0 - %"$address_envload_1740" = load [20 x i8], [20 x i8]* %"$$fundef_246_env_address_1739", align 1 - %address = alloca [20 x i8], align 1 - store [20 x i8] %"$address_envload_1740", [20 x i8]* %address, align 1 - %"$retval_247" = alloca i8*, align 8 - %"$gasrem_1741" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1742" = icmp ugt i64 1, %"$gasrem_1741" - br i1 %"$gascmp_1742", label %"$out_of_gas_1743", label %"$have_gas_1744" - -"$out_of_gas_1743": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1744" - -"$have_gas_1744": ; preds = %"$out_of_gas_1743", %entry - %"$consume_1745" = sub i64 %"$gasrem_1741", 1 - store i64 %"$consume_1745", i64* @_gasrem, align 8 - %"$msgobj_1746_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1746_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1746_salloc_load", i64 117) - %"$msgobj_1746_salloc" = bitcast i8* %"$msgobj_1746_salloc_salloc" to [117 x i8]* - %"$msgobj_1746" = bitcast [117 x i8]* %"$msgobj_1746_salloc" to i8* - store i8 3, i8* %"$msgobj_1746", align 1 - %"$msgobj_fname_1748" = getelementptr i8, i8* %"$msgobj_1746", i32 1 - %"$msgobj_fname_1749" = bitcast i8* %"$msgobj_fname_1748" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1747", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1749", align 8 - %"$msgobj_td_1750" = getelementptr i8, i8* %"$msgobj_1746", i32 17 - %"$msgobj_td_1751" = bitcast i8* %"$msgobj_td_1750" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1751", align 8 - %"$msgobj_v_1753" = getelementptr i8, i8* %"$msgobj_1746", i32 25 - %"$msgobj_v_1754" = bitcast i8* %"$msgobj_v_1753" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1752", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_1754", align 8 - %"$msgobj_fname_1756" = getelementptr i8, i8* %"$msgobj_1746", i32 41 - %"$msgobj_fname_1757" = bitcast i8* %"$msgobj_fname_1756" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1755", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1757", align 8 - %"$msgobj_td_1758" = getelementptr i8, i8* %"$msgobj_1746", i32 57 - %"$msgobj_td_1759" = bitcast i8* %"$msgobj_td_1758" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1759", align 8 - %"$address_1760" = load [20 x i8], [20 x i8]* %address, align 1 - %"$msgobj_v_1761" = getelementptr i8, i8* %"$msgobj_1746", i32 65 - %"$msgobj_v_1762" = bitcast i8* %"$msgobj_v_1761" to [20 x i8]* - store [20 x i8] %"$address_1760", [20 x i8]* %"$msgobj_v_1762", align 1 - %"$msgobj_fname_1764" = getelementptr i8, i8* %"$msgobj_1746", i32 85 - %"$msgobj_fname_1765" = bitcast i8* %"$msgobj_fname_1764" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1763", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1765", align 8 - %"$msgobj_td_1766" = getelementptr i8, i8* %"$msgobj_1746", i32 101 - %"$msgobj_td_1767" = bitcast i8* %"$msgobj_td_1766" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321", %_TyDescrTy_Typ** %"$msgobj_td_1767", align 8 - %"$msgobj_v_1768" = getelementptr i8, i8* %"$msgobj_1746", i32 109 - %"$msgobj_v_1769" = bitcast i8* %"$msgobj_v_1768" to %TName_Bool** - store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_1769", align 8 - store i8* %"$msgobj_1746", i8** %"$retval_247", align 8, !dbg !68 - %"$$retval_247_1771" = load i8*, i8** %"$retval_247", align 8 - ret i8* %"$$retval_247_1771" + %"$retval_136" = alloca i8*, align 8 + %"$gasrem_1512" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1513" = icmp ugt i64 1, %"$gasrem_1512" + br i1 %"$gascmp_1513", label %"$out_of_gas_1514", label %"$have_gas_1515" + +"$out_of_gas_1514": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1515" + +"$have_gas_1515": ; preds = %"$out_of_gas_1514", %entry + %"$consume_1516" = sub i64 %"$gasrem_1512", 1 + store i64 %"$consume_1516", i64* @_gasrem, align 8 + %"$msgobj_1517_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1517_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1517_salloc_load", i64 161) + %"$msgobj_1517_salloc" = bitcast i8* %"$msgobj_1517_salloc_salloc" to [161 x i8]* + %"$msgobj_1517" = bitcast [161 x i8]* %"$msgobj_1517_salloc" to i8* + store i8 4, i8* %"$msgobj_1517", align 1 + %"$msgobj_fname_1519" = getelementptr i8, i8* %"$msgobj_1517", i32 1 + %"$msgobj_fname_1520" = bitcast i8* %"$msgobj_fname_1519" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1518", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1520", align 8 + %"$msgobj_td_1521" = getelementptr i8, i8* %"$msgobj_1517", i32 17 + %"$msgobj_td_1522" = bitcast i8* %"$msgobj_td_1521" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1522", align 8 + %"$msgobj_v_1524" = getelementptr i8, i8* %"$msgobj_1517", i32 25 + %"$msgobj_v_1525" = bitcast i8* %"$msgobj_v_1524" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1523", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1525", align 8 + %"$msgobj_fname_1527" = getelementptr i8, i8* %"$msgobj_1517", i32 41 + %"$msgobj_fname_1528" = bitcast i8* %"$msgobj_fname_1527" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1526", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1528", align 8 + %"$msgobj_td_1529" = getelementptr i8, i8* %"$msgobj_1517", i32 57 + %"$msgobj_td_1530" = bitcast i8* %"$msgobj_td_1529" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1530", align 8 + %"$msgobj_v_1531" = getelementptr i8, i8* %"$msgobj_1517", i32 65 + %"$msgobj_v_1532" = bitcast i8* %"$msgobj_v_1531" to [20 x i8]* + store [20 x i8] %user, [20 x i8]* %"$msgobj_v_1532", align 1 + %"$msgobj_fname_1534" = getelementptr i8, i8* %"$msgobj_1517", i32 85 + %"$msgobj_fname_1535" = bitcast i8* %"$msgobj_fname_1534" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1533", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_1535", align 8 + %"$msgobj_td_1536" = getelementptr i8, i8* %"$msgobj_1517", i32 101 + %"$msgobj_td_1537" = bitcast i8* %"$msgobj_td_1536" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1537", align 8 + %"$msgobj_v_1538" = getelementptr i8, i8* %"$msgobj_1517", i32 109 + %"$msgobj_v_1539" = bitcast i8* %"$msgobj_v_1538" to [20 x i8]* + store [20 x i8] %operator, [20 x i8]* %"$msgobj_v_1539", align 1 + %"$msgobj_fname_1541" = getelementptr i8, i8* %"$msgobj_1517", i32 129 + %"$msgobj_fname_1542" = bitcast i8* %"$msgobj_fname_1541" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1540", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1542", align 8 + %"$msgobj_td_1543" = getelementptr i8, i8* %"$msgobj_1517", i32 145 + %"$msgobj_td_1544" = bitcast i8* %"$msgobj_td_1543" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204", %_TyDescrTy_Typ** %"$msgobj_td_1544", align 8 + %"$msgobj_v_1545" = getelementptr i8, i8* %"$msgobj_1517", i32 153 + %"$msgobj_v_1546" = bitcast i8* %"$msgobj_v_1545" to %TName_Bool** + store %TName_Bool* %3, %TName_Bool** %"$msgobj_v_1546", align 8 + store i8* %"$msgobj_1517", i8** %"$retval_136", align 8, !dbg !48 + %"$$retval_136_1548" = load i8*, i8** %"$retval_136", align 8 + ret i8* %"$$retval_136_1548" } -define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_244"(%"$$fundef_244_env_424"* %0, [20 x i8]* %1) !dbg !69 { +define internal i8* @"$fundef_137"(%"$$fundef_137_env_297"* %0, [20 x i8]* %1, %TName_Bool* %2) !dbg !49 { entry: %address = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_245" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_1728" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1729" = icmp ugt i64 1, %"$gasrem_1728" - br i1 %"$gascmp_1729", label %"$out_of_gas_1730", label %"$have_gas_1731" - -"$out_of_gas_1730": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1731" - -"$have_gas_1731": ; preds = %"$out_of_gas_1730", %entry - %"$consume_1732" = sub i64 %"$gasrem_1728", 1 - store i64 %"$consume_1732", i64* @_gasrem, align 8 - %"$$fundef_246_envp_1733_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_246_envp_1733_salloc" = call i8* @_salloc(i8* %"$$fundef_246_envp_1733_load", i64 20) - %"$$fundef_246_envp_1733" = bitcast i8* %"$$fundef_246_envp_1733_salloc" to %"$$fundef_246_env_423"* - %"$$fundef_246_env_voidp_1735" = bitcast %"$$fundef_246_env_423"* %"$$fundef_246_envp_1733" to i8* - %"$$fundef_246_cloval_1736" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_246_env_423"*, %TName_Bool*)* @"$fundef_246" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_246_env_voidp_1735", 1 - %"$$fundef_246_env_address_1737" = getelementptr inbounds %"$$fundef_246_env_423", %"$$fundef_246_env_423"* %"$$fundef_246_envp_1733", i32 0, i32 0 - store [20 x i8] %address, [20 x i8]* %"$$fundef_246_env_address_1737", align 1 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_246_cloval_1736", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_245", align 8, !dbg !70 - %"$$retval_245_1738" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_245", align 8 - ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_245_1738" + %"$retval_138" = alloca i8*, align 8 + %"$gasrem_1482" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1483" = icmp ugt i64 1, %"$gasrem_1482" + br i1 %"$gascmp_1483", label %"$out_of_gas_1484", label %"$have_gas_1485" + +"$out_of_gas_1484": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1485" + +"$have_gas_1485": ; preds = %"$out_of_gas_1484", %entry + %"$consume_1486" = sub i64 %"$gasrem_1482", 1 + store i64 %"$consume_1486", i64* @_gasrem, align 8 + %"$msgobj_1487_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1487_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1487_salloc_load", i64 117) + %"$msgobj_1487_salloc" = bitcast i8* %"$msgobj_1487_salloc_salloc" to [117 x i8]* + %"$msgobj_1487" = bitcast [117 x i8]* %"$msgobj_1487_salloc" to i8* + store i8 3, i8* %"$msgobj_1487", align 1 + %"$msgobj_fname_1489" = getelementptr i8, i8* %"$msgobj_1487", i32 1 + %"$msgobj_fname_1490" = bitcast i8* %"$msgobj_fname_1489" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1488", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1490", align 8 + %"$msgobj_td_1491" = getelementptr i8, i8* %"$msgobj_1487", i32 17 + %"$msgobj_td_1492" = bitcast i8* %"$msgobj_td_1491" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1492", align 8 + %"$msgobj_v_1494" = getelementptr i8, i8* %"$msgobj_1487", i32 25 + %"$msgobj_v_1495" = bitcast i8* %"$msgobj_v_1494" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1493", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_1495", align 8 + %"$msgobj_fname_1497" = getelementptr i8, i8* %"$msgobj_1487", i32 41 + %"$msgobj_fname_1498" = bitcast i8* %"$msgobj_fname_1497" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1496", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1498", align 8 + %"$msgobj_td_1499" = getelementptr i8, i8* %"$msgobj_1487", i32 57 + %"$msgobj_td_1500" = bitcast i8* %"$msgobj_td_1499" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1500", align 8 + %"$msgobj_v_1501" = getelementptr i8, i8* %"$msgobj_1487", i32 65 + %"$msgobj_v_1502" = bitcast i8* %"$msgobj_v_1501" to [20 x i8]* + store [20 x i8] %address, [20 x i8]* %"$msgobj_v_1502", align 1 + %"$msgobj_fname_1504" = getelementptr i8, i8* %"$msgobj_1487", i32 85 + %"$msgobj_fname_1505" = bitcast i8* %"$msgobj_fname_1504" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1503", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1505", align 8 + %"$msgobj_td_1506" = getelementptr i8, i8* %"$msgobj_1487", i32 101 + %"$msgobj_td_1507" = bitcast i8* %"$msgobj_td_1506" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204", %_TyDescrTy_Typ** %"$msgobj_td_1507", align 8 + %"$msgobj_v_1508" = getelementptr i8, i8* %"$msgobj_1487", i32 109 + %"$msgobj_v_1509" = bitcast i8* %"$msgobj_v_1508" to %TName_Bool** + store %TName_Bool* %2, %TName_Bool** %"$msgobj_v_1509", align 8 + store i8* %"$msgobj_1487", i8** %"$retval_138", align 8, !dbg !50 + %"$$retval_138_1511" = load i8*, i8** %"$retval_138", align 8 + ret i8* %"$$retval_138_1511" } -define internal %TName_Bool* @"$fundef_250"(%"$$fundef_250_env_425"* %0, %TName_Bool* %1) !dbg !71 { +define internal %TName_Bool* @"$fundef_139"(%"$$fundef_139_env_298"* %0, %TName_Bool* %1, %TName_Bool* %2) !dbg !51 { entry: - %"$$fundef_250_env_b1_1653" = getelementptr inbounds %"$$fundef_250_env_425", %"$$fundef_250_env_425"* %0, i32 0, i32 0 - %"$b1_envload_1654" = load %TName_Bool*, %TName_Bool** %"$$fundef_250_env_b1_1653", align 8 - %b1 = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b1_envload_1654", %TName_Bool** %b1, align 8 - %"$retval_251" = alloca %TName_Bool*, align 8 - %"$gasrem_1655" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1656" = icmp ugt i64 2, %"$gasrem_1655" - br i1 %"$gascmp_1656", label %"$out_of_gas_1657", label %"$have_gas_1658" - -"$out_of_gas_1657": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1658" - -"$have_gas_1658": ; preds = %"$out_of_gas_1657", %entry - %"$consume_1659" = sub i64 %"$gasrem_1655", 2 - store i64 %"$consume_1659", i64* @_gasrem, align 8 - %"$b1_1661" = load %TName_Bool*, %TName_Bool** %b1, align 8 - %"$b1_tag_1662" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b1_1661", i32 0, i32 0 - %"$b1_tag_1663" = load i8, i8* %"$b1_tag_1662", align 1 - switch i8 %"$b1_tag_1663", label %"$empty_default_1664" [ - i8 0, label %"$True_1665" - i8 1, label %"$False_1696" - ], !dbg !72 - -"$True_1665": ; preds = %"$have_gas_1658" - %"$b1_1666" = bitcast %TName_Bool* %"$b1_1661" to %CName_True* - %"$gasrem_1667" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1668" = icmp ugt i64 2, %"$gasrem_1667" - br i1 %"$gascmp_1668", label %"$out_of_gas_1669", label %"$have_gas_1670" - -"$out_of_gas_1669": ; preds = %"$True_1665" - call void @_out_of_gas() - br label %"$have_gas_1670" - -"$have_gas_1670": ; preds = %"$out_of_gas_1669", %"$True_1665" - %"$consume_1671" = sub i64 %"$gasrem_1667", 2 - store i64 %"$consume_1671", i64* @_gasrem, align 8 - %"$b2_tag_1673" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b2_tag_1674" = load i8, i8* %"$b2_tag_1673", align 1 - switch i8 %"$b2_tag_1674", label %"$empty_default_1675" [ - i8 0, label %"$True_1676" - i8 1, label %"$False_1686" - ], !dbg !73 - -"$True_1676": ; preds = %"$have_gas_1670" - %"$b2_1677" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_1678" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1679" = icmp ugt i64 1, %"$gasrem_1678" - br i1 %"$gascmp_1679", label %"$out_of_gas_1680", label %"$have_gas_1681" - -"$out_of_gas_1680": ; preds = %"$True_1676" - call void @_out_of_gas() - br label %"$have_gas_1681" - -"$have_gas_1681": ; preds = %"$out_of_gas_1680", %"$True_1676" - %"$consume_1682" = sub i64 %"$gasrem_1678", 1 - store i64 %"$consume_1682", i64* @_gasrem, align 8 - %"$adtval_1683_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1683_salloc" = call i8* @_salloc(i8* %"$adtval_1683_load", i64 1) - %"$adtval_1683" = bitcast i8* %"$adtval_1683_salloc" to %CName_True* - %"$adtgep_1684" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1683", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1684", align 1 - %"$adtptr_1685" = bitcast %CName_True* %"$adtval_1683" to %TName_Bool* - store %TName_Bool* %"$adtptr_1685", %TName_Bool** %"$retval_251", align 8, !dbg !76 - br label %"$matchsucc_1672" - -"$False_1686": ; preds = %"$have_gas_1670" - %"$b2_1687" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_1688" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1689" = icmp ugt i64 1, %"$gasrem_1688" - br i1 %"$gascmp_1689", label %"$out_of_gas_1690", label %"$have_gas_1691" - -"$out_of_gas_1690": ; preds = %"$False_1686" - call void @_out_of_gas() - br label %"$have_gas_1691" - -"$have_gas_1691": ; preds = %"$out_of_gas_1690", %"$False_1686" - %"$consume_1692" = sub i64 %"$gasrem_1688", 1 - store i64 %"$consume_1692", i64* @_gasrem, align 8 - %"$adtval_1693_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1693_salloc" = call i8* @_salloc(i8* %"$adtval_1693_load", i64 1) - %"$adtval_1693" = bitcast i8* %"$adtval_1693_salloc" to %CName_False* - %"$adtgep_1694" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1693", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1694", align 1 - %"$adtptr_1695" = bitcast %CName_False* %"$adtval_1693" to %TName_Bool* - store %TName_Bool* %"$adtptr_1695", %TName_Bool** %"$retval_251", align 8, !dbg !79 - br label %"$matchsucc_1672" - -"$empty_default_1675": ; preds = %"$have_gas_1670" - br label %"$matchsucc_1672" - -"$matchsucc_1672": ; preds = %"$have_gas_1691", %"$have_gas_1681", %"$empty_default_1675" - br label %"$matchsucc_1660" - -"$False_1696": ; preds = %"$have_gas_1658" - %"$b1_1697" = bitcast %TName_Bool* %"$b1_1661" to %CName_False* - %"$gasrem_1698" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1699" = icmp ugt i64 2, %"$gasrem_1698" - br i1 %"$gascmp_1699", label %"$out_of_gas_1700", label %"$have_gas_1701" + %"$retval_140" = alloca %TName_Bool*, align 8 + %"$gasrem_1410" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1411" = icmp ugt i64 2, %"$gasrem_1410" + br i1 %"$gascmp_1411", label %"$out_of_gas_1412", label %"$have_gas_1413" + +"$out_of_gas_1412": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1413" + +"$have_gas_1413": ; preds = %"$out_of_gas_1412", %entry + %"$consume_1414" = sub i64 %"$gasrem_1410", 2 + store i64 %"$consume_1414", i64* @_gasrem, align 8 + %"$b1_tag_1416" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b1_tag_1417" = load i8, i8* %"$b1_tag_1416", align 1 + switch i8 %"$b1_tag_1417", label %"$empty_default_1418" [ + i8 0, label %"$True_1419" + i8 1, label %"$False_1450" + ], !dbg !52 + +"$True_1419": ; preds = %"$have_gas_1413" + %"$b1_1420" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_1421" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1422" = icmp ugt i64 2, %"$gasrem_1421" + br i1 %"$gascmp_1422", label %"$out_of_gas_1423", label %"$have_gas_1424" + +"$out_of_gas_1423": ; preds = %"$True_1419" + call void @_out_of_gas() + br label %"$have_gas_1424" + +"$have_gas_1424": ; preds = %"$out_of_gas_1423", %"$True_1419" + %"$consume_1425" = sub i64 %"$gasrem_1421", 2 + store i64 %"$consume_1425", i64* @_gasrem, align 8 + %"$b2_tag_1427" = getelementptr inbounds %TName_Bool, %TName_Bool* %2, i32 0, i32 0 + %"$b2_tag_1428" = load i8, i8* %"$b2_tag_1427", align 1 + switch i8 %"$b2_tag_1428", label %"$empty_default_1429" [ + i8 0, label %"$True_1430" + i8 1, label %"$False_1440" + ], !dbg !53 + +"$True_1430": ; preds = %"$have_gas_1424" + %"$b2_1431" = bitcast %TName_Bool* %2 to %CName_True* + %"$gasrem_1432" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1433" = icmp ugt i64 1, %"$gasrem_1432" + br i1 %"$gascmp_1433", label %"$out_of_gas_1434", label %"$have_gas_1435" + +"$out_of_gas_1434": ; preds = %"$True_1430" + call void @_out_of_gas() + br label %"$have_gas_1435" + +"$have_gas_1435": ; preds = %"$out_of_gas_1434", %"$True_1430" + %"$consume_1436" = sub i64 %"$gasrem_1432", 1 + store i64 %"$consume_1436", i64* @_gasrem, align 8 + %"$adtval_1437_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1437_salloc" = call i8* @_salloc(i8* %"$adtval_1437_load", i64 1) + %"$adtval_1437" = bitcast i8* %"$adtval_1437_salloc" to %CName_True* + %"$adtgep_1438" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1437", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1438", align 1 + %"$adtptr_1439" = bitcast %CName_True* %"$adtval_1437" to %TName_Bool* + store %TName_Bool* %"$adtptr_1439", %TName_Bool** %"$retval_140", align 8, !dbg !56 + br label %"$matchsucc_1426" + +"$False_1440": ; preds = %"$have_gas_1424" + %"$b2_1441" = bitcast %TName_Bool* %2 to %CName_False* + %"$gasrem_1442" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1443" = icmp ugt i64 1, %"$gasrem_1442" + br i1 %"$gascmp_1443", label %"$out_of_gas_1444", label %"$have_gas_1445" + +"$out_of_gas_1444": ; preds = %"$False_1440" + call void @_out_of_gas() + br label %"$have_gas_1445" + +"$have_gas_1445": ; preds = %"$out_of_gas_1444", %"$False_1440" + %"$consume_1446" = sub i64 %"$gasrem_1442", 1 + store i64 %"$consume_1446", i64* @_gasrem, align 8 + %"$adtval_1447_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1447_salloc" = call i8* @_salloc(i8* %"$adtval_1447_load", i64 1) + %"$adtval_1447" = bitcast i8* %"$adtval_1447_salloc" to %CName_False* + %"$adtgep_1448" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1447", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1448", align 1 + %"$adtptr_1449" = bitcast %CName_False* %"$adtval_1447" to %TName_Bool* + store %TName_Bool* %"$adtptr_1449", %TName_Bool** %"$retval_140", align 8, !dbg !59 + br label %"$matchsucc_1426" + +"$empty_default_1429": ; preds = %"$have_gas_1424" + br label %"$matchsucc_1426" + +"$matchsucc_1426": ; preds = %"$have_gas_1445", %"$have_gas_1435", %"$empty_default_1429" + br label %"$matchsucc_1415" + +"$False_1450": ; preds = %"$have_gas_1413" + %"$b1_1451" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_1452" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1453" = icmp ugt i64 2, %"$gasrem_1452" + br i1 %"$gascmp_1453", label %"$out_of_gas_1454", label %"$have_gas_1455" -"$out_of_gas_1700": ; preds = %"$False_1696" +"$out_of_gas_1454": ; preds = %"$False_1450" call void @_out_of_gas() - br label %"$have_gas_1701" - -"$have_gas_1701": ; preds = %"$out_of_gas_1700", %"$False_1696" - %"$consume_1702" = sub i64 %"$gasrem_1698", 2 - store i64 %"$consume_1702", i64* @_gasrem, align 8 - %"$b2_tag_1704" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b2_tag_1705" = load i8, i8* %"$b2_tag_1704", align 1 - switch i8 %"$b2_tag_1705", label %"$empty_default_1706" [ - i8 0, label %"$True_1707" - i8 1, label %"$False_1717" - ], !dbg !81 - -"$True_1707": ; preds = %"$have_gas_1701" - %"$b2_1708" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_1709" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1710" = icmp ugt i64 1, %"$gasrem_1709" - br i1 %"$gascmp_1710", label %"$out_of_gas_1711", label %"$have_gas_1712" - -"$out_of_gas_1711": ; preds = %"$True_1707" - call void @_out_of_gas() - br label %"$have_gas_1712" - -"$have_gas_1712": ; preds = %"$out_of_gas_1711", %"$True_1707" - %"$consume_1713" = sub i64 %"$gasrem_1709", 1 - store i64 %"$consume_1713", i64* @_gasrem, align 8 - %"$adtval_1714_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1714_salloc" = call i8* @_salloc(i8* %"$adtval_1714_load", i64 1) - %"$adtval_1714" = bitcast i8* %"$adtval_1714_salloc" to %CName_False* - %"$adtgep_1715" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1714", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1715", align 1 - %"$adtptr_1716" = bitcast %CName_False* %"$adtval_1714" to %TName_Bool* - store %TName_Bool* %"$adtptr_1716", %TName_Bool** %"$retval_251", align 8, !dbg !83 - br label %"$matchsucc_1703" - -"$False_1717": ; preds = %"$have_gas_1701" - %"$b2_1718" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_1719" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1720" = icmp ugt i64 1, %"$gasrem_1719" - br i1 %"$gascmp_1720", label %"$out_of_gas_1721", label %"$have_gas_1722" - -"$out_of_gas_1721": ; preds = %"$False_1717" - call void @_out_of_gas() - br label %"$have_gas_1722" - -"$have_gas_1722": ; preds = %"$out_of_gas_1721", %"$False_1717" - %"$consume_1723" = sub i64 %"$gasrem_1719", 1 - store i64 %"$consume_1723", i64* @_gasrem, align 8 - %"$adtval_1724_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1724_salloc" = call i8* @_salloc(i8* %"$adtval_1724_load", i64 1) - %"$adtval_1724" = bitcast i8* %"$adtval_1724_salloc" to %CName_True* - %"$adtgep_1725" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1724", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1725", align 1 - %"$adtptr_1726" = bitcast %CName_True* %"$adtval_1724" to %TName_Bool* - store %TName_Bool* %"$adtptr_1726", %TName_Bool** %"$retval_251", align 8, !dbg !86 - br label %"$matchsucc_1703" - -"$empty_default_1706": ; preds = %"$have_gas_1701" - br label %"$matchsucc_1703" - -"$matchsucc_1703": ; preds = %"$have_gas_1722", %"$have_gas_1712", %"$empty_default_1706" - br label %"$matchsucc_1660" - -"$empty_default_1664": ; preds = %"$have_gas_1658" - br label %"$matchsucc_1660" - -"$matchsucc_1660": ; preds = %"$matchsucc_1703", %"$matchsucc_1672", %"$empty_default_1664" - %"$$retval_251_1727" = load %TName_Bool*, %TName_Bool** %"$retval_251", align 8 - ret %TName_Bool* %"$$retval_251_1727" -} + br label %"$have_gas_1455" -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_248"(%"$$fundef_248_env_426"* %0, %TName_Bool* %1) !dbg !88 { -entry: - %"$retval_249" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_1642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1643" = icmp ugt i64 1, %"$gasrem_1642" - br i1 %"$gascmp_1643", label %"$out_of_gas_1644", label %"$have_gas_1645" - -"$out_of_gas_1644": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1645" - -"$have_gas_1645": ; preds = %"$out_of_gas_1644", %entry - %"$consume_1646" = sub i64 %"$gasrem_1642", 1 - store i64 %"$consume_1646", i64* @_gasrem, align 8 - %"$$fundef_250_envp_1647_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_250_envp_1647_salloc" = call i8* @_salloc(i8* %"$$fundef_250_envp_1647_load", i64 8) - %"$$fundef_250_envp_1647" = bitcast i8* %"$$fundef_250_envp_1647_salloc" to %"$$fundef_250_env_425"* - %"$$fundef_250_env_voidp_1649" = bitcast %"$$fundef_250_env_425"* %"$$fundef_250_envp_1647" to i8* - %"$$fundef_250_cloval_1650" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_250_env_425"*, %TName_Bool*)* @"$fundef_250" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_250_env_voidp_1649", 1 - %"$$fundef_250_env_b1_1651" = getelementptr inbounds %"$$fundef_250_env_425", %"$$fundef_250_env_425"* %"$$fundef_250_envp_1647", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_250_env_b1_1651", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_250_cloval_1650", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_249", align 8, !dbg !89 - %"$$retval_249_1652" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_249", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_249_1652" +"$have_gas_1455": ; preds = %"$out_of_gas_1454", %"$False_1450" + %"$consume_1456" = sub i64 %"$gasrem_1452", 2 + store i64 %"$consume_1456", i64* @_gasrem, align 8 + %"$b2_tag_1458" = getelementptr inbounds %TName_Bool, %TName_Bool* %2, i32 0, i32 0 + %"$b2_tag_1459" = load i8, i8* %"$b2_tag_1458", align 1 + switch i8 %"$b2_tag_1459", label %"$empty_default_1460" [ + i8 0, label %"$True_1461" + i8 1, label %"$False_1471" + ], !dbg !61 + +"$True_1461": ; preds = %"$have_gas_1455" + %"$b2_1462" = bitcast %TName_Bool* %2 to %CName_True* + %"$gasrem_1463" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1464" = icmp ugt i64 1, %"$gasrem_1463" + br i1 %"$gascmp_1464", label %"$out_of_gas_1465", label %"$have_gas_1466" + +"$out_of_gas_1465": ; preds = %"$True_1461" + call void @_out_of_gas() + br label %"$have_gas_1466" + +"$have_gas_1466": ; preds = %"$out_of_gas_1465", %"$True_1461" + %"$consume_1467" = sub i64 %"$gasrem_1463", 1 + store i64 %"$consume_1467", i64* @_gasrem, align 8 + %"$adtval_1468_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1468_salloc" = call i8* @_salloc(i8* %"$adtval_1468_load", i64 1) + %"$adtval_1468" = bitcast i8* %"$adtval_1468_salloc" to %CName_False* + %"$adtgep_1469" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1468", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1469", align 1 + %"$adtptr_1470" = bitcast %CName_False* %"$adtval_1468" to %TName_Bool* + store %TName_Bool* %"$adtptr_1470", %TName_Bool** %"$retval_140", align 8, !dbg !63 + br label %"$matchsucc_1457" + +"$False_1471": ; preds = %"$have_gas_1455" + %"$b2_1472" = bitcast %TName_Bool* %2 to %CName_False* + %"$gasrem_1473" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1474" = icmp ugt i64 1, %"$gasrem_1473" + br i1 %"$gascmp_1474", label %"$out_of_gas_1475", label %"$have_gas_1476" + +"$out_of_gas_1475": ; preds = %"$False_1471" + call void @_out_of_gas() + br label %"$have_gas_1476" + +"$have_gas_1476": ; preds = %"$out_of_gas_1475", %"$False_1471" + %"$consume_1477" = sub i64 %"$gasrem_1473", 1 + store i64 %"$consume_1477", i64* @_gasrem, align 8 + %"$adtval_1478_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1478_salloc" = call i8* @_salloc(i8* %"$adtval_1478_load", i64 1) + %"$adtval_1478" = bitcast i8* %"$adtval_1478_salloc" to %CName_True* + %"$adtgep_1479" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1478", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1479", align 1 + %"$adtptr_1480" = bitcast %CName_True* %"$adtval_1478" to %TName_Bool* + store %TName_Bool* %"$adtptr_1480", %TName_Bool** %"$retval_140", align 8, !dbg !66 + br label %"$matchsucc_1457" + +"$empty_default_1460": ; preds = %"$have_gas_1455" + br label %"$matchsucc_1457" + +"$matchsucc_1457": ; preds = %"$have_gas_1476", %"$have_gas_1466", %"$empty_default_1460" + br label %"$matchsucc_1415" + +"$empty_default_1418": ; preds = %"$have_gas_1413" + br label %"$matchsucc_1415" + +"$matchsucc_1415": ; preds = %"$matchsucc_1457", %"$matchsucc_1426", %"$empty_default_1418" + %"$$retval_140_1481" = load %TName_Bool*, %TName_Bool** %"$retval_140", align 8 + ret %TName_Bool* %"$$retval_140_1481" } -define internal %TName_Bool* @"$fundef_256"(%"$$fundef_256_env_427"* %0, [20 x i8]* %1) !dbg !90 { +define internal %TName_Bool* @"$fundef_143"(%"$$fundef_143_env_299"* %0, [20 x i8]* %1) !dbg !68 { entry: %v = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_256_env_BoolUtils.negb_1608" = getelementptr inbounds %"$$fundef_256_env_427", %"$$fundef_256_env_427"* %0, i32 0, i32 0 - %"$BoolUtils.negb_envload_1609" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_256_env_BoolUtils.negb_1608", align 8 + %"$$fundef_143_env_BoolUtils.negb_1376" = getelementptr inbounds %"$$fundef_143_env_299", %"$$fundef_143_env_299"* %0, i32 0, i32 0 + %"$BoolUtils.negb_envload_1377" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_143_env_BoolUtils.negb_1376", align 8 %BoolUtils.negb = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1609", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$$fundef_256_env_bs_1610" = getelementptr inbounds %"$$fundef_256_env_427", %"$$fundef_256_env_427"* %0, i32 0, i32 1 - %"$bs_envload_1611" = load [20 x i8], [20 x i8]* %"$$fundef_256_env_bs_1610", align 1 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1377", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + %"$$fundef_143_env_bs_1378" = getelementptr inbounds %"$$fundef_143_env_299", %"$$fundef_143_env_299"* %0, i32 0, i32 1 + %"$bs_envload_1379" = load [20 x i8], [20 x i8]* %"$$fundef_143_env_bs_1378", align 1 %bs = alloca [20 x i8], align 1 - store [20 x i8] %"$bs_envload_1611", [20 x i8]* %bs, align 1 - %"$retval_257" = alloca %TName_Bool*, align 8 - %"$gasrem_1612" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1613" = icmp ugt i64 1, %"$gasrem_1612" - br i1 %"$gascmp_1613", label %"$out_of_gas_1614", label %"$have_gas_1615" + store [20 x i8] %"$bs_envload_1379", [20 x i8]* %bs, align 1 + %"$retval_144" = alloca %TName_Bool*, align 8 + %"$gasrem_1380" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1381" = icmp ugt i64 1, %"$gasrem_1380" + br i1 %"$gascmp_1381", label %"$out_of_gas_1382", label %"$have_gas_1383" -"$out_of_gas_1614": ; preds = %entry +"$out_of_gas_1382": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1615" + br label %"$have_gas_1383" -"$have_gas_1615": ; preds = %"$out_of_gas_1614", %entry - %"$consume_1616" = sub i64 %"$gasrem_1612", 1 - store i64 %"$consume_1616", i64* @_gasrem, align 8 +"$have_gas_1383": ; preds = %"$out_of_gas_1382", %entry + %"$consume_1384" = sub i64 %"$gasrem_1380", 1 + store i64 %"$consume_1384", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_1617" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1618" = icmp ugt i64 20, %"$gasrem_1617" - br i1 %"$gascmp_1618", label %"$out_of_gas_1619", label %"$have_gas_1620" - -"$out_of_gas_1619": ; preds = %"$have_gas_1615" - call void @_out_of_gas() - br label %"$have_gas_1620" - -"$have_gas_1620": ; preds = %"$out_of_gas_1619", %"$have_gas_1615" - %"$consume_1621" = sub i64 %"$gasrem_1617", 20 - store i64 %"$consume_1621", i64* @_gasrem, align 8 - %"$execptr_load_1622" = load i8*, i8** @_execptr, align 8 - %"$eq_v_1623" = alloca [20 x i8], align 1 - store [20 x i8] %v, [20 x i8]* %"$eq_v_1623", align 1 - %"$$eq_v_1623_1624" = bitcast [20 x i8]* %"$eq_v_1623" to i8* - %"$eq_bs_1625" = alloca [20 x i8], align 1 - %"$bs_1626" = load [20 x i8], [20 x i8]* %bs, align 1 - store [20 x i8] %"$bs_1626", [20 x i8]* %"$eq_bs_1625", align 1 - %"$$eq_bs_1625_1627" = bitcast [20 x i8]* %"$eq_bs_1625" to i8* - %"$eq_call_1628" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1622", i32 20, i8* %"$$eq_v_1623_1624", i8* %"$$eq_bs_1625_1627"), !dbg !91 - store %TName_Bool* %"$eq_call_1628", %TName_Bool** %b, align 8, !dbg !91 - %"$gasrem_1630" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1631" = icmp ugt i64 1, %"$gasrem_1630" - br i1 %"$gascmp_1631", label %"$out_of_gas_1632", label %"$have_gas_1633" - -"$out_of_gas_1632": ; preds = %"$have_gas_1620" - call void @_out_of_gas() - br label %"$have_gas_1633" - -"$have_gas_1633": ; preds = %"$out_of_gas_1632", %"$have_gas_1620" - %"$consume_1634" = sub i64 %"$gasrem_1630", 1 - store i64 %"$consume_1634", i64* @_gasrem, align 8 - %"$BoolUtils.negb_36" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_1635" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1636" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1635", 0 - %"$BoolUtils.negb_envptr_1637" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1635", 1 - %"$b_1638" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$BoolUtils.negb_call_1639" = call %TName_Bool* %"$BoolUtils.negb_fptr_1636"(i8* %"$BoolUtils.negb_envptr_1637", %TName_Bool* %"$b_1638"), !dbg !92 - store %TName_Bool* %"$BoolUtils.negb_call_1639", %TName_Bool** %"$BoolUtils.negb_36", align 8, !dbg !92 - %"$$BoolUtils.negb_36_1640" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_36", align 8 - store %TName_Bool* %"$$BoolUtils.negb_36_1640", %TName_Bool** %"$retval_257", align 8, !dbg !92 - %"$$retval_257_1641" = load %TName_Bool*, %TName_Bool** %"$retval_257", align 8 - ret %TName_Bool* %"$$retval_257_1641" + %"$gasrem_1385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1386" = icmp ugt i64 20, %"$gasrem_1385" + br i1 %"$gascmp_1386", label %"$out_of_gas_1387", label %"$have_gas_1388" + +"$out_of_gas_1387": ; preds = %"$have_gas_1383" + call void @_out_of_gas() + br label %"$have_gas_1388" + +"$have_gas_1388": ; preds = %"$out_of_gas_1387", %"$have_gas_1383" + %"$consume_1389" = sub i64 %"$gasrem_1385", 20 + store i64 %"$consume_1389", i64* @_gasrem, align 8 + %"$execptr_load_1390" = load i8*, i8** @_execptr, align 8 + %"$eq_v_1391" = alloca [20 x i8], align 1 + store [20 x i8] %v, [20 x i8]* %"$eq_v_1391", align 1 + %"$$eq_v_1391_1392" = bitcast [20 x i8]* %"$eq_v_1391" to i8* + %"$eq_bs_1393" = alloca [20 x i8], align 1 + %"$bs_1394" = load [20 x i8], [20 x i8]* %bs, align 1 + store [20 x i8] %"$bs_1394", [20 x i8]* %"$eq_bs_1393", align 1 + %"$$eq_bs_1393_1395" = bitcast [20 x i8]* %"$eq_bs_1393" to i8* + %"$eq_call_1396" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1390", i32 20, i8* %"$$eq_v_1391_1392", i8* %"$$eq_bs_1393_1395"), !dbg !69 + store %TName_Bool* %"$eq_call_1396", %TName_Bool** %b, align 8, !dbg !69 + %"$gasrem_1398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1399" = icmp ugt i64 1, %"$gasrem_1398" + br i1 %"$gascmp_1399", label %"$out_of_gas_1400", label %"$have_gas_1401" + +"$out_of_gas_1400": ; preds = %"$have_gas_1388" + call void @_out_of_gas() + br label %"$have_gas_1401" + +"$have_gas_1401": ; preds = %"$out_of_gas_1400", %"$have_gas_1388" + %"$consume_1402" = sub i64 %"$gasrem_1398", 1 + store i64 %"$consume_1402", i64* @_gasrem, align 8 + %"$BoolUtils.negb_34" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_1403" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_1404" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1403", 0 + %"$BoolUtils.negb_envptr_1405" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1403", 1 + %"$b_1406" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$BoolUtils.negb_call_1407" = call %TName_Bool* %"$BoolUtils.negb_fptr_1404"(i8* %"$BoolUtils.negb_envptr_1405", %TName_Bool* %"$b_1406"), !dbg !70 + store %TName_Bool* %"$BoolUtils.negb_call_1407", %TName_Bool** %"$BoolUtils.negb_34", align 8, !dbg !70 + %"$$BoolUtils.negb_34_1408" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_34", align 8 + store %TName_Bool* %"$$BoolUtils.negb_34_1408", %TName_Bool** %"$retval_144", align 8, !dbg !70 + %"$$retval_144_1409" = load %TName_Bool*, %TName_Bool** %"$retval_144", align 8 + ret %TName_Bool* %"$$retval_144_1409" } -define internal %TName_List_ByStr20* @"$fundef_254"(%"$$fundef_254_env_428"* %0, [20 x i8]* %1) !dbg !93 { +define internal %TName_List_ByStr20* @"$fundef_141"(%"$$fundef_141_env_300"* %0, %TName_List_ByStr20* %1, [20 x i8]* %2) !dbg !71 { entry: - %bs = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_254_env_BoolUtils.negb_1551" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %0, i32 0, i32 0 - %"$BoolUtils.negb_envload_1552" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_254_env_BoolUtils.negb_1551", align 8 + %bs = load [20 x i8], [20 x i8]* %2, align 1 + %"$$fundef_141_env_BoolUtils.negb_1322" = getelementptr inbounds %"$$fundef_141_env_300", %"$$fundef_141_env_300"* %0, i32 0, i32 0 + %"$BoolUtils.negb_envload_1323" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_141_env_BoolUtils.negb_1322", align 8 %BoolUtils.negb = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1552", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$$fundef_254_env_ListUtils.list_filter_1553" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %0, i32 0, i32 1 - %"$ListUtils.list_filter_envload_1554" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_254_env_ListUtils.list_filter_1553", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1323", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + %"$$fundef_141_env_ListUtils.list_filter_1324" = getelementptr inbounds %"$$fundef_141_env_300", %"$$fundef_141_env_300"* %0, i32 0, i32 1 + %"$ListUtils.list_filter_envload_1325" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_141_env_ListUtils.list_filter_1324", align 8 %ListUtils.list_filter = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_envload_1554", { i8*, i8* }** %ListUtils.list_filter, align 8 - %"$$fundef_254_env_list_1555" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %0, i32 0, i32 2 - %"$list_envload_1556" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_254_env_list_1555", align 8 - %list = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$list_envload_1556", %TName_List_ByStr20** %list, align 8 - %"$retval_255" = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_1557" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1558" = icmp ugt i64 1, %"$gasrem_1557" - br i1 %"$gascmp_1558", label %"$out_of_gas_1559", label %"$have_gas_1560" - -"$out_of_gas_1559": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1560" - -"$have_gas_1560": ; preds = %"$out_of_gas_1559", %entry - %"$consume_1561" = sub i64 %"$gasrem_1557", 1 - store i64 %"$consume_1561", i64* @_gasrem, align 8 + store { i8*, i8* }* %"$ListUtils.list_filter_envload_1325", { i8*, i8* }** %ListUtils.list_filter, align 8 + %"$retval_142" = alloca %TName_List_ByStr20*, align 8 + %"$gasrem_1326" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1327" = icmp ugt i64 1, %"$gasrem_1326" + br i1 %"$gascmp_1327", label %"$out_of_gas_1328", label %"$have_gas_1329" + +"$out_of_gas_1328": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1329" + +"$have_gas_1329": ; preds = %"$out_of_gas_1328", %entry + %"$consume_1330" = sub i64 %"$gasrem_1326", 1 + store i64 %"$consume_1330", i64* @_gasrem, align 8 %listByStr20Filter = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1562" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1563" = icmp ugt i64 1, %"$gasrem_1562" - br i1 %"$gascmp_1563", label %"$out_of_gas_1564", label %"$have_gas_1565" - -"$out_of_gas_1564": ; preds = %"$have_gas_1560" - call void @_out_of_gas() - br label %"$have_gas_1565" - -"$have_gas_1565": ; preds = %"$out_of_gas_1564", %"$have_gas_1560" - %"$consume_1566" = sub i64 %"$gasrem_1562", 1 - store i64 %"$consume_1566", i64* @_gasrem, align 8 - %"$ListUtils.list_filter_1567" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 - %"$ListUtils.list_filter_1568" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_filter_1567", i32 0 - %"$ListUtils.list_filter_1569" = bitcast { i8*, i8* }* %"$ListUtils.list_filter_1568" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_filter_1570" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_filter_1569", align 8 - %"$ListUtils.list_filter_fptr_1571" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_1570", 0 - %"$ListUtils.list_filter_envptr_1572" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_1570", 1 - %"$ListUtils.list_filter_call_1573" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_fptr_1571"(i8* %"$ListUtils.list_filter_envptr_1572"), !dbg !94 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_call_1573", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %listByStr20Filter, align 8, !dbg !95 - %"$gasrem_1574" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1575" = icmp ugt i64 1, %"$gasrem_1574" - br i1 %"$gascmp_1575", label %"$out_of_gas_1576", label %"$have_gas_1577" - -"$out_of_gas_1576": ; preds = %"$have_gas_1565" - call void @_out_of_gas() - br label %"$have_gas_1577" - -"$have_gas_1577": ; preds = %"$out_of_gas_1576", %"$have_gas_1565" - %"$consume_1578" = sub i64 %"$gasrem_1574", 1 - store i64 %"$consume_1578", i64* @_gasrem, align 8 + %"$gasrem_1331" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1332" = icmp ugt i64 1, %"$gasrem_1331" + br i1 %"$gascmp_1332", label %"$out_of_gas_1333", label %"$have_gas_1334" + +"$out_of_gas_1333": ; preds = %"$have_gas_1329" + call void @_out_of_gas() + br label %"$have_gas_1334" + +"$have_gas_1334": ; preds = %"$out_of_gas_1333", %"$have_gas_1329" + %"$consume_1335" = sub i64 %"$gasrem_1331", 1 + store i64 %"$consume_1335", i64* @_gasrem, align 8 + %"$ListUtils.list_filter_1336" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 + %"$ListUtils.list_filter_1337" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_filter_1336", i32 0 + %"$ListUtils.list_filter_1338" = bitcast { i8*, i8* }* %"$ListUtils.list_filter_1337" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_filter_1339" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_filter_1338", align 8 + %"$ListUtils.list_filter_fptr_1340" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_1339", 0 + %"$ListUtils.list_filter_envptr_1341" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_1339", 1 + %"$ListUtils.list_filter_call_1342" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_fptr_1340"(i8* %"$ListUtils.list_filter_envptr_1341"), !dbg !72 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_call_1342", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %listByStr20Filter, align 8, !dbg !73 + %"$gasrem_1343" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1344" = icmp ugt i64 1, %"$gasrem_1343" + br i1 %"$gascmp_1344", label %"$out_of_gas_1345", label %"$have_gas_1346" + +"$out_of_gas_1345": ; preds = %"$have_gas_1334" + call void @_out_of_gas() + br label %"$have_gas_1346" + +"$have_gas_1346": ; preds = %"$out_of_gas_1345", %"$have_gas_1334" + %"$consume_1347" = sub i64 %"$gasrem_1343", 1 + store i64 %"$consume_1347", i64* @_gasrem, align 8 %fn = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1579" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1580" = icmp ugt i64 1, %"$gasrem_1579" - br i1 %"$gascmp_1580", label %"$out_of_gas_1581", label %"$have_gas_1582" - -"$out_of_gas_1581": ; preds = %"$have_gas_1577" - call void @_out_of_gas() - br label %"$have_gas_1582" - -"$have_gas_1582": ; preds = %"$out_of_gas_1581", %"$have_gas_1577" - %"$consume_1583" = sub i64 %"$gasrem_1579", 1 - store i64 %"$consume_1583", i64* @_gasrem, align 8 - %"$$fundef_256_envp_1584_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_256_envp_1584_salloc" = call i8* @_salloc(i8* %"$$fundef_256_envp_1584_load", i64 40) - %"$$fundef_256_envp_1584" = bitcast i8* %"$$fundef_256_envp_1584_salloc" to %"$$fundef_256_env_427"* - %"$$fundef_256_env_voidp_1586" = bitcast %"$$fundef_256_env_427"* %"$$fundef_256_envp_1584" to i8* - %"$$fundef_256_cloval_1587" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_256_env_427"*, [20 x i8]*)* @"$fundef_256" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_256_env_voidp_1586", 1 - %"$$fundef_256_env_BoolUtils.negb_1588" = getelementptr inbounds %"$$fundef_256_env_427", %"$$fundef_256_env_427"* %"$$fundef_256_envp_1584", i32 0, i32 0 - %"$BoolUtils.negb_1589" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1589", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_256_env_BoolUtils.negb_1588", align 8 - %"$$fundef_256_env_bs_1590" = getelementptr inbounds %"$$fundef_256_env_427", %"$$fundef_256_env_427"* %"$$fundef_256_envp_1584", i32 0, i32 1 - store [20 x i8] %bs, [20 x i8]* %"$$fundef_256_env_bs_1590", align 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_256_cloval_1587", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8, !dbg !96 - %"$gasrem_1591" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1592" = icmp ugt i64 1, %"$gasrem_1591" - br i1 %"$gascmp_1592", label %"$out_of_gas_1593", label %"$have_gas_1594" - -"$out_of_gas_1593": ; preds = %"$have_gas_1582" - call void @_out_of_gas() - br label %"$have_gas_1594" - -"$have_gas_1594": ; preds = %"$out_of_gas_1593", %"$have_gas_1582" - %"$consume_1595" = sub i64 %"$gasrem_1591", 1 - store i64 %"$consume_1595", i64* @_gasrem, align 8 - %"$listByStr20Filter_37" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$listByStr20Filter_1596" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %listByStr20Filter, align 8 - %"$listByStr20Filter_fptr_1597" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_1596", 0 - %"$listByStr20Filter_envptr_1598" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_1596", 1 - %"$fn_1599" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8 - %"$listByStr20Filter_call_1600" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_fptr_1597"(i8* %"$listByStr20Filter_envptr_1598", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$fn_1599"), !dbg !97 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_call_1600", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_37", align 8, !dbg !97 - %"$listByStr20Filter_38" = alloca %TName_List_ByStr20*, align 8 - %"$$listByStr20Filter_37_1601" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_37", align 8 - %"$$listByStr20Filter_37_fptr_1602" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_37_1601", 0 - %"$$listByStr20Filter_37_envptr_1603" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_37_1601", 1 - %"$list_1604" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 - %"$$listByStr20Filter_37_call_1605" = call %TName_List_ByStr20* %"$$listByStr20Filter_37_fptr_1602"(i8* %"$$listByStr20Filter_37_envptr_1603", %TName_List_ByStr20* %"$list_1604"), !dbg !97 - store %TName_List_ByStr20* %"$$listByStr20Filter_37_call_1605", %TName_List_ByStr20** %"$listByStr20Filter_38", align 8, !dbg !97 - %"$$listByStr20Filter_38_1606" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$listByStr20Filter_38", align 8 - store %TName_List_ByStr20* %"$$listByStr20Filter_38_1606", %TName_List_ByStr20** %"$retval_255", align 8, !dbg !97 - %"$$retval_255_1607" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_255", align 8 - ret %TName_List_ByStr20* %"$$retval_255_1607" + %"$gasrem_1348" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1349" = icmp ugt i64 1, %"$gasrem_1348" + br i1 %"$gascmp_1349", label %"$out_of_gas_1350", label %"$have_gas_1351" + +"$out_of_gas_1350": ; preds = %"$have_gas_1346" + call void @_out_of_gas() + br label %"$have_gas_1351" + +"$have_gas_1351": ; preds = %"$out_of_gas_1350", %"$have_gas_1346" + %"$consume_1352" = sub i64 %"$gasrem_1348", 1 + store i64 %"$consume_1352", i64* @_gasrem, align 8 + %"$$fundef_143_envp_1353_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_143_envp_1353_salloc" = call i8* @_salloc(i8* %"$$fundef_143_envp_1353_load", i64 40) + %"$$fundef_143_envp_1353" = bitcast i8* %"$$fundef_143_envp_1353_salloc" to %"$$fundef_143_env_299"* + %"$$fundef_143_env_voidp_1355" = bitcast %"$$fundef_143_env_299"* %"$$fundef_143_envp_1353" to i8* + %"$$fundef_143_cloval_1356" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_143_env_299"*, [20 x i8]*)* @"$fundef_143" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_143_env_voidp_1355", 1 + %"$$fundef_143_env_BoolUtils.negb_1357" = getelementptr inbounds %"$$fundef_143_env_299", %"$$fundef_143_env_299"* %"$$fundef_143_envp_1353", i32 0, i32 0 + %"$BoolUtils.negb_1358" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1358", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_143_env_BoolUtils.negb_1357", align 8 + %"$$fundef_143_env_bs_1359" = getelementptr inbounds %"$$fundef_143_env_299", %"$$fundef_143_env_299"* %"$$fundef_143_envp_1353", i32 0, i32 1 + store [20 x i8] %bs, [20 x i8]* %"$$fundef_143_env_bs_1359", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_143_cloval_1356", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8, !dbg !74 + %"$gasrem_1360" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1361" = icmp ugt i64 1, %"$gasrem_1360" + br i1 %"$gascmp_1361", label %"$out_of_gas_1362", label %"$have_gas_1363" + +"$out_of_gas_1362": ; preds = %"$have_gas_1351" + call void @_out_of_gas() + br label %"$have_gas_1363" + +"$have_gas_1363": ; preds = %"$out_of_gas_1362", %"$have_gas_1351" + %"$consume_1364" = sub i64 %"$gasrem_1360", 1 + store i64 %"$consume_1364", i64* @_gasrem, align 8 + %"$listByStr20Filter_35" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$listByStr20Filter_1365" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %listByStr20Filter, align 8 + %"$listByStr20Filter_fptr_1366" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_1365", 0 + %"$listByStr20Filter_envptr_1367" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_1365", 1 + %"$fn_1368" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8 + %"$listByStr20Filter_call_1369" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_fptr_1366"(i8* %"$listByStr20Filter_envptr_1367", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$fn_1368"), !dbg !75 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_call_1369", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_35", align 8, !dbg !75 + %"$listByStr20Filter_36" = alloca %TName_List_ByStr20*, align 8 + %"$$listByStr20Filter_35_1370" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_35", align 8 + %"$$listByStr20Filter_35_fptr_1371" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_35_1370", 0 + %"$$listByStr20Filter_35_envptr_1372" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_35_1370", 1 + %"$$listByStr20Filter_35_call_1373" = call %TName_List_ByStr20* %"$$listByStr20Filter_35_fptr_1371"(i8* %"$$listByStr20Filter_35_envptr_1372", %TName_List_ByStr20* %1), !dbg !75 + store %TName_List_ByStr20* %"$$listByStr20Filter_35_call_1373", %TName_List_ByStr20** %"$listByStr20Filter_36", align 8, !dbg !75 + %"$$listByStr20Filter_36_1374" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$listByStr20Filter_36", align 8 + store %TName_List_ByStr20* %"$$listByStr20Filter_36_1374", %TName_List_ByStr20** %"$retval_142", align 8, !dbg !75 + %"$$retval_142_1375" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_142", align 8 + ret %TName_List_ByStr20* %"$$retval_142_1375" } -define internal { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } @"$fundef_252"(%"$$fundef_252_env_429"* %0, %TName_List_ByStr20* %1) !dbg !98 { +define internal %TName_Bool* @"$fundef_145"(%"$$fundef_145_env_301"* %0, %TName_List_ByStr20* %1, [20 x i8]* %2) !dbg !76 { entry: - %"$$fundef_252_env_BoolUtils.negb_1532" = getelementptr inbounds %"$$fundef_252_env_429", %"$$fundef_252_env_429"* %0, i32 0, i32 0 - %"$BoolUtils.negb_envload_1533" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_252_env_BoolUtils.negb_1532", align 8 + %bs = load [20 x i8], [20 x i8]* %2, align 1 + %"$$fundef_145_env_BoolUtils.negb_1291" = getelementptr inbounds %"$$fundef_145_env_301", %"$$fundef_145_env_301"* %0, i32 0, i32 0 + %"$BoolUtils.negb_envload_1292" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_145_env_BoolUtils.negb_1291", align 8 %BoolUtils.negb = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1533", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$$fundef_252_env_ListUtils.list_filter_1534" = getelementptr inbounds %"$$fundef_252_env_429", %"$$fundef_252_env_429"* %0, i32 0, i32 1 - %"$ListUtils.list_filter_envload_1535" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_252_env_ListUtils.list_filter_1534", align 8 - %ListUtils.list_filter = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_envload_1535", { i8*, i8* }** %ListUtils.list_filter, align 8 - %"$retval_253" = alloca { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1536" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1537" = icmp ugt i64 1, %"$gasrem_1536" - br i1 %"$gascmp_1537", label %"$out_of_gas_1538", label %"$have_gas_1539" - -"$out_of_gas_1538": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1539" - -"$have_gas_1539": ; preds = %"$out_of_gas_1538", %entry - %"$consume_1540" = sub i64 %"$gasrem_1536", 1 - store i64 %"$consume_1540", i64* @_gasrem, align 8 - %"$$fundef_254_envp_1541_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_254_envp_1541_salloc" = call i8* @_salloc(i8* %"$$fundef_254_envp_1541_load", i64 32) - %"$$fundef_254_envp_1541" = bitcast i8* %"$$fundef_254_envp_1541_salloc" to %"$$fundef_254_env_428"* - %"$$fundef_254_env_voidp_1543" = bitcast %"$$fundef_254_env_428"* %"$$fundef_254_envp_1541" to i8* - %"$$fundef_254_cloval_1544" = insertvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } { %TName_List_ByStr20* (i8*, [20 x i8]*)* bitcast (%TName_List_ByStr20* (%"$$fundef_254_env_428"*, [20 x i8]*)* @"$fundef_254" to %TName_List_ByStr20* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_254_env_voidp_1543", 1 - %"$$fundef_254_env_BoolUtils.negb_1545" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %"$$fundef_254_envp_1541", i32 0, i32 0 - %"$BoolUtils.negb_1546" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1546", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_254_env_BoolUtils.negb_1545", align 8 - %"$$fundef_254_env_ListUtils.list_filter_1547" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %"$$fundef_254_envp_1541", i32 0, i32 1 - %"$ListUtils.list_filter_1548" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_1548", { i8*, i8* }** %"$$fundef_254_env_ListUtils.list_filter_1547", align 8 - %"$$fundef_254_env_list_1549" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %"$$fundef_254_envp_1541", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_254_env_list_1549", align 8 - store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$fundef_254_cloval_1544", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_253", align 8, !dbg !99 - %"$$retval_253_1550" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_253", align 8 - ret { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$retval_253_1550" -} - -define internal %TName_Bool* @"$fundef_260"(%"$$fundef_260_env_430"* %0, [20 x i8]* %1) !dbg !100 { -entry: - %bs = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_260_env_BoolUtils.negb_1493" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %0, i32 0, i32 0 - %"$BoolUtils.negb_envload_1494" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_260_env_BoolUtils.negb_1493", align 8 - %BoolUtils.negb = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1494", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$$fundef_260_env_list_1495" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %0, i32 0, i32 1 - %"$list_envload_1496" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_260_env_list_1495", align 8 - %list = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$list_envload_1496", %TName_List_ByStr20** %list, align 8 - %"$$fundef_260_env_ud-registry.listByStr20Contains_1497" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %0, i32 0, i32 2 - %"$ud-registry.listByStr20Contains_envload_1498" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_260_env_ud-registry.listByStr20Contains_1497", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_1498", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_261" = alloca %TName_Bool*, align 8 - %"$gasrem_1499" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1500" = icmp ugt i64 1, %"$gasrem_1499" - br i1 %"$gascmp_1500", label %"$out_of_gas_1501", label %"$have_gas_1502" - -"$out_of_gas_1501": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1502" - -"$have_gas_1502": ; preds = %"$out_of_gas_1501", %entry - %"$consume_1503" = sub i64 %"$gasrem_1499", 1 - store i64 %"$consume_1503", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1292", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + %"$$fundef_145_env_ud-registry.listByStr20Contains_1293" = getelementptr inbounds %"$$fundef_145_env_301", %"$$fundef_145_env_301"* %0, i32 0, i32 1 + %"$ud-registry.listByStr20Contains_envload_1294" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %"$$fundef_145_env_ud-registry.listByStr20Contains_1293", align 8 + %ud-registry.listByStr20Contains = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_envload_1294", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %ud-registry.listByStr20Contains, align 8 + %"$retval_146" = alloca %TName_Bool*, align 8 + %"$gasrem_1295" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1296" = icmp ugt i64 1, %"$gasrem_1295" + br i1 %"$gascmp_1296", label %"$out_of_gas_1297", label %"$have_gas_1298" + +"$out_of_gas_1297": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1298" + +"$have_gas_1298": ; preds = %"$out_of_gas_1297", %entry + %"$consume_1299" = sub i64 %"$gasrem_1295", 1 + store i64 %"$consume_1299", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_1504" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1505" = icmp ugt i64 1, %"$gasrem_1504" - br i1 %"$gascmp_1505", label %"$out_of_gas_1506", label %"$have_gas_1507" - -"$out_of_gas_1506": ; preds = %"$have_gas_1502" - call void @_out_of_gas() - br label %"$have_gas_1507" - -"$have_gas_1507": ; preds = %"$out_of_gas_1506", %"$have_gas_1502" - %"$consume_1508" = sub i64 %"$gasrem_1504", 1 - store i64 %"$consume_1508", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Contains_33" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_1509" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$ud-registry.listByStr20Contains_fptr_1510" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_1509", 0 - %"$ud-registry.listByStr20Contains_envptr_1511" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_1509", 1 - %"$list_1512" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 - %"$ud-registry.listByStr20Contains_call_1513" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_1510"(i8* %"$ud-registry.listByStr20Contains_envptr_1511", %TName_List_ByStr20* %"$list_1512"), !dbg !101 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_1513", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_33", align 8, !dbg !101 - %"$ud-registry.listByStr20Contains_34" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_33_1514" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_33", align 8 - %"$$ud-registry.listByStr20Contains_33_fptr_1515" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_33_1514", 0 - %"$$ud-registry.listByStr20Contains_33_envptr_1516" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_33_1514", 1 - %"$$ud-registry.listByStr20Contains_33_bs_1517" = alloca [20 x i8], align 1 - store [20 x i8] %bs, [20 x i8]* %"$$ud-registry.listByStr20Contains_33_bs_1517", align 1 - %"$$ud-registry.listByStr20Contains_33_call_1518" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_33_fptr_1515"(i8* %"$$ud-registry.listByStr20Contains_33_envptr_1516", [20 x i8]* %"$$ud-registry.listByStr20Contains_33_bs_1517"), !dbg !101 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_33_call_1518", %TName_Bool** %"$ud-registry.listByStr20Contains_34", align 8, !dbg !101 - %"$$ud-registry.listByStr20Contains_34_1519" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_34", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_34_1519", %TName_Bool** %b, align 8, !dbg !101 - %"$gasrem_1520" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1521" = icmp ugt i64 1, %"$gasrem_1520" - br i1 %"$gascmp_1521", label %"$out_of_gas_1522", label %"$have_gas_1523" - -"$out_of_gas_1522": ; preds = %"$have_gas_1507" - call void @_out_of_gas() - br label %"$have_gas_1523" - -"$have_gas_1523": ; preds = %"$out_of_gas_1522", %"$have_gas_1507" - %"$consume_1524" = sub i64 %"$gasrem_1520", 1 - store i64 %"$consume_1524", i64* @_gasrem, align 8 - %"$BoolUtils.negb_35" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_1525" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1526" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1525", 0 - %"$BoolUtils.negb_envptr_1527" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1525", 1 - %"$b_1528" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$BoolUtils.negb_call_1529" = call %TName_Bool* %"$BoolUtils.negb_fptr_1526"(i8* %"$BoolUtils.negb_envptr_1527", %TName_Bool* %"$b_1528"), !dbg !102 - store %TName_Bool* %"$BoolUtils.negb_call_1529", %TName_Bool** %"$BoolUtils.negb_35", align 8, !dbg !102 - %"$$BoolUtils.negb_35_1530" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_35", align 8 - store %TName_Bool* %"$$BoolUtils.negb_35_1530", %TName_Bool** %"$retval_261", align 8, !dbg !102 - %"$$retval_261_1531" = load %TName_Bool*, %TName_Bool** %"$retval_261", align 8 - ret %TName_Bool* %"$$retval_261_1531" -} - -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_258"(%"$$fundef_258_env_431"* %0, %TName_List_ByStr20* %1) !dbg !103 { -entry: - %"$$fundef_258_env_BoolUtils.negb_1474" = getelementptr inbounds %"$$fundef_258_env_431", %"$$fundef_258_env_431"* %0, i32 0, i32 0 - %"$BoolUtils.negb_envload_1475" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_258_env_BoolUtils.negb_1474", align 8 - %BoolUtils.negb = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1475", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$$fundef_258_env_ud-registry.listByStr20Contains_1476" = getelementptr inbounds %"$$fundef_258_env_431", %"$$fundef_258_env_431"* %0, i32 0, i32 1 - %"$ud-registry.listByStr20Contains_envload_1477" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_258_env_ud-registry.listByStr20Contains_1476", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_1477", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_259" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1478" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1479" = icmp ugt i64 1, %"$gasrem_1478" - br i1 %"$gascmp_1479", label %"$out_of_gas_1480", label %"$have_gas_1481" - -"$out_of_gas_1480": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1481" - -"$have_gas_1481": ; preds = %"$out_of_gas_1480", %entry - %"$consume_1482" = sub i64 %"$gasrem_1478", 1 - store i64 %"$consume_1482", i64* @_gasrem, align 8 - %"$$fundef_260_envp_1483_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_260_envp_1483_salloc" = call i8* @_salloc(i8* %"$$fundef_260_envp_1483_load", i64 40) - %"$$fundef_260_envp_1483" = bitcast i8* %"$$fundef_260_envp_1483_salloc" to %"$$fundef_260_env_430"* - %"$$fundef_260_env_voidp_1485" = bitcast %"$$fundef_260_env_430"* %"$$fundef_260_envp_1483" to i8* - %"$$fundef_260_cloval_1486" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_260_env_430"*, [20 x i8]*)* @"$fundef_260" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_260_env_voidp_1485", 1 - %"$$fundef_260_env_BoolUtils.negb_1487" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %"$$fundef_260_envp_1483", i32 0, i32 0 - %"$BoolUtils.negb_1488" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1488", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_260_env_BoolUtils.negb_1487", align 8 - %"$$fundef_260_env_list_1489" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %"$$fundef_260_envp_1483", i32 0, i32 1 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_260_env_list_1489", align 8 - %"$$fundef_260_env_ud-registry.listByStr20Contains_1490" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %"$$fundef_260_envp_1483", i32 0, i32 2 - %"$ud-registry.listByStr20Contains_1491" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_1491", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_260_env_ud-registry.listByStr20Contains_1490", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_260_cloval_1486", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_259", align 8, !dbg !104 - %"$$retval_259_1492" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_259", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_259_1492" + %"$gasrem_1300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1301" = icmp ugt i64 1, %"$gasrem_1300" + br i1 %"$gascmp_1301", label %"$out_of_gas_1302", label %"$have_gas_1303" + +"$out_of_gas_1302": ; preds = %"$have_gas_1298" + call void @_out_of_gas() + br label %"$have_gas_1303" + +"$have_gas_1303": ; preds = %"$out_of_gas_1302", %"$have_gas_1298" + %"$consume_1304" = sub i64 %"$gasrem_1300", 1 + store i64 %"$consume_1304", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Contains_1305" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %ud-registry.listByStr20Contains, align 8 + %"$ud-registry.listByStr20Contains_fptr_1306" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_1305", 0 + %"$ud-registry.listByStr20Contains_envptr_1307" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_1305", 1 + %"$ud-registry.listByStr20Contains_bs_1308" = alloca [20 x i8], align 1 + store [20 x i8] %bs, [20 x i8]* %"$ud-registry.listByStr20Contains_bs_1308", align 1 + %"$ud-registry.listByStr20Contains_call_1309" = call %TName_Bool* %"$ud-registry.listByStr20Contains_fptr_1306"(i8* %"$ud-registry.listByStr20Contains_envptr_1307", %TName_List_ByStr20* %1, [20 x i8]* %"$ud-registry.listByStr20Contains_bs_1308"), !dbg !77 + store %TName_Bool* %"$ud-registry.listByStr20Contains_call_1309", %TName_Bool** %b, align 8, !dbg !77 + %"$gasrem_1310" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1311" = icmp ugt i64 1, %"$gasrem_1310" + br i1 %"$gascmp_1311", label %"$out_of_gas_1312", label %"$have_gas_1313" + +"$out_of_gas_1312": ; preds = %"$have_gas_1303" + call void @_out_of_gas() + br label %"$have_gas_1313" + +"$have_gas_1313": ; preds = %"$out_of_gas_1312", %"$have_gas_1303" + %"$consume_1314" = sub i64 %"$gasrem_1310", 1 + store i64 %"$consume_1314", i64* @_gasrem, align 8 + %"$BoolUtils.negb_33" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_1315" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_1316" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1315", 0 + %"$BoolUtils.negb_envptr_1317" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1315", 1 + %"$b_1318" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$BoolUtils.negb_call_1319" = call %TName_Bool* %"$BoolUtils.negb_fptr_1316"(i8* %"$BoolUtils.negb_envptr_1317", %TName_Bool* %"$b_1318"), !dbg !78 + store %TName_Bool* %"$BoolUtils.negb_call_1319", %TName_Bool** %"$BoolUtils.negb_33", align 8, !dbg !78 + %"$$BoolUtils.negb_33_1320" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_33", align 8 + store %TName_Bool* %"$$BoolUtils.negb_33_1320", %TName_Bool** %"$retval_146", align 8, !dbg !78 + %"$$retval_146_1321" = load %TName_Bool*, %TName_Bool** %"$retval_146", align 8 + ret %TName_Bool* %"$$retval_146_1321" } -define internal %TName_Bool* @"$fundef_264"(%"$$fundef_264_env_432"* %0, [20 x i8]* %1) !dbg !105 { +define internal %TName_Bool* @"$fundef_147"(%"$$fundef_147_env_302"* %0, %TName_List_ByStr20* %1, [20 x i8]* %2) !dbg !79 { entry: - %bs = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_264_env_ListUtils.list_mem_1429" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %0, i32 0, i32 0 - %"$ListUtils.list_mem_envload_1430" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_264_env_ListUtils.list_mem_1429", align 8 + %bs = load [20 x i8], [20 x i8]* %2, align 1 + %"$$fundef_147_env_ListUtils.list_mem_1249" = getelementptr inbounds %"$$fundef_147_env_302", %"$$fundef_147_env_302"* %0, i32 0, i32 0 + %"$ListUtils.list_mem_envload_1250" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_147_env_ListUtils.list_mem_1249", align 8 %ListUtils.list_mem = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_envload_1430", { i8*, i8* }** %ListUtils.list_mem, align 8 - %"$$fundef_264_env_list_1431" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %0, i32 0, i32 1 - %"$list_envload_1432" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_264_env_list_1431", align 8 - %list = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$list_envload_1432", %TName_List_ByStr20** %list, align 8 - %"$$fundef_264_env_ud-registry.eqByStr20_1433" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %0, i32 0, i32 2 - %"$ud-registry.eqByStr20_envload_1434" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_264_env_ud-registry.eqByStr20_1433", align 8 + store { i8*, i8* }* %"$ListUtils.list_mem_envload_1250", { i8*, i8* }** %ListUtils.list_mem, align 8 + %"$$fundef_147_env_ud-registry.eqByStr20_1251" = getelementptr inbounds %"$$fundef_147_env_302", %"$$fundef_147_env_302"* %0, i32 0, i32 1 + %"$ud-registry.eqByStr20_envload_1252" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_147_env_ud-registry.eqByStr20_1251", align 8 %ud-registry.eqByStr20 = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_envload_1434", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 - %"$retval_265" = alloca %TName_Bool*, align 8 - %"$gasrem_1435" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1436" = icmp ugt i64 1, %"$gasrem_1435" - br i1 %"$gascmp_1436", label %"$out_of_gas_1437", label %"$have_gas_1438" + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_envload_1252", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 + %"$retval_148" = alloca %TName_Bool*, align 8 + %"$gasrem_1253" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1254" = icmp ugt i64 1, %"$gasrem_1253" + br i1 %"$gascmp_1254", label %"$out_of_gas_1255", label %"$have_gas_1256" -"$out_of_gas_1437": ; preds = %entry +"$out_of_gas_1255": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1438" + br label %"$have_gas_1256" -"$have_gas_1438": ; preds = %"$out_of_gas_1437", %entry - %"$consume_1439" = sub i64 %"$gasrem_1435", 1 - store i64 %"$consume_1439", i64* @_gasrem, align 8 +"$have_gas_1256": ; preds = %"$out_of_gas_1255", %entry + %"$consume_1257" = sub i64 %"$gasrem_1253", 1 + store i64 %"$consume_1257", i64* @_gasrem, align 8 %listMemByStr20 = alloca { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1440" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1441" = icmp ugt i64 1, %"$gasrem_1440" - br i1 %"$gascmp_1441", label %"$out_of_gas_1442", label %"$have_gas_1443" - -"$out_of_gas_1442": ; preds = %"$have_gas_1438" - call void @_out_of_gas() - br label %"$have_gas_1443" - -"$have_gas_1443": ; preds = %"$out_of_gas_1442", %"$have_gas_1438" - %"$consume_1444" = sub i64 %"$gasrem_1440", 1 - store i64 %"$consume_1444", i64* @_gasrem, align 8 - %"$ListUtils.list_mem_1445" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 - %"$ListUtils.list_mem_1446" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_mem_1445", i32 0 - %"$ListUtils.list_mem_1447" = bitcast { i8*, i8* }* %"$ListUtils.list_mem_1446" to { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_mem_1448" = load { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_mem_1447", align 8 - %"$ListUtils.list_mem_fptr_1449" = extractvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_mem_1448", 0 - %"$ListUtils.list_mem_envptr_1450" = extractvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_mem_1448", 1 - %"$ListUtils.list_mem_call_1451" = call { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_mem_fptr_1449"(i8* %"$ListUtils.list_mem_envptr_1450"), !dbg !106 - store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_mem_call_1451", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %listMemByStr20, align 8, !dbg !107 - %"$gasrem_1452" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1453" = icmp ugt i64 1, %"$gasrem_1452" - br i1 %"$gascmp_1453", label %"$out_of_gas_1454", label %"$have_gas_1455" + %"$gasrem_1258" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1259" = icmp ugt i64 1, %"$gasrem_1258" + br i1 %"$gascmp_1259", label %"$out_of_gas_1260", label %"$have_gas_1261" -"$out_of_gas_1454": ; preds = %"$have_gas_1443" +"$out_of_gas_1260": ; preds = %"$have_gas_1256" call void @_out_of_gas() - br label %"$have_gas_1455" + br label %"$have_gas_1261" -"$have_gas_1455": ; preds = %"$out_of_gas_1454", %"$have_gas_1443" - %"$consume_1456" = sub i64 %"$gasrem_1452", 1 - store i64 %"$consume_1456", i64* @_gasrem, align 8 +"$have_gas_1261": ; preds = %"$out_of_gas_1260", %"$have_gas_1256" + %"$consume_1262" = sub i64 %"$gasrem_1258", 1 + store i64 %"$consume_1262", i64* @_gasrem, align 8 + %"$ListUtils.list_mem_1263" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 + %"$ListUtils.list_mem_1264" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_mem_1263", i32 0 + %"$ListUtils.list_mem_1265" = bitcast { i8*, i8* }* %"$ListUtils.list_mem_1264" to { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_mem_1266" = load { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_mem_1265", align 8 + %"$ListUtils.list_mem_fptr_1267" = extractvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_mem_1266", 0 + %"$ListUtils.list_mem_envptr_1268" = extractvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_mem_1266", 1 + %"$ListUtils.list_mem_call_1269" = call { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_mem_fptr_1267"(i8* %"$ListUtils.list_mem_envptr_1268"), !dbg !80 + store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_mem_call_1269", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %listMemByStr20, align 8, !dbg !81 + %"$gasrem_1270" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1271" = icmp ugt i64 1, %"$gasrem_1270" + br i1 %"$gascmp_1271", label %"$out_of_gas_1272", label %"$have_gas_1273" + +"$out_of_gas_1272": ; preds = %"$have_gas_1261" + call void @_out_of_gas() + br label %"$have_gas_1273" + +"$have_gas_1273": ; preds = %"$out_of_gas_1272", %"$have_gas_1261" + %"$consume_1274" = sub i64 %"$gasrem_1270", 1 + store i64 %"$consume_1274", i64* @_gasrem, align 8 %"$listMemByStr20_30" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$listMemByStr20_1457" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %listMemByStr20, align 8 - %"$listMemByStr20_fptr_1458" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listMemByStr20_1457", 0 - %"$listMemByStr20_envptr_1459" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listMemByStr20_1457", 1 - %"$ud-registry.eqByStr20_1460" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 - %"$listMemByStr20_call_1461" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_fptr_1458"(i8* %"$listMemByStr20_envptr_1459", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_1460"), !dbg !108 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_call_1461", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_30", align 8, !dbg !108 + %"$listMemByStr20_1275" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %listMemByStr20, align 8 + %"$listMemByStr20_fptr_1276" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listMemByStr20_1275", 0 + %"$listMemByStr20_envptr_1277" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listMemByStr20_1275", 1 + %"$ud-registry.eqByStr20_1278" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 + %"$listMemByStr20_call_1279" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_fptr_1276"(i8* %"$listMemByStr20_envptr_1277", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_1278"), !dbg !82 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_call_1279", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_30", align 8, !dbg !82 %"$listMemByStr20_31" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$listMemByStr20_30_1462" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_30", align 8 - %"$$listMemByStr20_30_fptr_1463" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_30_1462", 0 - %"$$listMemByStr20_30_envptr_1464" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_30_1462", 1 - %"$$listMemByStr20_30_bs_1465" = alloca [20 x i8], align 1 - store [20 x i8] %bs, [20 x i8]* %"$$listMemByStr20_30_bs_1465", align 1 - %"$$listMemByStr20_30_call_1466" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_30_fptr_1463"(i8* %"$$listMemByStr20_30_envptr_1464", [20 x i8]* %"$$listMemByStr20_30_bs_1465"), !dbg !108 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_30_call_1466", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_31", align 8, !dbg !108 + %"$$listMemByStr20_30_1280" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_30", align 8 + %"$$listMemByStr20_30_fptr_1281" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_30_1280", 0 + %"$$listMemByStr20_30_envptr_1282" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_30_1280", 1 + %"$$listMemByStr20_30_bs_1283" = alloca [20 x i8], align 1 + store [20 x i8] %bs, [20 x i8]* %"$$listMemByStr20_30_bs_1283", align 1 + %"$$listMemByStr20_30_call_1284" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_30_fptr_1281"(i8* %"$$listMemByStr20_30_envptr_1282", [20 x i8]* %"$$listMemByStr20_30_bs_1283"), !dbg !82 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_30_call_1284", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_31", align 8, !dbg !82 %"$listMemByStr20_32" = alloca %TName_Bool*, align 8 - %"$$listMemByStr20_31_1467" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_31", align 8 - %"$$listMemByStr20_31_fptr_1468" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_31_1467", 0 - %"$$listMemByStr20_31_envptr_1469" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_31_1467", 1 - %"$list_1470" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 - %"$$listMemByStr20_31_call_1471" = call %TName_Bool* %"$$listMemByStr20_31_fptr_1468"(i8* %"$$listMemByStr20_31_envptr_1469", %TName_List_ByStr20* %"$list_1470"), !dbg !108 - store %TName_Bool* %"$$listMemByStr20_31_call_1471", %TName_Bool** %"$listMemByStr20_32", align 8, !dbg !108 - %"$$listMemByStr20_32_1472" = load %TName_Bool*, %TName_Bool** %"$listMemByStr20_32", align 8 - store %TName_Bool* %"$$listMemByStr20_32_1472", %TName_Bool** %"$retval_265", align 8, !dbg !108 - %"$$retval_265_1473" = load %TName_Bool*, %TName_Bool** %"$retval_265", align 8 - ret %TName_Bool* %"$$retval_265_1473" -} - -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_262"(%"$$fundef_262_env_433"* %0, %TName_List_ByStr20* %1) !dbg !109 { -entry: - %"$$fundef_262_env_ListUtils.list_mem_1410" = getelementptr inbounds %"$$fundef_262_env_433", %"$$fundef_262_env_433"* %0, i32 0, i32 0 - %"$ListUtils.list_mem_envload_1411" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_262_env_ListUtils.list_mem_1410", align 8 - %ListUtils.list_mem = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_envload_1411", { i8*, i8* }** %ListUtils.list_mem, align 8 - %"$$fundef_262_env_ud-registry.eqByStr20_1412" = getelementptr inbounds %"$$fundef_262_env_433", %"$$fundef_262_env_433"* %0, i32 0, i32 1 - %"$ud-registry.eqByStr20_envload_1413" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_262_env_ud-registry.eqByStr20_1412", align 8 - %ud-registry.eqByStr20 = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_envload_1413", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 - %"$retval_263" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1414" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1415" = icmp ugt i64 1, %"$gasrem_1414" - br i1 %"$gascmp_1415", label %"$out_of_gas_1416", label %"$have_gas_1417" - -"$out_of_gas_1416": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1417" - -"$have_gas_1417": ; preds = %"$out_of_gas_1416", %entry - %"$consume_1418" = sub i64 %"$gasrem_1414", 1 - store i64 %"$consume_1418", i64* @_gasrem, align 8 - %"$$fundef_264_envp_1419_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_264_envp_1419_salloc" = call i8* @_salloc(i8* %"$$fundef_264_envp_1419_load", i64 32) - %"$$fundef_264_envp_1419" = bitcast i8* %"$$fundef_264_envp_1419_salloc" to %"$$fundef_264_env_432"* - %"$$fundef_264_env_voidp_1421" = bitcast %"$$fundef_264_env_432"* %"$$fundef_264_envp_1419" to i8* - %"$$fundef_264_cloval_1422" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_264_env_432"*, [20 x i8]*)* @"$fundef_264" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_264_env_voidp_1421", 1 - %"$$fundef_264_env_ListUtils.list_mem_1423" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %"$$fundef_264_envp_1419", i32 0, i32 0 - %"$ListUtils.list_mem_1424" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_1424", { i8*, i8* }** %"$$fundef_264_env_ListUtils.list_mem_1423", align 8 - %"$$fundef_264_env_list_1425" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %"$$fundef_264_envp_1419", i32 0, i32 1 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_264_env_list_1425", align 8 - %"$$fundef_264_env_ud-registry.eqByStr20_1426" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %"$$fundef_264_envp_1419", i32 0, i32 2 - %"$ud-registry.eqByStr20_1427" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_1427", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_264_env_ud-registry.eqByStr20_1426", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_264_cloval_1422", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_263", align 8, !dbg !110 - %"$$retval_263_1428" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_263", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_263_1428" + %"$$listMemByStr20_31_1285" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_31", align 8 + %"$$listMemByStr20_31_fptr_1286" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_31_1285", 0 + %"$$listMemByStr20_31_envptr_1287" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_31_1285", 1 + %"$$listMemByStr20_31_call_1288" = call %TName_Bool* %"$$listMemByStr20_31_fptr_1286"(i8* %"$$listMemByStr20_31_envptr_1287", %TName_List_ByStr20* %1), !dbg !82 + store %TName_Bool* %"$$listMemByStr20_31_call_1288", %TName_Bool** %"$listMemByStr20_32", align 8, !dbg !82 + %"$$listMemByStr20_32_1289" = load %TName_Bool*, %TName_Bool** %"$listMemByStr20_32", align 8 + store %TName_Bool* %"$$listMemByStr20_32_1289", %TName_Bool** %"$retval_148", align 8, !dbg !82 + %"$$retval_148_1290" = load %TName_Bool*, %TName_Bool** %"$retval_148", align 8 + ret %TName_Bool* %"$$retval_148_1290" } -define internal %TName_Bool* @"$fundef_268"(%"$$fundef_268_env_434"* %0, [20 x i8]* %1) !dbg !111 { +define internal %TName_Bool* @"$fundef_151"(%"$$fundef_151_env_303"* %0, [20 x i8]* %1) !dbg !83 { entry: %bs2 = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_268_env_bs1_1394" = getelementptr inbounds %"$$fundef_268_env_434", %"$$fundef_268_env_434"* %0, i32 0, i32 0 - %"$bs1_envload_1395" = load [20 x i8], [20 x i8]* %"$$fundef_268_env_bs1_1394", align 1 + %"$$fundef_151_env_bs1_1233" = getelementptr inbounds %"$$fundef_151_env_303", %"$$fundef_151_env_303"* %0, i32 0, i32 0 + %"$bs1_envload_1234" = load [20 x i8], [20 x i8]* %"$$fundef_151_env_bs1_1233", align 1 %bs1 = alloca [20 x i8], align 1 - store [20 x i8] %"$bs1_envload_1395", [20 x i8]* %bs1, align 1 - %"$retval_269" = alloca %TName_Bool*, align 8 - %"$gasrem_1396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1397" = icmp ugt i64 20, %"$gasrem_1396" - br i1 %"$gascmp_1397", label %"$out_of_gas_1398", label %"$have_gas_1399" - -"$out_of_gas_1398": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1399" - -"$have_gas_1399": ; preds = %"$out_of_gas_1398", %entry - %"$consume_1400" = sub i64 %"$gasrem_1396", 20 - store i64 %"$consume_1400", i64* @_gasrem, align 8 - %"$execptr_load_1401" = load i8*, i8** @_execptr, align 8 - %"$eq_bs1_1402" = alloca [20 x i8], align 1 - %"$bs1_1403" = load [20 x i8], [20 x i8]* %bs1, align 1 - store [20 x i8] %"$bs1_1403", [20 x i8]* %"$eq_bs1_1402", align 1 - %"$$eq_bs1_1402_1404" = bitcast [20 x i8]* %"$eq_bs1_1402" to i8* - %"$eq_bs2_1405" = alloca [20 x i8], align 1 - store [20 x i8] %bs2, [20 x i8]* %"$eq_bs2_1405", align 1 - %"$$eq_bs2_1405_1406" = bitcast [20 x i8]* %"$eq_bs2_1405" to i8* - %"$eq_call_1407" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1401", i32 20, i8* %"$$eq_bs1_1402_1404", i8* %"$$eq_bs2_1405_1406"), !dbg !112 - store %TName_Bool* %"$eq_call_1407", %TName_Bool** %"$retval_269", align 8, !dbg !112 - %"$$retval_269_1409" = load %TName_Bool*, %TName_Bool** %"$retval_269", align 8 - ret %TName_Bool* %"$$retval_269_1409" + store [20 x i8] %"$bs1_envload_1234", [20 x i8]* %bs1, align 1 + %"$retval_152" = alloca %TName_Bool*, align 8 + %"$gasrem_1235" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1236" = icmp ugt i64 20, %"$gasrem_1235" + br i1 %"$gascmp_1236", label %"$out_of_gas_1237", label %"$have_gas_1238" + +"$out_of_gas_1237": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1238" + +"$have_gas_1238": ; preds = %"$out_of_gas_1237", %entry + %"$consume_1239" = sub i64 %"$gasrem_1235", 20 + store i64 %"$consume_1239", i64* @_gasrem, align 8 + %"$execptr_load_1240" = load i8*, i8** @_execptr, align 8 + %"$eq_bs1_1241" = alloca [20 x i8], align 1 + %"$bs1_1242" = load [20 x i8], [20 x i8]* %bs1, align 1 + store [20 x i8] %"$bs1_1242", [20 x i8]* %"$eq_bs1_1241", align 1 + %"$$eq_bs1_1241_1243" = bitcast [20 x i8]* %"$eq_bs1_1241" to i8* + %"$eq_bs2_1244" = alloca [20 x i8], align 1 + store [20 x i8] %bs2, [20 x i8]* %"$eq_bs2_1244", align 1 + %"$$eq_bs2_1244_1245" = bitcast [20 x i8]* %"$eq_bs2_1244" to i8* + %"$eq_call_1246" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1240", i32 20, i8* %"$$eq_bs1_1241_1243", i8* %"$$eq_bs2_1244_1245"), !dbg !84 + store %TName_Bool* %"$eq_call_1246", %TName_Bool** %"$retval_152", align 8, !dbg !84 + %"$$retval_152_1248" = load %TName_Bool*, %TName_Bool** %"$retval_152", align 8 + ret %TName_Bool* %"$$retval_152_1248" } -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_266"(%"$$fundef_266_env_435"* %0, [20 x i8]* %1) !dbg !113 { +define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_149"(%"$$fundef_149_env_304"* %0, [20 x i8]* %1) !dbg !85 { entry: %bs1 = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_267" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1383" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1384" = icmp ugt i64 1, %"$gasrem_1383" - br i1 %"$gascmp_1384", label %"$out_of_gas_1385", label %"$have_gas_1386" - -"$out_of_gas_1385": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1386" - -"$have_gas_1386": ; preds = %"$out_of_gas_1385", %entry - %"$consume_1387" = sub i64 %"$gasrem_1383", 1 - store i64 %"$consume_1387", i64* @_gasrem, align 8 - %"$$fundef_268_envp_1388_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_268_envp_1388_salloc" = call i8* @_salloc(i8* %"$$fundef_268_envp_1388_load", i64 20) - %"$$fundef_268_envp_1388" = bitcast i8* %"$$fundef_268_envp_1388_salloc" to %"$$fundef_268_env_434"* - %"$$fundef_268_env_voidp_1390" = bitcast %"$$fundef_268_env_434"* %"$$fundef_268_envp_1388" to i8* - %"$$fundef_268_cloval_1391" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_268_env_434"*, [20 x i8]*)* @"$fundef_268" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_268_env_voidp_1390", 1 - %"$$fundef_268_env_bs1_1392" = getelementptr inbounds %"$$fundef_268_env_434", %"$$fundef_268_env_434"* %"$$fundef_268_envp_1388", i32 0, i32 0 - store [20 x i8] %bs1, [20 x i8]* %"$$fundef_268_env_bs1_1392", align 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_268_cloval_1391", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_267", align 8, !dbg !114 - %"$$retval_267_1393" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_267", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_267_1393" + %"$retval_150" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 + %"$gasrem_1222" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1223" = icmp ugt i64 1, %"$gasrem_1222" + br i1 %"$gascmp_1223", label %"$out_of_gas_1224", label %"$have_gas_1225" + +"$out_of_gas_1224": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1225" + +"$have_gas_1225": ; preds = %"$out_of_gas_1224", %entry + %"$consume_1226" = sub i64 %"$gasrem_1222", 1 + store i64 %"$consume_1226", i64* @_gasrem, align 8 + %"$$fundef_151_envp_1227_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_151_envp_1227_salloc" = call i8* @_salloc(i8* %"$$fundef_151_envp_1227_load", i64 20) + %"$$fundef_151_envp_1227" = bitcast i8* %"$$fundef_151_envp_1227_salloc" to %"$$fundef_151_env_303"* + %"$$fundef_151_env_voidp_1229" = bitcast %"$$fundef_151_env_303"* %"$$fundef_151_envp_1227" to i8* + %"$$fundef_151_cloval_1230" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_151_env_303"*, [20 x i8]*)* @"$fundef_151" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_151_env_voidp_1229", 1 + %"$$fundef_151_env_bs1_1231" = getelementptr inbounds %"$$fundef_151_env_303", %"$$fundef_151_env_303"* %"$$fundef_151_envp_1227", i32 0, i32 0 + store [20 x i8] %bs1, [20 x i8]* %"$$fundef_151_env_bs1_1231", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_151_cloval_1230", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_150", align 8, !dbg !86 + %"$$retval_150_1232" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_150", align 8 + ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_150_1232" } -define internal %TName_List_Message* @"$fundef_270"(%"$$fundef_270_env_436"* %0, i8* %1) !dbg !115 { +define internal %TName_List_Message* @"$fundef_153"(%"$$fundef_153_env_305"* %0, i8* %1) !dbg !87 { entry: - %"$$fundef_270_env_ud-registry.nilMessage_1369" = getelementptr inbounds %"$$fundef_270_env_436", %"$$fundef_270_env_436"* %0, i32 0, i32 0 - %"$ud-registry.nilMessage_envload_1370" = load %TName_List_Message*, %TName_List_Message** %"$$fundef_270_env_ud-registry.nilMessage_1369", align 8 + %"$$fundef_153_env_ud-registry.nilMessage_1208" = getelementptr inbounds %"$$fundef_153_env_305", %"$$fundef_153_env_305"* %0, i32 0, i32 0 + %"$ud-registry.nilMessage_envload_1209" = load %TName_List_Message*, %TName_List_Message** %"$$fundef_153_env_ud-registry.nilMessage_1208", align 8 %ud-registry.nilMessage = alloca %TName_List_Message*, align 8 - store %TName_List_Message* %"$ud-registry.nilMessage_envload_1370", %TName_List_Message** %ud-registry.nilMessage, align 8 - %"$retval_271" = alloca %TName_List_Message*, align 8 - %"$gasrem_1371" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1372" = icmp ugt i64 1, %"$gasrem_1371" - br i1 %"$gascmp_1372", label %"$out_of_gas_1373", label %"$have_gas_1374" - -"$out_of_gas_1373": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1374" - -"$have_gas_1374": ; preds = %"$out_of_gas_1373", %entry - %"$consume_1375" = sub i64 %"$gasrem_1371", 1 - store i64 %"$consume_1375", i64* @_gasrem, align 8 - %"$ud-registry.nilMessage_1376" = load %TName_List_Message*, %TName_List_Message** %ud-registry.nilMessage, align 8 - %"$adtval_1377_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1377_salloc" = call i8* @_salloc(i8* %"$adtval_1377_load", i64 17) - %"$adtval_1377" = bitcast i8* %"$adtval_1377_salloc" to %CName_Cons_Message* - %"$adtgep_1378" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1377", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1378", align 1 - %"$adtgep_1379" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1377", i32 0, i32 1 - store i8* %1, i8** %"$adtgep_1379", align 8 - %"$adtgep_1380" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1377", i32 0, i32 2 - store %TName_List_Message* %"$ud-registry.nilMessage_1376", %TName_List_Message** %"$adtgep_1380", align 8 - %"$adtptr_1381" = bitcast %CName_Cons_Message* %"$adtval_1377" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_1381", %TName_List_Message** %"$retval_271", align 8, !dbg !116 - %"$$retval_271_1382" = load %TName_List_Message*, %TName_List_Message** %"$retval_271", align 8 - ret %TName_List_Message* %"$$retval_271_1382" + store %TName_List_Message* %"$ud-registry.nilMessage_envload_1209", %TName_List_Message** %ud-registry.nilMessage, align 8 + %"$retval_154" = alloca %TName_List_Message*, align 8 + %"$gasrem_1210" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1211" = icmp ugt i64 1, %"$gasrem_1210" + br i1 %"$gascmp_1211", label %"$out_of_gas_1212", label %"$have_gas_1213" + +"$out_of_gas_1212": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1213" + +"$have_gas_1213": ; preds = %"$out_of_gas_1212", %entry + %"$consume_1214" = sub i64 %"$gasrem_1210", 1 + store i64 %"$consume_1214", i64* @_gasrem, align 8 + %"$ud-registry.nilMessage_1215" = load %TName_List_Message*, %TName_List_Message** %ud-registry.nilMessage, align 8 + %"$adtval_1216_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1216_salloc" = call i8* @_salloc(i8* %"$adtval_1216_load", i64 17) + %"$adtval_1216" = bitcast i8* %"$adtval_1216_salloc" to %CName_Cons_Message* + %"$adtgep_1217" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1216", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1217", align 1 + %"$adtgep_1218" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1216", i32 0, i32 1 + store i8* %1, i8** %"$adtgep_1218", align 8 + %"$adtgep_1219" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1216", i32 0, i32 2 + store %TName_List_Message* %"$ud-registry.nilMessage_1215", %TName_List_Message** %"$adtgep_1219", align 8 + %"$adtptr_1220" = bitcast %CName_Cons_Message* %"$adtval_1216" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_1220", %TName_List_Message** %"$retval_154", align 8, !dbg !88 + %"$$retval_154_1221" = load %TName_List_Message*, %TName_List_Message** %"$retval_154", align 8 + ret %TName_List_Message* %"$$retval_154_1221" } -define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_182"(%"$$fundef_182_env_437"* %0, [20 x i8]* %1) !dbg !117 { +define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_93"(%"$$fundef_93_env_306"* %0, [20 x i8]* %1) !dbg !89 { entry: %m = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_182_env_ListUtils.list_exists_1320" = getelementptr inbounds %"$$fundef_182_env_437", %"$$fundef_182_env_437"* %0, i32 0, i32 0 - %"$ListUtils.list_exists_envload_1321" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_182_env_ListUtils.list_exists_1320", align 8 + %"$$fundef_93_env_ListUtils.list_exists_1159" = getelementptr inbounds %"$$fundef_93_env_306", %"$$fundef_93_env_306"* %0, i32 0, i32 0 + %"$ListUtils.list_exists_envload_1160" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_93_env_ListUtils.list_exists_1159", align 8 %ListUtils.list_exists = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_envload_1321", { i8*, i8* }** %ListUtils.list_exists, align 8 - %"$$fundef_182_env_f_1322" = getelementptr inbounds %"$$fundef_182_env_437", %"$$fundef_182_env_437"* %0, i32 0, i32 1 - %"$f_envload_1323" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_182_env_f_1322", align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_envload_1160", { i8*, i8* }** %ListUtils.list_exists, align 8 + %"$$fundef_93_env_f_1161" = getelementptr inbounds %"$$fundef_93_env_306", %"$$fundef_93_env_306"* %0, i32 0, i32 1 + %"$f_envload_1162" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_93_env_f_1161", align 8 %f = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_1323", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$retval_183" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_1324" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1325" = icmp ugt i64 1, %"$gasrem_1324" - br i1 %"$gascmp_1325", label %"$out_of_gas_1326", label %"$have_gas_1327" + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_1162", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$retval_94" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_1163" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1164" = icmp ugt i64 1, %"$gasrem_1163" + br i1 %"$gascmp_1164", label %"$out_of_gas_1165", label %"$have_gas_1166" -"$out_of_gas_1326": ; preds = %entry +"$out_of_gas_1165": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1327" + br label %"$have_gas_1166" -"$have_gas_1327": ; preds = %"$out_of_gas_1326", %entry - %"$consume_1328" = sub i64 %"$gasrem_1324", 1 - store i64 %"$consume_1328", i64* @_gasrem, align 8 +"$have_gas_1166": ; preds = %"$out_of_gas_1165", %entry + %"$consume_1167" = sub i64 %"$gasrem_1163", 1 + store i64 %"$consume_1167", i64* @_gasrem, align 8 %ex_pred = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1330" = icmp ugt i64 1, %"$gasrem_1329" - br i1 %"$gascmp_1330", label %"$out_of_gas_1331", label %"$have_gas_1332" + %"$gasrem_1168" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1169" = icmp ugt i64 1, %"$gasrem_1168" + br i1 %"$gascmp_1169", label %"$out_of_gas_1170", label %"$have_gas_1171" -"$out_of_gas_1331": ; preds = %"$have_gas_1327" +"$out_of_gas_1170": ; preds = %"$have_gas_1166" call void @_out_of_gas() - br label %"$have_gas_1332" + br label %"$have_gas_1171" -"$have_gas_1332": ; preds = %"$out_of_gas_1331", %"$have_gas_1327" - %"$consume_1333" = sub i64 %"$gasrem_1329", 1 - store i64 %"$consume_1333", i64* @_gasrem, align 8 +"$have_gas_1171": ; preds = %"$out_of_gas_1170", %"$have_gas_1166" + %"$consume_1172" = sub i64 %"$gasrem_1168", 1 + store i64 %"$consume_1172", i64* @_gasrem, align 8 %"$f_28" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_1334" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$f_fptr_1335" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1334", 0 - %"$f_envptr_1336" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1334", 1 - %"$f_m_1337" = alloca [20 x i8], align 1 - store [20 x i8] %m, [20 x i8]* %"$f_m_1337", align 1 - %"$f_call_1338" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_fptr_1335"(i8* %"$f_envptr_1336", [20 x i8]* %"$f_m_1337"), !dbg !119 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_call_1338", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_28", align 8, !dbg !119 - %"$$f_28_1339" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_28", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$f_28_1339", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8, !dbg !119 - %"$gasrem_1340" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1341" = icmp ugt i64 1, %"$gasrem_1340" - br i1 %"$gascmp_1341", label %"$out_of_gas_1342", label %"$have_gas_1343" - -"$out_of_gas_1342": ; preds = %"$have_gas_1332" - call void @_out_of_gas() - br label %"$have_gas_1343" - -"$have_gas_1343": ; preds = %"$out_of_gas_1342", %"$have_gas_1332" - %"$consume_1344" = sub i64 %"$gasrem_1340", 1 - store i64 %"$consume_1344", i64* @_gasrem, align 8 + %"$f_1173" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$f_fptr_1174" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1173", 0 + %"$f_envptr_1175" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1173", 1 + %"$f_m_1176" = alloca [20 x i8], align 1 + store [20 x i8] %m, [20 x i8]* %"$f_m_1176", align 1 + %"$f_call_1177" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_fptr_1174"(i8* %"$f_envptr_1175", [20 x i8]* %"$f_m_1176"), !dbg !91 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_call_1177", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_28", align 8, !dbg !91 + %"$$f_28_1178" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_28", align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$f_28_1178", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8, !dbg !91 + %"$gasrem_1179" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1180" = icmp ugt i64 1, %"$gasrem_1179" + br i1 %"$gascmp_1180", label %"$out_of_gas_1181", label %"$have_gas_1182" + +"$out_of_gas_1181": ; preds = %"$have_gas_1171" + call void @_out_of_gas() + br label %"$have_gas_1182" + +"$have_gas_1182": ; preds = %"$out_of_gas_1181", %"$have_gas_1171" + %"$consume_1183" = sub i64 %"$gasrem_1179", 1 + store i64 %"$consume_1183", i64* @_gasrem, align 8 %ex = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1345" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1346" = icmp ugt i64 1, %"$gasrem_1345" - br i1 %"$gascmp_1346", label %"$out_of_gas_1347", label %"$have_gas_1348" - -"$out_of_gas_1347": ; preds = %"$have_gas_1343" - call void @_out_of_gas() - br label %"$have_gas_1348" - -"$have_gas_1348": ; preds = %"$out_of_gas_1347", %"$have_gas_1343" - %"$consume_1349" = sub i64 %"$gasrem_1345", 1 - store i64 %"$consume_1349", i64* @_gasrem, align 8 - %"$ListUtils.list_exists_1350" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 - %"$ListUtils.list_exists_1351" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_exists_1350", i32 0 - %"$ListUtils.list_exists_1352" = bitcast { i8*, i8* }* %"$ListUtils.list_exists_1351" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_exists_1353" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_exists_1352", align 8 - %"$ListUtils.list_exists_fptr_1354" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1353", 0 - %"$ListUtils.list_exists_envptr_1355" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1353", 1 - %"$ListUtils.list_exists_call_1356" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_fptr_1354"(i8* %"$ListUtils.list_exists_envptr_1355"), !dbg !120 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_call_1356", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8, !dbg !121 - %"$gasrem_1357" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1358" = icmp ugt i64 1, %"$gasrem_1357" - br i1 %"$gascmp_1358", label %"$out_of_gas_1359", label %"$have_gas_1360" - -"$out_of_gas_1359": ; preds = %"$have_gas_1348" - call void @_out_of_gas() - br label %"$have_gas_1360" - -"$have_gas_1360": ; preds = %"$out_of_gas_1359", %"$have_gas_1348" - %"$consume_1361" = sub i64 %"$gasrem_1357", 1 - store i64 %"$consume_1361", i64* @_gasrem, align 8 + %"$gasrem_1184" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1185" = icmp ugt i64 1, %"$gasrem_1184" + br i1 %"$gascmp_1185", label %"$out_of_gas_1186", label %"$have_gas_1187" + +"$out_of_gas_1186": ; preds = %"$have_gas_1182" + call void @_out_of_gas() + br label %"$have_gas_1187" + +"$have_gas_1187": ; preds = %"$out_of_gas_1186", %"$have_gas_1182" + %"$consume_1188" = sub i64 %"$gasrem_1184", 1 + store i64 %"$consume_1188", i64* @_gasrem, align 8 + %"$ListUtils.list_exists_1189" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 + %"$ListUtils.list_exists_1190" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_exists_1189", i32 0 + %"$ListUtils.list_exists_1191" = bitcast { i8*, i8* }* %"$ListUtils.list_exists_1190" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_exists_1192" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_exists_1191", align 8 + %"$ListUtils.list_exists_fptr_1193" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1192", 0 + %"$ListUtils.list_exists_envptr_1194" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1192", 1 + %"$ListUtils.list_exists_call_1195" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_fptr_1193"(i8* %"$ListUtils.list_exists_envptr_1194"), !dbg !92 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_call_1195", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8, !dbg !93 + %"$gasrem_1196" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1197" = icmp ugt i64 1, %"$gasrem_1196" + br i1 %"$gascmp_1197", label %"$out_of_gas_1198", label %"$have_gas_1199" + +"$out_of_gas_1198": ; preds = %"$have_gas_1187" + call void @_out_of_gas() + br label %"$have_gas_1199" + +"$have_gas_1199": ; preds = %"$out_of_gas_1198", %"$have_gas_1187" + %"$consume_1200" = sub i64 %"$gasrem_1196", 1 + store i64 %"$consume_1200", i64* @_gasrem, align 8 %"$ex_29" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$ex_1362" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8 - %"$ex_fptr_1363" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1362", 0 - %"$ex_envptr_1364" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1362", 1 - %"$ex_pred_1365" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 - %"$ex_call_1366" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_fptr_1363"(i8* %"$ex_envptr_1364", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ex_pred_1365"), !dbg !122 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_call_1366", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_29", align 8, !dbg !122 - %"$$ex_29_1367" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_29", align 8 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$ex_29_1367", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_183", align 8, !dbg !122 - %"$$retval_183_1368" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_183", align 8 - ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_183_1368" + %"$ex_1201" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8 + %"$ex_fptr_1202" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1201", 0 + %"$ex_envptr_1203" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1201", 1 + %"$ex_pred_1204" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 + %"$ex_call_1205" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_fptr_1202"(i8* %"$ex_envptr_1203", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ex_pred_1204"), !dbg !94 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_call_1205", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_29", align 8, !dbg !94 + %"$$ex_29_1206" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_29", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$ex_29_1206", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_94", align 8, !dbg !94 + %"$$retval_94_1207" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_94", align 8 + ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_94_1207" } -define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_180"(%"$$fundef_180_env_438"* %0, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !123 { +define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_91"(%"$$fundef_91_env_307"* %0, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !95 { entry: - %"$$fundef_180_env_ListUtils.list_exists_1305" = getelementptr inbounds %"$$fundef_180_env_438", %"$$fundef_180_env_438"* %0, i32 0, i32 0 - %"$ListUtils.list_exists_envload_1306" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_180_env_ListUtils.list_exists_1305", align 8 + %"$$fundef_91_env_ListUtils.list_exists_1144" = getelementptr inbounds %"$$fundef_91_env_307", %"$$fundef_91_env_307"* %0, i32 0, i32 0 + %"$ListUtils.list_exists_envload_1145" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_91_env_ListUtils.list_exists_1144", align 8 %ListUtils.list_exists = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_envload_1306", { i8*, i8* }** %ListUtils.list_exists, align 8 - %"$retval_181" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1307" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1308" = icmp ugt i64 1, %"$gasrem_1307" - br i1 %"$gascmp_1308", label %"$out_of_gas_1309", label %"$have_gas_1310" - -"$out_of_gas_1309": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1310" - -"$have_gas_1310": ; preds = %"$out_of_gas_1309", %entry - %"$consume_1311" = sub i64 %"$gasrem_1307", 1 - store i64 %"$consume_1311", i64* @_gasrem, align 8 - %"$$fundef_182_envp_1312_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_182_envp_1312_salloc" = call i8* @_salloc(i8* %"$$fundef_182_envp_1312_load", i64 24) - %"$$fundef_182_envp_1312" = bitcast i8* %"$$fundef_182_envp_1312_salloc" to %"$$fundef_182_env_437"* - %"$$fundef_182_env_voidp_1314" = bitcast %"$$fundef_182_env_437"* %"$$fundef_182_envp_1312" to i8* - %"$$fundef_182_cloval_1315" = insertvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_182_env_437"*, [20 x i8]*)* @"$fundef_182" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_182_env_voidp_1314", 1 - %"$$fundef_182_env_ListUtils.list_exists_1316" = getelementptr inbounds %"$$fundef_182_env_437", %"$$fundef_182_env_437"* %"$$fundef_182_envp_1312", i32 0, i32 0 - %"$ListUtils.list_exists_1317" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_1317", { i8*, i8* }** %"$$fundef_182_env_ListUtils.list_exists_1316", align 8 - %"$$fundef_182_env_f_1318" = getelementptr inbounds %"$$fundef_182_env_437", %"$$fundef_182_env_437"* %"$$fundef_182_envp_1312", i32 0, i32 1 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_182_env_f_1318", align 8 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_182_cloval_1315", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_181", align 8, !dbg !124 - %"$$retval_181_1319" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_181", align 8 - ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_181_1319" + store { i8*, i8* }* %"$ListUtils.list_exists_envload_1145", { i8*, i8* }** %ListUtils.list_exists, align 8 + %"$retval_92" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 + %"$gasrem_1146" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1147" = icmp ugt i64 1, %"$gasrem_1146" + br i1 %"$gascmp_1147", label %"$out_of_gas_1148", label %"$have_gas_1149" + +"$out_of_gas_1148": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1149" + +"$have_gas_1149": ; preds = %"$out_of_gas_1148", %entry + %"$consume_1150" = sub i64 %"$gasrem_1146", 1 + store i64 %"$consume_1150", i64* @_gasrem, align 8 + %"$$fundef_93_envp_1151_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_93_envp_1151_salloc" = call i8* @_salloc(i8* %"$$fundef_93_envp_1151_load", i64 24) + %"$$fundef_93_envp_1151" = bitcast i8* %"$$fundef_93_envp_1151_salloc" to %"$$fundef_93_env_306"* + %"$$fundef_93_env_voidp_1153" = bitcast %"$$fundef_93_env_306"* %"$$fundef_93_envp_1151" to i8* + %"$$fundef_93_cloval_1154" = insertvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_93_env_306"*, [20 x i8]*)* @"$fundef_93" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_93_env_voidp_1153", 1 + %"$$fundef_93_env_ListUtils.list_exists_1155" = getelementptr inbounds %"$$fundef_93_env_306", %"$$fundef_93_env_306"* %"$$fundef_93_envp_1151", i32 0, i32 0 + %"$ListUtils.list_exists_1156" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_1156", { i8*, i8* }** %"$$fundef_93_env_ListUtils.list_exists_1155", align 8 + %"$$fundef_93_env_f_1157" = getelementptr inbounds %"$$fundef_93_env_306", %"$$fundef_93_env_306"* %"$$fundef_93_envp_1151", i32 0, i32 1 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_93_env_f_1157", align 8 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_93_cloval_1154", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_92", align 8, !dbg !96 + %"$$retval_92_1158" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_92", align 8 + ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_92_1158" } -define internal { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_178"(%"$$fundef_178_env_439"* %0) !dbg !125 { +define internal { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_89"(%"$$fundef_89_env_308"* %0) !dbg !97 { entry: - %"$$fundef_178_env_ListUtils.list_exists_1291" = getelementptr inbounds %"$$fundef_178_env_439", %"$$fundef_178_env_439"* %0, i32 0, i32 0 - %"$ListUtils.list_exists_envload_1292" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_178_env_ListUtils.list_exists_1291", align 8 + %"$$fundef_89_env_ListUtils.list_exists_1130" = getelementptr inbounds %"$$fundef_89_env_308", %"$$fundef_89_env_308"* %0, i32 0, i32 0 + %"$ListUtils.list_exists_envload_1131" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_89_env_ListUtils.list_exists_1130", align 8 %ListUtils.list_exists = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_envload_1292", { i8*, i8* }** %ListUtils.list_exists, align 8 - %"$retval_179" = alloca { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1293" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1294" = icmp ugt i64 1, %"$gasrem_1293" - br i1 %"$gascmp_1294", label %"$out_of_gas_1295", label %"$have_gas_1296" - -"$out_of_gas_1295": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1296" - -"$have_gas_1296": ; preds = %"$out_of_gas_1295", %entry - %"$consume_1297" = sub i64 %"$gasrem_1293", 1 - store i64 %"$consume_1297", i64* @_gasrem, align 8 - %"$$fundef_180_envp_1298_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_180_envp_1298_salloc" = call i8* @_salloc(i8* %"$$fundef_180_envp_1298_load", i64 8) - %"$$fundef_180_envp_1298" = bitcast i8* %"$$fundef_180_envp_1298_salloc" to %"$$fundef_180_env_438"* - %"$$fundef_180_env_voidp_1300" = bitcast %"$$fundef_180_env_438"* %"$$fundef_180_envp_1298" to i8* - %"$$fundef_180_cloval_1301" = insertvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* bitcast ({ { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_180_env_438"*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_180" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_180_env_voidp_1300", 1 - %"$$fundef_180_env_ListUtils.list_exists_1302" = getelementptr inbounds %"$$fundef_180_env_438", %"$$fundef_180_env_438"* %"$$fundef_180_envp_1298", i32 0, i32 0 - %"$ListUtils.list_exists_1303" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_1303", { i8*, i8* }** %"$$fundef_180_env_ListUtils.list_exists_1302", align 8 - store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_180_cloval_1301", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_179", align 8, !dbg !126 - %"$$retval_179_1304" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_179", align 8 - ret { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_179_1304" + store { i8*, i8* }* %"$ListUtils.list_exists_envload_1131", { i8*, i8* }** %ListUtils.list_exists, align 8 + %"$retval_90" = alloca { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 + %"$gasrem_1132" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1133" = icmp ugt i64 1, %"$gasrem_1132" + br i1 %"$gascmp_1133", label %"$out_of_gas_1134", label %"$have_gas_1135" + +"$out_of_gas_1134": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1135" + +"$have_gas_1135": ; preds = %"$out_of_gas_1134", %entry + %"$consume_1136" = sub i64 %"$gasrem_1132", 1 + store i64 %"$consume_1136", i64* @_gasrem, align 8 + %"$$fundef_91_envp_1137_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_91_envp_1137_salloc" = call i8* @_salloc(i8* %"$$fundef_91_envp_1137_load", i64 8) + %"$$fundef_91_envp_1137" = bitcast i8* %"$$fundef_91_envp_1137_salloc" to %"$$fundef_91_env_307"* + %"$$fundef_91_env_voidp_1139" = bitcast %"$$fundef_91_env_307"* %"$$fundef_91_envp_1137" to i8* + %"$$fundef_91_cloval_1140" = insertvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* bitcast ({ { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_91_env_307"*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_91" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_91_env_voidp_1139", 1 + %"$$fundef_91_env_ListUtils.list_exists_1141" = getelementptr inbounds %"$$fundef_91_env_307", %"$$fundef_91_env_307"* %"$$fundef_91_envp_1137", i32 0, i32 0 + %"$ListUtils.list_exists_1142" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_1142", { i8*, i8* }** %"$$fundef_91_env_ListUtils.list_exists_1141", align 8 + store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_91_cloval_1140", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_90", align 8, !dbg !98 + %"$$retval_90_1143" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_90", align 8 + ret { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_90_1143" } -define internal %TName_Bool* @"$fundef_188"(%"$$fundef_188_env_440"* %0, %TName_List_ByStr20* %1) !dbg !127 { +define internal %TName_Bool* @"$fundef_99"(%"$$fundef_99_env_309"* %0, %TName_List_ByStr20* %1) !dbg !99 { entry: - %"$$fundef_188_env_ListUtils.list_find_1217" = getelementptr inbounds %"$$fundef_188_env_440", %"$$fundef_188_env_440"* %0, i32 0, i32 0 - %"$ListUtils.list_find_envload_1218" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_188_env_ListUtils.list_find_1217", align 8 + %"$$fundef_99_env_ListUtils.list_find_1056" = getelementptr inbounds %"$$fundef_99_env_309", %"$$fundef_99_env_309"* %0, i32 0, i32 0 + %"$ListUtils.list_find_envload_1057" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_99_env_ListUtils.list_find_1056", align 8 %ListUtils.list_find = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_envload_1218", { i8*, i8* }** %ListUtils.list_find, align 8 - %"$$fundef_188_env_p_1219" = getelementptr inbounds %"$$fundef_188_env_440", %"$$fundef_188_env_440"* %0, i32 0, i32 1 - %"$p_envload_1220" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_188_env_p_1219", align 8 + store { i8*, i8* }* %"$ListUtils.list_find_envload_1057", { i8*, i8* }** %ListUtils.list_find, align 8 + %"$$fundef_99_env_p_1058" = getelementptr inbounds %"$$fundef_99_env_309", %"$$fundef_99_env_309"* %0, i32 0, i32 1 + %"$p_envload_1059" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_99_env_p_1058", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1220", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$retval_189" = alloca %TName_Bool*, align 8 - %"$gasrem_1221" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1222" = icmp ugt i64 1, %"$gasrem_1221" - br i1 %"$gascmp_1222", label %"$out_of_gas_1223", label %"$have_gas_1224" + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1059", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$retval_100" = alloca %TName_Bool*, align 8 + %"$gasrem_1060" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1061" = icmp ugt i64 1, %"$gasrem_1060" + br i1 %"$gascmp_1061", label %"$out_of_gas_1062", label %"$have_gas_1063" -"$out_of_gas_1223": ; preds = %entry +"$out_of_gas_1062": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1224" + br label %"$have_gas_1063" -"$have_gas_1224": ; preds = %"$out_of_gas_1223", %entry - %"$consume_1225" = sub i64 %"$gasrem_1221", 1 - store i64 %"$consume_1225", i64* @_gasrem, align 8 +"$have_gas_1063": ; preds = %"$out_of_gas_1062", %entry + %"$consume_1064" = sub i64 %"$gasrem_1060", 1 + store i64 %"$consume_1064", i64* @_gasrem, align 8 %find = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1226" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1227" = icmp ugt i64 1, %"$gasrem_1226" - br i1 %"$gascmp_1227", label %"$out_of_gas_1228", label %"$have_gas_1229" - -"$out_of_gas_1228": ; preds = %"$have_gas_1224" - call void @_out_of_gas() - br label %"$have_gas_1229" - -"$have_gas_1229": ; preds = %"$out_of_gas_1228", %"$have_gas_1224" - %"$consume_1230" = sub i64 %"$gasrem_1226", 1 - store i64 %"$consume_1230", i64* @_gasrem, align 8 - %"$ListUtils.list_find_1231" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 - %"$ListUtils.list_find_1232" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_find_1231", i32 0 - %"$ListUtils.list_find_1233" = bitcast { i8*, i8* }* %"$ListUtils.list_find_1232" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_find_1234" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_find_1233", align 8 - %"$ListUtils.list_find_fptr_1235" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1234", 0 - %"$ListUtils.list_find_envptr_1236" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1234", 1 - %"$ListUtils.list_find_call_1237" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_fptr_1235"(i8* %"$ListUtils.list_find_envptr_1236"), !dbg !128 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_call_1237", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8, !dbg !129 - %"$gasrem_1238" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1239" = icmp ugt i64 1, %"$gasrem_1238" - br i1 %"$gascmp_1239", label %"$out_of_gas_1240", label %"$have_gas_1241" - -"$out_of_gas_1240": ; preds = %"$have_gas_1229" - call void @_out_of_gas() - br label %"$have_gas_1241" - -"$have_gas_1241": ; preds = %"$out_of_gas_1240", %"$have_gas_1229" - %"$consume_1242" = sub i64 %"$gasrem_1238", 1 - store i64 %"$consume_1242", i64* @_gasrem, align 8 + %"$gasrem_1065" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1066" = icmp ugt i64 1, %"$gasrem_1065" + br i1 %"$gascmp_1066", label %"$out_of_gas_1067", label %"$have_gas_1068" + +"$out_of_gas_1067": ; preds = %"$have_gas_1063" + call void @_out_of_gas() + br label %"$have_gas_1068" + +"$have_gas_1068": ; preds = %"$out_of_gas_1067", %"$have_gas_1063" + %"$consume_1069" = sub i64 %"$gasrem_1065", 1 + store i64 %"$consume_1069", i64* @_gasrem, align 8 + %"$ListUtils.list_find_1070" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 + %"$ListUtils.list_find_1071" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_find_1070", i32 0 + %"$ListUtils.list_find_1072" = bitcast { i8*, i8* }* %"$ListUtils.list_find_1071" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_find_1073" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_find_1072", align 8 + %"$ListUtils.list_find_fptr_1074" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1073", 0 + %"$ListUtils.list_find_envptr_1075" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1073", 1 + %"$ListUtils.list_find_call_1076" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_fptr_1074"(i8* %"$ListUtils.list_find_envptr_1075"), !dbg !100 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_call_1076", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8, !dbg !101 + %"$gasrem_1077" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1078" = icmp ugt i64 1, %"$gasrem_1077" + br i1 %"$gascmp_1078", label %"$out_of_gas_1079", label %"$have_gas_1080" + +"$out_of_gas_1079": ; preds = %"$have_gas_1068" + call void @_out_of_gas() + br label %"$have_gas_1080" + +"$have_gas_1080": ; preds = %"$out_of_gas_1079", %"$have_gas_1068" + %"$consume_1081" = sub i64 %"$gasrem_1077", 1 + store i64 %"$consume_1081", i64* @_gasrem, align 8 %search = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_1243" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1244" = icmp ugt i64 1, %"$gasrem_1243" - br i1 %"$gascmp_1244", label %"$out_of_gas_1245", label %"$have_gas_1246" + %"$gasrem_1082" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1083" = icmp ugt i64 1, %"$gasrem_1082" + br i1 %"$gascmp_1083", label %"$out_of_gas_1084", label %"$have_gas_1085" -"$out_of_gas_1245": ; preds = %"$have_gas_1241" +"$out_of_gas_1084": ; preds = %"$have_gas_1080" call void @_out_of_gas() - br label %"$have_gas_1246" + br label %"$have_gas_1085" -"$have_gas_1246": ; preds = %"$out_of_gas_1245", %"$have_gas_1241" - %"$consume_1247" = sub i64 %"$gasrem_1243", 1 - store i64 %"$consume_1247", i64* @_gasrem, align 8 +"$have_gas_1085": ; preds = %"$out_of_gas_1084", %"$have_gas_1080" + %"$consume_1086" = sub i64 %"$gasrem_1082", 1 + store i64 %"$consume_1086", i64* @_gasrem, align 8 %"$find_26" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$find_1248" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8 - %"$find_fptr_1249" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1248", 0 - %"$find_envptr_1250" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1248", 1 - %"$p_1251" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$find_call_1252" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_fptr_1249"(i8* %"$find_envptr_1250", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1251"), !dbg !130 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_call_1252", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_26", align 8, !dbg !130 + %"$find_1087" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8 + %"$find_fptr_1088" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1087", 0 + %"$find_envptr_1089" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1087", 1 + %"$p_1090" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$find_call_1091" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_fptr_1088"(i8* %"$find_envptr_1089", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1090"), !dbg !102 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_call_1091", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_26", align 8, !dbg !102 %"$find_27" = alloca %TName_Option_ByStr20*, align 8 - %"$$find_26_1253" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_26", align 8 - %"$$find_26_fptr_1254" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_26_1253", 0 - %"$$find_26_envptr_1255" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_26_1253", 1 - %"$$find_26_call_1256" = call %TName_Option_ByStr20* %"$$find_26_fptr_1254"(i8* %"$$find_26_envptr_1255", %TName_List_ByStr20* %1), !dbg !130 - store %TName_Option_ByStr20* %"$$find_26_call_1256", %TName_Option_ByStr20** %"$find_27", align 8, !dbg !130 - %"$$find_27_1257" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$find_27", align 8 - store %TName_Option_ByStr20* %"$$find_27_1257", %TName_Option_ByStr20** %search, align 8, !dbg !130 - %"$gasrem_1258" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1259" = icmp ugt i64 2, %"$gasrem_1258" - br i1 %"$gascmp_1259", label %"$out_of_gas_1260", label %"$have_gas_1261" + %"$$find_26_1092" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_26", align 8 + %"$$find_26_fptr_1093" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_26_1092", 0 + %"$$find_26_envptr_1094" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_26_1092", 1 + %"$$find_26_call_1095" = call %TName_Option_ByStr20* %"$$find_26_fptr_1093"(i8* %"$$find_26_envptr_1094", %TName_List_ByStr20* %1), !dbg !102 + store %TName_Option_ByStr20* %"$$find_26_call_1095", %TName_Option_ByStr20** %"$find_27", align 8, !dbg !102 + %"$$find_27_1096" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$find_27", align 8 + store %TName_Option_ByStr20* %"$$find_27_1096", %TName_Option_ByStr20** %search, align 8, !dbg !102 + %"$gasrem_1097" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1098" = icmp ugt i64 2, %"$gasrem_1097" + br i1 %"$gascmp_1098", label %"$out_of_gas_1099", label %"$have_gas_1100" -"$out_of_gas_1260": ; preds = %"$have_gas_1246" +"$out_of_gas_1099": ; preds = %"$have_gas_1085" call void @_out_of_gas() - br label %"$have_gas_1261" + br label %"$have_gas_1100" -"$have_gas_1261": ; preds = %"$out_of_gas_1260", %"$have_gas_1246" - %"$consume_1262" = sub i64 %"$gasrem_1258", 2 - store i64 %"$consume_1262", i64* @_gasrem, align 8 - %"$search_1264" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %search, align 8 - %"$search_tag_1265" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$search_1264", i32 0, i32 0 - %"$search_tag_1266" = load i8, i8* %"$search_tag_1265", align 1 - switch i8 %"$search_tag_1266", label %"$empty_default_1267" [ - i8 0, label %"$Some_1268" - i8 1, label %"$None_1280" - ], !dbg !131 - -"$Some_1268": ; preds = %"$have_gas_1261" - %"$search_1269" = bitcast %TName_Option_ByStr20* %"$search_1264" to %CName_Some_ByStr20* - %"$$search_3_gep_1270" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$search_1269", i32 0, i32 1 - %"$$search_3_load_1271" = load [20 x i8], [20 x i8]* %"$$search_3_gep_1270", align 1 +"$have_gas_1100": ; preds = %"$out_of_gas_1099", %"$have_gas_1085" + %"$consume_1101" = sub i64 %"$gasrem_1097", 2 + store i64 %"$consume_1101", i64* @_gasrem, align 8 + %"$search_1103" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %search, align 8 + %"$search_tag_1104" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$search_1103", i32 0, i32 0 + %"$search_tag_1105" = load i8, i8* %"$search_tag_1104", align 1 + switch i8 %"$search_tag_1105", label %"$empty_default_1106" [ + i8 0, label %"$Some_1107" + i8 1, label %"$None_1119" + ], !dbg !103 + +"$Some_1107": ; preds = %"$have_gas_1100" + %"$search_1108" = bitcast %TName_Option_ByStr20* %"$search_1103" to %CName_Some_ByStr20* + %"$$search_3_gep_1109" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$search_1108", i32 0, i32 1 + %"$$search_3_load_1110" = load [20 x i8], [20 x i8]* %"$$search_3_gep_1109", align 1 %"$search_3" = alloca [20 x i8], align 1 - store [20 x i8] %"$$search_3_load_1271", [20 x i8]* %"$search_3", align 1 - %"$gasrem_1272" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1273" = icmp ugt i64 1, %"$gasrem_1272" - br i1 %"$gascmp_1273", label %"$out_of_gas_1274", label %"$have_gas_1275" - -"$out_of_gas_1274": ; preds = %"$Some_1268" - call void @_out_of_gas() - br label %"$have_gas_1275" - -"$have_gas_1275": ; preds = %"$out_of_gas_1274", %"$Some_1268" - %"$consume_1276" = sub i64 %"$gasrem_1272", 1 - store i64 %"$consume_1276", i64* @_gasrem, align 8 - %"$adtval_1277_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1277_salloc" = call i8* @_salloc(i8* %"$adtval_1277_load", i64 1) - %"$adtval_1277" = bitcast i8* %"$adtval_1277_salloc" to %CName_True* - %"$adtgep_1278" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1277", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1278", align 1 - %"$adtptr_1279" = bitcast %CName_True* %"$adtval_1277" to %TName_Bool* - store %TName_Bool* %"$adtptr_1279", %TName_Bool** %"$retval_189", align 8, !dbg !132 - br label %"$matchsucc_1263" - -"$None_1280": ; preds = %"$have_gas_1261" - %"$search_1281" = bitcast %TName_Option_ByStr20* %"$search_1264" to %CName_None_ByStr20* - %"$gasrem_1282" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1283" = icmp ugt i64 1, %"$gasrem_1282" - br i1 %"$gascmp_1283", label %"$out_of_gas_1284", label %"$have_gas_1285" - -"$out_of_gas_1284": ; preds = %"$None_1280" - call void @_out_of_gas() - br label %"$have_gas_1285" - -"$have_gas_1285": ; preds = %"$out_of_gas_1284", %"$None_1280" - %"$consume_1286" = sub i64 %"$gasrem_1282", 1 - store i64 %"$consume_1286", i64* @_gasrem, align 8 - %"$adtval_1287_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1287_salloc" = call i8* @_salloc(i8* %"$adtval_1287_load", i64 1) - %"$adtval_1287" = bitcast i8* %"$adtval_1287_salloc" to %CName_False* - %"$adtgep_1288" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1287", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1288", align 1 - %"$adtptr_1289" = bitcast %CName_False* %"$adtval_1287" to %TName_Bool* - store %TName_Bool* %"$adtptr_1289", %TName_Bool** %"$retval_189", align 8, !dbg !135 - br label %"$matchsucc_1263" - -"$empty_default_1267": ; preds = %"$have_gas_1261" - br label %"$matchsucc_1263" - -"$matchsucc_1263": ; preds = %"$have_gas_1285", %"$have_gas_1275", %"$empty_default_1267" - %"$$retval_189_1290" = load %TName_Bool*, %TName_Bool** %"$retval_189", align 8 - ret %TName_Bool* %"$$retval_189_1290" + store [20 x i8] %"$$search_3_load_1110", [20 x i8]* %"$search_3", align 1 + %"$gasrem_1111" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1112" = icmp ugt i64 1, %"$gasrem_1111" + br i1 %"$gascmp_1112", label %"$out_of_gas_1113", label %"$have_gas_1114" + +"$out_of_gas_1113": ; preds = %"$Some_1107" + call void @_out_of_gas() + br label %"$have_gas_1114" + +"$have_gas_1114": ; preds = %"$out_of_gas_1113", %"$Some_1107" + %"$consume_1115" = sub i64 %"$gasrem_1111", 1 + store i64 %"$consume_1115", i64* @_gasrem, align 8 + %"$adtval_1116_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1116_salloc" = call i8* @_salloc(i8* %"$adtval_1116_load", i64 1) + %"$adtval_1116" = bitcast i8* %"$adtval_1116_salloc" to %CName_True* + %"$adtgep_1117" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1116", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1117", align 1 + %"$adtptr_1118" = bitcast %CName_True* %"$adtval_1116" to %TName_Bool* + store %TName_Bool* %"$adtptr_1118", %TName_Bool** %"$retval_100", align 8, !dbg !104 + br label %"$matchsucc_1102" + +"$None_1119": ; preds = %"$have_gas_1100" + %"$search_1120" = bitcast %TName_Option_ByStr20* %"$search_1103" to %CName_None_ByStr20* + %"$gasrem_1121" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1122" = icmp ugt i64 1, %"$gasrem_1121" + br i1 %"$gascmp_1122", label %"$out_of_gas_1123", label %"$have_gas_1124" + +"$out_of_gas_1123": ; preds = %"$None_1119" + call void @_out_of_gas() + br label %"$have_gas_1124" + +"$have_gas_1124": ; preds = %"$out_of_gas_1123", %"$None_1119" + %"$consume_1125" = sub i64 %"$gasrem_1121", 1 + store i64 %"$consume_1125", i64* @_gasrem, align 8 + %"$adtval_1126_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1126_salloc" = call i8* @_salloc(i8* %"$adtval_1126_load", i64 1) + %"$adtval_1126" = bitcast i8* %"$adtval_1126_salloc" to %CName_False* + %"$adtgep_1127" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1126", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1127", align 1 + %"$adtptr_1128" = bitcast %CName_False* %"$adtval_1126" to %TName_Bool* + store %TName_Bool* %"$adtptr_1128", %TName_Bool** %"$retval_100", align 8, !dbg !107 + br label %"$matchsucc_1102" + +"$empty_default_1106": ; preds = %"$have_gas_1100" + br label %"$matchsucc_1102" + +"$matchsucc_1102": ; preds = %"$have_gas_1124", %"$have_gas_1114", %"$empty_default_1106" + %"$$retval_100_1129" = load %TName_Bool*, %TName_Bool** %"$retval_100", align 8 + ret %TName_Bool* %"$$retval_100_1129" } -define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_186"(%"$$fundef_186_env_441"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !137 { +define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_97"(%"$$fundef_97_env_310"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !109 { entry: - %"$$fundef_186_env_ListUtils.list_find_1202" = getelementptr inbounds %"$$fundef_186_env_441", %"$$fundef_186_env_441"* %0, i32 0, i32 0 - %"$ListUtils.list_find_envload_1203" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_186_env_ListUtils.list_find_1202", align 8 + %"$$fundef_97_env_ListUtils.list_find_1041" = getelementptr inbounds %"$$fundef_97_env_310", %"$$fundef_97_env_310"* %0, i32 0, i32 0 + %"$ListUtils.list_find_envload_1042" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_97_env_ListUtils.list_find_1041", align 8 %ListUtils.list_find = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_envload_1203", { i8*, i8* }** %ListUtils.list_find, align 8 - %"$retval_187" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_1204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1205" = icmp ugt i64 1, %"$gasrem_1204" - br i1 %"$gascmp_1205", label %"$out_of_gas_1206", label %"$have_gas_1207" - -"$out_of_gas_1206": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1207" - -"$have_gas_1207": ; preds = %"$out_of_gas_1206", %entry - %"$consume_1208" = sub i64 %"$gasrem_1204", 1 - store i64 %"$consume_1208", i64* @_gasrem, align 8 - %"$$fundef_188_envp_1209_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_188_envp_1209_salloc" = call i8* @_salloc(i8* %"$$fundef_188_envp_1209_load", i64 24) - %"$$fundef_188_envp_1209" = bitcast i8* %"$$fundef_188_envp_1209_salloc" to %"$$fundef_188_env_440"* - %"$$fundef_188_env_voidp_1211" = bitcast %"$$fundef_188_env_440"* %"$$fundef_188_envp_1209" to i8* - %"$$fundef_188_cloval_1212" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Bool* (%"$$fundef_188_env_440"*, %TName_List_ByStr20*)* @"$fundef_188" to %TName_Bool* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_188_env_voidp_1211", 1 - %"$$fundef_188_env_ListUtils.list_find_1213" = getelementptr inbounds %"$$fundef_188_env_440", %"$$fundef_188_env_440"* %"$$fundef_188_envp_1209", i32 0, i32 0 - %"$ListUtils.list_find_1214" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_1214", { i8*, i8* }** %"$$fundef_188_env_ListUtils.list_find_1213", align 8 - %"$$fundef_188_env_p_1215" = getelementptr inbounds %"$$fundef_188_env_440", %"$$fundef_188_env_440"* %"$$fundef_188_envp_1209", i32 0, i32 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_188_env_p_1215", align 8 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_188_cloval_1212", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_187", align 8, !dbg !138 - %"$$retval_187_1216" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_187", align 8 - ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_187_1216" + store { i8*, i8* }* %"$ListUtils.list_find_envload_1042", { i8*, i8* }** %ListUtils.list_find, align 8 + %"$retval_98" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_1043" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1044" = icmp ugt i64 1, %"$gasrem_1043" + br i1 %"$gascmp_1044", label %"$out_of_gas_1045", label %"$have_gas_1046" + +"$out_of_gas_1045": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1046" + +"$have_gas_1046": ; preds = %"$out_of_gas_1045", %entry + %"$consume_1047" = sub i64 %"$gasrem_1043", 1 + store i64 %"$consume_1047", i64* @_gasrem, align 8 + %"$$fundef_99_envp_1048_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_99_envp_1048_salloc" = call i8* @_salloc(i8* %"$$fundef_99_envp_1048_load", i64 24) + %"$$fundef_99_envp_1048" = bitcast i8* %"$$fundef_99_envp_1048_salloc" to %"$$fundef_99_env_309"* + %"$$fundef_99_env_voidp_1050" = bitcast %"$$fundef_99_env_309"* %"$$fundef_99_envp_1048" to i8* + %"$$fundef_99_cloval_1051" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Bool* (%"$$fundef_99_env_309"*, %TName_List_ByStr20*)* @"$fundef_99" to %TName_Bool* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_99_env_voidp_1050", 1 + %"$$fundef_99_env_ListUtils.list_find_1052" = getelementptr inbounds %"$$fundef_99_env_309", %"$$fundef_99_env_309"* %"$$fundef_99_envp_1048", i32 0, i32 0 + %"$ListUtils.list_find_1053" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 + store { i8*, i8* }* %"$ListUtils.list_find_1053", { i8*, i8* }** %"$$fundef_99_env_ListUtils.list_find_1052", align 8 + %"$$fundef_99_env_p_1054" = getelementptr inbounds %"$$fundef_99_env_309", %"$$fundef_99_env_309"* %"$$fundef_99_envp_1048", i32 0, i32 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_99_env_p_1054", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_99_cloval_1051", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_98", align 8, !dbg !110 + %"$$retval_98_1055" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_98", align 8 + ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_98_1055" } -define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_184"(%"$$fundef_184_env_442"* %0) !dbg !139 { +define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_95"(%"$$fundef_95_env_311"* %0) !dbg !111 { entry: - %"$$fundef_184_env_ListUtils.list_find_1188" = getelementptr inbounds %"$$fundef_184_env_442", %"$$fundef_184_env_442"* %0, i32 0, i32 0 - %"$ListUtils.list_find_envload_1189" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_184_env_ListUtils.list_find_1188", align 8 + %"$$fundef_95_env_ListUtils.list_find_1027" = getelementptr inbounds %"$$fundef_95_env_311", %"$$fundef_95_env_311"* %0, i32 0, i32 0 + %"$ListUtils.list_find_envload_1028" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_95_env_ListUtils.list_find_1027", align 8 %ListUtils.list_find = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_envload_1189", { i8*, i8* }** %ListUtils.list_find, align 8 - %"$retval_185" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1190" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1191" = icmp ugt i64 1, %"$gasrem_1190" - br i1 %"$gascmp_1191", label %"$out_of_gas_1192", label %"$have_gas_1193" - -"$out_of_gas_1192": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1193" - -"$have_gas_1193": ; preds = %"$out_of_gas_1192", %entry - %"$consume_1194" = sub i64 %"$gasrem_1190", 1 - store i64 %"$consume_1194", i64* @_gasrem, align 8 - %"$$fundef_186_envp_1195_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_186_envp_1195_salloc" = call i8* @_salloc(i8* %"$$fundef_186_envp_1195_load", i64 8) - %"$$fundef_186_envp_1195" = bitcast i8* %"$$fundef_186_envp_1195_salloc" to %"$$fundef_186_env_441"* - %"$$fundef_186_env_voidp_1197" = bitcast %"$$fundef_186_env_441"* %"$$fundef_186_envp_1195" to i8* - %"$$fundef_186_cloval_1198" = insertvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_186_env_441"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_186" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_186_env_voidp_1197", 1 - %"$$fundef_186_env_ListUtils.list_find_1199" = getelementptr inbounds %"$$fundef_186_env_441", %"$$fundef_186_env_441"* %"$$fundef_186_envp_1195", i32 0, i32 0 - %"$ListUtils.list_find_1200" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_1200", { i8*, i8* }** %"$$fundef_186_env_ListUtils.list_find_1199", align 8 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_186_cloval_1198", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_185", align 8, !dbg !140 - %"$$retval_185_1201" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_185", align 8 - ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_185_1201" + store { i8*, i8* }* %"$ListUtils.list_find_envload_1028", { i8*, i8* }** %ListUtils.list_find, align 8 + %"$retval_96" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 + %"$gasrem_1029" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1030" = icmp ugt i64 1, %"$gasrem_1029" + br i1 %"$gascmp_1030", label %"$out_of_gas_1031", label %"$have_gas_1032" + +"$out_of_gas_1031": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1032" + +"$have_gas_1032": ; preds = %"$out_of_gas_1031", %entry + %"$consume_1033" = sub i64 %"$gasrem_1029", 1 + store i64 %"$consume_1033", i64* @_gasrem, align 8 + %"$$fundef_97_envp_1034_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_97_envp_1034_salloc" = call i8* @_salloc(i8* %"$$fundef_97_envp_1034_load", i64 8) + %"$$fundef_97_envp_1034" = bitcast i8* %"$$fundef_97_envp_1034_salloc" to %"$$fundef_97_env_310"* + %"$$fundef_97_env_voidp_1036" = bitcast %"$$fundef_97_env_310"* %"$$fundef_97_envp_1034" to i8* + %"$$fundef_97_cloval_1037" = insertvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_97_env_310"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_97" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_97_env_voidp_1036", 1 + %"$$fundef_97_env_ListUtils.list_find_1038" = getelementptr inbounds %"$$fundef_97_env_310", %"$$fundef_97_env_310"* %"$$fundef_97_envp_1034", i32 0, i32 0 + %"$ListUtils.list_find_1039" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 + store { i8*, i8* }* %"$ListUtils.list_find_1039", { i8*, i8* }** %"$$fundef_97_env_ListUtils.list_find_1038", align 8 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_97_cloval_1037", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_96", align 8, !dbg !112 + %"$$retval_96_1040" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_96", align 8 + ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_96_1040" } -define internal %TName_Option_ByStr20* @"$fundef_198"(%"$$fundef_198_env_443"* %0, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1) !dbg !141 { +define internal %TName_Option_ByStr20* @"$fundef_109"(%"$$fundef_109_env_312"* %0, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1) !dbg !113 { entry: - %"$$fundef_198_env_init_1130" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %0, i32 0, i32 0 - %"$init_envload_1131" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_198_env_init_1130", align 8 + %"$$fundef_109_env_init_969" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %0, i32 0, i32 0 + %"$init_envload_970" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_109_env_init_969", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1131", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_198_env_p_1132" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %0, i32 0, i32 1 - %"$p_envload_1133" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_198_env_p_1132", align 8 + store %TName_Option_ByStr20* %"$init_envload_970", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_109_env_p_971" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %0, i32 0, i32 1 + %"$p_envload_972" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_109_env_p_971", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1133", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$$fundef_198_env_x_1134" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %0, i32 0, i32 2 - %"$x_envload_1135" = load [20 x i8], [20 x i8]* %"$$fundef_198_env_x_1134", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_972", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$$fundef_109_env_x_973" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %0, i32 0, i32 2 + %"$x_envload_974" = load [20 x i8], [20 x i8]* %"$$fundef_109_env_x_973", align 1 %x = alloca [20 x i8], align 1 - store [20 x i8] %"$x_envload_1135", [20 x i8]* %x, align 1 - %"$retval_199" = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_1136" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1137" = icmp ugt i64 1, %"$gasrem_1136" - br i1 %"$gascmp_1137", label %"$out_of_gas_1138", label %"$have_gas_1139" + store [20 x i8] %"$x_envload_974", [20 x i8]* %x, align 1 + %"$retval_110" = alloca %TName_Option_ByStr20*, align 8 + %"$gasrem_975" = load i64, i64* @_gasrem, align 8 + %"$gascmp_976" = icmp ugt i64 1, %"$gasrem_975" + br i1 %"$gascmp_976", label %"$out_of_gas_977", label %"$have_gas_978" -"$out_of_gas_1138": ; preds = %entry +"$out_of_gas_977": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1139" + br label %"$have_gas_978" -"$have_gas_1139": ; preds = %"$out_of_gas_1138", %entry - %"$consume_1140" = sub i64 %"$gasrem_1136", 1 - store i64 %"$consume_1140", i64* @_gasrem, align 8 +"$have_gas_978": ; preds = %"$out_of_gas_977", %entry + %"$consume_979" = sub i64 %"$gasrem_975", 1 + store i64 %"$consume_979", i64* @_gasrem, align 8 %p_x = alloca %TName_Bool*, align 8 - %"$gasrem_1141" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1142" = icmp ugt i64 1, %"$gasrem_1141" - br i1 %"$gascmp_1142", label %"$out_of_gas_1143", label %"$have_gas_1144" + %"$gasrem_980" = load i64, i64* @_gasrem, align 8 + %"$gascmp_981" = icmp ugt i64 1, %"$gasrem_980" + br i1 %"$gascmp_981", label %"$out_of_gas_982", label %"$have_gas_983" -"$out_of_gas_1143": ; preds = %"$have_gas_1139" +"$out_of_gas_982": ; preds = %"$have_gas_978" call void @_out_of_gas() - br label %"$have_gas_1144" + br label %"$have_gas_983" -"$have_gas_1144": ; preds = %"$out_of_gas_1143", %"$have_gas_1139" - %"$consume_1145" = sub i64 %"$gasrem_1141", 1 - store i64 %"$consume_1145", i64* @_gasrem, align 8 +"$have_gas_983": ; preds = %"$out_of_gas_982", %"$have_gas_978" + %"$consume_984" = sub i64 %"$gasrem_980", 1 + store i64 %"$consume_984", i64* @_gasrem, align 8 %"$p_22" = alloca %TName_Bool*, align 8 - %"$p_1146" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$p_fptr_1147" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1146", 0 - %"$p_envptr_1148" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1146", 1 - %"$p_x_1149" = alloca [20 x i8], align 1 - %"$x_1150" = load [20 x i8], [20 x i8]* %x, align 1 - store [20 x i8] %"$x_1150", [20 x i8]* %"$p_x_1149", align 1 - %"$p_call_1151" = call %TName_Bool* %"$p_fptr_1147"(i8* %"$p_envptr_1148", [20 x i8]* %"$p_x_1149"), !dbg !142 - store %TName_Bool* %"$p_call_1151", %TName_Bool** %"$p_22", align 8, !dbg !142 - %"$$p_22_1152" = load %TName_Bool*, %TName_Bool** %"$p_22", align 8 - store %TName_Bool* %"$$p_22_1152", %TName_Bool** %p_x, align 8, !dbg !142 - %"$gasrem_1153" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1154" = icmp ugt i64 2, %"$gasrem_1153" - br i1 %"$gascmp_1154", label %"$out_of_gas_1155", label %"$have_gas_1156" - -"$out_of_gas_1155": ; preds = %"$have_gas_1144" - call void @_out_of_gas() - br label %"$have_gas_1156" - -"$have_gas_1156": ; preds = %"$out_of_gas_1155", %"$have_gas_1144" - %"$consume_1157" = sub i64 %"$gasrem_1153", 2 - store i64 %"$consume_1157", i64* @_gasrem, align 8 - %"$p_x_1159" = load %TName_Bool*, %TName_Bool** %p_x, align 8 - %"$p_x_tag_1160" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$p_x_1159", i32 0, i32 0 - %"$p_x_tag_1161" = load i8, i8* %"$p_x_tag_1160", align 1 - switch i8 %"$p_x_tag_1161", label %"$empty_default_1162" [ - i8 0, label %"$True_1163" - i8 1, label %"$False_1175" - ], !dbg !143 - -"$True_1163": ; preds = %"$have_gas_1156" - %"$p_x_1164" = bitcast %TName_Bool* %"$p_x_1159" to %CName_True* - %"$gasrem_1165" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1166" = icmp ugt i64 1, %"$gasrem_1165" - br i1 %"$gascmp_1166", label %"$out_of_gas_1167", label %"$have_gas_1168" - -"$out_of_gas_1167": ; preds = %"$True_1163" - call void @_out_of_gas() - br label %"$have_gas_1168" - -"$have_gas_1168": ; preds = %"$out_of_gas_1167", %"$True_1163" - %"$consume_1169" = sub i64 %"$gasrem_1165", 1 - store i64 %"$consume_1169", i64* @_gasrem, align 8 - %"$x_1170" = load [20 x i8], [20 x i8]* %x, align 1 - %"$adtval_1171_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1171_salloc" = call i8* @_salloc(i8* %"$adtval_1171_load", i64 21) - %"$adtval_1171" = bitcast i8* %"$adtval_1171_salloc" to %CName_Some_ByStr20* - %"$adtgep_1172" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1171", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1172", align 1 - %"$adtgep_1173" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1171", i32 0, i32 1 - store [20 x i8] %"$x_1170", [20 x i8]* %"$adtgep_1173", align 1 - %"$adtptr_1174" = bitcast %CName_Some_ByStr20* %"$adtval_1171" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$adtptr_1174", %TName_Option_ByStr20** %"$retval_199", align 8, !dbg !144 - br label %"$matchsucc_1158" - -"$False_1175": ; preds = %"$have_gas_1156" - %"$p_x_1176" = bitcast %TName_Bool* %"$p_x_1159" to %CName_False* - %"$gasrem_1177" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1178" = icmp ugt i64 1, %"$gasrem_1177" - br i1 %"$gascmp_1178", label %"$out_of_gas_1179", label %"$have_gas_1180" - -"$out_of_gas_1179": ; preds = %"$False_1175" - call void @_out_of_gas() - br label %"$have_gas_1180" - -"$have_gas_1180": ; preds = %"$out_of_gas_1179", %"$False_1175" - %"$consume_1181" = sub i64 %"$gasrem_1177", 1 - store i64 %"$consume_1181", i64* @_gasrem, align 8 + %"$p_985" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$p_fptr_986" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_985", 0 + %"$p_envptr_987" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_985", 1 + %"$p_x_988" = alloca [20 x i8], align 1 + %"$x_989" = load [20 x i8], [20 x i8]* %x, align 1 + store [20 x i8] %"$x_989", [20 x i8]* %"$p_x_988", align 1 + %"$p_call_990" = call %TName_Bool* %"$p_fptr_986"(i8* %"$p_envptr_987", [20 x i8]* %"$p_x_988"), !dbg !114 + store %TName_Bool* %"$p_call_990", %TName_Bool** %"$p_22", align 8, !dbg !114 + %"$$p_22_991" = load %TName_Bool*, %TName_Bool** %"$p_22", align 8 + store %TName_Bool* %"$$p_22_991", %TName_Bool** %p_x, align 8, !dbg !114 + %"$gasrem_992" = load i64, i64* @_gasrem, align 8 + %"$gascmp_993" = icmp ugt i64 2, %"$gasrem_992" + br i1 %"$gascmp_993", label %"$out_of_gas_994", label %"$have_gas_995" + +"$out_of_gas_994": ; preds = %"$have_gas_983" + call void @_out_of_gas() + br label %"$have_gas_995" + +"$have_gas_995": ; preds = %"$out_of_gas_994", %"$have_gas_983" + %"$consume_996" = sub i64 %"$gasrem_992", 2 + store i64 %"$consume_996", i64* @_gasrem, align 8 + %"$p_x_998" = load %TName_Bool*, %TName_Bool** %p_x, align 8 + %"$p_x_tag_999" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$p_x_998", i32 0, i32 0 + %"$p_x_tag_1000" = load i8, i8* %"$p_x_tag_999", align 1 + switch i8 %"$p_x_tag_1000", label %"$empty_default_1001" [ + i8 0, label %"$True_1002" + i8 1, label %"$False_1014" + ], !dbg !115 + +"$True_1002": ; preds = %"$have_gas_995" + %"$p_x_1003" = bitcast %TName_Bool* %"$p_x_998" to %CName_True* + %"$gasrem_1004" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1005" = icmp ugt i64 1, %"$gasrem_1004" + br i1 %"$gascmp_1005", label %"$out_of_gas_1006", label %"$have_gas_1007" + +"$out_of_gas_1006": ; preds = %"$True_1002" + call void @_out_of_gas() + br label %"$have_gas_1007" + +"$have_gas_1007": ; preds = %"$out_of_gas_1006", %"$True_1002" + %"$consume_1008" = sub i64 %"$gasrem_1004", 1 + store i64 %"$consume_1008", i64* @_gasrem, align 8 + %"$x_1009" = load [20 x i8], [20 x i8]* %x, align 1 + %"$adtval_1010_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1010_salloc" = call i8* @_salloc(i8* %"$adtval_1010_load", i64 21) + %"$adtval_1010" = bitcast i8* %"$adtval_1010_salloc" to %CName_Some_ByStr20* + %"$adtgep_1011" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1010", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1011", align 1 + %"$adtgep_1012" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1010", i32 0, i32 1 + store [20 x i8] %"$x_1009", [20 x i8]* %"$adtgep_1012", align 1 + %"$adtptr_1013" = bitcast %CName_Some_ByStr20* %"$adtval_1010" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$adtptr_1013", %TName_Option_ByStr20** %"$retval_110", align 8, !dbg !116 + br label %"$matchsucc_997" + +"$False_1014": ; preds = %"$have_gas_995" + %"$p_x_1015" = bitcast %TName_Bool* %"$p_x_998" to %CName_False* + %"$gasrem_1016" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1017" = icmp ugt i64 1, %"$gasrem_1016" + br i1 %"$gascmp_1017", label %"$out_of_gas_1018", label %"$have_gas_1019" + +"$out_of_gas_1018": ; preds = %"$False_1014" + call void @_out_of_gas() + br label %"$have_gas_1019" + +"$have_gas_1019": ; preds = %"$out_of_gas_1018", %"$False_1014" + %"$consume_1020" = sub i64 %"$gasrem_1016", 1 + store i64 %"$consume_1020", i64* @_gasrem, align 8 %"$recurse_23" = alloca %TName_Option_ByStr20*, align 8 - %"$recurse_fptr_1182" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 0 - %"$recurse_envptr_1183" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 1 - %"$init_1184" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - %"$recurse_call_1185" = call %TName_Option_ByStr20* %"$recurse_fptr_1182"(i8* %"$recurse_envptr_1183", %TName_Option_ByStr20* %"$init_1184"), !dbg !147 - store %TName_Option_ByStr20* %"$recurse_call_1185", %TName_Option_ByStr20** %"$recurse_23", align 8, !dbg !147 - %"$$recurse_23_1186" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$recurse_23", align 8 - store %TName_Option_ByStr20* %"$$recurse_23_1186", %TName_Option_ByStr20** %"$retval_199", align 8, !dbg !147 - br label %"$matchsucc_1158" - -"$empty_default_1162": ; preds = %"$have_gas_1156" - br label %"$matchsucc_1158" - -"$matchsucc_1158": ; preds = %"$have_gas_1180", %"$have_gas_1168", %"$empty_default_1162" - %"$$retval_199_1187" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_199", align 8 - ret %TName_Option_ByStr20* %"$$retval_199_1187" + %"$recurse_fptr_1021" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 0 + %"$recurse_envptr_1022" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 1 + %"$init_1023" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + %"$recurse_call_1024" = call %TName_Option_ByStr20* %"$recurse_fptr_1021"(i8* %"$recurse_envptr_1022", %TName_Option_ByStr20* %"$init_1023"), !dbg !119 + store %TName_Option_ByStr20* %"$recurse_call_1024", %TName_Option_ByStr20** %"$recurse_23", align 8, !dbg !119 + %"$$recurse_23_1025" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$recurse_23", align 8 + store %TName_Option_ByStr20* %"$$recurse_23_1025", %TName_Option_ByStr20** %"$retval_110", align 8, !dbg !119 + br label %"$matchsucc_997" + +"$empty_default_1001": ; preds = %"$have_gas_995" + br label %"$matchsucc_997" + +"$matchsucc_997": ; preds = %"$have_gas_1019", %"$have_gas_1007", %"$empty_default_1001" + %"$$retval_110_1026" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_110", align 8 + ret %TName_Option_ByStr20* %"$$retval_110_1026" } -define internal { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_196"(%"$$fundef_196_env_444"* %0, [20 x i8]* %1) !dbg !149 { +define internal { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_107"(%"$$fundef_107_env_313"* %0, [20 x i8]* %1) !dbg !121 { entry: %x = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_196_env_init_1111" = getelementptr inbounds %"$$fundef_196_env_444", %"$$fundef_196_env_444"* %0, i32 0, i32 0 - %"$init_envload_1112" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_196_env_init_1111", align 8 + %"$$fundef_107_env_init_950" = getelementptr inbounds %"$$fundef_107_env_313", %"$$fundef_107_env_313"* %0, i32 0, i32 0 + %"$init_envload_951" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_107_env_init_950", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1112", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_196_env_p_1113" = getelementptr inbounds %"$$fundef_196_env_444", %"$$fundef_196_env_444"* %0, i32 0, i32 1 - %"$p_envload_1114" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_196_env_p_1113", align 8 + store %TName_Option_ByStr20* %"$init_envload_951", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_107_env_p_952" = getelementptr inbounds %"$$fundef_107_env_313", %"$$fundef_107_env_313"* %0, i32 0, i32 1 + %"$p_envload_953" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_107_env_p_952", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1114", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$retval_197" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$gasrem_1115" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1116" = icmp ugt i64 1, %"$gasrem_1115" - br i1 %"$gascmp_1116", label %"$out_of_gas_1117", label %"$have_gas_1118" - -"$out_of_gas_1117": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1118" - -"$have_gas_1118": ; preds = %"$out_of_gas_1117", %entry - %"$consume_1119" = sub i64 %"$gasrem_1115", 1 - store i64 %"$consume_1119", i64* @_gasrem, align 8 - %"$$fundef_198_envp_1120_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_198_envp_1120_salloc" = call i8* @_salloc(i8* %"$$fundef_198_envp_1120_load", i64 48) - %"$$fundef_198_envp_1120" = bitcast i8* %"$$fundef_198_envp_1120_salloc" to %"$$fundef_198_env_443"* - %"$$fundef_198_env_voidp_1122" = bitcast %"$$fundef_198_env_443"* %"$$fundef_198_envp_1120" to i8* - %"$$fundef_198_cloval_1123" = insertvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* bitcast (%TName_Option_ByStr20* (%"$$fundef_198_env_443"*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_198" to %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* undef }, i8* %"$$fundef_198_env_voidp_1122", 1 - %"$$fundef_198_env_init_1124" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %"$$fundef_198_envp_1120", i32 0, i32 0 - %"$init_1125" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1125", %TName_Option_ByStr20** %"$$fundef_198_env_init_1124", align 8 - %"$$fundef_198_env_p_1126" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %"$$fundef_198_envp_1120", i32 0, i32 1 - %"$p_1127" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1127", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_198_env_p_1126", align 8 - %"$$fundef_198_env_x_1128" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %"$$fundef_198_envp_1120", i32 0, i32 2 - store [20 x i8] %x, [20 x i8]* %"$$fundef_198_env_x_1128", align 1 - store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$fundef_198_cloval_1123", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_197", align 8, !dbg !150 - %"$$retval_197_1129" = load { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_197", align 8 - ret { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_197_1129" + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_953", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$retval_108" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 + %"$gasrem_954" = load i64, i64* @_gasrem, align 8 + %"$gascmp_955" = icmp ugt i64 1, %"$gasrem_954" + br i1 %"$gascmp_955", label %"$out_of_gas_956", label %"$have_gas_957" + +"$out_of_gas_956": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_957" + +"$have_gas_957": ; preds = %"$out_of_gas_956", %entry + %"$consume_958" = sub i64 %"$gasrem_954", 1 + store i64 %"$consume_958", i64* @_gasrem, align 8 + %"$$fundef_109_envp_959_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_109_envp_959_salloc" = call i8* @_salloc(i8* %"$$fundef_109_envp_959_load", i64 48) + %"$$fundef_109_envp_959" = bitcast i8* %"$$fundef_109_envp_959_salloc" to %"$$fundef_109_env_312"* + %"$$fundef_109_env_voidp_961" = bitcast %"$$fundef_109_env_312"* %"$$fundef_109_envp_959" to i8* + %"$$fundef_109_cloval_962" = insertvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* bitcast (%TName_Option_ByStr20* (%"$$fundef_109_env_312"*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_109" to %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* undef }, i8* %"$$fundef_109_env_voidp_961", 1 + %"$$fundef_109_env_init_963" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %"$$fundef_109_envp_959", i32 0, i32 0 + %"$init_964" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_964", %TName_Option_ByStr20** %"$$fundef_109_env_init_963", align 8 + %"$$fundef_109_env_p_965" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %"$$fundef_109_envp_959", i32 0, i32 1 + %"$p_966" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_966", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_109_env_p_965", align 8 + %"$$fundef_109_env_x_967" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %"$$fundef_109_envp_959", i32 0, i32 2 + store [20 x i8] %x, [20 x i8]* %"$$fundef_109_env_x_967", align 1 + store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$fundef_109_cloval_962", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_108", align 8, !dbg !122 + %"$$retval_108_968" = load { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_108", align 8 + ret { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_108_968" } -define internal { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_194"(%"$$fundef_194_env_445"* %0, %TName_Option_ByStr20* %1) !dbg !151 { +define internal { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_105"(%"$$fundef_105_env_314"* %0, %TName_Option_ByStr20* %1) !dbg !123 { entry: - %"$$fundef_194_env_init_1093" = getelementptr inbounds %"$$fundef_194_env_445", %"$$fundef_194_env_445"* %0, i32 0, i32 0 - %"$init_envload_1094" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_194_env_init_1093", align 8 + %"$$fundef_105_env_init_932" = getelementptr inbounds %"$$fundef_105_env_314", %"$$fundef_105_env_314"* %0, i32 0, i32 0 + %"$init_envload_933" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_105_env_init_932", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1094", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_194_env_p_1095" = getelementptr inbounds %"$$fundef_194_env_445", %"$$fundef_194_env_445"* %0, i32 0, i32 1 - %"$p_envload_1096" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_194_env_p_1095", align 8 + store %TName_Option_ByStr20* %"$init_envload_933", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_105_env_p_934" = getelementptr inbounds %"$$fundef_105_env_314", %"$$fundef_105_env_314"* %0, i32 0, i32 1 + %"$p_envload_935" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_105_env_p_934", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1096", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$retval_195" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1097" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1098" = icmp ugt i64 1, %"$gasrem_1097" - br i1 %"$gascmp_1098", label %"$out_of_gas_1099", label %"$have_gas_1100" - -"$out_of_gas_1099": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1100" - -"$have_gas_1100": ; preds = %"$out_of_gas_1099", %entry - %"$consume_1101" = sub i64 %"$gasrem_1097", 1 - store i64 %"$consume_1101", i64* @_gasrem, align 8 - %"$$fundef_196_envp_1102_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_196_envp_1102_salloc" = call i8* @_salloc(i8* %"$$fundef_196_envp_1102_load", i64 24) - %"$$fundef_196_envp_1102" = bitcast i8* %"$$fundef_196_envp_1102_salloc" to %"$$fundef_196_env_444"* - %"$$fundef_196_env_voidp_1104" = bitcast %"$$fundef_196_env_444"* %"$$fundef_196_envp_1102" to i8* - %"$$fundef_196_cloval_1105" = insertvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (%"$$fundef_196_env_444"*, [20 x i8]*)* @"$fundef_196" to { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_196_env_voidp_1104", 1 - %"$$fundef_196_env_init_1106" = getelementptr inbounds %"$$fundef_196_env_444", %"$$fundef_196_env_444"* %"$$fundef_196_envp_1102", i32 0, i32 0 - %"$init_1107" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1107", %TName_Option_ByStr20** %"$$fundef_196_env_init_1106", align 8 - %"$$fundef_196_env_p_1108" = getelementptr inbounds %"$$fundef_196_env_444", %"$$fundef_196_env_444"* %"$$fundef_196_envp_1102", i32 0, i32 1 - %"$p_1109" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1109", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_196_env_p_1108", align 8 - store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_196_cloval_1105", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_195", align 8, !dbg !152 - %"$$retval_195_1110" = load { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_195", align 8 - ret { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_195_1110" + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_935", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$retval_106" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 + %"$gasrem_936" = load i64, i64* @_gasrem, align 8 + %"$gascmp_937" = icmp ugt i64 1, %"$gasrem_936" + br i1 %"$gascmp_937", label %"$out_of_gas_938", label %"$have_gas_939" + +"$out_of_gas_938": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_939" + +"$have_gas_939": ; preds = %"$out_of_gas_938", %entry + %"$consume_940" = sub i64 %"$gasrem_936", 1 + store i64 %"$consume_940", i64* @_gasrem, align 8 + %"$$fundef_107_envp_941_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_107_envp_941_salloc" = call i8* @_salloc(i8* %"$$fundef_107_envp_941_load", i64 24) + %"$$fundef_107_envp_941" = bitcast i8* %"$$fundef_107_envp_941_salloc" to %"$$fundef_107_env_313"* + %"$$fundef_107_env_voidp_943" = bitcast %"$$fundef_107_env_313"* %"$$fundef_107_envp_941" to i8* + %"$$fundef_107_cloval_944" = insertvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (%"$$fundef_107_env_313"*, [20 x i8]*)* @"$fundef_107" to { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_107_env_voidp_943", 1 + %"$$fundef_107_env_init_945" = getelementptr inbounds %"$$fundef_107_env_313", %"$$fundef_107_env_313"* %"$$fundef_107_envp_941", i32 0, i32 0 + %"$init_946" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_946", %TName_Option_ByStr20** %"$$fundef_107_env_init_945", align 8 + %"$$fundef_107_env_p_947" = getelementptr inbounds %"$$fundef_107_env_313", %"$$fundef_107_env_313"* %"$$fundef_107_envp_941", i32 0, i32 1 + %"$p_948" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_948", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_107_env_p_947", align 8 + store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_107_cloval_944", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_106", align 8, !dbg !124 + %"$$retval_106_949" = load { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_106", align 8 + ret { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_106_949" } -define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_192"(%"$$fundef_192_env_446"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !153 { +define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_103"(%"$$fundef_103_env_315"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !125 { entry: - %"$$fundef_192_env_list_foldk_1021" = getelementptr inbounds %"$$fundef_192_env_446", %"$$fundef_192_env_446"* %0, i32 0, i32 0 - %"$list_foldk_envload_1022" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_192_env_list_foldk_1021", align 8 + %"$$fundef_103_env_list_foldk_860" = getelementptr inbounds %"$$fundef_103_env_315", %"$$fundef_103_env_315"* %0, i32 0, i32 0 + %"$list_foldk_envload_861" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_103_env_list_foldk_860", align 8 %list_foldk = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldk_envload_1022", { i8*, i8* }** %list_foldk, align 8 - %"$retval_193" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_1023" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1024" = icmp ugt i64 1, %"$gasrem_1023" - br i1 %"$gascmp_1024", label %"$out_of_gas_1025", label %"$have_gas_1026" + store { i8*, i8* }* %"$list_foldk_envload_861", { i8*, i8* }** %list_foldk, align 8 + %"$retval_104" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_862" = load i64, i64* @_gasrem, align 8 + %"$gascmp_863" = icmp ugt i64 1, %"$gasrem_862" + br i1 %"$gascmp_863", label %"$out_of_gas_864", label %"$have_gas_865" -"$out_of_gas_1025": ; preds = %entry +"$out_of_gas_864": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1026" + br label %"$have_gas_865" -"$have_gas_1026": ; preds = %"$out_of_gas_1025", %entry - %"$consume_1027" = sub i64 %"$gasrem_1023", 1 - store i64 %"$consume_1027", i64* @_gasrem, align 8 +"$have_gas_865": ; preds = %"$out_of_gas_864", %entry + %"$consume_866" = sub i64 %"$gasrem_862", 1 + store i64 %"$consume_866", i64* @_gasrem, align 8 %foldk = alloca { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$gasrem_1028" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1029" = icmp ugt i64 1, %"$gasrem_1028" - br i1 %"$gascmp_1029", label %"$out_of_gas_1030", label %"$have_gas_1031" - -"$out_of_gas_1030": ; preds = %"$have_gas_1026" - call void @_out_of_gas() - br label %"$have_gas_1031" - -"$have_gas_1031": ; preds = %"$out_of_gas_1030", %"$have_gas_1026" - %"$consume_1032" = sub i64 %"$gasrem_1028", 1 - store i64 %"$consume_1032", i64* @_gasrem, align 8 - %"$list_foldk_1033" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 - %"$list_foldk_1034" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_1033", i32 0 - %"$list_foldk_1035" = bitcast { i8*, i8* }* %"$list_foldk_1034" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldk_1036" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldk_1035", align 8 - %"$list_foldk_fptr_1037" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_1036", 0 - %"$list_foldk_envptr_1038" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_1036", 1 - %"$list_foldk_call_1039" = call { i8*, i8* }* %"$list_foldk_fptr_1037"(i8* %"$list_foldk_envptr_1038"), !dbg !154 - %"$list_foldk_1040" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_call_1039", i32 2 - %"$list_foldk_1041" = bitcast { i8*, i8* }* %"$list_foldk_1040" to { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldk_1042" = load { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldk_1041", align 8 - %"$list_foldk_fptr_1043" = extractvalue { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_1042", 0 - %"$list_foldk_envptr_1044" = extractvalue { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_1042", 1 - %"$list_foldk_call_1045" = call { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$list_foldk_fptr_1043"(i8* %"$list_foldk_envptr_1044"), !dbg !154 - store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$list_foldk_call_1045", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %foldk, align 8, !dbg !155 - %"$gasrem_1046" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1047" = icmp ugt i64 1, %"$gasrem_1046" - br i1 %"$gascmp_1047", label %"$out_of_gas_1048", label %"$have_gas_1049" - -"$out_of_gas_1048": ; preds = %"$have_gas_1031" - call void @_out_of_gas() - br label %"$have_gas_1049" - -"$have_gas_1049": ; preds = %"$out_of_gas_1048", %"$have_gas_1031" - %"$consume_1050" = sub i64 %"$gasrem_1046", 1 - store i64 %"$consume_1050", i64* @_gasrem, align 8 + %"$gasrem_867" = load i64, i64* @_gasrem, align 8 + %"$gascmp_868" = icmp ugt i64 1, %"$gasrem_867" + br i1 %"$gascmp_868", label %"$out_of_gas_869", label %"$have_gas_870" + +"$out_of_gas_869": ; preds = %"$have_gas_865" + call void @_out_of_gas() + br label %"$have_gas_870" + +"$have_gas_870": ; preds = %"$out_of_gas_869", %"$have_gas_865" + %"$consume_871" = sub i64 %"$gasrem_867", 1 + store i64 %"$consume_871", i64* @_gasrem, align 8 + %"$list_foldk_872" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 + %"$list_foldk_873" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_872", i32 0 + %"$list_foldk_874" = bitcast { i8*, i8* }* %"$list_foldk_873" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldk_875" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldk_874", align 8 + %"$list_foldk_fptr_876" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_875", 0 + %"$list_foldk_envptr_877" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_875", 1 + %"$list_foldk_call_878" = call { i8*, i8* }* %"$list_foldk_fptr_876"(i8* %"$list_foldk_envptr_877"), !dbg !126 + %"$list_foldk_879" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_call_878", i32 2 + %"$list_foldk_880" = bitcast { i8*, i8* }* %"$list_foldk_879" to { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldk_881" = load { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldk_880", align 8 + %"$list_foldk_fptr_882" = extractvalue { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_881", 0 + %"$list_foldk_envptr_883" = extractvalue { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_881", 1 + %"$list_foldk_call_884" = call { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$list_foldk_fptr_882"(i8* %"$list_foldk_envptr_883"), !dbg !126 + store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$list_foldk_call_884", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %foldk, align 8, !dbg !127 + %"$gasrem_885" = load i64, i64* @_gasrem, align 8 + %"$gascmp_886" = icmp ugt i64 1, %"$gasrem_885" + br i1 %"$gascmp_886", label %"$out_of_gas_887", label %"$have_gas_888" + +"$out_of_gas_887": ; preds = %"$have_gas_870" + call void @_out_of_gas() + br label %"$have_gas_888" + +"$have_gas_888": ; preds = %"$out_of_gas_887", %"$have_gas_870" + %"$consume_889" = sub i64 %"$gasrem_885", 1 + store i64 %"$consume_889", i64* @_gasrem, align 8 %init = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_1051" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1052" = icmp ugt i64 1, %"$gasrem_1051" - br i1 %"$gascmp_1052", label %"$out_of_gas_1053", label %"$have_gas_1054" - -"$out_of_gas_1053": ; preds = %"$have_gas_1049" - call void @_out_of_gas() - br label %"$have_gas_1054" - -"$have_gas_1054": ; preds = %"$out_of_gas_1053", %"$have_gas_1049" - %"$consume_1055" = sub i64 %"$gasrem_1051", 1 - store i64 %"$consume_1055", i64* @_gasrem, align 8 - %"$adtval_1056_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1056_salloc" = call i8* @_salloc(i8* %"$adtval_1056_load", i64 1) - %"$adtval_1056" = bitcast i8* %"$adtval_1056_salloc" to %CName_None_ByStr20* - %"$adtgep_1057" = getelementptr inbounds %CName_None_ByStr20, %CName_None_ByStr20* %"$adtval_1056", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1057", align 1 - %"$adtptr_1058" = bitcast %CName_None_ByStr20* %"$adtval_1056" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$adtptr_1058", %TName_Option_ByStr20** %init, align 8, !dbg !156 - %"$gasrem_1059" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1060" = icmp ugt i64 1, %"$gasrem_1059" - br i1 %"$gascmp_1060", label %"$out_of_gas_1061", label %"$have_gas_1062" - -"$out_of_gas_1061": ; preds = %"$have_gas_1054" - call void @_out_of_gas() - br label %"$have_gas_1062" - -"$have_gas_1062": ; preds = %"$out_of_gas_1061", %"$have_gas_1054" - %"$consume_1063" = sub i64 %"$gasrem_1059", 1 - store i64 %"$consume_1063", i64* @_gasrem, align 8 + %"$gasrem_890" = load i64, i64* @_gasrem, align 8 + %"$gascmp_891" = icmp ugt i64 1, %"$gasrem_890" + br i1 %"$gascmp_891", label %"$out_of_gas_892", label %"$have_gas_893" + +"$out_of_gas_892": ; preds = %"$have_gas_888" + call void @_out_of_gas() + br label %"$have_gas_893" + +"$have_gas_893": ; preds = %"$out_of_gas_892", %"$have_gas_888" + %"$consume_894" = sub i64 %"$gasrem_890", 1 + store i64 %"$consume_894", i64* @_gasrem, align 8 + %"$adtval_895_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_895_salloc" = call i8* @_salloc(i8* %"$adtval_895_load", i64 1) + %"$adtval_895" = bitcast i8* %"$adtval_895_salloc" to %CName_None_ByStr20* + %"$adtgep_896" = getelementptr inbounds %CName_None_ByStr20, %CName_None_ByStr20* %"$adtval_895", i32 0, i32 0 + store i8 1, i8* %"$adtgep_896", align 1 + %"$adtptr_897" = bitcast %CName_None_ByStr20* %"$adtval_895" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$adtptr_897", %TName_Option_ByStr20** %init, align 8, !dbg !128 + %"$gasrem_898" = load i64, i64* @_gasrem, align 8 + %"$gascmp_899" = icmp ugt i64 1, %"$gasrem_898" + br i1 %"$gascmp_899", label %"$out_of_gas_900", label %"$have_gas_901" + +"$out_of_gas_900": ; preds = %"$have_gas_893" + call void @_out_of_gas() + br label %"$have_gas_901" + +"$have_gas_901": ; preds = %"$out_of_gas_900", %"$have_gas_893" + %"$consume_902" = sub i64 %"$gasrem_898", 1 + store i64 %"$consume_902", i64* @_gasrem, align 8 %predicate_step = alloca { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_1064" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1065" = icmp ugt i64 1, %"$gasrem_1064" - br i1 %"$gascmp_1065", label %"$out_of_gas_1066", label %"$have_gas_1067" - -"$out_of_gas_1066": ; preds = %"$have_gas_1062" - call void @_out_of_gas() - br label %"$have_gas_1067" - -"$have_gas_1067": ; preds = %"$out_of_gas_1066", %"$have_gas_1062" - %"$consume_1068" = sub i64 %"$gasrem_1064", 1 - store i64 %"$consume_1068", i64* @_gasrem, align 8 - %"$$fundef_194_envp_1069_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_194_envp_1069_salloc" = call i8* @_salloc(i8* %"$$fundef_194_envp_1069_load", i64 24) - %"$$fundef_194_envp_1069" = bitcast i8* %"$$fundef_194_envp_1069_salloc" to %"$$fundef_194_env_445"* - %"$$fundef_194_env_voidp_1071" = bitcast %"$$fundef_194_env_445"* %"$$fundef_194_envp_1069" to i8* - %"$$fundef_194_cloval_1072" = insertvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)* bitcast ({ { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_194_env_445"*, %TName_Option_ByStr20*)* @"$fundef_194" to { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_194_env_voidp_1071", 1 - %"$$fundef_194_env_init_1073" = getelementptr inbounds %"$$fundef_194_env_445", %"$$fundef_194_env_445"* %"$$fundef_194_envp_1069", i32 0, i32 0 - %"$init_1074" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1074", %TName_Option_ByStr20** %"$$fundef_194_env_init_1073", align 8 - %"$$fundef_194_env_p_1075" = getelementptr inbounds %"$$fundef_194_env_445", %"$$fundef_194_env_445"* %"$$fundef_194_envp_1069", i32 0, i32 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_194_env_p_1075", align 8 - store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_194_cloval_1072", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %predicate_step, align 8, !dbg !157 - %"$gasrem_1076" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1077" = icmp ugt i64 1, %"$gasrem_1076" - br i1 %"$gascmp_1077", label %"$out_of_gas_1078", label %"$have_gas_1079" - -"$out_of_gas_1078": ; preds = %"$have_gas_1067" - call void @_out_of_gas() - br label %"$have_gas_1079" - -"$have_gas_1079": ; preds = %"$out_of_gas_1078", %"$have_gas_1067" - %"$consume_1080" = sub i64 %"$gasrem_1076", 1 - store i64 %"$consume_1080", i64* @_gasrem, align 8 + %"$gasrem_903" = load i64, i64* @_gasrem, align 8 + %"$gascmp_904" = icmp ugt i64 1, %"$gasrem_903" + br i1 %"$gascmp_904", label %"$out_of_gas_905", label %"$have_gas_906" + +"$out_of_gas_905": ; preds = %"$have_gas_901" + call void @_out_of_gas() + br label %"$have_gas_906" + +"$have_gas_906": ; preds = %"$out_of_gas_905", %"$have_gas_901" + %"$consume_907" = sub i64 %"$gasrem_903", 1 + store i64 %"$consume_907", i64* @_gasrem, align 8 + %"$$fundef_105_envp_908_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_105_envp_908_salloc" = call i8* @_salloc(i8* %"$$fundef_105_envp_908_load", i64 24) + %"$$fundef_105_envp_908" = bitcast i8* %"$$fundef_105_envp_908_salloc" to %"$$fundef_105_env_314"* + %"$$fundef_105_env_voidp_910" = bitcast %"$$fundef_105_env_314"* %"$$fundef_105_envp_908" to i8* + %"$$fundef_105_cloval_911" = insertvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)* bitcast ({ { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_105_env_314"*, %TName_Option_ByStr20*)* @"$fundef_105" to { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_105_env_voidp_910", 1 + %"$$fundef_105_env_init_912" = getelementptr inbounds %"$$fundef_105_env_314", %"$$fundef_105_env_314"* %"$$fundef_105_envp_908", i32 0, i32 0 + %"$init_913" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_913", %TName_Option_ByStr20** %"$$fundef_105_env_init_912", align 8 + %"$$fundef_105_env_p_914" = getelementptr inbounds %"$$fundef_105_env_314", %"$$fundef_105_env_314"* %"$$fundef_105_envp_908", i32 0, i32 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_105_env_p_914", align 8 + store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_105_cloval_911", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %predicate_step, align 8, !dbg !129 + %"$gasrem_915" = load i64, i64* @_gasrem, align 8 + %"$gascmp_916" = icmp ugt i64 1, %"$gasrem_915" + br i1 %"$gascmp_916", label %"$out_of_gas_917", label %"$have_gas_918" + +"$out_of_gas_917": ; preds = %"$have_gas_906" + call void @_out_of_gas() + br label %"$have_gas_918" + +"$have_gas_918": ; preds = %"$out_of_gas_917", %"$have_gas_906" + %"$consume_919" = sub i64 %"$gasrem_915", 1 + store i64 %"$consume_919", i64* @_gasrem, align 8 %"$foldk_24" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$foldk_1081" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %foldk, align 8 - %"$foldk_fptr_1082" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$foldk_1081", 0 - %"$foldk_envptr_1083" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$foldk_1081", 1 - %"$predicate_step_1084" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %predicate_step, align 8 - %"$foldk_call_1085" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_fptr_1082"(i8* %"$foldk_envptr_1083", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$predicate_step_1084"), !dbg !158 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_call_1085", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_24", align 8, !dbg !158 + %"$foldk_920" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %foldk, align 8 + %"$foldk_fptr_921" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$foldk_920", 0 + %"$foldk_envptr_922" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$foldk_920", 1 + %"$predicate_step_923" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %predicate_step, align 8 + %"$foldk_call_924" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_fptr_921"(i8* %"$foldk_envptr_922", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$predicate_step_923"), !dbg !130 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_call_924", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_24", align 8, !dbg !130 %"$foldk_25" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$foldk_24_1086" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_24", align 8 - %"$$foldk_24_fptr_1087" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_24_1086", 0 - %"$$foldk_24_envptr_1088" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_24_1086", 1 - %"$init_1089" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - %"$$foldk_24_call_1090" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_24_fptr_1087"(i8* %"$$foldk_24_envptr_1088", %TName_Option_ByStr20* %"$init_1089"), !dbg !158 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_24_call_1090", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_25", align 8, !dbg !158 - %"$$foldk_25_1091" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_25", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_25_1091", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_193", align 8, !dbg !158 - %"$$retval_193_1092" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_193", align 8 - ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_193_1092" + %"$$foldk_24_925" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_24", align 8 + %"$$foldk_24_fptr_926" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_24_925", 0 + %"$$foldk_24_envptr_927" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_24_925", 1 + %"$init_928" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + %"$$foldk_24_call_929" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_24_fptr_926"(i8* %"$$foldk_24_envptr_927", %TName_Option_ByStr20* %"$init_928"), !dbg !130 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_24_call_929", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_25", align 8, !dbg !130 + %"$$foldk_25_930" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_25", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_25_930", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_104", align 8, !dbg !130 + %"$$retval_104_931" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_104", align 8 + ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_104_931" } -define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_190"(%"$$fundef_190_env_447"* %0) !dbg !159 { +define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_101"(%"$$fundef_101_env_316"* %0) !dbg !131 { entry: - %"$$fundef_190_env_list_foldk_1007" = getelementptr inbounds %"$$fundef_190_env_447", %"$$fundef_190_env_447"* %0, i32 0, i32 0 - %"$list_foldk_envload_1008" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_190_env_list_foldk_1007", align 8 + %"$$fundef_101_env_list_foldk_846" = getelementptr inbounds %"$$fundef_101_env_316", %"$$fundef_101_env_316"* %0, i32 0, i32 0 + %"$list_foldk_envload_847" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_101_env_list_foldk_846", align 8 %list_foldk = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldk_envload_1008", { i8*, i8* }** %list_foldk, align 8 - %"$retval_191" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1009" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1010" = icmp ugt i64 1, %"$gasrem_1009" - br i1 %"$gascmp_1010", label %"$out_of_gas_1011", label %"$have_gas_1012" - -"$out_of_gas_1011": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1012" - -"$have_gas_1012": ; preds = %"$out_of_gas_1011", %entry - %"$consume_1013" = sub i64 %"$gasrem_1009", 1 - store i64 %"$consume_1013", i64* @_gasrem, align 8 - %"$$fundef_192_envp_1014_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_192_envp_1014_salloc" = call i8* @_salloc(i8* %"$$fundef_192_envp_1014_load", i64 8) - %"$$fundef_192_envp_1014" = bitcast i8* %"$$fundef_192_envp_1014_salloc" to %"$$fundef_192_env_446"* - %"$$fundef_192_env_voidp_1016" = bitcast %"$$fundef_192_env_446"* %"$$fundef_192_envp_1014" to i8* - %"$$fundef_192_cloval_1017" = insertvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_192_env_446"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_192" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_192_env_voidp_1016", 1 - %"$$fundef_192_env_list_foldk_1018" = getelementptr inbounds %"$$fundef_192_env_446", %"$$fundef_192_env_446"* %"$$fundef_192_envp_1014", i32 0, i32 0 - %"$list_foldk_1019" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 - store { i8*, i8* }* %"$list_foldk_1019", { i8*, i8* }** %"$$fundef_192_env_list_foldk_1018", align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_192_cloval_1017", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_191", align 8, !dbg !160 - %"$$retval_191_1020" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_191", align 8 - ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_191_1020" + store { i8*, i8* }* %"$list_foldk_envload_847", { i8*, i8* }** %list_foldk, align 8 + %"$retval_102" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 + %"$gasrem_848" = load i64, i64* @_gasrem, align 8 + %"$gascmp_849" = icmp ugt i64 1, %"$gasrem_848" + br i1 %"$gascmp_849", label %"$out_of_gas_850", label %"$have_gas_851" + +"$out_of_gas_850": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_851" + +"$have_gas_851": ; preds = %"$out_of_gas_850", %entry + %"$consume_852" = sub i64 %"$gasrem_848", 1 + store i64 %"$consume_852", i64* @_gasrem, align 8 + %"$$fundef_103_envp_853_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_103_envp_853_salloc" = call i8* @_salloc(i8* %"$$fundef_103_envp_853_load", i64 8) + %"$$fundef_103_envp_853" = bitcast i8* %"$$fundef_103_envp_853_salloc" to %"$$fundef_103_env_315"* + %"$$fundef_103_env_voidp_855" = bitcast %"$$fundef_103_env_315"* %"$$fundef_103_envp_853" to i8* + %"$$fundef_103_cloval_856" = insertvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_103_env_315"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_103" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_103_env_voidp_855", 1 + %"$$fundef_103_env_list_foldk_857" = getelementptr inbounds %"$$fundef_103_env_315", %"$$fundef_103_env_315"* %"$$fundef_103_envp_853", i32 0, i32 0 + %"$list_foldk_858" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_858", { i8*, i8* }** %"$$fundef_103_env_list_foldk_857", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_103_cloval_856", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_102", align 8, !dbg !132 + %"$$retval_102_859" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_102", align 8 + ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_102_859" } -define internal %TName_List_ByStr20* @"$fundef_206"(%"$$fundef_206_env_448"* %0, %TName_List_ByStr20* %1) !dbg !161 { +define internal %TName_List_ByStr20* @"$fundef_117"(%"$$fundef_117_env_317"* %0, %TName_List_ByStr20* %1) !dbg !133 { entry: - %"$$fundef_206_env_f_955" = getelementptr inbounds %"$$fundef_206_env_448", %"$$fundef_206_env_448"* %0, i32 0, i32 0 - %"$f_envload_956" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_206_env_f_955", align 8 + %"$$fundef_117_env_f_794" = getelementptr inbounds %"$$fundef_117_env_317", %"$$fundef_117_env_317"* %0, i32 0, i32 0 + %"$f_envload_795" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_117_env_f_794", align 8 %f = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_956", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$$fundef_206_env_h_957" = getelementptr inbounds %"$$fundef_206_env_448", %"$$fundef_206_env_448"* %0, i32 0, i32 1 - %"$h_envload_958" = load [20 x i8], [20 x i8]* %"$$fundef_206_env_h_957", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_795", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$$fundef_117_env_h_796" = getelementptr inbounds %"$$fundef_117_env_317", %"$$fundef_117_env_317"* %0, i32 0, i32 1 + %"$h_envload_797" = load [20 x i8], [20 x i8]* %"$$fundef_117_env_h_796", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_envload_958", [20 x i8]* %h, align 1 - %"$retval_207" = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_959" = load i64, i64* @_gasrem, align 8 - %"$gascmp_960" = icmp ugt i64 1, %"$gasrem_959" - br i1 %"$gascmp_960", label %"$out_of_gas_961", label %"$have_gas_962" + store [20 x i8] %"$h_envload_797", [20 x i8]* %h, align 1 + %"$retval_118" = alloca %TName_List_ByStr20*, align 8 + %"$gasrem_798" = load i64, i64* @_gasrem, align 8 + %"$gascmp_799" = icmp ugt i64 1, %"$gasrem_798" + br i1 %"$gascmp_799", label %"$out_of_gas_800", label %"$have_gas_801" -"$out_of_gas_961": ; preds = %entry +"$out_of_gas_800": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_962" + br label %"$have_gas_801" -"$have_gas_962": ; preds = %"$out_of_gas_961", %entry - %"$consume_963" = sub i64 %"$gasrem_959", 1 - store i64 %"$consume_963", i64* @_gasrem, align 8 +"$have_gas_801": ; preds = %"$out_of_gas_800", %entry + %"$consume_802" = sub i64 %"$gasrem_798", 1 + store i64 %"$consume_802", i64* @_gasrem, align 8 %h1 = alloca %TName_Bool*, align 8 - %"$gasrem_964" = load i64, i64* @_gasrem, align 8 - %"$gascmp_965" = icmp ugt i64 1, %"$gasrem_964" - br i1 %"$gascmp_965", label %"$out_of_gas_966", label %"$have_gas_967" + %"$gasrem_803" = load i64, i64* @_gasrem, align 8 + %"$gascmp_804" = icmp ugt i64 1, %"$gasrem_803" + br i1 %"$gascmp_804", label %"$out_of_gas_805", label %"$have_gas_806" -"$out_of_gas_966": ; preds = %"$have_gas_962" +"$out_of_gas_805": ; preds = %"$have_gas_801" call void @_out_of_gas() - br label %"$have_gas_967" + br label %"$have_gas_806" -"$have_gas_967": ; preds = %"$out_of_gas_966", %"$have_gas_962" - %"$consume_968" = sub i64 %"$gasrem_964", 1 - store i64 %"$consume_968", i64* @_gasrem, align 8 +"$have_gas_806": ; preds = %"$out_of_gas_805", %"$have_gas_801" + %"$consume_807" = sub i64 %"$gasrem_803", 1 + store i64 %"$consume_807", i64* @_gasrem, align 8 %"$f_19" = alloca %TName_Bool*, align 8 - %"$f_969" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$f_fptr_970" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_969", 0 - %"$f_envptr_971" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_969", 1 - %"$f_h_972" = alloca [20 x i8], align 1 - %"$h_973" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_973", [20 x i8]* %"$f_h_972", align 1 - %"$f_call_974" = call %TName_Bool* %"$f_fptr_970"(i8* %"$f_envptr_971", [20 x i8]* %"$f_h_972"), !dbg !162 - store %TName_Bool* %"$f_call_974", %TName_Bool** %"$f_19", align 8, !dbg !162 - %"$$f_19_975" = load %TName_Bool*, %TName_Bool** %"$f_19", align 8 - store %TName_Bool* %"$$f_19_975", %TName_Bool** %h1, align 8, !dbg !162 - %"$gasrem_976" = load i64, i64* @_gasrem, align 8 - %"$gascmp_977" = icmp ugt i64 2, %"$gasrem_976" - br i1 %"$gascmp_977", label %"$out_of_gas_978", label %"$have_gas_979" - -"$out_of_gas_978": ; preds = %"$have_gas_967" - call void @_out_of_gas() - br label %"$have_gas_979" - -"$have_gas_979": ; preds = %"$out_of_gas_978", %"$have_gas_967" - %"$consume_980" = sub i64 %"$gasrem_976", 2 - store i64 %"$consume_980", i64* @_gasrem, align 8 - %"$h1_982" = load %TName_Bool*, %TName_Bool** %h1, align 8 - %"$h1_tag_983" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$h1_982", i32 0, i32 0 - %"$h1_tag_984" = load i8, i8* %"$h1_tag_983", align 1 - switch i8 %"$h1_tag_984", label %"$empty_default_985" [ - i8 0, label %"$True_986" - i8 1, label %"$False_999" - ], !dbg !163 - -"$True_986": ; preds = %"$have_gas_979" - %"$h1_987" = bitcast %TName_Bool* %"$h1_982" to %CName_True* - %"$gasrem_988" = load i64, i64* @_gasrem, align 8 - %"$gascmp_989" = icmp ugt i64 1, %"$gasrem_988" - br i1 %"$gascmp_989", label %"$out_of_gas_990", label %"$have_gas_991" - -"$out_of_gas_990": ; preds = %"$True_986" - call void @_out_of_gas() - br label %"$have_gas_991" - -"$have_gas_991": ; preds = %"$out_of_gas_990", %"$True_986" - %"$consume_992" = sub i64 %"$gasrem_988", 1 - store i64 %"$consume_992", i64* @_gasrem, align 8 - %"$h_993" = load [20 x i8], [20 x i8]* %h, align 1 - %"$adtval_994_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_994_salloc" = call i8* @_salloc(i8* %"$adtval_994_load", i64 29) - %"$adtval_994" = bitcast i8* %"$adtval_994_salloc" to %CName_Cons_ByStr20* - %"$adtgep_995" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_994", i32 0, i32 0 - store i8 0, i8* %"$adtgep_995", align 1 - %"$adtgep_996" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_994", i32 0, i32 1 - store [20 x i8] %"$h_993", [20 x i8]* %"$adtgep_996", align 1 - %"$adtgep_997" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_994", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$adtgep_997", align 8 - %"$adtptr_998" = bitcast %CName_Cons_ByStr20* %"$adtval_994" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_998", %TName_List_ByStr20** %"$retval_207", align 8, !dbg !164 - br label %"$matchsucc_981" - -"$False_999": ; preds = %"$have_gas_979" - %"$h1_1000" = bitcast %TName_Bool* %"$h1_982" to %CName_False* - %"$gasrem_1001" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1002" = icmp ugt i64 1, %"$gasrem_1001" - br i1 %"$gascmp_1002", label %"$out_of_gas_1003", label %"$have_gas_1004" - -"$out_of_gas_1003": ; preds = %"$False_999" - call void @_out_of_gas() - br label %"$have_gas_1004" - -"$have_gas_1004": ; preds = %"$out_of_gas_1003", %"$False_999" - %"$consume_1005" = sub i64 %"$gasrem_1001", 1 - store i64 %"$consume_1005", i64* @_gasrem, align 8 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$retval_207", align 8, !dbg !167 - br label %"$matchsucc_981" - -"$empty_default_985": ; preds = %"$have_gas_979" - br label %"$matchsucc_981" - -"$matchsucc_981": ; preds = %"$have_gas_1004", %"$have_gas_991", %"$empty_default_985" - %"$$retval_207_1006" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_207", align 8 - ret %TName_List_ByStr20* %"$$retval_207_1006" + %"$f_808" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$f_fptr_809" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_808", 0 + %"$f_envptr_810" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_808", 1 + %"$f_h_811" = alloca [20 x i8], align 1 + %"$h_812" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_812", [20 x i8]* %"$f_h_811", align 1 + %"$f_call_813" = call %TName_Bool* %"$f_fptr_809"(i8* %"$f_envptr_810", [20 x i8]* %"$f_h_811"), !dbg !134 + store %TName_Bool* %"$f_call_813", %TName_Bool** %"$f_19", align 8, !dbg !134 + %"$$f_19_814" = load %TName_Bool*, %TName_Bool** %"$f_19", align 8 + store %TName_Bool* %"$$f_19_814", %TName_Bool** %h1, align 8, !dbg !134 + %"$gasrem_815" = load i64, i64* @_gasrem, align 8 + %"$gascmp_816" = icmp ugt i64 2, %"$gasrem_815" + br i1 %"$gascmp_816", label %"$out_of_gas_817", label %"$have_gas_818" + +"$out_of_gas_817": ; preds = %"$have_gas_806" + call void @_out_of_gas() + br label %"$have_gas_818" + +"$have_gas_818": ; preds = %"$out_of_gas_817", %"$have_gas_806" + %"$consume_819" = sub i64 %"$gasrem_815", 2 + store i64 %"$consume_819", i64* @_gasrem, align 8 + %"$h1_821" = load %TName_Bool*, %TName_Bool** %h1, align 8 + %"$h1_tag_822" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$h1_821", i32 0, i32 0 + %"$h1_tag_823" = load i8, i8* %"$h1_tag_822", align 1 + switch i8 %"$h1_tag_823", label %"$empty_default_824" [ + i8 0, label %"$True_825" + i8 1, label %"$False_838" + ], !dbg !135 + +"$True_825": ; preds = %"$have_gas_818" + %"$h1_826" = bitcast %TName_Bool* %"$h1_821" to %CName_True* + %"$gasrem_827" = load i64, i64* @_gasrem, align 8 + %"$gascmp_828" = icmp ugt i64 1, %"$gasrem_827" + br i1 %"$gascmp_828", label %"$out_of_gas_829", label %"$have_gas_830" + +"$out_of_gas_829": ; preds = %"$True_825" + call void @_out_of_gas() + br label %"$have_gas_830" + +"$have_gas_830": ; preds = %"$out_of_gas_829", %"$True_825" + %"$consume_831" = sub i64 %"$gasrem_827", 1 + store i64 %"$consume_831", i64* @_gasrem, align 8 + %"$h_832" = load [20 x i8], [20 x i8]* %h, align 1 + %"$adtval_833_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_833_salloc" = call i8* @_salloc(i8* %"$adtval_833_load", i64 29) + %"$adtval_833" = bitcast i8* %"$adtval_833_salloc" to %CName_Cons_ByStr20* + %"$adtgep_834" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_833", i32 0, i32 0 + store i8 0, i8* %"$adtgep_834", align 1 + %"$adtgep_835" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_833", i32 0, i32 1 + store [20 x i8] %"$h_832", [20 x i8]* %"$adtgep_835", align 1 + %"$adtgep_836" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_833", i32 0, i32 2 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$adtgep_836", align 8 + %"$adtptr_837" = bitcast %CName_Cons_ByStr20* %"$adtval_833" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_837", %TName_List_ByStr20** %"$retval_118", align 8, !dbg !136 + br label %"$matchsucc_820" + +"$False_838": ; preds = %"$have_gas_818" + %"$h1_839" = bitcast %TName_Bool* %"$h1_821" to %CName_False* + %"$gasrem_840" = load i64, i64* @_gasrem, align 8 + %"$gascmp_841" = icmp ugt i64 1, %"$gasrem_840" + br i1 %"$gascmp_841", label %"$out_of_gas_842", label %"$have_gas_843" + +"$out_of_gas_842": ; preds = %"$False_838" + call void @_out_of_gas() + br label %"$have_gas_843" + +"$have_gas_843": ; preds = %"$out_of_gas_842", %"$False_838" + %"$consume_844" = sub i64 %"$gasrem_840", 1 + store i64 %"$consume_844", i64* @_gasrem, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$retval_118", align 8, !dbg !139 + br label %"$matchsucc_820" + +"$empty_default_824": ; preds = %"$have_gas_818" + br label %"$matchsucc_820" + +"$matchsucc_820": ; preds = %"$have_gas_843", %"$have_gas_830", %"$empty_default_824" + %"$$retval_118_845" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_118", align 8 + ret %TName_List_ByStr20* %"$$retval_118_845" } -define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_204"(%"$$fundef_204_env_449"* %0, [20 x i8]* %1) !dbg !169 { +define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_115"(%"$$fundef_115_env_318"* %0, [20 x i8]* %1) !dbg !141 { entry: %h = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_204_env_f_940" = getelementptr inbounds %"$$fundef_204_env_449", %"$$fundef_204_env_449"* %0, i32 0, i32 0 - %"$f_envload_941" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_204_env_f_940", align 8 + %"$$fundef_115_env_f_779" = getelementptr inbounds %"$$fundef_115_env_318", %"$$fundef_115_env_318"* %0, i32 0, i32 0 + %"$f_envload_780" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_115_env_f_779", align 8 %f = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_941", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$retval_205" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_942" = load i64, i64* @_gasrem, align 8 - %"$gascmp_943" = icmp ugt i64 1, %"$gasrem_942" - br i1 %"$gascmp_943", label %"$out_of_gas_944", label %"$have_gas_945" - -"$out_of_gas_944": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_945" - -"$have_gas_945": ; preds = %"$out_of_gas_944", %entry - %"$consume_946" = sub i64 %"$gasrem_942", 1 - store i64 %"$consume_946", i64* @_gasrem, align 8 - %"$$fundef_206_envp_947_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_206_envp_947_salloc" = call i8* @_salloc(i8* %"$$fundef_206_envp_947_load", i64 40) - %"$$fundef_206_envp_947" = bitcast i8* %"$$fundef_206_envp_947_salloc" to %"$$fundef_206_env_448"* - %"$$fundef_206_env_voidp_949" = bitcast %"$$fundef_206_env_448"* %"$$fundef_206_envp_947" to i8* - %"$$fundef_206_cloval_950" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_206_env_448"*, %TName_List_ByStr20*)* @"$fundef_206" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_206_env_voidp_949", 1 - %"$$fundef_206_env_f_951" = getelementptr inbounds %"$$fundef_206_env_448", %"$$fundef_206_env_448"* %"$$fundef_206_envp_947", i32 0, i32 0 - %"$f_952" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_952", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_206_env_f_951", align 8 - %"$$fundef_206_env_h_953" = getelementptr inbounds %"$$fundef_206_env_448", %"$$fundef_206_env_448"* %"$$fundef_206_envp_947", i32 0, i32 1 - store [20 x i8] %h, [20 x i8]* %"$$fundef_206_env_h_953", align 1 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_206_cloval_950", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_205", align 8, !dbg !170 - %"$$retval_205_954" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_205", align 8 - ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_205_954" + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_780", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$retval_116" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_781" = load i64, i64* @_gasrem, align 8 + %"$gascmp_782" = icmp ugt i64 1, %"$gasrem_781" + br i1 %"$gascmp_782", label %"$out_of_gas_783", label %"$have_gas_784" + +"$out_of_gas_783": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_784" + +"$have_gas_784": ; preds = %"$out_of_gas_783", %entry + %"$consume_785" = sub i64 %"$gasrem_781", 1 + store i64 %"$consume_785", i64* @_gasrem, align 8 + %"$$fundef_117_envp_786_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_117_envp_786_salloc" = call i8* @_salloc(i8* %"$$fundef_117_envp_786_load", i64 40) + %"$$fundef_117_envp_786" = bitcast i8* %"$$fundef_117_envp_786_salloc" to %"$$fundef_117_env_317"* + %"$$fundef_117_env_voidp_788" = bitcast %"$$fundef_117_env_317"* %"$$fundef_117_envp_786" to i8* + %"$$fundef_117_cloval_789" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_117_env_317"*, %TName_List_ByStr20*)* @"$fundef_117" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_117_env_voidp_788", 1 + %"$$fundef_117_env_f_790" = getelementptr inbounds %"$$fundef_117_env_317", %"$$fundef_117_env_317"* %"$$fundef_117_envp_786", i32 0, i32 0 + %"$f_791" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_791", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_117_env_f_790", align 8 + %"$$fundef_117_env_h_792" = getelementptr inbounds %"$$fundef_117_env_317", %"$$fundef_117_env_317"* %"$$fundef_117_envp_786", i32 0, i32 1 + store [20 x i8] %h, [20 x i8]* %"$$fundef_117_env_h_792", align 1 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_117_cloval_789", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_116", align 8, !dbg !142 + %"$$retval_116_793" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_116", align 8 + ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_116_793" } -define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_202"(%"$$fundef_202_env_450"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !171 { +define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_113"(%"$$fundef_113_env_319"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) !dbg !143 { entry: - %"$$fundef_202_env_list_foldr_870" = getelementptr inbounds %"$$fundef_202_env_450", %"$$fundef_202_env_450"* %0, i32 0, i32 0 - %"$list_foldr_envload_871" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_202_env_list_foldr_870", align 8 + %"$$fundef_113_env_list_foldr_709" = getelementptr inbounds %"$$fundef_113_env_319", %"$$fundef_113_env_319"* %0, i32 0, i32 0 + %"$list_foldr_envload_710" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_113_env_list_foldr_709", align 8 %list_foldr = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldr_envload_871", { i8*, i8* }** %list_foldr, align 8 - %"$retval_203" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_873" = icmp ugt i64 1, %"$gasrem_872" - br i1 %"$gascmp_873", label %"$out_of_gas_874", label %"$have_gas_875" + store { i8*, i8* }* %"$list_foldr_envload_710", { i8*, i8* }** %list_foldr, align 8 + %"$retval_114" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_711" = load i64, i64* @_gasrem, align 8 + %"$gascmp_712" = icmp ugt i64 1, %"$gasrem_711" + br i1 %"$gascmp_712", label %"$out_of_gas_713", label %"$have_gas_714" -"$out_of_gas_874": ; preds = %entry +"$out_of_gas_713": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_875" + br label %"$have_gas_714" -"$have_gas_875": ; preds = %"$out_of_gas_874", %entry - %"$consume_876" = sub i64 %"$gasrem_872", 1 - store i64 %"$consume_876", i64* @_gasrem, align 8 +"$have_gas_714": ; preds = %"$out_of_gas_713", %entry + %"$consume_715" = sub i64 %"$gasrem_711", 1 + store i64 %"$consume_715", i64* @_gasrem, align 8 %foldr = alloca { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_877" = load i64, i64* @_gasrem, align 8 - %"$gascmp_878" = icmp ugt i64 1, %"$gasrem_877" - br i1 %"$gascmp_878", label %"$out_of_gas_879", label %"$have_gas_880" - -"$out_of_gas_879": ; preds = %"$have_gas_875" - call void @_out_of_gas() - br label %"$have_gas_880" - -"$have_gas_880": ; preds = %"$out_of_gas_879", %"$have_gas_875" - %"$consume_881" = sub i64 %"$gasrem_877", 1 - store i64 %"$consume_881", i64* @_gasrem, align 8 - %"$list_foldr_882" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 - %"$list_foldr_883" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_882", i32 0 - %"$list_foldr_884" = bitcast { i8*, i8* }* %"$list_foldr_883" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldr_885" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldr_884", align 8 - %"$list_foldr_fptr_886" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_885", 0 - %"$list_foldr_envptr_887" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_885", 1 - %"$list_foldr_call_888" = call { i8*, i8* }* %"$list_foldr_fptr_886"(i8* %"$list_foldr_envptr_887"), !dbg !172 - %"$list_foldr_889" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_call_888", i32 1 - %"$list_foldr_890" = bitcast { i8*, i8* }* %"$list_foldr_889" to { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldr_891" = load { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldr_890", align 8 - %"$list_foldr_fptr_892" = extractvalue { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldr_891", 0 - %"$list_foldr_envptr_893" = extractvalue { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldr_891", 1 - %"$list_foldr_call_894" = call { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$list_foldr_fptr_892"(i8* %"$list_foldr_envptr_893"), !dbg !172 - store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$list_foldr_call_894", { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %foldr, align 8, !dbg !173 - %"$gasrem_895" = load i64, i64* @_gasrem, align 8 - %"$gascmp_896" = icmp ugt i64 1, %"$gasrem_895" - br i1 %"$gascmp_896", label %"$out_of_gas_897", label %"$have_gas_898" - -"$out_of_gas_897": ; preds = %"$have_gas_880" - call void @_out_of_gas() - br label %"$have_gas_898" - -"$have_gas_898": ; preds = %"$out_of_gas_897", %"$have_gas_880" - %"$consume_899" = sub i64 %"$gasrem_895", 1 - store i64 %"$consume_899", i64* @_gasrem, align 8 + %"$gasrem_716" = load i64, i64* @_gasrem, align 8 + %"$gascmp_717" = icmp ugt i64 1, %"$gasrem_716" + br i1 %"$gascmp_717", label %"$out_of_gas_718", label %"$have_gas_719" + +"$out_of_gas_718": ; preds = %"$have_gas_714" + call void @_out_of_gas() + br label %"$have_gas_719" + +"$have_gas_719": ; preds = %"$out_of_gas_718", %"$have_gas_714" + %"$consume_720" = sub i64 %"$gasrem_716", 1 + store i64 %"$consume_720", i64* @_gasrem, align 8 + %"$list_foldr_721" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 + %"$list_foldr_722" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_721", i32 0 + %"$list_foldr_723" = bitcast { i8*, i8* }* %"$list_foldr_722" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldr_724" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldr_723", align 8 + %"$list_foldr_fptr_725" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_724", 0 + %"$list_foldr_envptr_726" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_724", 1 + %"$list_foldr_call_727" = call { i8*, i8* }* %"$list_foldr_fptr_725"(i8* %"$list_foldr_envptr_726"), !dbg !144 + %"$list_foldr_728" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_call_727", i32 1 + %"$list_foldr_729" = bitcast { i8*, i8* }* %"$list_foldr_728" to { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldr_730" = load { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldr_729", align 8 + %"$list_foldr_fptr_731" = extractvalue { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldr_730", 0 + %"$list_foldr_envptr_732" = extractvalue { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldr_730", 1 + %"$list_foldr_call_733" = call { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$list_foldr_fptr_731"(i8* %"$list_foldr_envptr_732"), !dbg !144 + store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$list_foldr_call_733", { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %foldr, align 8, !dbg !145 + %"$gasrem_734" = load i64, i64* @_gasrem, align 8 + %"$gascmp_735" = icmp ugt i64 1, %"$gasrem_734" + br i1 %"$gascmp_735", label %"$out_of_gas_736", label %"$have_gas_737" + +"$out_of_gas_736": ; preds = %"$have_gas_719" + call void @_out_of_gas() + br label %"$have_gas_737" + +"$have_gas_737": ; preds = %"$out_of_gas_736", %"$have_gas_719" + %"$consume_738" = sub i64 %"$gasrem_734", 1 + store i64 %"$consume_738", i64* @_gasrem, align 8 %iter = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_900" = load i64, i64* @_gasrem, align 8 - %"$gascmp_901" = icmp ugt i64 1, %"$gasrem_900" - br i1 %"$gascmp_901", label %"$out_of_gas_902", label %"$have_gas_903" - -"$out_of_gas_902": ; preds = %"$have_gas_898" - call void @_out_of_gas() - br label %"$have_gas_903" - -"$have_gas_903": ; preds = %"$out_of_gas_902", %"$have_gas_898" - %"$consume_904" = sub i64 %"$gasrem_900", 1 - store i64 %"$consume_904", i64* @_gasrem, align 8 - %"$$fundef_204_envp_905_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_204_envp_905_salloc" = call i8* @_salloc(i8* %"$$fundef_204_envp_905_load", i64 16) - %"$$fundef_204_envp_905" = bitcast i8* %"$$fundef_204_envp_905_salloc" to %"$$fundef_204_env_449"* - %"$$fundef_204_env_voidp_907" = bitcast %"$$fundef_204_env_449"* %"$$fundef_204_envp_905" to i8* - %"$$fundef_204_cloval_908" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_204_env_449"*, [20 x i8]*)* @"$fundef_204" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_204_env_voidp_907", 1 - %"$$fundef_204_env_f_909" = getelementptr inbounds %"$$fundef_204_env_449", %"$$fundef_204_env_449"* %"$$fundef_204_envp_905", i32 0, i32 0 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_204_env_f_909", align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_204_cloval_908", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %iter, align 8, !dbg !174 - %"$gasrem_910" = load i64, i64* @_gasrem, align 8 - %"$gascmp_911" = icmp ugt i64 1, %"$gasrem_910" - br i1 %"$gascmp_911", label %"$out_of_gas_912", label %"$have_gas_913" - -"$out_of_gas_912": ; preds = %"$have_gas_903" - call void @_out_of_gas() - br label %"$have_gas_913" - -"$have_gas_913": ; preds = %"$out_of_gas_912", %"$have_gas_903" - %"$consume_914" = sub i64 %"$gasrem_910", 1 - store i64 %"$consume_914", i64* @_gasrem, align 8 + %"$gasrem_739" = load i64, i64* @_gasrem, align 8 + %"$gascmp_740" = icmp ugt i64 1, %"$gasrem_739" + br i1 %"$gascmp_740", label %"$out_of_gas_741", label %"$have_gas_742" + +"$out_of_gas_741": ; preds = %"$have_gas_737" + call void @_out_of_gas() + br label %"$have_gas_742" + +"$have_gas_742": ; preds = %"$out_of_gas_741", %"$have_gas_737" + %"$consume_743" = sub i64 %"$gasrem_739", 1 + store i64 %"$consume_743", i64* @_gasrem, align 8 + %"$$fundef_115_envp_744_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_115_envp_744_salloc" = call i8* @_salloc(i8* %"$$fundef_115_envp_744_load", i64 16) + %"$$fundef_115_envp_744" = bitcast i8* %"$$fundef_115_envp_744_salloc" to %"$$fundef_115_env_318"* + %"$$fundef_115_env_voidp_746" = bitcast %"$$fundef_115_env_318"* %"$$fundef_115_envp_744" to i8* + %"$$fundef_115_cloval_747" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_115_env_318"*, [20 x i8]*)* @"$fundef_115" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_115_env_voidp_746", 1 + %"$$fundef_115_env_f_748" = getelementptr inbounds %"$$fundef_115_env_318", %"$$fundef_115_env_318"* %"$$fundef_115_envp_744", i32 0, i32 0 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_115_env_f_748", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_115_cloval_747", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %iter, align 8, !dbg !146 + %"$gasrem_749" = load i64, i64* @_gasrem, align 8 + %"$gascmp_750" = icmp ugt i64 1, %"$gasrem_749" + br i1 %"$gascmp_750", label %"$out_of_gas_751", label %"$have_gas_752" + +"$out_of_gas_751": ; preds = %"$have_gas_742" + call void @_out_of_gas() + br label %"$have_gas_752" + +"$have_gas_752": ; preds = %"$out_of_gas_751", %"$have_gas_742" + %"$consume_753" = sub i64 %"$gasrem_749", 1 + store i64 %"$consume_753", i64* @_gasrem, align 8 %init = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_915" = load i64, i64* @_gasrem, align 8 - %"$gascmp_916" = icmp ugt i64 1, %"$gasrem_915" - br i1 %"$gascmp_916", label %"$out_of_gas_917", label %"$have_gas_918" - -"$out_of_gas_917": ; preds = %"$have_gas_913" - call void @_out_of_gas() - br label %"$have_gas_918" - -"$have_gas_918": ; preds = %"$out_of_gas_917", %"$have_gas_913" - %"$consume_919" = sub i64 %"$gasrem_915", 1 - store i64 %"$consume_919", i64* @_gasrem, align 8 - %"$adtval_920_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_920_salloc" = call i8* @_salloc(i8* %"$adtval_920_load", i64 1) - %"$adtval_920" = bitcast i8* %"$adtval_920_salloc" to %CName_Nil_ByStr20* - %"$adtgep_921" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_920", i32 0, i32 0 - store i8 1, i8* %"$adtgep_921", align 1 - %"$adtptr_922" = bitcast %CName_Nil_ByStr20* %"$adtval_920" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_922", %TName_List_ByStr20** %init, align 8, !dbg !175 - %"$gasrem_923" = load i64, i64* @_gasrem, align 8 - %"$gascmp_924" = icmp ugt i64 1, %"$gasrem_923" - br i1 %"$gascmp_924", label %"$out_of_gas_925", label %"$have_gas_926" - -"$out_of_gas_925": ; preds = %"$have_gas_918" - call void @_out_of_gas() - br label %"$have_gas_926" - -"$have_gas_926": ; preds = %"$out_of_gas_925", %"$have_gas_918" - %"$consume_927" = sub i64 %"$gasrem_923", 1 - store i64 %"$consume_927", i64* @_gasrem, align 8 + %"$gasrem_754" = load i64, i64* @_gasrem, align 8 + %"$gascmp_755" = icmp ugt i64 1, %"$gasrem_754" + br i1 %"$gascmp_755", label %"$out_of_gas_756", label %"$have_gas_757" + +"$out_of_gas_756": ; preds = %"$have_gas_752" + call void @_out_of_gas() + br label %"$have_gas_757" + +"$have_gas_757": ; preds = %"$out_of_gas_756", %"$have_gas_752" + %"$consume_758" = sub i64 %"$gasrem_754", 1 + store i64 %"$consume_758", i64* @_gasrem, align 8 + %"$adtval_759_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_759_salloc" = call i8* @_salloc(i8* %"$adtval_759_load", i64 1) + %"$adtval_759" = bitcast i8* %"$adtval_759_salloc" to %CName_Nil_ByStr20* + %"$adtgep_760" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_759", i32 0, i32 0 + store i8 1, i8* %"$adtgep_760", align 1 + %"$adtptr_761" = bitcast %CName_Nil_ByStr20* %"$adtval_759" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_761", %TName_List_ByStr20** %init, align 8, !dbg !147 + %"$gasrem_762" = load i64, i64* @_gasrem, align 8 + %"$gascmp_763" = icmp ugt i64 1, %"$gasrem_762" + br i1 %"$gascmp_763", label %"$out_of_gas_764", label %"$have_gas_765" + +"$out_of_gas_764": ; preds = %"$have_gas_757" + call void @_out_of_gas() + br label %"$have_gas_765" + +"$have_gas_765": ; preds = %"$out_of_gas_764", %"$have_gas_757" + %"$consume_766" = sub i64 %"$gasrem_762", 1 + store i64 %"$consume_766", i64* @_gasrem, align 8 %"$foldr_20" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$foldr_928" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %foldr, align 8 - %"$foldr_fptr_929" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$foldr_928", 0 - %"$foldr_envptr_930" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$foldr_928", 1 - %"$iter_931" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %iter, align 8 - %"$foldr_call_932" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_fptr_929"(i8* %"$foldr_envptr_930", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$iter_931"), !dbg !176 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_call_932", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_20", align 8, !dbg !176 + %"$foldr_767" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %foldr, align 8 + %"$foldr_fptr_768" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$foldr_767", 0 + %"$foldr_envptr_769" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$foldr_767", 1 + %"$iter_770" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %iter, align 8 + %"$foldr_call_771" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_fptr_768"(i8* %"$foldr_envptr_769", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$iter_770"), !dbg !148 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_call_771", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_20", align 8, !dbg !148 %"$foldr_21" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$foldr_20_933" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_20", align 8 - %"$$foldr_20_fptr_934" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_933", 0 - %"$$foldr_20_envptr_935" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_933", 1 - %"$init_936" = load %TName_List_ByStr20*, %TName_List_ByStr20** %init, align 8 - %"$$foldr_20_call_937" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_fptr_934"(i8* %"$$foldr_20_envptr_935", %TName_List_ByStr20* %"$init_936"), !dbg !176 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_call_937", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_21", align 8, !dbg !176 - %"$$foldr_21_938" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_21", align 8 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_21_938", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_203", align 8, !dbg !176 - %"$$retval_203_939" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_203", align 8 - ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_203_939" + %"$$foldr_20_772" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_20", align 8 + %"$$foldr_20_fptr_773" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_772", 0 + %"$$foldr_20_envptr_774" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_772", 1 + %"$init_775" = load %TName_List_ByStr20*, %TName_List_ByStr20** %init, align 8 + %"$$foldr_20_call_776" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_fptr_773"(i8* %"$$foldr_20_envptr_774", %TName_List_ByStr20* %"$init_775"), !dbg !148 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_call_776", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_21", align 8, !dbg !148 + %"$$foldr_21_777" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_21", align 8 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_21_777", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_114", align 8, !dbg !148 + %"$$retval_114_778" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_114", align 8 + ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_114_778" } -define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_200"(%"$$fundef_200_env_451"* %0) !dbg !177 { +define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_111"(%"$$fundef_111_env_320"* %0) !dbg !149 { entry: - %"$$fundef_200_env_list_foldr_856" = getelementptr inbounds %"$$fundef_200_env_451", %"$$fundef_200_env_451"* %0, i32 0, i32 0 - %"$list_foldr_envload_857" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_200_env_list_foldr_856", align 8 + %"$$fundef_111_env_list_foldr_695" = getelementptr inbounds %"$$fundef_111_env_320", %"$$fundef_111_env_320"* %0, i32 0, i32 0 + %"$list_foldr_envload_696" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_111_env_list_foldr_695", align 8 %list_foldr = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldr_envload_857", { i8*, i8* }** %list_foldr, align 8 - %"$retval_201" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_858" = load i64, i64* @_gasrem, align 8 - %"$gascmp_859" = icmp ugt i64 1, %"$gasrem_858" - br i1 %"$gascmp_859", label %"$out_of_gas_860", label %"$have_gas_861" - -"$out_of_gas_860": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_861" - -"$have_gas_861": ; preds = %"$out_of_gas_860", %entry - %"$consume_862" = sub i64 %"$gasrem_858", 1 - store i64 %"$consume_862", i64* @_gasrem, align 8 - %"$$fundef_202_envp_863_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_202_envp_863_salloc" = call i8* @_salloc(i8* %"$$fundef_202_envp_863_load", i64 8) - %"$$fundef_202_envp_863" = bitcast i8* %"$$fundef_202_envp_863_salloc" to %"$$fundef_202_env_450"* - %"$$fundef_202_env_voidp_865" = bitcast %"$$fundef_202_env_450"* %"$$fundef_202_envp_863" to i8* - %"$$fundef_202_cloval_866" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_202_env_450"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_202" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_202_env_voidp_865", 1 - %"$$fundef_202_env_list_foldr_867" = getelementptr inbounds %"$$fundef_202_env_450", %"$$fundef_202_env_450"* %"$$fundef_202_envp_863", i32 0, i32 0 - %"$list_foldr_868" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 - store { i8*, i8* }* %"$list_foldr_868", { i8*, i8* }** %"$$fundef_202_env_list_foldr_867", align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_202_cloval_866", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_201", align 8, !dbg !178 - %"$$retval_201_869" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_201", align 8 - ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_201_869" -} - -define internal %TName_Bool* @"$fundef_168"(%"$$fundef_168_env_452"* %0, %TName_Bool* %1) !dbg !179 { -entry: - %"$retval_169" = alloca %TName_Bool*, align 8 - %"$gasrem_826" = load i64, i64* @_gasrem, align 8 - %"$gascmp_827" = icmp ugt i64 2, %"$gasrem_826" - br i1 %"$gascmp_827", label %"$out_of_gas_828", label %"$have_gas_829" - -"$out_of_gas_828": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_829" - -"$have_gas_829": ; preds = %"$out_of_gas_828", %entry - %"$consume_830" = sub i64 %"$gasrem_826", 2 - store i64 %"$consume_830", i64* @_gasrem, align 8 - %"$b_tag_832" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b_tag_833" = load i8, i8* %"$b_tag_832", align 1 - switch i8 %"$b_tag_833", label %"$empty_default_834" [ - i8 0, label %"$True_835" - i8 1, label %"$False_845" - ], !dbg !181 - -"$True_835": ; preds = %"$have_gas_829" - %"$b_836" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_837" = load i64, i64* @_gasrem, align 8 - %"$gascmp_838" = icmp ugt i64 1, %"$gasrem_837" - br i1 %"$gascmp_838", label %"$out_of_gas_839", label %"$have_gas_840" - -"$out_of_gas_839": ; preds = %"$True_835" - call void @_out_of_gas() - br label %"$have_gas_840" - -"$have_gas_840": ; preds = %"$out_of_gas_839", %"$True_835" - %"$consume_841" = sub i64 %"$gasrem_837", 1 - store i64 %"$consume_841", i64* @_gasrem, align 8 - %"$adtval_842_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_842_salloc" = call i8* @_salloc(i8* %"$adtval_842_load", i64 1) - %"$adtval_842" = bitcast i8* %"$adtval_842_salloc" to %CName_False* - %"$adtgep_843" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_842", i32 0, i32 0 - store i8 1, i8* %"$adtgep_843", align 1 - %"$adtptr_844" = bitcast %CName_False* %"$adtval_842" to %TName_Bool* - store %TName_Bool* %"$adtptr_844", %TName_Bool** %"$retval_169", align 8, !dbg !182 - br label %"$matchsucc_831" - -"$False_845": ; preds = %"$have_gas_829" - %"$b_846" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_847" = load i64, i64* @_gasrem, align 8 - %"$gascmp_848" = icmp ugt i64 1, %"$gasrem_847" - br i1 %"$gascmp_848", label %"$out_of_gas_849", label %"$have_gas_850" - -"$out_of_gas_849": ; preds = %"$False_845" - call void @_out_of_gas() - br label %"$have_gas_850" - -"$have_gas_850": ; preds = %"$out_of_gas_849", %"$False_845" - %"$consume_851" = sub i64 %"$gasrem_847", 1 - store i64 %"$consume_851", i64* @_gasrem, align 8 - %"$adtval_852_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_852_salloc" = call i8* @_salloc(i8* %"$adtval_852_load", i64 1) - %"$adtval_852" = bitcast i8* %"$adtval_852_salloc" to %CName_True* - %"$adtgep_853" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_852", i32 0, i32 0 - store i8 0, i8* %"$adtgep_853", align 1 - %"$adtptr_854" = bitcast %CName_True* %"$adtval_852" to %TName_Bool* - store %TName_Bool* %"$adtptr_854", %TName_Bool** %"$retval_169", align 8, !dbg !185 - br label %"$matchsucc_831" - -"$empty_default_834": ; preds = %"$have_gas_829" - br label %"$matchsucc_831" - -"$matchsucc_831": ; preds = %"$have_gas_850", %"$have_gas_840", %"$empty_default_834" - %"$$retval_169_855" = load %TName_Bool*, %TName_Bool** %"$retval_169", align 8 - ret %TName_Bool* %"$$retval_169_855" + store { i8*, i8* }* %"$list_foldr_envload_696", { i8*, i8* }** %list_foldr, align 8 + %"$retval_112" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 + %"$gasrem_697" = load i64, i64* @_gasrem, align 8 + %"$gascmp_698" = icmp ugt i64 1, %"$gasrem_697" + br i1 %"$gascmp_698", label %"$out_of_gas_699", label %"$have_gas_700" + +"$out_of_gas_699": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_700" + +"$have_gas_700": ; preds = %"$out_of_gas_699", %entry + %"$consume_701" = sub i64 %"$gasrem_697", 1 + store i64 %"$consume_701", i64* @_gasrem, align 8 + %"$$fundef_113_envp_702_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_113_envp_702_salloc" = call i8* @_salloc(i8* %"$$fundef_113_envp_702_load", i64 8) + %"$$fundef_113_envp_702" = bitcast i8* %"$$fundef_113_envp_702_salloc" to %"$$fundef_113_env_319"* + %"$$fundef_113_env_voidp_704" = bitcast %"$$fundef_113_env_319"* %"$$fundef_113_envp_702" to i8* + %"$$fundef_113_cloval_705" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_113_env_319"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_113" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_113_env_voidp_704", 1 + %"$$fundef_113_env_list_foldr_706" = getelementptr inbounds %"$$fundef_113_env_319", %"$$fundef_113_env_319"* %"$$fundef_113_envp_702", i32 0, i32 0 + %"$list_foldr_707" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 + store { i8*, i8* }* %"$list_foldr_707", { i8*, i8* }** %"$$fundef_113_env_list_foldr_706", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_113_cloval_705", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_112", align 8, !dbg !150 + %"$$retval_112_708" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_112", align 8 + ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_112_708" } -define internal %TName_Bool* @"$fundef_172"(%"$$fundef_172_env_453"* %0, %TName_Bool* %1) !dbg !187 { +define internal %TName_Bool* @"$fundef_83"(%"$$fundef_83_env_321"* %0, %TName_Bool* %1) !dbg !151 { entry: - %"$$fundef_172_env_b_796" = getelementptr inbounds %"$$fundef_172_env_453", %"$$fundef_172_env_453"* %0, i32 0, i32 0 - %"$b_envload_797" = load %TName_Bool*, %TName_Bool** %"$$fundef_172_env_b_796", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_797", %TName_Bool** %b, align 8 - %"$retval_173" = alloca %TName_Bool*, align 8 - %"$gasrem_798" = load i64, i64* @_gasrem, align 8 - %"$gascmp_799" = icmp ugt i64 2, %"$gasrem_798" - br i1 %"$gascmp_799", label %"$out_of_gas_800", label %"$have_gas_801" - -"$out_of_gas_800": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_801" - -"$have_gas_801": ; preds = %"$out_of_gas_800", %entry - %"$consume_802" = sub i64 %"$gasrem_798", 2 - store i64 %"$consume_802", i64* @_gasrem, align 8 - %"$b_804" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_805" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_804", i32 0, i32 0 - %"$b_tag_806" = load i8, i8* %"$b_tag_805", align 1 - switch i8 %"$b_tag_806", label %"$empty_default_807" [ - i8 0, label %"$True_808" - i8 1, label %"$False_818" - ], !dbg !188 - -"$True_808": ; preds = %"$have_gas_801" - %"$b_809" = bitcast %TName_Bool* %"$b_804" to %CName_True* - %"$gasrem_810" = load i64, i64* @_gasrem, align 8 - %"$gascmp_811" = icmp ugt i64 1, %"$gasrem_810" - br i1 %"$gascmp_811", label %"$out_of_gas_812", label %"$have_gas_813" - -"$out_of_gas_812": ; preds = %"$True_808" - call void @_out_of_gas() - br label %"$have_gas_813" - -"$have_gas_813": ; preds = %"$out_of_gas_812", %"$True_808" - %"$consume_814" = sub i64 %"$gasrem_810", 1 - store i64 %"$consume_814", i64* @_gasrem, align 8 - %"$adtval_815_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_815_salloc" = call i8* @_salloc(i8* %"$adtval_815_load", i64 1) - %"$adtval_815" = bitcast i8* %"$adtval_815_salloc" to %CName_True* - %"$adtgep_816" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_815", i32 0, i32 0 - store i8 0, i8* %"$adtgep_816", align 1 - %"$adtptr_817" = bitcast %CName_True* %"$adtval_815" to %TName_Bool* - store %TName_Bool* %"$adtptr_817", %TName_Bool** %"$retval_173", align 8, !dbg !189 - br label %"$matchsucc_803" - -"$False_818": ; preds = %"$have_gas_801" - %"$b_819" = bitcast %TName_Bool* %"$b_804" to %CName_False* - %"$gasrem_820" = load i64, i64* @_gasrem, align 8 - %"$gascmp_821" = icmp ugt i64 1, %"$gasrem_820" - br i1 %"$gascmp_821", label %"$out_of_gas_822", label %"$have_gas_823" - -"$out_of_gas_822": ; preds = %"$False_818" - call void @_out_of_gas() - br label %"$have_gas_823" - -"$have_gas_823": ; preds = %"$out_of_gas_822", %"$False_818" - %"$consume_824" = sub i64 %"$gasrem_820", 1 - store i64 %"$consume_824", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_173", align 8, !dbg !192 - br label %"$matchsucc_803" - -"$empty_default_807": ; preds = %"$have_gas_801" - br label %"$matchsucc_803" - -"$matchsucc_803": ; preds = %"$have_gas_823", %"$have_gas_813", %"$empty_default_807" - %"$$retval_173_825" = load %TName_Bool*, %TName_Bool** %"$retval_173", align 8 - ret %TName_Bool* %"$$retval_173_825" -} - -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_170"(%"$$fundef_170_env_454"* %0, %TName_Bool* %1) !dbg !194 { -entry: - %"$retval_171" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_785" = load i64, i64* @_gasrem, align 8 - %"$gascmp_786" = icmp ugt i64 1, %"$gasrem_785" - br i1 %"$gascmp_786", label %"$out_of_gas_787", label %"$have_gas_788" - -"$out_of_gas_787": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_788" - -"$have_gas_788": ; preds = %"$out_of_gas_787", %entry - %"$consume_789" = sub i64 %"$gasrem_785", 1 - store i64 %"$consume_789", i64* @_gasrem, align 8 - %"$$fundef_172_envp_790_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_172_envp_790_salloc" = call i8* @_salloc(i8* %"$$fundef_172_envp_790_load", i64 8) - %"$$fundef_172_envp_790" = bitcast i8* %"$$fundef_172_envp_790_salloc" to %"$$fundef_172_env_453"* - %"$$fundef_172_env_voidp_792" = bitcast %"$$fundef_172_env_453"* %"$$fundef_172_envp_790" to i8* - %"$$fundef_172_cloval_793" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_172_env_453"*, %TName_Bool*)* @"$fundef_172" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_172_env_voidp_792", 1 - %"$$fundef_172_env_b_794" = getelementptr inbounds %"$$fundef_172_env_453", %"$$fundef_172_env_453"* %"$$fundef_172_envp_790", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_172_env_b_794", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_172_cloval_793", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_171", align 8, !dbg !195 - %"$$retval_171_795" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_171", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_171_795" + %"$retval_84" = alloca %TName_Bool*, align 8 + %"$gasrem_665" = load i64, i64* @_gasrem, align 8 + %"$gascmp_666" = icmp ugt i64 2, %"$gasrem_665" + br i1 %"$gascmp_666", label %"$out_of_gas_667", label %"$have_gas_668" + +"$out_of_gas_667": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_668" + +"$have_gas_668": ; preds = %"$out_of_gas_667", %entry + %"$consume_669" = sub i64 %"$gasrem_665", 2 + store i64 %"$consume_669", i64* @_gasrem, align 8 + %"$b_tag_671" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_672" = load i8, i8* %"$b_tag_671", align 1 + switch i8 %"$b_tag_672", label %"$empty_default_673" [ + i8 0, label %"$True_674" + i8 1, label %"$False_684" + ], !dbg !153 + +"$True_674": ; preds = %"$have_gas_668" + %"$b_675" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_676" = load i64, i64* @_gasrem, align 8 + %"$gascmp_677" = icmp ugt i64 1, %"$gasrem_676" + br i1 %"$gascmp_677", label %"$out_of_gas_678", label %"$have_gas_679" + +"$out_of_gas_678": ; preds = %"$True_674" + call void @_out_of_gas() + br label %"$have_gas_679" + +"$have_gas_679": ; preds = %"$out_of_gas_678", %"$True_674" + %"$consume_680" = sub i64 %"$gasrem_676", 1 + store i64 %"$consume_680", i64* @_gasrem, align 8 + %"$adtval_681_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_681_salloc" = call i8* @_salloc(i8* %"$adtval_681_load", i64 1) + %"$adtval_681" = bitcast i8* %"$adtval_681_salloc" to %CName_False* + %"$adtgep_682" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_681", i32 0, i32 0 + store i8 1, i8* %"$adtgep_682", align 1 + %"$adtptr_683" = bitcast %CName_False* %"$adtval_681" to %TName_Bool* + store %TName_Bool* %"$adtptr_683", %TName_Bool** %"$retval_84", align 8, !dbg !154 + br label %"$matchsucc_670" + +"$False_684": ; preds = %"$have_gas_668" + %"$b_685" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_686" = load i64, i64* @_gasrem, align 8 + %"$gascmp_687" = icmp ugt i64 1, %"$gasrem_686" + br i1 %"$gascmp_687", label %"$out_of_gas_688", label %"$have_gas_689" + +"$out_of_gas_688": ; preds = %"$False_684" + call void @_out_of_gas() + br label %"$have_gas_689" + +"$have_gas_689": ; preds = %"$out_of_gas_688", %"$False_684" + %"$consume_690" = sub i64 %"$gasrem_686", 1 + store i64 %"$consume_690", i64* @_gasrem, align 8 + %"$adtval_691_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_691_salloc" = call i8* @_salloc(i8* %"$adtval_691_load", i64 1) + %"$adtval_691" = bitcast i8* %"$adtval_691_salloc" to %CName_True* + %"$adtgep_692" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_691", i32 0, i32 0 + store i8 0, i8* %"$adtgep_692", align 1 + %"$adtptr_693" = bitcast %CName_True* %"$adtval_691" to %TName_Bool* + store %TName_Bool* %"$adtptr_693", %TName_Bool** %"$retval_84", align 8, !dbg !157 + br label %"$matchsucc_670" + +"$empty_default_673": ; preds = %"$have_gas_668" + br label %"$matchsucc_670" + +"$matchsucc_670": ; preds = %"$have_gas_689", %"$have_gas_679", %"$empty_default_673" + %"$$retval_84_694" = load %TName_Bool*, %TName_Bool** %"$retval_84", align 8 + ret %TName_Bool* %"$$retval_84_694" } -define internal %TName_Bool* @"$fundef_176"(%"$$fundef_176_env_455"* %0, %TName_Bool* %1) !dbg !196 { +define internal %TName_Bool* @"$fundef_85"(%"$$fundef_85_env_322"* %0, %TName_Bool* %1, %TName_Bool* %2) !dbg !159 { entry: - %"$$fundef_176_env_b_755" = getelementptr inbounds %"$$fundef_176_env_455", %"$$fundef_176_env_455"* %0, i32 0, i32 0 - %"$b_envload_756" = load %TName_Bool*, %TName_Bool** %"$$fundef_176_env_b_755", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_756", %TName_Bool** %b, align 8 - %"$retval_177" = alloca %TName_Bool*, align 8 - %"$gasrem_757" = load i64, i64* @_gasrem, align 8 - %"$gascmp_758" = icmp ugt i64 2, %"$gasrem_757" - br i1 %"$gascmp_758", label %"$out_of_gas_759", label %"$have_gas_760" - -"$out_of_gas_759": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_760" - -"$have_gas_760": ; preds = %"$out_of_gas_759", %entry - %"$consume_761" = sub i64 %"$gasrem_757", 2 - store i64 %"$consume_761", i64* @_gasrem, align 8 - %"$b_763" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_764" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_763", i32 0, i32 0 - %"$b_tag_765" = load i8, i8* %"$b_tag_764", align 1 - switch i8 %"$b_tag_765", label %"$empty_default_766" [ - i8 1, label %"$False_767" - i8 0, label %"$True_777" - ], !dbg !197 - -"$False_767": ; preds = %"$have_gas_760" - %"$b_768" = bitcast %TName_Bool* %"$b_763" to %CName_False* - %"$gasrem_769" = load i64, i64* @_gasrem, align 8 - %"$gascmp_770" = icmp ugt i64 1, %"$gasrem_769" - br i1 %"$gascmp_770", label %"$out_of_gas_771", label %"$have_gas_772" - -"$out_of_gas_771": ; preds = %"$False_767" - call void @_out_of_gas() - br label %"$have_gas_772" - -"$have_gas_772": ; preds = %"$out_of_gas_771", %"$False_767" - %"$consume_773" = sub i64 %"$gasrem_769", 1 - store i64 %"$consume_773", i64* @_gasrem, align 8 - %"$adtval_774_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_774_salloc" = call i8* @_salloc(i8* %"$adtval_774_load", i64 1) - %"$adtval_774" = bitcast i8* %"$adtval_774_salloc" to %CName_False* - %"$adtgep_775" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_774", i32 0, i32 0 - store i8 1, i8* %"$adtgep_775", align 1 - %"$adtptr_776" = bitcast %CName_False* %"$adtval_774" to %TName_Bool* - store %TName_Bool* %"$adtptr_776", %TName_Bool** %"$retval_177", align 8, !dbg !198 - br label %"$matchsucc_762" - -"$True_777": ; preds = %"$have_gas_760" - %"$b_778" = bitcast %TName_Bool* %"$b_763" to %CName_True* - %"$gasrem_779" = load i64, i64* @_gasrem, align 8 - %"$gascmp_780" = icmp ugt i64 1, %"$gasrem_779" - br i1 %"$gascmp_780", label %"$out_of_gas_781", label %"$have_gas_782" - -"$out_of_gas_781": ; preds = %"$True_777" - call void @_out_of_gas() - br label %"$have_gas_782" - -"$have_gas_782": ; preds = %"$out_of_gas_781", %"$True_777" - %"$consume_783" = sub i64 %"$gasrem_779", 1 - store i64 %"$consume_783", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_177", align 8, !dbg !201 - br label %"$matchsucc_762" - -"$empty_default_766": ; preds = %"$have_gas_760" - br label %"$matchsucc_762" - -"$matchsucc_762": ; preds = %"$have_gas_782", %"$have_gas_772", %"$empty_default_766" - %"$$retval_177_784" = load %TName_Bool*, %TName_Bool** %"$retval_177", align 8 - ret %TName_Bool* %"$$retval_177_784" + %"$retval_86" = alloca %TName_Bool*, align 8 + %"$gasrem_638" = load i64, i64* @_gasrem, align 8 + %"$gascmp_639" = icmp ugt i64 2, %"$gasrem_638" + br i1 %"$gascmp_639", label %"$out_of_gas_640", label %"$have_gas_641" + +"$out_of_gas_640": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_641" + +"$have_gas_641": ; preds = %"$out_of_gas_640", %entry + %"$consume_642" = sub i64 %"$gasrem_638", 2 + store i64 %"$consume_642", i64* @_gasrem, align 8 + %"$b_tag_644" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_645" = load i8, i8* %"$b_tag_644", align 1 + switch i8 %"$b_tag_645", label %"$empty_default_646" [ + i8 0, label %"$True_647" + i8 1, label %"$False_657" + ], !dbg !160 + +"$True_647": ; preds = %"$have_gas_641" + %"$b_648" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_649" = load i64, i64* @_gasrem, align 8 + %"$gascmp_650" = icmp ugt i64 1, %"$gasrem_649" + br i1 %"$gascmp_650", label %"$out_of_gas_651", label %"$have_gas_652" + +"$out_of_gas_651": ; preds = %"$True_647" + call void @_out_of_gas() + br label %"$have_gas_652" + +"$have_gas_652": ; preds = %"$out_of_gas_651", %"$True_647" + %"$consume_653" = sub i64 %"$gasrem_649", 1 + store i64 %"$consume_653", i64* @_gasrem, align 8 + %"$adtval_654_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_654_salloc" = call i8* @_salloc(i8* %"$adtval_654_load", i64 1) + %"$adtval_654" = bitcast i8* %"$adtval_654_salloc" to %CName_True* + %"$adtgep_655" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_654", i32 0, i32 0 + store i8 0, i8* %"$adtgep_655", align 1 + %"$adtptr_656" = bitcast %CName_True* %"$adtval_654" to %TName_Bool* + store %TName_Bool* %"$adtptr_656", %TName_Bool** %"$retval_86", align 8, !dbg !161 + br label %"$matchsucc_643" + +"$False_657": ; preds = %"$have_gas_641" + %"$b_658" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_659" = load i64, i64* @_gasrem, align 8 + %"$gascmp_660" = icmp ugt i64 1, %"$gasrem_659" + br i1 %"$gascmp_660", label %"$out_of_gas_661", label %"$have_gas_662" + +"$out_of_gas_661": ; preds = %"$False_657" + call void @_out_of_gas() + br label %"$have_gas_662" + +"$have_gas_662": ; preds = %"$out_of_gas_661", %"$False_657" + %"$consume_663" = sub i64 %"$gasrem_659", 1 + store i64 %"$consume_663", i64* @_gasrem, align 8 + store %TName_Bool* %2, %TName_Bool** %"$retval_86", align 8, !dbg !164 + br label %"$matchsucc_643" + +"$empty_default_646": ; preds = %"$have_gas_641" + br label %"$matchsucc_643" + +"$matchsucc_643": ; preds = %"$have_gas_662", %"$have_gas_652", %"$empty_default_646" + %"$$retval_86_664" = load %TName_Bool*, %TName_Bool** %"$retval_86", align 8 + ret %TName_Bool* %"$$retval_86_664" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_174"(%"$$fundef_174_env_456"* %0, %TName_Bool* %1) !dbg !203 { +define internal %TName_Bool* @"$fundef_87"(%"$$fundef_87_env_323"* %0, %TName_Bool* %1, %TName_Bool* %2) !dbg !166 { entry: - %"$retval_175" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_744" = load i64, i64* @_gasrem, align 8 - %"$gascmp_745" = icmp ugt i64 1, %"$gasrem_744" - br i1 %"$gascmp_745", label %"$out_of_gas_746", label %"$have_gas_747" - -"$out_of_gas_746": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_747" - -"$have_gas_747": ; preds = %"$out_of_gas_746", %entry - %"$consume_748" = sub i64 %"$gasrem_744", 1 - store i64 %"$consume_748", i64* @_gasrem, align 8 - %"$$fundef_176_envp_749_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_176_envp_749_salloc" = call i8* @_salloc(i8* %"$$fundef_176_envp_749_load", i64 8) - %"$$fundef_176_envp_749" = bitcast i8* %"$$fundef_176_envp_749_salloc" to %"$$fundef_176_env_455"* - %"$$fundef_176_env_voidp_751" = bitcast %"$$fundef_176_env_455"* %"$$fundef_176_envp_749" to i8* - %"$$fundef_176_cloval_752" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_176_env_455"*, %TName_Bool*)* @"$fundef_176" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_176_env_voidp_751", 1 - %"$$fundef_176_env_b_753" = getelementptr inbounds %"$$fundef_176_env_455", %"$$fundef_176_env_455"* %"$$fundef_176_envp_749", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_176_env_b_753", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_176_cloval_752", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_175", align 8, !dbg !204 - %"$$retval_175_754" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_175", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_175_754" + %"$retval_88" = alloca %TName_Bool*, align 8 + %"$gasrem_611" = load i64, i64* @_gasrem, align 8 + %"$gascmp_612" = icmp ugt i64 2, %"$gasrem_611" + br i1 %"$gascmp_612", label %"$out_of_gas_613", label %"$have_gas_614" + +"$out_of_gas_613": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_614" + +"$have_gas_614": ; preds = %"$out_of_gas_613", %entry + %"$consume_615" = sub i64 %"$gasrem_611", 2 + store i64 %"$consume_615", i64* @_gasrem, align 8 + %"$b_tag_617" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_618" = load i8, i8* %"$b_tag_617", align 1 + switch i8 %"$b_tag_618", label %"$empty_default_619" [ + i8 1, label %"$False_620" + i8 0, label %"$True_630" + ], !dbg !167 + +"$False_620": ; preds = %"$have_gas_614" + %"$b_621" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_622" = load i64, i64* @_gasrem, align 8 + %"$gascmp_623" = icmp ugt i64 1, %"$gasrem_622" + br i1 %"$gascmp_623", label %"$out_of_gas_624", label %"$have_gas_625" + +"$out_of_gas_624": ; preds = %"$False_620" + call void @_out_of_gas() + br label %"$have_gas_625" + +"$have_gas_625": ; preds = %"$out_of_gas_624", %"$False_620" + %"$consume_626" = sub i64 %"$gasrem_622", 1 + store i64 %"$consume_626", i64* @_gasrem, align 8 + %"$adtval_627_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_627_salloc" = call i8* @_salloc(i8* %"$adtval_627_load", i64 1) + %"$adtval_627" = bitcast i8* %"$adtval_627_salloc" to %CName_False* + %"$adtgep_628" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_627", i32 0, i32 0 + store i8 1, i8* %"$adtgep_628", align 1 + %"$adtptr_629" = bitcast %CName_False* %"$adtval_627" to %TName_Bool* + store %TName_Bool* %"$adtptr_629", %TName_Bool** %"$retval_88", align 8, !dbg !168 + br label %"$matchsucc_616" + +"$True_630": ; preds = %"$have_gas_614" + %"$b_631" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_632" = load i64, i64* @_gasrem, align 8 + %"$gascmp_633" = icmp ugt i64 1, %"$gasrem_632" + br i1 %"$gascmp_633", label %"$out_of_gas_634", label %"$have_gas_635" + +"$out_of_gas_634": ; preds = %"$True_630" + call void @_out_of_gas() + br label %"$have_gas_635" + +"$have_gas_635": ; preds = %"$out_of_gas_634", %"$True_630" + %"$consume_636" = sub i64 %"$gasrem_632", 1 + store i64 %"$consume_636", i64* @_gasrem, align 8 + store %TName_Bool* %2, %TName_Bool** %"$retval_88", align 8, !dbg !171 + br label %"$matchsucc_616" + +"$empty_default_619": ; preds = %"$have_gas_614" + br label %"$matchsucc_616" + +"$matchsucc_616": ; preds = %"$have_gas_635", %"$have_gas_625", %"$empty_default_619" + %"$$retval_88_637" = load %TName_Bool*, %TName_Bool** %"$retval_88", align 8 + ret %TName_Bool* %"$$retval_88_637" } -define internal %TName_Option_ByStr20* @"$fundef_156"(%"$$fundef_156_env_457"* %0, %TName_Option_ByStr20* %1) !dbg !205 { +define internal %TName_Option_ByStr20* @"$fundef_71"(%"$$fundef_71_env_324"* %0, %TName_Option_ByStr20* %1) !dbg !173 { entry: - %"$$fundef_156_env_g_724" = getelementptr inbounds %"$$fundef_156_env_457", %"$$fundef_156_env_457"* %0, i32 0, i32 0 - %"$g_envload_725" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_156_env_g_724", align 8 + %"$$fundef_71_env_g_591" = getelementptr inbounds %"$$fundef_71_env_324", %"$$fundef_71_env_324"* %0, i32 0, i32 0 + %"$g_envload_592" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_71_env_g_591", align 8 %g = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_725", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_156_env_t_726" = getelementptr inbounds %"$$fundef_156_env_457", %"$$fundef_156_env_457"* %0, i32 0, i32 1 - %"$t_envload_727" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_156_env_t_726", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_592", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_71_env_t_593" = getelementptr inbounds %"$$fundef_71_env_324", %"$$fundef_71_env_324"* %0, i32 0, i32 1 + %"$t_envload_594" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_71_env_t_593", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_envload_727", %TName_List_ByStr20** %t, align 8 - %"$retval_157" = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_728" = load i64, i64* @_gasrem, align 8 - %"$gascmp_729" = icmp ugt i64 1, %"$gasrem_728" - br i1 %"$gascmp_729", label %"$out_of_gas_730", label %"$have_gas_731" + store %TName_List_ByStr20* %"$t_envload_594", %TName_List_ByStr20** %t, align 8 + %"$retval_72" = alloca %TName_Option_ByStr20*, align 8 + %"$gasrem_595" = load i64, i64* @_gasrem, align 8 + %"$gascmp_596" = icmp ugt i64 1, %"$gasrem_595" + br i1 %"$gascmp_596", label %"$out_of_gas_597", label %"$have_gas_598" -"$out_of_gas_730": ; preds = %entry +"$out_of_gas_597": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_731" + br label %"$have_gas_598" -"$have_gas_731": ; preds = %"$out_of_gas_730", %entry - %"$consume_732" = sub i64 %"$gasrem_728", 1 - store i64 %"$consume_732", i64* @_gasrem, align 8 +"$have_gas_598": ; preds = %"$out_of_gas_597", %entry + %"$consume_599" = sub i64 %"$gasrem_595", 1 + store i64 %"$consume_599", i64* @_gasrem, align 8 %"$g_14" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$g_733" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$g_fptr_734" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_733", 0 - %"$g_envptr_735" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_733", 1 - %"$g_call_736" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_734"(i8* %"$g_envptr_735", %TName_Option_ByStr20* %1), !dbg !207 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_736", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_14", align 8, !dbg !207 + %"$g_600" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$g_fptr_601" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_600", 0 + %"$g_envptr_602" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_600", 1 + %"$g_call_603" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_601"(i8* %"$g_envptr_602", %TName_Option_ByStr20* %1), !dbg !175 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_603", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_14", align 8, !dbg !175 %"$g_15" = alloca %TName_Option_ByStr20*, align 8 - %"$$g_14_737" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_14", align 8 - %"$$g_14_fptr_738" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_14_737", 0 - %"$$g_14_envptr_739" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_14_737", 1 - %"$t_740" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - %"$$g_14_call_741" = call %TName_Option_ByStr20* %"$$g_14_fptr_738"(i8* %"$$g_14_envptr_739", %TName_List_ByStr20* %"$t_740"), !dbg !207 - store %TName_Option_ByStr20* %"$$g_14_call_741", %TName_Option_ByStr20** %"$g_15", align 8, !dbg !207 - %"$$g_15_742" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$g_15", align 8 - store %TName_Option_ByStr20* %"$$g_15_742", %TName_Option_ByStr20** %"$retval_157", align 8, !dbg !207 - %"$$retval_157_743" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_157", align 8 - ret %TName_Option_ByStr20* %"$$retval_157_743" + %"$$g_14_604" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_14", align 8 + %"$$g_14_fptr_605" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_14_604", 0 + %"$$g_14_envptr_606" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_14_604", 1 + %"$t_607" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + %"$$g_14_call_608" = call %TName_Option_ByStr20* %"$$g_14_fptr_605"(i8* %"$$g_14_envptr_606", %TName_List_ByStr20* %"$t_607"), !dbg !175 + store %TName_Option_ByStr20* %"$$g_14_call_608", %TName_Option_ByStr20** %"$g_15", align 8, !dbg !175 + %"$$g_15_609" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$g_15", align 8 + store %TName_Option_ByStr20* %"$$g_15_609", %TName_Option_ByStr20** %"$retval_72", align 8, !dbg !175 + %"$$retval_72_610" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_72", align 8 + ret %TName_Option_ByStr20* %"$$retval_72_610" } -define internal %TName_Option_ByStr20* @"$fundef_154"(%"$$fundef_154_env_458"* %0, %TName_List_ByStr20* %1) !dbg !208 { +define internal %TName_Option_ByStr20* @"$fundef_69"(%"$$fundef_69_env_325"* %0, %TName_List_ByStr20* %1) !dbg !176 { entry: - %"$$fundef_154_env_f_654" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %0, i32 0, i32 0 - %"$f_envload_655" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_154_env_f_654", align 8 + %"$$fundef_69_env_f_521" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %0, i32 0, i32 0 + %"$f_envload_522" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_69_env_f_521", align 8 %f = alloca { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_envload_655", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 - %"$$fundef_154_env_g_656" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %0, i32 0, i32 1 - %"$g_envload_657" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_154_env_g_656", align 8 + store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_envload_522", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 + %"$$fundef_69_env_g_523" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %0, i32 0, i32 1 + %"$g_envload_524" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_69_env_g_523", align 8 %g = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_657", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_154_env_z_658" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %0, i32 0, i32 2 - %"$z_envload_659" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_154_env_z_658", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_524", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_69_env_z_525" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %0, i32 0, i32 2 + %"$z_envload_526" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_69_env_z_525", align 8 %z = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$z_envload_659", %TName_Option_ByStr20** %z, align 8 - %"$retval_155" = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_660" = load i64, i64* @_gasrem, align 8 - %"$gascmp_661" = icmp ugt i64 2, %"$gasrem_660" - br i1 %"$gascmp_661", label %"$out_of_gas_662", label %"$have_gas_663" - -"$out_of_gas_662": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_663" - -"$have_gas_663": ; preds = %"$out_of_gas_662", %entry - %"$consume_664" = sub i64 %"$gasrem_660", 2 - store i64 %"$consume_664", i64* @_gasrem, align 8 - %"$l_tag_666" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 - %"$l_tag_667" = load i8, i8* %"$l_tag_666", align 1 - switch i8 %"$l_tag_667", label %"$empty_default_668" [ - i8 0, label %"$Cons_669" - i8 1, label %"$Nil_715" - ], !dbg !209 - -"$Cons_669": ; preds = %"$have_gas_663" - %"$l_670" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* - %"$h_gep_671" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_670", i32 0, i32 1 - %"$h_load_672" = load [20 x i8], [20 x i8]* %"$h_gep_671", align 1 + store %TName_Option_ByStr20* %"$z_envload_526", %TName_Option_ByStr20** %z, align 8 + %"$retval_70" = alloca %TName_Option_ByStr20*, align 8 + %"$gasrem_527" = load i64, i64* @_gasrem, align 8 + %"$gascmp_528" = icmp ugt i64 2, %"$gasrem_527" + br i1 %"$gascmp_528", label %"$out_of_gas_529", label %"$have_gas_530" + +"$out_of_gas_529": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_530" + +"$have_gas_530": ; preds = %"$out_of_gas_529", %entry + %"$consume_531" = sub i64 %"$gasrem_527", 2 + store i64 %"$consume_531", i64* @_gasrem, align 8 + %"$l_tag_533" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 + %"$l_tag_534" = load i8, i8* %"$l_tag_533", align 1 + switch i8 %"$l_tag_534", label %"$empty_default_535" [ + i8 0, label %"$Cons_536" + i8 1, label %"$Nil_582" + ], !dbg !177 + +"$Cons_536": ; preds = %"$have_gas_530" + %"$l_537" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* + %"$h_gep_538" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_537", i32 0, i32 1 + %"$h_load_539" = load [20 x i8], [20 x i8]* %"$h_gep_538", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_load_672", [20 x i8]* %h, align 1 - %"$t_gep_673" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_670", i32 0, i32 2 - %"$t_load_674" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_673", align 8 + store [20 x i8] %"$h_load_539", [20 x i8]* %h, align 1 + %"$t_gep_540" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_537", i32 0, i32 2 + %"$t_load_541" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_540", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_load_674", %TName_List_ByStr20** %t, align 8 - %"$gasrem_675" = load i64, i64* @_gasrem, align 8 - %"$gascmp_676" = icmp ugt i64 1, %"$gasrem_675" - br i1 %"$gascmp_676", label %"$out_of_gas_677", label %"$have_gas_678" + store %TName_List_ByStr20* %"$t_load_541", %TName_List_ByStr20** %t, align 8 + %"$gasrem_542" = load i64, i64* @_gasrem, align 8 + %"$gascmp_543" = icmp ugt i64 1, %"$gasrem_542" + br i1 %"$gascmp_543", label %"$out_of_gas_544", label %"$have_gas_545" -"$out_of_gas_677": ; preds = %"$Cons_669" +"$out_of_gas_544": ; preds = %"$Cons_536" call void @_out_of_gas() - br label %"$have_gas_678" + br label %"$have_gas_545" -"$have_gas_678": ; preds = %"$out_of_gas_677", %"$Cons_669" - %"$consume_679" = sub i64 %"$gasrem_675", 1 - store i64 %"$consume_679", i64* @_gasrem, align 8 +"$have_gas_545": ; preds = %"$out_of_gas_544", %"$Cons_536" + %"$consume_546" = sub i64 %"$gasrem_542", 1 + store i64 %"$consume_546", i64* @_gasrem, align 8 %partial = alloca { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_680" = load i64, i64* @_gasrem, align 8 - %"$gascmp_681" = icmp ugt i64 1, %"$gasrem_680" - br i1 %"$gascmp_681", label %"$out_of_gas_682", label %"$have_gas_683" - -"$out_of_gas_682": ; preds = %"$have_gas_678" - call void @_out_of_gas() - br label %"$have_gas_683" - -"$have_gas_683": ; preds = %"$out_of_gas_682", %"$have_gas_678" - %"$consume_684" = sub i64 %"$gasrem_680", 1 - store i64 %"$consume_684", i64* @_gasrem, align 8 - %"$$fundef_156_envp_685_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_156_envp_685_salloc" = call i8* @_salloc(i8* %"$$fundef_156_envp_685_load", i64 24) - %"$$fundef_156_envp_685" = bitcast i8* %"$$fundef_156_envp_685_salloc" to %"$$fundef_156_env_457"* - %"$$fundef_156_env_voidp_687" = bitcast %"$$fundef_156_env_457"* %"$$fundef_156_envp_685" to i8* - %"$$fundef_156_cloval_688" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_156_env_457"*, %TName_Option_ByStr20*)* @"$fundef_156" to %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_156_env_voidp_687", 1 - %"$$fundef_156_env_g_689" = getelementptr inbounds %"$$fundef_156_env_457", %"$$fundef_156_env_457"* %"$$fundef_156_envp_685", i32 0, i32 0 - %"$g_690" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_690", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_156_env_g_689", align 8 - %"$$fundef_156_env_t_691" = getelementptr inbounds %"$$fundef_156_env_457", %"$$fundef_156_env_457"* %"$$fundef_156_envp_685", i32 0, i32 1 - %"$t_692" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - store %TName_List_ByStr20* %"$t_692", %TName_List_ByStr20** %"$$fundef_156_env_t_691", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_156_cloval_688", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8, !dbg !210 - %"$gasrem_693" = load i64, i64* @_gasrem, align 8 - %"$gascmp_694" = icmp ugt i64 1, %"$gasrem_693" - br i1 %"$gascmp_694", label %"$out_of_gas_695", label %"$have_gas_696" - -"$out_of_gas_695": ; preds = %"$have_gas_683" - call void @_out_of_gas() - br label %"$have_gas_696" - -"$have_gas_696": ; preds = %"$out_of_gas_695", %"$have_gas_683" - %"$consume_697" = sub i64 %"$gasrem_693", 1 - store i64 %"$consume_697", i64* @_gasrem, align 8 + %"$gasrem_547" = load i64, i64* @_gasrem, align 8 + %"$gascmp_548" = icmp ugt i64 1, %"$gasrem_547" + br i1 %"$gascmp_548", label %"$out_of_gas_549", label %"$have_gas_550" + +"$out_of_gas_549": ; preds = %"$have_gas_545" + call void @_out_of_gas() + br label %"$have_gas_550" + +"$have_gas_550": ; preds = %"$out_of_gas_549", %"$have_gas_545" + %"$consume_551" = sub i64 %"$gasrem_547", 1 + store i64 %"$consume_551", i64* @_gasrem, align 8 + %"$$fundef_71_envp_552_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_71_envp_552_salloc" = call i8* @_salloc(i8* %"$$fundef_71_envp_552_load", i64 24) + %"$$fundef_71_envp_552" = bitcast i8* %"$$fundef_71_envp_552_salloc" to %"$$fundef_71_env_324"* + %"$$fundef_71_env_voidp_554" = bitcast %"$$fundef_71_env_324"* %"$$fundef_71_envp_552" to i8* + %"$$fundef_71_cloval_555" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_71_env_324"*, %TName_Option_ByStr20*)* @"$fundef_71" to %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_71_env_voidp_554", 1 + %"$$fundef_71_env_g_556" = getelementptr inbounds %"$$fundef_71_env_324", %"$$fundef_71_env_324"* %"$$fundef_71_envp_552", i32 0, i32 0 + %"$g_557" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_557", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_71_env_g_556", align 8 + %"$$fundef_71_env_t_558" = getelementptr inbounds %"$$fundef_71_env_324", %"$$fundef_71_env_324"* %"$$fundef_71_envp_552", i32 0, i32 1 + %"$t_559" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + store %TName_List_ByStr20* %"$t_559", %TName_List_ByStr20** %"$$fundef_71_env_t_558", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_71_cloval_555", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8, !dbg !178 + %"$gasrem_560" = load i64, i64* @_gasrem, align 8 + %"$gascmp_561" = icmp ugt i64 1, %"$gasrem_560" + br i1 %"$gascmp_561", label %"$out_of_gas_562", label %"$have_gas_563" + +"$out_of_gas_562": ; preds = %"$have_gas_550" + call void @_out_of_gas() + br label %"$have_gas_563" + +"$have_gas_563": ; preds = %"$out_of_gas_562", %"$have_gas_550" + %"$consume_564" = sub i64 %"$gasrem_560", 1 + store i64 %"$consume_564", i64* @_gasrem, align 8 %"$f_16" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_698" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 - %"$f_fptr_699" = extractvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_698", 0 - %"$f_envptr_700" = extractvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_698", 1 - %"$z_701" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 - %"$f_call_702" = call { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_fptr_699"(i8* %"$f_envptr_700", %TName_Option_ByStr20* %"$z_701"), !dbg !213 - store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_call_702", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_16", align 8, !dbg !213 + %"$f_565" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 + %"$f_fptr_566" = extractvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_565", 0 + %"$f_envptr_567" = extractvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_565", 1 + %"$z_568" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 + %"$f_call_569" = call { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_fptr_566"(i8* %"$f_envptr_567", %TName_Option_ByStr20* %"$z_568"), !dbg !181 + store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_call_569", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_16", align 8, !dbg !181 %"$f_17" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$$f_16_703" = load { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_16", align 8 - %"$$f_16_fptr_704" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_16_703", 0 - %"$$f_16_envptr_705" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_16_703", 1 - %"$$f_16_h_706" = alloca [20 x i8], align 1 - %"$h_707" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_707", [20 x i8]* %"$$f_16_h_706", align 1 - %"$$f_16_call_708" = call { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_16_fptr_704"(i8* %"$$f_16_envptr_705", [20 x i8]* %"$$f_16_h_706"), !dbg !213 - store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_16_call_708", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_17", align 8, !dbg !213 + %"$$f_16_570" = load { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_16", align 8 + %"$$f_16_fptr_571" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_16_570", 0 + %"$$f_16_envptr_572" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_16_570", 1 + %"$$f_16_h_573" = alloca [20 x i8], align 1 + %"$h_574" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_574", [20 x i8]* %"$$f_16_h_573", align 1 + %"$$f_16_call_575" = call { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_16_fptr_571"(i8* %"$$f_16_envptr_572", [20 x i8]* %"$$f_16_h_573"), !dbg !181 + store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_16_call_575", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_17", align 8, !dbg !181 %"$f_18" = alloca %TName_Option_ByStr20*, align 8 - %"$$f_17_709" = load { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_17", align 8 - %"$$f_17_fptr_710" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_17_709", 0 - %"$$f_17_envptr_711" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_17_709", 1 - %"$partial_712" = load { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 - %"$$f_17_call_713" = call %TName_Option_ByStr20* %"$$f_17_fptr_710"(i8* %"$$f_17_envptr_711", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$partial_712"), !dbg !213 - store %TName_Option_ByStr20* %"$$f_17_call_713", %TName_Option_ByStr20** %"$f_18", align 8, !dbg !213 - %"$$f_18_714" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$f_18", align 8 - store %TName_Option_ByStr20* %"$$f_18_714", %TName_Option_ByStr20** %"$retval_155", align 8, !dbg !213 - br label %"$matchsucc_665" - -"$Nil_715": ; preds = %"$have_gas_663" - %"$l_716" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* - %"$gasrem_717" = load i64, i64* @_gasrem, align 8 - %"$gascmp_718" = icmp ugt i64 1, %"$gasrem_717" - br i1 %"$gascmp_718", label %"$out_of_gas_719", label %"$have_gas_720" - -"$out_of_gas_719": ; preds = %"$Nil_715" - call void @_out_of_gas() - br label %"$have_gas_720" - -"$have_gas_720": ; preds = %"$out_of_gas_719", %"$Nil_715" - %"$consume_721" = sub i64 %"$gasrem_717", 1 - store i64 %"$consume_721", i64* @_gasrem, align 8 - %"$z_722" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 - store %TName_Option_ByStr20* %"$z_722", %TName_Option_ByStr20** %"$retval_155", align 8, !dbg !214 - br label %"$matchsucc_665" - -"$empty_default_668": ; preds = %"$have_gas_663" - br label %"$matchsucc_665" - -"$matchsucc_665": ; preds = %"$have_gas_720", %"$have_gas_696", %"$empty_default_668" - %"$$retval_155_723" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_155", align 8 - ret %TName_Option_ByStr20* %"$$retval_155_723" + %"$$f_17_576" = load { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_17", align 8 + %"$$f_17_fptr_577" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_17_576", 0 + %"$$f_17_envptr_578" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_17_576", 1 + %"$partial_579" = load { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 + %"$$f_17_call_580" = call %TName_Option_ByStr20* %"$$f_17_fptr_577"(i8* %"$$f_17_envptr_578", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$partial_579"), !dbg !181 + store %TName_Option_ByStr20* %"$$f_17_call_580", %TName_Option_ByStr20** %"$f_18", align 8, !dbg !181 + %"$$f_18_581" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$f_18", align 8 + store %TName_Option_ByStr20* %"$$f_18_581", %TName_Option_ByStr20** %"$retval_70", align 8, !dbg !181 + br label %"$matchsucc_532" + +"$Nil_582": ; preds = %"$have_gas_530" + %"$l_583" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* + %"$gasrem_584" = load i64, i64* @_gasrem, align 8 + %"$gascmp_585" = icmp ugt i64 1, %"$gasrem_584" + br i1 %"$gascmp_585", label %"$out_of_gas_586", label %"$have_gas_587" + +"$out_of_gas_586": ; preds = %"$Nil_582" + call void @_out_of_gas() + br label %"$have_gas_587" + +"$have_gas_587": ; preds = %"$out_of_gas_586", %"$Nil_582" + %"$consume_588" = sub i64 %"$gasrem_584", 1 + store i64 %"$consume_588", i64* @_gasrem, align 8 + %"$z_589" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 + store %TName_Option_ByStr20* %"$z_589", %TName_Option_ByStr20** %"$retval_70", align 8, !dbg !182 + br label %"$matchsucc_532" + +"$empty_default_535": ; preds = %"$have_gas_530" + br label %"$matchsucc_532" + +"$matchsucc_532": ; preds = %"$have_gas_587", %"$have_gas_563", %"$empty_default_535" + %"$$retval_70_590" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_70", align 8 + ret %TName_Option_ByStr20* %"$$retval_70_590" } -define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_152"(%"$$fundef_152_env_459"* %0, %TName_Option_ByStr20* %1) !dbg !216 { +define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_67"(%"$$fundef_67_env_326"* %0, %TName_Option_ByStr20* %1) !dbg !184 { entry: - %"$$fundef_152_env_f_635" = getelementptr inbounds %"$$fundef_152_env_459", %"$$fundef_152_env_459"* %0, i32 0, i32 0 - %"$f_envload_636" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_152_env_f_635", align 8 + %"$$fundef_67_env_f_502" = getelementptr inbounds %"$$fundef_67_env_326", %"$$fundef_67_env_326"* %0, i32 0, i32 0 + %"$f_envload_503" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_67_env_f_502", align 8 %f = alloca { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_envload_636", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 - %"$$fundef_152_env_g_637" = getelementptr inbounds %"$$fundef_152_env_459", %"$$fundef_152_env_459"* %0, i32 0, i32 1 - %"$g_envload_638" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_152_env_g_637", align 8 + store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_envload_503", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 + %"$$fundef_67_env_g_504" = getelementptr inbounds %"$$fundef_67_env_326", %"$$fundef_67_env_326"* %0, i32 0, i32 1 + %"$g_envload_505" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_67_env_g_504", align 8 %g = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_638", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$retval_153" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_639" = load i64, i64* @_gasrem, align 8 - %"$gascmp_640" = icmp ugt i64 1, %"$gasrem_639" - br i1 %"$gascmp_640", label %"$out_of_gas_641", label %"$have_gas_642" - -"$out_of_gas_641": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_642" - -"$have_gas_642": ; preds = %"$out_of_gas_641", %entry - %"$consume_643" = sub i64 %"$gasrem_639", 1 - store i64 %"$consume_643", i64* @_gasrem, align 8 - %"$$fundef_154_envp_644_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_154_envp_644_salloc" = call i8* @_salloc(i8* %"$$fundef_154_envp_644_load", i64 40) - %"$$fundef_154_envp_644" = bitcast i8* %"$$fundef_154_envp_644_salloc" to %"$$fundef_154_env_458"* - %"$$fundef_154_env_voidp_646" = bitcast %"$$fundef_154_env_458"* %"$$fundef_154_envp_644" to i8* - %"$$fundef_154_cloval_647" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_154_env_458"*, %TName_List_ByStr20*)* @"$fundef_154" to %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_154_env_voidp_646", 1 - %"$$fundef_154_env_f_648" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %"$$fundef_154_envp_644", i32 0, i32 0 - %"$f_649" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 - store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_649", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_154_env_f_648", align 8 - %"$$fundef_154_env_g_650" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %"$$fundef_154_envp_644", i32 0, i32 1 - %"$g_651" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_651", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_154_env_g_650", align 8 - %"$$fundef_154_env_z_652" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %"$$fundef_154_envp_644", i32 0, i32 2 - store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_154_env_z_652", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_154_cloval_647", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_153", align 8, !dbg !217 - %"$$retval_153_653" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_153", align 8 - ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_153_653" + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_505", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$retval_68" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_506" = load i64, i64* @_gasrem, align 8 + %"$gascmp_507" = icmp ugt i64 1, %"$gasrem_506" + br i1 %"$gascmp_507", label %"$out_of_gas_508", label %"$have_gas_509" + +"$out_of_gas_508": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_509" + +"$have_gas_509": ; preds = %"$out_of_gas_508", %entry + %"$consume_510" = sub i64 %"$gasrem_506", 1 + store i64 %"$consume_510", i64* @_gasrem, align 8 + %"$$fundef_69_envp_511_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_69_envp_511_salloc" = call i8* @_salloc(i8* %"$$fundef_69_envp_511_load", i64 40) + %"$$fundef_69_envp_511" = bitcast i8* %"$$fundef_69_envp_511_salloc" to %"$$fundef_69_env_325"* + %"$$fundef_69_env_voidp_513" = bitcast %"$$fundef_69_env_325"* %"$$fundef_69_envp_511" to i8* + %"$$fundef_69_cloval_514" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_69_env_325"*, %TName_List_ByStr20*)* @"$fundef_69" to %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_69_env_voidp_513", 1 + %"$$fundef_69_env_f_515" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %"$$fundef_69_envp_511", i32 0, i32 0 + %"$f_516" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 + store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_516", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_69_env_f_515", align 8 + %"$$fundef_69_env_g_517" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %"$$fundef_69_envp_511", i32 0, i32 1 + %"$g_518" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_518", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_69_env_g_517", align 8 + %"$$fundef_69_env_z_519" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %"$$fundef_69_envp_511", i32 0, i32 2 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_69_env_z_519", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_69_cloval_514", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_68", align 8, !dbg !185 + %"$$retval_68_520" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_68", align 8 + ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_68_520" } -define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_150"(%"$$fundef_150_env_460"* %0, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %1) !dbg !218 { +define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_65"(%"$$fundef_65_env_327"* %0, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %1) !dbg !186 { entry: - %"$retval_151" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_616" = load i64, i64* @_gasrem, align 8 - %"$gascmp_617" = icmp ugt i64 1, %"$gasrem_616" - br i1 %"$gascmp_617", label %"$out_of_gas_618", label %"$have_gas_619" - -"$out_of_gas_618": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_619" - -"$have_gas_619": ; preds = %"$out_of_gas_618", %entry - %"$consume_620" = sub i64 %"$gasrem_616", 1 - store i64 %"$consume_620", i64* @_gasrem, align 8 - %"$gasrem_621" = load i64, i64* @_gasrem, align 8 - %"$gascmp_622" = icmp ugt i64 1, %"$gasrem_621" - br i1 %"$gascmp_622", label %"$out_of_gas_623", label %"$have_gas_624" - -"$out_of_gas_623": ; preds = %"$have_gas_619" - call void @_out_of_gas() - br label %"$have_gas_624" - -"$have_gas_624": ; preds = %"$out_of_gas_623", %"$have_gas_619" - %"$consume_625" = sub i64 %"$gasrem_621", 1 - store i64 %"$consume_625", i64* @_gasrem, align 8 - %"$$fundef_152_envp_626_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_152_envp_626_salloc" = call i8* @_salloc(i8* %"$$fundef_152_envp_626_load", i64 32) - %"$$fundef_152_envp_626" = bitcast i8* %"$$fundef_152_envp_626_salloc" to %"$$fundef_152_env_459"* - %"$$fundef_152_env_voidp_628" = bitcast %"$$fundef_152_env_459"* %"$$fundef_152_envp_626" to i8* - %"$$fundef_152_cloval_629" = insertvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)* bitcast ({ %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_152_env_459"*, %TName_Option_ByStr20*)* @"$fundef_152" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_152_env_voidp_628", 1 + %"$retval_66" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 + %"$gasrem_483" = load i64, i64* @_gasrem, align 8 + %"$gascmp_484" = icmp ugt i64 1, %"$gasrem_483" + br i1 %"$gascmp_484", label %"$out_of_gas_485", label %"$have_gas_486" + +"$out_of_gas_485": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_486" + +"$have_gas_486": ; preds = %"$out_of_gas_485", %entry + %"$consume_487" = sub i64 %"$gasrem_483", 1 + store i64 %"$consume_487", i64* @_gasrem, align 8 + %"$gasrem_488" = load i64, i64* @_gasrem, align 8 + %"$gascmp_489" = icmp ugt i64 1, %"$gasrem_488" + br i1 %"$gascmp_489", label %"$out_of_gas_490", label %"$have_gas_491" + +"$out_of_gas_490": ; preds = %"$have_gas_486" + call void @_out_of_gas() + br label %"$have_gas_491" + +"$have_gas_491": ; preds = %"$out_of_gas_490", %"$have_gas_486" + %"$consume_492" = sub i64 %"$gasrem_488", 1 + store i64 %"$consume_492", i64* @_gasrem, align 8 + %"$$fundef_67_envp_493_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_67_envp_493_salloc" = call i8* @_salloc(i8* %"$$fundef_67_envp_493_load", i64 32) + %"$$fundef_67_envp_493" = bitcast i8* %"$$fundef_67_envp_493_salloc" to %"$$fundef_67_env_326"* + %"$$fundef_67_env_voidp_495" = bitcast %"$$fundef_67_env_326"* %"$$fundef_67_envp_493" to i8* + %"$$fundef_67_cloval_496" = insertvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)* bitcast ({ %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_67_env_326"*, %TName_Option_ByStr20*)* @"$fundef_67" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_67_env_voidp_495", 1 %g = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_152_cloval_629", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8, !dbg !219 - %"$$fundef_152_env_f_630" = getelementptr inbounds %"$$fundef_152_env_459", %"$$fundef_152_env_459"* %"$$fundef_152_envp_626", i32 0, i32 0 - store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %1, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_152_env_f_630", align 8 - %"$$fundef_152_env_g_631" = getelementptr inbounds %"$$fundef_152_env_459", %"$$fundef_152_env_459"* %"$$fundef_152_envp_626", i32 0, i32 1 - %"$g_632" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_632", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_152_env_g_631", align 8 - %"$g_633" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_633", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_151", align 8, !dbg !219 - %"$$retval_151_634" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_151", align 8 - ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_151_634" + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_67_cloval_496", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8, !dbg !187 + %"$$fundef_67_env_f_497" = getelementptr inbounds %"$$fundef_67_env_326", %"$$fundef_67_env_326"* %"$$fundef_67_envp_493", i32 0, i32 0 + store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %1, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_67_env_f_497", align 8 + %"$$fundef_67_env_g_498" = getelementptr inbounds %"$$fundef_67_env_326", %"$$fundef_67_env_326"* %"$$fundef_67_envp_493", i32 0, i32 1 + %"$g_499" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_499", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_67_env_g_498", align 8 + %"$g_500" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_500", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_66", align 8, !dbg !187 + %"$$retval_66_501" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_66", align 8 + ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_66_501" } -define internal { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_148"(%"$$fundef_148_env_461"* %0) !dbg !220 { +define internal { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_63"(%"$$fundef_63_env_328"* %0) !dbg !188 { entry: - %"$retval_149" = alloca { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$gasrem_607" = load i64, i64* @_gasrem, align 8 - %"$gascmp_608" = icmp ugt i64 1, %"$gasrem_607" - br i1 %"$gascmp_608", label %"$out_of_gas_609", label %"$have_gas_610" + %"$retval_64" = alloca { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 + %"$gasrem_474" = load i64, i64* @_gasrem, align 8 + %"$gascmp_475" = icmp ugt i64 1, %"$gasrem_474" + br i1 %"$gascmp_475", label %"$out_of_gas_476", label %"$have_gas_477" -"$out_of_gas_609": ; preds = %entry +"$out_of_gas_476": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_610" + br label %"$have_gas_477" -"$have_gas_610": ; preds = %"$out_of_gas_609", %entry - %"$consume_611" = sub i64 %"$gasrem_607", 1 - store i64 %"$consume_611", i64* @_gasrem, align 8 - store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* bitcast ({ { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (%"$$fundef_150_env_460"*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_150" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* null }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_149", align 8, !dbg !221 - %"$$retval_149_615" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_149", align 8 - ret { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_149_615" +"$have_gas_477": ; preds = %"$out_of_gas_476", %entry + %"$consume_478" = sub i64 %"$gasrem_474", 1 + store i64 %"$consume_478", i64* @_gasrem, align 8 + store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* bitcast ({ { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (%"$$fundef_65_env_327"*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_65" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* null }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_64", align 8, !dbg !189 + %"$$retval_64_482" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_64", align 8 + ret { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_64_482" } -define internal { i8*, i8* }* @"$fundef_146"(%"$$fundef_146_env_462"* %0) !dbg !222 { +define internal { i8*, i8* }* @"$fundef_61"(%"$$fundef_61_env_329"* %0) !dbg !190 { entry: - %"$retval_147" = alloca { i8*, i8* }*, align 8 - %"$gasrem_595" = load i64, i64* @_gasrem, align 8 - %"$gascmp_596" = icmp ugt i64 1, %"$gasrem_595" - br i1 %"$gascmp_596", label %"$out_of_gas_597", label %"$have_gas_598" - -"$out_of_gas_597": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_598" - -"$have_gas_598": ; preds = %"$out_of_gas_597", %entry - %"$consume_599" = sub i64 %"$gasrem_595", 1 - store i64 %"$consume_599", i64* @_gasrem, align 8 - %"$dyndisp_table_603_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_603_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_603_salloc_load", i64 48) - %"$dyndisp_table_603_salloc" = bitcast i8* %"$dyndisp_table_603_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_603" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_603_salloc" to { i8*, i8* }* - %"$dyndisp_gep_604" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_603", i32 2 - %"$dyndisp_pcast_605" = bitcast { i8*, i8* }* %"$dyndisp_gep_604" to { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (%"$$fundef_148_env_461"*)* @"$fundef_148" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_605", align 8 - store { i8*, i8* }* %"$dyndisp_table_603", { i8*, i8* }** %"$retval_147", align 8, !dbg !223 - %"$$retval_147_606" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_147", align 8 - ret { i8*, i8* }* %"$$retval_147_606" + %"$retval_62" = alloca { i8*, i8* }*, align 8 + %"$gasrem_462" = load i64, i64* @_gasrem, align 8 + %"$gascmp_463" = icmp ugt i64 1, %"$gasrem_462" + br i1 %"$gascmp_463", label %"$out_of_gas_464", label %"$have_gas_465" + +"$out_of_gas_464": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_465" + +"$have_gas_465": ; preds = %"$out_of_gas_464", %entry + %"$consume_466" = sub i64 %"$gasrem_462", 1 + store i64 %"$consume_466", i64* @_gasrem, align 8 + %"$dyndisp_table_470_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_470_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_470_salloc_load", i64 48) + %"$dyndisp_table_470_salloc" = bitcast i8* %"$dyndisp_table_470_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_470" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_470_salloc" to { i8*, i8* }* + %"$dyndisp_gep_471" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_470", i32 2 + %"$dyndisp_pcast_472" = bitcast { i8*, i8* }* %"$dyndisp_gep_471" to { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (%"$$fundef_63_env_328"*)* @"$fundef_63" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_472", align 8 + store { i8*, i8* }* %"$dyndisp_table_470", { i8*, i8* }** %"$retval_62", align 8, !dbg !191 + %"$$retval_62_473" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_62", align 8 + ret { i8*, i8* }* %"$$retval_62_473" } -define internal %TName_List_ByStr20* @"$fundef_166"(%"$$fundef_166_env_463"* %0, %TName_List_ByStr20* %1) !dbg !224 { +define internal %TName_List_ByStr20* @"$fundef_81"(%"$$fundef_81_env_330"* %0, %TName_List_ByStr20* %1) !dbg !192 { entry: - %"$$fundef_166_env_f_527" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %0, i32 0, i32 0 - %"$f_envload_528" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_166_env_f_527", align 8 + %"$$fundef_81_env_f_394" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %0, i32 0, i32 0 + %"$f_envload_395" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_81_env_f_394", align 8 %f = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_528", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$$fundef_166_env_g_529" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %0, i32 0, i32 1 - %"$g_envload_530" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_166_env_g_529", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_395", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$$fundef_81_env_g_396" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %0, i32 0, i32 1 + %"$g_envload_397" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_81_env_g_396", align 8 %g = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_envload_530", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_166_env_z_531" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %0, i32 0, i32 2 - %"$z_envload_532" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_166_env_z_531", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_envload_397", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_81_env_z_398" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %0, i32 0, i32 2 + %"$z_envload_399" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_81_env_z_398", align 8 %z = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$z_envload_532", %TName_List_ByStr20** %z, align 8 - %"$retval_167" = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_533" = load i64, i64* @_gasrem, align 8 - %"$gascmp_534" = icmp ugt i64 2, %"$gasrem_533" - br i1 %"$gascmp_534", label %"$out_of_gas_535", label %"$have_gas_536" - -"$out_of_gas_535": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_536" - -"$have_gas_536": ; preds = %"$out_of_gas_535", %entry - %"$consume_537" = sub i64 %"$gasrem_533", 2 - store i64 %"$consume_537", i64* @_gasrem, align 8 - %"$l_tag_539" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 - %"$l_tag_540" = load i8, i8* %"$l_tag_539", align 1 - switch i8 %"$l_tag_540", label %"$empty_default_541" [ - i8 0, label %"$Cons_542" - i8 1, label %"$Nil_586" - ], !dbg !225 - -"$Cons_542": ; preds = %"$have_gas_536" - %"$l_543" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* - %"$h_gep_544" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_543", i32 0, i32 1 - %"$h_load_545" = load [20 x i8], [20 x i8]* %"$h_gep_544", align 1 + store %TName_List_ByStr20* %"$z_envload_399", %TName_List_ByStr20** %z, align 8 + %"$retval_82" = alloca %TName_List_ByStr20*, align 8 + %"$gasrem_400" = load i64, i64* @_gasrem, align 8 + %"$gascmp_401" = icmp ugt i64 2, %"$gasrem_400" + br i1 %"$gascmp_401", label %"$out_of_gas_402", label %"$have_gas_403" + +"$out_of_gas_402": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_403" + +"$have_gas_403": ; preds = %"$out_of_gas_402", %entry + %"$consume_404" = sub i64 %"$gasrem_400", 2 + store i64 %"$consume_404", i64* @_gasrem, align 8 + %"$l_tag_406" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 + %"$l_tag_407" = load i8, i8* %"$l_tag_406", align 1 + switch i8 %"$l_tag_407", label %"$empty_default_408" [ + i8 0, label %"$Cons_409" + i8 1, label %"$Nil_453" + ], !dbg !193 + +"$Cons_409": ; preds = %"$have_gas_403" + %"$l_410" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* + %"$h_gep_411" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_410", i32 0, i32 1 + %"$h_load_412" = load [20 x i8], [20 x i8]* %"$h_gep_411", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_load_545", [20 x i8]* %h, align 1 - %"$t_gep_546" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_543", i32 0, i32 2 - %"$t_load_547" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_546", align 8 + store [20 x i8] %"$h_load_412", [20 x i8]* %h, align 1 + %"$t_gep_413" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_410", i32 0, i32 2 + %"$t_load_414" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_413", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_load_547", %TName_List_ByStr20** %t, align 8 - %"$gasrem_548" = load i64, i64* @_gasrem, align 8 - %"$gascmp_549" = icmp ugt i64 1, %"$gasrem_548" - br i1 %"$gascmp_549", label %"$out_of_gas_550", label %"$have_gas_551" + store %TName_List_ByStr20* %"$t_load_414", %TName_List_ByStr20** %t, align 8 + %"$gasrem_415" = load i64, i64* @_gasrem, align 8 + %"$gascmp_416" = icmp ugt i64 1, %"$gasrem_415" + br i1 %"$gascmp_416", label %"$out_of_gas_417", label %"$have_gas_418" -"$out_of_gas_550": ; preds = %"$Cons_542" +"$out_of_gas_417": ; preds = %"$Cons_409" call void @_out_of_gas() - br label %"$have_gas_551" + br label %"$have_gas_418" -"$have_gas_551": ; preds = %"$out_of_gas_550", %"$Cons_542" - %"$consume_552" = sub i64 %"$gasrem_548", 1 - store i64 %"$consume_552", i64* @_gasrem, align 8 +"$have_gas_418": ; preds = %"$out_of_gas_417", %"$Cons_409" + %"$consume_419" = sub i64 %"$gasrem_415", 1 + store i64 %"$consume_419", i64* @_gasrem, align 8 %res = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_553" = load i64, i64* @_gasrem, align 8 - %"$gascmp_554" = icmp ugt i64 1, %"$gasrem_553" - br i1 %"$gascmp_554", label %"$out_of_gas_555", label %"$have_gas_556" + %"$gasrem_420" = load i64, i64* @_gasrem, align 8 + %"$gascmp_421" = icmp ugt i64 1, %"$gasrem_420" + br i1 %"$gascmp_421", label %"$out_of_gas_422", label %"$have_gas_423" -"$out_of_gas_555": ; preds = %"$have_gas_551" +"$out_of_gas_422": ; preds = %"$have_gas_418" call void @_out_of_gas() - br label %"$have_gas_556" + br label %"$have_gas_423" -"$have_gas_556": ; preds = %"$out_of_gas_555", %"$have_gas_551" - %"$consume_557" = sub i64 %"$gasrem_553", 1 - store i64 %"$consume_557", i64* @_gasrem, align 8 +"$have_gas_423": ; preds = %"$out_of_gas_422", %"$have_gas_418" + %"$consume_424" = sub i64 %"$gasrem_420", 1 + store i64 %"$consume_424", i64* @_gasrem, align 8 %"$g_10" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$g_558" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - %"$g_fptr_559" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_558", 0 - %"$g_envptr_560" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_558", 1 - %"$z_561" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 - %"$g_call_562" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_559"(i8* %"$g_envptr_560", %TName_List_ByStr20* %"$z_561"), !dbg !226 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_562", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_10", align 8, !dbg !226 + %"$g_425" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + %"$g_fptr_426" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_425", 0 + %"$g_envptr_427" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_425", 1 + %"$z_428" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 + %"$g_call_429" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_426"(i8* %"$g_envptr_427", %TName_List_ByStr20* %"$z_428"), !dbg !194 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_429", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_10", align 8, !dbg !194 %"$g_11" = alloca %TName_List_ByStr20*, align 8 - %"$$g_10_563" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_10", align 8 - %"$$g_10_fptr_564" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_10_563", 0 - %"$$g_10_envptr_565" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_10_563", 1 - %"$t_566" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - %"$$g_10_call_567" = call %TName_List_ByStr20* %"$$g_10_fptr_564"(i8* %"$$g_10_envptr_565", %TName_List_ByStr20* %"$t_566"), !dbg !226 - store %TName_List_ByStr20* %"$$g_10_call_567", %TName_List_ByStr20** %"$g_11", align 8, !dbg !226 - %"$$g_11_568" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$g_11", align 8 - store %TName_List_ByStr20* %"$$g_11_568", %TName_List_ByStr20** %res, align 8, !dbg !226 - %"$gasrem_569" = load i64, i64* @_gasrem, align 8 - %"$gascmp_570" = icmp ugt i64 1, %"$gasrem_569" - br i1 %"$gascmp_570", label %"$out_of_gas_571", label %"$have_gas_572" - -"$out_of_gas_571": ; preds = %"$have_gas_556" - call void @_out_of_gas() - br label %"$have_gas_572" - -"$have_gas_572": ; preds = %"$out_of_gas_571", %"$have_gas_556" - %"$consume_573" = sub i64 %"$gasrem_569", 1 - store i64 %"$consume_573", i64* @_gasrem, align 8 + %"$$g_10_430" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_10", align 8 + %"$$g_10_fptr_431" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_10_430", 0 + %"$$g_10_envptr_432" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_10_430", 1 + %"$t_433" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + %"$$g_10_call_434" = call %TName_List_ByStr20* %"$$g_10_fptr_431"(i8* %"$$g_10_envptr_432", %TName_List_ByStr20* %"$t_433"), !dbg !194 + store %TName_List_ByStr20* %"$$g_10_call_434", %TName_List_ByStr20** %"$g_11", align 8, !dbg !194 + %"$$g_11_435" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$g_11", align 8 + store %TName_List_ByStr20* %"$$g_11_435", %TName_List_ByStr20** %res, align 8, !dbg !194 + %"$gasrem_436" = load i64, i64* @_gasrem, align 8 + %"$gascmp_437" = icmp ugt i64 1, %"$gasrem_436" + br i1 %"$gascmp_437", label %"$out_of_gas_438", label %"$have_gas_439" + +"$out_of_gas_438": ; preds = %"$have_gas_423" + call void @_out_of_gas() + br label %"$have_gas_439" + +"$have_gas_439": ; preds = %"$out_of_gas_438", %"$have_gas_423" + %"$consume_440" = sub i64 %"$gasrem_436", 1 + store i64 %"$consume_440", i64* @_gasrem, align 8 %"$f_12" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$f_574" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$f_fptr_575" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_574", 0 - %"$f_envptr_576" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_574", 1 - %"$f_h_577" = alloca [20 x i8], align 1 - %"$h_578" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_578", [20 x i8]* %"$f_h_577", align 1 - %"$f_call_579" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_575"(i8* %"$f_envptr_576", [20 x i8]* %"$f_h_577"), !dbg !229 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_579", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_12", align 8, !dbg !229 + %"$f_441" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$f_fptr_442" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_441", 0 + %"$f_envptr_443" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_441", 1 + %"$f_h_444" = alloca [20 x i8], align 1 + %"$h_445" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_445", [20 x i8]* %"$f_h_444", align 1 + %"$f_call_446" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_442"(i8* %"$f_envptr_443", [20 x i8]* %"$f_h_444"), !dbg !197 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_446", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_12", align 8, !dbg !197 %"$f_13" = alloca %TName_List_ByStr20*, align 8 - %"$$f_12_580" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_12", align 8 - %"$$f_12_fptr_581" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_12_580", 0 - %"$$f_12_envptr_582" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_12_580", 1 - %"$res_583" = load %TName_List_ByStr20*, %TName_List_ByStr20** %res, align 8 - %"$$f_12_call_584" = call %TName_List_ByStr20* %"$$f_12_fptr_581"(i8* %"$$f_12_envptr_582", %TName_List_ByStr20* %"$res_583"), !dbg !229 - store %TName_List_ByStr20* %"$$f_12_call_584", %TName_List_ByStr20** %"$f_13", align 8, !dbg !229 - %"$$f_13_585" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$f_13", align 8 - store %TName_List_ByStr20* %"$$f_13_585", %TName_List_ByStr20** %"$retval_167", align 8, !dbg !229 - br label %"$matchsucc_538" - -"$Nil_586": ; preds = %"$have_gas_536" - %"$l_587" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* - %"$gasrem_588" = load i64, i64* @_gasrem, align 8 - %"$gascmp_589" = icmp ugt i64 1, %"$gasrem_588" - br i1 %"$gascmp_589", label %"$out_of_gas_590", label %"$have_gas_591" - -"$out_of_gas_590": ; preds = %"$Nil_586" - call void @_out_of_gas() - br label %"$have_gas_591" - -"$have_gas_591": ; preds = %"$out_of_gas_590", %"$Nil_586" - %"$consume_592" = sub i64 %"$gasrem_588", 1 - store i64 %"$consume_592", i64* @_gasrem, align 8 - %"$z_593" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 - store %TName_List_ByStr20* %"$z_593", %TName_List_ByStr20** %"$retval_167", align 8, !dbg !230 - br label %"$matchsucc_538" - -"$empty_default_541": ; preds = %"$have_gas_536" - br label %"$matchsucc_538" - -"$matchsucc_538": ; preds = %"$have_gas_591", %"$have_gas_572", %"$empty_default_541" - %"$$retval_167_594" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_167", align 8 - ret %TName_List_ByStr20* %"$$retval_167_594" + %"$$f_12_447" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_12", align 8 + %"$$f_12_fptr_448" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_12_447", 0 + %"$$f_12_envptr_449" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_12_447", 1 + %"$res_450" = load %TName_List_ByStr20*, %TName_List_ByStr20** %res, align 8 + %"$$f_12_call_451" = call %TName_List_ByStr20* %"$$f_12_fptr_448"(i8* %"$$f_12_envptr_449", %TName_List_ByStr20* %"$res_450"), !dbg !197 + store %TName_List_ByStr20* %"$$f_12_call_451", %TName_List_ByStr20** %"$f_13", align 8, !dbg !197 + %"$$f_13_452" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$f_13", align 8 + store %TName_List_ByStr20* %"$$f_13_452", %TName_List_ByStr20** %"$retval_82", align 8, !dbg !197 + br label %"$matchsucc_405" + +"$Nil_453": ; preds = %"$have_gas_403" + %"$l_454" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* + %"$gasrem_455" = load i64, i64* @_gasrem, align 8 + %"$gascmp_456" = icmp ugt i64 1, %"$gasrem_455" + br i1 %"$gascmp_456", label %"$out_of_gas_457", label %"$have_gas_458" + +"$out_of_gas_457": ; preds = %"$Nil_453" + call void @_out_of_gas() + br label %"$have_gas_458" + +"$have_gas_458": ; preds = %"$out_of_gas_457", %"$Nil_453" + %"$consume_459" = sub i64 %"$gasrem_455", 1 + store i64 %"$consume_459", i64* @_gasrem, align 8 + %"$z_460" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 + store %TName_List_ByStr20* %"$z_460", %TName_List_ByStr20** %"$retval_82", align 8, !dbg !198 + br label %"$matchsucc_405" + +"$empty_default_408": ; preds = %"$have_gas_403" + br label %"$matchsucc_405" + +"$matchsucc_405": ; preds = %"$have_gas_458", %"$have_gas_439", %"$empty_default_408" + %"$$retval_82_461" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_82", align 8 + ret %TName_List_ByStr20* %"$$retval_82_461" } -define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_164"(%"$$fundef_164_env_464"* %0, %TName_List_ByStr20* %1) !dbg !232 { +define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_79"(%"$$fundef_79_env_331"* %0, %TName_List_ByStr20* %1) !dbg !200 { entry: - %"$$fundef_164_env_f_508" = getelementptr inbounds %"$$fundef_164_env_464", %"$$fundef_164_env_464"* %0, i32 0, i32 0 - %"$f_envload_509" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_164_env_f_508", align 8 + %"$$fundef_79_env_f_375" = getelementptr inbounds %"$$fundef_79_env_331", %"$$fundef_79_env_331"* %0, i32 0, i32 0 + %"$f_envload_376" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_79_env_f_375", align 8 %f = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_509", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$$fundef_164_env_g_510" = getelementptr inbounds %"$$fundef_164_env_464", %"$$fundef_164_env_464"* %0, i32 0, i32 1 - %"$g_envload_511" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_164_env_g_510", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_376", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$$fundef_79_env_g_377" = getelementptr inbounds %"$$fundef_79_env_331", %"$$fundef_79_env_331"* %0, i32 0, i32 1 + %"$g_envload_378" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_79_env_g_377", align 8 %g = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_envload_511", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - %"$retval_165" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_512" = load i64, i64* @_gasrem, align 8 - %"$gascmp_513" = icmp ugt i64 1, %"$gasrem_512" - br i1 %"$gascmp_513", label %"$out_of_gas_514", label %"$have_gas_515" - -"$out_of_gas_514": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_515" - -"$have_gas_515": ; preds = %"$out_of_gas_514", %entry - %"$consume_516" = sub i64 %"$gasrem_512", 1 - store i64 %"$consume_516", i64* @_gasrem, align 8 - %"$$fundef_166_envp_517_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_166_envp_517_salloc" = call i8* @_salloc(i8* %"$$fundef_166_envp_517_load", i64 40) - %"$$fundef_166_envp_517" = bitcast i8* %"$$fundef_166_envp_517_salloc" to %"$$fundef_166_env_463"* - %"$$fundef_166_env_voidp_519" = bitcast %"$$fundef_166_env_463"* %"$$fundef_166_envp_517" to i8* - %"$$fundef_166_cloval_520" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_166_env_463"*, %TName_List_ByStr20*)* @"$fundef_166" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_166_env_voidp_519", 1 - %"$$fundef_166_env_f_521" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %"$$fundef_166_envp_517", i32 0, i32 0 - %"$f_522" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_522", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_166_env_f_521", align 8 - %"$$fundef_166_env_g_523" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %"$$fundef_166_envp_517", i32 0, i32 1 - %"$g_524" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_524", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_166_env_g_523", align 8 - %"$$fundef_166_env_z_525" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %"$$fundef_166_envp_517", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_166_env_z_525", align 8 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_166_cloval_520", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_165", align 8, !dbg !233 - %"$$retval_165_526" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_165", align 8 - ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_165_526" + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_envload_378", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + %"$retval_80" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_379" = load i64, i64* @_gasrem, align 8 + %"$gascmp_380" = icmp ugt i64 1, %"$gasrem_379" + br i1 %"$gascmp_380", label %"$out_of_gas_381", label %"$have_gas_382" + +"$out_of_gas_381": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_382" + +"$have_gas_382": ; preds = %"$out_of_gas_381", %entry + %"$consume_383" = sub i64 %"$gasrem_379", 1 + store i64 %"$consume_383", i64* @_gasrem, align 8 + %"$$fundef_81_envp_384_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_81_envp_384_salloc" = call i8* @_salloc(i8* %"$$fundef_81_envp_384_load", i64 40) + %"$$fundef_81_envp_384" = bitcast i8* %"$$fundef_81_envp_384_salloc" to %"$$fundef_81_env_330"* + %"$$fundef_81_env_voidp_386" = bitcast %"$$fundef_81_env_330"* %"$$fundef_81_envp_384" to i8* + %"$$fundef_81_cloval_387" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_81_env_330"*, %TName_List_ByStr20*)* @"$fundef_81" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_81_env_voidp_386", 1 + %"$$fundef_81_env_f_388" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %"$$fundef_81_envp_384", i32 0, i32 0 + %"$f_389" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_389", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_81_env_f_388", align 8 + %"$$fundef_81_env_g_390" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %"$$fundef_81_envp_384", i32 0, i32 1 + %"$g_391" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_391", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_81_env_g_390", align 8 + %"$$fundef_81_env_z_392" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %"$$fundef_81_envp_384", i32 0, i32 2 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_81_env_z_392", align 8 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_81_cloval_387", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_80", align 8, !dbg !201 + %"$$retval_80_393" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_80", align 8 + ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_80_393" } -define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_162"(%"$$fundef_162_env_465"* %0, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !234 { +define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_77"(%"$$fundef_77_env_332"* %0, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) !dbg !202 { entry: - %"$retval_163" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_489" = load i64, i64* @_gasrem, align 8 - %"$gascmp_490" = icmp ugt i64 1, %"$gasrem_489" - br i1 %"$gascmp_490", label %"$out_of_gas_491", label %"$have_gas_492" - -"$out_of_gas_491": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_492" - -"$have_gas_492": ; preds = %"$out_of_gas_491", %entry - %"$consume_493" = sub i64 %"$gasrem_489", 1 - store i64 %"$consume_493", i64* @_gasrem, align 8 - %"$gasrem_494" = load i64, i64* @_gasrem, align 8 - %"$gascmp_495" = icmp ugt i64 1, %"$gasrem_494" - br i1 %"$gascmp_495", label %"$out_of_gas_496", label %"$have_gas_497" - -"$out_of_gas_496": ; preds = %"$have_gas_492" - call void @_out_of_gas() - br label %"$have_gas_497" - -"$have_gas_497": ; preds = %"$out_of_gas_496", %"$have_gas_492" - %"$consume_498" = sub i64 %"$gasrem_494", 1 - store i64 %"$consume_498", i64* @_gasrem, align 8 - %"$$fundef_164_envp_499_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_164_envp_499_salloc" = call i8* @_salloc(i8* %"$$fundef_164_envp_499_load", i64 32) - %"$$fundef_164_envp_499" = bitcast i8* %"$$fundef_164_envp_499_salloc" to %"$$fundef_164_env_464"* - %"$$fundef_164_env_voidp_501" = bitcast %"$$fundef_164_env_464"* %"$$fundef_164_envp_499" to i8* - %"$$fundef_164_cloval_502" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_164_env_464"*, %TName_List_ByStr20*)* @"$fundef_164" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_164_env_voidp_501", 1 + %"$retval_78" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_356" = load i64, i64* @_gasrem, align 8 + %"$gascmp_357" = icmp ugt i64 1, %"$gasrem_356" + br i1 %"$gascmp_357", label %"$out_of_gas_358", label %"$have_gas_359" + +"$out_of_gas_358": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_359" + +"$have_gas_359": ; preds = %"$out_of_gas_358", %entry + %"$consume_360" = sub i64 %"$gasrem_356", 1 + store i64 %"$consume_360", i64* @_gasrem, align 8 + %"$gasrem_361" = load i64, i64* @_gasrem, align 8 + %"$gascmp_362" = icmp ugt i64 1, %"$gasrem_361" + br i1 %"$gascmp_362", label %"$out_of_gas_363", label %"$have_gas_364" + +"$out_of_gas_363": ; preds = %"$have_gas_359" + call void @_out_of_gas() + br label %"$have_gas_364" + +"$have_gas_364": ; preds = %"$out_of_gas_363", %"$have_gas_359" + %"$consume_365" = sub i64 %"$gasrem_361", 1 + store i64 %"$consume_365", i64* @_gasrem, align 8 + %"$$fundef_79_envp_366_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_79_envp_366_salloc" = call i8* @_salloc(i8* %"$$fundef_79_envp_366_load", i64 32) + %"$$fundef_79_envp_366" = bitcast i8* %"$$fundef_79_envp_366_salloc" to %"$$fundef_79_env_331"* + %"$$fundef_79_env_voidp_368" = bitcast %"$$fundef_79_env_331"* %"$$fundef_79_envp_366" to i8* + %"$$fundef_79_cloval_369" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_79_env_331"*, %TName_List_ByStr20*)* @"$fundef_79" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_79_env_voidp_368", 1 %g = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_164_cloval_502", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8, !dbg !235 - %"$$fundef_164_env_f_503" = getelementptr inbounds %"$$fundef_164_env_464", %"$$fundef_164_env_464"* %"$$fundef_164_envp_499", i32 0, i32 0 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_164_env_f_503", align 8 - %"$$fundef_164_env_g_504" = getelementptr inbounds %"$$fundef_164_env_464", %"$$fundef_164_env_464"* %"$$fundef_164_envp_499", i32 0, i32 1 - %"$g_505" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_505", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_164_env_g_504", align 8 - %"$g_506" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_506", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_163", align 8, !dbg !235 - %"$$retval_163_507" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_163", align 8 - ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_163_507" + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_79_cloval_369", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8, !dbg !203 + %"$$fundef_79_env_f_370" = getelementptr inbounds %"$$fundef_79_env_331", %"$$fundef_79_env_331"* %"$$fundef_79_envp_366", i32 0, i32 0 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_79_env_f_370", align 8 + %"$$fundef_79_env_g_371" = getelementptr inbounds %"$$fundef_79_env_331", %"$$fundef_79_env_331"* %"$$fundef_79_envp_366", i32 0, i32 1 + %"$g_372" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_372", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_79_env_g_371", align 8 + %"$g_373" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_373", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_78", align 8, !dbg !203 + %"$$retval_78_374" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_78", align 8 + ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_78_374" } -define internal { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_160"(%"$$fundef_160_env_466"* %0) !dbg !236 { +define internal { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_75"(%"$$fundef_75_env_333"* %0) !dbg !204 { entry: - %"$retval_161" = alloca { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_480" = load i64, i64* @_gasrem, align 8 - %"$gascmp_481" = icmp ugt i64 1, %"$gasrem_480" - br i1 %"$gascmp_481", label %"$out_of_gas_482", label %"$have_gas_483" + %"$retval_76" = alloca { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 + %"$gasrem_347" = load i64, i64* @_gasrem, align 8 + %"$gascmp_348" = icmp ugt i64 1, %"$gasrem_347" + br i1 %"$gascmp_348", label %"$out_of_gas_349", label %"$have_gas_350" -"$out_of_gas_482": ; preds = %entry +"$out_of_gas_349": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_483" + br label %"$have_gas_350" -"$have_gas_483": ; preds = %"$out_of_gas_482", %entry - %"$consume_484" = sub i64 %"$gasrem_480", 1 - store i64 %"$consume_484", i64* @_gasrem, align 8 - store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })* bitcast ({ { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_162_env_465"*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_162" to { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*), i8* null }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_161", align 8, !dbg !237 - %"$$retval_161_488" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_161", align 8 - ret { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_161_488" +"$have_gas_350": ; preds = %"$out_of_gas_349", %entry + %"$consume_351" = sub i64 %"$gasrem_347", 1 + store i64 %"$consume_351", i64* @_gasrem, align 8 + store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })* bitcast ({ { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_77_env_332"*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_77" to { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*), i8* null }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_76", align 8, !dbg !205 + %"$$retval_76_355" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_76", align 8 + ret { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_76_355" } -define internal { i8*, i8* }* @"$fundef_158"(%"$$fundef_158_env_467"* %0) !dbg !238 { +define internal { i8*, i8* }* @"$fundef_73"(%"$$fundef_73_env_334"* %0) !dbg !206 { entry: - %"$retval_159" = alloca { i8*, i8* }*, align 8 - %"$gasrem_468" = load i64, i64* @_gasrem, align 8 - %"$gascmp_469" = icmp ugt i64 1, %"$gasrem_468" - br i1 %"$gascmp_469", label %"$out_of_gas_470", label %"$have_gas_471" - -"$out_of_gas_470": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_471" - -"$have_gas_471": ; preds = %"$out_of_gas_470", %entry - %"$consume_472" = sub i64 %"$gasrem_468", 1 - store i64 %"$consume_472", i64* @_gasrem, align 8 - %"$dyndisp_table_476_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_476_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_476_salloc_load", i64 48) - %"$dyndisp_table_476_salloc" = bitcast i8* %"$dyndisp_table_476_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_476" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_476_salloc" to { i8*, i8* }* - %"$dyndisp_gep_477" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_476", i32 1 - %"$dyndisp_pcast_478" = bitcast { i8*, i8* }* %"$dyndisp_gep_477" to { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_160_env_466"*)* @"$fundef_160" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_478", align 8 - store { i8*, i8* }* %"$dyndisp_table_476", { i8*, i8* }** %"$retval_159", align 8, !dbg !239 - %"$$retval_159_479" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_159", align 8 - ret { i8*, i8* }* %"$$retval_159_479" + %"$retval_74" = alloca { i8*, i8* }*, align 8 + %"$gasrem_335" = load i64, i64* @_gasrem, align 8 + %"$gascmp_336" = icmp ugt i64 1, %"$gasrem_335" + br i1 %"$gascmp_336", label %"$out_of_gas_337", label %"$have_gas_338" + +"$out_of_gas_337": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_338" + +"$have_gas_338": ; preds = %"$out_of_gas_337", %entry + %"$consume_339" = sub i64 %"$gasrem_335", 1 + store i64 %"$consume_339", i64* @_gasrem, align 8 + %"$dyndisp_table_343_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_343_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_343_salloc_load", i64 48) + %"$dyndisp_table_343_salloc" = bitcast i8* %"$dyndisp_table_343_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_343" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_343_salloc" to { i8*, i8* }* + %"$dyndisp_gep_344" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_343", i32 1 + %"$dyndisp_pcast_345" = bitcast { i8*, i8* }* %"$dyndisp_gep_344" to { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_75_env_333"*)* @"$fundef_75" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_345", align 8 + store { i8*, i8* }* %"$dyndisp_table_343", { i8*, i8* }** %"$retval_74", align 8, !dbg !207 + %"$$retval_74_346" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_74", align 8 + ret { i8*, i8* }* %"$$retval_74_346" } declare void @_out_of_gas() @@ -4422,1527 +3753,2382 @@ declare [32 x i8]* @_sha256hash(i8*, %_TyDescrTy_Typ*, i8*) declare i8* @_concat_ByStrX(i8*, i32, i8*, i32, i8*) -define void @_init_libs() !dbg !240 { +define void @_init_libs() !dbg !208 { +entry: + %"$gasrem_1925" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1926" = icmp ugt i64 1, %"$gasrem_1925" + br i1 %"$gascmp_1926", label %"$out_of_gas_1927", label %"$have_gas_1928" + +"$out_of_gas_1927": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1928" + +"$have_gas_1928": ; preds = %"$out_of_gas_1927", %entry + %"$consume_1929" = sub i64 %"$gasrem_1925", 1 + store i64 %"$consume_1929", i64* @_gasrem, align 8 + %"$dyndisp_table_1933_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1933_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1933_salloc_load", i64 48) + %"$dyndisp_table_1933_salloc" = bitcast i8* %"$dyndisp_table_1933_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1933" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1933_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1934" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1933", i32 0 + %"$dyndisp_pcast_1935" = bitcast { i8*, i8* }* %"$dyndisp_gep_1934" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_73_env_334"*)* @"$fundef_73" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_1935", align 8 + store { i8*, i8* }* %"$dyndisp_table_1933", { i8*, i8* }** @list_foldr, align 8, !dbg !210 + %"$gasrem_1936" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1937" = icmp ugt i64 1, %"$gasrem_1936" + br i1 %"$gascmp_1937", label %"$out_of_gas_1938", label %"$have_gas_1939" + +"$out_of_gas_1938": ; preds = %"$have_gas_1928" + call void @_out_of_gas() + br label %"$have_gas_1939" + +"$have_gas_1939": ; preds = %"$out_of_gas_1938", %"$have_gas_1928" + %"$consume_1940" = sub i64 %"$gasrem_1936", 1 + store i64 %"$consume_1940", i64* @_gasrem, align 8 + %"$dyndisp_table_1944_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1944_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1944_salloc_load", i64 48) + %"$dyndisp_table_1944_salloc" = bitcast i8* %"$dyndisp_table_1944_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1944" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1944_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1945" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1944", i32 0 + %"$dyndisp_pcast_1946" = bitcast { i8*, i8* }* %"$dyndisp_gep_1945" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_61_env_329"*)* @"$fundef_61" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_1946", align 8 + store { i8*, i8* }* %"$dyndisp_table_1944", { i8*, i8* }** @list_foldk, align 8, !dbg !210 + %"$gasrem_1947" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1948" = icmp ugt i64 2, %"$gasrem_1947" + br i1 %"$gascmp_1948", label %"$out_of_gas_1949", label %"$have_gas_1950" + +"$out_of_gas_1949": ; preds = %"$have_gas_1939" + call void @_out_of_gas() + br label %"$have_gas_1950" + +"$have_gas_1950": ; preds = %"$out_of_gas_1949", %"$have_gas_1939" + %"$consume_1951" = sub i64 %"$gasrem_1947", 2 + store i64 %"$consume_1951", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_87_env_323"*, %TName_Bool*, %TName_Bool*)* @"$fundef_87" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8, !dbg !211 + %"$gasrem_1955" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1956" = icmp ugt i64 2, %"$gasrem_1955" + br i1 %"$gascmp_1956", label %"$out_of_gas_1957", label %"$have_gas_1958" + +"$out_of_gas_1957": ; preds = %"$have_gas_1950" + call void @_out_of_gas() + br label %"$have_gas_1958" + +"$have_gas_1958": ; preds = %"$out_of_gas_1957", %"$have_gas_1950" + %"$consume_1959" = sub i64 %"$gasrem_1955", 2 + store i64 %"$consume_1959", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_85_env_322"*, %TName_Bool*, %TName_Bool*)* @"$fundef_85" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8, !dbg !212 + %"$gasrem_1963" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1964" = icmp ugt i64 1, %"$gasrem_1963" + br i1 %"$gascmp_1964", label %"$out_of_gas_1965", label %"$have_gas_1966" + +"$out_of_gas_1965": ; preds = %"$have_gas_1958" + call void @_out_of_gas() + br label %"$have_gas_1966" + +"$have_gas_1966": ; preds = %"$out_of_gas_1965", %"$have_gas_1958" + %"$consume_1967" = sub i64 %"$gasrem_1963", 1 + store i64 %"$consume_1967", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_83_env_321"*, %TName_Bool*)* @"$fundef_83" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !213 + %"$gasrem_1971" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1972" = icmp ugt i64 1, %"$gasrem_1971" + br i1 %"$gascmp_1972", label %"$out_of_gas_1973", label %"$have_gas_1974" + +"$out_of_gas_1973": ; preds = %"$have_gas_1966" + call void @_out_of_gas() + br label %"$have_gas_1974" + +"$have_gas_1974": ; preds = %"$out_of_gas_1973", %"$have_gas_1966" + %"$consume_1975" = sub i64 %"$gasrem_1971", 1 + store i64 %"$consume_1975", i64* @_gasrem, align 8 + %"$$fundef_111_envp_1976_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_111_envp_1976_salloc" = call i8* @_salloc(i8* %"$$fundef_111_envp_1976_load", i64 8) + %"$$fundef_111_envp_1976" = bitcast i8* %"$$fundef_111_envp_1976_salloc" to %"$$fundef_111_env_320"* + %"$$fundef_111_env_voidp_1978" = bitcast %"$$fundef_111_env_320"* %"$$fundef_111_envp_1976" to i8* + %"$$fundef_111_cloval_1979" = insertvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_111_env_320"*)* @"$fundef_111" to { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_111_env_voidp_1978", 1 + %"$$fundef_111_env_list_foldr_1980" = getelementptr inbounds %"$$fundef_111_env_320", %"$$fundef_111_env_320"* %"$$fundef_111_envp_1976", i32 0, i32 0 + %"$list_foldr_1981" = load { i8*, i8* }*, { i8*, i8* }** @list_foldr, align 8 + store { i8*, i8* }* %"$list_foldr_1981", { i8*, i8* }** %"$$fundef_111_env_list_foldr_1980", align 8 + %"$dyndisp_table_1982_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1982_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1982_salloc_load", i64 48) + %"$dyndisp_table_1982_salloc" = bitcast i8* %"$dyndisp_table_1982_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1982" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1982_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1983" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1982", i32 0 + %"$dyndisp_pcast_1984" = bitcast { i8*, i8* }* %"$dyndisp_gep_1983" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_111_cloval_1979", { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1984", align 8 + store { i8*, i8* }* %"$dyndisp_table_1982", { i8*, i8* }** @ListUtils.list_filter, align 8, !dbg !214 + %"$gasrem_1985" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1986" = icmp ugt i64 1, %"$gasrem_1985" + br i1 %"$gascmp_1986", label %"$out_of_gas_1987", label %"$have_gas_1988" + +"$out_of_gas_1987": ; preds = %"$have_gas_1974" + call void @_out_of_gas() + br label %"$have_gas_1988" + +"$have_gas_1988": ; preds = %"$out_of_gas_1987", %"$have_gas_1974" + %"$consume_1989" = sub i64 %"$gasrem_1985", 1 + store i64 %"$consume_1989", i64* @_gasrem, align 8 + %"$$fundef_101_envp_1990_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_101_envp_1990_salloc" = call i8* @_salloc(i8* %"$$fundef_101_envp_1990_load", i64 8) + %"$$fundef_101_envp_1990" = bitcast i8* %"$$fundef_101_envp_1990_salloc" to %"$$fundef_101_env_316"* + %"$$fundef_101_env_voidp_1992" = bitcast %"$$fundef_101_env_316"* %"$$fundef_101_envp_1990" to i8* + %"$$fundef_101_cloval_1993" = insertvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_101_env_316"*)* @"$fundef_101" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_101_env_voidp_1992", 1 + %"$$fundef_101_env_list_foldk_1994" = getelementptr inbounds %"$$fundef_101_env_316", %"$$fundef_101_env_316"* %"$$fundef_101_envp_1990", i32 0, i32 0 + %"$list_foldk_1995" = load { i8*, i8* }*, { i8*, i8* }** @list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_1995", { i8*, i8* }** %"$$fundef_101_env_list_foldk_1994", align 8 + %"$dyndisp_table_1996_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1996_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1996_salloc_load", i64 48) + %"$dyndisp_table_1996_salloc" = bitcast i8* %"$dyndisp_table_1996_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1996" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1996_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1997" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1996", i32 0 + %"$dyndisp_pcast_1998" = bitcast { i8*, i8* }* %"$dyndisp_gep_1997" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_101_cloval_1993", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1998", align 8 + store { i8*, i8* }* %"$dyndisp_table_1996", { i8*, i8* }** @ListUtils.list_find, align 8, !dbg !215 + %"$gasrem_1999" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2000" = icmp ugt i64 1, %"$gasrem_1999" + br i1 %"$gascmp_2000", label %"$out_of_gas_2001", label %"$have_gas_2002" + +"$out_of_gas_2001": ; preds = %"$have_gas_1988" + call void @_out_of_gas() + br label %"$have_gas_2002" + +"$have_gas_2002": ; preds = %"$out_of_gas_2001", %"$have_gas_1988" + %"$consume_2003" = sub i64 %"$gasrem_1999", 1 + store i64 %"$consume_2003", i64* @_gasrem, align 8 + %"$$fundef_95_envp_2004_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_95_envp_2004_salloc" = call i8* @_salloc(i8* %"$$fundef_95_envp_2004_load", i64 8) + %"$$fundef_95_envp_2004" = bitcast i8* %"$$fundef_95_envp_2004_salloc" to %"$$fundef_95_env_311"* + %"$$fundef_95_env_voidp_2006" = bitcast %"$$fundef_95_env_311"* %"$$fundef_95_envp_2004" to i8* + %"$$fundef_95_cloval_2007" = insertvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_95_env_311"*)* @"$fundef_95" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_95_env_voidp_2006", 1 + %"$$fundef_95_env_ListUtils.list_find_2008" = getelementptr inbounds %"$$fundef_95_env_311", %"$$fundef_95_env_311"* %"$$fundef_95_envp_2004", i32 0, i32 0 + %"$ListUtils.list_find_2009" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_find, align 8 + store { i8*, i8* }* %"$ListUtils.list_find_2009", { i8*, i8* }** %"$$fundef_95_env_ListUtils.list_find_2008", align 8 + %"$dyndisp_table_2010_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_2010_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2010_salloc_load", i64 48) + %"$dyndisp_table_2010_salloc" = bitcast i8* %"$dyndisp_table_2010_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_2010" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2010_salloc" to { i8*, i8* }* + %"$dyndisp_gep_2011" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2010", i32 0 + %"$dyndisp_pcast_2012" = bitcast { i8*, i8* }* %"$dyndisp_gep_2011" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_95_cloval_2007", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2012", align 8 + store { i8*, i8* }* %"$dyndisp_table_2010", { i8*, i8* }** @ListUtils.list_exists, align 8, !dbg !216 + %"$gasrem_2013" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2014" = icmp ugt i64 1, %"$gasrem_2013" + br i1 %"$gascmp_2014", label %"$out_of_gas_2015", label %"$have_gas_2016" + +"$out_of_gas_2015": ; preds = %"$have_gas_2002" + call void @_out_of_gas() + br label %"$have_gas_2016" + +"$have_gas_2016": ; preds = %"$out_of_gas_2015", %"$have_gas_2002" + %"$consume_2017" = sub i64 %"$gasrem_2013", 1 + store i64 %"$consume_2017", i64* @_gasrem, align 8 + %"$$fundef_89_envp_2018_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_89_envp_2018_salloc" = call i8* @_salloc(i8* %"$$fundef_89_envp_2018_load", i64 8) + %"$$fundef_89_envp_2018" = bitcast i8* %"$$fundef_89_envp_2018_salloc" to %"$$fundef_89_env_308"* + %"$$fundef_89_env_voidp_2020" = bitcast %"$$fundef_89_env_308"* %"$$fundef_89_envp_2018" to i8* + %"$$fundef_89_cloval_2021" = insertvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_89_env_308"*)* @"$fundef_89" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_89_env_voidp_2020", 1 + %"$$fundef_89_env_ListUtils.list_exists_2022" = getelementptr inbounds %"$$fundef_89_env_308", %"$$fundef_89_env_308"* %"$$fundef_89_envp_2018", i32 0, i32 0 + %"$ListUtils.list_exists_2023" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_exists, align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_2023", { i8*, i8* }** %"$$fundef_89_env_ListUtils.list_exists_2022", align 8 + %"$dyndisp_table_2024_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_2024_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2024_salloc_load", i64 48) + %"$dyndisp_table_2024_salloc" = bitcast i8* %"$dyndisp_table_2024_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_2024" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2024_salloc" to { i8*, i8* }* + %"$dyndisp_gep_2025" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2024", i32 0 + %"$dyndisp_pcast_2026" = bitcast { i8*, i8* }* %"$dyndisp_gep_2025" to { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_89_cloval_2021", { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2026", align 8 + store { i8*, i8* }* %"$dyndisp_table_2024", { i8*, i8* }** @ListUtils.list_mem, align 8, !dbg !217 + %"$gasrem_2027" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2028" = icmp ugt i64 1, %"$gasrem_2027" + br i1 %"$gascmp_2028", label %"$out_of_gas_2029", label %"$have_gas_2030" + +"$out_of_gas_2029": ; preds = %"$have_gas_2016" + call void @_out_of_gas() + br label %"$have_gas_2030" + +"$have_gas_2030": ; preds = %"$out_of_gas_2029", %"$have_gas_2016" + %"$consume_2031" = sub i64 %"$gasrem_2027", 1 + store i64 %"$consume_2031", i64* @_gasrem, align 8 + store [20 x i8] zeroinitializer, [20 x i8]* @ud-registry.zeroByStr20, align 1, !dbg !218 + %"$gasrem_2032" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2033" = icmp ugt i64 1, %"$gasrem_2032" + br i1 %"$gascmp_2033", label %"$out_of_gas_2034", label %"$have_gas_2035" + +"$out_of_gas_2034": ; preds = %"$have_gas_2030" + call void @_out_of_gas() + br label %"$have_gas_2035" + +"$have_gas_2035": ; preds = %"$out_of_gas_2034", %"$have_gas_2030" + %"$consume_2036" = sub i64 %"$gasrem_2032", 1 + store i64 %"$consume_2036", i64* @_gasrem, align 8 + %"$adtval_2037_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2037_salloc" = call i8* @_salloc(i8* %"$adtval_2037_load", i64 1) + %"$adtval_2037" = bitcast i8* %"$adtval_2037_salloc" to %CName_Nil_ByStr20* + %"$adtgep_2038" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_2037", i32 0, i32 0 + store i8 1, i8* %"$adtgep_2038", align 1 + %"$adtptr_2039" = bitcast %CName_Nil_ByStr20* %"$adtval_2037" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_2039", %TName_List_ByStr20** @ud-registry.nilByStr20, align 8, !dbg !219 + %"$gasrem_2040" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2041" = icmp ugt i64 1, %"$gasrem_2040" + br i1 %"$gascmp_2041", label %"$out_of_gas_2042", label %"$have_gas_2043" + +"$out_of_gas_2042": ; preds = %"$have_gas_2035" + call void @_out_of_gas() + br label %"$have_gas_2043" + +"$have_gas_2043": ; preds = %"$out_of_gas_2042", %"$have_gas_2035" + %"$consume_2044" = sub i64 %"$gasrem_2040", 1 + store i64 %"$consume_2044", i64* @_gasrem, align 8 + %"$adtval_2045_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2045_salloc" = call i8* @_salloc(i8* %"$adtval_2045_load", i64 1) + %"$adtval_2045" = bitcast i8* %"$adtval_2045_salloc" to %CName_Nil_Message* + %"$adtgep_2046" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_2045", i32 0, i32 0 + store i8 1, i8* %"$adtgep_2046", align 1 + %"$adtptr_2047" = bitcast %CName_Nil_Message* %"$adtval_2045" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_2047", %TName_List_Message** @ud-registry.nilMessage, align 8, !dbg !220 + %"$gasrem_2048" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2049" = icmp ugt i64 1, %"$gasrem_2048" + br i1 %"$gascmp_2049", label %"$out_of_gas_2050", label %"$have_gas_2051" + +"$out_of_gas_2050": ; preds = %"$have_gas_2043" + call void @_out_of_gas() + br label %"$have_gas_2051" + +"$have_gas_2051": ; preds = %"$out_of_gas_2050", %"$have_gas_2043" + %"$consume_2052" = sub i64 %"$gasrem_2048", 1 + store i64 %"$consume_2052", i64* @_gasrem, align 8 + %"$$fundef_153_envp_2053_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_153_envp_2053_salloc" = call i8* @_salloc(i8* %"$$fundef_153_envp_2053_load", i64 8) + %"$$fundef_153_envp_2053" = bitcast i8* %"$$fundef_153_envp_2053_salloc" to %"$$fundef_153_env_305"* + %"$$fundef_153_env_voidp_2055" = bitcast %"$$fundef_153_env_305"* %"$$fundef_153_envp_2053" to i8* + %"$$fundef_153_cloval_2056" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_153_env_305"*, i8*)* @"$fundef_153" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_153_env_voidp_2055", 1 + %"$$fundef_153_env_ud-registry.nilMessage_2057" = getelementptr inbounds %"$$fundef_153_env_305", %"$$fundef_153_env_305"* %"$$fundef_153_envp_2053", i32 0, i32 0 + %"$ud-registry.nilMessage_2058" = load %TName_List_Message*, %TName_List_Message** @ud-registry.nilMessage, align 8 + store %TName_List_Message* %"$ud-registry.nilMessage_2058", %TName_List_Message** %"$$fundef_153_env_ud-registry.nilMessage_2057", align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_153_cloval_2056", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8, !dbg !221 + %"$gasrem_2059" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2060" = icmp ugt i64 1, %"$gasrem_2059" + br i1 %"$gascmp_2060", label %"$out_of_gas_2061", label %"$have_gas_2062" + +"$out_of_gas_2061": ; preds = %"$have_gas_2051" + call void @_out_of_gas() + br label %"$have_gas_2062" + +"$have_gas_2062": ; preds = %"$out_of_gas_2061", %"$have_gas_2051" + %"$consume_2063" = sub i64 %"$gasrem_2059", 1 + store i64 %"$consume_2063", i64* @_gasrem, align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Bool* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_149_env_304"*, [20 x i8]*)* @"$fundef_149" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* null }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eqByStr20, align 8, !dbg !222 + %"$gasrem_2067" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2068" = icmp ugt i64 2, %"$gasrem_2067" + br i1 %"$gascmp_2068", label %"$out_of_gas_2069", label %"$have_gas_2070" + +"$out_of_gas_2069": ; preds = %"$have_gas_2062" + call void @_out_of_gas() + br label %"$have_gas_2070" + +"$have_gas_2070": ; preds = %"$out_of_gas_2069", %"$have_gas_2062" + %"$consume_2071" = sub i64 %"$gasrem_2067", 2 + store i64 %"$consume_2071", i64* @_gasrem, align 8 + %"$$fundef_147_envp_2072_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_147_envp_2072_salloc" = call i8* @_salloc(i8* %"$$fundef_147_envp_2072_load", i64 24) + %"$$fundef_147_envp_2072" = bitcast i8* %"$$fundef_147_envp_2072_salloc" to %"$$fundef_147_env_302"* + %"$$fundef_147_env_voidp_2074" = bitcast %"$$fundef_147_env_302"* %"$$fundef_147_envp_2072" to i8* + %"$$fundef_147_cloval_2075" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_147_env_302"*, %TName_List_ByStr20*, [20 x i8]*)* @"$fundef_147" to %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_147_env_voidp_2074", 1 + %"$$fundef_147_env_ListUtils.list_mem_2076" = getelementptr inbounds %"$$fundef_147_env_302", %"$$fundef_147_env_302"* %"$$fundef_147_envp_2072", i32 0, i32 0 + %"$ListUtils.list_mem_2077" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_mem, align 8 + store { i8*, i8* }* %"$ListUtils.list_mem_2077", { i8*, i8* }** %"$$fundef_147_env_ListUtils.list_mem_2076", align 8 + %"$$fundef_147_env_ud-registry.eqByStr20_2078" = getelementptr inbounds %"$$fundef_147_env_302", %"$$fundef_147_env_302"* %"$$fundef_147_envp_2072", i32 0, i32 1 + %"$ud-registry.eqByStr20_2079" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eqByStr20, align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_2079", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_147_env_ud-registry.eqByStr20_2078", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$$fundef_147_cloval_2075", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8, !dbg !223 + %"$gasrem_2080" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2081" = icmp ugt i64 2, %"$gasrem_2080" + br i1 %"$gascmp_2081", label %"$out_of_gas_2082", label %"$have_gas_2083" + +"$out_of_gas_2082": ; preds = %"$have_gas_2070" + call void @_out_of_gas() + br label %"$have_gas_2083" + +"$have_gas_2083": ; preds = %"$out_of_gas_2082", %"$have_gas_2070" + %"$consume_2084" = sub i64 %"$gasrem_2080", 2 + store i64 %"$consume_2084", i64* @_gasrem, align 8 + %"$$fundef_145_envp_2085_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_145_envp_2085_salloc" = call i8* @_salloc(i8* %"$$fundef_145_envp_2085_load", i64 32) + %"$$fundef_145_envp_2085" = bitcast i8* %"$$fundef_145_envp_2085_salloc" to %"$$fundef_145_env_301"* + %"$$fundef_145_env_voidp_2087" = bitcast %"$$fundef_145_env_301"* %"$$fundef_145_envp_2085" to i8* + %"$$fundef_145_cloval_2088" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_145_env_301"*, %TName_List_ByStr20*, [20 x i8]*)* @"$fundef_145" to %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_145_env_voidp_2087", 1 + %"$$fundef_145_env_BoolUtils.negb_2089" = getelementptr inbounds %"$$fundef_145_env_301", %"$$fundef_145_env_301"* %"$$fundef_145_envp_2085", i32 0, i32 0 + %"$BoolUtils.negb_2090" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2090", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_145_env_BoolUtils.negb_2089", align 8 + %"$$fundef_145_env_ud-registry.listByStr20Contains_2091" = getelementptr inbounds %"$$fundef_145_env_301", %"$$fundef_145_env_301"* %"$$fundef_145_envp_2085", i32 0, i32 1 + %"$ud-registry.listByStr20Contains_2092" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_2092", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %"$$fundef_145_env_ud-registry.listByStr20Contains_2091", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$$fundef_145_cloval_2088", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Excludes, align 8, !dbg !224 + %"$gasrem_2093" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2094" = icmp ugt i64 2, %"$gasrem_2093" + br i1 %"$gascmp_2094", label %"$out_of_gas_2095", label %"$have_gas_2096" + +"$out_of_gas_2095": ; preds = %"$have_gas_2083" + call void @_out_of_gas() + br label %"$have_gas_2096" + +"$have_gas_2096": ; preds = %"$out_of_gas_2095", %"$have_gas_2083" + %"$consume_2097" = sub i64 %"$gasrem_2093", 2 + store i64 %"$consume_2097", i64* @_gasrem, align 8 + %"$$fundef_141_envp_2098_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_141_envp_2098_salloc" = call i8* @_salloc(i8* %"$$fundef_141_envp_2098_load", i64 24) + %"$$fundef_141_envp_2098" = bitcast i8* %"$$fundef_141_envp_2098_salloc" to %"$$fundef_141_env_300"* + %"$$fundef_141_env_voidp_2100" = bitcast %"$$fundef_141_env_300"* %"$$fundef_141_envp_2098" to i8* + %"$$fundef_141_cloval_2101" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)* bitcast (%TName_List_ByStr20* (%"$$fundef_141_env_300"*, %TName_List_ByStr20*, [20 x i8]*)* @"$fundef_141" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_141_env_voidp_2100", 1 + %"$$fundef_141_env_BoolUtils.negb_2102" = getelementptr inbounds %"$$fundef_141_env_300", %"$$fundef_141_env_300"* %"$$fundef_141_envp_2098", i32 0, i32 0 + %"$BoolUtils.negb_2103" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2103", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_141_env_BoolUtils.negb_2102", align 8 + %"$$fundef_141_env_ListUtils.list_filter_2104" = getelementptr inbounds %"$$fundef_141_env_300", %"$$fundef_141_env_300"* %"$$fundef_141_envp_2098", i32 0, i32 1 + %"$ListUtils.list_filter_2105" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_filter, align 8 + store { i8*, i8* }* %"$ListUtils.list_filter_2105", { i8*, i8* }** %"$$fundef_141_env_ListUtils.list_filter_2104", align 8 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$$fundef_141_cloval_2101", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8, !dbg !225 + %"$gasrem_2106" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2107" = icmp ugt i64 2, %"$gasrem_2106" + br i1 %"$gascmp_2107", label %"$out_of_gas_2108", label %"$have_gas_2109" + +"$out_of_gas_2108": ; preds = %"$have_gas_2096" + call void @_out_of_gas() + br label %"$have_gas_2109" + +"$have_gas_2109": ; preds = %"$out_of_gas_2108", %"$have_gas_2096" + %"$consume_2110" = sub i64 %"$gasrem_2106", 2 + store i64 %"$consume_2110", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_139_env_298"*, %TName_Bool*, %TName_Bool*)* @"$fundef_139" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8, !dbg !226 + %"$gasrem_2114" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2115" = icmp ugt i64 2, %"$gasrem_2114" + br i1 %"$gascmp_2115", label %"$out_of_gas_2116", label %"$have_gas_2117" + +"$out_of_gas_2116": ; preds = %"$have_gas_2109" + call void @_out_of_gas() + br label %"$have_gas_2117" + +"$have_gas_2117": ; preds = %"$out_of_gas_2116", %"$have_gas_2109" + %"$consume_2118" = sub i64 %"$gasrem_2114", 2 + store i64 %"$consume_2118", i64* @_gasrem, align 8 + store { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } { i8* (i8*, [20 x i8]*, %TName_Bool*)* bitcast (i8* (%"$$fundef_137_env_297"*, [20 x i8]*, %TName_Bool*)* @"$fundef_137" to i8* (i8*, [20 x i8]*, %TName_Bool*)*), i8* null }, { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-registry.eAdminSet, align 8, !dbg !227 + %"$gasrem_2122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2123" = icmp ugt i64 3, %"$gasrem_2122" + br i1 %"$gascmp_2123", label %"$out_of_gas_2124", label %"$have_gas_2125" + +"$out_of_gas_2124": ; preds = %"$have_gas_2117" + call void @_out_of_gas() + br label %"$have_gas_2125" + +"$have_gas_2125": ; preds = %"$out_of_gas_2124", %"$have_gas_2117" + %"$consume_2126" = sub i64 %"$gasrem_2122", 3 + store i64 %"$consume_2126", i64* @_gasrem, align 8 + store { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* } { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)* bitcast (i8* (%"$$fundef_135_env_296"*, [20 x i8]*, [20 x i8]*, %TName_Bool*)* @"$fundef_135" to i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*), i8* null }, { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-registry.eApprovedFor, align 8, !dbg !228 + %"$gasrem_2130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2131" = icmp ugt i64 1, %"$gasrem_2130" + br i1 %"$gascmp_2131", label %"$out_of_gas_2132", label %"$have_gas_2133" + +"$out_of_gas_2132": ; preds = %"$have_gas_2125" + call void @_out_of_gas() + br label %"$have_gas_2133" + +"$have_gas_2133": ; preds = %"$out_of_gas_2132", %"$have_gas_2125" + %"$consume_2134" = sub i64 %"$gasrem_2130", 1 + store i64 %"$consume_2134", i64* @_gasrem, align 8 + store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_133_env_295"*, [20 x i8]*)* @"$fundef_133" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8, !dbg !229 + %"$gasrem_2138" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2139" = icmp ugt i64 1, %"$gasrem_2138" + br i1 %"$gascmp_2139", label %"$out_of_gas_2140", label %"$have_gas_2141" + +"$out_of_gas_2140": ; preds = %"$have_gas_2133" + call void @_out_of_gas() + br label %"$have_gas_2141" + +"$have_gas_2141": ; preds = %"$out_of_gas_2140", %"$have_gas_2133" + %"$consume_2142" = sub i64 %"$gasrem_2138", 1 + store i64 %"$consume_2142", i64* @_gasrem, align 8 + store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_131_env_294"*, [20 x i8]*)* @"$fundef_131" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8, !dbg !230 + %"$gasrem_2146" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2147" = icmp ugt i64 2, %"$gasrem_2146" + br i1 %"$gascmp_2147", label %"$out_of_gas_2148", label %"$have_gas_2149" + +"$out_of_gas_2148": ; preds = %"$have_gas_2141" + call void @_out_of_gas() + br label %"$have_gas_2149" + +"$have_gas_2149": ; preds = %"$out_of_gas_2148", %"$have_gas_2141" + %"$consume_2150" = sub i64 %"$gasrem_2146", 2 + store i64 %"$consume_2150", i64* @_gasrem, align 8 + store { i8* (i8*, [32 x i8]*, %String)*, i8* } { i8* (i8*, [32 x i8]*, %String)* bitcast (i8* (%"$$fundef_129_env_293"*, [32 x i8]*, %String)* @"$fundef_129" to i8* (i8*, [32 x i8]*, %String)*), i8* null }, { i8* (i8*, [32 x i8]*, %String)*, i8* }* @ud-registry.eNewDomain, align 8, !dbg !231 + %"$gasrem_2154" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2155" = icmp ugt i64 3, %"$gasrem_2154" + br i1 %"$gascmp_2155", label %"$out_of_gas_2156", label %"$have_gas_2157" + +"$out_of_gas_2156": ; preds = %"$have_gas_2149" + call void @_out_of_gas() + br label %"$have_gas_2157" + +"$have_gas_2157": ; preds = %"$out_of_gas_2156", %"$have_gas_2149" + %"$consume_2158" = sub i64 %"$gasrem_2154", 3 + store i64 %"$consume_2158", i64* @_gasrem, align 8 + store { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)* bitcast (i8* (%"$$fundef_127_env_292"*, [32 x i8]*, [20 x i8]*, [20 x i8]*)* @"$fundef_127" to i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*), i8* null }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8, !dbg !232 + %"$gasrem_2162" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2163" = icmp ugt i64 1, %"$gasrem_2162" + br i1 %"$gascmp_2163", label %"$out_of_gas_2164", label %"$have_gas_2165" + +"$out_of_gas_2164": ; preds = %"$have_gas_2157" + call void @_out_of_gas() + br label %"$have_gas_2165" + +"$have_gas_2165": ; preds = %"$out_of_gas_2164", %"$have_gas_2157" + %"$consume_2166" = sub i64 %"$gasrem_2162", 1 + store i64 %"$consume_2166", i64* @_gasrem, align 8 + store { i8* (i8*, %String)*, i8* } { i8* (i8*, %String)* bitcast (i8* (%"$$fundef_125_env_291"*, %String)* @"$fundef_125" to i8* (i8*, %String)*), i8* null }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8, !dbg !233 + %"$gasrem_2170" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2171" = icmp ugt i64 1, %"$gasrem_2170" + br i1 %"$gascmp_2171", label %"$out_of_gas_2172", label %"$have_gas_2173" + +"$out_of_gas_2172": ; preds = %"$have_gas_2165" + call void @_out_of_gas() + br label %"$have_gas_2173" + +"$have_gas_2173": ; preds = %"$out_of_gas_2172", %"$have_gas_2165" + %"$consume_2174" = sub i64 %"$gasrem_2170", 1 + store i64 %"$consume_2174", i64* @_gasrem, align 8 + %"$$fundef_123_envp_2175_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_123_envp_2175_salloc" = call i8* @_salloc(i8* %"$$fundef_123_envp_2175_load", i64 20) + %"$$fundef_123_envp_2175" = bitcast i8* %"$$fundef_123_envp_2175_salloc" to %"$$fundef_123_env_290"* + %"$$fundef_123_env_voidp_2177" = bitcast %"$$fundef_123_env_290"* %"$$fundef_123_envp_2175" to i8* + %"$$fundef_123_cloval_2178" = insertvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)* bitcast (void (%"$$fundef_123_env_290"*, [20 x i8]*, %TName_Option_ud-registry.Record*)* @"$fundef_123" to void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*), i8* undef }, i8* %"$$fundef_123_env_voidp_2177", 1 + %"$$fundef_123_env_ud-registry.zeroByStr20_2179" = getelementptr inbounds %"$$fundef_123_env_290", %"$$fundef_123_env_290"* %"$$fundef_123_envp_2175", i32 0, i32 0 + %"$ud-registry.zeroByStr20_2180" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_2180", [20 x i8]* %"$$fundef_123_env_ud-registry.zeroByStr20_2179", align 1 + store { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$$fundef_123_cloval_2178", { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8, !dbg !234 + %"$gasrem_2181" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2182" = icmp ugt i64 2, %"$gasrem_2181" + br i1 %"$gascmp_2182", label %"$out_of_gas_2183", label %"$have_gas_2184" + +"$out_of_gas_2183": ; preds = %"$have_gas_2173" + call void @_out_of_gas() + br label %"$have_gas_2184" + +"$have_gas_2184": ; preds = %"$out_of_gas_2183", %"$have_gas_2173" + %"$consume_2185" = sub i64 %"$gasrem_2181", 2 + store i64 %"$consume_2185", i64* @_gasrem, align 8 + store { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } { void (i8*, [32 x i8]*, [32 x i8]*, %String)* bitcast (void (%"$$fundef_121_env_289"*, [32 x i8]*, [32 x i8]*, %String)* @"$fundef_121" to void (i8*, [32 x i8]*, [32 x i8]*, %String)*), i8* null }, { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }* @ud-registry.parentLabelToNode, align 8, !dbg !235 + %"$gasrem_2189" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2190" = icmp ugt i64 4, %"$gasrem_2189" + br i1 %"$gascmp_2190", label %"$out_of_gas_2191", label %"$have_gas_2192" + +"$out_of_gas_2191": ; preds = %"$have_gas_2184" + call void @_out_of_gas() + br label %"$have_gas_2192" + +"$have_gas_2192": ; preds = %"$out_of_gas_2191", %"$have_gas_2184" + %"$consume_2193" = sub i64 %"$gasrem_2189", 4 + store i64 %"$consume_2193", i64* @_gasrem, align 8 + %"$$fundef_119_envp_2194_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_119_envp_2194_salloc" = call i8* @_salloc(i8* %"$$fundef_119_envp_2194_load", i64 32) + %"$$fundef_119_envp_2194" = bitcast i8* %"$$fundef_119_envp_2194_salloc" to %"$$fundef_119_env_288"* + %"$$fundef_119_env_voidp_2196" = bitcast %"$$fundef_119_env_288"* %"$$fundef_119_envp_2194" to i8* + %"$$fundef_119_cloval_2197" = insertvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)* bitcast (%TName_Bool* (%"$$fundef_119_env_288"*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)* @"$fundef_119" to %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*), i8* undef }, i8* %"$$fundef_119_env_voidp_2196", 1 + %"$$fundef_119_env_BoolUtils.orb_2198" = getelementptr inbounds %"$$fundef_119_env_288", %"$$fundef_119_env_288"* %"$$fundef_119_envp_2194", i32 0, i32 0 + %"$BoolUtils.orb_2199" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2199", { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %"$$fundef_119_env_BoolUtils.orb_2198", align 8 + %"$$fundef_119_env_ud-registry.listByStr20Contains_2200" = getelementptr inbounds %"$$fundef_119_env_288", %"$$fundef_119_env_288"* %"$$fundef_119_envp_2194", i32 0, i32 1 + %"$ud-registry.listByStr20Contains_2201" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_2201", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %"$$fundef_119_env_ud-registry.listByStr20Contains_2200", align 8 + store { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$fundef_119_cloval_2197", { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }* @ud-registry.getIsOAO, align 8, !dbg !236 + ret void +} + +define void @_init_state() !dbg !237 { +entry: + %"$records_155" = alloca %Map_ByStr32_ud-registry.Record*, align 8 + %"$gasrem_2202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2203" = icmp ugt i64 1, %"$gasrem_2202" + br i1 %"$gascmp_2203", label %"$out_of_gas_2204", label %"$have_gas_2205" + +"$out_of_gas_2204": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2205" + +"$have_gas_2205": ; preds = %"$out_of_gas_2204", %entry + %"$consume_2206" = sub i64 %"$gasrem_2202", 1 + store i64 %"$consume_2206", i64* @_gasrem, align 8 + %empty = alloca %Map_ByStr32_ud-registry.Record*, align 8 + %"$gasrem_2207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2208" = icmp ugt i64 1, %"$gasrem_2207" + br i1 %"$gascmp_2208", label %"$out_of_gas_2209", label %"$have_gas_2210" + +"$out_of_gas_2209": ; preds = %"$have_gas_2205" + call void @_out_of_gas() + br label %"$have_gas_2210" + +"$have_gas_2210": ; preds = %"$out_of_gas_2209", %"$have_gas_2205" + %"$consume_2211" = sub i64 %"$gasrem_2207", 1 + store i64 %"$consume_2211", i64* @_gasrem, align 8 + %"$execptr_load_2212" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2213" = call i8* @_new_empty_map(i8* %"$execptr_load_2212") + %"$_new_empty_map_2214" = bitcast i8* %"$_new_empty_map_call_2213" to %Map_ByStr32_ud-registry.Record* + store %Map_ByStr32_ud-registry.Record* %"$_new_empty_map_2214", %Map_ByStr32_ud-registry.Record** %empty, align 8, !dbg !238 + %"$gasrem_2215" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2216" = icmp ugt i64 1, %"$gasrem_2215" + br i1 %"$gascmp_2216", label %"$out_of_gas_2217", label %"$have_gas_2218" + +"$out_of_gas_2217": ; preds = %"$have_gas_2210" + call void @_out_of_gas() + br label %"$have_gas_2218" + +"$have_gas_2218": ; preds = %"$out_of_gas_2217", %"$have_gas_2210" + %"$consume_2219" = sub i64 %"$gasrem_2215", 1 + store i64 %"$consume_2219", i64* @_gasrem, align 8 + %rootRecord = alloca %TName_ud-registry.Record*, align 8 + %"$gasrem_2220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2221" = icmp ugt i64 1, %"$gasrem_2220" + br i1 %"$gascmp_2221", label %"$out_of_gas_2222", label %"$have_gas_2223" + +"$out_of_gas_2222": ; preds = %"$have_gas_2218" + call void @_out_of_gas() + br label %"$have_gas_2223" + +"$have_gas_2223": ; preds = %"$out_of_gas_2222", %"$have_gas_2218" + %"$consume_2224" = sub i64 %"$gasrem_2220", 1 + store i64 %"$consume_2224", i64* @_gasrem, align 8 + %"$initialOwner_2225" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 + %"$ud-registry.zeroByStr20_2226" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + %"$adtval_2227_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2227_salloc" = call i8* @_salloc(i8* %"$adtval_2227_load", i64 41) + %"$adtval_2227" = bitcast i8* %"$adtval_2227_salloc" to %CName_ud-registry.Record* + %"$adtgep_2228" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2227", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2228", align 1 + %"$adtgep_2229" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2227", i32 0, i32 1 + store [20 x i8] %"$initialOwner_2225", [20 x i8]* %"$adtgep_2229", align 1 + %"$adtgep_2230" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2227", i32 0, i32 2 + store [20 x i8] %"$ud-registry.zeroByStr20_2226", [20 x i8]* %"$adtgep_2230", align 1 + %"$adtptr_2231" = bitcast %CName_ud-registry.Record* %"$adtval_2227" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_2231", %TName_ud-registry.Record** %rootRecord, align 8, !dbg !239 + %"$empty_2232" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 + %"$$empty_2232_2233" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_2232" to i8* + %"$_lengthof_call_2234" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_208", i8* %"$$empty_2232_2233") + %"$gasadd_2235" = add i64 1, %"$_lengthof_call_2234" + %"$gasrem_2236" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2237" = icmp ugt i64 %"$gasadd_2235", %"$gasrem_2236" + br i1 %"$gascmp_2237", label %"$out_of_gas_2238", label %"$have_gas_2239" + +"$out_of_gas_2238": ; preds = %"$have_gas_2223" + call void @_out_of_gas() + br label %"$have_gas_2239" + +"$have_gas_2239": ; preds = %"$out_of_gas_2238", %"$have_gas_2223" + %"$consume_2240" = sub i64 %"$gasrem_2236", %"$gasadd_2235" + store i64 %"$consume_2240", i64* @_gasrem, align 8 + %"$execptr_load_2241" = load i8*, i8** @_execptr, align 8 + %"$empty_2242" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 + %"$$empty_2242_2243" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_2242" to i8* + %"$put_rootNode_2244" = alloca [32 x i8], align 1 + %"$rootNode_2245" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 + store [32 x i8] %"$rootNode_2245", [32 x i8]* %"$put_rootNode_2244", align 1 + %"$$put_rootNode_2244_2246" = bitcast [32 x i8]* %"$put_rootNode_2244" to i8* + %"$rootRecord_2247" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %rootRecord, align 8 + %"$$rootRecord_2247_2248" = bitcast %TName_ud-registry.Record* %"$rootRecord_2247" to i8* + %"$put_call_2249" = call i8* @_put(i8* %"$execptr_load_2241", %_TyDescrTy_Typ* @"$TyDescr_Map_208", i8* %"$$empty_2242_2243", i8* %"$$put_rootNode_2244_2246", i8* %"$$rootRecord_2247_2248"), !dbg !240 + %"$put_2250" = bitcast i8* %"$put_call_2249" to %Map_ByStr32_ud-registry.Record* + store %Map_ByStr32_ud-registry.Record* %"$put_2250", %Map_ByStr32_ud-registry.Record** %"$records_155", align 8, !dbg !240 + %"$execptr_load_2251" = load i8*, i8** @_execptr, align 8 + %"$$records_155_2253" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %"$records_155", align 8 + %"$update_value_2254" = bitcast %Map_ByStr32_ud-registry.Record* %"$$records_155_2253" to i8* + call void @_update_field(i8* %"$execptr_load_2251", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_2252", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 0, i8* null, i8* %"$update_value_2254"), !dbg !238 + %"$registrar_156" = alloca [20 x i8], align 1 + %"$gasrem_2255" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2256" = icmp ugt i64 1, %"$gasrem_2255" + br i1 %"$gascmp_2256", label %"$out_of_gas_2257", label %"$have_gas_2258" + +"$out_of_gas_2257": ; preds = %"$have_gas_2239" + call void @_out_of_gas() + br label %"$have_gas_2258" + +"$have_gas_2258": ; preds = %"$out_of_gas_2257", %"$have_gas_2239" + %"$consume_2259" = sub i64 %"$gasrem_2255", 1 + store i64 %"$consume_2259", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_2260" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_2260", [20 x i8]* %"$registrar_156", align 1, !dbg !241 + %"$execptr_load_2261" = load i8*, i8** @_execptr, align 8 + %"$$registrar_156_2263" = load [20 x i8], [20 x i8]* %"$registrar_156", align 1 + %"$update_value_2264" = alloca [20 x i8], align 1 + store [20 x i8] %"$$registrar_156_2263", [20 x i8]* %"$update_value_2264", align 1 + %"$update_value_2265" = bitcast [20 x i8]* %"$update_value_2264" to i8* + call void @_update_field(i8* %"$execptr_load_2261", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_2262", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i32 0, i8* null, i8* %"$update_value_2265"), !dbg !241 + %"$approvals_157" = alloca %Map_ByStr32_ByStr20*, align 8 + %"$gasrem_2266" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2267" = icmp ugt i64 1, %"$gasrem_2266" + br i1 %"$gascmp_2267", label %"$out_of_gas_2268", label %"$have_gas_2269" + +"$out_of_gas_2268": ; preds = %"$have_gas_2258" + call void @_out_of_gas() + br label %"$have_gas_2269" + +"$have_gas_2269": ; preds = %"$out_of_gas_2268", %"$have_gas_2258" + %"$consume_2270" = sub i64 %"$gasrem_2266", 1 + store i64 %"$consume_2270", i64* @_gasrem, align 8 + %"$execptr_load_2271" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2272" = call i8* @_new_empty_map(i8* %"$execptr_load_2271") + %"$_new_empty_map_2273" = bitcast i8* %"$_new_empty_map_call_2272" to %Map_ByStr32_ByStr20* + store %Map_ByStr32_ByStr20* %"$_new_empty_map_2273", %Map_ByStr32_ByStr20** %"$approvals_157", align 8, !dbg !242 + %"$execptr_load_2274" = load i8*, i8** @_execptr, align 8 + %"$$approvals_157_2276" = load %Map_ByStr32_ByStr20*, %Map_ByStr32_ByStr20** %"$approvals_157", align 8 + %"$update_value_2277" = bitcast %Map_ByStr32_ByStr20* %"$$approvals_157_2276" to i8* + call void @_update_field(i8* %"$execptr_load_2274", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_2275", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 0, i8* null, i8* %"$update_value_2277"), !dbg !242 + %"$operators_158" = alloca %"Map_ByStr20_List_(ByStr20)"*, align 8 + %"$gasrem_2278" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2279" = icmp ugt i64 1, %"$gasrem_2278" + br i1 %"$gascmp_2279", label %"$out_of_gas_2280", label %"$have_gas_2281" + +"$out_of_gas_2280": ; preds = %"$have_gas_2269" + call void @_out_of_gas() + br label %"$have_gas_2281" + +"$have_gas_2281": ; preds = %"$out_of_gas_2280", %"$have_gas_2269" + %"$consume_2282" = sub i64 %"$gasrem_2278", 1 + store i64 %"$consume_2282", i64* @_gasrem, align 8 + %"$execptr_load_2283" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2284" = call i8* @_new_empty_map(i8* %"$execptr_load_2283") + %"$_new_empty_map_2285" = bitcast i8* %"$_new_empty_map_call_2284" to %"Map_ByStr20_List_(ByStr20)"* + store %"Map_ByStr20_List_(ByStr20)"* %"$_new_empty_map_2285", %"Map_ByStr20_List_(ByStr20)"** %"$operators_158", align 8, !dbg !243 + %"$execptr_load_2286" = load i8*, i8** @_execptr, align 8 + %"$$operators_158_2288" = load %"Map_ByStr20_List_(ByStr20)"*, %"Map_ByStr20_List_(ByStr20)"** %"$operators_158", align 8 + %"$update_value_2289" = bitcast %"Map_ByStr20_List_(ByStr20)"* %"$$operators_158_2288" to i8* + call void @_update_field(i8* %"$execptr_load_2286", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_2287", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 0, i8* null, i8* %"$update_value_2289"), !dbg !243 + %"$admins_159" = alloca %TName_List_ByStr20*, align 8 + %"$gasrem_2290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2291" = icmp ugt i64 1, %"$gasrem_2290" + br i1 %"$gascmp_2291", label %"$out_of_gas_2292", label %"$have_gas_2293" + +"$out_of_gas_2292": ; preds = %"$have_gas_2281" + call void @_out_of_gas() + br label %"$have_gas_2293" + +"$have_gas_2293": ; preds = %"$out_of_gas_2292", %"$have_gas_2281" + %"$consume_2294" = sub i64 %"$gasrem_2290", 1 + store i64 %"$consume_2294", i64* @_gasrem, align 8 + %"$initialOwner_2295" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 + %"$ud-registry.nilByStr20_2296" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 + %"$adtval_2297_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2297_salloc" = call i8* @_salloc(i8* %"$adtval_2297_load", i64 29) + %"$adtval_2297" = bitcast i8* %"$adtval_2297_salloc" to %CName_Cons_ByStr20* + %"$adtgep_2298" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2297", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2298", align 1 + %"$adtgep_2299" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2297", i32 0, i32 1 + store [20 x i8] %"$initialOwner_2295", [20 x i8]* %"$adtgep_2299", align 1 + %"$adtgep_2300" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2297", i32 0, i32 2 + store %TName_List_ByStr20* %"$ud-registry.nilByStr20_2296", %TName_List_ByStr20** %"$adtgep_2300", align 8 + %"$adtptr_2301" = bitcast %CName_Cons_ByStr20* %"$adtval_2297" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_2301", %TName_List_ByStr20** %"$admins_159", align 8, !dbg !244 + %"$execptr_load_2302" = load i8*, i8** @_execptr, align 8 + %"$$admins_159_2304" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$admins_159", align 8 + %"$update_value_2305" = bitcast %TName_List_ByStr20* %"$$admins_159_2304" to i8* + call void @_update_field(i8* %"$execptr_load_2302", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2303", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i32 0, i8* null, i8* %"$update_value_2305"), !dbg !244 + ret void +} + +declare i8* @_new_empty_map(i8*) + +declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) + +declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) + +declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) + +define internal void @"$setAdmin_2306"(%Uint128 %_amount, [20 x i8]* %"$_origin_2307", [20 x i8]* %"$_sender_2308", [20 x i8]* %"$address_2309", %TName_Bool* %isApproved) !dbg !245 { entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2307", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2308", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_2309", align 1 + %currentAdmins = alloca %TName_List_ByStr20*, align 8 + %"$execptr_load_2311" = load i8*, i8** @_execptr, align 8 + %"$currentAdmins_call_2312" = call i8* @_fetch_field(i8* %"$execptr_load_2311", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2310", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i32 0, i8* null, i32 1), !dbg !246 + %"$currentAdmins_2313" = bitcast i8* %"$currentAdmins_call_2312" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$currentAdmins_2313", %TName_List_ByStr20** %currentAdmins, align 8 + %"$currentAdmins_2314" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$$currentAdmins_2314_2315" = bitcast %TName_List_ByStr20* %"$currentAdmins_2314" to i8* + %"$_literal_cost_call_2316" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i8* %"$$currentAdmins_2314_2315") + %"$gasadd_2317" = add i64 %"$_literal_cost_call_2316", 0 + %"$gasrem_2318" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2319" = icmp ugt i64 %"$gasadd_2317", %"$gasrem_2318" + br i1 %"$gascmp_2319", label %"$out_of_gas_2320", label %"$have_gas_2321" + +"$out_of_gas_2320": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2321" + +"$have_gas_2321": ; preds = %"$out_of_gas_2320", %entry + %"$consume_2322" = sub i64 %"$gasrem_2318", %"$gasadd_2317" + store i64 %"$consume_2322", i64* @_gasrem, align 8 + %"$gasrem_2323" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2324" = icmp ugt i64 1, %"$gasrem_2323" + br i1 %"$gascmp_2324", label %"$out_of_gas_2325", label %"$have_gas_2326" + +"$out_of_gas_2325": ; preds = %"$have_gas_2321" + call void @_out_of_gas() + br label %"$have_gas_2326" + +"$have_gas_2326": ; preds = %"$out_of_gas_2325", %"$have_gas_2321" + %"$consume_2327" = sub i64 %"$gasrem_2323", 1 + store i64 %"$consume_2327", i64* @_gasrem, align 8 + %isSenderAdmin = alloca %TName_Bool*, align 8 + %"$gasrem_2328" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2329" = icmp ugt i64 1, %"$gasrem_2328" + br i1 %"$gascmp_2329", label %"$out_of_gas_2330", label %"$have_gas_2331" + +"$out_of_gas_2330": ; preds = %"$have_gas_2326" + call void @_out_of_gas() + br label %"$have_gas_2331" + +"$have_gas_2331": ; preds = %"$out_of_gas_2330", %"$have_gas_2326" + %"$consume_2332" = sub i64 %"$gasrem_2328", 1 + store i64 %"$consume_2332", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Contains_2333" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8 + %"$ud-registry.listByStr20Contains_fptr_2334" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_2333", 0 + %"$ud-registry.listByStr20Contains_envptr_2335" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_2333", 1 + %"$currentAdmins_2336" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Contains__sender_2337" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.listByStr20Contains__sender_2337", align 1 + %"$ud-registry.listByStr20Contains_call_2338" = call %TName_Bool* %"$ud-registry.listByStr20Contains_fptr_2334"(i8* %"$ud-registry.listByStr20Contains_envptr_2335", %TName_List_ByStr20* %"$currentAdmins_2336", [20 x i8]* %"$ud-registry.listByStr20Contains__sender_2337"), !dbg !247 + store %TName_Bool* %"$ud-registry.listByStr20Contains_call_2338", %TName_Bool** %isSenderAdmin, align 8, !dbg !247 + %"$gasrem_2339" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2340" = icmp ugt i64 2, %"$gasrem_2339" + br i1 %"$gascmp_2340", label %"$out_of_gas_2341", label %"$have_gas_2342" + +"$out_of_gas_2341": ; preds = %"$have_gas_2331" + call void @_out_of_gas() + br label %"$have_gas_2342" + +"$have_gas_2342": ; preds = %"$out_of_gas_2341", %"$have_gas_2331" + %"$consume_2343" = sub i64 %"$gasrem_2339", 2 + store i64 %"$consume_2343", i64* @_gasrem, align 8 + %"$isSenderAdmin_2345" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$isSenderAdmin_tag_2346" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_2345", i32 0, i32 0 + %"$isSenderAdmin_tag_2347" = load i8, i8* %"$isSenderAdmin_tag_2346", align 1 + switch i8 %"$isSenderAdmin_tag_2347", label %"$empty_default_2348" [ + i8 0, label %"$True_2349" + i8 1, label %"$False_2471" + ], !dbg !248 + +"$True_2349": ; preds = %"$have_gas_2342" + %"$isSenderAdmin_2350" = bitcast %TName_Bool* %"$isSenderAdmin_2345" to %CName_True* + %"$gasrem_2351" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2352" = icmp ugt i64 1, %"$gasrem_2351" + br i1 %"$gascmp_2352", label %"$out_of_gas_2353", label %"$have_gas_2354" + +"$out_of_gas_2353": ; preds = %"$True_2349" + call void @_out_of_gas() + br label %"$have_gas_2354" + +"$have_gas_2354": ; preds = %"$out_of_gas_2353", %"$True_2349" + %"$consume_2355" = sub i64 %"$gasrem_2351", 1 + store i64 %"$consume_2355", i64* @_gasrem, align 8 + %needsToChange = alloca %TName_Bool*, align 8 + %"$gasrem_2356" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2357" = icmp ugt i64 1, %"$gasrem_2356" + br i1 %"$gascmp_2357", label %"$out_of_gas_2358", label %"$have_gas_2359" + +"$out_of_gas_2358": ; preds = %"$have_gas_2354" + call void @_out_of_gas() + br label %"$have_gas_2359" + +"$have_gas_2359": ; preds = %"$out_of_gas_2358", %"$have_gas_2354" + %"$consume_2360" = sub i64 %"$gasrem_2356", 1 + store i64 %"$consume_2360", i64* @_gasrem, align 8 + %b = alloca %TName_Bool*, align 8 + %"$gasrem_2361" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2362" = icmp ugt i64 1, %"$gasrem_2361" + br i1 %"$gascmp_2362", label %"$out_of_gas_2363", label %"$have_gas_2364" + +"$out_of_gas_2363": ; preds = %"$have_gas_2359" + call void @_out_of_gas() + br label %"$have_gas_2364" + +"$have_gas_2364": ; preds = %"$out_of_gas_2363", %"$have_gas_2359" + %"$consume_2365" = sub i64 %"$gasrem_2361", 1 + store i64 %"$consume_2365", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Excludes_2366" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Excludes, align 8 + %"$ud-registry.listByStr20Excludes_fptr_2367" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_2366", 0 + %"$ud-registry.listByStr20Excludes_envptr_2368" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_2366", 1 + %"$currentAdmins_2369" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Excludes_address_2370" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.listByStr20Excludes_address_2370", align 1 + %"$ud-registry.listByStr20Excludes_call_2371" = call %TName_Bool* %"$ud-registry.listByStr20Excludes_fptr_2367"(i8* %"$ud-registry.listByStr20Excludes_envptr_2368", %TName_List_ByStr20* %"$currentAdmins_2369", [20 x i8]* %"$ud-registry.listByStr20Excludes_address_2370"), !dbg !249 + store %TName_Bool* %"$ud-registry.listByStr20Excludes_call_2371", %TName_Bool** %b, align 8, !dbg !249 %"$gasrem_2372" = load i64, i64* @_gasrem, align 8 %"$gascmp_2373" = icmp ugt i64 1, %"$gasrem_2372" br i1 %"$gascmp_2373", label %"$out_of_gas_2374", label %"$have_gas_2375" -"$out_of_gas_2374": ; preds = %entry +"$out_of_gas_2374": ; preds = %"$have_gas_2364" call void @_out_of_gas() br label %"$have_gas_2375" -"$have_gas_2375": ; preds = %"$out_of_gas_2374", %entry +"$have_gas_2375": ; preds = %"$out_of_gas_2374", %"$have_gas_2364" %"$consume_2376" = sub i64 %"$gasrem_2372", 1 store i64 %"$consume_2376", i64* @_gasrem, align 8 - %"$dyndisp_table_2380_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2380_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2380_salloc_load", i64 48) - %"$dyndisp_table_2380_salloc" = bitcast i8* %"$dyndisp_table_2380_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2380" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2380_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2381" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2380", i32 0 - %"$dyndisp_pcast_2382" = bitcast { i8*, i8* }* %"$dyndisp_gep_2381" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_158_env_467"*)* @"$fundef_158" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_2382", align 8 - store { i8*, i8* }* %"$dyndisp_table_2380", { i8*, i8* }** @list_foldr, align 8, !dbg !242 - %"$gasrem_2383" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2384" = icmp ugt i64 1, %"$gasrem_2383" - br i1 %"$gascmp_2384", label %"$out_of_gas_2385", label %"$have_gas_2386" - -"$out_of_gas_2385": ; preds = %"$have_gas_2375" - call void @_out_of_gas() - br label %"$have_gas_2386" - -"$have_gas_2386": ; preds = %"$out_of_gas_2385", %"$have_gas_2375" - %"$consume_2387" = sub i64 %"$gasrem_2383", 1 - store i64 %"$consume_2387", i64* @_gasrem, align 8 - %"$dyndisp_table_2391_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2391_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2391_salloc_load", i64 48) - %"$dyndisp_table_2391_salloc" = bitcast i8* %"$dyndisp_table_2391_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2391" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2391_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2392" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2391", i32 0 - %"$dyndisp_pcast_2393" = bitcast { i8*, i8* }* %"$dyndisp_gep_2392" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_146_env_462"*)* @"$fundef_146" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_2393", align 8 - store { i8*, i8* }* %"$dyndisp_table_2391", { i8*, i8* }** @list_foldk, align 8, !dbg !242 + %"$ud-registry.xandb_2377" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8 + %"$ud-registry.xandb_fptr_2378" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2377", 0 + %"$ud-registry.xandb_envptr_2379" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2377", 1 + %"$b_2380" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$ud-registry.xandb_call_2381" = call %TName_Bool* %"$ud-registry.xandb_fptr_2378"(i8* %"$ud-registry.xandb_envptr_2379", %TName_Bool* %"$b_2380", %TName_Bool* %isApproved), !dbg !252 + store %TName_Bool* %"$ud-registry.xandb_call_2381", %TName_Bool** %needsToChange, align 8, !dbg !252 + %"$gasrem_2382" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2383" = icmp ugt i64 2, %"$gasrem_2382" + br i1 %"$gascmp_2383", label %"$out_of_gas_2384", label %"$have_gas_2385" + +"$out_of_gas_2384": ; preds = %"$have_gas_2375" + call void @_out_of_gas() + br label %"$have_gas_2385" + +"$have_gas_2385": ; preds = %"$out_of_gas_2384", %"$have_gas_2375" + %"$consume_2386" = sub i64 %"$gasrem_2382", 2 + store i64 %"$consume_2386", i64* @_gasrem, align 8 + %"$needsToChange_2388" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 + %"$needsToChange_tag_2389" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_2388", i32 0, i32 0 + %"$needsToChange_tag_2390" = load i8, i8* %"$needsToChange_tag_2389", align 1 + switch i8 %"$needsToChange_tag_2390", label %"$default_2391" [ + i8 0, label %"$True_2392" + ], !dbg !253 + +"$True_2392": ; preds = %"$have_gas_2385" + %"$needsToChange_2393" = bitcast %TName_Bool* %"$needsToChange_2388" to %CName_True* %"$gasrem_2394" = load i64, i64* @_gasrem, align 8 %"$gascmp_2395" = icmp ugt i64 1, %"$gasrem_2394" br i1 %"$gascmp_2395", label %"$out_of_gas_2396", label %"$have_gas_2397" -"$out_of_gas_2396": ; preds = %"$have_gas_2386" +"$out_of_gas_2396": ; preds = %"$True_2392" call void @_out_of_gas() br label %"$have_gas_2397" -"$have_gas_2397": ; preds = %"$out_of_gas_2396", %"$have_gas_2386" +"$have_gas_2397": ; preds = %"$out_of_gas_2396", %"$True_2392" %"$consume_2398" = sub i64 %"$gasrem_2394", 1 store i64 %"$consume_2398", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_174_env_456"*, %TName_Bool*)* @"$fundef_174" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8, !dbg !243 - %"$gasrem_2402" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2403" = icmp ugt i64 1, %"$gasrem_2402" - br i1 %"$gascmp_2403", label %"$out_of_gas_2404", label %"$have_gas_2405" - -"$out_of_gas_2404": ; preds = %"$have_gas_2397" - call void @_out_of_gas() - br label %"$have_gas_2405" - -"$have_gas_2405": ; preds = %"$out_of_gas_2404", %"$have_gas_2397" - %"$consume_2406" = sub i64 %"$gasrem_2402", 1 - store i64 %"$consume_2406", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_170_env_454"*, %TName_Bool*)* @"$fundef_170" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8, !dbg !244 + %newAdmins = alloca %TName_List_ByStr20*, align 8 + %"$gasrem_2399" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2400" = icmp ugt i64 2, %"$gasrem_2399" + br i1 %"$gascmp_2400", label %"$out_of_gas_2401", label %"$have_gas_2402" + +"$out_of_gas_2401": ; preds = %"$have_gas_2397" + call void @_out_of_gas() + br label %"$have_gas_2402" + +"$have_gas_2402": ; preds = %"$out_of_gas_2401", %"$have_gas_2397" + %"$consume_2403" = sub i64 %"$gasrem_2399", 2 + store i64 %"$consume_2403", i64* @_gasrem, align 8 + %"$isApproved_tag_2405" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 + %"$isApproved_tag_2406" = load i8, i8* %"$isApproved_tag_2405", align 1 + switch i8 %"$isApproved_tag_2406", label %"$empty_default_2407" [ + i8 0, label %"$True_2408" + i8 1, label %"$False_2421" + ], !dbg !254 + +"$True_2408": ; preds = %"$have_gas_2402" + %"$isApproved_2409" = bitcast %TName_Bool* %isApproved to %CName_True* %"$gasrem_2410" = load i64, i64* @_gasrem, align 8 %"$gascmp_2411" = icmp ugt i64 1, %"$gasrem_2410" br i1 %"$gascmp_2411", label %"$out_of_gas_2412", label %"$have_gas_2413" -"$out_of_gas_2412": ; preds = %"$have_gas_2405" +"$out_of_gas_2412": ; preds = %"$True_2408" call void @_out_of_gas() br label %"$have_gas_2413" -"$have_gas_2413": ; preds = %"$out_of_gas_2412", %"$have_gas_2405" +"$have_gas_2413": ; preds = %"$out_of_gas_2412", %"$True_2408" %"$consume_2414" = sub i64 %"$gasrem_2410", 1 store i64 %"$consume_2414", i64* @_gasrem, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_168_env_452"*, %TName_Bool*)* @"$fundef_168" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8, !dbg !245 - %"$gasrem_2418" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2419" = icmp ugt i64 1, %"$gasrem_2418" - br i1 %"$gascmp_2419", label %"$out_of_gas_2420", label %"$have_gas_2421" - -"$out_of_gas_2420": ; preds = %"$have_gas_2413" - call void @_out_of_gas() - br label %"$have_gas_2421" - -"$have_gas_2421": ; preds = %"$out_of_gas_2420", %"$have_gas_2413" - %"$consume_2422" = sub i64 %"$gasrem_2418", 1 - store i64 %"$consume_2422", i64* @_gasrem, align 8 - %"$$fundef_200_envp_2423_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_200_envp_2423_salloc" = call i8* @_salloc(i8* %"$$fundef_200_envp_2423_load", i64 8) - %"$$fundef_200_envp_2423" = bitcast i8* %"$$fundef_200_envp_2423_salloc" to %"$$fundef_200_env_451"* - %"$$fundef_200_env_voidp_2425" = bitcast %"$$fundef_200_env_451"* %"$$fundef_200_envp_2423" to i8* - %"$$fundef_200_cloval_2426" = insertvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_200_env_451"*)* @"$fundef_200" to { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_200_env_voidp_2425", 1 - %"$$fundef_200_env_list_foldr_2427" = getelementptr inbounds %"$$fundef_200_env_451", %"$$fundef_200_env_451"* %"$$fundef_200_envp_2423", i32 0, i32 0 - %"$list_foldr_2428" = load { i8*, i8* }*, { i8*, i8* }** @list_foldr, align 8 - store { i8*, i8* }* %"$list_foldr_2428", { i8*, i8* }** %"$$fundef_200_env_list_foldr_2427", align 8 - %"$dyndisp_table_2429_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2429_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2429_salloc_load", i64 48) - %"$dyndisp_table_2429_salloc" = bitcast i8* %"$dyndisp_table_2429_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2429" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2429_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2430" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2429", i32 0 - %"$dyndisp_pcast_2431" = bitcast { i8*, i8* }* %"$dyndisp_gep_2430" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_200_cloval_2426", { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2431", align 8 - store { i8*, i8* }* %"$dyndisp_table_2429", { i8*, i8* }** @ListUtils.list_filter, align 8, !dbg !246 - %"$gasrem_2432" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2433" = icmp ugt i64 1, %"$gasrem_2432" - br i1 %"$gascmp_2433", label %"$out_of_gas_2434", label %"$have_gas_2435" - -"$out_of_gas_2434": ; preds = %"$have_gas_2421" - call void @_out_of_gas() - br label %"$have_gas_2435" - -"$have_gas_2435": ; preds = %"$out_of_gas_2434", %"$have_gas_2421" - %"$consume_2436" = sub i64 %"$gasrem_2432", 1 - store i64 %"$consume_2436", i64* @_gasrem, align 8 - %"$$fundef_190_envp_2437_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_190_envp_2437_salloc" = call i8* @_salloc(i8* %"$$fundef_190_envp_2437_load", i64 8) - %"$$fundef_190_envp_2437" = bitcast i8* %"$$fundef_190_envp_2437_salloc" to %"$$fundef_190_env_447"* - %"$$fundef_190_env_voidp_2439" = bitcast %"$$fundef_190_env_447"* %"$$fundef_190_envp_2437" to i8* - %"$$fundef_190_cloval_2440" = insertvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_190_env_447"*)* @"$fundef_190" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_190_env_voidp_2439", 1 - %"$$fundef_190_env_list_foldk_2441" = getelementptr inbounds %"$$fundef_190_env_447", %"$$fundef_190_env_447"* %"$$fundef_190_envp_2437", i32 0, i32 0 - %"$list_foldk_2442" = load { i8*, i8* }*, { i8*, i8* }** @list_foldk, align 8 - store { i8*, i8* }* %"$list_foldk_2442", { i8*, i8* }** %"$$fundef_190_env_list_foldk_2441", align 8 - %"$dyndisp_table_2443_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2443_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2443_salloc_load", i64 48) - %"$dyndisp_table_2443_salloc" = bitcast i8* %"$dyndisp_table_2443_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2443" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2443_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2444" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2443", i32 0 - %"$dyndisp_pcast_2445" = bitcast { i8*, i8* }* %"$dyndisp_gep_2444" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_190_cloval_2440", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2445", align 8 - store { i8*, i8* }* %"$dyndisp_table_2443", { i8*, i8* }** @ListUtils.list_find, align 8, !dbg !247 + %"$currentAdmins_2415" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$adtval_2416_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2416_salloc" = call i8* @_salloc(i8* %"$adtval_2416_load", i64 29) + %"$adtval_2416" = bitcast i8* %"$adtval_2416_salloc" to %CName_Cons_ByStr20* + %"$adtgep_2417" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2416", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2417", align 1 + %"$adtgep_2418" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2416", i32 0, i32 1 + store [20 x i8] %address, [20 x i8]* %"$adtgep_2418", align 1 + %"$adtgep_2419" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2416", i32 0, i32 2 + store %TName_List_ByStr20* %"$currentAdmins_2415", %TName_List_ByStr20** %"$adtgep_2419", align 8 + %"$adtptr_2420" = bitcast %CName_Cons_ByStr20* %"$adtval_2416" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_2420", %TName_List_ByStr20** %newAdmins, align 8, !dbg !257 + br label %"$matchsucc_2404" + +"$False_2421": ; preds = %"$have_gas_2402" + %"$isApproved_2422" = bitcast %TName_Bool* %isApproved to %CName_False* + %"$gasrem_2423" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2424" = icmp ugt i64 1, %"$gasrem_2423" + br i1 %"$gascmp_2424", label %"$out_of_gas_2425", label %"$have_gas_2426" + +"$out_of_gas_2425": ; preds = %"$False_2421" + call void @_out_of_gas() + br label %"$have_gas_2426" + +"$have_gas_2426": ; preds = %"$out_of_gas_2425", %"$False_2421" + %"$consume_2427" = sub i64 %"$gasrem_2423", 1 + store i64 %"$consume_2427", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20FilterOut_2428" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8 + %"$ud-registry.listByStr20FilterOut_fptr_2429" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_2428", 0 + %"$ud-registry.listByStr20FilterOut_envptr_2430" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_2428", 1 + %"$currentAdmins_2431" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20FilterOut_address_2432" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.listByStr20FilterOut_address_2432", align 1 + %"$ud-registry.listByStr20FilterOut_call_2433" = call %TName_List_ByStr20* %"$ud-registry.listByStr20FilterOut_fptr_2429"(i8* %"$ud-registry.listByStr20FilterOut_envptr_2430", %TName_List_ByStr20* %"$currentAdmins_2431", [20 x i8]* %"$ud-registry.listByStr20FilterOut_address_2432"), !dbg !260 + store %TName_List_ByStr20* %"$ud-registry.listByStr20FilterOut_call_2433", %TName_List_ByStr20** %newAdmins, align 8, !dbg !260 + br label %"$matchsucc_2404" + +"$empty_default_2407": ; preds = %"$have_gas_2402" + br label %"$matchsucc_2404" + +"$matchsucc_2404": ; preds = %"$have_gas_2426", %"$have_gas_2413", %"$empty_default_2407" + %"$newAdmins_2434" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 + %"$$newAdmins_2434_2435" = bitcast %TName_List_ByStr20* %"$newAdmins_2434" to i8* + %"$_literal_cost_call_2436" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i8* %"$$newAdmins_2434_2435") + %"$gasrem_2437" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2438" = icmp ugt i64 %"$_literal_cost_call_2436", %"$gasrem_2437" + br i1 %"$gascmp_2438", label %"$out_of_gas_2439", label %"$have_gas_2440" + +"$out_of_gas_2439": ; preds = %"$matchsucc_2404" + call void @_out_of_gas() + br label %"$have_gas_2440" + +"$have_gas_2440": ; preds = %"$out_of_gas_2439", %"$matchsucc_2404" + %"$consume_2441" = sub i64 %"$gasrem_2437", %"$_literal_cost_call_2436" + store i64 %"$consume_2441", i64* @_gasrem, align 8 + %"$execptr_load_2442" = load i8*, i8** @_execptr, align 8 + %"$newAdmins_2444" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 + %"$update_value_2445" = bitcast %TName_List_ByStr20* %"$newAdmins_2444" to i8* + call void @_update_field(i8* %"$execptr_load_2442", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2443", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i32 0, i8* null, i8* %"$update_value_2445"), !dbg !262 %"$gasrem_2446" = load i64, i64* @_gasrem, align 8 %"$gascmp_2447" = icmp ugt i64 1, %"$gasrem_2446" br i1 %"$gascmp_2447", label %"$out_of_gas_2448", label %"$have_gas_2449" -"$out_of_gas_2448": ; preds = %"$have_gas_2435" +"$out_of_gas_2448": ; preds = %"$have_gas_2440" call void @_out_of_gas() br label %"$have_gas_2449" -"$have_gas_2449": ; preds = %"$out_of_gas_2448", %"$have_gas_2435" +"$have_gas_2449": ; preds = %"$out_of_gas_2448", %"$have_gas_2440" %"$consume_2450" = sub i64 %"$gasrem_2446", 1 store i64 %"$consume_2450", i64* @_gasrem, align 8 - %"$$fundef_184_envp_2451_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_184_envp_2451_salloc" = call i8* @_salloc(i8* %"$$fundef_184_envp_2451_load", i64 8) - %"$$fundef_184_envp_2451" = bitcast i8* %"$$fundef_184_envp_2451_salloc" to %"$$fundef_184_env_442"* - %"$$fundef_184_env_voidp_2453" = bitcast %"$$fundef_184_env_442"* %"$$fundef_184_envp_2451" to i8* - %"$$fundef_184_cloval_2454" = insertvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_184_env_442"*)* @"$fundef_184" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_184_env_voidp_2453", 1 - %"$$fundef_184_env_ListUtils.list_find_2455" = getelementptr inbounds %"$$fundef_184_env_442", %"$$fundef_184_env_442"* %"$$fundef_184_envp_2451", i32 0, i32 0 - %"$ListUtils.list_find_2456" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_find, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_2456", { i8*, i8* }** %"$$fundef_184_env_ListUtils.list_find_2455", align 8 - %"$dyndisp_table_2457_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2457_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2457_salloc_load", i64 48) - %"$dyndisp_table_2457_salloc" = bitcast i8* %"$dyndisp_table_2457_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2457" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2457_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2458" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2457", i32 0 - %"$dyndisp_pcast_2459" = bitcast { i8*, i8* }* %"$dyndisp_gep_2458" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_184_cloval_2454", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2459", align 8 - store { i8*, i8* }* %"$dyndisp_table_2457", { i8*, i8* }** @ListUtils.list_exists, align 8, !dbg !248 - %"$gasrem_2460" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2461" = icmp ugt i64 1, %"$gasrem_2460" - br i1 %"$gascmp_2461", label %"$out_of_gas_2462", label %"$have_gas_2463" - -"$out_of_gas_2462": ; preds = %"$have_gas_2449" - call void @_out_of_gas() - br label %"$have_gas_2463" - -"$have_gas_2463": ; preds = %"$out_of_gas_2462", %"$have_gas_2449" - %"$consume_2464" = sub i64 %"$gasrem_2460", 1 - store i64 %"$consume_2464", i64* @_gasrem, align 8 - %"$$fundef_178_envp_2465_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_178_envp_2465_salloc" = call i8* @_salloc(i8* %"$$fundef_178_envp_2465_load", i64 8) - %"$$fundef_178_envp_2465" = bitcast i8* %"$$fundef_178_envp_2465_salloc" to %"$$fundef_178_env_439"* - %"$$fundef_178_env_voidp_2467" = bitcast %"$$fundef_178_env_439"* %"$$fundef_178_envp_2465" to i8* - %"$$fundef_178_cloval_2468" = insertvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_178_env_439"*)* @"$fundef_178" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_178_env_voidp_2467", 1 - %"$$fundef_178_env_ListUtils.list_exists_2469" = getelementptr inbounds %"$$fundef_178_env_439", %"$$fundef_178_env_439"* %"$$fundef_178_envp_2465", i32 0, i32 0 - %"$ListUtils.list_exists_2470" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_exists, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_2470", { i8*, i8* }** %"$$fundef_178_env_ListUtils.list_exists_2469", align 8 - %"$dyndisp_table_2471_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2471_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2471_salloc_load", i64 48) - %"$dyndisp_table_2471_salloc" = bitcast i8* %"$dyndisp_table_2471_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2471" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2471_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2472" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2471", i32 0 - %"$dyndisp_pcast_2473" = bitcast { i8*, i8* }* %"$dyndisp_gep_2472" to { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_178_cloval_2468", { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2473", align 8 - store { i8*, i8* }* %"$dyndisp_table_2471", { i8*, i8* }** @ListUtils.list_mem, align 8, !dbg !249 - %"$gasrem_2474" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2475" = icmp ugt i64 1, %"$gasrem_2474" - br i1 %"$gascmp_2475", label %"$out_of_gas_2476", label %"$have_gas_2477" - -"$out_of_gas_2476": ; preds = %"$have_gas_2463" - call void @_out_of_gas() - br label %"$have_gas_2477" - -"$have_gas_2477": ; preds = %"$out_of_gas_2476", %"$have_gas_2463" - %"$consume_2478" = sub i64 %"$gasrem_2474", 1 - store i64 %"$consume_2478", i64* @_gasrem, align 8 - store [20 x i8] zeroinitializer, [20 x i8]* @ud-registry.zeroByStr20, align 1, !dbg !250 - %"$gasrem_2479" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2480" = icmp ugt i64 1, %"$gasrem_2479" - br i1 %"$gascmp_2480", label %"$out_of_gas_2481", label %"$have_gas_2482" - -"$out_of_gas_2481": ; preds = %"$have_gas_2477" - call void @_out_of_gas() - br label %"$have_gas_2482" - -"$have_gas_2482": ; preds = %"$out_of_gas_2481", %"$have_gas_2477" - %"$consume_2483" = sub i64 %"$gasrem_2479", 1 - store i64 %"$consume_2483", i64* @_gasrem, align 8 - %"$adtval_2484_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2484_salloc" = call i8* @_salloc(i8* %"$adtval_2484_load", i64 1) - %"$adtval_2484" = bitcast i8* %"$adtval_2484_salloc" to %CName_Nil_ByStr20* - %"$adtgep_2485" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_2484", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2485", align 1 - %"$adtptr_2486" = bitcast %CName_Nil_ByStr20* %"$adtval_2484" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_2486", %TName_List_ByStr20** @ud-registry.nilByStr20, align 8, !dbg !251 - %"$gasrem_2487" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2488" = icmp ugt i64 1, %"$gasrem_2487" - br i1 %"$gascmp_2488", label %"$out_of_gas_2489", label %"$have_gas_2490" - -"$out_of_gas_2489": ; preds = %"$have_gas_2482" - call void @_out_of_gas() - br label %"$have_gas_2490" - -"$have_gas_2490": ; preds = %"$out_of_gas_2489", %"$have_gas_2482" - %"$consume_2491" = sub i64 %"$gasrem_2487", 1 - store i64 %"$consume_2491", i64* @_gasrem, align 8 - %"$adtval_2492_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2492_salloc" = call i8* @_salloc(i8* %"$adtval_2492_load", i64 1) - %"$adtval_2492" = bitcast i8* %"$adtval_2492_salloc" to %CName_Nil_Message* - %"$adtgep_2493" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_2492", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2493", align 1 - %"$adtptr_2494" = bitcast %CName_Nil_Message* %"$adtval_2492" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_2494", %TName_List_Message** @ud-registry.nilMessage, align 8, !dbg !252 - %"$gasrem_2495" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2496" = icmp ugt i64 1, %"$gasrem_2495" - br i1 %"$gascmp_2496", label %"$out_of_gas_2497", label %"$have_gas_2498" - -"$out_of_gas_2497": ; preds = %"$have_gas_2490" - call void @_out_of_gas() - br label %"$have_gas_2498" - -"$have_gas_2498": ; preds = %"$out_of_gas_2497", %"$have_gas_2490" - %"$consume_2499" = sub i64 %"$gasrem_2495", 1 - store i64 %"$consume_2499", i64* @_gasrem, align 8 - %"$$fundef_270_envp_2500_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_270_envp_2500_salloc" = call i8* @_salloc(i8* %"$$fundef_270_envp_2500_load", i64 8) - %"$$fundef_270_envp_2500" = bitcast i8* %"$$fundef_270_envp_2500_salloc" to %"$$fundef_270_env_436"* - %"$$fundef_270_env_voidp_2502" = bitcast %"$$fundef_270_env_436"* %"$$fundef_270_envp_2500" to i8* - %"$$fundef_270_cloval_2503" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_270_env_436"*, i8*)* @"$fundef_270" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_270_env_voidp_2502", 1 - %"$$fundef_270_env_ud-registry.nilMessage_2504" = getelementptr inbounds %"$$fundef_270_env_436", %"$$fundef_270_env_436"* %"$$fundef_270_envp_2500", i32 0, i32 0 - %"$ud-registry.nilMessage_2505" = load %TName_List_Message*, %TName_List_Message** @ud-registry.nilMessage, align 8 - store %TName_List_Message* %"$ud-registry.nilMessage_2505", %TName_List_Message** %"$$fundef_270_env_ud-registry.nilMessage_2504", align 8 - store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_270_cloval_2503", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8, !dbg !253 - %"$gasrem_2506" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2507" = icmp ugt i64 1, %"$gasrem_2506" - br i1 %"$gascmp_2507", label %"$out_of_gas_2508", label %"$have_gas_2509" - -"$out_of_gas_2508": ; preds = %"$have_gas_2498" - call void @_out_of_gas() - br label %"$have_gas_2509" - -"$have_gas_2509": ; preds = %"$out_of_gas_2508", %"$have_gas_2498" - %"$consume_2510" = sub i64 %"$gasrem_2506", 1 - store i64 %"$consume_2510", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Bool* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_266_env_435"*, [20 x i8]*)* @"$fundef_266" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* null }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eqByStr20, align 8, !dbg !254 - %"$gasrem_2514" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2515" = icmp ugt i64 1, %"$gasrem_2514" - br i1 %"$gascmp_2515", label %"$out_of_gas_2516", label %"$have_gas_2517" - -"$out_of_gas_2516": ; preds = %"$have_gas_2509" - call void @_out_of_gas() - br label %"$have_gas_2517" - -"$have_gas_2517": ; preds = %"$out_of_gas_2516", %"$have_gas_2509" - %"$consume_2518" = sub i64 %"$gasrem_2514", 1 - store i64 %"$consume_2518", i64* @_gasrem, align 8 - %"$$fundef_262_envp_2519_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_262_envp_2519_salloc" = call i8* @_salloc(i8* %"$$fundef_262_envp_2519_load", i64 24) - %"$$fundef_262_envp_2519" = bitcast i8* %"$$fundef_262_envp_2519_salloc" to %"$$fundef_262_env_433"* - %"$$fundef_262_env_voidp_2521" = bitcast %"$$fundef_262_env_433"* %"$$fundef_262_envp_2519" to i8* - %"$$fundef_262_cloval_2522" = insertvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)* bitcast ({ %TName_Bool* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_262_env_433"*, %TName_List_ByStr20*)* @"$fundef_262" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_262_env_voidp_2521", 1 - %"$$fundef_262_env_ListUtils.list_mem_2523" = getelementptr inbounds %"$$fundef_262_env_433", %"$$fundef_262_env_433"* %"$$fundef_262_envp_2519", i32 0, i32 0 - %"$ListUtils.list_mem_2524" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_mem, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_2524", { i8*, i8* }** %"$$fundef_262_env_ListUtils.list_mem_2523", align 8 - %"$$fundef_262_env_ud-registry.eqByStr20_2525" = getelementptr inbounds %"$$fundef_262_env_433", %"$$fundef_262_env_433"* %"$$fundef_262_envp_2519", i32 0, i32 1 - %"$ud-registry.eqByStr20_2526" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eqByStr20, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_2526", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_262_env_ud-registry.eqByStr20_2525", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_262_cloval_2522", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8, !dbg !255 - %"$gasrem_2527" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2528" = icmp ugt i64 1, %"$gasrem_2527" - br i1 %"$gascmp_2528", label %"$out_of_gas_2529", label %"$have_gas_2530" - -"$out_of_gas_2529": ; preds = %"$have_gas_2517" - call void @_out_of_gas() - br label %"$have_gas_2530" - -"$have_gas_2530": ; preds = %"$out_of_gas_2529", %"$have_gas_2517" - %"$consume_2531" = sub i64 %"$gasrem_2527", 1 - store i64 %"$consume_2531", i64* @_gasrem, align 8 - %"$$fundef_258_envp_2532_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_258_envp_2532_salloc" = call i8* @_salloc(i8* %"$$fundef_258_envp_2532_load", i64 32) - %"$$fundef_258_envp_2532" = bitcast i8* %"$$fundef_258_envp_2532_salloc" to %"$$fundef_258_env_431"* - %"$$fundef_258_env_voidp_2534" = bitcast %"$$fundef_258_env_431"* %"$$fundef_258_envp_2532" to i8* - %"$$fundef_258_cloval_2535" = insertvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)* bitcast ({ %TName_Bool* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_258_env_431"*, %TName_List_ByStr20*)* @"$fundef_258" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_258_env_voidp_2534", 1 - %"$$fundef_258_env_BoolUtils.negb_2536" = getelementptr inbounds %"$$fundef_258_env_431", %"$$fundef_258_env_431"* %"$$fundef_258_envp_2532", i32 0, i32 0 - %"$BoolUtils.negb_2537" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2537", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_258_env_BoolUtils.negb_2536", align 8 - %"$$fundef_258_env_ud-registry.listByStr20Contains_2538" = getelementptr inbounds %"$$fundef_258_env_431", %"$$fundef_258_env_431"* %"$$fundef_258_envp_2532", i32 0, i32 1 - %"$ud-registry.listByStr20Contains_2539" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2539", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_258_env_ud-registry.listByStr20Contains_2538", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_258_cloval_2535", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Excludes, align 8, !dbg !256 - %"$gasrem_2540" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2541" = icmp ugt i64 1, %"$gasrem_2540" - br i1 %"$gascmp_2541", label %"$out_of_gas_2542", label %"$have_gas_2543" - -"$out_of_gas_2542": ; preds = %"$have_gas_2530" - call void @_out_of_gas() - br label %"$have_gas_2543" - -"$have_gas_2543": ; preds = %"$out_of_gas_2542", %"$have_gas_2530" - %"$consume_2544" = sub i64 %"$gasrem_2540", 1 - store i64 %"$consume_2544", i64* @_gasrem, align 8 - %"$$fundef_252_envp_2545_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_252_envp_2545_salloc" = call i8* @_salloc(i8* %"$$fundef_252_envp_2545_load", i64 24) - %"$$fundef_252_envp_2545" = bitcast i8* %"$$fundef_252_envp_2545_salloc" to %"$$fundef_252_env_429"* - %"$$fundef_252_env_voidp_2547" = bitcast %"$$fundef_252_env_429"* %"$$fundef_252_envp_2545" to i8* - %"$$fundef_252_cloval_2548" = insertvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)* bitcast ({ %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_252_env_429"*, %TName_List_ByStr20*)* @"$fundef_252" to { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_252_env_voidp_2547", 1 - %"$$fundef_252_env_BoolUtils.negb_2549" = getelementptr inbounds %"$$fundef_252_env_429", %"$$fundef_252_env_429"* %"$$fundef_252_envp_2545", i32 0, i32 0 - %"$BoolUtils.negb_2550" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2550", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_252_env_BoolUtils.negb_2549", align 8 - %"$$fundef_252_env_ListUtils.list_filter_2551" = getelementptr inbounds %"$$fundef_252_env_429", %"$$fundef_252_env_429"* %"$$fundef_252_envp_2545", i32 0, i32 1 - %"$ListUtils.list_filter_2552" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_filter, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_2552", { i8*, i8* }** %"$$fundef_252_env_ListUtils.list_filter_2551", align 8 - store { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_252_cloval_2548", { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8, !dbg !257 - %"$gasrem_2553" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2554" = icmp ugt i64 1, %"$gasrem_2553" - br i1 %"$gascmp_2554", label %"$out_of_gas_2555", label %"$have_gas_2556" - -"$out_of_gas_2555": ; preds = %"$have_gas_2543" - call void @_out_of_gas() - br label %"$have_gas_2556" - -"$have_gas_2556": ; preds = %"$out_of_gas_2555", %"$have_gas_2543" - %"$consume_2557" = sub i64 %"$gasrem_2553", 1 - store i64 %"$consume_2557", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_248_env_426"*, %TName_Bool*)* @"$fundef_248" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8, !dbg !258 - %"$gasrem_2561" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2562" = icmp ugt i64 1, %"$gasrem_2561" - br i1 %"$gascmp_2562", label %"$out_of_gas_2563", label %"$have_gas_2564" - -"$out_of_gas_2563": ; preds = %"$have_gas_2556" - call void @_out_of_gas() - br label %"$have_gas_2564" - -"$have_gas_2564": ; preds = %"$out_of_gas_2563", %"$have_gas_2556" - %"$consume_2565" = sub i64 %"$gasrem_2561", 1 - store i64 %"$consume_2565", i64* @_gasrem, align 8 - store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ i8* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_244_env_424"*, [20 x i8]*)* @"$fundef_244" to { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*), i8* null }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eAdminSet, align 8, !dbg !259 - %"$gasrem_2569" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2570" = icmp ugt i64 1, %"$gasrem_2569" - br i1 %"$gascmp_2570", label %"$out_of_gas_2571", label %"$have_gas_2572" - -"$out_of_gas_2571": ; preds = %"$have_gas_2564" - call void @_out_of_gas() - br label %"$have_gas_2572" - -"$have_gas_2572": ; preds = %"$out_of_gas_2571", %"$have_gas_2564" - %"$consume_2573" = sub i64 %"$gasrem_2569", 1 - store i64 %"$consume_2573", i64* @_gasrem, align 8 - store { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_238_env_422"*, [20 x i8]*)* @"$fundef_238" to { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* null }, { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApprovedFor, align 8, !dbg !260 - %"$gasrem_2577" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2578" = icmp ugt i64 1, %"$gasrem_2577" - br i1 %"$gascmp_2578", label %"$out_of_gas_2579", label %"$have_gas_2580" - -"$out_of_gas_2579": ; preds = %"$have_gas_2572" - call void @_out_of_gas() - br label %"$have_gas_2580" - -"$have_gas_2580": ; preds = %"$out_of_gas_2579", %"$have_gas_2572" - %"$consume_2581" = sub i64 %"$gasrem_2577", 1 - store i64 %"$consume_2581", i64* @_gasrem, align 8 - store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_236_env_419"*, [20 x i8]*)* @"$fundef_236" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8, !dbg !261 - %"$gasrem_2585" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2586" = icmp ugt i64 1, %"$gasrem_2585" - br i1 %"$gascmp_2586", label %"$out_of_gas_2587", label %"$have_gas_2588" - -"$out_of_gas_2587": ; preds = %"$have_gas_2580" - call void @_out_of_gas() - br label %"$have_gas_2588" - -"$have_gas_2588": ; preds = %"$out_of_gas_2587", %"$have_gas_2580" - %"$consume_2589" = sub i64 %"$gasrem_2585", 1 - store i64 %"$consume_2589", i64* @_gasrem, align 8 - store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_234_env_418"*, [20 x i8]*)* @"$fundef_234" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8, !dbg !262 - %"$gasrem_2593" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2594" = icmp ugt i64 1, %"$gasrem_2593" - br i1 %"$gascmp_2594", label %"$out_of_gas_2595", label %"$have_gas_2596" - -"$out_of_gas_2595": ; preds = %"$have_gas_2588" - call void @_out_of_gas() - br label %"$have_gas_2596" - -"$have_gas_2596": ; preds = %"$out_of_gas_2595", %"$have_gas_2588" - %"$consume_2597" = sub i64 %"$gasrem_2593", 1 - store i64 %"$consume_2597", i64* @_gasrem, align 8 - store { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)* bitcast ({ i8* (i8*, %String)*, i8* } (%"$$fundef_230_env_417"*, [32 x i8]*)* @"$fundef_230" to { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*), i8* null }, { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eNewDomain, align 8, !dbg !263 - %"$gasrem_2601" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2602" = icmp ugt i64 1, %"$gasrem_2601" - br i1 %"$gascmp_2602", label %"$out_of_gas_2603", label %"$have_gas_2604" - -"$out_of_gas_2603": ; preds = %"$have_gas_2596" - call void @_out_of_gas() - br label %"$have_gas_2604" - -"$have_gas_2604": ; preds = %"$out_of_gas_2603", %"$have_gas_2596" - %"$consume_2605" = sub i64 %"$gasrem_2601", 1 - store i64 %"$consume_2605", i64* @_gasrem, align 8 - store { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)* bitcast ({ { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_224_env_415"*, [32 x i8]*)* @"$fundef_224" to { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*), i8* null }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8, !dbg !264 - %"$gasrem_2609" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2610" = icmp ugt i64 1, %"$gasrem_2609" - br i1 %"$gascmp_2610", label %"$out_of_gas_2611", label %"$have_gas_2612" - -"$out_of_gas_2611": ; preds = %"$have_gas_2604" - call void @_out_of_gas() - br label %"$have_gas_2612" - -"$have_gas_2612": ; preds = %"$out_of_gas_2611", %"$have_gas_2604" - %"$consume_2613" = sub i64 %"$gasrem_2609", 1 - store i64 %"$consume_2613", i64* @_gasrem, align 8 - store { i8* (i8*, %String)*, i8* } { i8* (i8*, %String)* bitcast (i8* (%"$$fundef_222_env_412"*, %String)* @"$fundef_222" to i8* (i8*, %String)*), i8* null }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8, !dbg !265 - %"$gasrem_2617" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2618" = icmp ugt i64 1, %"$gasrem_2617" - br i1 %"$gascmp_2618", label %"$out_of_gas_2619", label %"$have_gas_2620" - -"$out_of_gas_2619": ; preds = %"$have_gas_2612" - call void @_out_of_gas() - br label %"$have_gas_2620" - -"$have_gas_2620": ; preds = %"$out_of_gas_2619", %"$have_gas_2612" - %"$consume_2621" = sub i64 %"$gasrem_2617", 1 - store i64 %"$consume_2621", i64* @_gasrem, align 8 - %"$$fundef_220_envp_2622_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_220_envp_2622_salloc" = call i8* @_salloc(i8* %"$$fundef_220_envp_2622_load", i64 20) - %"$$fundef_220_envp_2622" = bitcast i8* %"$$fundef_220_envp_2622_salloc" to %"$$fundef_220_env_411"* - %"$$fundef_220_env_voidp_2624" = bitcast %"$$fundef_220_env_411"* %"$$fundef_220_envp_2622" to i8* - %"$$fundef_220_cloval_2625" = insertvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)* bitcast (void (%"$$fundef_220_env_411"*, [20 x i8]*, %TName_Option_ud-registry.Record*)* @"$fundef_220" to void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*), i8* undef }, i8* %"$$fundef_220_env_voidp_2624", 1 - %"$$fundef_220_env_ud-registry.zeroByStr20_2626" = getelementptr inbounds %"$$fundef_220_env_411", %"$$fundef_220_env_411"* %"$$fundef_220_envp_2622", i32 0, i32 0 - %"$ud-registry.zeroByStr20_2627" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_2627", [20 x i8]* %"$$fundef_220_env_ud-registry.zeroByStr20_2626", align 1 - store { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$$fundef_220_cloval_2625", { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8, !dbg !266 - %"$gasrem_2628" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2629" = icmp ugt i64 1, %"$gasrem_2628" - br i1 %"$gascmp_2629", label %"$out_of_gas_2630", label %"$have_gas_2631" - -"$out_of_gas_2630": ; preds = %"$have_gas_2620" - call void @_out_of_gas() - br label %"$have_gas_2631" - -"$have_gas_2631": ; preds = %"$out_of_gas_2630", %"$have_gas_2620" - %"$consume_2632" = sub i64 %"$gasrem_2628", 1 - store i64 %"$consume_2632", i64* @_gasrem, align 8 - store { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)* bitcast ({ void (i8*, [32 x i8]*, %String)*, i8* } (%"$$fundef_216_env_410"*, [32 x i8]*)* @"$fundef_216" to { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*), i8* null }, { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.parentLabelToNode, align 8, !dbg !267 - %"$gasrem_2636" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2637" = icmp ugt i64 1, %"$gasrem_2636" - br i1 %"$gascmp_2637", label %"$out_of_gas_2638", label %"$have_gas_2639" - -"$out_of_gas_2638": ; preds = %"$have_gas_2631" - call void @_out_of_gas() - br label %"$have_gas_2639" - -"$have_gas_2639": ; preds = %"$out_of_gas_2638", %"$have_gas_2631" - %"$consume_2640" = sub i64 %"$gasrem_2636", 1 - store i64 %"$consume_2640", i64* @_gasrem, align 8 - %"$$fundef_208_envp_2641_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_208_envp_2641_salloc" = call i8* @_salloc(i8* %"$$fundef_208_envp_2641_load", i64 32) - %"$$fundef_208_envp_2641" = bitcast i8* %"$$fundef_208_envp_2641_salloc" to %"$$fundef_208_env_408"* - %"$$fundef_208_env_voidp_2643" = bitcast %"$$fundef_208_env_408"* %"$$fundef_208_envp_2641" to i8* - %"$$fundef_208_cloval_2644" = insertvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_208_env_408"*, [20 x i8]*)* @"$fundef_208" to { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_208_env_voidp_2643", 1 - %"$$fundef_208_env_BoolUtils.orb_2645" = getelementptr inbounds %"$$fundef_208_env_408", %"$$fundef_208_env_408"* %"$$fundef_208_envp_2641", i32 0, i32 0 - %"$BoolUtils.orb_2646" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2646", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_208_env_BoolUtils.orb_2645", align 8 - %"$$fundef_208_env_ud-registry.listByStr20Contains_2647" = getelementptr inbounds %"$$fundef_208_env_408", %"$$fundef_208_env_408"* %"$$fundef_208_envp_2641", i32 0, i32 1 - %"$ud-registry.listByStr20Contains_2648" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2648", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_208_env_ud-registry.listByStr20Contains_2647", align 8 - store { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_208_cloval_2644", { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.getIsOAO, align 8, !dbg !268 - ret void -} - -define void @_init_state() !dbg !269 { -entry: - %"$records_272" = alloca %Map_ByStr32_ud-registry.Record*, align 8 - %"$gasrem_2649" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2650" = icmp ugt i64 1, %"$gasrem_2649" - br i1 %"$gascmp_2650", label %"$out_of_gas_2651", label %"$have_gas_2652" - -"$out_of_gas_2651": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2652" + %e = alloca i8*, align 8 + %"$gasrem_2451" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2452" = icmp ugt i64 1, %"$gasrem_2451" + br i1 %"$gascmp_2452", label %"$out_of_gas_2453", label %"$have_gas_2454" + +"$out_of_gas_2453": ; preds = %"$have_gas_2449" + call void @_out_of_gas() + br label %"$have_gas_2454" + +"$have_gas_2454": ; preds = %"$out_of_gas_2453", %"$have_gas_2449" + %"$consume_2455" = sub i64 %"$gasrem_2451", 1 + store i64 %"$consume_2455", i64* @_gasrem, align 8 + %"$ud-registry.eAdminSet_2456" = load { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }, { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-registry.eAdminSet, align 8 + %"$ud-registry.eAdminSet_fptr_2457" = extractvalue { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_2456", 0 + %"$ud-registry.eAdminSet_envptr_2458" = extractvalue { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_2456", 1 + %"$ud-registry.eAdminSet_address_2459" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.eAdminSet_address_2459", align 1 + %"$ud-registry.eAdminSet_call_2460" = call i8* %"$ud-registry.eAdminSet_fptr_2457"(i8* %"$ud-registry.eAdminSet_envptr_2458", [20 x i8]* %"$ud-registry.eAdminSet_address_2459", %TName_Bool* %isApproved), !dbg !263 + store i8* %"$ud-registry.eAdminSet_call_2460", i8** %e, align 8, !dbg !263 + %"$e_2461" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_2463" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2461") + %"$gasrem_2464" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2465" = icmp ugt i64 %"$_literal_cost_call_2463", %"$gasrem_2464" + br i1 %"$gascmp_2465", label %"$out_of_gas_2466", label %"$have_gas_2467" + +"$out_of_gas_2466": ; preds = %"$have_gas_2454" + call void @_out_of_gas() + br label %"$have_gas_2467" + +"$have_gas_2467": ; preds = %"$out_of_gas_2466", %"$have_gas_2454" + %"$consume_2468" = sub i64 %"$gasrem_2464", %"$_literal_cost_call_2463" + store i64 %"$consume_2468", i64* @_gasrem, align 8 + %"$execptr_load_2469" = load i8*, i8** @_execptr, align 8 + %"$e_2470" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_2469", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2470"), !dbg !264 + br label %"$matchsucc_2387" + +"$default_2391": ; preds = %"$have_gas_2385" + br label %"$joinp_4" -"$have_gas_2652": ; preds = %"$out_of_gas_2651", %entry - %"$consume_2653" = sub i64 %"$gasrem_2649", 1 - store i64 %"$consume_2653", i64* @_gasrem, align 8 - %empty = alloca %Map_ByStr32_ud-registry.Record*, align 8 - %"$gasrem_2654" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2655" = icmp ugt i64 1, %"$gasrem_2654" - br i1 %"$gascmp_2655", label %"$out_of_gas_2656", label %"$have_gas_2657" +"$joinp_4": ; preds = %"$default_2391" + br label %"$matchsucc_2387" -"$out_of_gas_2656": ; preds = %"$have_gas_2652" - call void @_out_of_gas() - br label %"$have_gas_2657" +"$matchsucc_2387": ; preds = %"$have_gas_2467", %"$joinp_4" + br label %"$matchsucc_2344" -"$have_gas_2657": ; preds = %"$out_of_gas_2656", %"$have_gas_2652" - %"$consume_2658" = sub i64 %"$gasrem_2654", 1 - store i64 %"$consume_2658", i64* @_gasrem, align 8 - %"$execptr_load_2659" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2660" = call i8* @_new_empty_map(i8* %"$execptr_load_2659") - %"$_new_empty_map_2661" = bitcast i8* %"$_new_empty_map_call_2660" to %Map_ByStr32_ud-registry.Record* - store %Map_ByStr32_ud-registry.Record* %"$_new_empty_map_2661", %Map_ByStr32_ud-registry.Record** %empty, align 8, !dbg !270 - %"$gasrem_2662" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2663" = icmp ugt i64 1, %"$gasrem_2662" - br i1 %"$gascmp_2663", label %"$out_of_gas_2664", label %"$have_gas_2665" +"$False_2471": ; preds = %"$have_gas_2342" + %"$isSenderAdmin_2472" = bitcast %TName_Bool* %"$isSenderAdmin_2345" to %CName_False* + %"$gasrem_2473" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2474" = icmp ugt i64 1, %"$gasrem_2473" + br i1 %"$gascmp_2474", label %"$out_of_gas_2475", label %"$have_gas_2476" -"$out_of_gas_2664": ; preds = %"$have_gas_2657" +"$out_of_gas_2475": ; preds = %"$False_2471" call void @_out_of_gas() - br label %"$have_gas_2665" + br label %"$have_gas_2476" -"$have_gas_2665": ; preds = %"$out_of_gas_2664", %"$have_gas_2657" - %"$consume_2666" = sub i64 %"$gasrem_2662", 1 - store i64 %"$consume_2666", i64* @_gasrem, align 8 - %rootRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_2667" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2668" = icmp ugt i64 1, %"$gasrem_2667" - br i1 %"$gascmp_2668", label %"$out_of_gas_2669", label %"$have_gas_2670" - -"$out_of_gas_2669": ; preds = %"$have_gas_2665" - call void @_out_of_gas() - br label %"$have_gas_2670" - -"$have_gas_2670": ; preds = %"$out_of_gas_2669", %"$have_gas_2665" - %"$consume_2671" = sub i64 %"$gasrem_2667", 1 - store i64 %"$consume_2671", i64* @_gasrem, align 8 - %"$initialOwner_2672" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 - %"$ud-registry.zeroByStr20_2673" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - %"$adtval_2674_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2674_salloc" = call i8* @_salloc(i8* %"$adtval_2674_load", i64 41) - %"$adtval_2674" = bitcast i8* %"$adtval_2674_salloc" to %CName_ud-registry.Record* - %"$adtgep_2675" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2674", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2675", align 1 - %"$adtgep_2676" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2674", i32 0, i32 1 - store [20 x i8] %"$initialOwner_2672", [20 x i8]* %"$adtgep_2676", align 1 - %"$adtgep_2677" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2674", i32 0, i32 2 - store [20 x i8] %"$ud-registry.zeroByStr20_2673", [20 x i8]* %"$adtgep_2677", align 1 - %"$adtptr_2678" = bitcast %CName_ud-registry.Record* %"$adtval_2674" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_2678", %TName_ud-registry.Record** %rootRecord, align 8, !dbg !271 - %"$empty_2679" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 - %"$$empty_2679_2680" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_2679" to i8* - %"$_lengthof_call_2681" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_325", i8* %"$$empty_2679_2680") - %"$gasadd_2682" = add i64 1, %"$_lengthof_call_2681" - %"$gasrem_2683" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2684" = icmp ugt i64 %"$gasadd_2682", %"$gasrem_2683" - br i1 %"$gascmp_2684", label %"$out_of_gas_2685", label %"$have_gas_2686" - -"$out_of_gas_2685": ; preds = %"$have_gas_2670" - call void @_out_of_gas() - br label %"$have_gas_2686" - -"$have_gas_2686": ; preds = %"$out_of_gas_2685", %"$have_gas_2670" - %"$consume_2687" = sub i64 %"$gasrem_2683", %"$gasadd_2682" - store i64 %"$consume_2687", i64* @_gasrem, align 8 - %"$execptr_load_2688" = load i8*, i8** @_execptr, align 8 - %"$empty_2689" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 - %"$$empty_2689_2690" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_2689" to i8* - %"$put_rootNode_2691" = alloca [32 x i8], align 1 - %"$rootNode_2692" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 - store [32 x i8] %"$rootNode_2692", [32 x i8]* %"$put_rootNode_2691", align 1 - %"$$put_rootNode_2691_2693" = bitcast [32 x i8]* %"$put_rootNode_2691" to i8* - %"$rootRecord_2694" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %rootRecord, align 8 - %"$$rootRecord_2694_2695" = bitcast %TName_ud-registry.Record* %"$rootRecord_2694" to i8* - %"$put_call_2696" = call i8* @_put(i8* %"$execptr_load_2688", %_TyDescrTy_Typ* @"$TyDescr_Map_325", i8* %"$$empty_2689_2690", i8* %"$$put_rootNode_2691_2693", i8* %"$$rootRecord_2694_2695"), !dbg !272 - %"$put_2697" = bitcast i8* %"$put_call_2696" to %Map_ByStr32_ud-registry.Record* - store %Map_ByStr32_ud-registry.Record* %"$put_2697", %Map_ByStr32_ud-registry.Record** %"$records_272", align 8, !dbg !272 - %"$execptr_load_2698" = load i8*, i8** @_execptr, align 8 - %"$$records_272_2700" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %"$records_272", align 8 - %"$update_value_2701" = bitcast %Map_ByStr32_ud-registry.Record* %"$$records_272_2700" to i8* - call void @_update_field(i8* %"$execptr_load_2698", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_2699", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 0, i8* null, i8* %"$update_value_2701"), !dbg !270 - %"$registrar_273" = alloca [20 x i8], align 1 - %"$gasrem_2702" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2703" = icmp ugt i64 1, %"$gasrem_2702" - br i1 %"$gascmp_2703", label %"$out_of_gas_2704", label %"$have_gas_2705" - -"$out_of_gas_2704": ; preds = %"$have_gas_2686" - call void @_out_of_gas() - br label %"$have_gas_2705" - -"$have_gas_2705": ; preds = %"$out_of_gas_2704", %"$have_gas_2686" - %"$consume_2706" = sub i64 %"$gasrem_2702", 1 - store i64 %"$consume_2706", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_2707" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_2707", [20 x i8]* %"$registrar_273", align 1, !dbg !273 - %"$execptr_load_2708" = load i8*, i8** @_execptr, align 8 - %"$$registrar_273_2710" = load [20 x i8], [20 x i8]* %"$registrar_273", align 1 - %"$update_value_2711" = alloca [20 x i8], align 1 - store [20 x i8] %"$$registrar_273_2710", [20 x i8]* %"$update_value_2711", align 1 - %"$update_value_2712" = bitcast [20 x i8]* %"$update_value_2711" to i8* - call void @_update_field(i8* %"$execptr_load_2708", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_2709", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i32 0, i8* null, i8* %"$update_value_2712"), !dbg !273 - %"$approvals_274" = alloca %Map_ByStr32_ByStr20*, align 8 - %"$gasrem_2713" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2714" = icmp ugt i64 1, %"$gasrem_2713" - br i1 %"$gascmp_2714", label %"$out_of_gas_2715", label %"$have_gas_2716" - -"$out_of_gas_2715": ; preds = %"$have_gas_2705" - call void @_out_of_gas() - br label %"$have_gas_2716" - -"$have_gas_2716": ; preds = %"$out_of_gas_2715", %"$have_gas_2705" - %"$consume_2717" = sub i64 %"$gasrem_2713", 1 - store i64 %"$consume_2717", i64* @_gasrem, align 8 - %"$execptr_load_2718" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2719" = call i8* @_new_empty_map(i8* %"$execptr_load_2718") - %"$_new_empty_map_2720" = bitcast i8* %"$_new_empty_map_call_2719" to %Map_ByStr32_ByStr20* - store %Map_ByStr32_ByStr20* %"$_new_empty_map_2720", %Map_ByStr32_ByStr20** %"$approvals_274", align 8, !dbg !274 - %"$execptr_load_2721" = load i8*, i8** @_execptr, align 8 - %"$$approvals_274_2723" = load %Map_ByStr32_ByStr20*, %Map_ByStr32_ByStr20** %"$approvals_274", align 8 - %"$update_value_2724" = bitcast %Map_ByStr32_ByStr20* %"$$approvals_274_2723" to i8* - call void @_update_field(i8* %"$execptr_load_2721", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_2722", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 0, i8* null, i8* %"$update_value_2724"), !dbg !274 - %"$operators_275" = alloca %"Map_ByStr20_List_(ByStr20)"*, align 8 - %"$gasrem_2725" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2726" = icmp ugt i64 1, %"$gasrem_2725" - br i1 %"$gascmp_2726", label %"$out_of_gas_2727", label %"$have_gas_2728" - -"$out_of_gas_2727": ; preds = %"$have_gas_2716" - call void @_out_of_gas() - br label %"$have_gas_2728" - -"$have_gas_2728": ; preds = %"$out_of_gas_2727", %"$have_gas_2716" - %"$consume_2729" = sub i64 %"$gasrem_2725", 1 - store i64 %"$consume_2729", i64* @_gasrem, align 8 - %"$execptr_load_2730" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2731" = call i8* @_new_empty_map(i8* %"$execptr_load_2730") - %"$_new_empty_map_2732" = bitcast i8* %"$_new_empty_map_call_2731" to %"Map_ByStr20_List_(ByStr20)"* - store %"Map_ByStr20_List_(ByStr20)"* %"$_new_empty_map_2732", %"Map_ByStr20_List_(ByStr20)"** %"$operators_275", align 8, !dbg !275 - %"$execptr_load_2733" = load i8*, i8** @_execptr, align 8 - %"$$operators_275_2735" = load %"Map_ByStr20_List_(ByStr20)"*, %"Map_ByStr20_List_(ByStr20)"** %"$operators_275", align 8 - %"$update_value_2736" = bitcast %"Map_ByStr20_List_(ByStr20)"* %"$$operators_275_2735" to i8* - call void @_update_field(i8* %"$execptr_load_2733", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_2734", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 0, i8* null, i8* %"$update_value_2736"), !dbg !275 - %"$admins_276" = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_2737" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2738" = icmp ugt i64 1, %"$gasrem_2737" - br i1 %"$gascmp_2738", label %"$out_of_gas_2739", label %"$have_gas_2740" +"$have_gas_2476": ; preds = %"$out_of_gas_2475", %"$False_2471" + %"$consume_2477" = sub i64 %"$gasrem_2473", 1 + store i64 %"$consume_2477", i64* @_gasrem, align 8 + %e1 = alloca i8*, align 8 + %"$gasrem_2478" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2479" = icmp ugt i64 1, %"$gasrem_2478" + br i1 %"$gascmp_2479", label %"$out_of_gas_2480", label %"$have_gas_2481" -"$out_of_gas_2739": ; preds = %"$have_gas_2728" +"$out_of_gas_2480": ; preds = %"$have_gas_2476" call void @_out_of_gas() - br label %"$have_gas_2740" + br label %"$have_gas_2481" -"$have_gas_2740": ; preds = %"$out_of_gas_2739", %"$have_gas_2728" - %"$consume_2741" = sub i64 %"$gasrem_2737", 1 - store i64 %"$consume_2741", i64* @_gasrem, align 8 - %"$initialOwner_2742" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 - %"$ud-registry.nilByStr20_2743" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 - %"$adtval_2744_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2744_salloc" = call i8* @_salloc(i8* %"$adtval_2744_load", i64 29) - %"$adtval_2744" = bitcast i8* %"$adtval_2744_salloc" to %CName_Cons_ByStr20* - %"$adtgep_2745" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2744", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2745", align 1 - %"$adtgep_2746" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2744", i32 0, i32 1 - store [20 x i8] %"$initialOwner_2742", [20 x i8]* %"$adtgep_2746", align 1 - %"$adtgep_2747" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2744", i32 0, i32 2 - store %TName_List_ByStr20* %"$ud-registry.nilByStr20_2743", %TName_List_ByStr20** %"$adtgep_2747", align 8 - %"$adtptr_2748" = bitcast %CName_Cons_ByStr20* %"$adtval_2744" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_2748", %TName_List_ByStr20** %"$admins_276", align 8, !dbg !276 - %"$execptr_load_2749" = load i8*, i8** @_execptr, align 8 - %"$$admins_276_2751" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$admins_276", align 8 - %"$update_value_2752" = bitcast %TName_List_ByStr20* %"$$admins_276_2751" to i8* - call void @_update_field(i8* %"$execptr_load_2749", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2750", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i32 0, i8* null, i8* %"$update_value_2752"), !dbg !276 +"$have_gas_2481": ; preds = %"$out_of_gas_2480", %"$have_gas_2476" + %"$consume_2482" = sub i64 %"$gasrem_2478", 1 + store i64 %"$consume_2482", i64* @_gasrem, align 8 + %m = alloca %String, align 8 + %"$gasrem_2483" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2484" = icmp ugt i64 1, %"$gasrem_2483" + br i1 %"$gascmp_2484", label %"$out_of_gas_2485", label %"$have_gas_2486" + +"$out_of_gas_2485": ; preds = %"$have_gas_2481" + call void @_out_of_gas() + br label %"$have_gas_2486" + +"$have_gas_2486": ; preds = %"$out_of_gas_2485", %"$have_gas_2481" + %"$consume_2487" = sub i64 %"$gasrem_2483", 1 + store i64 %"$consume_2487", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_2488", i32 0, i32 0), i32 26 }, %String* %m, align 8, !dbg !265 + %"$gasrem_2489" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2490" = icmp ugt i64 1, %"$gasrem_2489" + br i1 %"$gascmp_2490", label %"$out_of_gas_2491", label %"$have_gas_2492" + +"$out_of_gas_2491": ; preds = %"$have_gas_2486" + call void @_out_of_gas() + br label %"$have_gas_2492" + +"$have_gas_2492": ; preds = %"$out_of_gas_2491", %"$have_gas_2486" + %"$consume_2493" = sub i64 %"$gasrem_2489", 1 + store i64 %"$consume_2493", i64* @_gasrem, align 8 + %"$ud-registry.eError_37" = alloca i8*, align 8 + %"$ud-registry.eError_2494" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_2495" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2494", 0 + %"$ud-registry.eError_envptr_2496" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2494", 1 + %"$m_2497" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_2498" = call i8* %"$ud-registry.eError_fptr_2495"(i8* %"$ud-registry.eError_envptr_2496", %String %"$m_2497"), !dbg !267 + store i8* %"$ud-registry.eError_call_2498", i8** %"$ud-registry.eError_37", align 8, !dbg !267 + %"$$ud-registry.eError_37_2499" = load i8*, i8** %"$ud-registry.eError_37", align 8 + store i8* %"$$ud-registry.eError_37_2499", i8** %e1, align 8, !dbg !267 + %"$e_2500" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_2502" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2500") + %"$gasrem_2503" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2504" = icmp ugt i64 %"$_literal_cost_call_2502", %"$gasrem_2503" + br i1 %"$gascmp_2504", label %"$out_of_gas_2505", label %"$have_gas_2506" + +"$out_of_gas_2505": ; preds = %"$have_gas_2492" + call void @_out_of_gas() + br label %"$have_gas_2506" + +"$have_gas_2506": ; preds = %"$out_of_gas_2505", %"$have_gas_2492" + %"$consume_2507" = sub i64 %"$gasrem_2503", %"$_literal_cost_call_2502" + store i64 %"$consume_2507", i64* @_gasrem, align 8 + %"$execptr_load_2508" = load i8*, i8** @_execptr, align 8 + %"$e_2509" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_2508", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2509"), !dbg !268 + br label %"$matchsucc_2344" + +"$empty_default_2348": ; preds = %"$have_gas_2342" + br label %"$matchsucc_2344" + +"$matchsucc_2344": ; preds = %"$have_gas_2506", %"$matchsucc_2387", %"$empty_default_2348" ret void } -declare i8* @_new_empty_map(i8*) - -declare i64 @_lengthof(%_TyDescrTy_Typ*, i8*) +declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) -declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) +declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) -declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) +define void @setAdmin(i8* %0) !dbg !269 { +entry: + %"$_amount_2511" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2512" = bitcast i8* %"$_amount_2511" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2512", align 8 + %"$_origin_2513" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2514" = bitcast i8* %"$_origin_2513" to [20 x i8]* + %"$_sender_2515" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2516" = bitcast i8* %"$_sender_2515" to [20 x i8]* + %"$address_2517" = getelementptr i8, i8* %0, i32 56 + %"$address_2518" = bitcast i8* %"$address_2517" to [20 x i8]* + %"$isApproved_2519" = getelementptr i8, i8* %0, i32 76 + %"$isApproved_2520" = bitcast i8* %"$isApproved_2519" to %TName_Bool** + %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_2520", align 8 + call void @"$setAdmin_2306"(%Uint128 %_amount, [20 x i8]* %"$_origin_2514", [20 x i8]* %"$_sender_2516", [20 x i8]* %"$address_2518", %TName_Bool* %isApproved), !dbg !270 + ret void +} -define internal void @"$setAdmin_2753"(%Uint128 %_amount, [20 x i8]* %"$_origin_2754", [20 x i8]* %"$_sender_2755", [20 x i8]* %"$address_2756", %TName_Bool* %isApproved) !dbg !277 { +define internal void @"$approve_2521"(%Uint128 %_amount, [20 x i8]* %"$_origin_2522", [20 x i8]* %"$_sender_2523", [32 x i8]* %"$node_2524", [20 x i8]* %"$address_2525") !dbg !271 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2754", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2755", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_2756", align 1 - %currentAdmins = alloca %TName_List_ByStr20*, align 8 - %"$execptr_load_2758" = load i8*, i8** @_execptr, align 8 - %"$currentAdmins_call_2759" = call i8* @_fetch_field(i8* %"$execptr_load_2758", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2757", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i32 0, i8* null, i32 1), !dbg !278 - %"$currentAdmins_2760" = bitcast i8* %"$currentAdmins_call_2759" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$currentAdmins_2760", %TName_List_ByStr20** %currentAdmins, align 8 - %"$currentAdmins_2761" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$$currentAdmins_2761_2762" = bitcast %TName_List_ByStr20* %"$currentAdmins_2761" to i8* - %"$_literal_cost_call_2763" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i8* %"$$currentAdmins_2761_2762") - %"$gasadd_2764" = add i64 %"$_literal_cost_call_2763", 0 - %"$gasrem_2765" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2766" = icmp ugt i64 %"$gasadd_2764", %"$gasrem_2765" - br i1 %"$gascmp_2766", label %"$out_of_gas_2767", label %"$have_gas_2768" - -"$out_of_gas_2767": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2768" - -"$have_gas_2768": ; preds = %"$out_of_gas_2767", %entry - %"$consume_2769" = sub i64 %"$gasrem_2765", %"$gasadd_2764" - store i64 %"$consume_2769", i64* @_gasrem, align 8 - %"$gasrem_2770" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2771" = icmp ugt i64 1, %"$gasrem_2770" - br i1 %"$gascmp_2771", label %"$out_of_gas_2772", label %"$have_gas_2773" - -"$out_of_gas_2772": ; preds = %"$have_gas_2768" - call void @_out_of_gas() - br label %"$have_gas_2773" - -"$have_gas_2773": ; preds = %"$out_of_gas_2772", %"$have_gas_2768" - %"$consume_2774" = sub i64 %"$gasrem_2770", 1 - store i64 %"$consume_2774", i64* @_gasrem, align 8 - %isSenderAdmin = alloca %TName_Bool*, align 8 - %"$gasrem_2775" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2776" = icmp ugt i64 1, %"$gasrem_2775" - br i1 %"$gascmp_2776", label %"$out_of_gas_2777", label %"$have_gas_2778" - -"$out_of_gas_2777": ; preds = %"$have_gas_2773" - call void @_out_of_gas() - br label %"$have_gas_2778" - -"$have_gas_2778": ; preds = %"$out_of_gas_2777", %"$have_gas_2773" - %"$consume_2779" = sub i64 %"$gasrem_2775", 1 - store i64 %"$consume_2779", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Contains_54" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_2780" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8 - %"$ud-registry.listByStr20Contains_fptr_2781" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2780", 0 - %"$ud-registry.listByStr20Contains_envptr_2782" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2780", 1 - %"$currentAdmins_2783" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Contains_call_2784" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_2781"(i8* %"$ud-registry.listByStr20Contains_envptr_2782", %TName_List_ByStr20* %"$currentAdmins_2783"), !dbg !279 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_2784", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_54", align 8, !dbg !279 - %"$ud-registry.listByStr20Contains_55" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_54_2785" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_54", align 8 - %"$$ud-registry.listByStr20Contains_54_fptr_2786" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_54_2785", 0 - %"$$ud-registry.listByStr20Contains_54_envptr_2787" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_54_2785", 1 - %"$$ud-registry.listByStr20Contains_54__sender_2788" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_54__sender_2788", align 1 - %"$$ud-registry.listByStr20Contains_54_call_2789" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_54_fptr_2786"(i8* %"$$ud-registry.listByStr20Contains_54_envptr_2787", [20 x i8]* %"$$ud-registry.listByStr20Contains_54__sender_2788"), !dbg !279 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_54_call_2789", %TName_Bool** %"$ud-registry.listByStr20Contains_55", align 8, !dbg !279 - %"$$ud-registry.listByStr20Contains_55_2790" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_55", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_55_2790", %TName_Bool** %isSenderAdmin, align 8, !dbg !279 - %"$gasrem_2791" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2792" = icmp ugt i64 2, %"$gasrem_2791" - br i1 %"$gascmp_2792", label %"$out_of_gas_2793", label %"$have_gas_2794" - -"$out_of_gas_2793": ; preds = %"$have_gas_2778" - call void @_out_of_gas() - br label %"$have_gas_2794" - -"$have_gas_2794": ; preds = %"$out_of_gas_2793", %"$have_gas_2778" - %"$consume_2795" = sub i64 %"$gasrem_2791", 2 - store i64 %"$consume_2795", i64* @_gasrem, align 8 - %"$isSenderAdmin_2797" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$isSenderAdmin_tag_2798" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_2797", i32 0, i32 0 - %"$isSenderAdmin_tag_2799" = load i8, i8* %"$isSenderAdmin_tag_2798", align 1 - switch i8 %"$isSenderAdmin_tag_2799", label %"$empty_default_2800" [ - i8 0, label %"$True_2801" - i8 1, label %"$False_2943" - ], !dbg !280 - -"$True_2801": ; preds = %"$have_gas_2794" - %"$isSenderAdmin_2802" = bitcast %TName_Bool* %"$isSenderAdmin_2797" to %CName_True* - %"$gasrem_2803" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2804" = icmp ugt i64 1, %"$gasrem_2803" - br i1 %"$gascmp_2804", label %"$out_of_gas_2805", label %"$have_gas_2806" - -"$out_of_gas_2805": ; preds = %"$True_2801" - call void @_out_of_gas() - br label %"$have_gas_2806" - -"$have_gas_2806": ; preds = %"$out_of_gas_2805", %"$True_2801" - %"$consume_2807" = sub i64 %"$gasrem_2803", 1 - store i64 %"$consume_2807", i64* @_gasrem, align 8 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2522", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2523", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_2524", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_2525", align 1 + %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 + %"$indices_buf_2526_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2526_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2526_salloc_load", i64 32) + %"$indices_buf_2526_salloc" = bitcast i8* %"$indices_buf_2526_salloc_salloc" to [32 x i8]* + %"$indices_buf_2526" = bitcast [32 x i8]* %"$indices_buf_2526_salloc" to i8* + %"$indices_gep_2527" = getelementptr i8, i8* %"$indices_buf_2526", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2527" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 + %"$execptr_load_2529" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_2530" = call i8* @_fetch_field(i8* %"$execptr_load_2529", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_2528", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_2526", i32 1), !dbg !272 + %"$maybeRecord_2531" = bitcast i8* %"$maybeRecord_call_2530" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_2531", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_2532" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_2532_2533" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_2532" to i8* + %"$_literal_cost_call_2534" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_2532_2533") + %"$gasadd_2535" = add i64 %"$_literal_cost_call_2534", 0 + %"$gasadd_2536" = add i64 %"$gasadd_2535", 1 + %"$gasrem_2537" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2538" = icmp ugt i64 %"$gasadd_2536", %"$gasrem_2537" + br i1 %"$gascmp_2538", label %"$out_of_gas_2539", label %"$have_gas_2540" + +"$out_of_gas_2539": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2540" + +"$have_gas_2540": ; preds = %"$out_of_gas_2539", %entry + %"$consume_2541" = sub i64 %"$gasrem_2537", %"$gasadd_2536" + store i64 %"$consume_2541", i64* @_gasrem, align 8 + %"$gasrem_2542" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2543" = icmp ugt i64 1, %"$gasrem_2542" + br i1 %"$gascmp_2543", label %"$out_of_gas_2544", label %"$have_gas_2545" + +"$out_of_gas_2544": ; preds = %"$have_gas_2540" + call void @_out_of_gas() + br label %"$have_gas_2545" + +"$have_gas_2545": ; preds = %"$out_of_gas_2544", %"$have_gas_2540" + %"$consume_2546" = sub i64 %"$gasrem_2542", 1 + store i64 %"$consume_2546", i64* @_gasrem, align 8 + %recordOwner = alloca [20 x i8], align 1 + %"$gasrem_2547" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2548" = icmp ugt i64 1, %"$gasrem_2547" + br i1 %"$gascmp_2548", label %"$out_of_gas_2549", label %"$have_gas_2550" + +"$out_of_gas_2549": ; preds = %"$have_gas_2545" + call void @_out_of_gas() + br label %"$have_gas_2550" + +"$have_gas_2550": ; preds = %"$out_of_gas_2549", %"$have_gas_2545" + %"$consume_2551" = sub i64 %"$gasrem_2547", 1 + store i64 %"$consume_2551", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_38" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_2552" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_2553" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_2552", 0 + %"$ud-registry.recordMemberOwner_envptr_2554" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_2552", 1 + %"$maybeRecord_2555" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_2556" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_2553"(i8* %"$ud-registry.recordMemberOwner_envptr_2554", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_2556", %TName_Option_ud-registry.Record* %"$maybeRecord_2555"), !dbg !273 + %"$ud-registry.recordMemberOwner_ret_2557" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_2556", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_2557", [20 x i8]* %"$ud-registry.recordMemberOwner_38", align 1, !dbg !273 + %"$$ud-registry.recordMemberOwner_38_2558" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_38", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_38_2558", [20 x i8]* %recordOwner, align 1, !dbg !273 + %"$gasrem_2559" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2560" = icmp ugt i64 1, %"$gasrem_2559" + br i1 %"$gascmp_2560", label %"$out_of_gas_2561", label %"$have_gas_2562" + +"$out_of_gas_2561": ; preds = %"$have_gas_2550" + call void @_out_of_gas() + br label %"$have_gas_2562" + +"$have_gas_2562": ; preds = %"$out_of_gas_2561", %"$have_gas_2550" + %"$consume_2563" = sub i64 %"$gasrem_2559", 1 + store i64 %"$consume_2563", i64* @_gasrem, align 8 + %isSenderNodeOwner = alloca %TName_Bool*, align 8 + %"$gasrem_2564" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2565" = icmp ugt i64 20, %"$gasrem_2564" + br i1 %"$gascmp_2565", label %"$out_of_gas_2566", label %"$have_gas_2567" + +"$out_of_gas_2566": ; preds = %"$have_gas_2562" + call void @_out_of_gas() + br label %"$have_gas_2567" + +"$have_gas_2567": ; preds = %"$out_of_gas_2566", %"$have_gas_2562" + %"$consume_2568" = sub i64 %"$gasrem_2564", 20 + store i64 %"$consume_2568", i64* @_gasrem, align 8 + %"$execptr_load_2569" = load i8*, i8** @_execptr, align 8 + %"$eq__sender_2570" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_2570", align 1 + %"$$eq__sender_2570_2571" = bitcast [20 x i8]* %"$eq__sender_2570" to i8* + %"$eq_recordOwner_2572" = alloca [20 x i8], align 1 + %"$recordOwner_2573" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_2573", [20 x i8]* %"$eq_recordOwner_2572", align 1 + %"$$eq_recordOwner_2572_2574" = bitcast [20 x i8]* %"$eq_recordOwner_2572" to i8* + %"$eq_call_2575" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_2569", i32 20, i8* %"$$eq__sender_2570_2571", i8* %"$$eq_recordOwner_2572_2574"), !dbg !274 + store %TName_Bool* %"$eq_call_2575", %TName_Bool** %isSenderNodeOwner, align 8, !dbg !274 + %"$gasrem_2577" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2578" = icmp ugt i64 2, %"$gasrem_2577" + br i1 %"$gascmp_2578", label %"$out_of_gas_2579", label %"$have_gas_2580" + +"$out_of_gas_2579": ; preds = %"$have_gas_2567" + call void @_out_of_gas() + br label %"$have_gas_2580" + +"$have_gas_2580": ; preds = %"$out_of_gas_2579", %"$have_gas_2567" + %"$consume_2581" = sub i64 %"$gasrem_2577", 2 + store i64 %"$consume_2581", i64* @_gasrem, align 8 + %"$isSenderNodeOwner_2583" = load %TName_Bool*, %TName_Bool** %isSenderNodeOwner, align 8 + %"$isSenderNodeOwner_tag_2584" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderNodeOwner_2583", i32 0, i32 0 + %"$isSenderNodeOwner_tag_2585" = load i8, i8* %"$isSenderNodeOwner_tag_2584", align 1 + switch i8 %"$isSenderNodeOwner_tag_2585", label %"$empty_default_2586" [ + i8 0, label %"$True_2587" + i8 1, label %"$False_2725" + ], !dbg !275 + +"$True_2587": ; preds = %"$have_gas_2580" + %"$isSenderNodeOwner_2588" = bitcast %TName_Bool* %"$isSenderNodeOwner_2583" to %CName_True* + %maybeApproved = alloca %TName_Option_ByStr20*, align 8 + %"$indices_buf_2589_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2589_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2589_salloc_load", i64 32) + %"$indices_buf_2589_salloc" = bitcast i8* %"$indices_buf_2589_salloc_salloc" to [32 x i8]* + %"$indices_buf_2589" = bitcast [32 x i8]* %"$indices_buf_2589_salloc" to i8* + %"$indices_gep_2590" = getelementptr i8, i8* %"$indices_buf_2589", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_2590" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 + %"$execptr_load_2592" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_2593" = call i8* @_fetch_field(i8* %"$execptr_load_2592", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_2591", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_2589", i32 1), !dbg !276 + %"$maybeApproved_2594" = bitcast i8* %"$maybeApproved_call_2593" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_2594", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_2595" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_2595_2596" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2595" to i8* + %"$_literal_cost_call_2597" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_2595_2596") + %"$gasadd_2598" = add i64 %"$_literal_cost_call_2597", 0 + %"$gasadd_2599" = add i64 %"$gasadd_2598", 1 + %"$gasrem_2600" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2601" = icmp ugt i64 %"$gasadd_2599", %"$gasrem_2600" + br i1 %"$gascmp_2601", label %"$out_of_gas_2602", label %"$have_gas_2603" + +"$out_of_gas_2602": ; preds = %"$True_2587" + call void @_out_of_gas() + br label %"$have_gas_2603" + +"$have_gas_2603": ; preds = %"$out_of_gas_2602", %"$True_2587" + %"$consume_2604" = sub i64 %"$gasrem_2600", %"$gasadd_2599" + store i64 %"$consume_2604", i64* @_gasrem, align 8 + %"$gasrem_2605" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2606" = icmp ugt i64 1, %"$gasrem_2605" + br i1 %"$gascmp_2606", label %"$out_of_gas_2607", label %"$have_gas_2608" + +"$out_of_gas_2607": ; preds = %"$have_gas_2603" + call void @_out_of_gas() + br label %"$have_gas_2608" + +"$have_gas_2608": ; preds = %"$out_of_gas_2607", %"$have_gas_2603" + %"$consume_2609" = sub i64 %"$gasrem_2605", 1 + store i64 %"$consume_2609", i64* @_gasrem, align 8 + %currentlyApproved = alloca [20 x i8], align 1 + %"$gasrem_2610" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2611" = icmp ugt i64 2, %"$gasrem_2610" + br i1 %"$gascmp_2611", label %"$out_of_gas_2612", label %"$have_gas_2613" + +"$out_of_gas_2612": ; preds = %"$have_gas_2608" + call void @_out_of_gas() + br label %"$have_gas_2613" + +"$have_gas_2613": ; preds = %"$out_of_gas_2612", %"$have_gas_2608" + %"$consume_2614" = sub i64 %"$gasrem_2610", 2 + store i64 %"$consume_2614", i64* @_gasrem, align 8 + %"$maybeApproved_2616" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_tag_2617" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_2616", i32 0, i32 0 + %"$maybeApproved_tag_2618" = load i8, i8* %"$maybeApproved_tag_2617", align 1 + switch i8 %"$maybeApproved_tag_2618", label %"$empty_default_2619" [ + i8 1, label %"$None_2620" + i8 0, label %"$Some_2628" + ], !dbg !279 + +"$None_2620": ; preds = %"$have_gas_2613" + %"$maybeApproved_2621" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2616" to %CName_None_ByStr20* + %"$gasrem_2622" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2623" = icmp ugt i64 1, %"$gasrem_2622" + br i1 %"$gascmp_2623", label %"$out_of_gas_2624", label %"$have_gas_2625" + +"$out_of_gas_2624": ; preds = %"$None_2620" + call void @_out_of_gas() + br label %"$have_gas_2625" + +"$have_gas_2625": ; preds = %"$out_of_gas_2624", %"$None_2620" + %"$consume_2626" = sub i64 %"$gasrem_2622", 1 + store i64 %"$consume_2626", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_2627" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_2627", [20 x i8]* %currentlyApproved, align 1, !dbg !280 + br label %"$matchsucc_2615" + +"$Some_2628": ; preds = %"$have_gas_2613" + %"$maybeApproved_2629" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2616" to %CName_Some_ByStr20* + %"$approved_gep_2630" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_2629", i32 0, i32 1 + %"$approved_load_2631" = load [20 x i8], [20 x i8]* %"$approved_gep_2630", align 1 + %approved = alloca [20 x i8], align 1 + store [20 x i8] %"$approved_load_2631", [20 x i8]* %approved, align 1 + %"$gasrem_2632" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2633" = icmp ugt i64 1, %"$gasrem_2632" + br i1 %"$gascmp_2633", label %"$out_of_gas_2634", label %"$have_gas_2635" + +"$out_of_gas_2634": ; preds = %"$Some_2628" + call void @_out_of_gas() + br label %"$have_gas_2635" + +"$have_gas_2635": ; preds = %"$out_of_gas_2634", %"$Some_2628" + %"$consume_2636" = sub i64 %"$gasrem_2632", 1 + store i64 %"$consume_2636", i64* @_gasrem, align 8 + %"$approved_2637" = load [20 x i8], [20 x i8]* %approved, align 1 + store [20 x i8] %"$approved_2637", [20 x i8]* %currentlyApproved, align 1, !dbg !283 + br label %"$matchsucc_2615" + +"$empty_default_2619": ; preds = %"$have_gas_2613" + br label %"$matchsucc_2615" + +"$matchsucc_2615": ; preds = %"$have_gas_2635", %"$have_gas_2625", %"$empty_default_2619" + %"$gasrem_2638" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2639" = icmp ugt i64 1, %"$gasrem_2638" + br i1 %"$gascmp_2639", label %"$out_of_gas_2640", label %"$have_gas_2641" + +"$out_of_gas_2640": ; preds = %"$matchsucc_2615" + call void @_out_of_gas() + br label %"$have_gas_2641" + +"$have_gas_2641": ; preds = %"$out_of_gas_2640", %"$matchsucc_2615" + %"$consume_2642" = sub i64 %"$gasrem_2638", 1 + store i64 %"$consume_2642", i64* @_gasrem, align 8 %needsToChange = alloca %TName_Bool*, align 8 - %"$gasrem_2808" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2809" = icmp ugt i64 1, %"$gasrem_2808" - br i1 %"$gascmp_2809", label %"$out_of_gas_2810", label %"$have_gas_2811" + %"$gasrem_2643" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2644" = icmp ugt i64 1, %"$gasrem_2643" + br i1 %"$gascmp_2644", label %"$out_of_gas_2645", label %"$have_gas_2646" -"$out_of_gas_2810": ; preds = %"$have_gas_2806" +"$out_of_gas_2645": ; preds = %"$have_gas_2641" call void @_out_of_gas() - br label %"$have_gas_2811" + br label %"$have_gas_2646" -"$have_gas_2811": ; preds = %"$out_of_gas_2810", %"$have_gas_2806" - %"$consume_2812" = sub i64 %"$gasrem_2808", 1 - store i64 %"$consume_2812", i64* @_gasrem, align 8 +"$have_gas_2646": ; preds = %"$out_of_gas_2645", %"$have_gas_2641" + %"$consume_2647" = sub i64 %"$gasrem_2643", 1 + store i64 %"$consume_2647", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_2813" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2814" = icmp ugt i64 1, %"$gasrem_2813" - br i1 %"$gascmp_2814", label %"$out_of_gas_2815", label %"$have_gas_2816" - -"$out_of_gas_2815": ; preds = %"$have_gas_2811" - call void @_out_of_gas() - br label %"$have_gas_2816" - -"$have_gas_2816": ; preds = %"$out_of_gas_2815", %"$have_gas_2811" - %"$consume_2817" = sub i64 %"$gasrem_2813", 1 - store i64 %"$consume_2817", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Excludes_49" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Excludes_2818" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Excludes, align 8 - %"$ud-registry.listByStr20Excludes_fptr_2819" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_2818", 0 - %"$ud-registry.listByStr20Excludes_envptr_2820" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_2818", 1 - %"$currentAdmins_2821" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Excludes_call_2822" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_fptr_2819"(i8* %"$ud-registry.listByStr20Excludes_envptr_2820", %TName_List_ByStr20* %"$currentAdmins_2821"), !dbg !281 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_call_2822", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_49", align 8, !dbg !281 - %"$ud-registry.listByStr20Excludes_50" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Excludes_49_2823" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_49", align 8 - %"$$ud-registry.listByStr20Excludes_49_fptr_2824" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_49_2823", 0 - %"$$ud-registry.listByStr20Excludes_49_envptr_2825" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_49_2823", 1 - %"$$ud-registry.listByStr20Excludes_49_address_2826" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20Excludes_49_address_2826", align 1 - %"$$ud-registry.listByStr20Excludes_49_call_2827" = call %TName_Bool* %"$$ud-registry.listByStr20Excludes_49_fptr_2824"(i8* %"$$ud-registry.listByStr20Excludes_49_envptr_2825", [20 x i8]* %"$$ud-registry.listByStr20Excludes_49_address_2826"), !dbg !281 - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_49_call_2827", %TName_Bool** %"$ud-registry.listByStr20Excludes_50", align 8, !dbg !281 - %"$$ud-registry.listByStr20Excludes_50_2828" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Excludes_50", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_50_2828", %TName_Bool** %b, align 8, !dbg !281 - %"$gasrem_2829" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2830" = icmp ugt i64 1, %"$gasrem_2829" - br i1 %"$gascmp_2830", label %"$out_of_gas_2831", label %"$have_gas_2832" - -"$out_of_gas_2831": ; preds = %"$have_gas_2816" - call void @_out_of_gas() - br label %"$have_gas_2832" - -"$have_gas_2832": ; preds = %"$out_of_gas_2831", %"$have_gas_2816" - %"$consume_2833" = sub i64 %"$gasrem_2829", 1 - store i64 %"$consume_2833", i64* @_gasrem, align 8 - %"$ud-registry.xandb_51" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-registry.xandb_2834" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8 - %"$ud-registry.xandb_fptr_2835" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2834", 0 - %"$ud-registry.xandb_envptr_2836" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2834", 1 - %"$b_2837" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$ud-registry.xandb_call_2838" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_fptr_2835"(i8* %"$ud-registry.xandb_envptr_2836", %TName_Bool* %"$b_2837"), !dbg !284 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_call_2838", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_51", align 8, !dbg !284 - %"$ud-registry.xandb_52" = alloca %TName_Bool*, align 8 - %"$$ud-registry.xandb_51_2839" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_51", align 8 - %"$$ud-registry.xandb_51_fptr_2840" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_51_2839", 0 - %"$$ud-registry.xandb_51_envptr_2841" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_51_2839", 1 - %"$$ud-registry.xandb_51_call_2842" = call %TName_Bool* %"$$ud-registry.xandb_51_fptr_2840"(i8* %"$$ud-registry.xandb_51_envptr_2841", %TName_Bool* %isApproved), !dbg !284 - store %TName_Bool* %"$$ud-registry.xandb_51_call_2842", %TName_Bool** %"$ud-registry.xandb_52", align 8, !dbg !284 - %"$$ud-registry.xandb_52_2843" = load %TName_Bool*, %TName_Bool** %"$ud-registry.xandb_52", align 8 - store %TName_Bool* %"$$ud-registry.xandb_52_2843", %TName_Bool** %needsToChange, align 8, !dbg !284 - %"$gasrem_2844" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2845" = icmp ugt i64 2, %"$gasrem_2844" - br i1 %"$gascmp_2845", label %"$out_of_gas_2846", label %"$have_gas_2847" - -"$out_of_gas_2846": ; preds = %"$have_gas_2832" - call void @_out_of_gas() - br label %"$have_gas_2847" - -"$have_gas_2847": ; preds = %"$out_of_gas_2846", %"$have_gas_2832" - %"$consume_2848" = sub i64 %"$gasrem_2844", 2 - store i64 %"$consume_2848", i64* @_gasrem, align 8 - %"$needsToChange_2850" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 - %"$needsToChange_tag_2851" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_2850", i32 0, i32 0 - %"$needsToChange_tag_2852" = load i8, i8* %"$needsToChange_tag_2851", align 1 - switch i8 %"$needsToChange_tag_2852", label %"$default_2853" [ - i8 0, label %"$True_2854" - ], !dbg !285 - -"$True_2854": ; preds = %"$have_gas_2847" - %"$needsToChange_2855" = bitcast %TName_Bool* %"$needsToChange_2850" to %CName_True* - %"$gasrem_2856" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2857" = icmp ugt i64 1, %"$gasrem_2856" - br i1 %"$gascmp_2857", label %"$out_of_gas_2858", label %"$have_gas_2859" - -"$out_of_gas_2858": ; preds = %"$True_2854" - call void @_out_of_gas() - br label %"$have_gas_2859" - -"$have_gas_2859": ; preds = %"$out_of_gas_2858", %"$True_2854" - %"$consume_2860" = sub i64 %"$gasrem_2856", 1 - store i64 %"$consume_2860", i64* @_gasrem, align 8 - %newAdmins = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_2861" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2862" = icmp ugt i64 2, %"$gasrem_2861" - br i1 %"$gascmp_2862", label %"$out_of_gas_2863", label %"$have_gas_2864" - -"$out_of_gas_2863": ; preds = %"$have_gas_2859" - call void @_out_of_gas() - br label %"$have_gas_2864" - -"$have_gas_2864": ; preds = %"$out_of_gas_2863", %"$have_gas_2859" - %"$consume_2865" = sub i64 %"$gasrem_2861", 2 - store i64 %"$consume_2865", i64* @_gasrem, align 8 - %"$isApproved_tag_2867" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 - %"$isApproved_tag_2868" = load i8, i8* %"$isApproved_tag_2867", align 1 - switch i8 %"$isApproved_tag_2868", label %"$empty_default_2869" [ - i8 0, label %"$True_2870" - i8 1, label %"$False_2883" - ], !dbg !286 - -"$True_2870": ; preds = %"$have_gas_2864" - %"$isApproved_2871" = bitcast %TName_Bool* %isApproved to %CName_True* - %"$gasrem_2872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2873" = icmp ugt i64 1, %"$gasrem_2872" - br i1 %"$gascmp_2873", label %"$out_of_gas_2874", label %"$have_gas_2875" - -"$out_of_gas_2874": ; preds = %"$True_2870" - call void @_out_of_gas() - br label %"$have_gas_2875" - -"$have_gas_2875": ; preds = %"$out_of_gas_2874", %"$True_2870" - %"$consume_2876" = sub i64 %"$gasrem_2872", 1 - store i64 %"$consume_2876", i64* @_gasrem, align 8 - %"$currentAdmins_2877" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$adtval_2878_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2878_salloc" = call i8* @_salloc(i8* %"$adtval_2878_load", i64 29) - %"$adtval_2878" = bitcast i8* %"$adtval_2878_salloc" to %CName_Cons_ByStr20* - %"$adtgep_2879" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2878", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2879", align 1 - %"$adtgep_2880" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2878", i32 0, i32 1 - store [20 x i8] %address, [20 x i8]* %"$adtgep_2880", align 1 - %"$adtgep_2881" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2878", i32 0, i32 2 - store %TName_List_ByStr20* %"$currentAdmins_2877", %TName_List_ByStr20** %"$adtgep_2881", align 8 - %"$adtptr_2882" = bitcast %CName_Cons_ByStr20* %"$adtval_2878" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_2882", %TName_List_ByStr20** %newAdmins, align 8, !dbg !289 - br label %"$matchsucc_2866" - -"$False_2883": ; preds = %"$have_gas_2864" - %"$isApproved_2884" = bitcast %TName_Bool* %isApproved to %CName_False* - %"$gasrem_2885" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2886" = icmp ugt i64 1, %"$gasrem_2885" - br i1 %"$gascmp_2886", label %"$out_of_gas_2887", label %"$have_gas_2888" - -"$out_of_gas_2887": ; preds = %"$False_2883" - call void @_out_of_gas() - br label %"$have_gas_2888" - -"$have_gas_2888": ; preds = %"$out_of_gas_2887", %"$False_2883" - %"$consume_2889" = sub i64 %"$gasrem_2885", 1 - store i64 %"$consume_2889", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20FilterOut_47" = alloca { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20FilterOut_2890" = load { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8 - %"$ud-registry.listByStr20FilterOut_fptr_2891" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_2890", 0 - %"$ud-registry.listByStr20FilterOut_envptr_2892" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_2890", 1 - %"$currentAdmins_2893" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20FilterOut_call_2894" = call { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_fptr_2891"(i8* %"$ud-registry.listByStr20FilterOut_envptr_2892", %TName_List_ByStr20* %"$currentAdmins_2893"), !dbg !292 - store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_call_2894", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_47", align 8, !dbg !292 - %"$ud-registry.listByStr20FilterOut_48" = alloca %TName_List_ByStr20*, align 8 - %"$$ud-registry.listByStr20FilterOut_47_2895" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_47", align 8 - %"$$ud-registry.listByStr20FilterOut_47_fptr_2896" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_47_2895", 0 - %"$$ud-registry.listByStr20FilterOut_47_envptr_2897" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_47_2895", 1 - %"$$ud-registry.listByStr20FilterOut_47_address_2898" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20FilterOut_47_address_2898", align 1 - %"$$ud-registry.listByStr20FilterOut_47_call_2899" = call %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_47_fptr_2896"(i8* %"$$ud-registry.listByStr20FilterOut_47_envptr_2897", [20 x i8]* %"$$ud-registry.listByStr20FilterOut_47_address_2898"), !dbg !292 - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_47_call_2899", %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_48", align 8, !dbg !292 - %"$$ud-registry.listByStr20FilterOut_48_2900" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_48", align 8 - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_48_2900", %TName_List_ByStr20** %newAdmins, align 8, !dbg !292 - br label %"$matchsucc_2866" - -"$empty_default_2869": ; preds = %"$have_gas_2864" - br label %"$matchsucc_2866" - -"$matchsucc_2866": ; preds = %"$have_gas_2888", %"$have_gas_2875", %"$empty_default_2869" - %"$newAdmins_2901" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 - %"$$newAdmins_2901_2902" = bitcast %TName_List_ByStr20* %"$newAdmins_2901" to i8* - %"$_literal_cost_call_2903" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i8* %"$$newAdmins_2901_2902") - %"$gasrem_2904" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2905" = icmp ugt i64 %"$_literal_cost_call_2903", %"$gasrem_2904" - br i1 %"$gascmp_2905", label %"$out_of_gas_2906", label %"$have_gas_2907" - -"$out_of_gas_2906": ; preds = %"$matchsucc_2866" - call void @_out_of_gas() - br label %"$have_gas_2907" - -"$have_gas_2907": ; preds = %"$out_of_gas_2906", %"$matchsucc_2866" - %"$consume_2908" = sub i64 %"$gasrem_2904", %"$_literal_cost_call_2903" - store i64 %"$consume_2908", i64* @_gasrem, align 8 - %"$execptr_load_2909" = load i8*, i8** @_execptr, align 8 - %"$newAdmins_2911" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 - %"$update_value_2912" = bitcast %TName_List_ByStr20* %"$newAdmins_2911" to i8* - call void @_update_field(i8* %"$execptr_load_2909", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2910", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i32 0, i8* null, i8* %"$update_value_2912"), !dbg !294 - %"$gasrem_2913" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2914" = icmp ugt i64 1, %"$gasrem_2913" - br i1 %"$gascmp_2914", label %"$out_of_gas_2915", label %"$have_gas_2916" - -"$out_of_gas_2915": ; preds = %"$have_gas_2907" - call void @_out_of_gas() - br label %"$have_gas_2916" - -"$have_gas_2916": ; preds = %"$out_of_gas_2915", %"$have_gas_2907" - %"$consume_2917" = sub i64 %"$gasrem_2913", 1 - store i64 %"$consume_2917", i64* @_gasrem, align 8 + %"$gasrem_2648" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2649" = icmp ugt i64 20, %"$gasrem_2648" + br i1 %"$gascmp_2649", label %"$out_of_gas_2650", label %"$have_gas_2651" + +"$out_of_gas_2650": ; preds = %"$have_gas_2646" + call void @_out_of_gas() + br label %"$have_gas_2651" + +"$have_gas_2651": ; preds = %"$out_of_gas_2650", %"$have_gas_2646" + %"$consume_2652" = sub i64 %"$gasrem_2648", 20 + store i64 %"$consume_2652", i64* @_gasrem, align 8 + %"$execptr_load_2653" = load i8*, i8** @_execptr, align 8 + %"$eq_currentlyApproved_2654" = alloca [20 x i8], align 1 + %"$currentlyApproved_2655" = load [20 x i8], [20 x i8]* %currentlyApproved, align 1 + store [20 x i8] %"$currentlyApproved_2655", [20 x i8]* %"$eq_currentlyApproved_2654", align 1 + %"$$eq_currentlyApproved_2654_2656" = bitcast [20 x i8]* %"$eq_currentlyApproved_2654" to i8* + %"$eq_address_2657" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$eq_address_2657", align 1 + %"$$eq_address_2657_2658" = bitcast [20 x i8]* %"$eq_address_2657" to i8* + %"$eq_call_2659" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_2653", i32 20, i8* %"$$eq_currentlyApproved_2654_2656", i8* %"$$eq_address_2657_2658"), !dbg !285 + store %TName_Bool* %"$eq_call_2659", %TName_Bool** %b, align 8, !dbg !285 + %"$gasrem_2661" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2662" = icmp ugt i64 1, %"$gasrem_2661" + br i1 %"$gascmp_2662", label %"$out_of_gas_2663", label %"$have_gas_2664" + +"$out_of_gas_2663": ; preds = %"$have_gas_2651" + call void @_out_of_gas() + br label %"$have_gas_2664" + +"$have_gas_2664": ; preds = %"$out_of_gas_2663", %"$have_gas_2651" + %"$consume_2665" = sub i64 %"$gasrem_2661", 1 + store i64 %"$consume_2665", i64* @_gasrem, align 8 + %"$BoolUtils.negb_39" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_2666" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_2667" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2666", 0 + %"$BoolUtils.negb_envptr_2668" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2666", 1 + %"$b_2669" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$BoolUtils.negb_call_2670" = call %TName_Bool* %"$BoolUtils.negb_fptr_2667"(i8* %"$BoolUtils.negb_envptr_2668", %TName_Bool* %"$b_2669"), !dbg !286 + store %TName_Bool* %"$BoolUtils.negb_call_2670", %TName_Bool** %"$BoolUtils.negb_39", align 8, !dbg !286 + %"$$BoolUtils.negb_39_2671" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_39", align 8 + store %TName_Bool* %"$$BoolUtils.negb_39_2671", %TName_Bool** %needsToChange, align 8, !dbg !286 + %"$gasrem_2672" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2673" = icmp ugt i64 2, %"$gasrem_2672" + br i1 %"$gascmp_2673", label %"$out_of_gas_2674", label %"$have_gas_2675" + +"$out_of_gas_2674": ; preds = %"$have_gas_2664" + call void @_out_of_gas() + br label %"$have_gas_2675" + +"$have_gas_2675": ; preds = %"$out_of_gas_2674", %"$have_gas_2664" + %"$consume_2676" = sub i64 %"$gasrem_2672", 2 + store i64 %"$consume_2676", i64* @_gasrem, align 8 + %"$needsToChange_2678" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 + %"$needsToChange_tag_2679" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_2678", i32 0, i32 0 + %"$needsToChange_tag_2680" = load i8, i8* %"$needsToChange_tag_2679", align 1 + switch i8 %"$needsToChange_tag_2680", label %"$default_2681" [ + i8 0, label %"$True_2682" + ], !dbg !287 + +"$True_2682": ; preds = %"$have_gas_2675" + %"$needsToChange_2683" = bitcast %TName_Bool* %"$needsToChange_2678" to %CName_True* + %"$_literal_cost_address_2684" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_2684", align 1 + %"$$_literal_cost_address_2684_2685" = bitcast [20 x i8]* %"$_literal_cost_address_2684" to i8* + %"$_literal_cost_call_2686" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i8* %"$$_literal_cost_address_2684_2685") + %"$gasadd_2687" = add i64 %"$_literal_cost_call_2686", 1 + %"$gasrem_2688" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2689" = icmp ugt i64 %"$gasadd_2687", %"$gasrem_2688" + br i1 %"$gascmp_2689", label %"$out_of_gas_2690", label %"$have_gas_2691" + +"$out_of_gas_2690": ; preds = %"$True_2682" + call void @_out_of_gas() + br label %"$have_gas_2691" + +"$have_gas_2691": ; preds = %"$out_of_gas_2690", %"$True_2682" + %"$consume_2692" = sub i64 %"$gasrem_2688", %"$gasadd_2687" + store i64 %"$consume_2692", i64* @_gasrem, align 8 + %"$indices_buf_2693_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2693_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2693_salloc_load", i64 32) + %"$indices_buf_2693_salloc" = bitcast i8* %"$indices_buf_2693_salloc_salloc" to [32 x i8]* + %"$indices_buf_2693" = bitcast [32 x i8]* %"$indices_buf_2693_salloc" to i8* + %"$indices_gep_2694" = getelementptr i8, i8* %"$indices_buf_2693", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_2694" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %indices_cast2, align 1 + %"$execptr_load_2695" = load i8*, i8** @_execptr, align 8 + %"$update_value_2697" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$update_value_2697", align 1 + %"$update_value_2698" = bitcast [20 x i8]* %"$update_value_2697" to i8* + call void @_update_field(i8* %"$execptr_load_2695", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_2696", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_2693", i8* %"$update_value_2698"), !dbg !288 + %"$gasrem_2699" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2700" = icmp ugt i64 1, %"$gasrem_2699" + br i1 %"$gascmp_2700", label %"$out_of_gas_2701", label %"$have_gas_2702" + +"$out_of_gas_2701": ; preds = %"$have_gas_2691" + call void @_out_of_gas() + br label %"$have_gas_2702" + +"$have_gas_2702": ; preds = %"$out_of_gas_2701", %"$have_gas_2691" + %"$consume_2703" = sub i64 %"$gasrem_2699", 1 + store i64 %"$consume_2703", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_2918" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2919" = icmp ugt i64 1, %"$gasrem_2918" - br i1 %"$gascmp_2919", label %"$out_of_gas_2920", label %"$have_gas_2921" - -"$out_of_gas_2920": ; preds = %"$have_gas_2916" - call void @_out_of_gas() - br label %"$have_gas_2921" - -"$have_gas_2921": ; preds = %"$out_of_gas_2920", %"$have_gas_2916" - %"$consume_2922" = sub i64 %"$gasrem_2918", 1 - store i64 %"$consume_2922", i64* @_gasrem, align 8 - %"$ud-registry.eAdminSet_45" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-registry.eAdminSet_2923" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eAdminSet, align 8 - %"$ud-registry.eAdminSet_fptr_2924" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eAdminSet_2923", 0 - %"$ud-registry.eAdminSet_envptr_2925" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eAdminSet_2923", 1 - %"$ud-registry.eAdminSet_address_2926" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-registry.eAdminSet_address_2926", align 1 - %"$ud-registry.eAdminSet_call_2927" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_fptr_2924"(i8* %"$ud-registry.eAdminSet_envptr_2925", [20 x i8]* %"$ud-registry.eAdminSet_address_2926"), !dbg !295 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_call_2927", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eAdminSet_45", align 8, !dbg !295 - %"$ud-registry.eAdminSet_46" = alloca i8*, align 8 - %"$$ud-registry.eAdminSet_45_2928" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eAdminSet_45", align 8 - %"$$ud-registry.eAdminSet_45_fptr_2929" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eAdminSet_45_2928", 0 - %"$$ud-registry.eAdminSet_45_envptr_2930" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eAdminSet_45_2928", 1 - %"$$ud-registry.eAdminSet_45_call_2931" = call i8* %"$$ud-registry.eAdminSet_45_fptr_2929"(i8* %"$$ud-registry.eAdminSet_45_envptr_2930", %TName_Bool* %isApproved), !dbg !295 - store i8* %"$$ud-registry.eAdminSet_45_call_2931", i8** %"$ud-registry.eAdminSet_46", align 8, !dbg !295 - %"$$ud-registry.eAdminSet_46_2932" = load i8*, i8** %"$ud-registry.eAdminSet_46", align 8 - store i8* %"$$ud-registry.eAdminSet_46_2932", i8** %e, align 8, !dbg !295 - %"$e_2933" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_2935" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_2933") - %"$gasrem_2936" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2937" = icmp ugt i64 %"$_literal_cost_call_2935", %"$gasrem_2936" - br i1 %"$gascmp_2937", label %"$out_of_gas_2938", label %"$have_gas_2939" - -"$out_of_gas_2938": ; preds = %"$have_gas_2921" - call void @_out_of_gas() - br label %"$have_gas_2939" - -"$have_gas_2939": ; preds = %"$out_of_gas_2938", %"$have_gas_2921" - %"$consume_2940" = sub i64 %"$gasrem_2936", %"$_literal_cost_call_2935" - store i64 %"$consume_2940", i64* @_gasrem, align 8 - %"$execptr_load_2941" = load i8*, i8** @_execptr, align 8 - %"$e_2942" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_2941", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_2942"), !dbg !296 - br label %"$matchsucc_2849" + %"$gasrem_2704" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2705" = icmp ugt i64 1, %"$gasrem_2704" + br i1 %"$gascmp_2705", label %"$out_of_gas_2706", label %"$have_gas_2707" + +"$out_of_gas_2706": ; preds = %"$have_gas_2702" + call void @_out_of_gas() + br label %"$have_gas_2707" + +"$have_gas_2707": ; preds = %"$out_of_gas_2706", %"$have_gas_2702" + %"$consume_2708" = sub i64 %"$gasrem_2704", 1 + store i64 %"$consume_2708", i64* @_gasrem, align 8 + %"$ud-registry.eApproved_40" = alloca i8*, align 8 + %"$ud-registry.eApproved_2709" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8 + %"$ud-registry.eApproved_fptr_2710" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_2709", 0 + %"$ud-registry.eApproved_envptr_2711" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_2709", 1 + %"$ud-registry.eApproved_address_2712" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.eApproved_address_2712", align 1 + %"$ud-registry.eApproved_call_2713" = call i8* %"$ud-registry.eApproved_fptr_2710"(i8* %"$ud-registry.eApproved_envptr_2711", [20 x i8]* %"$ud-registry.eApproved_address_2712"), !dbg !291 + store i8* %"$ud-registry.eApproved_call_2713", i8** %"$ud-registry.eApproved_40", align 8, !dbg !291 + %"$$ud-registry.eApproved_40_2714" = load i8*, i8** %"$ud-registry.eApproved_40", align 8 + store i8* %"$$ud-registry.eApproved_40_2714", i8** %e, align 8, !dbg !291 + %"$e_2715" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_2717" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2715") + %"$gasrem_2718" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2719" = icmp ugt i64 %"$_literal_cost_call_2717", %"$gasrem_2718" + br i1 %"$gascmp_2719", label %"$out_of_gas_2720", label %"$have_gas_2721" + +"$out_of_gas_2720": ; preds = %"$have_gas_2707" + call void @_out_of_gas() + br label %"$have_gas_2721" + +"$have_gas_2721": ; preds = %"$out_of_gas_2720", %"$have_gas_2707" + %"$consume_2722" = sub i64 %"$gasrem_2718", %"$_literal_cost_call_2717" + store i64 %"$consume_2722", i64* @_gasrem, align 8 + %"$execptr_load_2723" = load i8*, i8** @_execptr, align 8 + %"$e_2724" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_2723", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2724"), !dbg !292 + br label %"$matchsucc_2677" + +"$default_2681": ; preds = %"$have_gas_2675" + br label %"$joinp_5" -"$default_2853": ; preds = %"$have_gas_2847" - br label %"$joinp_4" +"$joinp_5": ; preds = %"$default_2681" + br label %"$matchsucc_2677" + +"$matchsucc_2677": ; preds = %"$have_gas_2721", %"$joinp_5" + br label %"$matchsucc_2582" + +"$False_2725": ; preds = %"$have_gas_2580" + %"$isSenderNodeOwner_2726" = bitcast %TName_Bool* %"$isSenderNodeOwner_2583" to %CName_False* + %"$gasrem_2727" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2728" = icmp ugt i64 1, %"$gasrem_2727" + br i1 %"$gascmp_2728", label %"$out_of_gas_2729", label %"$have_gas_2730" -"$joinp_4": ; preds = %"$default_2853" - br label %"$matchsucc_2849" +"$out_of_gas_2729": ; preds = %"$False_2725" + call void @_out_of_gas() + br label %"$have_gas_2730" + +"$have_gas_2730": ; preds = %"$out_of_gas_2729", %"$False_2725" + %"$consume_2731" = sub i64 %"$gasrem_2727", 1 + store i64 %"$consume_2731", i64* @_gasrem, align 8 + %e3 = alloca i8*, align 8 + %"$gasrem_2732" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2733" = icmp ugt i64 1, %"$gasrem_2732" + br i1 %"$gascmp_2733", label %"$out_of_gas_2734", label %"$have_gas_2735" -"$matchsucc_2849": ; preds = %"$have_gas_2939", %"$joinp_4" - br label %"$matchsucc_2796" +"$out_of_gas_2734": ; preds = %"$have_gas_2730" + call void @_out_of_gas() + br label %"$have_gas_2735" + +"$have_gas_2735": ; preds = %"$out_of_gas_2734", %"$have_gas_2730" + %"$consume_2736" = sub i64 %"$gasrem_2732", 1 + store i64 %"$consume_2736", i64* @_gasrem, align 8 + %m = alloca %String, align 8 + %"$gasrem_2737" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2738" = icmp ugt i64 1, %"$gasrem_2737" + br i1 %"$gascmp_2738", label %"$out_of_gas_2739", label %"$have_gas_2740" -"$False_2943": ; preds = %"$have_gas_2794" - %"$isSenderAdmin_2944" = bitcast %TName_Bool* %"$isSenderAdmin_2797" to %CName_False* +"$out_of_gas_2739": ; preds = %"$have_gas_2735" + call void @_out_of_gas() + br label %"$have_gas_2740" + +"$have_gas_2740": ; preds = %"$out_of_gas_2739", %"$have_gas_2735" + %"$consume_2741" = sub i64 %"$gasrem_2737", 1 + store i64 %"$consume_2741", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2742", i32 0, i32 0), i32 21 }, %String* %m, align 8, !dbg !293 + %"$gasrem_2743" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2744" = icmp ugt i64 1, %"$gasrem_2743" + br i1 %"$gascmp_2744", label %"$out_of_gas_2745", label %"$have_gas_2746" + +"$out_of_gas_2745": ; preds = %"$have_gas_2740" + call void @_out_of_gas() + br label %"$have_gas_2746" + +"$have_gas_2746": ; preds = %"$out_of_gas_2745", %"$have_gas_2740" + %"$consume_2747" = sub i64 %"$gasrem_2743", 1 + store i64 %"$consume_2747", i64* @_gasrem, align 8 + %"$ud-registry.eError_41" = alloca i8*, align 8 + %"$ud-registry.eError_2748" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_2749" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2748", 0 + %"$ud-registry.eError_envptr_2750" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2748", 1 + %"$m_2751" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_2752" = call i8* %"$ud-registry.eError_fptr_2749"(i8* %"$ud-registry.eError_envptr_2750", %String %"$m_2751"), !dbg !295 + store i8* %"$ud-registry.eError_call_2752", i8** %"$ud-registry.eError_41", align 8, !dbg !295 + %"$$ud-registry.eError_41_2753" = load i8*, i8** %"$ud-registry.eError_41", align 8 + store i8* %"$$ud-registry.eError_41_2753", i8** %e3, align 8, !dbg !295 + %"$e_2754" = load i8*, i8** %e3, align 8 + %"$_literal_cost_call_2756" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2754") + %"$gasrem_2757" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2758" = icmp ugt i64 %"$_literal_cost_call_2756", %"$gasrem_2757" + br i1 %"$gascmp_2758", label %"$out_of_gas_2759", label %"$have_gas_2760" + +"$out_of_gas_2759": ; preds = %"$have_gas_2746" + call void @_out_of_gas() + br label %"$have_gas_2760" + +"$have_gas_2760": ; preds = %"$out_of_gas_2759", %"$have_gas_2746" + %"$consume_2761" = sub i64 %"$gasrem_2757", %"$_literal_cost_call_2756" + store i64 %"$consume_2761", i64* @_gasrem, align 8 + %"$execptr_load_2762" = load i8*, i8** @_execptr, align 8 + %"$e_2763" = load i8*, i8** %e3, align 8 + call void @_event(i8* %"$execptr_load_2762", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2763"), !dbg !296 + br label %"$matchsucc_2582" + +"$empty_default_2586": ; preds = %"$have_gas_2580" + br label %"$matchsucc_2582" + +"$matchsucc_2582": ; preds = %"$have_gas_2760", %"$matchsucc_2677", %"$empty_default_2586" + ret void +} + +define void @approve(i8* %0) !dbg !297 { +entry: + %"$_amount_2765" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2766" = bitcast i8* %"$_amount_2765" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2766", align 8 + %"$_origin_2767" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2768" = bitcast i8* %"$_origin_2767" to [20 x i8]* + %"$_sender_2769" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2770" = bitcast i8* %"$_sender_2769" to [20 x i8]* + %"$node_2771" = getelementptr i8, i8* %0, i32 56 + %"$node_2772" = bitcast i8* %"$node_2771" to [32 x i8]* + %"$address_2773" = getelementptr i8, i8* %0, i32 88 + %"$address_2774" = bitcast i8* %"$address_2773" to [20 x i8]* + call void @"$approve_2521"(%Uint128 %_amount, [20 x i8]* %"$_origin_2768", [20 x i8]* %"$_sender_2770", [32 x i8]* %"$node_2772", [20 x i8]* %"$address_2774"), !dbg !298 + ret void +} + +define internal void @"$approveFor_2775"(%Uint128 %_amount, [20 x i8]* %"$_origin_2776", [20 x i8]* %"$_sender_2777", [20 x i8]* %"$address_2778", %TName_Bool* %isApproved) !dbg !299 { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2776", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2777", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_2778", align 1 + %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 + %"$indices_buf_2779_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2779_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2779_salloc_load", i64 20) + %"$indices_buf_2779_salloc" = bitcast i8* %"$indices_buf_2779_salloc_salloc" to [20 x i8]* + %"$indices_buf_2779" = bitcast [20 x i8]* %"$indices_buf_2779_salloc" to i8* + %"$indices_gep_2780" = getelementptr i8, i8* %"$indices_buf_2779", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2780" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 + %"$execptr_load_2782" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_2783" = call i8* @_fetch_field(i8* %"$execptr_load_2782", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_2781", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_2779", i32 1), !dbg !300 + %"$maybeOperators_2784" = bitcast i8* %"$maybeOperators_call_2783" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_2784", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_2785" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_2785_2786" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_2785" to i8* + %"$_literal_cost_call_2787" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", i8* %"$$maybeOperators_2785_2786") + %"$gasadd_2788" = add i64 %"$_literal_cost_call_2787", 0 + %"$gasadd_2789" = add i64 %"$gasadd_2788", 1 + %"$gasrem_2790" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2791" = icmp ugt i64 %"$gasadd_2789", %"$gasrem_2790" + br i1 %"$gascmp_2791", label %"$out_of_gas_2792", label %"$have_gas_2793" + +"$out_of_gas_2792": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2793" + +"$have_gas_2793": ; preds = %"$out_of_gas_2792", %entry + %"$consume_2794" = sub i64 %"$gasrem_2790", %"$gasadd_2789" + store i64 %"$consume_2794", i64* @_gasrem, align 8 + %"$gasrem_2795" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2796" = icmp ugt i64 1, %"$gasrem_2795" + br i1 %"$gascmp_2796", label %"$out_of_gas_2797", label %"$have_gas_2798" + +"$out_of_gas_2797": ; preds = %"$have_gas_2793" + call void @_out_of_gas() + br label %"$have_gas_2798" + +"$have_gas_2798": ; preds = %"$out_of_gas_2797", %"$have_gas_2793" + %"$consume_2799" = sub i64 %"$gasrem_2795", 1 + store i64 %"$consume_2799", i64* @_gasrem, align 8 + %currentOperators = alloca %TName_List_ByStr20*, align 8 + %"$gasrem_2800" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2801" = icmp ugt i64 2, %"$gasrem_2800" + br i1 %"$gascmp_2801", label %"$out_of_gas_2802", label %"$have_gas_2803" + +"$out_of_gas_2802": ; preds = %"$have_gas_2798" + call void @_out_of_gas() + br label %"$have_gas_2803" + +"$have_gas_2803": ; preds = %"$out_of_gas_2802", %"$have_gas_2798" + %"$consume_2804" = sub i64 %"$gasrem_2800", 2 + store i64 %"$consume_2804", i64* @_gasrem, align 8 + %"$maybeOperators_2806" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_tag_2807" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_2806", i32 0, i32 0 + %"$maybeOperators_tag_2808" = load i8, i8* %"$maybeOperators_tag_2807", align 1 + switch i8 %"$maybeOperators_tag_2808", label %"$empty_default_2809" [ + i8 1, label %"$None_2810" + i8 0, label %"$Some_2818" + ], !dbg !301 + +"$None_2810": ; preds = %"$have_gas_2803" + %"$maybeOperators_2811" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_2806" to %"CName_None_List_(ByStr20)"* + %"$gasrem_2812" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2813" = icmp ugt i64 1, %"$gasrem_2812" + br i1 %"$gascmp_2813", label %"$out_of_gas_2814", label %"$have_gas_2815" + +"$out_of_gas_2814": ; preds = %"$None_2810" + call void @_out_of_gas() + br label %"$have_gas_2815" + +"$have_gas_2815": ; preds = %"$out_of_gas_2814", %"$None_2810" + %"$consume_2816" = sub i64 %"$gasrem_2812", 1 + store i64 %"$consume_2816", i64* @_gasrem, align 8 + %"$ud-registry.nilByStr20_2817" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 + store %TName_List_ByStr20* %"$ud-registry.nilByStr20_2817", %TName_List_ByStr20** %currentOperators, align 8, !dbg !302 + br label %"$matchsucc_2805" + +"$Some_2818": ; preds = %"$have_gas_2803" + %"$maybeOperators_2819" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_2806" to %"CName_Some_List_(ByStr20)"* + %"$ops_gep_2820" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_2819", i32 0, i32 1 + %"$ops_load_2821" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ops_gep_2820", align 8 + %ops = alloca %TName_List_ByStr20*, align 8 + store %TName_List_ByStr20* %"$ops_load_2821", %TName_List_ByStr20** %ops, align 8 + %"$gasrem_2822" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2823" = icmp ugt i64 1, %"$gasrem_2822" + br i1 %"$gascmp_2823", label %"$out_of_gas_2824", label %"$have_gas_2825" + +"$out_of_gas_2824": ; preds = %"$Some_2818" + call void @_out_of_gas() + br label %"$have_gas_2825" + +"$have_gas_2825": ; preds = %"$out_of_gas_2824", %"$Some_2818" + %"$consume_2826" = sub i64 %"$gasrem_2822", 1 + store i64 %"$consume_2826", i64* @_gasrem, align 8 + %"$ops_2827" = load %TName_List_ByStr20*, %TName_List_ByStr20** %ops, align 8 + store %TName_List_ByStr20* %"$ops_2827", %TName_List_ByStr20** %currentOperators, align 8, !dbg !305 + br label %"$matchsucc_2805" + +"$empty_default_2809": ; preds = %"$have_gas_2803" + br label %"$matchsucc_2805" + +"$matchsucc_2805": ; preds = %"$have_gas_2825", %"$have_gas_2815", %"$empty_default_2809" + %"$gasrem_2828" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2829" = icmp ugt i64 1, %"$gasrem_2828" + br i1 %"$gascmp_2829", label %"$out_of_gas_2830", label %"$have_gas_2831" + +"$out_of_gas_2830": ; preds = %"$matchsucc_2805" + call void @_out_of_gas() + br label %"$have_gas_2831" + +"$have_gas_2831": ; preds = %"$out_of_gas_2830", %"$matchsucc_2805" + %"$consume_2832" = sub i64 %"$gasrem_2828", 1 + store i64 %"$consume_2832", i64* @_gasrem, align 8 + %needsToChange = alloca %TName_Bool*, align 8 + %"$gasrem_2833" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2834" = icmp ugt i64 1, %"$gasrem_2833" + br i1 %"$gascmp_2834", label %"$out_of_gas_2835", label %"$have_gas_2836" + +"$out_of_gas_2835": ; preds = %"$have_gas_2831" + call void @_out_of_gas() + br label %"$have_gas_2836" + +"$have_gas_2836": ; preds = %"$out_of_gas_2835", %"$have_gas_2831" + %"$consume_2837" = sub i64 %"$gasrem_2833", 1 + store i64 %"$consume_2837", i64* @_gasrem, align 8 + %b = alloca %TName_Bool*, align 8 + %"$gasrem_2838" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2839" = icmp ugt i64 1, %"$gasrem_2838" + br i1 %"$gascmp_2839", label %"$out_of_gas_2840", label %"$have_gas_2841" + +"$out_of_gas_2840": ; preds = %"$have_gas_2836" + call void @_out_of_gas() + br label %"$have_gas_2841" + +"$have_gas_2841": ; preds = %"$out_of_gas_2840", %"$have_gas_2836" + %"$consume_2842" = sub i64 %"$gasrem_2838", 1 + store i64 %"$consume_2842", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Excludes_2843" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Excludes, align 8 + %"$ud-registry.listByStr20Excludes_fptr_2844" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_2843", 0 + %"$ud-registry.listByStr20Excludes_envptr_2845" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_2843", 1 + %"$currentOperators_2846" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 + %"$ud-registry.listByStr20Excludes_address_2847" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.listByStr20Excludes_address_2847", align 1 + %"$ud-registry.listByStr20Excludes_call_2848" = call %TName_Bool* %"$ud-registry.listByStr20Excludes_fptr_2844"(i8* %"$ud-registry.listByStr20Excludes_envptr_2845", %TName_List_ByStr20* %"$currentOperators_2846", [20 x i8]* %"$ud-registry.listByStr20Excludes_address_2847"), !dbg !307 + store %TName_Bool* %"$ud-registry.listByStr20Excludes_call_2848", %TName_Bool** %b, align 8, !dbg !307 + %"$gasrem_2849" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2850" = icmp ugt i64 1, %"$gasrem_2849" + br i1 %"$gascmp_2850", label %"$out_of_gas_2851", label %"$have_gas_2852" + +"$out_of_gas_2851": ; preds = %"$have_gas_2841" + call void @_out_of_gas() + br label %"$have_gas_2852" + +"$have_gas_2852": ; preds = %"$out_of_gas_2851", %"$have_gas_2841" + %"$consume_2853" = sub i64 %"$gasrem_2849", 1 + store i64 %"$consume_2853", i64* @_gasrem, align 8 + %"$ud-registry.xandb_2854" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8 + %"$ud-registry.xandb_fptr_2855" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2854", 0 + %"$ud-registry.xandb_envptr_2856" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2854", 1 + %"$b_2857" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$ud-registry.xandb_call_2858" = call %TName_Bool* %"$ud-registry.xandb_fptr_2855"(i8* %"$ud-registry.xandb_envptr_2856", %TName_Bool* %"$b_2857", %TName_Bool* %isApproved), !dbg !308 + store %TName_Bool* %"$ud-registry.xandb_call_2858", %TName_Bool** %needsToChange, align 8, !dbg !308 + %"$gasrem_2859" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2860" = icmp ugt i64 2, %"$gasrem_2859" + br i1 %"$gascmp_2860", label %"$out_of_gas_2861", label %"$have_gas_2862" + +"$out_of_gas_2861": ; preds = %"$have_gas_2852" + call void @_out_of_gas() + br label %"$have_gas_2862" + +"$have_gas_2862": ; preds = %"$out_of_gas_2861", %"$have_gas_2852" + %"$consume_2863" = sub i64 %"$gasrem_2859", 2 + store i64 %"$consume_2863", i64* @_gasrem, align 8 + %"$needsToChange_2865" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 + %"$needsToChange_tag_2866" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_2865", i32 0, i32 0 + %"$needsToChange_tag_2867" = load i8, i8* %"$needsToChange_tag_2866", align 1 + switch i8 %"$needsToChange_tag_2867", label %"$default_2868" [ + i8 0, label %"$True_2869" + ], !dbg !309 + +"$True_2869": ; preds = %"$have_gas_2862" + %"$needsToChange_2870" = bitcast %TName_Bool* %"$needsToChange_2865" to %CName_True* + %"$gasrem_2871" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2872" = icmp ugt i64 1, %"$gasrem_2871" + br i1 %"$gascmp_2872", label %"$out_of_gas_2873", label %"$have_gas_2874" + +"$out_of_gas_2873": ; preds = %"$True_2869" + call void @_out_of_gas() + br label %"$have_gas_2874" + +"$have_gas_2874": ; preds = %"$out_of_gas_2873", %"$True_2869" + %"$consume_2875" = sub i64 %"$gasrem_2871", 1 + store i64 %"$consume_2875", i64* @_gasrem, align 8 + %newOperators = alloca %TName_List_ByStr20*, align 8 + %"$gasrem_2876" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2877" = icmp ugt i64 2, %"$gasrem_2876" + br i1 %"$gascmp_2877", label %"$out_of_gas_2878", label %"$have_gas_2879" + +"$out_of_gas_2878": ; preds = %"$have_gas_2874" + call void @_out_of_gas() + br label %"$have_gas_2879" + +"$have_gas_2879": ; preds = %"$out_of_gas_2878", %"$have_gas_2874" + %"$consume_2880" = sub i64 %"$gasrem_2876", 2 + store i64 %"$consume_2880", i64* @_gasrem, align 8 + %"$isApproved_tag_2882" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 + %"$isApproved_tag_2883" = load i8, i8* %"$isApproved_tag_2882", align 1 + switch i8 %"$isApproved_tag_2883", label %"$empty_default_2884" [ + i8 0, label %"$True_2885" + i8 1, label %"$False_2898" + ], !dbg !310 + +"$True_2885": ; preds = %"$have_gas_2879" + %"$isApproved_2886" = bitcast %TName_Bool* %isApproved to %CName_True* + %"$gasrem_2887" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2888" = icmp ugt i64 1, %"$gasrem_2887" + br i1 %"$gascmp_2888", label %"$out_of_gas_2889", label %"$have_gas_2890" + +"$out_of_gas_2889": ; preds = %"$True_2885" + call void @_out_of_gas() + br label %"$have_gas_2890" + +"$have_gas_2890": ; preds = %"$out_of_gas_2889", %"$True_2885" + %"$consume_2891" = sub i64 %"$gasrem_2887", 1 + store i64 %"$consume_2891", i64* @_gasrem, align 8 + %"$currentOperators_2892" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 + %"$adtval_2893_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2893_salloc" = call i8* @_salloc(i8* %"$adtval_2893_load", i64 29) + %"$adtval_2893" = bitcast i8* %"$adtval_2893_salloc" to %CName_Cons_ByStr20* + %"$adtgep_2894" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2893", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2894", align 1 + %"$adtgep_2895" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2893", i32 0, i32 1 + store [20 x i8] %address, [20 x i8]* %"$adtgep_2895", align 1 + %"$adtgep_2896" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2893", i32 0, i32 2 + store %TName_List_ByStr20* %"$currentOperators_2892", %TName_List_ByStr20** %"$adtgep_2896", align 8 + %"$adtptr_2897" = bitcast %CName_Cons_ByStr20* %"$adtval_2893" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_2897", %TName_List_ByStr20** %newOperators, align 8, !dbg !313 + br label %"$matchsucc_2881" + +"$False_2898": ; preds = %"$have_gas_2879" + %"$isApproved_2899" = bitcast %TName_Bool* %isApproved to %CName_False* + %"$gasrem_2900" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2901" = icmp ugt i64 1, %"$gasrem_2900" + br i1 %"$gascmp_2901", label %"$out_of_gas_2902", label %"$have_gas_2903" + +"$out_of_gas_2902": ; preds = %"$False_2898" + call void @_out_of_gas() + br label %"$have_gas_2903" + +"$have_gas_2903": ; preds = %"$out_of_gas_2902", %"$False_2898" + %"$consume_2904" = sub i64 %"$gasrem_2900", 1 + store i64 %"$consume_2904", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20FilterOut_2905" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8 + %"$ud-registry.listByStr20FilterOut_fptr_2906" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_2905", 0 + %"$ud-registry.listByStr20FilterOut_envptr_2907" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_2905", 1 + %"$currentOperators_2908" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 + %"$ud-registry.listByStr20FilterOut_address_2909" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.listByStr20FilterOut_address_2909", align 1 + %"$ud-registry.listByStr20FilterOut_call_2910" = call %TName_List_ByStr20* %"$ud-registry.listByStr20FilterOut_fptr_2906"(i8* %"$ud-registry.listByStr20FilterOut_envptr_2907", %TName_List_ByStr20* %"$currentOperators_2908", [20 x i8]* %"$ud-registry.listByStr20FilterOut_address_2909"), !dbg !316 + store %TName_List_ByStr20* %"$ud-registry.listByStr20FilterOut_call_2910", %TName_List_ByStr20** %newOperators, align 8, !dbg !316 + br label %"$matchsucc_2881" + +"$empty_default_2884": ; preds = %"$have_gas_2879" + br label %"$matchsucc_2881" + +"$matchsucc_2881": ; preds = %"$have_gas_2903", %"$have_gas_2890", %"$empty_default_2884" + %"$newOperators_2911" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 + %"$$newOperators_2911_2912" = bitcast %TName_List_ByStr20* %"$newOperators_2911" to i8* + %"$_literal_cost_call_2913" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i8* %"$$newOperators_2911_2912") + %"$gasadd_2914" = add i64 %"$_literal_cost_call_2913", 1 + %"$gasrem_2915" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2916" = icmp ugt i64 %"$gasadd_2914", %"$gasrem_2915" + br i1 %"$gascmp_2916", label %"$out_of_gas_2917", label %"$have_gas_2918" + +"$out_of_gas_2917": ; preds = %"$matchsucc_2881" + call void @_out_of_gas() + br label %"$have_gas_2918" + +"$have_gas_2918": ; preds = %"$out_of_gas_2917", %"$matchsucc_2881" + %"$consume_2919" = sub i64 %"$gasrem_2915", %"$gasadd_2914" + store i64 %"$consume_2919", i64* @_gasrem, align 8 + %"$indices_buf_2920_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2920_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2920_salloc_load", i64 20) + %"$indices_buf_2920_salloc" = bitcast i8* %"$indices_buf_2920_salloc_salloc" to [20 x i8]* + %"$indices_buf_2920" = bitcast [20 x i8]* %"$indices_buf_2920_salloc" to i8* + %"$indices_gep_2921" = getelementptr i8, i8* %"$indices_buf_2920", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_2921" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %indices_cast1, align 1 + %"$execptr_load_2922" = load i8*, i8** @_execptr, align 8 + %"$newOperators_2924" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 + %"$update_value_2925" = bitcast %TName_List_ByStr20* %"$newOperators_2924" to i8* + call void @_update_field(i8* %"$execptr_load_2922", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_2923", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_2920", i8* %"$update_value_2925"), !dbg !318 + %"$gasrem_2926" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2927" = icmp ugt i64 1, %"$gasrem_2926" + br i1 %"$gascmp_2927", label %"$out_of_gas_2928", label %"$have_gas_2929" + +"$out_of_gas_2928": ; preds = %"$have_gas_2918" + call void @_out_of_gas() + br label %"$have_gas_2929" + +"$have_gas_2929": ; preds = %"$out_of_gas_2928", %"$have_gas_2918" + %"$consume_2930" = sub i64 %"$gasrem_2926", 1 + store i64 %"$consume_2930", i64* @_gasrem, align 8 + %e = alloca i8*, align 8 + %"$gasrem_2931" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2932" = icmp ugt i64 1, %"$gasrem_2931" + br i1 %"$gascmp_2932", label %"$out_of_gas_2933", label %"$have_gas_2934" + +"$out_of_gas_2933": ; preds = %"$have_gas_2929" + call void @_out_of_gas() + br label %"$have_gas_2934" + +"$have_gas_2934": ; preds = %"$out_of_gas_2933", %"$have_gas_2929" + %"$consume_2935" = sub i64 %"$gasrem_2931", 1 + store i64 %"$consume_2935", i64* @_gasrem, align 8 + %"$ud-registry.eApprovedFor_2936" = load { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* }, { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-registry.eApprovedFor, align 8 + %"$ud-registry.eApprovedFor_fptr_2937" = extractvalue { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-registry.eApprovedFor_2936", 0 + %"$ud-registry.eApprovedFor_envptr_2938" = extractvalue { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-registry.eApprovedFor_2936", 1 + %"$ud-registry.eApprovedFor__sender_2939" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.eApprovedFor__sender_2939", align 1 + %"$ud-registry.eApprovedFor_address_2940" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.eApprovedFor_address_2940", align 1 + %"$ud-registry.eApprovedFor_call_2941" = call i8* %"$ud-registry.eApprovedFor_fptr_2937"(i8* %"$ud-registry.eApprovedFor_envptr_2938", [20 x i8]* %"$ud-registry.eApprovedFor__sender_2939", [20 x i8]* %"$ud-registry.eApprovedFor_address_2940", %TName_Bool* %isApproved), !dbg !319 + store i8* %"$ud-registry.eApprovedFor_call_2941", i8** %e, align 8, !dbg !319 + %"$e_2942" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_2944" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2942") %"$gasrem_2945" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2946" = icmp ugt i64 1, %"$gasrem_2945" + %"$gascmp_2946" = icmp ugt i64 %"$_literal_cost_call_2944", %"$gasrem_2945" br i1 %"$gascmp_2946", label %"$out_of_gas_2947", label %"$have_gas_2948" -"$out_of_gas_2947": ; preds = %"$False_2943" +"$out_of_gas_2947": ; preds = %"$have_gas_2934" call void @_out_of_gas() br label %"$have_gas_2948" -"$have_gas_2948": ; preds = %"$out_of_gas_2947", %"$False_2943" - %"$consume_2949" = sub i64 %"$gasrem_2945", 1 +"$have_gas_2948": ; preds = %"$out_of_gas_2947", %"$have_gas_2934" + %"$consume_2949" = sub i64 %"$gasrem_2945", %"$_literal_cost_call_2944" store i64 %"$consume_2949", i64* @_gasrem, align 8 - %e1 = alloca i8*, align 8 - %"$gasrem_2950" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2951" = icmp ugt i64 1, %"$gasrem_2950" - br i1 %"$gascmp_2951", label %"$out_of_gas_2952", label %"$have_gas_2953" + %"$execptr_load_2950" = load i8*, i8** @_execptr, align 8 + %"$e_2951" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_2950", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2951"), !dbg !320 + br label %"$matchsucc_2864" -"$out_of_gas_2952": ; preds = %"$have_gas_2948" - call void @_out_of_gas() - br label %"$have_gas_2953" +"$default_2868": ; preds = %"$have_gas_2862" + br label %"$joinp_6" -"$have_gas_2953": ; preds = %"$out_of_gas_2952", %"$have_gas_2948" - %"$consume_2954" = sub i64 %"$gasrem_2950", 1 - store i64 %"$consume_2954", i64* @_gasrem, align 8 - %m = alloca %String, align 8 - %"$gasrem_2955" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2956" = icmp ugt i64 1, %"$gasrem_2955" - br i1 %"$gascmp_2956", label %"$out_of_gas_2957", label %"$have_gas_2958" - -"$out_of_gas_2957": ; preds = %"$have_gas_2953" - call void @_out_of_gas() - br label %"$have_gas_2958" - -"$have_gas_2958": ; preds = %"$out_of_gas_2957", %"$have_gas_2953" - %"$consume_2959" = sub i64 %"$gasrem_2955", 1 - store i64 %"$consume_2959", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_2960", i32 0, i32 0), i32 26 }, %String* %m, align 8, !dbg !297 - %"$gasrem_2961" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2962" = icmp ugt i64 1, %"$gasrem_2961" - br i1 %"$gascmp_2962", label %"$out_of_gas_2963", label %"$have_gas_2964" - -"$out_of_gas_2963": ; preds = %"$have_gas_2958" - call void @_out_of_gas() - br label %"$have_gas_2964" - -"$have_gas_2964": ; preds = %"$out_of_gas_2963", %"$have_gas_2958" - %"$consume_2965" = sub i64 %"$gasrem_2961", 1 - store i64 %"$consume_2965", i64* @_gasrem, align 8 - %"$ud-registry.eError_53" = alloca i8*, align 8 - %"$ud-registry.eError_2966" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_2967" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2966", 0 - %"$ud-registry.eError_envptr_2968" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2966", 1 - %"$m_2969" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_2970" = call i8* %"$ud-registry.eError_fptr_2967"(i8* %"$ud-registry.eError_envptr_2968", %String %"$m_2969"), !dbg !299 - store i8* %"$ud-registry.eError_call_2970", i8** %"$ud-registry.eError_53", align 8, !dbg !299 - %"$$ud-registry.eError_53_2971" = load i8*, i8** %"$ud-registry.eError_53", align 8 - store i8* %"$$ud-registry.eError_53_2971", i8** %e1, align 8, !dbg !299 - %"$e_2972" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_2974" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_2972") - %"$gasrem_2975" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2976" = icmp ugt i64 %"$_literal_cost_call_2974", %"$gasrem_2975" - br i1 %"$gascmp_2976", label %"$out_of_gas_2977", label %"$have_gas_2978" - -"$out_of_gas_2977": ; preds = %"$have_gas_2964" - call void @_out_of_gas() - br label %"$have_gas_2978" - -"$have_gas_2978": ; preds = %"$out_of_gas_2977", %"$have_gas_2964" - %"$consume_2979" = sub i64 %"$gasrem_2975", %"$_literal_cost_call_2974" - store i64 %"$consume_2979", i64* @_gasrem, align 8 - %"$execptr_load_2980" = load i8*, i8** @_execptr, align 8 - %"$e_2981" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_2980", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_2981"), !dbg !300 - br label %"$matchsucc_2796" - -"$empty_default_2800": ; preds = %"$have_gas_2794" - br label %"$matchsucc_2796" - -"$matchsucc_2796": ; preds = %"$have_gas_2978", %"$matchsucc_2849", %"$empty_default_2800" +"$joinp_6": ; preds = %"$default_2868" + br label %"$matchsucc_2864" + +"$matchsucc_2864": ; preds = %"$have_gas_2948", %"$joinp_6" ret void } -declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) - -declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) - -define void @setAdmin(i8* %0) !dbg !301 { +define void @approveFor(i8* %0) !dbg !321 { entry: - %"$_amount_2983" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2984" = bitcast i8* %"$_amount_2983" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2984", align 8 - %"$_origin_2985" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2986" = bitcast i8* %"$_origin_2985" to [20 x i8]* - %"$_sender_2987" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2988" = bitcast i8* %"$_sender_2987" to [20 x i8]* - %"$address_2989" = getelementptr i8, i8* %0, i32 56 - %"$address_2990" = bitcast i8* %"$address_2989" to [20 x i8]* - %"$isApproved_2991" = getelementptr i8, i8* %0, i32 76 - %"$isApproved_2992" = bitcast i8* %"$isApproved_2991" to %TName_Bool** - %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_2992", align 8 - call void @"$setAdmin_2753"(%Uint128 %_amount, [20 x i8]* %"$_origin_2986", [20 x i8]* %"$_sender_2988", [20 x i8]* %"$address_2990", %TName_Bool* %isApproved), !dbg !302 + %"$_amount_2953" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2954" = bitcast i8* %"$_amount_2953" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2954", align 8 + %"$_origin_2955" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2956" = bitcast i8* %"$_origin_2955" to [20 x i8]* + %"$_sender_2957" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2958" = bitcast i8* %"$_sender_2957" to [20 x i8]* + %"$address_2959" = getelementptr i8, i8* %0, i32 56 + %"$address_2960" = bitcast i8* %"$address_2959" to [20 x i8]* + %"$isApproved_2961" = getelementptr i8, i8* %0, i32 76 + %"$isApproved_2962" = bitcast i8* %"$isApproved_2961" to %TName_Bool** + %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_2962", align 8 + call void @"$approveFor_2775"(%Uint128 %_amount, [20 x i8]* %"$_origin_2956", [20 x i8]* %"$_sender_2958", [20 x i8]* %"$address_2960", %TName_Bool* %isApproved), !dbg !322 ret void } -define internal void @"$approve_2993"(%Uint128 %_amount, [20 x i8]* %"$_origin_2994", [20 x i8]* %"$_sender_2995", [32 x i8]* %"$node_2996", [20 x i8]* %"$address_2997") !dbg !303 { +define internal void @"$configureNode_2963"(%Uint128 %_amount, [20 x i8]* %"$_origin_2964", [20 x i8]* %"$_sender_2965", [32 x i8]* %"$node_2966", [20 x i8]* %"$owner_2967", [20 x i8]* %"$resolver_2968") !dbg !323 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2994", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2995", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_2996", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_2997", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2964", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2965", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_2966", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_2967", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_2968", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_2998_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2998_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2998_salloc_load", i64 32) - %"$indices_buf_2998_salloc" = bitcast i8* %"$indices_buf_2998_salloc_salloc" to [32 x i8]* - %"$indices_buf_2998" = bitcast [32 x i8]* %"$indices_buf_2998_salloc" to i8* - %"$indices_gep_2999" = getelementptr i8, i8* %"$indices_buf_2998", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_2999" to [32 x i8]* + %"$indices_buf_2969_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2969_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2969_salloc_load", i64 32) + %"$indices_buf_2969_salloc" = bitcast i8* %"$indices_buf_2969_salloc_salloc" to [32 x i8]* + %"$indices_buf_2969" = bitcast [32 x i8]* %"$indices_buf_2969_salloc" to i8* + %"$indices_gep_2970" = getelementptr i8, i8* %"$indices_buf_2969", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2970" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_3001" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_3002" = call i8* @_fetch_field(i8* %"$execptr_load_3001", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3000", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_2998", i32 1), !dbg !304 - %"$maybeRecord_3003" = bitcast i8* %"$maybeRecord_call_3002" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_3003", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_3004" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_3004_3005" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3004" to i8* - %"$_literal_cost_call_3006" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_3004_3005") - %"$gasadd_3007" = add i64 %"$_literal_cost_call_3006", 0 - %"$gasadd_3008" = add i64 %"$gasadd_3007", 1 - %"$gasrem_3009" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3010" = icmp ugt i64 %"$gasadd_3008", %"$gasrem_3009" - br i1 %"$gascmp_3010", label %"$out_of_gas_3011", label %"$have_gas_3012" - -"$out_of_gas_3011": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3012" - -"$have_gas_3012": ; preds = %"$out_of_gas_3011", %entry - %"$consume_3013" = sub i64 %"$gasrem_3009", %"$gasadd_3008" - store i64 %"$consume_3013", i64* @_gasrem, align 8 - %"$gasrem_3014" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3015" = icmp ugt i64 1, %"$gasrem_3014" - br i1 %"$gascmp_3015", label %"$out_of_gas_3016", label %"$have_gas_3017" - -"$out_of_gas_3016": ; preds = %"$have_gas_3012" - call void @_out_of_gas() - br label %"$have_gas_3017" - -"$have_gas_3017": ; preds = %"$out_of_gas_3016", %"$have_gas_3012" - %"$consume_3018" = sub i64 %"$gasrem_3014", 1 - store i64 %"$consume_3018", i64* @_gasrem, align 8 + %"$execptr_load_2972" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_2973" = call i8* @_fetch_field(i8* %"$execptr_load_2972", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_2971", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_2969", i32 1), !dbg !324 + %"$maybeRecord_2974" = bitcast i8* %"$maybeRecord_call_2973" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_2974", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_2975" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_2975_2976" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_2975" to i8* + %"$_literal_cost_call_2977" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_2975_2976") + %"$gasadd_2978" = add i64 %"$_literal_cost_call_2977", 0 + %"$gasadd_2979" = add i64 %"$gasadd_2978", 1 + %"$gasrem_2980" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2981" = icmp ugt i64 %"$gasadd_2979", %"$gasrem_2980" + br i1 %"$gascmp_2981", label %"$out_of_gas_2982", label %"$have_gas_2983" + +"$out_of_gas_2982": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2983" + +"$have_gas_2983": ; preds = %"$out_of_gas_2982", %entry + %"$consume_2984" = sub i64 %"$gasrem_2980", %"$gasadd_2979" + store i64 %"$consume_2984", i64* @_gasrem, align 8 + %maybeApproved = alloca %TName_Option_ByStr20*, align 8 + %"$indices_buf_2985_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2985_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2985_salloc_load", i64 32) + %"$indices_buf_2985_salloc" = bitcast i8* %"$indices_buf_2985_salloc_salloc" to [32 x i8]* + %"$indices_buf_2985" = bitcast [32 x i8]* %"$indices_buf_2985_salloc" to i8* + %"$indices_gep_2986" = getelementptr i8, i8* %"$indices_buf_2985", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_2986" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 + %"$execptr_load_2988" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_2989" = call i8* @_fetch_field(i8* %"$execptr_load_2988", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_2987", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_2985", i32 1), !dbg !325 + %"$maybeApproved_2990" = bitcast i8* %"$maybeApproved_call_2989" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_2990", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_2991" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_2991_2992" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2991" to i8* + %"$_literal_cost_call_2993" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_2991_2992") + %"$gasadd_2994" = add i64 %"$_literal_cost_call_2993", 0 + %"$gasadd_2995" = add i64 %"$gasadd_2994", 1 + %"$gasrem_2996" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2997" = icmp ugt i64 %"$gasadd_2995", %"$gasrem_2996" + br i1 %"$gascmp_2997", label %"$out_of_gas_2998", label %"$have_gas_2999" + +"$out_of_gas_2998": ; preds = %"$have_gas_2983" + call void @_out_of_gas() + br label %"$have_gas_2999" + +"$have_gas_2999": ; preds = %"$out_of_gas_2998", %"$have_gas_2983" + %"$consume_3000" = sub i64 %"$gasrem_2996", %"$gasadd_2995" + store i64 %"$consume_3000", i64* @_gasrem, align 8 + %"$gasrem_3001" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3002" = icmp ugt i64 1, %"$gasrem_3001" + br i1 %"$gascmp_3002", label %"$out_of_gas_3003", label %"$have_gas_3004" + +"$out_of_gas_3003": ; preds = %"$have_gas_2999" + call void @_out_of_gas() + br label %"$have_gas_3004" + +"$have_gas_3004": ; preds = %"$out_of_gas_3003", %"$have_gas_2999" + %"$consume_3005" = sub i64 %"$gasrem_3001", 1 + store i64 %"$consume_3005", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_3019" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3020" = icmp ugt i64 1, %"$gasrem_3019" - br i1 %"$gascmp_3020", label %"$out_of_gas_3021", label %"$have_gas_3022" - -"$out_of_gas_3021": ; preds = %"$have_gas_3017" - call void @_out_of_gas() - br label %"$have_gas_3022" - -"$have_gas_3022": ; preds = %"$out_of_gas_3021", %"$have_gas_3017" - %"$consume_3023" = sub i64 %"$gasrem_3019", 1 - store i64 %"$consume_3023", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_59" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_3024" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_3025" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3024", 0 - %"$ud-registry.recordMemberOwner_envptr_3026" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3024", 1 - %"$maybeRecord_3027" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_3028" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_3025"(i8* %"$ud-registry.recordMemberOwner_envptr_3026", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3028", %TName_Option_ud-registry.Record* %"$maybeRecord_3027"), !dbg !305 - %"$ud-registry.recordMemberOwner_ret_3029" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3028", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3029", [20 x i8]* %"$ud-registry.recordMemberOwner_59", align 1, !dbg !305 - %"$$ud-registry.recordMemberOwner_59_3030" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_59", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_59_3030", [20 x i8]* %recordOwner, align 1, !dbg !305 - %"$gasrem_3031" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3032" = icmp ugt i64 1, %"$gasrem_3031" - br i1 %"$gascmp_3032", label %"$out_of_gas_3033", label %"$have_gas_3034" - -"$out_of_gas_3033": ; preds = %"$have_gas_3022" - call void @_out_of_gas() - br label %"$have_gas_3034" - -"$have_gas_3034": ; preds = %"$out_of_gas_3033", %"$have_gas_3022" - %"$consume_3035" = sub i64 %"$gasrem_3031", 1 - store i64 %"$consume_3035", i64* @_gasrem, align 8 - %isSenderNodeOwner = alloca %TName_Bool*, align 8 - %"$gasrem_3036" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3037" = icmp ugt i64 20, %"$gasrem_3036" - br i1 %"$gascmp_3037", label %"$out_of_gas_3038", label %"$have_gas_3039" - -"$out_of_gas_3038": ; preds = %"$have_gas_3034" - call void @_out_of_gas() - br label %"$have_gas_3039" - -"$have_gas_3039": ; preds = %"$out_of_gas_3038", %"$have_gas_3034" - %"$consume_3040" = sub i64 %"$gasrem_3036", 20 - store i64 %"$consume_3040", i64* @_gasrem, align 8 - %"$execptr_load_3041" = load i8*, i8** @_execptr, align 8 - %"$eq__sender_3042" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_3042", align 1 - %"$$eq__sender_3042_3043" = bitcast [20 x i8]* %"$eq__sender_3042" to i8* - %"$eq_recordOwner_3044" = alloca [20 x i8], align 1 - %"$recordOwner_3045" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_3045", [20 x i8]* %"$eq_recordOwner_3044", align 1 - %"$$eq_recordOwner_3044_3046" = bitcast [20 x i8]* %"$eq_recordOwner_3044" to i8* - %"$eq_call_3047" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_3041", i32 20, i8* %"$$eq__sender_3042_3043", i8* %"$$eq_recordOwner_3044_3046"), !dbg !306 - store %TName_Bool* %"$eq_call_3047", %TName_Bool** %isSenderNodeOwner, align 8, !dbg !306 - %"$gasrem_3049" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3050" = icmp ugt i64 2, %"$gasrem_3049" - br i1 %"$gascmp_3050", label %"$out_of_gas_3051", label %"$have_gas_3052" - -"$out_of_gas_3051": ; preds = %"$have_gas_3039" - call void @_out_of_gas() - br label %"$have_gas_3052" - -"$have_gas_3052": ; preds = %"$out_of_gas_3051", %"$have_gas_3039" - %"$consume_3053" = sub i64 %"$gasrem_3049", 2 - store i64 %"$consume_3053", i64* @_gasrem, align 8 - %"$isSenderNodeOwner_3055" = load %TName_Bool*, %TName_Bool** %isSenderNodeOwner, align 8 - %"$isSenderNodeOwner_tag_3056" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderNodeOwner_3055", i32 0, i32 0 - %"$isSenderNodeOwner_tag_3057" = load i8, i8* %"$isSenderNodeOwner_tag_3056", align 1 - switch i8 %"$isSenderNodeOwner_tag_3057", label %"$empty_default_3058" [ - i8 0, label %"$True_3059" + %"$gasrem_3006" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3007" = icmp ugt i64 1, %"$gasrem_3006" + br i1 %"$gascmp_3007", label %"$out_of_gas_3008", label %"$have_gas_3009" + +"$out_of_gas_3008": ; preds = %"$have_gas_3004" + call void @_out_of_gas() + br label %"$have_gas_3009" + +"$have_gas_3009": ; preds = %"$out_of_gas_3008", %"$have_gas_3004" + %"$consume_3010" = sub i64 %"$gasrem_3006", 1 + store i64 %"$consume_3010", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_42" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_3011" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_3012" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3011", 0 + %"$ud-registry.recordMemberOwner_envptr_3013" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3011", 1 + %"$maybeRecord_3014" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_3015" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_3012"(i8* %"$ud-registry.recordMemberOwner_envptr_3013", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3015", %TName_Option_ud-registry.Record* %"$maybeRecord_3014"), !dbg !326 + %"$ud-registry.recordMemberOwner_ret_3016" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3015", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3016", [20 x i8]* %"$ud-registry.recordMemberOwner_42", align 1, !dbg !326 + %"$$ud-registry.recordMemberOwner_42_3017" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_42", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_42_3017", [20 x i8]* %recordOwner, align 1, !dbg !326 + %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 + %"$indices_buf_3018_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3018_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3018_salloc_load", i64 20) + %"$indices_buf_3018_salloc" = bitcast i8* %"$indices_buf_3018_salloc_salloc" to [20 x i8]* + %"$indices_buf_3018" = bitcast [20 x i8]* %"$indices_buf_3018_salloc" to i8* + %"$recordOwner_3019" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_3020" = getelementptr i8, i8* %"$indices_buf_3018", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_3020" to [20 x i8]* + store [20 x i8] %"$recordOwner_3019", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_3022" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_3023" = call i8* @_fetch_field(i8* %"$execptr_load_3022", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3021", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_3018", i32 1), !dbg !327 + %"$maybeOperators_3024" = bitcast i8* %"$maybeOperators_call_3023" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3024", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_3025" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_3025_3026" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3025" to i8* + %"$_literal_cost_call_3027" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", i8* %"$$maybeOperators_3025_3026") + %"$gasadd_3028" = add i64 %"$_literal_cost_call_3027", 0 + %"$gasadd_3029" = add i64 %"$gasadd_3028", 1 + %"$gasrem_3030" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3031" = icmp ugt i64 %"$gasadd_3029", %"$gasrem_3030" + br i1 %"$gascmp_3031", label %"$out_of_gas_3032", label %"$have_gas_3033" + +"$out_of_gas_3032": ; preds = %"$have_gas_3009" + call void @_out_of_gas() + br label %"$have_gas_3033" + +"$have_gas_3033": ; preds = %"$out_of_gas_3032", %"$have_gas_3009" + %"$consume_3034" = sub i64 %"$gasrem_3030", %"$gasadd_3029" + store i64 %"$consume_3034", i64* @_gasrem, align 8 + %"$gasrem_3035" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3036" = icmp ugt i64 1, %"$gasrem_3035" + br i1 %"$gascmp_3036", label %"$out_of_gas_3037", label %"$have_gas_3038" + +"$out_of_gas_3037": ; preds = %"$have_gas_3033" + call void @_out_of_gas() + br label %"$have_gas_3038" + +"$have_gas_3038": ; preds = %"$out_of_gas_3037", %"$have_gas_3033" + %"$consume_3039" = sub i64 %"$gasrem_3035", 1 + store i64 %"$consume_3039", i64* @_gasrem, align 8 + %isSenderOAO = alloca %TName_Bool*, align 8 + %"$gasrem_3040" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3041" = icmp ugt i64 1, %"$gasrem_3040" + br i1 %"$gascmp_3041", label %"$out_of_gas_3042", label %"$have_gas_3043" + +"$out_of_gas_3042": ; preds = %"$have_gas_3038" + call void @_out_of_gas() + br label %"$have_gas_3043" + +"$have_gas_3043": ; preds = %"$out_of_gas_3042", %"$have_gas_3038" + %"$consume_3044" = sub i64 %"$gasrem_3040", 1 + store i64 %"$consume_3044", i64* @_gasrem, align 8 + %"$ud-registry.getIsOAO_3045" = load { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }* @ud-registry.getIsOAO, align 8 + %"$ud-registry.getIsOAO_fptr_3046" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3045", 0 + %"$ud-registry.getIsOAO_envptr_3047" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3045", 1 + %"$ud-registry.getIsOAO__sender_3048" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3048", align 1 + %"$ud-registry.getIsOAO_recordOwner_3049" = alloca [20 x i8], align 1 + %"$recordOwner_3050" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3050", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3049", align 1 + %"$maybeApproved_3051" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeOperators_3052" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$ud-registry.getIsOAO_call_3053" = call %TName_Bool* %"$ud-registry.getIsOAO_fptr_3046"(i8* %"$ud-registry.getIsOAO_envptr_3047", [20 x i8]* %"$ud-registry.getIsOAO__sender_3048", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3049", %TName_Option_ByStr20* %"$maybeApproved_3051", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3052"), !dbg !328 + store %TName_Bool* %"$ud-registry.getIsOAO_call_3053", %TName_Bool** %isSenderOAO, align 8, !dbg !328 + %"$gasrem_3054" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3055" = icmp ugt i64 2, %"$gasrem_3054" + br i1 %"$gascmp_3055", label %"$out_of_gas_3056", label %"$have_gas_3057" + +"$out_of_gas_3056": ; preds = %"$have_gas_3043" + call void @_out_of_gas() + br label %"$have_gas_3057" + +"$have_gas_3057": ; preds = %"$out_of_gas_3056", %"$have_gas_3043" + %"$consume_3058" = sub i64 %"$gasrem_3054", 2 + store i64 %"$consume_3058", i64* @_gasrem, align 8 + %"$isSenderOAO_3060" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_3061" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3060", i32 0, i32 0 + %"$isSenderOAO_tag_3062" = load i8, i8* %"$isSenderOAO_tag_3061", align 1 + switch i8 %"$isSenderOAO_tag_3062", label %"$empty_default_3063" [ + i8 0, label %"$True_3064" i8 1, label %"$False_3197" - ], !dbg !307 + ], !dbg !329 -"$True_3059": ; preds = %"$have_gas_3052" - %"$isSenderNodeOwner_3060" = bitcast %TName_Bool* %"$isSenderNodeOwner_3055" to %CName_True* - %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_3061_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3061_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3061_salloc_load", i64 32) - %"$indices_buf_3061_salloc" = bitcast i8* %"$indices_buf_3061_salloc_salloc" to [32 x i8]* - %"$indices_buf_3061" = bitcast [32 x i8]* %"$indices_buf_3061_salloc" to i8* - %"$indices_gep_3062" = getelementptr i8, i8* %"$indices_buf_3061", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_3062" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_3064" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_3065" = call i8* @_fetch_field(i8* %"$execptr_load_3064", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3063", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_3061", i32 1), !dbg !308 - %"$maybeApproved_3066" = bitcast i8* %"$maybeApproved_call_3065" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_3066", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_3067" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_3067_3068" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3067" to i8* - %"$_literal_cost_call_3069" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_3067_3068") - %"$gasadd_3070" = add i64 %"$_literal_cost_call_3069", 0 - %"$gasadd_3071" = add i64 %"$gasadd_3070", 1 - %"$gasrem_3072" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3073" = icmp ugt i64 %"$gasadd_3071", %"$gasrem_3072" - br i1 %"$gascmp_3073", label %"$out_of_gas_3074", label %"$have_gas_3075" - -"$out_of_gas_3074": ; preds = %"$True_3059" - call void @_out_of_gas() - br label %"$have_gas_3075" - -"$have_gas_3075": ; preds = %"$out_of_gas_3074", %"$True_3059" - %"$consume_3076" = sub i64 %"$gasrem_3072", %"$gasadd_3071" - store i64 %"$consume_3076", i64* @_gasrem, align 8 - %"$gasrem_3077" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3078" = icmp ugt i64 1, %"$gasrem_3077" - br i1 %"$gascmp_3078", label %"$out_of_gas_3079", label %"$have_gas_3080" - -"$out_of_gas_3079": ; preds = %"$have_gas_3075" - call void @_out_of_gas() - br label %"$have_gas_3080" - -"$have_gas_3080": ; preds = %"$out_of_gas_3079", %"$have_gas_3075" - %"$consume_3081" = sub i64 %"$gasrem_3077", 1 - store i64 %"$consume_3081", i64* @_gasrem, align 8 - %currentlyApproved = alloca [20 x i8], align 1 - %"$gasrem_3082" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3083" = icmp ugt i64 2, %"$gasrem_3082" - br i1 %"$gascmp_3083", label %"$out_of_gas_3084", label %"$have_gas_3085" - -"$out_of_gas_3084": ; preds = %"$have_gas_3080" - call void @_out_of_gas() - br label %"$have_gas_3085" - -"$have_gas_3085": ; preds = %"$out_of_gas_3084", %"$have_gas_3080" - %"$consume_3086" = sub i64 %"$gasrem_3082", 2 - store i64 %"$consume_3086", i64* @_gasrem, align 8 - %"$maybeApproved_3088" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_tag_3089" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_3088", i32 0, i32 0 - %"$maybeApproved_tag_3090" = load i8, i8* %"$maybeApproved_tag_3089", align 1 - switch i8 %"$maybeApproved_tag_3090", label %"$empty_default_3091" [ - i8 1, label %"$None_3092" - i8 0, label %"$Some_3100" - ], !dbg !311 - -"$None_3092": ; preds = %"$have_gas_3085" - %"$maybeApproved_3093" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3088" to %CName_None_ByStr20* - %"$gasrem_3094" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3095" = icmp ugt i64 1, %"$gasrem_3094" - br i1 %"$gascmp_3095", label %"$out_of_gas_3096", label %"$have_gas_3097" - -"$out_of_gas_3096": ; preds = %"$None_3092" - call void @_out_of_gas() - br label %"$have_gas_3097" - -"$have_gas_3097": ; preds = %"$out_of_gas_3096", %"$None_3092" - %"$consume_3098" = sub i64 %"$gasrem_3094", 1 - store i64 %"$consume_3098", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_3099" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_3099", [20 x i8]* %currentlyApproved, align 1, !dbg !312 - br label %"$matchsucc_3087" - -"$Some_3100": ; preds = %"$have_gas_3085" - %"$maybeApproved_3101" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3088" to %CName_Some_ByStr20* - %"$approved_gep_3102" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_3101", i32 0, i32 1 - %"$approved_load_3103" = load [20 x i8], [20 x i8]* %"$approved_gep_3102", align 1 - %approved = alloca [20 x i8], align 1 - store [20 x i8] %"$approved_load_3103", [20 x i8]* %approved, align 1 - %"$gasrem_3104" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3105" = icmp ugt i64 1, %"$gasrem_3104" - br i1 %"$gascmp_3105", label %"$out_of_gas_3106", label %"$have_gas_3107" +"$True_3064": ; preds = %"$have_gas_3057" + %"$isSenderOAO_3065" = bitcast %TName_Bool* %"$isSenderOAO_3060" to %CName_True* + %"$gasrem_3066" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3067" = icmp ugt i64 1, %"$gasrem_3066" + br i1 %"$gascmp_3067", label %"$out_of_gas_3068", label %"$have_gas_3069" -"$out_of_gas_3106": ; preds = %"$Some_3100" +"$out_of_gas_3068": ; preds = %"$True_3064" call void @_out_of_gas() - br label %"$have_gas_3107" + br label %"$have_gas_3069" -"$have_gas_3107": ; preds = %"$out_of_gas_3106", %"$Some_3100" - %"$consume_3108" = sub i64 %"$gasrem_3104", 1 - store i64 %"$consume_3108", i64* @_gasrem, align 8 - %"$approved_3109" = load [20 x i8], [20 x i8]* %approved, align 1 - store [20 x i8] %"$approved_3109", [20 x i8]* %currentlyApproved, align 1, !dbg !315 - br label %"$matchsucc_3087" - -"$empty_default_3091": ; preds = %"$have_gas_3085" - br label %"$matchsucc_3087" - -"$matchsucc_3087": ; preds = %"$have_gas_3107", %"$have_gas_3097", %"$empty_default_3091" - %"$gasrem_3110" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3111" = icmp ugt i64 1, %"$gasrem_3110" - br i1 %"$gascmp_3111", label %"$out_of_gas_3112", label %"$have_gas_3113" +"$have_gas_3069": ; preds = %"$out_of_gas_3068", %"$True_3064" + %"$consume_3070" = sub i64 %"$gasrem_3066", 1 + store i64 %"$consume_3070", i64* @_gasrem, align 8 + %newRecord = alloca %TName_ud-registry.Record*, align 8 + %"$gasrem_3071" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3072" = icmp ugt i64 1, %"$gasrem_3071" + br i1 %"$gascmp_3072", label %"$out_of_gas_3073", label %"$have_gas_3074" + +"$out_of_gas_3073": ; preds = %"$have_gas_3069" + call void @_out_of_gas() + br label %"$have_gas_3074" + +"$have_gas_3074": ; preds = %"$out_of_gas_3073", %"$have_gas_3069" + %"$consume_3075" = sub i64 %"$gasrem_3071", 1 + store i64 %"$consume_3075", i64* @_gasrem, align 8 + %"$adtval_3076_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3076_salloc" = call i8* @_salloc(i8* %"$adtval_3076_load", i64 41) + %"$adtval_3076" = bitcast i8* %"$adtval_3076_salloc" to %CName_ud-registry.Record* + %"$adtgep_3077" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3076", i32 0, i32 0 + store i8 0, i8* %"$adtgep_3077", align 1 + %"$adtgep_3078" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3076", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_3078", align 1 + %"$adtgep_3079" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3076", i32 0, i32 2 + store [20 x i8] %resolver, [20 x i8]* %"$adtgep_3079", align 1 + %"$adtptr_3080" = bitcast %CName_ud-registry.Record* %"$adtval_3076" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_3080", %TName_ud-registry.Record** %newRecord, align 8, !dbg !330 + %"$newRecord_3081" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_3081_3082" = bitcast %TName_ud-registry.Record* %"$newRecord_3081" to i8* + %"$_literal_cost_call_3083" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", i8* %"$$newRecord_3081_3082") + %"$gasadd_3084" = add i64 %"$_literal_cost_call_3083", 1 + %"$gasrem_3085" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3086" = icmp ugt i64 %"$gasadd_3084", %"$gasrem_3085" + br i1 %"$gascmp_3086", label %"$out_of_gas_3087", label %"$have_gas_3088" + +"$out_of_gas_3087": ; preds = %"$have_gas_3074" + call void @_out_of_gas() + br label %"$have_gas_3088" + +"$have_gas_3088": ; preds = %"$out_of_gas_3087", %"$have_gas_3074" + %"$consume_3089" = sub i64 %"$gasrem_3085", %"$gasadd_3084" + store i64 %"$consume_3089", i64* @_gasrem, align 8 + %"$indices_buf_3090_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3090_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3090_salloc_load", i64 32) + %"$indices_buf_3090_salloc" = bitcast i8* %"$indices_buf_3090_salloc_salloc" to [32 x i8]* + %"$indices_buf_3090" = bitcast [32 x i8]* %"$indices_buf_3090_salloc" to i8* + %"$indices_gep_3091" = getelementptr i8, i8* %"$indices_buf_3090", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_3091" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %indices_cast3, align 1 + %"$execptr_load_3092" = load i8*, i8** @_execptr, align 8 + %"$newRecord_3094" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_3095" = bitcast %TName_ud-registry.Record* %"$newRecord_3094" to i8* + call void @_update_field(i8* %"$execptr_load_3092", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3093", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3090", i8* %"$update_value_3095"), !dbg !333 + %"$gasrem_3096" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3097" = icmp ugt i64 1, %"$gasrem_3096" + br i1 %"$gascmp_3097", label %"$out_of_gas_3098", label %"$have_gas_3099" -"$out_of_gas_3112": ; preds = %"$matchsucc_3087" +"$out_of_gas_3098": ; preds = %"$have_gas_3088" call void @_out_of_gas() - br label %"$have_gas_3113" + br label %"$have_gas_3099" -"$have_gas_3113": ; preds = %"$out_of_gas_3112", %"$matchsucc_3087" - %"$consume_3114" = sub i64 %"$gasrem_3110", 1 - store i64 %"$consume_3114", i64* @_gasrem, align 8 - %needsToChange = alloca %TName_Bool*, align 8 - %"$gasrem_3115" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3116" = icmp ugt i64 1, %"$gasrem_3115" - br i1 %"$gascmp_3116", label %"$out_of_gas_3117", label %"$have_gas_3118" +"$have_gas_3099": ; preds = %"$out_of_gas_3098", %"$have_gas_3088" + %"$consume_3100" = sub i64 %"$gasrem_3096", 1 + store i64 %"$consume_3100", i64* @_gasrem, align 8 + %e = alloca i8*, align 8 + %"$gasrem_3101" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3102" = icmp ugt i64 1, %"$gasrem_3101" + br i1 %"$gascmp_3102", label %"$out_of_gas_3103", label %"$have_gas_3104" + +"$out_of_gas_3103": ; preds = %"$have_gas_3099" + call void @_out_of_gas() + br label %"$have_gas_3104" + +"$have_gas_3104": ; preds = %"$out_of_gas_3103", %"$have_gas_3099" + %"$consume_3105" = sub i64 %"$gasrem_3101", 1 + store i64 %"$consume_3105", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_3106" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_3107" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3106", 0 + %"$ud-registry.eConfigured_envptr_3108" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3106", 1 + %"$ud-registry.eConfigured_node_3109" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_3109", align 1 + %"$ud-registry.eConfigured_owner_3110" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$ud-registry.eConfigured_owner_3110", align 1 + %"$ud-registry.eConfigured_resolver_3111" = alloca [20 x i8], align 1 + store [20 x i8] %resolver, [20 x i8]* %"$ud-registry.eConfigured_resolver_3111", align 1 + %"$ud-registry.eConfigured_call_3112" = call i8* %"$ud-registry.eConfigured_fptr_3107"(i8* %"$ud-registry.eConfigured_envptr_3108", [32 x i8]* %"$ud-registry.eConfigured_node_3109", [20 x i8]* %"$ud-registry.eConfigured_owner_3110", [20 x i8]* %"$ud-registry.eConfigured_resolver_3111"), !dbg !334 + store i8* %"$ud-registry.eConfigured_call_3112", i8** %e, align 8, !dbg !334 + %"$e_3113" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_3115" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3113") + %"$gasrem_3116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3117" = icmp ugt i64 %"$_literal_cost_call_3115", %"$gasrem_3116" + br i1 %"$gascmp_3117", label %"$out_of_gas_3118", label %"$have_gas_3119" + +"$out_of_gas_3118": ; preds = %"$have_gas_3104" + call void @_out_of_gas() + br label %"$have_gas_3119" + +"$have_gas_3119": ; preds = %"$out_of_gas_3118", %"$have_gas_3104" + %"$consume_3120" = sub i64 %"$gasrem_3116", %"$_literal_cost_call_3115" + store i64 %"$consume_3120", i64* @_gasrem, align 8 + %"$execptr_load_3121" = load i8*, i8** @_execptr, align 8 + %"$e_3122" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_3121", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3122"), !dbg !335 + %"$gasrem_3123" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3124" = icmp ugt i64 1, %"$gasrem_3123" + br i1 %"$gascmp_3124", label %"$out_of_gas_3125", label %"$have_gas_3126" + +"$out_of_gas_3125": ; preds = %"$have_gas_3119" + call void @_out_of_gas() + br label %"$have_gas_3126" + +"$have_gas_3126": ; preds = %"$out_of_gas_3125", %"$have_gas_3119" + %"$consume_3127" = sub i64 %"$gasrem_3123", 1 + store i64 %"$consume_3127", i64* @_gasrem, align 8 + %msgs = alloca %TName_List_Message*, align 8 + %"$gasrem_3128" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3129" = icmp ugt i64 1, %"$gasrem_3128" + br i1 %"$gascmp_3129", label %"$out_of_gas_3130", label %"$have_gas_3131" -"$out_of_gas_3117": ; preds = %"$have_gas_3113" +"$out_of_gas_3130": ; preds = %"$have_gas_3126" call void @_out_of_gas() - br label %"$have_gas_3118" + br label %"$have_gas_3131" -"$have_gas_3118": ; preds = %"$out_of_gas_3117", %"$have_gas_3113" - %"$consume_3119" = sub i64 %"$gasrem_3115", 1 - store i64 %"$consume_3119", i64* @_gasrem, align 8 - %b = alloca %TName_Bool*, align 8 - %"$gasrem_3120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3121" = icmp ugt i64 20, %"$gasrem_3120" - br i1 %"$gascmp_3121", label %"$out_of_gas_3122", label %"$have_gas_3123" - -"$out_of_gas_3122": ; preds = %"$have_gas_3118" - call void @_out_of_gas() - br label %"$have_gas_3123" - -"$have_gas_3123": ; preds = %"$out_of_gas_3122", %"$have_gas_3118" - %"$consume_3124" = sub i64 %"$gasrem_3120", 20 - store i64 %"$consume_3124", i64* @_gasrem, align 8 - %"$execptr_load_3125" = load i8*, i8** @_execptr, align 8 - %"$eq_currentlyApproved_3126" = alloca [20 x i8], align 1 - %"$currentlyApproved_3127" = load [20 x i8], [20 x i8]* %currentlyApproved, align 1 - store [20 x i8] %"$currentlyApproved_3127", [20 x i8]* %"$eq_currentlyApproved_3126", align 1 - %"$$eq_currentlyApproved_3126_3128" = bitcast [20 x i8]* %"$eq_currentlyApproved_3126" to i8* - %"$eq_address_3129" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$eq_address_3129", align 1 - %"$$eq_address_3129_3130" = bitcast [20 x i8]* %"$eq_address_3129" to i8* - %"$eq_call_3131" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_3125", i32 20, i8* %"$$eq_currentlyApproved_3126_3128", i8* %"$$eq_address_3129_3130"), !dbg !317 - store %TName_Bool* %"$eq_call_3131", %TName_Bool** %b, align 8, !dbg !317 +"$have_gas_3131": ; preds = %"$out_of_gas_3130", %"$have_gas_3126" + %"$consume_3132" = sub i64 %"$gasrem_3128", 1 + store i64 %"$consume_3132", i64* @_gasrem, align 8 + %m = alloca i8*, align 8 %"$gasrem_3133" = load i64, i64* @_gasrem, align 8 %"$gascmp_3134" = icmp ugt i64 1, %"$gasrem_3133" br i1 %"$gascmp_3134", label %"$out_of_gas_3135", label %"$have_gas_3136" -"$out_of_gas_3135": ; preds = %"$have_gas_3123" +"$out_of_gas_3135": ; preds = %"$have_gas_3131" call void @_out_of_gas() br label %"$have_gas_3136" -"$have_gas_3136": ; preds = %"$out_of_gas_3135", %"$have_gas_3123" +"$have_gas_3136": ; preds = %"$out_of_gas_3135", %"$have_gas_3131" %"$consume_3137" = sub i64 %"$gasrem_3133", 1 store i64 %"$consume_3137", i64* @_gasrem, align 8 - %"$BoolUtils.negb_57" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_3138" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_3139" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_3138", 0 - %"$BoolUtils.negb_envptr_3140" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_3138", 1 - %"$b_3141" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$BoolUtils.negb_call_3142" = call %TName_Bool* %"$BoolUtils.negb_fptr_3139"(i8* %"$BoolUtils.negb_envptr_3140", %TName_Bool* %"$b_3141"), !dbg !318 - store %TName_Bool* %"$BoolUtils.negb_call_3142", %TName_Bool** %"$BoolUtils.negb_57", align 8, !dbg !318 - %"$$BoolUtils.negb_57_3143" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_57", align 8 - store %TName_Bool* %"$$BoolUtils.negb_57_3143", %TName_Bool** %needsToChange, align 8, !dbg !318 - %"$gasrem_3144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3145" = icmp ugt i64 2, %"$gasrem_3144" - br i1 %"$gascmp_3145", label %"$out_of_gas_3146", label %"$have_gas_3147" - -"$out_of_gas_3146": ; preds = %"$have_gas_3136" - call void @_out_of_gas() - br label %"$have_gas_3147" - -"$have_gas_3147": ; preds = %"$out_of_gas_3146", %"$have_gas_3136" - %"$consume_3148" = sub i64 %"$gasrem_3144", 2 - store i64 %"$consume_3148", i64* @_gasrem, align 8 - %"$needsToChange_3150" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 - %"$needsToChange_tag_3151" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_3150", i32 0, i32 0 - %"$needsToChange_tag_3152" = load i8, i8* %"$needsToChange_tag_3151", align 1 - switch i8 %"$needsToChange_tag_3152", label %"$default_3153" [ - i8 0, label %"$True_3154" - ], !dbg !319 - -"$True_3154": ; preds = %"$have_gas_3147" - %"$needsToChange_3155" = bitcast %TName_Bool* %"$needsToChange_3150" to %CName_True* - %"$_literal_cost_address_3156" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_3156", align 1 - %"$$_literal_cost_address_3156_3157" = bitcast [20 x i8]* %"$_literal_cost_address_3156" to i8* - %"$_literal_cost_call_3158" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i8* %"$$_literal_cost_address_3156_3157") - %"$gasadd_3159" = add i64 %"$_literal_cost_call_3158", 1 - %"$gasrem_3160" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3161" = icmp ugt i64 %"$gasadd_3159", %"$gasrem_3160" - br i1 %"$gascmp_3161", label %"$out_of_gas_3162", label %"$have_gas_3163" - -"$out_of_gas_3162": ; preds = %"$True_3154" - call void @_out_of_gas() - br label %"$have_gas_3163" - -"$have_gas_3163": ; preds = %"$out_of_gas_3162", %"$True_3154" - %"$consume_3164" = sub i64 %"$gasrem_3160", %"$gasadd_3159" - store i64 %"$consume_3164", i64* @_gasrem, align 8 - %"$indices_buf_3165_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3165_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3165_salloc_load", i64 32) - %"$indices_buf_3165_salloc" = bitcast i8* %"$indices_buf_3165_salloc_salloc" to [32 x i8]* - %"$indices_buf_3165" = bitcast [32 x i8]* %"$indices_buf_3165_salloc" to i8* - %"$indices_gep_3166" = getelementptr i8, i8* %"$indices_buf_3165", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_3166" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %indices_cast2, align 1 - %"$execptr_load_3167" = load i8*, i8** @_execptr, align 8 - %"$update_value_3169" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$update_value_3169", align 1 - %"$update_value_3170" = bitcast [20 x i8]* %"$update_value_3169" to i8* - call void @_update_field(i8* %"$execptr_load_3167", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3168", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_3165", i8* %"$update_value_3170"), !dbg !320 - %"$gasrem_3171" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3172" = icmp ugt i64 1, %"$gasrem_3171" - br i1 %"$gascmp_3172", label %"$out_of_gas_3173", label %"$have_gas_3174" - -"$out_of_gas_3173": ; preds = %"$have_gas_3163" - call void @_out_of_gas() - br label %"$have_gas_3174" - -"$have_gas_3174": ; preds = %"$out_of_gas_3173", %"$have_gas_3163" - %"$consume_3175" = sub i64 %"$gasrem_3171", 1 - store i64 %"$consume_3175", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 + %"$msgobj_3138_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3138_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3138_salloc_load", i64 225) + %"$msgobj_3138_salloc" = bitcast i8* %"$msgobj_3138_salloc_salloc" to [225 x i8]* + %"$msgobj_3138" = bitcast [225 x i8]* %"$msgobj_3138_salloc" to i8* + store i8 5, i8* %"$msgobj_3138", align 1 + %"$msgobj_fname_3140" = getelementptr i8, i8* %"$msgobj_3138", i32 1 + %"$msgobj_fname_3141" = bitcast i8* %"$msgobj_fname_3140" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3139", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3141", align 8 + %"$msgobj_td_3142" = getelementptr i8, i8* %"$msgobj_3138", i32 17 + %"$msgobj_td_3143" = bitcast i8* %"$msgobj_td_3142" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_3143", align 8 + %"$msgobj_v_3145" = getelementptr i8, i8* %"$msgobj_3138", i32 25 + %"$msgobj_v_3146" = bitcast i8* %"$msgobj_v_3145" to %String* + store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3144", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3146", align 8 + %"$msgobj_fname_3148" = getelementptr i8, i8* %"$msgobj_3138", i32 41 + %"$msgobj_fname_3149" = bitcast i8* %"$msgobj_fname_3148" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3147", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3149", align 8 + %"$msgobj_td_3150" = getelementptr i8, i8* %"$msgobj_3138", i32 57 + %"$msgobj_td_3151" = bitcast i8* %"$msgobj_td_3150" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_3151", align 8 + %"$msgobj_v_3152" = getelementptr i8, i8* %"$msgobj_3138", i32 65 + %"$msgobj_v_3153" = bitcast i8* %"$msgobj_v_3152" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3153", align 1 + %"$msgobj_fname_3155" = getelementptr i8, i8* %"$msgobj_3138", i32 97 + %"$msgobj_fname_3156" = bitcast i8* %"$msgobj_fname_3155" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3154", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3156", align 8 + %"$msgobj_td_3157" = getelementptr i8, i8* %"$msgobj_3138", i32 113 + %"$msgobj_td_3158" = bitcast i8* %"$msgobj_td_3157" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3158", align 8 + %"$msgobj_v_3159" = getelementptr i8, i8* %"$msgobj_3138", i32 121 + %"$msgobj_v_3160" = bitcast i8* %"$msgobj_v_3159" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_3160", align 1 + %"$msgobj_fname_3162" = getelementptr i8, i8* %"$msgobj_3138", i32 141 + %"$msgobj_fname_3163" = bitcast i8* %"$msgobj_fname_3162" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3161", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3163", align 8 + %"$msgobj_td_3164" = getelementptr i8, i8* %"$msgobj_3138", i32 157 + %"$msgobj_td_3165" = bitcast i8* %"$msgobj_td_3164" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_3165", align 8 + %"$msgobj_v_3166" = getelementptr i8, i8* %"$msgobj_3138", i32 165 + %"$msgobj_v_3167" = bitcast i8* %"$msgobj_v_3166" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3167", align 8 + %"$msgobj_fname_3169" = getelementptr i8, i8* %"$msgobj_3138", i32 181 + %"$msgobj_fname_3170" = bitcast i8* %"$msgobj_fname_3169" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3168", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3170", align 8 + %"$msgobj_td_3171" = getelementptr i8, i8* %"$msgobj_3138", i32 197 + %"$msgobj_td_3172" = bitcast i8* %"$msgobj_td_3171" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3172", align 8 + %"$msgobj_v_3173" = getelementptr i8, i8* %"$msgobj_3138", i32 205 + %"$msgobj_v_3174" = bitcast i8* %"$msgobj_v_3173" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3174", align 1 + store i8* %"$msgobj_3138", i8** %m, align 8, !dbg !336 %"$gasrem_3176" = load i64, i64* @_gasrem, align 8 %"$gascmp_3177" = icmp ugt i64 1, %"$gasrem_3176" br i1 %"$gascmp_3177", label %"$out_of_gas_3178", label %"$have_gas_3179" -"$out_of_gas_3178": ; preds = %"$have_gas_3174" +"$out_of_gas_3178": ; preds = %"$have_gas_3136" call void @_out_of_gas() br label %"$have_gas_3179" -"$have_gas_3179": ; preds = %"$out_of_gas_3178", %"$have_gas_3174" +"$have_gas_3179": ; preds = %"$out_of_gas_3178", %"$have_gas_3136" %"$consume_3180" = sub i64 %"$gasrem_3176", 1 store i64 %"$consume_3180", i64* @_gasrem, align 8 - %"$ud-registry.eApproved_56" = alloca i8*, align 8 - %"$ud-registry.eApproved_3181" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8 - %"$ud-registry.eApproved_fptr_3182" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_3181", 0 - %"$ud-registry.eApproved_envptr_3183" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_3181", 1 - %"$ud-registry.eApproved_address_3184" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-registry.eApproved_address_3184", align 1 - %"$ud-registry.eApproved_call_3185" = call i8* %"$ud-registry.eApproved_fptr_3182"(i8* %"$ud-registry.eApproved_envptr_3183", [20 x i8]* %"$ud-registry.eApproved_address_3184"), !dbg !323 - store i8* %"$ud-registry.eApproved_call_3185", i8** %"$ud-registry.eApproved_56", align 8, !dbg !323 - %"$$ud-registry.eApproved_56_3186" = load i8*, i8** %"$ud-registry.eApproved_56", align 8 - store i8* %"$$ud-registry.eApproved_56_3186", i8** %e, align 8, !dbg !323 - %"$e_3187" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_3189" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3187") + %"$ud-registry.oneMsg_43" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_3181" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_3182" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3181", 0 + %"$ud-registry.oneMsg_envptr_3183" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3181", 1 + %"$m_3184" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_3185" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3182"(i8* %"$ud-registry.oneMsg_envptr_3183", i8* %"$m_3184"), !dbg !337 + store %TName_List_Message* %"$ud-registry.oneMsg_call_3185", %TName_List_Message** %"$ud-registry.oneMsg_43", align 8, !dbg !337 + %"$$ud-registry.oneMsg_43_3186" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_43", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_43_3186", %TName_List_Message** %msgs, align 8, !dbg !337 + %"$msgs_3187" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_3187_3188" = bitcast %TName_List_Message* %"$msgs_3187" to i8* + %"$_literal_cost_call_3189" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_3187_3188") %"$gasrem_3190" = load i64, i64* @_gasrem, align 8 %"$gascmp_3191" = icmp ugt i64 %"$_literal_cost_call_3189", %"$gasrem_3190" br i1 %"$gascmp_3191", label %"$out_of_gas_3192", label %"$have_gas_3193" @@ -5955,21 +6141,12 @@ entry: %"$consume_3194" = sub i64 %"$gasrem_3190", %"$_literal_cost_call_3189" store i64 %"$consume_3194", i64* @_gasrem, align 8 %"$execptr_load_3195" = load i8*, i8** @_execptr, align 8 - %"$e_3196" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_3195", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3196"), !dbg !324 - br label %"$matchsucc_3149" - -"$default_3153": ; preds = %"$have_gas_3147" - br label %"$joinp_5" - -"$joinp_5": ; preds = %"$default_3153" - br label %"$matchsucc_3149" + %"$msgs_3196" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_3195", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_3196"), !dbg !338 + br label %"$matchsucc_3059" -"$matchsucc_3149": ; preds = %"$have_gas_3193", %"$joinp_5" - br label %"$matchsucc_3054" - -"$False_3197": ; preds = %"$have_gas_3052" - %"$isSenderNodeOwner_3198" = bitcast %TName_Bool* %"$isSenderNodeOwner_3055" to %CName_False* +"$False_3197": ; preds = %"$have_gas_3057" + %"$isSenderOAO_3198" = bitcast %TName_Bool* %"$isSenderOAO_3060" to %CName_False* %"$gasrem_3199" = load i64, i64* @_gasrem, align 8 %"$gascmp_3200" = icmp ugt i64 1, %"$gasrem_3199" br i1 %"$gascmp_3200", label %"$out_of_gas_3201", label %"$have_gas_3202" @@ -5981,7 +6158,7 @@ entry: "$have_gas_3202": ; preds = %"$out_of_gas_3201", %"$False_3197" %"$consume_3203" = sub i64 %"$gasrem_3199", 1 store i64 %"$consume_3203", i64* @_gasrem, align 8 - %e3 = alloca i8*, align 8 + %e4 = alloca i8*, align 8 %"$gasrem_3204" = load i64, i64* @_gasrem, align 8 %"$gascmp_3205" = icmp ugt i64 1, %"$gasrem_3204" br i1 %"$gascmp_3205", label %"$out_of_gas_3206", label %"$have_gas_3207" @@ -5993,7 +6170,7 @@ entry: "$have_gas_3207": ; preds = %"$out_of_gas_3206", %"$have_gas_3202" %"$consume_3208" = sub i64 %"$gasrem_3204", 1 store i64 %"$consume_3208", i64* @_gasrem, align 8 - %m = alloca %String, align 8 + %m5 = alloca %String, align 8 %"$gasrem_3209" = load i64, i64* @_gasrem, align 8 %"$gascmp_3210" = icmp ugt i64 1, %"$gasrem_3209" br i1 %"$gascmp_3210", label %"$out_of_gas_3211", label %"$have_gas_3212" @@ -6005,7 +6182,7 @@ entry: "$have_gas_3212": ; preds = %"$out_of_gas_3211", %"$have_gas_3207" %"$consume_3213" = sub i64 %"$gasrem_3209", 1 store i64 %"$consume_3213", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_3214", i32 0, i32 0), i32 21 }, %String* %m, align 8, !dbg !325 + store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_3214", i32 0, i32 0), i32 43 }, %String* %m5, align 8, !dbg !339 %"$gasrem_3215" = load i64, i64* @_gasrem, align 8 %"$gascmp_3216" = icmp ugt i64 1, %"$gasrem_3215" br i1 %"$gascmp_3216", label %"$out_of_gas_3217", label %"$have_gas_3218" @@ -6017,17 +6194,17 @@ entry: "$have_gas_3218": ; preds = %"$out_of_gas_3217", %"$have_gas_3212" %"$consume_3219" = sub i64 %"$gasrem_3215", 1 store i64 %"$consume_3219", i64* @_gasrem, align 8 - %"$ud-registry.eError_58" = alloca i8*, align 8 + %"$ud-registry.eError_44" = alloca i8*, align 8 %"$ud-registry.eError_3220" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 %"$ud-registry.eError_fptr_3221" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3220", 0 %"$ud-registry.eError_envptr_3222" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3220", 1 - %"$m_3223" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_3224" = call i8* %"$ud-registry.eError_fptr_3221"(i8* %"$ud-registry.eError_envptr_3222", %String %"$m_3223"), !dbg !327 - store i8* %"$ud-registry.eError_call_3224", i8** %"$ud-registry.eError_58", align 8, !dbg !327 - %"$$ud-registry.eError_58_3225" = load i8*, i8** %"$ud-registry.eError_58", align 8 - store i8* %"$$ud-registry.eError_58_3225", i8** %e3, align 8, !dbg !327 - %"$e_3226" = load i8*, i8** %e3, align 8 - %"$_literal_cost_call_3228" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3226") + %"$m_3223" = load %String, %String* %m5, align 8 + %"$ud-registry.eError_call_3224" = call i8* %"$ud-registry.eError_fptr_3221"(i8* %"$ud-registry.eError_envptr_3222", %String %"$m_3223"), !dbg !341 + store i8* %"$ud-registry.eError_call_3224", i8** %"$ud-registry.eError_44", align 8, !dbg !341 + %"$$ud-registry.eError_44_3225" = load i8*, i8** %"$ud-registry.eError_44", align 8 + store i8* %"$$ud-registry.eError_44_3225", i8** %e4, align 8, !dbg !341 + %"$e_3226" = load i8*, i8** %e4, align 8 + %"$_literal_cost_call_3228" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3226") %"$gasrem_3229" = load i64, i64* @_gasrem, align 8 %"$gascmp_3230" = icmp ugt i64 %"$_literal_cost_call_3228", %"$gasrem_3229" br i1 %"$gascmp_3230", label %"$out_of_gas_3231", label %"$have_gas_3232" @@ -6040,513 +6217,483 @@ entry: %"$consume_3233" = sub i64 %"$gasrem_3229", %"$_literal_cost_call_3228" store i64 %"$consume_3233", i64* @_gasrem, align 8 %"$execptr_load_3234" = load i8*, i8** @_execptr, align 8 - %"$e_3235" = load i8*, i8** %e3, align 8 - call void @_event(i8* %"$execptr_load_3234", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3235"), !dbg !328 - br label %"$matchsucc_3054" - -"$empty_default_3058": ; preds = %"$have_gas_3052" - br label %"$matchsucc_3054" + %"$e_3235" = load i8*, i8** %e4, align 8 + call void @_event(i8* %"$execptr_load_3234", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3235"), !dbg !342 + %"$gasrem_3236" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3237" = icmp ugt i64 1, %"$gasrem_3236" + br i1 %"$gascmp_3237", label %"$out_of_gas_3238", label %"$have_gas_3239" -"$matchsucc_3054": ; preds = %"$have_gas_3232", %"$matchsucc_3149", %"$empty_default_3058" - ret void -} - -define void @approve(i8* %0) !dbg !329 { -entry: - %"$_amount_3237" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3238" = bitcast i8* %"$_amount_3237" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3238", align 8 - %"$_origin_3239" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3240" = bitcast i8* %"$_origin_3239" to [20 x i8]* - %"$_sender_3241" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3242" = bitcast i8* %"$_sender_3241" to [20 x i8]* - %"$node_3243" = getelementptr i8, i8* %0, i32 56 - %"$node_3244" = bitcast i8* %"$node_3243" to [32 x i8]* - %"$address_3245" = getelementptr i8, i8* %0, i32 88 - %"$address_3246" = bitcast i8* %"$address_3245" to [20 x i8]* - call void @"$approve_2993"(%Uint128 %_amount, [20 x i8]* %"$_origin_3240", [20 x i8]* %"$_sender_3242", [32 x i8]* %"$node_3244", [20 x i8]* %"$address_3246"), !dbg !330 - ret void -} - -define internal void @"$approveFor_3247"(%Uint128 %_amount, [20 x i8]* %"$_origin_3248", [20 x i8]* %"$_sender_3249", [20 x i8]* %"$address_3250", %TName_Bool* %isApproved) !dbg !331 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3248", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3249", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_3250", align 1 - %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_3251_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3251_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3251_salloc_load", i64 20) - %"$indices_buf_3251_salloc" = bitcast i8* %"$indices_buf_3251_salloc_salloc" to [20 x i8]* - %"$indices_buf_3251" = bitcast [20 x i8]* %"$indices_buf_3251_salloc" to i8* - %"$indices_gep_3252" = getelementptr i8, i8* %"$indices_buf_3251", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3252" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 - %"$execptr_load_3254" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_3255" = call i8* @_fetch_field(i8* %"$execptr_load_3254", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3253", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_3251", i32 1), !dbg !332 - %"$maybeOperators_3256" = bitcast i8* %"$maybeOperators_call_3255" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3256", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_3257" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_3257_3258" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3257" to i8* - %"$_literal_cost_call_3259" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", i8* %"$$maybeOperators_3257_3258") - %"$gasadd_3260" = add i64 %"$_literal_cost_call_3259", 0 - %"$gasadd_3261" = add i64 %"$gasadd_3260", 1 - %"$gasrem_3262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3263" = icmp ugt i64 %"$gasadd_3261", %"$gasrem_3262" - br i1 %"$gascmp_3263", label %"$out_of_gas_3264", label %"$have_gas_3265" - -"$out_of_gas_3264": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3265" - -"$have_gas_3265": ; preds = %"$out_of_gas_3264", %entry - %"$consume_3266" = sub i64 %"$gasrem_3262", %"$gasadd_3261" - store i64 %"$consume_3266", i64* @_gasrem, align 8 - %"$gasrem_3267" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3268" = icmp ugt i64 1, %"$gasrem_3267" - br i1 %"$gascmp_3268", label %"$out_of_gas_3269", label %"$have_gas_3270" - -"$out_of_gas_3269": ; preds = %"$have_gas_3265" - call void @_out_of_gas() - br label %"$have_gas_3270" - -"$have_gas_3270": ; preds = %"$out_of_gas_3269", %"$have_gas_3265" - %"$consume_3271" = sub i64 %"$gasrem_3267", 1 - store i64 %"$consume_3271", i64* @_gasrem, align 8 - %currentOperators = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_3272" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3273" = icmp ugt i64 2, %"$gasrem_3272" - br i1 %"$gascmp_3273", label %"$out_of_gas_3274", label %"$have_gas_3275" - -"$out_of_gas_3274": ; preds = %"$have_gas_3270" - call void @_out_of_gas() - br label %"$have_gas_3275" - -"$have_gas_3275": ; preds = %"$out_of_gas_3274", %"$have_gas_3270" - %"$consume_3276" = sub i64 %"$gasrem_3272", 2 - store i64 %"$consume_3276", i64* @_gasrem, align 8 - %"$maybeOperators_3278" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_tag_3279" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3278", i32 0, i32 0 - %"$maybeOperators_tag_3280" = load i8, i8* %"$maybeOperators_tag_3279", align 1 - switch i8 %"$maybeOperators_tag_3280", label %"$empty_default_3281" [ - i8 1, label %"$None_3282" - i8 0, label %"$Some_3290" - ], !dbg !333 - -"$None_3282": ; preds = %"$have_gas_3275" - %"$maybeOperators_3283" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3278" to %"CName_None_List_(ByStr20)"* - %"$gasrem_3284" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3285" = icmp ugt i64 1, %"$gasrem_3284" - br i1 %"$gascmp_3285", label %"$out_of_gas_3286", label %"$have_gas_3287" - -"$out_of_gas_3286": ; preds = %"$None_3282" - call void @_out_of_gas() - br label %"$have_gas_3287" - -"$have_gas_3287": ; preds = %"$out_of_gas_3286", %"$None_3282" - %"$consume_3288" = sub i64 %"$gasrem_3284", 1 - store i64 %"$consume_3288", i64* @_gasrem, align 8 - %"$ud-registry.nilByStr20_3289" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 - store %TName_List_ByStr20* %"$ud-registry.nilByStr20_3289", %TName_List_ByStr20** %currentOperators, align 8, !dbg !334 - br label %"$matchsucc_3277" - -"$Some_3290": ; preds = %"$have_gas_3275" - %"$maybeOperators_3291" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3278" to %"CName_Some_List_(ByStr20)"* - %"$ops_gep_3292" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_3291", i32 0, i32 1 - %"$ops_load_3293" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ops_gep_3292", align 8 - %ops = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$ops_load_3293", %TName_List_ByStr20** %ops, align 8 - %"$gasrem_3294" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3295" = icmp ugt i64 1, %"$gasrem_3294" - br i1 %"$gascmp_3295", label %"$out_of_gas_3296", label %"$have_gas_3297" - -"$out_of_gas_3296": ; preds = %"$Some_3290" +"$out_of_gas_3238": ; preds = %"$have_gas_3232" call void @_out_of_gas() - br label %"$have_gas_3297" + br label %"$have_gas_3239" -"$have_gas_3297": ; preds = %"$out_of_gas_3296", %"$Some_3290" - %"$consume_3298" = sub i64 %"$gasrem_3294", 1 - store i64 %"$consume_3298", i64* @_gasrem, align 8 - %"$ops_3299" = load %TName_List_ByStr20*, %TName_List_ByStr20** %ops, align 8 - store %TName_List_ByStr20* %"$ops_3299", %TName_List_ByStr20** %currentOperators, align 8, !dbg !337 - br label %"$matchsucc_3277" - -"$empty_default_3281": ; preds = %"$have_gas_3275" - br label %"$matchsucc_3277" - -"$matchsucc_3277": ; preds = %"$have_gas_3297", %"$have_gas_3287", %"$empty_default_3281" - %"$gasrem_3300" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3301" = icmp ugt i64 1, %"$gasrem_3300" - br i1 %"$gascmp_3301", label %"$out_of_gas_3302", label %"$have_gas_3303" - -"$out_of_gas_3302": ; preds = %"$matchsucc_3277" - call void @_out_of_gas() - br label %"$have_gas_3303" - -"$have_gas_3303": ; preds = %"$out_of_gas_3302", %"$matchsucc_3277" - %"$consume_3304" = sub i64 %"$gasrem_3300", 1 - store i64 %"$consume_3304", i64* @_gasrem, align 8 - %needsToChange = alloca %TName_Bool*, align 8 - %"$gasrem_3305" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3306" = icmp ugt i64 1, %"$gasrem_3305" - br i1 %"$gascmp_3306", label %"$out_of_gas_3307", label %"$have_gas_3308" - -"$out_of_gas_3307": ; preds = %"$have_gas_3303" - call void @_out_of_gas() - br label %"$have_gas_3308" - -"$have_gas_3308": ; preds = %"$out_of_gas_3307", %"$have_gas_3303" - %"$consume_3309" = sub i64 %"$gasrem_3305", 1 - store i64 %"$consume_3309", i64* @_gasrem, align 8 - %b = alloca %TName_Bool*, align 8 - %"$gasrem_3310" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3311" = icmp ugt i64 1, %"$gasrem_3310" - br i1 %"$gascmp_3311", label %"$out_of_gas_3312", label %"$have_gas_3313" - -"$out_of_gas_3312": ; preds = %"$have_gas_3308" - call void @_out_of_gas() - br label %"$have_gas_3313" - -"$have_gas_3313": ; preds = %"$out_of_gas_3312", %"$have_gas_3308" - %"$consume_3314" = sub i64 %"$gasrem_3310", 1 - store i64 %"$consume_3314", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Excludes_65" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Excludes_3315" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Excludes, align 8 - %"$ud-registry.listByStr20Excludes_fptr_3316" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_3315", 0 - %"$ud-registry.listByStr20Excludes_envptr_3317" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_3315", 1 - %"$currentOperators_3318" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 - %"$ud-registry.listByStr20Excludes_call_3319" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_fptr_3316"(i8* %"$ud-registry.listByStr20Excludes_envptr_3317", %TName_List_ByStr20* %"$currentOperators_3318"), !dbg !339 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_call_3319", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_65", align 8, !dbg !339 - %"$ud-registry.listByStr20Excludes_66" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Excludes_65_3320" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_65", align 8 - %"$$ud-registry.listByStr20Excludes_65_fptr_3321" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_65_3320", 0 - %"$$ud-registry.listByStr20Excludes_65_envptr_3322" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_65_3320", 1 - %"$$ud-registry.listByStr20Excludes_65_address_3323" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20Excludes_65_address_3323", align 1 - %"$$ud-registry.listByStr20Excludes_65_call_3324" = call %TName_Bool* %"$$ud-registry.listByStr20Excludes_65_fptr_3321"(i8* %"$$ud-registry.listByStr20Excludes_65_envptr_3322", [20 x i8]* %"$$ud-registry.listByStr20Excludes_65_address_3323"), !dbg !339 - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_65_call_3324", %TName_Bool** %"$ud-registry.listByStr20Excludes_66", align 8, !dbg !339 - %"$$ud-registry.listByStr20Excludes_66_3325" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Excludes_66", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_66_3325", %TName_Bool** %b, align 8, !dbg !339 - %"$gasrem_3326" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3327" = icmp ugt i64 1, %"$gasrem_3326" - br i1 %"$gascmp_3327", label %"$out_of_gas_3328", label %"$have_gas_3329" - -"$out_of_gas_3328": ; preds = %"$have_gas_3313" - call void @_out_of_gas() - br label %"$have_gas_3329" - -"$have_gas_3329": ; preds = %"$out_of_gas_3328", %"$have_gas_3313" - %"$consume_3330" = sub i64 %"$gasrem_3326", 1 - store i64 %"$consume_3330", i64* @_gasrem, align 8 - %"$ud-registry.xandb_67" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-registry.xandb_3331" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8 - %"$ud-registry.xandb_fptr_3332" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_3331", 0 - %"$ud-registry.xandb_envptr_3333" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_3331", 1 - %"$b_3334" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$ud-registry.xandb_call_3335" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_fptr_3332"(i8* %"$ud-registry.xandb_envptr_3333", %TName_Bool* %"$b_3334"), !dbg !340 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_call_3335", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_67", align 8, !dbg !340 - %"$ud-registry.xandb_68" = alloca %TName_Bool*, align 8 - %"$$ud-registry.xandb_67_3336" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_67", align 8 - %"$$ud-registry.xandb_67_fptr_3337" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_67_3336", 0 - %"$$ud-registry.xandb_67_envptr_3338" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_67_3336", 1 - %"$$ud-registry.xandb_67_call_3339" = call %TName_Bool* %"$$ud-registry.xandb_67_fptr_3337"(i8* %"$$ud-registry.xandb_67_envptr_3338", %TName_Bool* %isApproved), !dbg !340 - store %TName_Bool* %"$$ud-registry.xandb_67_call_3339", %TName_Bool** %"$ud-registry.xandb_68", align 8, !dbg !340 - %"$$ud-registry.xandb_68_3340" = load %TName_Bool*, %TName_Bool** %"$ud-registry.xandb_68", align 8 - store %TName_Bool* %"$$ud-registry.xandb_68_3340", %TName_Bool** %needsToChange, align 8, !dbg !340 - %"$gasrem_3341" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3342" = icmp ugt i64 2, %"$gasrem_3341" - br i1 %"$gascmp_3342", label %"$out_of_gas_3343", label %"$have_gas_3344" - -"$out_of_gas_3343": ; preds = %"$have_gas_3329" - call void @_out_of_gas() - br label %"$have_gas_3344" - -"$have_gas_3344": ; preds = %"$out_of_gas_3343", %"$have_gas_3329" - %"$consume_3345" = sub i64 %"$gasrem_3341", 2 - store i64 %"$consume_3345", i64* @_gasrem, align 8 - %"$needsToChange_3347" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 - %"$needsToChange_tag_3348" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_3347", i32 0, i32 0 - %"$needsToChange_tag_3349" = load i8, i8* %"$needsToChange_tag_3348", align 1 - switch i8 %"$needsToChange_tag_3349", label %"$default_3350" [ - i8 0, label %"$True_3351" - ], !dbg !341 - -"$True_3351": ; preds = %"$have_gas_3344" - %"$needsToChange_3352" = bitcast %TName_Bool* %"$needsToChange_3347" to %CName_True* - %"$gasrem_3353" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3354" = icmp ugt i64 1, %"$gasrem_3353" - br i1 %"$gascmp_3354", label %"$out_of_gas_3355", label %"$have_gas_3356" - -"$out_of_gas_3355": ; preds = %"$True_3351" - call void @_out_of_gas() - br label %"$have_gas_3356" - -"$have_gas_3356": ; preds = %"$out_of_gas_3355", %"$True_3351" - %"$consume_3357" = sub i64 %"$gasrem_3353", 1 - store i64 %"$consume_3357", i64* @_gasrem, align 8 - %newOperators = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_3358" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3359" = icmp ugt i64 2, %"$gasrem_3358" - br i1 %"$gascmp_3359", label %"$out_of_gas_3360", label %"$have_gas_3361" - -"$out_of_gas_3360": ; preds = %"$have_gas_3356" - call void @_out_of_gas() - br label %"$have_gas_3361" - -"$have_gas_3361": ; preds = %"$out_of_gas_3360", %"$have_gas_3356" - %"$consume_3362" = sub i64 %"$gasrem_3358", 2 - store i64 %"$consume_3362", i64* @_gasrem, align 8 - %"$isApproved_tag_3364" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 - %"$isApproved_tag_3365" = load i8, i8* %"$isApproved_tag_3364", align 1 - switch i8 %"$isApproved_tag_3365", label %"$empty_default_3366" [ - i8 0, label %"$True_3367" - i8 1, label %"$False_3380" - ], !dbg !342 - -"$True_3367": ; preds = %"$have_gas_3361" - %"$isApproved_3368" = bitcast %TName_Bool* %isApproved to %CName_True* - %"$gasrem_3369" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3370" = icmp ugt i64 1, %"$gasrem_3369" - br i1 %"$gascmp_3370", label %"$out_of_gas_3371", label %"$have_gas_3372" - -"$out_of_gas_3371": ; preds = %"$True_3367" - call void @_out_of_gas() - br label %"$have_gas_3372" - -"$have_gas_3372": ; preds = %"$out_of_gas_3371", %"$True_3367" - %"$consume_3373" = sub i64 %"$gasrem_3369", 1 - store i64 %"$consume_3373", i64* @_gasrem, align 8 - %"$currentOperators_3374" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 - %"$adtval_3375_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3375_salloc" = call i8* @_salloc(i8* %"$adtval_3375_load", i64 29) - %"$adtval_3375" = bitcast i8* %"$adtval_3375_salloc" to %CName_Cons_ByStr20* - %"$adtgep_3376" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_3375", i32 0, i32 0 - store i8 0, i8* %"$adtgep_3376", align 1 - %"$adtgep_3377" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_3375", i32 0, i32 1 - store [20 x i8] %address, [20 x i8]* %"$adtgep_3377", align 1 - %"$adtgep_3378" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_3375", i32 0, i32 2 - store %TName_List_ByStr20* %"$currentOperators_3374", %TName_List_ByStr20** %"$adtgep_3378", align 8 - %"$adtptr_3379" = bitcast %CName_Cons_ByStr20* %"$adtval_3375" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_3379", %TName_List_ByStr20** %newOperators, align 8, !dbg !345 - br label %"$matchsucc_3363" - -"$False_3380": ; preds = %"$have_gas_3361" - %"$isApproved_3381" = bitcast %TName_Bool* %isApproved to %CName_False* - %"$gasrem_3382" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3383" = icmp ugt i64 1, %"$gasrem_3382" - br i1 %"$gascmp_3383", label %"$out_of_gas_3384", label %"$have_gas_3385" - -"$out_of_gas_3384": ; preds = %"$False_3380" - call void @_out_of_gas() - br label %"$have_gas_3385" - -"$have_gas_3385": ; preds = %"$out_of_gas_3384", %"$False_3380" - %"$consume_3386" = sub i64 %"$gasrem_3382", 1 - store i64 %"$consume_3386", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20FilterOut_63" = alloca { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20FilterOut_3387" = load { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8 - %"$ud-registry.listByStr20FilterOut_fptr_3388" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_3387", 0 - %"$ud-registry.listByStr20FilterOut_envptr_3389" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_3387", 1 - %"$currentOperators_3390" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 - %"$ud-registry.listByStr20FilterOut_call_3391" = call { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_fptr_3388"(i8* %"$ud-registry.listByStr20FilterOut_envptr_3389", %TName_List_ByStr20* %"$currentOperators_3390"), !dbg !348 - store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_call_3391", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_63", align 8, !dbg !348 - %"$ud-registry.listByStr20FilterOut_64" = alloca %TName_List_ByStr20*, align 8 - %"$$ud-registry.listByStr20FilterOut_63_3392" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_63", align 8 - %"$$ud-registry.listByStr20FilterOut_63_fptr_3393" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_63_3392", 0 - %"$$ud-registry.listByStr20FilterOut_63_envptr_3394" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_63_3392", 1 - %"$$ud-registry.listByStr20FilterOut_63_address_3395" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20FilterOut_63_address_3395", align 1 - %"$$ud-registry.listByStr20FilterOut_63_call_3396" = call %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_63_fptr_3393"(i8* %"$$ud-registry.listByStr20FilterOut_63_envptr_3394", [20 x i8]* %"$$ud-registry.listByStr20FilterOut_63_address_3395"), !dbg !348 - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_63_call_3396", %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_64", align 8, !dbg !348 - %"$$ud-registry.listByStr20FilterOut_64_3397" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_64", align 8 - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_64_3397", %TName_List_ByStr20** %newOperators, align 8, !dbg !348 - br label %"$matchsucc_3363" - -"$empty_default_3366": ; preds = %"$have_gas_3361" - br label %"$matchsucc_3363" - -"$matchsucc_3363": ; preds = %"$have_gas_3385", %"$have_gas_3372", %"$empty_default_3366" - %"$newOperators_3398" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 - %"$$newOperators_3398_3399" = bitcast %TName_List_ByStr20* %"$newOperators_3398" to i8* - %"$_literal_cost_call_3400" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i8* %"$$newOperators_3398_3399") - %"$gasadd_3401" = add i64 %"$_literal_cost_call_3400", 1 - %"$gasrem_3402" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3403" = icmp ugt i64 %"$gasadd_3401", %"$gasrem_3402" - br i1 %"$gascmp_3403", label %"$out_of_gas_3404", label %"$have_gas_3405" - -"$out_of_gas_3404": ; preds = %"$matchsucc_3363" - call void @_out_of_gas() - br label %"$have_gas_3405" - -"$have_gas_3405": ; preds = %"$out_of_gas_3404", %"$matchsucc_3363" - %"$consume_3406" = sub i64 %"$gasrem_3402", %"$gasadd_3401" - store i64 %"$consume_3406", i64* @_gasrem, align 8 - %"$indices_buf_3407_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3407_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3407_salloc_load", i64 20) - %"$indices_buf_3407_salloc" = bitcast i8* %"$indices_buf_3407_salloc_salloc" to [20 x i8]* - %"$indices_buf_3407" = bitcast [20 x i8]* %"$indices_buf_3407_salloc" to i8* - %"$indices_gep_3408" = getelementptr i8, i8* %"$indices_buf_3407", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_3408" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %indices_cast1, align 1 - %"$execptr_load_3409" = load i8*, i8** @_execptr, align 8 - %"$newOperators_3411" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 - %"$update_value_3412" = bitcast %TName_List_ByStr20* %"$newOperators_3411" to i8* - call void @_update_field(i8* %"$execptr_load_3409", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3410", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_3407", i8* %"$update_value_3412"), !dbg !350 - %"$gasrem_3413" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3414" = icmp ugt i64 1, %"$gasrem_3413" - br i1 %"$gascmp_3414", label %"$out_of_gas_3415", label %"$have_gas_3416" +"$have_gas_3239": ; preds = %"$out_of_gas_3238", %"$have_gas_3232" + %"$consume_3240" = sub i64 %"$gasrem_3236", 1 + store i64 %"$consume_3240", i64* @_gasrem, align 8 + %msgs6 = alloca %TName_List_Message*, align 8 + %"$gasrem_3241" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3242" = icmp ugt i64 1, %"$gasrem_3241" + br i1 %"$gascmp_3242", label %"$out_of_gas_3243", label %"$have_gas_3244" -"$out_of_gas_3415": ; preds = %"$have_gas_3405" +"$out_of_gas_3243": ; preds = %"$have_gas_3239" call void @_out_of_gas() - br label %"$have_gas_3416" + br label %"$have_gas_3244" -"$have_gas_3416": ; preds = %"$out_of_gas_3415", %"$have_gas_3405" - %"$consume_3417" = sub i64 %"$gasrem_3413", 1 - store i64 %"$consume_3417", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 - %"$gasrem_3418" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3419" = icmp ugt i64 1, %"$gasrem_3418" - br i1 %"$gascmp_3419", label %"$out_of_gas_3420", label %"$have_gas_3421" - -"$out_of_gas_3420": ; preds = %"$have_gas_3416" - call void @_out_of_gas() - br label %"$have_gas_3421" - -"$have_gas_3421": ; preds = %"$out_of_gas_3420", %"$have_gas_3416" - %"$consume_3422" = sub i64 %"$gasrem_3418", 1 - store i64 %"$consume_3422", i64* @_gasrem, align 8 - %"$ud-registry.eApprovedFor_60" = alloca { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eApprovedFor_3423" = load { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApprovedFor, align 8 - %"$ud-registry.eApprovedFor_fptr_3424" = extractvalue { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_3423", 0 - %"$ud-registry.eApprovedFor_envptr_3425" = extractvalue { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_3423", 1 - %"$ud-registry.eApprovedFor__sender_3426" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.eApprovedFor__sender_3426", align 1 - %"$ud-registry.eApprovedFor_call_3427" = call { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_fptr_3424"(i8* %"$ud-registry.eApprovedFor_envptr_3425", [20 x i8]* %"$ud-registry.eApprovedFor__sender_3426"), !dbg !351 - store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_call_3427", { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eApprovedFor_60", align 8, !dbg !351 - %"$ud-registry.eApprovedFor_61" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$ud-registry.eApprovedFor_60_3428" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eApprovedFor_60", align 8 - %"$$ud-registry.eApprovedFor_60_fptr_3429" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eApprovedFor_60_3428", 0 - %"$$ud-registry.eApprovedFor_60_envptr_3430" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eApprovedFor_60_3428", 1 - %"$$ud-registry.eApprovedFor_60_address_3431" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.eApprovedFor_60_address_3431", align 1 - %"$$ud-registry.eApprovedFor_60_call_3432" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_60_fptr_3429"(i8* %"$$ud-registry.eApprovedFor_60_envptr_3430", [20 x i8]* %"$$ud-registry.eApprovedFor_60_address_3431"), !dbg !351 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_60_call_3432", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eApprovedFor_61", align 8, !dbg !351 - %"$ud-registry.eApprovedFor_62" = alloca i8*, align 8 - %"$$ud-registry.eApprovedFor_61_3433" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eApprovedFor_61", align 8 - %"$$ud-registry.eApprovedFor_61_fptr_3434" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_61_3433", 0 - %"$$ud-registry.eApprovedFor_61_envptr_3435" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_61_3433", 1 - %"$$ud-registry.eApprovedFor_61_call_3436" = call i8* %"$$ud-registry.eApprovedFor_61_fptr_3434"(i8* %"$$ud-registry.eApprovedFor_61_envptr_3435", %TName_Bool* %isApproved), !dbg !351 - store i8* %"$$ud-registry.eApprovedFor_61_call_3436", i8** %"$ud-registry.eApprovedFor_62", align 8, !dbg !351 - %"$$ud-registry.eApprovedFor_62_3437" = load i8*, i8** %"$ud-registry.eApprovedFor_62", align 8 - store i8* %"$$ud-registry.eApprovedFor_62_3437", i8** %e, align 8, !dbg !351 - %"$e_3438" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_3440" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3438") - %"$gasrem_3441" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3442" = icmp ugt i64 %"$_literal_cost_call_3440", %"$gasrem_3441" - br i1 %"$gascmp_3442", label %"$out_of_gas_3443", label %"$have_gas_3444" - -"$out_of_gas_3443": ; preds = %"$have_gas_3421" - call void @_out_of_gas() - br label %"$have_gas_3444" - -"$have_gas_3444": ; preds = %"$out_of_gas_3443", %"$have_gas_3421" - %"$consume_3445" = sub i64 %"$gasrem_3441", %"$_literal_cost_call_3440" - store i64 %"$consume_3445", i64* @_gasrem, align 8 - %"$execptr_load_3446" = load i8*, i8** @_execptr, align 8 - %"$e_3447" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_3446", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3447"), !dbg !352 - br label %"$matchsucc_3346" - -"$default_3350": ; preds = %"$have_gas_3344" - br label %"$joinp_6" - -"$joinp_6": ; preds = %"$default_3350" - br label %"$matchsucc_3346" - -"$matchsucc_3346": ; preds = %"$have_gas_3444", %"$joinp_6" +"$have_gas_3244": ; preds = %"$out_of_gas_3243", %"$have_gas_3239" + %"$consume_3245" = sub i64 %"$gasrem_3241", 1 + store i64 %"$consume_3245", i64* @_gasrem, align 8 + %"$m_0" = alloca i8*, align 8 + %"$gasrem_3246" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3247" = icmp ugt i64 1, %"$gasrem_3246" + br i1 %"$gascmp_3247", label %"$out_of_gas_3248", label %"$have_gas_3249" + +"$out_of_gas_3248": ; preds = %"$have_gas_3244" + call void @_out_of_gas() + br label %"$have_gas_3249" + +"$have_gas_3249": ; preds = %"$out_of_gas_3248", %"$have_gas_3244" + %"$consume_3250" = sub i64 %"$gasrem_3246", 1 + store i64 %"$consume_3250", i64* @_gasrem, align 8 + %"$msgobj_3251_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3251_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3251_salloc_load", i64 225) + %"$msgobj_3251_salloc" = bitcast i8* %"$msgobj_3251_salloc_salloc" to [225 x i8]* + %"$msgobj_3251" = bitcast [225 x i8]* %"$msgobj_3251_salloc" to i8* + store i8 5, i8* %"$msgobj_3251", align 1 + %"$msgobj_fname_3253" = getelementptr i8, i8* %"$msgobj_3251", i32 1 + %"$msgobj_fname_3254" = bitcast i8* %"$msgobj_fname_3253" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3252", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3254", align 8 + %"$msgobj_td_3255" = getelementptr i8, i8* %"$msgobj_3251", i32 17 + %"$msgobj_td_3256" = bitcast i8* %"$msgobj_td_3255" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_3256", align 8 + %"$msgobj_v_3258" = getelementptr i8, i8* %"$msgobj_3251", i32 25 + %"$msgobj_v_3259" = bitcast i8* %"$msgobj_v_3258" to %String* + store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3257", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3259", align 8 + %"$msgobj_fname_3261" = getelementptr i8, i8* %"$msgobj_3251", i32 41 + %"$msgobj_fname_3262" = bitcast i8* %"$msgobj_fname_3261" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3260", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3262", align 8 + %"$msgobj_td_3263" = getelementptr i8, i8* %"$msgobj_3251", i32 57 + %"$msgobj_td_3264" = bitcast i8* %"$msgobj_td_3263" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_3264", align 8 + %"$msgobj_v_3265" = getelementptr i8, i8* %"$msgobj_3251", i32 65 + %"$msgobj_v_3266" = bitcast i8* %"$msgobj_v_3265" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3266", align 1 + %"$msgobj_fname_3268" = getelementptr i8, i8* %"$msgobj_3251", i32 97 + %"$msgobj_fname_3269" = bitcast i8* %"$msgobj_fname_3268" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3267", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3269", align 8 + %"$msgobj_td_3270" = getelementptr i8, i8* %"$msgobj_3251", i32 113 + %"$msgobj_td_3271" = bitcast i8* %"$msgobj_td_3270" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3271", align 8 + %"$recordOwner_3272" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$msgobj_v_3273" = getelementptr i8, i8* %"$msgobj_3251", i32 121 + %"$msgobj_v_3274" = bitcast i8* %"$msgobj_v_3273" to [20 x i8]* + store [20 x i8] %"$recordOwner_3272", [20 x i8]* %"$msgobj_v_3274", align 1 + %"$msgobj_fname_3276" = getelementptr i8, i8* %"$msgobj_3251", i32 141 + %"$msgobj_fname_3277" = bitcast i8* %"$msgobj_fname_3276" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3275", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3277", align 8 + %"$msgobj_td_3278" = getelementptr i8, i8* %"$msgobj_3251", i32 157 + %"$msgobj_td_3279" = bitcast i8* %"$msgobj_td_3278" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_3279", align 8 + %"$msgobj_v_3280" = getelementptr i8, i8* %"$msgobj_3251", i32 165 + %"$msgobj_v_3281" = bitcast i8* %"$msgobj_v_3280" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3281", align 8 + %"$msgobj_fname_3283" = getelementptr i8, i8* %"$msgobj_3251", i32 181 + %"$msgobj_fname_3284" = bitcast i8* %"$msgobj_fname_3283" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3282", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3284", align 8 + %"$msgobj_td_3285" = getelementptr i8, i8* %"$msgobj_3251", i32 197 + %"$msgobj_td_3286" = bitcast i8* %"$msgobj_td_3285" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3286", align 8 + %"$msgobj_v_3287" = getelementptr i8, i8* %"$msgobj_3251", i32 205 + %"$msgobj_v_3288" = bitcast i8* %"$msgobj_v_3287" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3288", align 1 + store i8* %"$msgobj_3251", i8** %"$m_0", align 8, !dbg !343 + %"$gasrem_3290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3291" = icmp ugt i64 1, %"$gasrem_3290" + br i1 %"$gascmp_3291", label %"$out_of_gas_3292", label %"$have_gas_3293" + +"$out_of_gas_3292": ; preds = %"$have_gas_3249" + call void @_out_of_gas() + br label %"$have_gas_3293" + +"$have_gas_3293": ; preds = %"$out_of_gas_3292", %"$have_gas_3249" + %"$consume_3294" = sub i64 %"$gasrem_3290", 1 + store i64 %"$consume_3294", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_45" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_3295" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_3296" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3295", 0 + %"$ud-registry.oneMsg_envptr_3297" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3295", 1 + %"$$m_0_3298" = load i8*, i8** %"$m_0", align 8 + %"$ud-registry.oneMsg_call_3299" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3296"(i8* %"$ud-registry.oneMsg_envptr_3297", i8* %"$$m_0_3298"), !dbg !344 + store %TName_List_Message* %"$ud-registry.oneMsg_call_3299", %TName_List_Message** %"$ud-registry.oneMsg_45", align 8, !dbg !344 + %"$$ud-registry.oneMsg_45_3300" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_45", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_45_3300", %TName_List_Message** %msgs6, align 8, !dbg !344 + %"$msgs_3301" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 + %"$$msgs_3301_3302" = bitcast %TName_List_Message* %"$msgs_3301" to i8* + %"$_literal_cost_call_3303" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_3301_3302") + %"$gasrem_3304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3305" = icmp ugt i64 %"$_literal_cost_call_3303", %"$gasrem_3304" + br i1 %"$gascmp_3305", label %"$out_of_gas_3306", label %"$have_gas_3307" + +"$out_of_gas_3306": ; preds = %"$have_gas_3293" + call void @_out_of_gas() + br label %"$have_gas_3307" + +"$have_gas_3307": ; preds = %"$out_of_gas_3306", %"$have_gas_3293" + %"$consume_3308" = sub i64 %"$gasrem_3304", %"$_literal_cost_call_3303" + store i64 %"$consume_3308", i64* @_gasrem, align 8 + %"$execptr_load_3309" = load i8*, i8** @_execptr, align 8 + %"$msgs_3310" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 + call void @_send(i8* %"$execptr_load_3309", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_3310"), !dbg !345 + br label %"$matchsucc_3059" + +"$empty_default_3063": ; preds = %"$have_gas_3057" + br label %"$matchsucc_3059" + +"$matchsucc_3059": ; preds = %"$have_gas_3307", %"$have_gas_3193", %"$empty_default_3063" ret void } -define void @approveFor(i8* %0) !dbg !353 { +declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) + +define void @configureNode(i8* %0) !dbg !346 { entry: - %"$_amount_3449" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3450" = bitcast i8* %"$_amount_3449" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3450", align 8 - %"$_origin_3451" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3452" = bitcast i8* %"$_origin_3451" to [20 x i8]* - %"$_sender_3453" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3454" = bitcast i8* %"$_sender_3453" to [20 x i8]* - %"$address_3455" = getelementptr i8, i8* %0, i32 56 - %"$address_3456" = bitcast i8* %"$address_3455" to [20 x i8]* - %"$isApproved_3457" = getelementptr i8, i8* %0, i32 76 - %"$isApproved_3458" = bitcast i8* %"$isApproved_3457" to %TName_Bool** - %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_3458", align 8 - call void @"$approveFor_3247"(%Uint128 %_amount, [20 x i8]* %"$_origin_3452", [20 x i8]* %"$_sender_3454", [20 x i8]* %"$address_3456", %TName_Bool* %isApproved), !dbg !354 + %"$_amount_3312" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3313" = bitcast i8* %"$_amount_3312" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3313", align 8 + %"$_origin_3314" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3315" = bitcast i8* %"$_origin_3314" to [20 x i8]* + %"$_sender_3316" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3317" = bitcast i8* %"$_sender_3316" to [20 x i8]* + %"$node_3318" = getelementptr i8, i8* %0, i32 56 + %"$node_3319" = bitcast i8* %"$node_3318" to [32 x i8]* + %"$owner_3320" = getelementptr i8, i8* %0, i32 88 + %"$owner_3321" = bitcast i8* %"$owner_3320" to [20 x i8]* + %"$resolver_3322" = getelementptr i8, i8* %0, i32 108 + %"$resolver_3323" = bitcast i8* %"$resolver_3322" to [20 x i8]* + call void @"$configureNode_2963"(%Uint128 %_amount, [20 x i8]* %"$_origin_3315", [20 x i8]* %"$_sender_3317", [32 x i8]* %"$node_3319", [20 x i8]* %"$owner_3321", [20 x i8]* %"$resolver_3323"), !dbg !347 ret void } -define internal void @"$configureNode_3459"(%Uint128 %_amount, [20 x i8]* %"$_origin_3460", [20 x i8]* %"$_sender_3461", [32 x i8]* %"$node_3462", [20 x i8]* %"$owner_3463", [20 x i8]* %"$resolver_3464") !dbg !355 { +define internal void @"$configureResolver_3324"(%Uint128 %_amount, [20 x i8]* %"$_origin_3325", [20 x i8]* %"$_sender_3326", [32 x i8]* %"$node_3327", [20 x i8]* %"$resolver_3328") !dbg !348 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3460", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3461", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_3462", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_3463", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_3464", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3325", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3326", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_3327", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_3328", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_3465_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3465_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3465_salloc_load", i64 32) - %"$indices_buf_3465_salloc" = bitcast i8* %"$indices_buf_3465_salloc_salloc" to [32 x i8]* - %"$indices_buf_3465" = bitcast [32 x i8]* %"$indices_buf_3465_salloc" to i8* - %"$indices_gep_3466" = getelementptr i8, i8* %"$indices_buf_3465", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3466" to [32 x i8]* + %"$indices_buf_3329_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3329_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3329_salloc_load", i64 32) + %"$indices_buf_3329_salloc" = bitcast i8* %"$indices_buf_3329_salloc_salloc" to [32 x i8]* + %"$indices_buf_3329" = bitcast [32 x i8]* %"$indices_buf_3329_salloc" to i8* + %"$indices_gep_3330" = getelementptr i8, i8* %"$indices_buf_3329", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3330" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_3468" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_3469" = call i8* @_fetch_field(i8* %"$execptr_load_3468", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3467", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_3465", i32 1), !dbg !356 - %"$maybeRecord_3470" = bitcast i8* %"$maybeRecord_call_3469" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_3470", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_3471" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_3471_3472" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3471" to i8* - %"$_literal_cost_call_3473" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_3471_3472") - %"$gasadd_3474" = add i64 %"$_literal_cost_call_3473", 0 - %"$gasadd_3475" = add i64 %"$gasadd_3474", 1 - %"$gasrem_3476" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3477" = icmp ugt i64 %"$gasadd_3475", %"$gasrem_3476" - br i1 %"$gascmp_3477", label %"$out_of_gas_3478", label %"$have_gas_3479" - -"$out_of_gas_3478": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3479" - -"$have_gas_3479": ; preds = %"$out_of_gas_3478", %entry - %"$consume_3480" = sub i64 %"$gasrem_3476", %"$gasadd_3475" - store i64 %"$consume_3480", i64* @_gasrem, align 8 + %"$execptr_load_3332" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_3333" = call i8* @_fetch_field(i8* %"$execptr_load_3332", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3331", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3329", i32 1), !dbg !349 + %"$maybeRecord_3334" = bitcast i8* %"$maybeRecord_call_3333" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_3334", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_3335" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_3335_3336" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3335" to i8* + %"$_literal_cost_call_3337" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_3335_3336") + %"$gasadd_3338" = add i64 %"$_literal_cost_call_3337", 0 + %"$gasadd_3339" = add i64 %"$gasadd_3338", 1 + %"$gasrem_3340" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3341" = icmp ugt i64 %"$gasadd_3339", %"$gasrem_3340" + br i1 %"$gascmp_3341", label %"$out_of_gas_3342", label %"$have_gas_3343" + +"$out_of_gas_3342": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3343" + +"$have_gas_3343": ; preds = %"$out_of_gas_3342", %entry + %"$consume_3344" = sub i64 %"$gasrem_3340", %"$gasadd_3339" + store i64 %"$consume_3344", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_3481_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3481_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3481_salloc_load", i64 32) - %"$indices_buf_3481_salloc" = bitcast i8* %"$indices_buf_3481_salloc_salloc" to [32 x i8]* - %"$indices_buf_3481" = bitcast [32 x i8]* %"$indices_buf_3481_salloc" to i8* - %"$indices_gep_3482" = getelementptr i8, i8* %"$indices_buf_3481", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_3482" to [32 x i8]* + %"$indices_buf_3345_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3345_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3345_salloc_load", i64 32) + %"$indices_buf_3345_salloc" = bitcast i8* %"$indices_buf_3345_salloc_salloc" to [32 x i8]* + %"$indices_buf_3345" = bitcast [32 x i8]* %"$indices_buf_3345_salloc" to i8* + %"$indices_gep_3346" = getelementptr i8, i8* %"$indices_buf_3345", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_3346" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_3484" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_3485" = call i8* @_fetch_field(i8* %"$execptr_load_3484", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3483", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_3481", i32 1), !dbg !357 - %"$maybeApproved_3486" = bitcast i8* %"$maybeApproved_call_3485" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_3486", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_3487" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_3487_3488" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3487" to i8* - %"$_literal_cost_call_3489" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_3487_3488") - %"$gasadd_3490" = add i64 %"$_literal_cost_call_3489", 0 - %"$gasadd_3491" = add i64 %"$gasadd_3490", 1 + %"$execptr_load_3348" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_3349" = call i8* @_fetch_field(i8* %"$execptr_load_3348", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3347", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_3345", i32 1), !dbg !350 + %"$maybeApproved_3350" = bitcast i8* %"$maybeApproved_call_3349" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_3350", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_3351" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_3351_3352" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3351" to i8* + %"$_literal_cost_call_3353" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_3351_3352") + %"$gasadd_3354" = add i64 %"$_literal_cost_call_3353", 0 + %"$gasadd_3355" = add i64 %"$gasadd_3354", 1 + %"$gasrem_3356" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3357" = icmp ugt i64 %"$gasadd_3355", %"$gasrem_3356" + br i1 %"$gascmp_3357", label %"$out_of_gas_3358", label %"$have_gas_3359" + +"$out_of_gas_3358": ; preds = %"$have_gas_3343" + call void @_out_of_gas() + br label %"$have_gas_3359" + +"$have_gas_3359": ; preds = %"$out_of_gas_3358", %"$have_gas_3343" + %"$consume_3360" = sub i64 %"$gasrem_3356", %"$gasadd_3355" + store i64 %"$consume_3360", i64* @_gasrem, align 8 + %"$gasrem_3361" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3362" = icmp ugt i64 1, %"$gasrem_3361" + br i1 %"$gascmp_3362", label %"$out_of_gas_3363", label %"$have_gas_3364" + +"$out_of_gas_3363": ; preds = %"$have_gas_3359" + call void @_out_of_gas() + br label %"$have_gas_3364" + +"$have_gas_3364": ; preds = %"$out_of_gas_3363", %"$have_gas_3359" + %"$consume_3365" = sub i64 %"$gasrem_3361", 1 + store i64 %"$consume_3365", i64* @_gasrem, align 8 + %recordOwner = alloca [20 x i8], align 1 + %"$gasrem_3366" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3367" = icmp ugt i64 1, %"$gasrem_3366" + br i1 %"$gascmp_3367", label %"$out_of_gas_3368", label %"$have_gas_3369" + +"$out_of_gas_3368": ; preds = %"$have_gas_3364" + call void @_out_of_gas() + br label %"$have_gas_3369" + +"$have_gas_3369": ; preds = %"$out_of_gas_3368", %"$have_gas_3364" + %"$consume_3370" = sub i64 %"$gasrem_3366", 1 + store i64 %"$consume_3370", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_46" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_3371" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_3372" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3371", 0 + %"$ud-registry.recordMemberOwner_envptr_3373" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3371", 1 + %"$maybeRecord_3374" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_3375" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_3372"(i8* %"$ud-registry.recordMemberOwner_envptr_3373", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3375", %TName_Option_ud-registry.Record* %"$maybeRecord_3374"), !dbg !351 + %"$ud-registry.recordMemberOwner_ret_3376" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3375", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3376", [20 x i8]* %"$ud-registry.recordMemberOwner_46", align 1, !dbg !351 + %"$$ud-registry.recordMemberOwner_46_3377" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_46", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_46_3377", [20 x i8]* %recordOwner, align 1, !dbg !351 + %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 + %"$indices_buf_3378_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3378_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3378_salloc_load", i64 20) + %"$indices_buf_3378_salloc" = bitcast i8* %"$indices_buf_3378_salloc_salloc" to [20 x i8]* + %"$indices_buf_3378" = bitcast [20 x i8]* %"$indices_buf_3378_salloc" to i8* + %"$recordOwner_3379" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_3380" = getelementptr i8, i8* %"$indices_buf_3378", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_3380" to [20 x i8]* + store [20 x i8] %"$recordOwner_3379", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_3382" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_3383" = call i8* @_fetch_field(i8* %"$execptr_load_3382", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3381", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_3378", i32 1), !dbg !352 + %"$maybeOperators_3384" = bitcast i8* %"$maybeOperators_call_3383" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3384", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_3385" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_3385_3386" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3385" to i8* + %"$_literal_cost_call_3387" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", i8* %"$$maybeOperators_3385_3386") + %"$gasadd_3388" = add i64 %"$_literal_cost_call_3387", 0 + %"$gasadd_3389" = add i64 %"$gasadd_3388", 1 + %"$gasrem_3390" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3391" = icmp ugt i64 %"$gasadd_3389", %"$gasrem_3390" + br i1 %"$gascmp_3391", label %"$out_of_gas_3392", label %"$have_gas_3393" + +"$out_of_gas_3392": ; preds = %"$have_gas_3369" + call void @_out_of_gas() + br label %"$have_gas_3393" + +"$have_gas_3393": ; preds = %"$out_of_gas_3392", %"$have_gas_3369" + %"$consume_3394" = sub i64 %"$gasrem_3390", %"$gasadd_3389" + store i64 %"$consume_3394", i64* @_gasrem, align 8 + %"$gasrem_3395" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3396" = icmp ugt i64 1, %"$gasrem_3395" + br i1 %"$gascmp_3396", label %"$out_of_gas_3397", label %"$have_gas_3398" + +"$out_of_gas_3397": ; preds = %"$have_gas_3393" + call void @_out_of_gas() + br label %"$have_gas_3398" + +"$have_gas_3398": ; preds = %"$out_of_gas_3397", %"$have_gas_3393" + %"$consume_3399" = sub i64 %"$gasrem_3395", 1 + store i64 %"$consume_3399", i64* @_gasrem, align 8 + %isSenderOAO = alloca %TName_Bool*, align 8 + %"$gasrem_3400" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3401" = icmp ugt i64 1, %"$gasrem_3400" + br i1 %"$gascmp_3401", label %"$out_of_gas_3402", label %"$have_gas_3403" + +"$out_of_gas_3402": ; preds = %"$have_gas_3398" + call void @_out_of_gas() + br label %"$have_gas_3403" + +"$have_gas_3403": ; preds = %"$out_of_gas_3402", %"$have_gas_3398" + %"$consume_3404" = sub i64 %"$gasrem_3400", 1 + store i64 %"$consume_3404", i64* @_gasrem, align 8 + %"$ud-registry.getIsOAO_3405" = load { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }* @ud-registry.getIsOAO, align 8 + %"$ud-registry.getIsOAO_fptr_3406" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3405", 0 + %"$ud-registry.getIsOAO_envptr_3407" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3405", 1 + %"$ud-registry.getIsOAO__sender_3408" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3408", align 1 + %"$ud-registry.getIsOAO_recordOwner_3409" = alloca [20 x i8], align 1 + %"$recordOwner_3410" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3410", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3409", align 1 + %"$maybeApproved_3411" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeOperators_3412" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$ud-registry.getIsOAO_call_3413" = call %TName_Bool* %"$ud-registry.getIsOAO_fptr_3406"(i8* %"$ud-registry.getIsOAO_envptr_3407", [20 x i8]* %"$ud-registry.getIsOAO__sender_3408", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3409", %TName_Option_ByStr20* %"$maybeApproved_3411", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3412"), !dbg !353 + store %TName_Bool* %"$ud-registry.getIsOAO_call_3413", %TName_Bool** %isSenderOAO, align 8, !dbg !353 + %"$gasrem_3414" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3415" = icmp ugt i64 2, %"$gasrem_3414" + br i1 %"$gascmp_3415", label %"$out_of_gas_3416", label %"$have_gas_3417" + +"$out_of_gas_3416": ; preds = %"$have_gas_3403" + call void @_out_of_gas() + br label %"$have_gas_3417" + +"$have_gas_3417": ; preds = %"$out_of_gas_3416", %"$have_gas_3403" + %"$consume_3418" = sub i64 %"$gasrem_3414", 2 + store i64 %"$consume_3418", i64* @_gasrem, align 8 + %"$isSenderOAO_3420" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_3421" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3420", i32 0, i32 0 + %"$isSenderOAO_tag_3422" = load i8, i8* %"$isSenderOAO_tag_3421", align 1 + switch i8 %"$isSenderOAO_tag_3422", label %"$empty_default_3423" [ + i8 0, label %"$True_3424" + i8 1, label %"$False_3485" + ], !dbg !354 + +"$True_3424": ; preds = %"$have_gas_3417" + %"$isSenderOAO_3425" = bitcast %TName_Bool* %"$isSenderOAO_3420" to %CName_True* + %"$gasrem_3426" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3427" = icmp ugt i64 1, %"$gasrem_3426" + br i1 %"$gascmp_3427", label %"$out_of_gas_3428", label %"$have_gas_3429" + +"$out_of_gas_3428": ; preds = %"$True_3424" + call void @_out_of_gas() + br label %"$have_gas_3429" + +"$have_gas_3429": ; preds = %"$out_of_gas_3428", %"$True_3424" + %"$consume_3430" = sub i64 %"$gasrem_3426", 1 + store i64 %"$consume_3430", i64* @_gasrem, align 8 + %newRecord = alloca %TName_ud-registry.Record*, align 8 + %"$gasrem_3431" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3432" = icmp ugt i64 1, %"$gasrem_3431" + br i1 %"$gascmp_3432", label %"$out_of_gas_3433", label %"$have_gas_3434" + +"$out_of_gas_3433": ; preds = %"$have_gas_3429" + call void @_out_of_gas() + br label %"$have_gas_3434" + +"$have_gas_3434": ; preds = %"$out_of_gas_3433", %"$have_gas_3429" + %"$consume_3435" = sub i64 %"$gasrem_3431", 1 + store i64 %"$consume_3435", i64* @_gasrem, align 8 + %"$recordOwner_3436" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$adtval_3437_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3437_salloc" = call i8* @_salloc(i8* %"$adtval_3437_load", i64 41) + %"$adtval_3437" = bitcast i8* %"$adtval_3437_salloc" to %CName_ud-registry.Record* + %"$adtgep_3438" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3437", i32 0, i32 0 + store i8 0, i8* %"$adtgep_3438", align 1 + %"$adtgep_3439" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3437", i32 0, i32 1 + store [20 x i8] %"$recordOwner_3436", [20 x i8]* %"$adtgep_3439", align 1 + %"$adtgep_3440" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3437", i32 0, i32 2 + store [20 x i8] %resolver, [20 x i8]* %"$adtgep_3440", align 1 + %"$adtptr_3441" = bitcast %CName_ud-registry.Record* %"$adtval_3437" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_3441", %TName_ud-registry.Record** %newRecord, align 8, !dbg !355 + %"$newRecord_3442" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_3442_3443" = bitcast %TName_ud-registry.Record* %"$newRecord_3442" to i8* + %"$_literal_cost_call_3444" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", i8* %"$$newRecord_3442_3443") + %"$gasadd_3445" = add i64 %"$_literal_cost_call_3444", 1 + %"$gasrem_3446" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3447" = icmp ugt i64 %"$gasadd_3445", %"$gasrem_3446" + br i1 %"$gascmp_3447", label %"$out_of_gas_3448", label %"$have_gas_3449" + +"$out_of_gas_3448": ; preds = %"$have_gas_3434" + call void @_out_of_gas() + br label %"$have_gas_3449" + +"$have_gas_3449": ; preds = %"$out_of_gas_3448", %"$have_gas_3434" + %"$consume_3450" = sub i64 %"$gasrem_3446", %"$gasadd_3445" + store i64 %"$consume_3450", i64* @_gasrem, align 8 + %"$indices_buf_3451_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3451_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3451_salloc_load", i64 32) + %"$indices_buf_3451_salloc" = bitcast i8* %"$indices_buf_3451_salloc_salloc" to [32 x i8]* + %"$indices_buf_3451" = bitcast [32 x i8]* %"$indices_buf_3451_salloc" to i8* + %"$indices_gep_3452" = getelementptr i8, i8* %"$indices_buf_3451", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_3452" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %indices_cast3, align 1 + %"$execptr_load_3453" = load i8*, i8** @_execptr, align 8 + %"$newRecord_3455" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_3456" = bitcast %TName_ud-registry.Record* %"$newRecord_3455" to i8* + call void @_update_field(i8* %"$execptr_load_3453", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3454", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3451", i8* %"$update_value_3456"), !dbg !358 + %"$gasrem_3457" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3458" = icmp ugt i64 1, %"$gasrem_3457" + br i1 %"$gascmp_3458", label %"$out_of_gas_3459", label %"$have_gas_3460" + +"$out_of_gas_3459": ; preds = %"$have_gas_3449" + call void @_out_of_gas() + br label %"$have_gas_3460" + +"$have_gas_3460": ; preds = %"$out_of_gas_3459", %"$have_gas_3449" + %"$consume_3461" = sub i64 %"$gasrem_3457", 1 + store i64 %"$consume_3461", i64* @_gasrem, align 8 + %e = alloca i8*, align 8 + %"$gasrem_3462" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3463" = icmp ugt i64 1, %"$gasrem_3462" + br i1 %"$gascmp_3463", label %"$out_of_gas_3464", label %"$have_gas_3465" + +"$out_of_gas_3464": ; preds = %"$have_gas_3460" + call void @_out_of_gas() + br label %"$have_gas_3465" + +"$have_gas_3465": ; preds = %"$out_of_gas_3464", %"$have_gas_3460" + %"$consume_3466" = sub i64 %"$gasrem_3462", 1 + store i64 %"$consume_3466", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_3467" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_3468" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3467", 0 + %"$ud-registry.eConfigured_envptr_3469" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3467", 1 + %"$ud-registry.eConfigured_node_3470" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_3470", align 1 + %"$ud-registry.eConfigured_recordOwner_3471" = alloca [20 x i8], align 1 + %"$recordOwner_3472" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3472", [20 x i8]* %"$ud-registry.eConfigured_recordOwner_3471", align 1 + %"$ud-registry.eConfigured_resolver_3473" = alloca [20 x i8], align 1 + store [20 x i8] %resolver, [20 x i8]* %"$ud-registry.eConfigured_resolver_3473", align 1 + %"$ud-registry.eConfigured_call_3474" = call i8* %"$ud-registry.eConfigured_fptr_3468"(i8* %"$ud-registry.eConfigured_envptr_3469", [32 x i8]* %"$ud-registry.eConfigured_node_3470", [20 x i8]* %"$ud-registry.eConfigured_recordOwner_3471", [20 x i8]* %"$ud-registry.eConfigured_resolver_3473"), !dbg !359 + store i8* %"$ud-registry.eConfigured_call_3474", i8** %e, align 8, !dbg !359 + %"$e_3475" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_3477" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3475") + %"$gasrem_3478" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3479" = icmp ugt i64 %"$_literal_cost_call_3477", %"$gasrem_3478" + br i1 %"$gascmp_3479", label %"$out_of_gas_3480", label %"$have_gas_3481" + +"$out_of_gas_3480": ; preds = %"$have_gas_3465" + call void @_out_of_gas() + br label %"$have_gas_3481" + +"$have_gas_3481": ; preds = %"$out_of_gas_3480", %"$have_gas_3465" + %"$consume_3482" = sub i64 %"$gasrem_3478", %"$_literal_cost_call_3477" + store i64 %"$consume_3482", i64* @_gasrem, align 8 + %"$execptr_load_3483" = load i8*, i8** @_execptr, align 8 + %"$e_3484" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_3483", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3484"), !dbg !360 + br label %"$matchsucc_3419" + +"$False_3485": ; preds = %"$have_gas_3417" + %"$isSenderOAO_3486" = bitcast %TName_Bool* %"$isSenderOAO_3420" to %CName_False* + %"$gasrem_3487" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3488" = icmp ugt i64 1, %"$gasrem_3487" + br i1 %"$gascmp_3488", label %"$out_of_gas_3489", label %"$have_gas_3490" + +"$out_of_gas_3489": ; preds = %"$False_3485" + call void @_out_of_gas() + br label %"$have_gas_3490" + +"$have_gas_3490": ; preds = %"$out_of_gas_3489", %"$False_3485" + %"$consume_3491" = sub i64 %"$gasrem_3487", 1 + store i64 %"$consume_3491", i64* @_gasrem, align 8 + %e4 = alloca i8*, align 8 %"$gasrem_3492" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3493" = icmp ugt i64 %"$gasadd_3491", %"$gasrem_3492" + %"$gascmp_3493" = icmp ugt i64 1, %"$gasrem_3492" br i1 %"$gascmp_3493", label %"$out_of_gas_3494", label %"$have_gas_3495" -"$out_of_gas_3494": ; preds = %"$have_gas_3479" +"$out_of_gas_3494": ; preds = %"$have_gas_3490" call void @_out_of_gas() br label %"$have_gas_3495" -"$have_gas_3495": ; preds = %"$out_of_gas_3494", %"$have_gas_3479" - %"$consume_3496" = sub i64 %"$gasrem_3492", %"$gasadd_3491" +"$have_gas_3495": ; preds = %"$out_of_gas_3494", %"$have_gas_3490" + %"$consume_3496" = sub i64 %"$gasrem_3492", 1 store i64 %"$consume_3496", i64* @_gasrem, align 8 + %m = alloca %String, align 8 %"$gasrem_3497" = load i64, i64* @_gasrem, align 8 %"$gascmp_3498" = icmp ugt i64 1, %"$gasrem_3497" br i1 %"$gascmp_3498", label %"$out_of_gas_3499", label %"$have_gas_3500" @@ -6558,284 +6705,282 @@ entry: "$have_gas_3500": ; preds = %"$out_of_gas_3499", %"$have_gas_3495" %"$consume_3501" = sub i64 %"$gasrem_3497", 1 store i64 %"$consume_3501", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_3502", i32 0, i32 0), i32 43 }, %String* %m, align 8, !dbg !361 + %"$gasrem_3503" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3504" = icmp ugt i64 1, %"$gasrem_3503" + br i1 %"$gascmp_3504", label %"$out_of_gas_3505", label %"$have_gas_3506" + +"$out_of_gas_3505": ; preds = %"$have_gas_3500" + call void @_out_of_gas() + br label %"$have_gas_3506" + +"$have_gas_3506": ; preds = %"$out_of_gas_3505", %"$have_gas_3500" + %"$consume_3507" = sub i64 %"$gasrem_3503", 1 + store i64 %"$consume_3507", i64* @_gasrem, align 8 + %"$ud-registry.eError_47" = alloca i8*, align 8 + %"$ud-registry.eError_3508" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_3509" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3508", 0 + %"$ud-registry.eError_envptr_3510" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3508", 1 + %"$m_3511" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_3512" = call i8* %"$ud-registry.eError_fptr_3509"(i8* %"$ud-registry.eError_envptr_3510", %String %"$m_3511"), !dbg !363 + store i8* %"$ud-registry.eError_call_3512", i8** %"$ud-registry.eError_47", align 8, !dbg !363 + %"$$ud-registry.eError_47_3513" = load i8*, i8** %"$ud-registry.eError_47", align 8 + store i8* %"$$ud-registry.eError_47_3513", i8** %e4, align 8, !dbg !363 + %"$e_3514" = load i8*, i8** %e4, align 8 + %"$_literal_cost_call_3516" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3514") + %"$gasrem_3517" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3518" = icmp ugt i64 %"$_literal_cost_call_3516", %"$gasrem_3517" + br i1 %"$gascmp_3518", label %"$out_of_gas_3519", label %"$have_gas_3520" + +"$out_of_gas_3519": ; preds = %"$have_gas_3506" + call void @_out_of_gas() + br label %"$have_gas_3520" + +"$have_gas_3520": ; preds = %"$out_of_gas_3519", %"$have_gas_3506" + %"$consume_3521" = sub i64 %"$gasrem_3517", %"$_literal_cost_call_3516" + store i64 %"$consume_3521", i64* @_gasrem, align 8 + %"$execptr_load_3522" = load i8*, i8** @_execptr, align 8 + %"$e_3523" = load i8*, i8** %e4, align 8 + call void @_event(i8* %"$execptr_load_3522", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3523"), !dbg !364 + br label %"$matchsucc_3419" + +"$empty_default_3423": ; preds = %"$have_gas_3417" + br label %"$matchsucc_3419" + +"$matchsucc_3419": ; preds = %"$have_gas_3520", %"$have_gas_3481", %"$empty_default_3423" + ret void +} + +define void @configureResolver(i8* %0) !dbg !365 { +entry: + %"$_amount_3525" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3526" = bitcast i8* %"$_amount_3525" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3526", align 8 + %"$_origin_3527" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3528" = bitcast i8* %"$_origin_3527" to [20 x i8]* + %"$_sender_3529" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3530" = bitcast i8* %"$_sender_3529" to [20 x i8]* + %"$node_3531" = getelementptr i8, i8* %0, i32 56 + %"$node_3532" = bitcast i8* %"$node_3531" to [32 x i8]* + %"$resolver_3533" = getelementptr i8, i8* %0, i32 88 + %"$resolver_3534" = bitcast i8* %"$resolver_3533" to [20 x i8]* + call void @"$configureResolver_3324"(%Uint128 %_amount, [20 x i8]* %"$_origin_3528", [20 x i8]* %"$_sender_3530", [32 x i8]* %"$node_3532", [20 x i8]* %"$resolver_3534"), !dbg !366 + ret void +} + +define internal void @"$transfer_3535"(%Uint128 %_amount, [20 x i8]* %"$_origin_3536", [20 x i8]* %"$_sender_3537", [32 x i8]* %"$node_3538", [20 x i8]* %"$owner_3539") !dbg !367 { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3536", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3537", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_3538", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_3539", align 1 + %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 + %"$indices_buf_3540_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3540_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3540_salloc_load", i64 32) + %"$indices_buf_3540_salloc" = bitcast i8* %"$indices_buf_3540_salloc_salloc" to [32 x i8]* + %"$indices_buf_3540" = bitcast [32 x i8]* %"$indices_buf_3540_salloc" to i8* + %"$indices_gep_3541" = getelementptr i8, i8* %"$indices_buf_3540", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3541" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 + %"$execptr_load_3543" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_3544" = call i8* @_fetch_field(i8* %"$execptr_load_3543", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3542", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3540", i32 1), !dbg !368 + %"$maybeRecord_3545" = bitcast i8* %"$maybeRecord_call_3544" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_3545", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_3546" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_3546_3547" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3546" to i8* + %"$_literal_cost_call_3548" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_3546_3547") + %"$gasadd_3549" = add i64 %"$_literal_cost_call_3548", 0 + %"$gasadd_3550" = add i64 %"$gasadd_3549", 1 + %"$gasrem_3551" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3552" = icmp ugt i64 %"$gasadd_3550", %"$gasrem_3551" + br i1 %"$gascmp_3552", label %"$out_of_gas_3553", label %"$have_gas_3554" + +"$out_of_gas_3553": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3554" + +"$have_gas_3554": ; preds = %"$out_of_gas_3553", %entry + %"$consume_3555" = sub i64 %"$gasrem_3551", %"$gasadd_3550" + store i64 %"$consume_3555", i64* @_gasrem, align 8 + %maybeApproved = alloca %TName_Option_ByStr20*, align 8 + %"$indices_buf_3556_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3556_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3556_salloc_load", i64 32) + %"$indices_buf_3556_salloc" = bitcast i8* %"$indices_buf_3556_salloc_salloc" to [32 x i8]* + %"$indices_buf_3556" = bitcast [32 x i8]* %"$indices_buf_3556_salloc" to i8* + %"$indices_gep_3557" = getelementptr i8, i8* %"$indices_buf_3556", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_3557" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 + %"$execptr_load_3559" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_3560" = call i8* @_fetch_field(i8* %"$execptr_load_3559", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3558", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_3556", i32 1), !dbg !369 + %"$maybeApproved_3561" = bitcast i8* %"$maybeApproved_call_3560" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_3561", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_3562" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_3562_3563" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3562" to i8* + %"$_literal_cost_call_3564" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_3562_3563") + %"$gasadd_3565" = add i64 %"$_literal_cost_call_3564", 0 + %"$gasadd_3566" = add i64 %"$gasadd_3565", 1 + %"$gasrem_3567" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3568" = icmp ugt i64 %"$gasadd_3566", %"$gasrem_3567" + br i1 %"$gascmp_3568", label %"$out_of_gas_3569", label %"$have_gas_3570" + +"$out_of_gas_3569": ; preds = %"$have_gas_3554" + call void @_out_of_gas() + br label %"$have_gas_3570" + +"$have_gas_3570": ; preds = %"$out_of_gas_3569", %"$have_gas_3554" + %"$consume_3571" = sub i64 %"$gasrem_3567", %"$gasadd_3566" + store i64 %"$consume_3571", i64* @_gasrem, align 8 + %"$gasrem_3572" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3573" = icmp ugt i64 1, %"$gasrem_3572" + br i1 %"$gascmp_3573", label %"$out_of_gas_3574", label %"$have_gas_3575" + +"$out_of_gas_3574": ; preds = %"$have_gas_3570" + call void @_out_of_gas() + br label %"$have_gas_3575" + +"$have_gas_3575": ; preds = %"$out_of_gas_3574", %"$have_gas_3570" + %"$consume_3576" = sub i64 %"$gasrem_3572", 1 + store i64 %"$consume_3576", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_3502" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3503" = icmp ugt i64 1, %"$gasrem_3502" - br i1 %"$gascmp_3503", label %"$out_of_gas_3504", label %"$have_gas_3505" - -"$out_of_gas_3504": ; preds = %"$have_gas_3500" - call void @_out_of_gas() - br label %"$have_gas_3505" - -"$have_gas_3505": ; preds = %"$out_of_gas_3504", %"$have_gas_3500" - %"$consume_3506" = sub i64 %"$gasrem_3502", 1 - store i64 %"$consume_3506", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_79" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_3507" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_3508" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3507", 0 - %"$ud-registry.recordMemberOwner_envptr_3509" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3507", 1 - %"$maybeRecord_3510" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_3511" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_3508"(i8* %"$ud-registry.recordMemberOwner_envptr_3509", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3511", %TName_Option_ud-registry.Record* %"$maybeRecord_3510"), !dbg !358 - %"$ud-registry.recordMemberOwner_ret_3512" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3511", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3512", [20 x i8]* %"$ud-registry.recordMemberOwner_79", align 1, !dbg !358 - %"$$ud-registry.recordMemberOwner_79_3513" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_79", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_79_3513", [20 x i8]* %recordOwner, align 1, !dbg !358 + %"$gasrem_3577" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3578" = icmp ugt i64 1, %"$gasrem_3577" + br i1 %"$gascmp_3578", label %"$out_of_gas_3579", label %"$have_gas_3580" + +"$out_of_gas_3579": ; preds = %"$have_gas_3575" + call void @_out_of_gas() + br label %"$have_gas_3580" + +"$have_gas_3580": ; preds = %"$out_of_gas_3579", %"$have_gas_3575" + %"$consume_3581" = sub i64 %"$gasrem_3577", 1 + store i64 %"$consume_3581", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_48" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_3582" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_3583" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3582", 0 + %"$ud-registry.recordMemberOwner_envptr_3584" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3582", 1 + %"$maybeRecord_3585" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_3586" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_3583"(i8* %"$ud-registry.recordMemberOwner_envptr_3584", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3586", %TName_Option_ud-registry.Record* %"$maybeRecord_3585"), !dbg !370 + %"$ud-registry.recordMemberOwner_ret_3587" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3586", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3587", [20 x i8]* %"$ud-registry.recordMemberOwner_48", align 1, !dbg !370 + %"$$ud-registry.recordMemberOwner_48_3588" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_48", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_48_3588", [20 x i8]* %recordOwner, align 1, !dbg !370 %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_3514_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3514_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3514_salloc_load", i64 20) - %"$indices_buf_3514_salloc" = bitcast i8* %"$indices_buf_3514_salloc_salloc" to [20 x i8]* - %"$indices_buf_3514" = bitcast [20 x i8]* %"$indices_buf_3514_salloc" to i8* - %"$recordOwner_3515" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_3516" = getelementptr i8, i8* %"$indices_buf_3514", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_3516" to [20 x i8]* - store [20 x i8] %"$recordOwner_3515", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_3518" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_3519" = call i8* @_fetch_field(i8* %"$execptr_load_3518", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3517", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_3514", i32 1), !dbg !359 - %"$maybeOperators_3520" = bitcast i8* %"$maybeOperators_call_3519" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3520", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_3521" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_3521_3522" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3521" to i8* - %"$_literal_cost_call_3523" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", i8* %"$$maybeOperators_3521_3522") - %"$gasadd_3524" = add i64 %"$_literal_cost_call_3523", 0 - %"$gasadd_3525" = add i64 %"$gasadd_3524", 1 - %"$gasrem_3526" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3527" = icmp ugt i64 %"$gasadd_3525", %"$gasrem_3526" - br i1 %"$gascmp_3527", label %"$out_of_gas_3528", label %"$have_gas_3529" - -"$out_of_gas_3528": ; preds = %"$have_gas_3505" - call void @_out_of_gas() - br label %"$have_gas_3529" - -"$have_gas_3529": ; preds = %"$out_of_gas_3528", %"$have_gas_3505" - %"$consume_3530" = sub i64 %"$gasrem_3526", %"$gasadd_3525" - store i64 %"$consume_3530", i64* @_gasrem, align 8 - %"$gasrem_3531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3532" = icmp ugt i64 1, %"$gasrem_3531" - br i1 %"$gascmp_3532", label %"$out_of_gas_3533", label %"$have_gas_3534" - -"$out_of_gas_3533": ; preds = %"$have_gas_3529" - call void @_out_of_gas() - br label %"$have_gas_3534" - -"$have_gas_3534": ; preds = %"$out_of_gas_3533", %"$have_gas_3529" - %"$consume_3535" = sub i64 %"$gasrem_3531", 1 - store i64 %"$consume_3535", i64* @_gasrem, align 8 + %"$indices_buf_3589_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3589_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3589_salloc_load", i64 20) + %"$indices_buf_3589_salloc" = bitcast i8* %"$indices_buf_3589_salloc_salloc" to [20 x i8]* + %"$indices_buf_3589" = bitcast [20 x i8]* %"$indices_buf_3589_salloc" to i8* + %"$recordOwner_3590" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_3591" = getelementptr i8, i8* %"$indices_buf_3589", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_3591" to [20 x i8]* + store [20 x i8] %"$recordOwner_3590", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_3593" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_3594" = call i8* @_fetch_field(i8* %"$execptr_load_3593", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3592", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_3589", i32 1), !dbg !371 + %"$maybeOperators_3595" = bitcast i8* %"$maybeOperators_call_3594" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3595", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_3596" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_3596_3597" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3596" to i8* + %"$_literal_cost_call_3598" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", i8* %"$$maybeOperators_3596_3597") + %"$gasadd_3599" = add i64 %"$_literal_cost_call_3598", 0 + %"$gasadd_3600" = add i64 %"$gasadd_3599", 1 + %"$gasrem_3601" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3602" = icmp ugt i64 %"$gasadd_3600", %"$gasrem_3601" + br i1 %"$gascmp_3602", label %"$out_of_gas_3603", label %"$have_gas_3604" + +"$out_of_gas_3603": ; preds = %"$have_gas_3580" + call void @_out_of_gas() + br label %"$have_gas_3604" + +"$have_gas_3604": ; preds = %"$out_of_gas_3603", %"$have_gas_3580" + %"$consume_3605" = sub i64 %"$gasrem_3601", %"$gasadd_3600" + store i64 %"$consume_3605", i64* @_gasrem, align 8 + %"$gasrem_3606" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3607" = icmp ugt i64 1, %"$gasrem_3606" + br i1 %"$gascmp_3607", label %"$out_of_gas_3608", label %"$have_gas_3609" + +"$out_of_gas_3608": ; preds = %"$have_gas_3604" + call void @_out_of_gas() + br label %"$have_gas_3609" + +"$have_gas_3609": ; preds = %"$out_of_gas_3608", %"$have_gas_3604" + %"$consume_3610" = sub i64 %"$gasrem_3606", 1 + store i64 %"$consume_3610", i64* @_gasrem, align 8 %isSenderOAO = alloca %TName_Bool*, align 8 - %"$gasrem_3536" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3537" = icmp ugt i64 1, %"$gasrem_3536" - br i1 %"$gascmp_3537", label %"$out_of_gas_3538", label %"$have_gas_3539" - -"$out_of_gas_3538": ; preds = %"$have_gas_3534" - call void @_out_of_gas() - br label %"$have_gas_3539" - -"$have_gas_3539": ; preds = %"$out_of_gas_3538", %"$have_gas_3534" - %"$consume_3540" = sub i64 %"$gasrem_3536", 1 - store i64 %"$consume_3540", i64* @_gasrem, align 8 - %"$ud-registry.getIsOAO_75" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_3541" = load { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.getIsOAO, align 8 - %"$ud-registry.getIsOAO_fptr_3542" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_3541", 0 - %"$ud-registry.getIsOAO_envptr_3543" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_3541", 1 - %"$ud-registry.getIsOAO__sender_3544" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3544", align 1 - %"$ud-registry.getIsOAO_call_3545" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_3542"(i8* %"$ud-registry.getIsOAO_envptr_3543", [20 x i8]* %"$ud-registry.getIsOAO__sender_3544"), !dbg !360 - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_3545", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_75", align 8, !dbg !360 - %"$ud-registry.getIsOAO_76" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_75_3546" = load { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_75", align 8 - %"$$ud-registry.getIsOAO_75_fptr_3547" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_75_3546", 0 - %"$$ud-registry.getIsOAO_75_envptr_3548" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_75_3546", 1 - %"$$ud-registry.getIsOAO_75_recordOwner_3549" = alloca [20 x i8], align 1 - %"$recordOwner_3550" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_3550", [20 x i8]* %"$$ud-registry.getIsOAO_75_recordOwner_3549", align 1 - %"$$ud-registry.getIsOAO_75_call_3551" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_75_fptr_3547"(i8* %"$$ud-registry.getIsOAO_75_envptr_3548", [20 x i8]* %"$$ud-registry.getIsOAO_75_recordOwner_3549"), !dbg !360 - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_75_call_3551", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_76", align 8, !dbg !360 - %"$ud-registry.getIsOAO_77" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_76_3552" = load { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_76", align 8 - %"$$ud-registry.getIsOAO_76_fptr_3553" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_76_3552", 0 - %"$$ud-registry.getIsOAO_76_envptr_3554" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_76_3552", 1 - %"$maybeApproved_3555" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_76_call_3556" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_76_fptr_3553"(i8* %"$$ud-registry.getIsOAO_76_envptr_3554", %TName_Option_ByStr20* %"$maybeApproved_3555"), !dbg !360 - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_76_call_3556", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_77", align 8, !dbg !360 - %"$ud-registry.getIsOAO_78" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_77_3557" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_77", align 8 - %"$$ud-registry.getIsOAO_77_fptr_3558" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_77_3557", 0 - %"$$ud-registry.getIsOAO_77_envptr_3559" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_77_3557", 1 - %"$maybeOperators_3560" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_77_call_3561" = call %TName_Bool* %"$$ud-registry.getIsOAO_77_fptr_3558"(i8* %"$$ud-registry.getIsOAO_77_envptr_3559", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3560"), !dbg !360 - store %TName_Bool* %"$$ud-registry.getIsOAO_77_call_3561", %TName_Bool** %"$ud-registry.getIsOAO_78", align 8, !dbg !360 - %"$$ud-registry.getIsOAO_78_3562" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_78", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_78_3562", %TName_Bool** %isSenderOAO, align 8, !dbg !360 - %"$gasrem_3563" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3564" = icmp ugt i64 2, %"$gasrem_3563" - br i1 %"$gascmp_3564", label %"$out_of_gas_3565", label %"$have_gas_3566" - -"$out_of_gas_3565": ; preds = %"$have_gas_3539" - call void @_out_of_gas() - br label %"$have_gas_3566" - -"$have_gas_3566": ; preds = %"$out_of_gas_3565", %"$have_gas_3539" - %"$consume_3567" = sub i64 %"$gasrem_3563", 2 - store i64 %"$consume_3567", i64* @_gasrem, align 8 - %"$isSenderOAO_3569" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_3570" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3569", i32 0, i32 0 - %"$isSenderOAO_tag_3571" = load i8, i8* %"$isSenderOAO_tag_3570", align 1 - switch i8 %"$isSenderOAO_tag_3571", label %"$empty_default_3572" [ - i8 0, label %"$True_3573" - i8 1, label %"$False_3715" - ], !dbg !361 - -"$True_3573": ; preds = %"$have_gas_3566" - %"$isSenderOAO_3574" = bitcast %TName_Bool* %"$isSenderOAO_3569" to %CName_True* - %"$gasrem_3575" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3576" = icmp ugt i64 1, %"$gasrem_3575" - br i1 %"$gascmp_3576", label %"$out_of_gas_3577", label %"$have_gas_3578" - -"$out_of_gas_3577": ; preds = %"$True_3573" - call void @_out_of_gas() - br label %"$have_gas_3578" - -"$have_gas_3578": ; preds = %"$out_of_gas_3577", %"$True_3573" - %"$consume_3579" = sub i64 %"$gasrem_3575", 1 - store i64 %"$consume_3579", i64* @_gasrem, align 8 - %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_3580" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3581" = icmp ugt i64 1, %"$gasrem_3580" - br i1 %"$gascmp_3581", label %"$out_of_gas_3582", label %"$have_gas_3583" - -"$out_of_gas_3582": ; preds = %"$have_gas_3578" - call void @_out_of_gas() - br label %"$have_gas_3583" - -"$have_gas_3583": ; preds = %"$out_of_gas_3582", %"$have_gas_3578" - %"$consume_3584" = sub i64 %"$gasrem_3580", 1 - store i64 %"$consume_3584", i64* @_gasrem, align 8 - %"$adtval_3585_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3585_salloc" = call i8* @_salloc(i8* %"$adtval_3585_load", i64 41) - %"$adtval_3585" = bitcast i8* %"$adtval_3585_salloc" to %CName_ud-registry.Record* - %"$adtgep_3586" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3585", i32 0, i32 0 - store i8 0, i8* %"$adtgep_3586", align 1 - %"$adtgep_3587" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3585", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_3587", align 1 - %"$adtgep_3588" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3585", i32 0, i32 2 - store [20 x i8] %resolver, [20 x i8]* %"$adtgep_3588", align 1 - %"$adtptr_3589" = bitcast %CName_ud-registry.Record* %"$adtval_3585" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_3589", %TName_ud-registry.Record** %newRecord, align 8, !dbg !362 - %"$newRecord_3590" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_3590_3591" = bitcast %TName_ud-registry.Record* %"$newRecord_3590" to i8* - %"$_literal_cost_call_3592" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", i8* %"$$newRecord_3590_3591") - %"$gasadd_3593" = add i64 %"$_literal_cost_call_3592", 1 - %"$gasrem_3594" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3595" = icmp ugt i64 %"$gasadd_3593", %"$gasrem_3594" - br i1 %"$gascmp_3595", label %"$out_of_gas_3596", label %"$have_gas_3597" - -"$out_of_gas_3596": ; preds = %"$have_gas_3583" - call void @_out_of_gas() - br label %"$have_gas_3597" - -"$have_gas_3597": ; preds = %"$out_of_gas_3596", %"$have_gas_3583" - %"$consume_3598" = sub i64 %"$gasrem_3594", %"$gasadd_3593" - store i64 %"$consume_3598", i64* @_gasrem, align 8 - %"$indices_buf_3599_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3599_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3599_salloc_load", i64 32) - %"$indices_buf_3599_salloc" = bitcast i8* %"$indices_buf_3599_salloc_salloc" to [32 x i8]* - %"$indices_buf_3599" = bitcast [32 x i8]* %"$indices_buf_3599_salloc" to i8* - %"$indices_gep_3600" = getelementptr i8, i8* %"$indices_buf_3599", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_3600" to [32 x i8]* + %"$gasrem_3611" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3612" = icmp ugt i64 1, %"$gasrem_3611" + br i1 %"$gascmp_3612", label %"$out_of_gas_3613", label %"$have_gas_3614" + +"$out_of_gas_3613": ; preds = %"$have_gas_3609" + call void @_out_of_gas() + br label %"$have_gas_3614" + +"$have_gas_3614": ; preds = %"$out_of_gas_3613", %"$have_gas_3609" + %"$consume_3615" = sub i64 %"$gasrem_3611", 1 + store i64 %"$consume_3615", i64* @_gasrem, align 8 + %"$ud-registry.getIsOAO_3616" = load { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }* @ud-registry.getIsOAO, align 8 + %"$ud-registry.getIsOAO_fptr_3617" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3616", 0 + %"$ud-registry.getIsOAO_envptr_3618" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3616", 1 + %"$ud-registry.getIsOAO__sender_3619" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3619", align 1 + %"$ud-registry.getIsOAO_recordOwner_3620" = alloca [20 x i8], align 1 + %"$recordOwner_3621" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3621", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3620", align 1 + %"$maybeApproved_3622" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeOperators_3623" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$ud-registry.getIsOAO_call_3624" = call %TName_Bool* %"$ud-registry.getIsOAO_fptr_3617"(i8* %"$ud-registry.getIsOAO_envptr_3618", [20 x i8]* %"$ud-registry.getIsOAO__sender_3619", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3620", %TName_Option_ByStr20* %"$maybeApproved_3622", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3623"), !dbg !372 + store %TName_Bool* %"$ud-registry.getIsOAO_call_3624", %TName_Bool** %isSenderOAO, align 8, !dbg !372 + %"$gasrem_3625" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3626" = icmp ugt i64 2, %"$gasrem_3625" + br i1 %"$gascmp_3626", label %"$out_of_gas_3627", label %"$have_gas_3628" + +"$out_of_gas_3627": ; preds = %"$have_gas_3614" + call void @_out_of_gas() + br label %"$have_gas_3628" + +"$have_gas_3628": ; preds = %"$out_of_gas_3627", %"$have_gas_3614" + %"$consume_3629" = sub i64 %"$gasrem_3625", 2 + store i64 %"$consume_3629", i64* @_gasrem, align 8 + %"$isSenderOAO_3631" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_3632" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3631", i32 0, i32 0 + %"$isSenderOAO_tag_3633" = load i8, i8* %"$isSenderOAO_tag_3632", align 1 + switch i8 %"$isSenderOAO_tag_3633", label %"$empty_default_3634" [ + i8 0, label %"$True_3635" + i8 1, label %"$False_3779" + ], !dbg !373 + +"$True_3635": ; preds = %"$have_gas_3628" + %"$isSenderOAO_3636" = bitcast %TName_Bool* %"$isSenderOAO_3631" to %CName_True* + %"$gasrem_3637" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3638" = icmp ugt i64 1, %"$gasrem_3637" + br i1 %"$gascmp_3638", label %"$out_of_gas_3639", label %"$have_gas_3640" + +"$out_of_gas_3639": ; preds = %"$True_3635" + call void @_out_of_gas() + br label %"$have_gas_3640" + +"$have_gas_3640": ; preds = %"$out_of_gas_3639", %"$True_3635" + %"$consume_3641" = sub i64 %"$gasrem_3637", 1 + store i64 %"$consume_3641", i64* @_gasrem, align 8 + %"$indices_buf_3642_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3642_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3642_salloc_load", i64 32) + %"$indices_buf_3642_salloc" = bitcast i8* %"$indices_buf_3642_salloc_salloc" to [32 x i8]* + %"$indices_buf_3642" = bitcast [32 x i8]* %"$indices_buf_3642_salloc" to i8* + %"$indices_gep_3643" = getelementptr i8, i8* %"$indices_buf_3642", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_3643" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_3601" = load i8*, i8** @_execptr, align 8 - %"$newRecord_3603" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_3604" = bitcast %TName_ud-registry.Record* %"$newRecord_3603" to i8* - call void @_update_field(i8* %"$execptr_load_3601", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3602", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_3599", i8* %"$update_value_3604"), !dbg !365 - %"$gasrem_3605" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3606" = icmp ugt i64 1, %"$gasrem_3605" - br i1 %"$gascmp_3606", label %"$out_of_gas_3607", label %"$have_gas_3608" - -"$out_of_gas_3607": ; preds = %"$have_gas_3597" - call void @_out_of_gas() - br label %"$have_gas_3608" - -"$have_gas_3608": ; preds = %"$out_of_gas_3607", %"$have_gas_3597" - %"$consume_3609" = sub i64 %"$gasrem_3605", 1 - store i64 %"$consume_3609", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 - %"$gasrem_3610" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3611" = icmp ugt i64 1, %"$gasrem_3610" - br i1 %"$gascmp_3611", label %"$out_of_gas_3612", label %"$have_gas_3613" - -"$out_of_gas_3612": ; preds = %"$have_gas_3608" - call void @_out_of_gas() - br label %"$have_gas_3613" - -"$have_gas_3613": ; preds = %"$out_of_gas_3612", %"$have_gas_3608" - %"$consume_3614" = sub i64 %"$gasrem_3610", 1 - store i64 %"$consume_3614", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_70" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_3615" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_3616" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_3615", 0 - %"$ud-registry.eConfigured_envptr_3617" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_3615", 1 - %"$ud-registry.eConfigured_node_3618" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_3618", align 1 - %"$ud-registry.eConfigured_call_3619" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_3616"(i8* %"$ud-registry.eConfigured_envptr_3617", [32 x i8]* %"$ud-registry.eConfigured_node_3618"), !dbg !366 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_3619", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_70", align 8, !dbg !366 - %"$ud-registry.eConfigured_71" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_70_3620" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_70", align 8 - %"$$ud-registry.eConfigured_70_fptr_3621" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_70_3620", 0 - %"$$ud-registry.eConfigured_70_envptr_3622" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_70_3620", 1 - %"$$ud-registry.eConfigured_70_owner_3623" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_70_owner_3623", align 1 - %"$$ud-registry.eConfigured_70_call_3624" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_70_fptr_3621"(i8* %"$$ud-registry.eConfigured_70_envptr_3622", [20 x i8]* %"$$ud-registry.eConfigured_70_owner_3623"), !dbg !366 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_70_call_3624", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_71", align 8, !dbg !366 - %"$ud-registry.eConfigured_72" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_71_3625" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_71", align 8 - %"$$ud-registry.eConfigured_71_fptr_3626" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_71_3625", 0 - %"$$ud-registry.eConfigured_71_envptr_3627" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_71_3625", 1 - %"$$ud-registry.eConfigured_71_resolver_3628" = alloca [20 x i8], align 1 - store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_71_resolver_3628", align 1 - %"$$ud-registry.eConfigured_71_call_3629" = call i8* %"$$ud-registry.eConfigured_71_fptr_3626"(i8* %"$$ud-registry.eConfigured_71_envptr_3627", [20 x i8]* %"$$ud-registry.eConfigured_71_resolver_3628"), !dbg !366 - store i8* %"$$ud-registry.eConfigured_71_call_3629", i8** %"$ud-registry.eConfigured_72", align 8, !dbg !366 - %"$$ud-registry.eConfigured_72_3630" = load i8*, i8** %"$ud-registry.eConfigured_72", align 8 - store i8* %"$$ud-registry.eConfigured_72_3630", i8** %e, align 8, !dbg !366 - %"$e_3631" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_3633" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3631") - %"$gasrem_3634" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3635" = icmp ugt i64 %"$_literal_cost_call_3633", %"$gasrem_3634" - br i1 %"$gascmp_3635", label %"$out_of_gas_3636", label %"$have_gas_3637" - -"$out_of_gas_3636": ; preds = %"$have_gas_3613" - call void @_out_of_gas() - br label %"$have_gas_3637" - -"$have_gas_3637": ; preds = %"$out_of_gas_3636", %"$have_gas_3613" - %"$consume_3638" = sub i64 %"$gasrem_3634", %"$_literal_cost_call_3633" - store i64 %"$consume_3638", i64* @_gasrem, align 8 - %"$execptr_load_3639" = load i8*, i8** @_execptr, align 8 - %"$e_3640" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_3639", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3640"), !dbg !367 - %"$gasrem_3641" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3642" = icmp ugt i64 1, %"$gasrem_3641" - br i1 %"$gascmp_3642", label %"$out_of_gas_3643", label %"$have_gas_3644" - -"$out_of_gas_3643": ; preds = %"$have_gas_3637" - call void @_out_of_gas() - br label %"$have_gas_3644" - -"$have_gas_3644": ; preds = %"$out_of_gas_3643", %"$have_gas_3637" - %"$consume_3645" = sub i64 %"$gasrem_3641", 1 - store i64 %"$consume_3645", i64* @_gasrem, align 8 - %msgs = alloca %TName_List_Message*, align 8 + %"$execptr_load_3644" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_3644", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3645", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_3642", i8* null), !dbg !374 %"$gasrem_3646" = load i64, i64* @_gasrem, align 8 %"$gascmp_3647" = icmp ugt i64 1, %"$gasrem_3646" br i1 %"$gascmp_3647", label %"$out_of_gas_3648", label %"$have_gas_3649" -"$out_of_gas_3648": ; preds = %"$have_gas_3644" +"$out_of_gas_3648": ; preds = %"$have_gas_3640" call void @_out_of_gas() br label %"$have_gas_3649" -"$have_gas_3649": ; preds = %"$out_of_gas_3648", %"$have_gas_3644" +"$have_gas_3649": ; preds = %"$out_of_gas_3648", %"$have_gas_3640" %"$consume_3650" = sub i64 %"$gasrem_3646", 1 store i64 %"$consume_3650", i64* @_gasrem, align 8 - %m = alloca i8*, align 8 + %newRecord = alloca %TName_ud-registry.Record*, align 8 %"$gasrem_3651" = load i64, i64* @_gasrem, align 8 %"$gascmp_3652" = icmp ugt i64 1, %"$gasrem_3651" br i1 %"$gascmp_3652", label %"$out_of_gas_3653", label %"$have_gas_3654" @@ -6847,892 +6992,907 @@ entry: "$have_gas_3654": ; preds = %"$out_of_gas_3653", %"$have_gas_3649" %"$consume_3655" = sub i64 %"$gasrem_3651", 1 store i64 %"$consume_3655", i64* @_gasrem, align 8 - %"$msgobj_3656_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3656_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3656_salloc_load", i64 225) - %"$msgobj_3656_salloc" = bitcast i8* %"$msgobj_3656_salloc_salloc" to [225 x i8]* - %"$msgobj_3656" = bitcast [225 x i8]* %"$msgobj_3656_salloc" to i8* - store i8 5, i8* %"$msgobj_3656", align 1 - %"$msgobj_fname_3658" = getelementptr i8, i8* %"$msgobj_3656", i32 1 - %"$msgobj_fname_3659" = bitcast i8* %"$msgobj_fname_3658" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3657", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3659", align 8 - %"$msgobj_td_3660" = getelementptr i8, i8* %"$msgobj_3656", i32 17 - %"$msgobj_td_3661" = bitcast i8* %"$msgobj_td_3660" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_3661", align 8 - %"$msgobj_v_3663" = getelementptr i8, i8* %"$msgobj_3656", i32 25 - %"$msgobj_v_3664" = bitcast i8* %"$msgobj_v_3663" to %String* - store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3662", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3664", align 8 - %"$msgobj_fname_3666" = getelementptr i8, i8* %"$msgobj_3656", i32 41 - %"$msgobj_fname_3667" = bitcast i8* %"$msgobj_fname_3666" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3665", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3667", align 8 - %"$msgobj_td_3668" = getelementptr i8, i8* %"$msgobj_3656", i32 57 - %"$msgobj_td_3669" = bitcast i8* %"$msgobj_td_3668" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_3669", align 8 - %"$msgobj_v_3670" = getelementptr i8, i8* %"$msgobj_3656", i32 65 - %"$msgobj_v_3671" = bitcast i8* %"$msgobj_v_3670" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3671", align 1 - %"$msgobj_fname_3673" = getelementptr i8, i8* %"$msgobj_3656", i32 97 - %"$msgobj_fname_3674" = bitcast i8* %"$msgobj_fname_3673" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3672", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3674", align 8 - %"$msgobj_td_3675" = getelementptr i8, i8* %"$msgobj_3656", i32 113 - %"$msgobj_td_3676" = bitcast i8* %"$msgobj_td_3675" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_3676", align 8 - %"$msgobj_v_3677" = getelementptr i8, i8* %"$msgobj_3656", i32 121 - %"$msgobj_v_3678" = bitcast i8* %"$msgobj_v_3677" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_3678", align 1 - %"$msgobj_fname_3680" = getelementptr i8, i8* %"$msgobj_3656", i32 141 - %"$msgobj_fname_3681" = bitcast i8* %"$msgobj_fname_3680" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3679", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3681", align 8 - %"$msgobj_td_3682" = getelementptr i8, i8* %"$msgobj_3656", i32 157 - %"$msgobj_td_3683" = bitcast i8* %"$msgobj_td_3682" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_3683", align 8 - %"$msgobj_v_3684" = getelementptr i8, i8* %"$msgobj_3656", i32 165 - %"$msgobj_v_3685" = bitcast i8* %"$msgobj_v_3684" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3685", align 8 - %"$msgobj_fname_3687" = getelementptr i8, i8* %"$msgobj_3656", i32 181 - %"$msgobj_fname_3688" = bitcast i8* %"$msgobj_fname_3687" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3686", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3688", align 8 - %"$msgobj_td_3689" = getelementptr i8, i8* %"$msgobj_3656", i32 197 - %"$msgobj_td_3690" = bitcast i8* %"$msgobj_td_3689" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_3690", align 8 - %"$msgobj_v_3691" = getelementptr i8, i8* %"$msgobj_3656", i32 205 - %"$msgobj_v_3692" = bitcast i8* %"$msgobj_v_3691" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3692", align 1 - store i8* %"$msgobj_3656", i8** %m, align 8, !dbg !368 - %"$gasrem_3694" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3695" = icmp ugt i64 1, %"$gasrem_3694" - br i1 %"$gascmp_3695", label %"$out_of_gas_3696", label %"$have_gas_3697" - -"$out_of_gas_3696": ; preds = %"$have_gas_3654" - call void @_out_of_gas() - br label %"$have_gas_3697" - -"$have_gas_3697": ; preds = %"$out_of_gas_3696", %"$have_gas_3654" - %"$consume_3698" = sub i64 %"$gasrem_3694", 1 - store i64 %"$consume_3698", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_69" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_3699" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_3700" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3699", 0 - %"$ud-registry.oneMsg_envptr_3701" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3699", 1 - %"$m_3702" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_3703" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3700"(i8* %"$ud-registry.oneMsg_envptr_3701", i8* %"$m_3702"), !dbg !369 - store %TName_List_Message* %"$ud-registry.oneMsg_call_3703", %TName_List_Message** %"$ud-registry.oneMsg_69", align 8, !dbg !369 - %"$$ud-registry.oneMsg_69_3704" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_69", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_69_3704", %TName_List_Message** %msgs, align 8, !dbg !369 - %"$msgs_3705" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_3705_3706" = bitcast %TName_List_Message* %"$msgs_3705" to i8* - %"$_literal_cost_call_3707" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_3705_3706") - %"$gasrem_3708" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3709" = icmp ugt i64 %"$_literal_cost_call_3707", %"$gasrem_3708" - br i1 %"$gascmp_3709", label %"$out_of_gas_3710", label %"$have_gas_3711" - -"$out_of_gas_3710": ; preds = %"$have_gas_3697" - call void @_out_of_gas() - br label %"$have_gas_3711" - -"$have_gas_3711": ; preds = %"$out_of_gas_3710", %"$have_gas_3697" - %"$consume_3712" = sub i64 %"$gasrem_3708", %"$_literal_cost_call_3707" - store i64 %"$consume_3712", i64* @_gasrem, align 8 - %"$execptr_load_3713" = load i8*, i8** @_execptr, align 8 - %"$msgs_3714" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_3713", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_3714"), !dbg !370 - br label %"$matchsucc_3568" - -"$False_3715": ; preds = %"$have_gas_3566" - %"$isSenderOAO_3716" = bitcast %TName_Bool* %"$isSenderOAO_3569" to %CName_False* - %"$gasrem_3717" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3718" = icmp ugt i64 1, %"$gasrem_3717" - br i1 %"$gascmp_3718", label %"$out_of_gas_3719", label %"$have_gas_3720" - -"$out_of_gas_3719": ; preds = %"$False_3715" - call void @_out_of_gas() - br label %"$have_gas_3720" - -"$have_gas_3720": ; preds = %"$out_of_gas_3719", %"$False_3715" - %"$consume_3721" = sub i64 %"$gasrem_3717", 1 - store i64 %"$consume_3721", i64* @_gasrem, align 8 - %e4 = alloca i8*, align 8 - %"$gasrem_3722" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3723" = icmp ugt i64 1, %"$gasrem_3722" - br i1 %"$gascmp_3723", label %"$out_of_gas_3724", label %"$have_gas_3725" + %"$ud-registry.zeroByStr20_3656" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + %"$adtval_3657_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3657_salloc" = call i8* @_salloc(i8* %"$adtval_3657_load", i64 41) + %"$adtval_3657" = bitcast i8* %"$adtval_3657_salloc" to %CName_ud-registry.Record* + %"$adtgep_3658" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3657", i32 0, i32 0 + store i8 0, i8* %"$adtgep_3658", align 1 + %"$adtgep_3659" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3657", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_3659", align 1 + %"$adtgep_3660" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3657", i32 0, i32 2 + store [20 x i8] %"$ud-registry.zeroByStr20_3656", [20 x i8]* %"$adtgep_3660", align 1 + %"$adtptr_3661" = bitcast %CName_ud-registry.Record* %"$adtval_3657" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_3661", %TName_ud-registry.Record** %newRecord, align 8, !dbg !377 + %"$newRecord_3662" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_3662_3663" = bitcast %TName_ud-registry.Record* %"$newRecord_3662" to i8* + %"$_literal_cost_call_3664" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", i8* %"$$newRecord_3662_3663") + %"$gasadd_3665" = add i64 %"$_literal_cost_call_3664", 1 + %"$gasrem_3666" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3667" = icmp ugt i64 %"$gasadd_3665", %"$gasrem_3666" + br i1 %"$gascmp_3667", label %"$out_of_gas_3668", label %"$have_gas_3669" + +"$out_of_gas_3668": ; preds = %"$have_gas_3654" + call void @_out_of_gas() + br label %"$have_gas_3669" + +"$have_gas_3669": ; preds = %"$out_of_gas_3668", %"$have_gas_3654" + %"$consume_3670" = sub i64 %"$gasrem_3666", %"$gasadd_3665" + store i64 %"$consume_3670", i64* @_gasrem, align 8 + %"$indices_buf_3671_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3671_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3671_salloc_load", i64 32) + %"$indices_buf_3671_salloc" = bitcast i8* %"$indices_buf_3671_salloc_salloc" to [32 x i8]* + %"$indices_buf_3671" = bitcast [32 x i8]* %"$indices_buf_3671_salloc" to i8* + %"$indices_gep_3672" = getelementptr i8, i8* %"$indices_buf_3671", i32 0 + %indices_cast4 = bitcast i8* %"$indices_gep_3672" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %indices_cast4, align 1 + %"$execptr_load_3673" = load i8*, i8** @_execptr, align 8 + %"$newRecord_3675" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_3676" = bitcast %TName_ud-registry.Record* %"$newRecord_3675" to i8* + call void @_update_field(i8* %"$execptr_load_3673", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3674", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3671", i8* %"$update_value_3676"), !dbg !378 + %"$gasrem_3677" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3678" = icmp ugt i64 1, %"$gasrem_3677" + br i1 %"$gascmp_3678", label %"$out_of_gas_3679", label %"$have_gas_3680" -"$out_of_gas_3724": ; preds = %"$have_gas_3720" +"$out_of_gas_3679": ; preds = %"$have_gas_3669" call void @_out_of_gas() - br label %"$have_gas_3725" + br label %"$have_gas_3680" -"$have_gas_3725": ; preds = %"$out_of_gas_3724", %"$have_gas_3720" - %"$consume_3726" = sub i64 %"$gasrem_3722", 1 - store i64 %"$consume_3726", i64* @_gasrem, align 8 - %m5 = alloca %String, align 8 - %"$gasrem_3727" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3728" = icmp ugt i64 1, %"$gasrem_3727" - br i1 %"$gascmp_3728", label %"$out_of_gas_3729", label %"$have_gas_3730" - -"$out_of_gas_3729": ; preds = %"$have_gas_3725" - call void @_out_of_gas() - br label %"$have_gas_3730" - -"$have_gas_3730": ; preds = %"$out_of_gas_3729", %"$have_gas_3725" - %"$consume_3731" = sub i64 %"$gasrem_3727", 1 - store i64 %"$consume_3731", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_3732", i32 0, i32 0), i32 43 }, %String* %m5, align 8, !dbg !371 - %"$gasrem_3733" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3734" = icmp ugt i64 1, %"$gasrem_3733" - br i1 %"$gascmp_3734", label %"$out_of_gas_3735", label %"$have_gas_3736" - -"$out_of_gas_3735": ; preds = %"$have_gas_3730" - call void @_out_of_gas() - br label %"$have_gas_3736" - -"$have_gas_3736": ; preds = %"$out_of_gas_3735", %"$have_gas_3730" - %"$consume_3737" = sub i64 %"$gasrem_3733", 1 - store i64 %"$consume_3737", i64* @_gasrem, align 8 - %"$ud-registry.eError_74" = alloca i8*, align 8 - %"$ud-registry.eError_3738" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_3739" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3738", 0 - %"$ud-registry.eError_envptr_3740" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3738", 1 - %"$m_3741" = load %String, %String* %m5, align 8 - %"$ud-registry.eError_call_3742" = call i8* %"$ud-registry.eError_fptr_3739"(i8* %"$ud-registry.eError_envptr_3740", %String %"$m_3741"), !dbg !373 - store i8* %"$ud-registry.eError_call_3742", i8** %"$ud-registry.eError_74", align 8, !dbg !373 - %"$$ud-registry.eError_74_3743" = load i8*, i8** %"$ud-registry.eError_74", align 8 - store i8* %"$$ud-registry.eError_74_3743", i8** %e4, align 8, !dbg !373 - %"$e_3744" = load i8*, i8** %e4, align 8 - %"$_literal_cost_call_3746" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3744") - %"$gasrem_3747" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3748" = icmp ugt i64 %"$_literal_cost_call_3746", %"$gasrem_3747" - br i1 %"$gascmp_3748", label %"$out_of_gas_3749", label %"$have_gas_3750" - -"$out_of_gas_3749": ; preds = %"$have_gas_3736" - call void @_out_of_gas() - br label %"$have_gas_3750" - -"$have_gas_3750": ; preds = %"$out_of_gas_3749", %"$have_gas_3736" - %"$consume_3751" = sub i64 %"$gasrem_3747", %"$_literal_cost_call_3746" - store i64 %"$consume_3751", i64* @_gasrem, align 8 - %"$execptr_load_3752" = load i8*, i8** @_execptr, align 8 - %"$e_3753" = load i8*, i8** %e4, align 8 - call void @_event(i8* %"$execptr_load_3752", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3753"), !dbg !374 - %"$gasrem_3754" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3755" = icmp ugt i64 1, %"$gasrem_3754" - br i1 %"$gascmp_3755", label %"$out_of_gas_3756", label %"$have_gas_3757" - -"$out_of_gas_3756": ; preds = %"$have_gas_3750" - call void @_out_of_gas() - br label %"$have_gas_3757" - -"$have_gas_3757": ; preds = %"$out_of_gas_3756", %"$have_gas_3750" - %"$consume_3758" = sub i64 %"$gasrem_3754", 1 - store i64 %"$consume_3758", i64* @_gasrem, align 8 - %msgs6 = alloca %TName_List_Message*, align 8 - %"$gasrem_3759" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3760" = icmp ugt i64 1, %"$gasrem_3759" - br i1 %"$gascmp_3760", label %"$out_of_gas_3761", label %"$have_gas_3762" +"$have_gas_3680": ; preds = %"$out_of_gas_3679", %"$have_gas_3669" + %"$consume_3681" = sub i64 %"$gasrem_3677", 1 + store i64 %"$consume_3681", i64* @_gasrem, align 8 + %e = alloca i8*, align 8 + %"$gasrem_3682" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3683" = icmp ugt i64 1, %"$gasrem_3682" + br i1 %"$gascmp_3683", label %"$out_of_gas_3684", label %"$have_gas_3685" + +"$out_of_gas_3684": ; preds = %"$have_gas_3680" + call void @_out_of_gas() + br label %"$have_gas_3685" + +"$have_gas_3685": ; preds = %"$out_of_gas_3684", %"$have_gas_3680" + %"$consume_3686" = sub i64 %"$gasrem_3682", 1 + store i64 %"$consume_3686", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_3687" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_3688" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3687", 0 + %"$ud-registry.eConfigured_envptr_3689" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3687", 1 + %"$ud-registry.eConfigured_node_3690" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_3690", align 1 + %"$ud-registry.eConfigured_owner_3691" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$ud-registry.eConfigured_owner_3691", align 1 + %"$ud-registry.eConfigured_ud-registry.zeroByStr20_3692" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_3693" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_3693", [20 x i8]* %"$ud-registry.eConfigured_ud-registry.zeroByStr20_3692", align 1 + %"$ud-registry.eConfigured_call_3694" = call i8* %"$ud-registry.eConfigured_fptr_3688"(i8* %"$ud-registry.eConfigured_envptr_3689", [32 x i8]* %"$ud-registry.eConfigured_node_3690", [20 x i8]* %"$ud-registry.eConfigured_owner_3691", [20 x i8]* %"$ud-registry.eConfigured_ud-registry.zeroByStr20_3692"), !dbg !379 + store i8* %"$ud-registry.eConfigured_call_3694", i8** %e, align 8, !dbg !379 + %"$e_3695" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_3697" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3695") + %"$gasrem_3698" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3699" = icmp ugt i64 %"$_literal_cost_call_3697", %"$gasrem_3698" + br i1 %"$gascmp_3699", label %"$out_of_gas_3700", label %"$have_gas_3701" + +"$out_of_gas_3700": ; preds = %"$have_gas_3685" + call void @_out_of_gas() + br label %"$have_gas_3701" + +"$have_gas_3701": ; preds = %"$out_of_gas_3700", %"$have_gas_3685" + %"$consume_3702" = sub i64 %"$gasrem_3698", %"$_literal_cost_call_3697" + store i64 %"$consume_3702", i64* @_gasrem, align 8 + %"$execptr_load_3703" = load i8*, i8** @_execptr, align 8 + %"$e_3704" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_3703", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3704"), !dbg !380 + %"$gasrem_3705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3706" = icmp ugt i64 1, %"$gasrem_3705" + br i1 %"$gascmp_3706", label %"$out_of_gas_3707", label %"$have_gas_3708" + +"$out_of_gas_3707": ; preds = %"$have_gas_3701" + call void @_out_of_gas() + br label %"$have_gas_3708" + +"$have_gas_3708": ; preds = %"$out_of_gas_3707", %"$have_gas_3701" + %"$consume_3709" = sub i64 %"$gasrem_3705", 1 + store i64 %"$consume_3709", i64* @_gasrem, align 8 + %msgs = alloca %TName_List_Message*, align 8 + %"$gasrem_3710" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3711" = icmp ugt i64 1, %"$gasrem_3710" + br i1 %"$gascmp_3711", label %"$out_of_gas_3712", label %"$have_gas_3713" -"$out_of_gas_3761": ; preds = %"$have_gas_3757" +"$out_of_gas_3712": ; preds = %"$have_gas_3708" call void @_out_of_gas() - br label %"$have_gas_3762" + br label %"$have_gas_3713" -"$have_gas_3762": ; preds = %"$out_of_gas_3761", %"$have_gas_3757" - %"$consume_3763" = sub i64 %"$gasrem_3759", 1 - store i64 %"$consume_3763", i64* @_gasrem, align 8 - %"$m_0" = alloca i8*, align 8 - %"$gasrem_3764" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3765" = icmp ugt i64 1, %"$gasrem_3764" - br i1 %"$gascmp_3765", label %"$out_of_gas_3766", label %"$have_gas_3767" - -"$out_of_gas_3766": ; preds = %"$have_gas_3762" - call void @_out_of_gas() - br label %"$have_gas_3767" - -"$have_gas_3767": ; preds = %"$out_of_gas_3766", %"$have_gas_3762" - %"$consume_3768" = sub i64 %"$gasrem_3764", 1 - store i64 %"$consume_3768", i64* @_gasrem, align 8 - %"$msgobj_3769_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3769_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3769_salloc_load", i64 225) - %"$msgobj_3769_salloc" = bitcast i8* %"$msgobj_3769_salloc_salloc" to [225 x i8]* - %"$msgobj_3769" = bitcast [225 x i8]* %"$msgobj_3769_salloc" to i8* - store i8 5, i8* %"$msgobj_3769", align 1 - %"$msgobj_fname_3771" = getelementptr i8, i8* %"$msgobj_3769", i32 1 - %"$msgobj_fname_3772" = bitcast i8* %"$msgobj_fname_3771" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3770", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3772", align 8 - %"$msgobj_td_3773" = getelementptr i8, i8* %"$msgobj_3769", i32 17 - %"$msgobj_td_3774" = bitcast i8* %"$msgobj_td_3773" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_3774", align 8 - %"$msgobj_v_3776" = getelementptr i8, i8* %"$msgobj_3769", i32 25 - %"$msgobj_v_3777" = bitcast i8* %"$msgobj_v_3776" to %String* - store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3775", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3777", align 8 - %"$msgobj_fname_3779" = getelementptr i8, i8* %"$msgobj_3769", i32 41 - %"$msgobj_fname_3780" = bitcast i8* %"$msgobj_fname_3779" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3778", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3780", align 8 - %"$msgobj_td_3781" = getelementptr i8, i8* %"$msgobj_3769", i32 57 - %"$msgobj_td_3782" = bitcast i8* %"$msgobj_td_3781" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_3782", align 8 - %"$msgobj_v_3783" = getelementptr i8, i8* %"$msgobj_3769", i32 65 - %"$msgobj_v_3784" = bitcast i8* %"$msgobj_v_3783" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3784", align 1 - %"$msgobj_fname_3786" = getelementptr i8, i8* %"$msgobj_3769", i32 97 - %"$msgobj_fname_3787" = bitcast i8* %"$msgobj_fname_3786" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3785", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3787", align 8 - %"$msgobj_td_3788" = getelementptr i8, i8* %"$msgobj_3769", i32 113 - %"$msgobj_td_3789" = bitcast i8* %"$msgobj_td_3788" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_3789", align 8 - %"$recordOwner_3790" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$msgobj_v_3791" = getelementptr i8, i8* %"$msgobj_3769", i32 121 - %"$msgobj_v_3792" = bitcast i8* %"$msgobj_v_3791" to [20 x i8]* - store [20 x i8] %"$recordOwner_3790", [20 x i8]* %"$msgobj_v_3792", align 1 - %"$msgobj_fname_3794" = getelementptr i8, i8* %"$msgobj_3769", i32 141 - %"$msgobj_fname_3795" = bitcast i8* %"$msgobj_fname_3794" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3793", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3795", align 8 - %"$msgobj_td_3796" = getelementptr i8, i8* %"$msgobj_3769", i32 157 - %"$msgobj_td_3797" = bitcast i8* %"$msgobj_td_3796" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_3797", align 8 - %"$msgobj_v_3798" = getelementptr i8, i8* %"$msgobj_3769", i32 165 - %"$msgobj_v_3799" = bitcast i8* %"$msgobj_v_3798" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3799", align 8 - %"$msgobj_fname_3801" = getelementptr i8, i8* %"$msgobj_3769", i32 181 - %"$msgobj_fname_3802" = bitcast i8* %"$msgobj_fname_3801" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3800", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3802", align 8 - %"$msgobj_td_3803" = getelementptr i8, i8* %"$msgobj_3769", i32 197 - %"$msgobj_td_3804" = bitcast i8* %"$msgobj_td_3803" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_3804", align 8 - %"$msgobj_v_3805" = getelementptr i8, i8* %"$msgobj_3769", i32 205 - %"$msgobj_v_3806" = bitcast i8* %"$msgobj_v_3805" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3806", align 1 - store i8* %"$msgobj_3769", i8** %"$m_0", align 8, !dbg !375 - %"$gasrem_3808" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3809" = icmp ugt i64 1, %"$gasrem_3808" - br i1 %"$gascmp_3809", label %"$out_of_gas_3810", label %"$have_gas_3811" - -"$out_of_gas_3810": ; preds = %"$have_gas_3767" - call void @_out_of_gas() - br label %"$have_gas_3811" - -"$have_gas_3811": ; preds = %"$out_of_gas_3810", %"$have_gas_3767" - %"$consume_3812" = sub i64 %"$gasrem_3808", 1 - store i64 %"$consume_3812", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_73" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_3813" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_3814" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3813", 0 - %"$ud-registry.oneMsg_envptr_3815" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3813", 1 - %"$$m_0_3816" = load i8*, i8** %"$m_0", align 8 - %"$ud-registry.oneMsg_call_3817" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3814"(i8* %"$ud-registry.oneMsg_envptr_3815", i8* %"$$m_0_3816"), !dbg !376 - store %TName_List_Message* %"$ud-registry.oneMsg_call_3817", %TName_List_Message** %"$ud-registry.oneMsg_73", align 8, !dbg !376 - %"$$ud-registry.oneMsg_73_3818" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_73", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_73_3818", %TName_List_Message** %msgs6, align 8, !dbg !376 - %"$msgs_3819" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 - %"$$msgs_3819_3820" = bitcast %TName_List_Message* %"$msgs_3819" to i8* - %"$_literal_cost_call_3821" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_3819_3820") - %"$gasrem_3822" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3823" = icmp ugt i64 %"$_literal_cost_call_3821", %"$gasrem_3822" - br i1 %"$gascmp_3823", label %"$out_of_gas_3824", label %"$have_gas_3825" - -"$out_of_gas_3824": ; preds = %"$have_gas_3811" - call void @_out_of_gas() - br label %"$have_gas_3825" - -"$have_gas_3825": ; preds = %"$out_of_gas_3824", %"$have_gas_3811" - %"$consume_3826" = sub i64 %"$gasrem_3822", %"$_literal_cost_call_3821" - store i64 %"$consume_3826", i64* @_gasrem, align 8 - %"$execptr_load_3827" = load i8*, i8** @_execptr, align 8 - %"$msgs_3828" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 - call void @_send(i8* %"$execptr_load_3827", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_3828"), !dbg !377 - br label %"$matchsucc_3568" - -"$empty_default_3572": ; preds = %"$have_gas_3566" - br label %"$matchsucc_3568" - -"$matchsucc_3568": ; preds = %"$have_gas_3825", %"$have_gas_3711", %"$empty_default_3572" +"$have_gas_3713": ; preds = %"$out_of_gas_3712", %"$have_gas_3708" + %"$consume_3714" = sub i64 %"$gasrem_3710", 1 + store i64 %"$consume_3714", i64* @_gasrem, align 8 + %m = alloca i8*, align 8 + %"$gasrem_3715" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3716" = icmp ugt i64 1, %"$gasrem_3715" + br i1 %"$gascmp_3716", label %"$out_of_gas_3717", label %"$have_gas_3718" + +"$out_of_gas_3717": ; preds = %"$have_gas_3713" + call void @_out_of_gas() + br label %"$have_gas_3718" + +"$have_gas_3718": ; preds = %"$out_of_gas_3717", %"$have_gas_3713" + %"$consume_3719" = sub i64 %"$gasrem_3715", 1 + store i64 %"$consume_3719", i64* @_gasrem, align 8 + %"$msgobj_3720_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3720_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3720_salloc_load", i64 225) + %"$msgobj_3720_salloc" = bitcast i8* %"$msgobj_3720_salloc_salloc" to [225 x i8]* + %"$msgobj_3720" = bitcast [225 x i8]* %"$msgobj_3720_salloc" to i8* + store i8 5, i8* %"$msgobj_3720", align 1 + %"$msgobj_fname_3722" = getelementptr i8, i8* %"$msgobj_3720", i32 1 + %"$msgobj_fname_3723" = bitcast i8* %"$msgobj_fname_3722" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3721", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3723", align 8 + %"$msgobj_td_3724" = getelementptr i8, i8* %"$msgobj_3720", i32 17 + %"$msgobj_td_3725" = bitcast i8* %"$msgobj_td_3724" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_3725", align 8 + %"$msgobj_v_3727" = getelementptr i8, i8* %"$msgobj_3720", i32 25 + %"$msgobj_v_3728" = bitcast i8* %"$msgobj_v_3727" to %String* + store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_3726", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_3728", align 8 + %"$msgobj_fname_3730" = getelementptr i8, i8* %"$msgobj_3720", i32 41 + %"$msgobj_fname_3731" = bitcast i8* %"$msgobj_fname_3730" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3729", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3731", align 8 + %"$msgobj_td_3732" = getelementptr i8, i8* %"$msgobj_3720", i32 57 + %"$msgobj_td_3733" = bitcast i8* %"$msgobj_td_3732" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_3733", align 8 + %"$msgobj_v_3734" = getelementptr i8, i8* %"$msgobj_3720", i32 65 + %"$msgobj_v_3735" = bitcast i8* %"$msgobj_v_3734" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3735", align 1 + %"$msgobj_fname_3737" = getelementptr i8, i8* %"$msgobj_3720", i32 97 + %"$msgobj_fname_3738" = bitcast i8* %"$msgobj_fname_3737" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3736", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3738", align 8 + %"$msgobj_td_3739" = getelementptr i8, i8* %"$msgobj_3720", i32 113 + %"$msgobj_td_3740" = bitcast i8* %"$msgobj_td_3739" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3740", align 8 + %"$msgobj_v_3741" = getelementptr i8, i8* %"$msgobj_3720", i32 121 + %"$msgobj_v_3742" = bitcast i8* %"$msgobj_v_3741" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_3742", align 1 + %"$msgobj_fname_3744" = getelementptr i8, i8* %"$msgobj_3720", i32 141 + %"$msgobj_fname_3745" = bitcast i8* %"$msgobj_fname_3744" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3743", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3745", align 8 + %"$msgobj_td_3746" = getelementptr i8, i8* %"$msgobj_3720", i32 157 + %"$msgobj_td_3747" = bitcast i8* %"$msgobj_td_3746" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_3747", align 8 + %"$msgobj_v_3748" = getelementptr i8, i8* %"$msgobj_3720", i32 165 + %"$msgobj_v_3749" = bitcast i8* %"$msgobj_v_3748" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3749", align 8 + %"$msgobj_fname_3751" = getelementptr i8, i8* %"$msgobj_3720", i32 181 + %"$msgobj_fname_3752" = bitcast i8* %"$msgobj_fname_3751" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3750", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3752", align 8 + %"$msgobj_td_3753" = getelementptr i8, i8* %"$msgobj_3720", i32 197 + %"$msgobj_td_3754" = bitcast i8* %"$msgobj_td_3753" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3754", align 8 + %"$msgobj_v_3755" = getelementptr i8, i8* %"$msgobj_3720", i32 205 + %"$msgobj_v_3756" = bitcast i8* %"$msgobj_v_3755" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3756", align 1 + store i8* %"$msgobj_3720", i8** %m, align 8, !dbg !381 + %"$gasrem_3758" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3759" = icmp ugt i64 1, %"$gasrem_3758" + br i1 %"$gascmp_3759", label %"$out_of_gas_3760", label %"$have_gas_3761" + +"$out_of_gas_3760": ; preds = %"$have_gas_3718" + call void @_out_of_gas() + br label %"$have_gas_3761" + +"$have_gas_3761": ; preds = %"$out_of_gas_3760", %"$have_gas_3718" + %"$consume_3762" = sub i64 %"$gasrem_3758", 1 + store i64 %"$consume_3762", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_49" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_3763" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_3764" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3763", 0 + %"$ud-registry.oneMsg_envptr_3765" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3763", 1 + %"$m_3766" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_3767" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3764"(i8* %"$ud-registry.oneMsg_envptr_3765", i8* %"$m_3766"), !dbg !382 + store %TName_List_Message* %"$ud-registry.oneMsg_call_3767", %TName_List_Message** %"$ud-registry.oneMsg_49", align 8, !dbg !382 + %"$$ud-registry.oneMsg_49_3768" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_49", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_49_3768", %TName_List_Message** %msgs, align 8, !dbg !382 + %"$msgs_3769" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_3769_3770" = bitcast %TName_List_Message* %"$msgs_3769" to i8* + %"$_literal_cost_call_3771" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_3769_3770") + %"$gasrem_3772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3773" = icmp ugt i64 %"$_literal_cost_call_3771", %"$gasrem_3772" + br i1 %"$gascmp_3773", label %"$out_of_gas_3774", label %"$have_gas_3775" + +"$out_of_gas_3774": ; preds = %"$have_gas_3761" + call void @_out_of_gas() + br label %"$have_gas_3775" + +"$have_gas_3775": ; preds = %"$out_of_gas_3774", %"$have_gas_3761" + %"$consume_3776" = sub i64 %"$gasrem_3772", %"$_literal_cost_call_3771" + store i64 %"$consume_3776", i64* @_gasrem, align 8 + %"$execptr_load_3777" = load i8*, i8** @_execptr, align 8 + %"$msgs_3778" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_3777", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_3778"), !dbg !383 + br label %"$matchsucc_3630" + +"$False_3779": ; preds = %"$have_gas_3628" + %"$isSenderOAO_3780" = bitcast %TName_Bool* %"$isSenderOAO_3631" to %CName_False* + %"$gasrem_3781" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3782" = icmp ugt i64 1, %"$gasrem_3781" + br i1 %"$gascmp_3782", label %"$out_of_gas_3783", label %"$have_gas_3784" + +"$out_of_gas_3783": ; preds = %"$False_3779" + call void @_out_of_gas() + br label %"$have_gas_3784" + +"$have_gas_3784": ; preds = %"$out_of_gas_3783", %"$False_3779" + %"$consume_3785" = sub i64 %"$gasrem_3781", 1 + store i64 %"$consume_3785", i64* @_gasrem, align 8 + %e5 = alloca i8*, align 8 + %"$gasrem_3786" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3787" = icmp ugt i64 1, %"$gasrem_3786" + br i1 %"$gascmp_3787", label %"$out_of_gas_3788", label %"$have_gas_3789" + +"$out_of_gas_3788": ; preds = %"$have_gas_3784" + call void @_out_of_gas() + br label %"$have_gas_3789" + +"$have_gas_3789": ; preds = %"$out_of_gas_3788", %"$have_gas_3784" + %"$consume_3790" = sub i64 %"$gasrem_3786", 1 + store i64 %"$consume_3790", i64* @_gasrem, align 8 + %m6 = alloca %String, align 8 + %"$gasrem_3791" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3792" = icmp ugt i64 1, %"$gasrem_3791" + br i1 %"$gascmp_3792", label %"$out_of_gas_3793", label %"$have_gas_3794" + +"$out_of_gas_3793": ; preds = %"$have_gas_3789" + call void @_out_of_gas() + br label %"$have_gas_3794" + +"$have_gas_3794": ; preds = %"$out_of_gas_3793", %"$have_gas_3789" + %"$consume_3795" = sub i64 %"$gasrem_3791", 1 + store i64 %"$consume_3795", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_3796", i32 0, i32 0), i32 43 }, %String* %m6, align 8, !dbg !384 + %"$gasrem_3797" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3798" = icmp ugt i64 1, %"$gasrem_3797" + br i1 %"$gascmp_3798", label %"$out_of_gas_3799", label %"$have_gas_3800" + +"$out_of_gas_3799": ; preds = %"$have_gas_3794" + call void @_out_of_gas() + br label %"$have_gas_3800" + +"$have_gas_3800": ; preds = %"$out_of_gas_3799", %"$have_gas_3794" + %"$consume_3801" = sub i64 %"$gasrem_3797", 1 + store i64 %"$consume_3801", i64* @_gasrem, align 8 + %"$ud-registry.eError_50" = alloca i8*, align 8 + %"$ud-registry.eError_3802" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_3803" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3802", 0 + %"$ud-registry.eError_envptr_3804" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3802", 1 + %"$m_3805" = load %String, %String* %m6, align 8 + %"$ud-registry.eError_call_3806" = call i8* %"$ud-registry.eError_fptr_3803"(i8* %"$ud-registry.eError_envptr_3804", %String %"$m_3805"), !dbg !386 + store i8* %"$ud-registry.eError_call_3806", i8** %"$ud-registry.eError_50", align 8, !dbg !386 + %"$$ud-registry.eError_50_3807" = load i8*, i8** %"$ud-registry.eError_50", align 8 + store i8* %"$$ud-registry.eError_50_3807", i8** %e5, align 8, !dbg !386 + %"$e_3808" = load i8*, i8** %e5, align 8 + %"$_literal_cost_call_3810" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3808") + %"$gasrem_3811" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3812" = icmp ugt i64 %"$_literal_cost_call_3810", %"$gasrem_3811" + br i1 %"$gascmp_3812", label %"$out_of_gas_3813", label %"$have_gas_3814" + +"$out_of_gas_3813": ; preds = %"$have_gas_3800" + call void @_out_of_gas() + br label %"$have_gas_3814" + +"$have_gas_3814": ; preds = %"$out_of_gas_3813", %"$have_gas_3800" + %"$consume_3815" = sub i64 %"$gasrem_3811", %"$_literal_cost_call_3810" + store i64 %"$consume_3815", i64* @_gasrem, align 8 + %"$execptr_load_3816" = load i8*, i8** @_execptr, align 8 + %"$e_3817" = load i8*, i8** %e5, align 8 + call void @_event(i8* %"$execptr_load_3816", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3817"), !dbg !387 + %"$gasrem_3818" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3819" = icmp ugt i64 1, %"$gasrem_3818" + br i1 %"$gascmp_3819", label %"$out_of_gas_3820", label %"$have_gas_3821" + +"$out_of_gas_3820": ; preds = %"$have_gas_3814" + call void @_out_of_gas() + br label %"$have_gas_3821" + +"$have_gas_3821": ; preds = %"$out_of_gas_3820", %"$have_gas_3814" + %"$consume_3822" = sub i64 %"$gasrem_3818", 1 + store i64 %"$consume_3822", i64* @_gasrem, align 8 + %msgs7 = alloca %TName_List_Message*, align 8 + %"$gasrem_3823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3824" = icmp ugt i64 1, %"$gasrem_3823" + br i1 %"$gascmp_3824", label %"$out_of_gas_3825", label %"$have_gas_3826" + +"$out_of_gas_3825": ; preds = %"$have_gas_3821" + call void @_out_of_gas() + br label %"$have_gas_3826" + +"$have_gas_3826": ; preds = %"$out_of_gas_3825", %"$have_gas_3821" + %"$consume_3827" = sub i64 %"$gasrem_3823", 1 + store i64 %"$consume_3827", i64* @_gasrem, align 8 + %"$m_1" = alloca i8*, align 8 + %"$gasrem_3828" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3829" = icmp ugt i64 1, %"$gasrem_3828" + br i1 %"$gascmp_3829", label %"$out_of_gas_3830", label %"$have_gas_3831" + +"$out_of_gas_3830": ; preds = %"$have_gas_3826" + call void @_out_of_gas() + br label %"$have_gas_3831" + +"$have_gas_3831": ; preds = %"$out_of_gas_3830", %"$have_gas_3826" + %"$consume_3832" = sub i64 %"$gasrem_3828", 1 + store i64 %"$consume_3832", i64* @_gasrem, align 8 + %"$msgobj_3833_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3833_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3833_salloc_load", i64 225) + %"$msgobj_3833_salloc" = bitcast i8* %"$msgobj_3833_salloc_salloc" to [225 x i8]* + %"$msgobj_3833" = bitcast [225 x i8]* %"$msgobj_3833_salloc" to i8* + store i8 5, i8* %"$msgobj_3833", align 1 + %"$msgobj_fname_3835" = getelementptr i8, i8* %"$msgobj_3833", i32 1 + %"$msgobj_fname_3836" = bitcast i8* %"$msgobj_fname_3835" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3834", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3836", align 8 + %"$msgobj_td_3837" = getelementptr i8, i8* %"$msgobj_3833", i32 17 + %"$msgobj_td_3838" = bitcast i8* %"$msgobj_td_3837" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_3838", align 8 + %"$msgobj_v_3840" = getelementptr i8, i8* %"$msgobj_3833", i32 25 + %"$msgobj_v_3841" = bitcast i8* %"$msgobj_v_3840" to %String* + store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_3839", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_3841", align 8 + %"$msgobj_fname_3843" = getelementptr i8, i8* %"$msgobj_3833", i32 41 + %"$msgobj_fname_3844" = bitcast i8* %"$msgobj_fname_3843" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3842", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3844", align 8 + %"$msgobj_td_3845" = getelementptr i8, i8* %"$msgobj_3833", i32 57 + %"$msgobj_td_3846" = bitcast i8* %"$msgobj_td_3845" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_3846", align 8 + %"$msgobj_v_3847" = getelementptr i8, i8* %"$msgobj_3833", i32 65 + %"$msgobj_v_3848" = bitcast i8* %"$msgobj_v_3847" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3848", align 1 + %"$msgobj_fname_3850" = getelementptr i8, i8* %"$msgobj_3833", i32 97 + %"$msgobj_fname_3851" = bitcast i8* %"$msgobj_fname_3850" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3849", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3851", align 8 + %"$msgobj_td_3852" = getelementptr i8, i8* %"$msgobj_3833", i32 113 + %"$msgobj_td_3853" = bitcast i8* %"$msgobj_td_3852" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3853", align 8 + %"$msgobj_v_3854" = getelementptr i8, i8* %"$msgobj_3833", i32 121 + %"$msgobj_v_3855" = bitcast i8* %"$msgobj_v_3854" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_3855", align 1 + %"$msgobj_fname_3857" = getelementptr i8, i8* %"$msgobj_3833", i32 141 + %"$msgobj_fname_3858" = bitcast i8* %"$msgobj_fname_3857" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3856", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3858", align 8 + %"$msgobj_td_3859" = getelementptr i8, i8* %"$msgobj_3833", i32 157 + %"$msgobj_td_3860" = bitcast i8* %"$msgobj_td_3859" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_3860", align 8 + %"$msgobj_v_3861" = getelementptr i8, i8* %"$msgobj_3833", i32 165 + %"$msgobj_v_3862" = bitcast i8* %"$msgobj_v_3861" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3862", align 8 + %"$msgobj_fname_3864" = getelementptr i8, i8* %"$msgobj_3833", i32 181 + %"$msgobj_fname_3865" = bitcast i8* %"$msgobj_fname_3864" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3863", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3865", align 8 + %"$msgobj_td_3866" = getelementptr i8, i8* %"$msgobj_3833", i32 197 + %"$msgobj_td_3867" = bitcast i8* %"$msgobj_td_3866" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3867", align 8 + %"$msgobj_v_3868" = getelementptr i8, i8* %"$msgobj_3833", i32 205 + %"$msgobj_v_3869" = bitcast i8* %"$msgobj_v_3868" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3869", align 1 + store i8* %"$msgobj_3833", i8** %"$m_1", align 8, !dbg !388 + %"$gasrem_3871" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3872" = icmp ugt i64 1, %"$gasrem_3871" + br i1 %"$gascmp_3872", label %"$out_of_gas_3873", label %"$have_gas_3874" + +"$out_of_gas_3873": ; preds = %"$have_gas_3831" + call void @_out_of_gas() + br label %"$have_gas_3874" + +"$have_gas_3874": ; preds = %"$out_of_gas_3873", %"$have_gas_3831" + %"$consume_3875" = sub i64 %"$gasrem_3871", 1 + store i64 %"$consume_3875", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_51" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_3876" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_3877" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3876", 0 + %"$ud-registry.oneMsg_envptr_3878" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3876", 1 + %"$$m_1_3879" = load i8*, i8** %"$m_1", align 8 + %"$ud-registry.oneMsg_call_3880" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3877"(i8* %"$ud-registry.oneMsg_envptr_3878", i8* %"$$m_1_3879"), !dbg !389 + store %TName_List_Message* %"$ud-registry.oneMsg_call_3880", %TName_List_Message** %"$ud-registry.oneMsg_51", align 8, !dbg !389 + %"$$ud-registry.oneMsg_51_3881" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_51", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_51_3881", %TName_List_Message** %msgs7, align 8, !dbg !389 + %"$msgs_3882" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 + %"$$msgs_3882_3883" = bitcast %TName_List_Message* %"$msgs_3882" to i8* + %"$_literal_cost_call_3884" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_3882_3883") + %"$gasrem_3885" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3886" = icmp ugt i64 %"$_literal_cost_call_3884", %"$gasrem_3885" + br i1 %"$gascmp_3886", label %"$out_of_gas_3887", label %"$have_gas_3888" + +"$out_of_gas_3887": ; preds = %"$have_gas_3874" + call void @_out_of_gas() + br label %"$have_gas_3888" + +"$have_gas_3888": ; preds = %"$out_of_gas_3887", %"$have_gas_3874" + %"$consume_3889" = sub i64 %"$gasrem_3885", %"$_literal_cost_call_3884" + store i64 %"$consume_3889", i64* @_gasrem, align 8 + %"$execptr_load_3890" = load i8*, i8** @_execptr, align 8 + %"$msgs_3891" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 + call void @_send(i8* %"$execptr_load_3890", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_3891"), !dbg !390 + br label %"$matchsucc_3630" + +"$empty_default_3634": ; preds = %"$have_gas_3628" + br label %"$matchsucc_3630" + +"$matchsucc_3630": ; preds = %"$have_gas_3888", %"$have_gas_3775", %"$empty_default_3634" ret void } -declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) - -define void @configureNode(i8* %0) !dbg !378 { +define void @transfer(i8* %0) !dbg !391 { entry: - %"$_amount_3830" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3831" = bitcast i8* %"$_amount_3830" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3831", align 8 - %"$_origin_3832" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3833" = bitcast i8* %"$_origin_3832" to [20 x i8]* - %"$_sender_3834" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3835" = bitcast i8* %"$_sender_3834" to [20 x i8]* - %"$node_3836" = getelementptr i8, i8* %0, i32 56 - %"$node_3837" = bitcast i8* %"$node_3836" to [32 x i8]* - %"$owner_3838" = getelementptr i8, i8* %0, i32 88 - %"$owner_3839" = bitcast i8* %"$owner_3838" to [20 x i8]* - %"$resolver_3840" = getelementptr i8, i8* %0, i32 108 - %"$resolver_3841" = bitcast i8* %"$resolver_3840" to [20 x i8]* - call void @"$configureNode_3459"(%Uint128 %_amount, [20 x i8]* %"$_origin_3833", [20 x i8]* %"$_sender_3835", [32 x i8]* %"$node_3837", [20 x i8]* %"$owner_3839", [20 x i8]* %"$resolver_3841"), !dbg !379 + %"$_amount_3893" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3894" = bitcast i8* %"$_amount_3893" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3894", align 8 + %"$_origin_3895" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3896" = bitcast i8* %"$_origin_3895" to [20 x i8]* + %"$_sender_3897" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3898" = bitcast i8* %"$_sender_3897" to [20 x i8]* + %"$node_3899" = getelementptr i8, i8* %0, i32 56 + %"$node_3900" = bitcast i8* %"$node_3899" to [32 x i8]* + %"$owner_3901" = getelementptr i8, i8* %0, i32 88 + %"$owner_3902" = bitcast i8* %"$owner_3901" to [20 x i8]* + call void @"$transfer_3535"(%Uint128 %_amount, [20 x i8]* %"$_origin_3896", [20 x i8]* %"$_sender_3898", [32 x i8]* %"$node_3900", [20 x i8]* %"$owner_3902"), !dbg !392 ret void } -define internal void @"$configureResolver_3842"(%Uint128 %_amount, [20 x i8]* %"$_origin_3843", [20 x i8]* %"$_sender_3844", [32 x i8]* %"$node_3845", [20 x i8]* %"$resolver_3846") !dbg !380 { +define internal void @"$assign_3903"(%Uint128 %_amount, [20 x i8]* %"$_origin_3904", [20 x i8]* %"$_sender_3905", [32 x i8]* %"$parent_3906", %String %label, [20 x i8]* %"$owner_3907") !dbg !393 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3843", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3844", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_3845", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_3846", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3904", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3905", align 1 + %parent = load [32 x i8], [32 x i8]* %"$parent_3906", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_3907", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_3847_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3847_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3847_salloc_load", i64 32) - %"$indices_buf_3847_salloc" = bitcast i8* %"$indices_buf_3847_salloc_salloc" to [32 x i8]* - %"$indices_buf_3847" = bitcast [32 x i8]* %"$indices_buf_3847_salloc" to i8* - %"$indices_gep_3848" = getelementptr i8, i8* %"$indices_buf_3847", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3848" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_3850" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_3851" = call i8* @_fetch_field(i8* %"$execptr_load_3850", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3849", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_3847", i32 1), !dbg !381 - %"$maybeRecord_3852" = bitcast i8* %"$maybeRecord_call_3851" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_3852", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_3853" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_3853_3854" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3853" to i8* - %"$_literal_cost_call_3855" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_3853_3854") - %"$gasadd_3856" = add i64 %"$_literal_cost_call_3855", 0 - %"$gasadd_3857" = add i64 %"$gasadd_3856", 1 - %"$gasrem_3858" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3859" = icmp ugt i64 %"$gasadd_3857", %"$gasrem_3858" - br i1 %"$gascmp_3859", label %"$out_of_gas_3860", label %"$have_gas_3861" - -"$out_of_gas_3860": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3861" - -"$have_gas_3861": ; preds = %"$out_of_gas_3860", %entry - %"$consume_3862" = sub i64 %"$gasrem_3858", %"$gasadd_3857" - store i64 %"$consume_3862", i64* @_gasrem, align 8 + %"$indices_buf_3908_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3908_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3908_salloc_load", i64 32) + %"$indices_buf_3908_salloc" = bitcast i8* %"$indices_buf_3908_salloc_salloc" to [32 x i8]* + %"$indices_buf_3908" = bitcast [32 x i8]* %"$indices_buf_3908_salloc" to i8* + %"$indices_gep_3909" = getelementptr i8, i8* %"$indices_buf_3908", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3909" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %indices_cast, align 1 + %"$execptr_load_3911" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_3912" = call i8* @_fetch_field(i8* %"$execptr_load_3911", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3910", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3908", i32 1), !dbg !394 + %"$maybeRecord_3913" = bitcast i8* %"$maybeRecord_call_3912" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_3913", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_3914" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_3914_3915" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3914" to i8* + %"$_literal_cost_call_3916" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_3914_3915") + %"$gasadd_3917" = add i64 %"$_literal_cost_call_3916", 0 + %"$gasadd_3918" = add i64 %"$gasadd_3917", 1 + %"$gasrem_3919" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3920" = icmp ugt i64 %"$gasadd_3918", %"$gasrem_3919" + br i1 %"$gascmp_3920", label %"$out_of_gas_3921", label %"$have_gas_3922" + +"$out_of_gas_3921": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3922" + +"$have_gas_3922": ; preds = %"$out_of_gas_3921", %entry + %"$consume_3923" = sub i64 %"$gasrem_3919", %"$gasadd_3918" + store i64 %"$consume_3923", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_3863_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3863_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3863_salloc_load", i64 32) - %"$indices_buf_3863_salloc" = bitcast i8* %"$indices_buf_3863_salloc_salloc" to [32 x i8]* - %"$indices_buf_3863" = bitcast [32 x i8]* %"$indices_buf_3863_salloc" to i8* - %"$indices_gep_3864" = getelementptr i8, i8* %"$indices_buf_3863", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_3864" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_3866" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_3867" = call i8* @_fetch_field(i8* %"$execptr_load_3866", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3865", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_3863", i32 1), !dbg !382 - %"$maybeApproved_3868" = bitcast i8* %"$maybeApproved_call_3867" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_3868", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_3869" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_3869_3870" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3869" to i8* - %"$_literal_cost_call_3871" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_3869_3870") - %"$gasadd_3872" = add i64 %"$_literal_cost_call_3871", 0 - %"$gasadd_3873" = add i64 %"$gasadd_3872", 1 - %"$gasrem_3874" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3875" = icmp ugt i64 %"$gasadd_3873", %"$gasrem_3874" - br i1 %"$gascmp_3875", label %"$out_of_gas_3876", label %"$have_gas_3877" - -"$out_of_gas_3876": ; preds = %"$have_gas_3861" - call void @_out_of_gas() - br label %"$have_gas_3877" - -"$have_gas_3877": ; preds = %"$out_of_gas_3876", %"$have_gas_3861" - %"$consume_3878" = sub i64 %"$gasrem_3874", %"$gasadd_3873" - store i64 %"$consume_3878", i64* @_gasrem, align 8 - %"$gasrem_3879" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3880" = icmp ugt i64 1, %"$gasrem_3879" - br i1 %"$gascmp_3880", label %"$out_of_gas_3881", label %"$have_gas_3882" - -"$out_of_gas_3881": ; preds = %"$have_gas_3877" - call void @_out_of_gas() - br label %"$have_gas_3882" - -"$have_gas_3882": ; preds = %"$out_of_gas_3881", %"$have_gas_3877" - %"$consume_3883" = sub i64 %"$gasrem_3879", 1 - store i64 %"$consume_3883", i64* @_gasrem, align 8 + %"$indices_buf_3924_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3924_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3924_salloc_load", i64 32) + %"$indices_buf_3924_salloc" = bitcast i8* %"$indices_buf_3924_salloc_salloc" to [32 x i8]* + %"$indices_buf_3924" = bitcast [32 x i8]* %"$indices_buf_3924_salloc" to i8* + %"$indices_gep_3925" = getelementptr i8, i8* %"$indices_buf_3924", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_3925" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %indices_cast1, align 1 + %"$execptr_load_3927" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_3928" = call i8* @_fetch_field(i8* %"$execptr_load_3927", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3926", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_3924", i32 1), !dbg !395 + %"$maybeApproved_3929" = bitcast i8* %"$maybeApproved_call_3928" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_3929", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_3930" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_3930_3931" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3930" to i8* + %"$_literal_cost_call_3932" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_3930_3931") + %"$gasadd_3933" = add i64 %"$_literal_cost_call_3932", 0 + %"$gasadd_3934" = add i64 %"$gasadd_3933", 1 + %"$gasrem_3935" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3936" = icmp ugt i64 %"$gasadd_3934", %"$gasrem_3935" + br i1 %"$gascmp_3936", label %"$out_of_gas_3937", label %"$have_gas_3938" + +"$out_of_gas_3937": ; preds = %"$have_gas_3922" + call void @_out_of_gas() + br label %"$have_gas_3938" + +"$have_gas_3938": ; preds = %"$out_of_gas_3937", %"$have_gas_3922" + %"$consume_3939" = sub i64 %"$gasrem_3935", %"$gasadd_3934" + store i64 %"$consume_3939", i64* @_gasrem, align 8 + %"$gasrem_3940" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3941" = icmp ugt i64 1, %"$gasrem_3940" + br i1 %"$gascmp_3941", label %"$out_of_gas_3942", label %"$have_gas_3943" + +"$out_of_gas_3942": ; preds = %"$have_gas_3938" + call void @_out_of_gas() + br label %"$have_gas_3943" + +"$have_gas_3943": ; preds = %"$out_of_gas_3942", %"$have_gas_3938" + %"$consume_3944" = sub i64 %"$gasrem_3940", 1 + store i64 %"$consume_3944", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_3884" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3885" = icmp ugt i64 1, %"$gasrem_3884" - br i1 %"$gascmp_3885", label %"$out_of_gas_3886", label %"$have_gas_3887" - -"$out_of_gas_3886": ; preds = %"$have_gas_3882" - call void @_out_of_gas() - br label %"$have_gas_3887" - -"$have_gas_3887": ; preds = %"$out_of_gas_3886", %"$have_gas_3882" - %"$consume_3888" = sub i64 %"$gasrem_3884", 1 - store i64 %"$consume_3888", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_88" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_3889" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_3890" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3889", 0 - %"$ud-registry.recordMemberOwner_envptr_3891" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3889", 1 - %"$maybeRecord_3892" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_3893" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_3890"(i8* %"$ud-registry.recordMemberOwner_envptr_3891", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3893", %TName_Option_ud-registry.Record* %"$maybeRecord_3892"), !dbg !383 - %"$ud-registry.recordMemberOwner_ret_3894" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3893", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3894", [20 x i8]* %"$ud-registry.recordMemberOwner_88", align 1, !dbg !383 - %"$$ud-registry.recordMemberOwner_88_3895" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_88", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_88_3895", [20 x i8]* %recordOwner, align 1, !dbg !383 - %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_3896_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3896_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3896_salloc_load", i64 20) - %"$indices_buf_3896_salloc" = bitcast i8* %"$indices_buf_3896_salloc_salloc" to [20 x i8]* - %"$indices_buf_3896" = bitcast [20 x i8]* %"$indices_buf_3896_salloc" to i8* - %"$recordOwner_3897" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_3898" = getelementptr i8, i8* %"$indices_buf_3896", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_3898" to [20 x i8]* - store [20 x i8] %"$recordOwner_3897", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_3900" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_3901" = call i8* @_fetch_field(i8* %"$execptr_load_3900", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3899", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_3896", i32 1), !dbg !384 - %"$maybeOperators_3902" = bitcast i8* %"$maybeOperators_call_3901" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3902", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_3903" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_3903_3904" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3903" to i8* - %"$_literal_cost_call_3905" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", i8* %"$$maybeOperators_3903_3904") - %"$gasadd_3906" = add i64 %"$_literal_cost_call_3905", 0 - %"$gasadd_3907" = add i64 %"$gasadd_3906", 1 - %"$gasrem_3908" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3909" = icmp ugt i64 %"$gasadd_3907", %"$gasrem_3908" - br i1 %"$gascmp_3909", label %"$out_of_gas_3910", label %"$have_gas_3911" - -"$out_of_gas_3910": ; preds = %"$have_gas_3887" - call void @_out_of_gas() - br label %"$have_gas_3911" - -"$have_gas_3911": ; preds = %"$out_of_gas_3910", %"$have_gas_3887" - %"$consume_3912" = sub i64 %"$gasrem_3908", %"$gasadd_3907" - store i64 %"$consume_3912", i64* @_gasrem, align 8 - %"$gasrem_3913" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3914" = icmp ugt i64 1, %"$gasrem_3913" - br i1 %"$gascmp_3914", label %"$out_of_gas_3915", label %"$have_gas_3916" - -"$out_of_gas_3915": ; preds = %"$have_gas_3911" - call void @_out_of_gas() - br label %"$have_gas_3916" - -"$have_gas_3916": ; preds = %"$out_of_gas_3915", %"$have_gas_3911" - %"$consume_3917" = sub i64 %"$gasrem_3913", 1 - store i64 %"$consume_3917", i64* @_gasrem, align 8 - %isSenderOAO = alloca %TName_Bool*, align 8 - %"$gasrem_3918" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3919" = icmp ugt i64 1, %"$gasrem_3918" - br i1 %"$gascmp_3919", label %"$out_of_gas_3920", label %"$have_gas_3921" - -"$out_of_gas_3920": ; preds = %"$have_gas_3916" - call void @_out_of_gas() - br label %"$have_gas_3921" - -"$have_gas_3921": ; preds = %"$out_of_gas_3920", %"$have_gas_3916" - %"$consume_3922" = sub i64 %"$gasrem_3918", 1 - store i64 %"$consume_3922", i64* @_gasrem, align 8 - %"$ud-registry.getIsOAO_84" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_3923" = load { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.getIsOAO, align 8 - %"$ud-registry.getIsOAO_fptr_3924" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_3923", 0 - %"$ud-registry.getIsOAO_envptr_3925" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_3923", 1 - %"$ud-registry.getIsOAO__sender_3926" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3926", align 1 - %"$ud-registry.getIsOAO_call_3927" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_3924"(i8* %"$ud-registry.getIsOAO_envptr_3925", [20 x i8]* %"$ud-registry.getIsOAO__sender_3926"), !dbg !385 - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_3927", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_84", align 8, !dbg !385 - %"$ud-registry.getIsOAO_85" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_84_3928" = load { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_84", align 8 - %"$$ud-registry.getIsOAO_84_fptr_3929" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_84_3928", 0 - %"$$ud-registry.getIsOAO_84_envptr_3930" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_84_3928", 1 - %"$$ud-registry.getIsOAO_84_recordOwner_3931" = alloca [20 x i8], align 1 - %"$recordOwner_3932" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_3932", [20 x i8]* %"$$ud-registry.getIsOAO_84_recordOwner_3931", align 1 - %"$$ud-registry.getIsOAO_84_call_3933" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_84_fptr_3929"(i8* %"$$ud-registry.getIsOAO_84_envptr_3930", [20 x i8]* %"$$ud-registry.getIsOAO_84_recordOwner_3931"), !dbg !385 - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_84_call_3933", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_85", align 8, !dbg !385 - %"$ud-registry.getIsOAO_86" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_85_3934" = load { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_85", align 8 - %"$$ud-registry.getIsOAO_85_fptr_3935" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_85_3934", 0 - %"$$ud-registry.getIsOAO_85_envptr_3936" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_85_3934", 1 - %"$maybeApproved_3937" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_85_call_3938" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_85_fptr_3935"(i8* %"$$ud-registry.getIsOAO_85_envptr_3936", %TName_Option_ByStr20* %"$maybeApproved_3937"), !dbg !385 - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_85_call_3938", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_86", align 8, !dbg !385 - %"$ud-registry.getIsOAO_87" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_86_3939" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_86", align 8 - %"$$ud-registry.getIsOAO_86_fptr_3940" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_86_3939", 0 - %"$$ud-registry.getIsOAO_86_envptr_3941" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_86_3939", 1 - %"$maybeOperators_3942" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_86_call_3943" = call %TName_Bool* %"$$ud-registry.getIsOAO_86_fptr_3940"(i8* %"$$ud-registry.getIsOAO_86_envptr_3941", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3942"), !dbg !385 - store %TName_Bool* %"$$ud-registry.getIsOAO_86_call_3943", %TName_Bool** %"$ud-registry.getIsOAO_87", align 8, !dbg !385 - %"$$ud-registry.getIsOAO_87_3944" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_87", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_87_3944", %TName_Bool** %isSenderOAO, align 8, !dbg !385 %"$gasrem_3945" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3946" = icmp ugt i64 2, %"$gasrem_3945" + %"$gascmp_3946" = icmp ugt i64 1, %"$gasrem_3945" br i1 %"$gascmp_3946", label %"$out_of_gas_3947", label %"$have_gas_3948" -"$out_of_gas_3947": ; preds = %"$have_gas_3921" +"$out_of_gas_3947": ; preds = %"$have_gas_3943" call void @_out_of_gas() br label %"$have_gas_3948" -"$have_gas_3948": ; preds = %"$out_of_gas_3947", %"$have_gas_3921" - %"$consume_3949" = sub i64 %"$gasrem_3945", 2 +"$have_gas_3948": ; preds = %"$out_of_gas_3947", %"$have_gas_3943" + %"$consume_3949" = sub i64 %"$gasrem_3945", 1 store i64 %"$consume_3949", i64* @_gasrem, align 8 - %"$isSenderOAO_3951" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_3952" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3951", i32 0, i32 0 - %"$isSenderOAO_tag_3953" = load i8, i8* %"$isSenderOAO_tag_3952", align 1 - switch i8 %"$isSenderOAO_tag_3953", label %"$empty_default_3954" [ - i8 0, label %"$True_3955" - i8 1, label %"$False_4025" - ], !dbg !386 - -"$True_3955": ; preds = %"$have_gas_3948" - %"$isSenderOAO_3956" = bitcast %TName_Bool* %"$isSenderOAO_3951" to %CName_True* - %"$gasrem_3957" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3958" = icmp ugt i64 1, %"$gasrem_3957" - br i1 %"$gascmp_3958", label %"$out_of_gas_3959", label %"$have_gas_3960" - -"$out_of_gas_3959": ; preds = %"$True_3955" - call void @_out_of_gas() - br label %"$have_gas_3960" - -"$have_gas_3960": ; preds = %"$out_of_gas_3959", %"$True_3955" - %"$consume_3961" = sub i64 %"$gasrem_3957", 1 - store i64 %"$consume_3961", i64* @_gasrem, align 8 - %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_3962" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3963" = icmp ugt i64 1, %"$gasrem_3962" - br i1 %"$gascmp_3963", label %"$out_of_gas_3964", label %"$have_gas_3965" - -"$out_of_gas_3964": ; preds = %"$have_gas_3960" - call void @_out_of_gas() - br label %"$have_gas_3965" - -"$have_gas_3965": ; preds = %"$out_of_gas_3964", %"$have_gas_3960" - %"$consume_3966" = sub i64 %"$gasrem_3962", 1 - store i64 %"$consume_3966", i64* @_gasrem, align 8 - %"$recordOwner_3967" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$adtval_3968_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3968_salloc" = call i8* @_salloc(i8* %"$adtval_3968_load", i64 41) - %"$adtval_3968" = bitcast i8* %"$adtval_3968_salloc" to %CName_ud-registry.Record* - %"$adtgep_3969" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3968", i32 0, i32 0 - store i8 0, i8* %"$adtgep_3969", align 1 - %"$adtgep_3970" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3968", i32 0, i32 1 - store [20 x i8] %"$recordOwner_3967", [20 x i8]* %"$adtgep_3970", align 1 - %"$adtgep_3971" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3968", i32 0, i32 2 - store [20 x i8] %resolver, [20 x i8]* %"$adtgep_3971", align 1 - %"$adtptr_3972" = bitcast %CName_ud-registry.Record* %"$adtval_3968" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_3972", %TName_ud-registry.Record** %newRecord, align 8, !dbg !387 - %"$newRecord_3973" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_3973_3974" = bitcast %TName_ud-registry.Record* %"$newRecord_3973" to i8* - %"$_literal_cost_call_3975" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", i8* %"$$newRecord_3973_3974") - %"$gasadd_3976" = add i64 %"$_literal_cost_call_3975", 1 - %"$gasrem_3977" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3978" = icmp ugt i64 %"$gasadd_3976", %"$gasrem_3977" - br i1 %"$gascmp_3978", label %"$out_of_gas_3979", label %"$have_gas_3980" - -"$out_of_gas_3979": ; preds = %"$have_gas_3965" - call void @_out_of_gas() - br label %"$have_gas_3980" - -"$have_gas_3980": ; preds = %"$out_of_gas_3979", %"$have_gas_3965" - %"$consume_3981" = sub i64 %"$gasrem_3977", %"$gasadd_3976" - store i64 %"$consume_3981", i64* @_gasrem, align 8 - %"$indices_buf_3982_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3982_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3982_salloc_load", i64 32) - %"$indices_buf_3982_salloc" = bitcast i8* %"$indices_buf_3982_salloc_salloc" to [32 x i8]* - %"$indices_buf_3982" = bitcast [32 x i8]* %"$indices_buf_3982_salloc" to i8* - %"$indices_gep_3983" = getelementptr i8, i8* %"$indices_buf_3982", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_3983" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_3984" = load i8*, i8** @_execptr, align 8 - %"$newRecord_3986" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_3987" = bitcast %TName_ud-registry.Record* %"$newRecord_3986" to i8* - call void @_update_field(i8* %"$execptr_load_3984", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3985", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_3982", i8* %"$update_value_3987"), !dbg !390 - %"$gasrem_3988" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3989" = icmp ugt i64 1, %"$gasrem_3988" - br i1 %"$gascmp_3989", label %"$out_of_gas_3990", label %"$have_gas_3991" - -"$out_of_gas_3990": ; preds = %"$have_gas_3980" - call void @_out_of_gas() - br label %"$have_gas_3991" - -"$have_gas_3991": ; preds = %"$out_of_gas_3990", %"$have_gas_3980" - %"$consume_3992" = sub i64 %"$gasrem_3988", 1 - store i64 %"$consume_3992", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 + %"$ud-registry.recordMemberOwner_52" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_3950" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_3951" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3950", 0 + %"$ud-registry.recordMemberOwner_envptr_3952" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3950", 1 + %"$maybeRecord_3953" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_3954" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_3951"(i8* %"$ud-registry.recordMemberOwner_envptr_3952", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3954", %TName_Option_ud-registry.Record* %"$maybeRecord_3953"), !dbg !396 + %"$ud-registry.recordMemberOwner_ret_3955" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3954", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3955", [20 x i8]* %"$ud-registry.recordMemberOwner_52", align 1, !dbg !396 + %"$$ud-registry.recordMemberOwner_52_3956" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_52", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_52_3956", [20 x i8]* %recordOwner, align 1, !dbg !396 + %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 + %"$indices_buf_3957_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3957_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3957_salloc_load", i64 20) + %"$indices_buf_3957_salloc" = bitcast i8* %"$indices_buf_3957_salloc_salloc" to [20 x i8]* + %"$indices_buf_3957" = bitcast [20 x i8]* %"$indices_buf_3957_salloc" to i8* + %"$recordOwner_3958" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_3959" = getelementptr i8, i8* %"$indices_buf_3957", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_3959" to [20 x i8]* + store [20 x i8] %"$recordOwner_3958", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_3961" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_3962" = call i8* @_fetch_field(i8* %"$execptr_load_3961", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3960", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_3957", i32 1), !dbg !397 + %"$maybeOperators_3963" = bitcast i8* %"$maybeOperators_call_3962" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3963", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_3964" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_3964_3965" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3964" to i8* + %"$_literal_cost_call_3966" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", i8* %"$$maybeOperators_3964_3965") + %"$gasadd_3967" = add i64 %"$_literal_cost_call_3966", 0 + %"$gasadd_3968" = add i64 %"$gasadd_3967", 1 + %"$gasrem_3969" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3970" = icmp ugt i64 %"$gasadd_3968", %"$gasrem_3969" + br i1 %"$gascmp_3970", label %"$out_of_gas_3971", label %"$have_gas_3972" + +"$out_of_gas_3971": ; preds = %"$have_gas_3948" + call void @_out_of_gas() + br label %"$have_gas_3972" + +"$have_gas_3972": ; preds = %"$out_of_gas_3971", %"$have_gas_3948" + %"$consume_3973" = sub i64 %"$gasrem_3969", %"$gasadd_3968" + store i64 %"$consume_3973", i64* @_gasrem, align 8 + %"$gasrem_3974" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3975" = icmp ugt i64 1, %"$gasrem_3974" + br i1 %"$gascmp_3975", label %"$out_of_gas_3976", label %"$have_gas_3977" + +"$out_of_gas_3976": ; preds = %"$have_gas_3972" + call void @_out_of_gas() + br label %"$have_gas_3977" + +"$have_gas_3977": ; preds = %"$out_of_gas_3976", %"$have_gas_3972" + %"$consume_3978" = sub i64 %"$gasrem_3974", 1 + store i64 %"$consume_3978", i64* @_gasrem, align 8 + %isSenderOAO = alloca %TName_Bool*, align 8 + %"$gasrem_3979" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3980" = icmp ugt i64 1, %"$gasrem_3979" + br i1 %"$gascmp_3980", label %"$out_of_gas_3981", label %"$have_gas_3982" + +"$out_of_gas_3981": ; preds = %"$have_gas_3977" + call void @_out_of_gas() + br label %"$have_gas_3982" + +"$have_gas_3982": ; preds = %"$out_of_gas_3981", %"$have_gas_3977" + %"$consume_3983" = sub i64 %"$gasrem_3979", 1 + store i64 %"$consume_3983", i64* @_gasrem, align 8 + %"$ud-registry.getIsOAO_3984" = load { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }* @ud-registry.getIsOAO, align 8 + %"$ud-registry.getIsOAO_fptr_3985" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3984", 0 + %"$ud-registry.getIsOAO_envptr_3986" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3984", 1 + %"$ud-registry.getIsOAO__sender_3987" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3987", align 1 + %"$ud-registry.getIsOAO_recordOwner_3988" = alloca [20 x i8], align 1 + %"$recordOwner_3989" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3989", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3988", align 1 + %"$maybeApproved_3990" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeOperators_3991" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$ud-registry.getIsOAO_call_3992" = call %TName_Bool* %"$ud-registry.getIsOAO_fptr_3985"(i8* %"$ud-registry.getIsOAO_envptr_3986", [20 x i8]* %"$ud-registry.getIsOAO__sender_3987", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3988", %TName_Option_ByStr20* %"$maybeApproved_3990", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3991"), !dbg !398 + store %TName_Bool* %"$ud-registry.getIsOAO_call_3992", %TName_Bool** %isSenderOAO, align 8, !dbg !398 %"$gasrem_3993" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3994" = icmp ugt i64 1, %"$gasrem_3993" + %"$gascmp_3994" = icmp ugt i64 2, %"$gasrem_3993" br i1 %"$gascmp_3994", label %"$out_of_gas_3995", label %"$have_gas_3996" -"$out_of_gas_3995": ; preds = %"$have_gas_3991" +"$out_of_gas_3995": ; preds = %"$have_gas_3982" call void @_out_of_gas() br label %"$have_gas_3996" -"$have_gas_3996": ; preds = %"$out_of_gas_3995", %"$have_gas_3991" - %"$consume_3997" = sub i64 %"$gasrem_3993", 1 +"$have_gas_3996": ; preds = %"$out_of_gas_3995", %"$have_gas_3982" + %"$consume_3997" = sub i64 %"$gasrem_3993", 2 store i64 %"$consume_3997", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_80" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_3998" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_3999" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_3998", 0 - %"$ud-registry.eConfigured_envptr_4000" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_3998", 1 - %"$ud-registry.eConfigured_node_4001" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_4001", align 1 - %"$ud-registry.eConfigured_call_4002" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_3999"(i8* %"$ud-registry.eConfigured_envptr_4000", [32 x i8]* %"$ud-registry.eConfigured_node_4001"), !dbg !391 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_4002", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_80", align 8, !dbg !391 - %"$ud-registry.eConfigured_81" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_80_4003" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_80", align 8 - %"$$ud-registry.eConfigured_80_fptr_4004" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_80_4003", 0 - %"$$ud-registry.eConfigured_80_envptr_4005" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_80_4003", 1 - %"$$ud-registry.eConfigured_80_recordOwner_4006" = alloca [20 x i8], align 1 - %"$recordOwner_4007" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_4007", [20 x i8]* %"$$ud-registry.eConfigured_80_recordOwner_4006", align 1 - %"$$ud-registry.eConfigured_80_call_4008" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_80_fptr_4004"(i8* %"$$ud-registry.eConfigured_80_envptr_4005", [20 x i8]* %"$$ud-registry.eConfigured_80_recordOwner_4006"), !dbg !391 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_80_call_4008", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_81", align 8, !dbg !391 - %"$ud-registry.eConfigured_82" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_81_4009" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_81", align 8 - %"$$ud-registry.eConfigured_81_fptr_4010" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_81_4009", 0 - %"$$ud-registry.eConfigured_81_envptr_4011" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_81_4009", 1 - %"$$ud-registry.eConfigured_81_resolver_4012" = alloca [20 x i8], align 1 - store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_81_resolver_4012", align 1 - %"$$ud-registry.eConfigured_81_call_4013" = call i8* %"$$ud-registry.eConfigured_81_fptr_4010"(i8* %"$$ud-registry.eConfigured_81_envptr_4011", [20 x i8]* %"$$ud-registry.eConfigured_81_resolver_4012"), !dbg !391 - store i8* %"$$ud-registry.eConfigured_81_call_4013", i8** %"$ud-registry.eConfigured_82", align 8, !dbg !391 - %"$$ud-registry.eConfigured_82_4014" = load i8*, i8** %"$ud-registry.eConfigured_82", align 8 - store i8* %"$$ud-registry.eConfigured_82_4014", i8** %e, align 8, !dbg !391 - %"$e_4015" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_4017" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4015") - %"$gasrem_4018" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4019" = icmp ugt i64 %"$_literal_cost_call_4017", %"$gasrem_4018" - br i1 %"$gascmp_4019", label %"$out_of_gas_4020", label %"$have_gas_4021" - -"$out_of_gas_4020": ; preds = %"$have_gas_3996" - call void @_out_of_gas() - br label %"$have_gas_4021" - -"$have_gas_4021": ; preds = %"$out_of_gas_4020", %"$have_gas_3996" - %"$consume_4022" = sub i64 %"$gasrem_4018", %"$_literal_cost_call_4017" - store i64 %"$consume_4022", i64* @_gasrem, align 8 - %"$execptr_load_4023" = load i8*, i8** @_execptr, align 8 - %"$e_4024" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_4023", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4024"), !dbg !392 - br label %"$matchsucc_3950" - -"$False_4025": ; preds = %"$have_gas_3948" - %"$isSenderOAO_4026" = bitcast %TName_Bool* %"$isSenderOAO_3951" to %CName_False* - %"$gasrem_4027" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4028" = icmp ugt i64 1, %"$gasrem_4027" - br i1 %"$gascmp_4028", label %"$out_of_gas_4029", label %"$have_gas_4030" - -"$out_of_gas_4029": ; preds = %"$False_4025" - call void @_out_of_gas() - br label %"$have_gas_4030" - -"$have_gas_4030": ; preds = %"$out_of_gas_4029", %"$False_4025" - %"$consume_4031" = sub i64 %"$gasrem_4027", 1 - store i64 %"$consume_4031", i64* @_gasrem, align 8 - %e4 = alloca i8*, align 8 - %"$gasrem_4032" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4033" = icmp ugt i64 1, %"$gasrem_4032" - br i1 %"$gascmp_4033", label %"$out_of_gas_4034", label %"$have_gas_4035" + %"$isSenderOAO_3999" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_4000" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3999", i32 0, i32 0 + %"$isSenderOAO_tag_4001" = load i8, i8* %"$isSenderOAO_tag_4000", align 1 + switch i8 %"$isSenderOAO_tag_4001", label %"$empty_default_4002" [ + i8 0, label %"$True_4003" + i8 1, label %"$False_4227" + ], !dbg !399 + +"$True_4003": ; preds = %"$have_gas_3996" + %"$isSenderOAO_4004" = bitcast %TName_Bool* %"$isSenderOAO_3999" to %CName_True* + %"$gasrem_4005" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4006" = icmp ugt i64 1, %"$gasrem_4005" + br i1 %"$gascmp_4006", label %"$out_of_gas_4007", label %"$have_gas_4008" + +"$out_of_gas_4007": ; preds = %"$True_4003" + call void @_out_of_gas() + br label %"$have_gas_4008" + +"$have_gas_4008": ; preds = %"$out_of_gas_4007", %"$True_4003" + %"$consume_4009" = sub i64 %"$gasrem_4005", 1 + store i64 %"$consume_4009", i64* @_gasrem, align 8 + %node = alloca [32 x i8], align 1 + %"$gasrem_4010" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4011" = icmp ugt i64 1, %"$gasrem_4010" + br i1 %"$gascmp_4011", label %"$out_of_gas_4012", label %"$have_gas_4013" + +"$out_of_gas_4012": ; preds = %"$have_gas_4008" + call void @_out_of_gas() + br label %"$have_gas_4013" + +"$have_gas_4013": ; preds = %"$out_of_gas_4012", %"$have_gas_4008" + %"$consume_4014" = sub i64 %"$gasrem_4010", 1 + store i64 %"$consume_4014", i64* @_gasrem, align 8 + %"$ud-registry.parentLabelToNode_4015" = load { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }* @ud-registry.parentLabelToNode, align 8 + %"$ud-registry.parentLabelToNode_fptr_4016" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4015", 0 + %"$ud-registry.parentLabelToNode_envptr_4017" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4015", 1 + %"$ud-registry.parentLabelToNode_parent_4018" = alloca [32 x i8], align 1 + store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4018", align 1 + %"$ud-registry.parentLabelToNode_retalloca_4019" = alloca [32 x i8], align 1 + call void %"$ud-registry.parentLabelToNode_fptr_4016"(i8* %"$ud-registry.parentLabelToNode_envptr_4017", [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4019", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4018", %String %label), !dbg !400 + %"$ud-registry.parentLabelToNode_ret_4020" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4019", align 1 + store [32 x i8] %"$ud-registry.parentLabelToNode_ret_4020", [32 x i8]* %node, align 1, !dbg !400 + %recordExists = alloca %TName_Bool*, align 8 + %"$indices_buf_4021_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4021_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4021_salloc_load", i64 32) + %"$indices_buf_4021_salloc" = bitcast i8* %"$indices_buf_4021_salloc_salloc" to [32 x i8]* + %"$indices_buf_4021" = bitcast [32 x i8]* %"$indices_buf_4021_salloc" to i8* + %"$node_4022" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4023" = getelementptr i8, i8* %"$indices_buf_4021", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_4023" to [32 x i8]* + store [32 x i8] %"$node_4022", [32 x i8]* %indices_cast3, align 1 + %"$execptr_load_4025" = load i8*, i8** @_execptr, align 8 + %"$recordExists_call_4026" = call i8* @_fetch_field(i8* %"$execptr_load_4025", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4024", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4021", i32 0), !dbg !403 + %"$recordExists_4027" = bitcast i8* %"$recordExists_call_4026" to %TName_Bool* + store %TName_Bool* %"$recordExists_4027", %TName_Bool** %recordExists, align 8 + %"$recordExists_4028" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$$recordExists_4028_4029" = bitcast %TName_Bool* %"$recordExists_4028" to i8* + %"$_literal_cost_call_4030" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204", i8* %"$$recordExists_4028_4029") + %"$gasadd_4031" = add i64 %"$_literal_cost_call_4030", 0 + %"$gasadd_4032" = add i64 %"$gasadd_4031", 1 + %"$gasrem_4033" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4034" = icmp ugt i64 %"$gasadd_4032", %"$gasrem_4033" + br i1 %"$gascmp_4034", label %"$out_of_gas_4035", label %"$have_gas_4036" + +"$out_of_gas_4035": ; preds = %"$have_gas_4013" + call void @_out_of_gas() + br label %"$have_gas_4036" + +"$have_gas_4036": ; preds = %"$out_of_gas_4035", %"$have_gas_4013" + %"$consume_4037" = sub i64 %"$gasrem_4033", %"$gasadd_4032" + store i64 %"$consume_4037", i64* @_gasrem, align 8 + %"$gasrem_4038" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4039" = icmp ugt i64 2, %"$gasrem_4038" + br i1 %"$gascmp_4039", label %"$out_of_gas_4040", label %"$have_gas_4041" + +"$out_of_gas_4040": ; preds = %"$have_gas_4036" + call void @_out_of_gas() + br label %"$have_gas_4041" + +"$have_gas_4041": ; preds = %"$out_of_gas_4040", %"$have_gas_4036" + %"$consume_4042" = sub i64 %"$gasrem_4038", 2 + store i64 %"$consume_4042", i64* @_gasrem, align 8 + %"$recordExists_4044" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$recordExists_tag_4045" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_4044", i32 0, i32 0 + %"$recordExists_tag_4046" = load i8, i8* %"$recordExists_tag_4045", align 1 + switch i8 %"$recordExists_tag_4046", label %"$default_4047" [ + i8 1, label %"$False_4048" + ], !dbg !404 + +"$False_4048": ; preds = %"$have_gas_4041" + %"$recordExists_4049" = bitcast %TName_Bool* %"$recordExists_4044" to %CName_False* + %"$gasrem_4050" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4051" = icmp ugt i64 1, %"$gasrem_4050" + br i1 %"$gascmp_4051", label %"$out_of_gas_4052", label %"$have_gas_4053" + +"$out_of_gas_4052": ; preds = %"$False_4048" + call void @_out_of_gas() + br label %"$have_gas_4053" + +"$have_gas_4053": ; preds = %"$out_of_gas_4052", %"$False_4048" + %"$consume_4054" = sub i64 %"$gasrem_4050", 1 + store i64 %"$consume_4054", i64* @_gasrem, align 8 + %e = alloca i8*, align 8 + %"$gasrem_4055" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4056" = icmp ugt i64 1, %"$gasrem_4055" + br i1 %"$gascmp_4056", label %"$out_of_gas_4057", label %"$have_gas_4058" + +"$out_of_gas_4057": ; preds = %"$have_gas_4053" + call void @_out_of_gas() + br label %"$have_gas_4058" + +"$have_gas_4058": ; preds = %"$out_of_gas_4057", %"$have_gas_4053" + %"$consume_4059" = sub i64 %"$gasrem_4055", 1 + store i64 %"$consume_4059", i64* @_gasrem, align 8 + %"$ud-registry.eNewDomain_4060" = load { i8* (i8*, [32 x i8]*, %String)*, i8* }, { i8* (i8*, [32 x i8]*, %String)*, i8* }* @ud-registry.eNewDomain, align 8 + %"$ud-registry.eNewDomain_fptr_4061" = extractvalue { i8* (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.eNewDomain_4060", 0 + %"$ud-registry.eNewDomain_envptr_4062" = extractvalue { i8* (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.eNewDomain_4060", 1 + %"$ud-registry.eNewDomain_parent_4063" = alloca [32 x i8], align 1 + store [32 x i8] %parent, [32 x i8]* %"$ud-registry.eNewDomain_parent_4063", align 1 + %"$ud-registry.eNewDomain_call_4064" = call i8* %"$ud-registry.eNewDomain_fptr_4061"(i8* %"$ud-registry.eNewDomain_envptr_4062", [32 x i8]* %"$ud-registry.eNewDomain_parent_4063", %String %label), !dbg !405 + store i8* %"$ud-registry.eNewDomain_call_4064", i8** %e, align 8, !dbg !405 + %"$e_4065" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_4067" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4065") + %"$gasrem_4068" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4069" = icmp ugt i64 %"$_literal_cost_call_4067", %"$gasrem_4068" + br i1 %"$gascmp_4069", label %"$out_of_gas_4070", label %"$have_gas_4071" + +"$out_of_gas_4070": ; preds = %"$have_gas_4058" + call void @_out_of_gas() + br label %"$have_gas_4071" + +"$have_gas_4071": ; preds = %"$out_of_gas_4070", %"$have_gas_4058" + %"$consume_4072" = sub i64 %"$gasrem_4068", %"$_literal_cost_call_4067" + store i64 %"$consume_4072", i64* @_gasrem, align 8 + %"$execptr_load_4073" = load i8*, i8** @_execptr, align 8 + %"$e_4074" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_4073", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4074"), !dbg !408 + br label %"$matchsucc_4043" + +"$default_4047": ; preds = %"$have_gas_4041" + br label %"$joinp_7" -"$out_of_gas_4034": ; preds = %"$have_gas_4030" - call void @_out_of_gas() - br label %"$have_gas_4035" +"$joinp_7": ; preds = %"$default_4047" + br label %"$matchsucc_4043" -"$have_gas_4035": ; preds = %"$out_of_gas_4034", %"$have_gas_4030" - %"$consume_4036" = sub i64 %"$gasrem_4032", 1 - store i64 %"$consume_4036", i64* @_gasrem, align 8 - %m = alloca %String, align 8 - %"$gasrem_4037" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4038" = icmp ugt i64 1, %"$gasrem_4037" - br i1 %"$gascmp_4038", label %"$out_of_gas_4039", label %"$have_gas_4040" - -"$out_of_gas_4039": ; preds = %"$have_gas_4035" - call void @_out_of_gas() - br label %"$have_gas_4040" - -"$have_gas_4040": ; preds = %"$out_of_gas_4039", %"$have_gas_4035" - %"$consume_4041" = sub i64 %"$gasrem_4037", 1 - store i64 %"$consume_4041", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_4042", i32 0, i32 0), i32 43 }, %String* %m, align 8, !dbg !393 - %"$gasrem_4043" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4044" = icmp ugt i64 1, %"$gasrem_4043" - br i1 %"$gascmp_4044", label %"$out_of_gas_4045", label %"$have_gas_4046" - -"$out_of_gas_4045": ; preds = %"$have_gas_4040" - call void @_out_of_gas() - br label %"$have_gas_4046" - -"$have_gas_4046": ; preds = %"$out_of_gas_4045", %"$have_gas_4040" - %"$consume_4047" = sub i64 %"$gasrem_4043", 1 - store i64 %"$consume_4047", i64* @_gasrem, align 8 - %"$ud-registry.eError_83" = alloca i8*, align 8 - %"$ud-registry.eError_4048" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_4049" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4048", 0 - %"$ud-registry.eError_envptr_4050" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4048", 1 - %"$m_4051" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_4052" = call i8* %"$ud-registry.eError_fptr_4049"(i8* %"$ud-registry.eError_envptr_4050", %String %"$m_4051"), !dbg !395 - store i8* %"$ud-registry.eError_call_4052", i8** %"$ud-registry.eError_83", align 8, !dbg !395 - %"$$ud-registry.eError_83_4053" = load i8*, i8** %"$ud-registry.eError_83", align 8 - store i8* %"$$ud-registry.eError_83_4053", i8** %e4, align 8, !dbg !395 - %"$e_4054" = load i8*, i8** %e4, align 8 - %"$_literal_cost_call_4056" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4054") - %"$gasrem_4057" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4058" = icmp ugt i64 %"$_literal_cost_call_4056", %"$gasrem_4057" - br i1 %"$gascmp_4058", label %"$out_of_gas_4059", label %"$have_gas_4060" - -"$out_of_gas_4059": ; preds = %"$have_gas_4046" - call void @_out_of_gas() - br label %"$have_gas_4060" - -"$have_gas_4060": ; preds = %"$out_of_gas_4059", %"$have_gas_4046" - %"$consume_4061" = sub i64 %"$gasrem_4057", %"$_literal_cost_call_4056" - store i64 %"$consume_4061", i64* @_gasrem, align 8 - %"$execptr_load_4062" = load i8*, i8** @_execptr, align 8 - %"$e_4063" = load i8*, i8** %e4, align 8 - call void @_event(i8* %"$execptr_load_4062", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4063"), !dbg !396 - br label %"$matchsucc_3950" - -"$empty_default_3954": ; preds = %"$have_gas_3948" - br label %"$matchsucc_3950" - -"$matchsucc_3950": ; preds = %"$have_gas_4060", %"$have_gas_4021", %"$empty_default_3954" - ret void -} +"$matchsucc_4043": ; preds = %"$have_gas_4071", %"$joinp_7" + %"$gasrem_4075" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4076" = icmp ugt i64 1, %"$gasrem_4075" + br i1 %"$gascmp_4076", label %"$out_of_gas_4077", label %"$have_gas_4078" -define void @configureResolver(i8* %0) !dbg !397 { -entry: - %"$_amount_4065" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4066" = bitcast i8* %"$_amount_4065" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4066", align 8 - %"$_origin_4067" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4068" = bitcast i8* %"$_origin_4067" to [20 x i8]* - %"$_sender_4069" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4070" = bitcast i8* %"$_sender_4069" to [20 x i8]* - %"$node_4071" = getelementptr i8, i8* %0, i32 56 - %"$node_4072" = bitcast i8* %"$node_4071" to [32 x i8]* - %"$resolver_4073" = getelementptr i8, i8* %0, i32 88 - %"$resolver_4074" = bitcast i8* %"$resolver_4073" to [20 x i8]* - call void @"$configureResolver_3842"(%Uint128 %_amount, [20 x i8]* %"$_origin_4068", [20 x i8]* %"$_sender_4070", [32 x i8]* %"$node_4072", [20 x i8]* %"$resolver_4074"), !dbg !398 - ret void -} +"$out_of_gas_4077": ; preds = %"$matchsucc_4043" + call void @_out_of_gas() + br label %"$have_gas_4078" -define internal void @"$transfer_4075"(%Uint128 %_amount, [20 x i8]* %"$_origin_4076", [20 x i8]* %"$_sender_4077", [32 x i8]* %"$node_4078", [20 x i8]* %"$owner_4079") !dbg !399 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4076", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4077", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_4078", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_4079", align 1 - %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 +"$have_gas_4078": ; preds = %"$out_of_gas_4077", %"$matchsucc_4043" + %"$consume_4079" = sub i64 %"$gasrem_4075", 1 + store i64 %"$consume_4079", i64* @_gasrem, align 8 %"$indices_buf_4080_salloc_load" = load i8*, i8** @_execptr, align 8 %"$indices_buf_4080_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4080_salloc_load", i64 32) %"$indices_buf_4080_salloc" = bitcast i8* %"$indices_buf_4080_salloc_salloc" to [32 x i8]* %"$indices_buf_4080" = bitcast [32 x i8]* %"$indices_buf_4080_salloc" to i8* - %"$indices_gep_4081" = getelementptr i8, i8* %"$indices_buf_4080", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4081" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 + %"$node_4081" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4082" = getelementptr i8, i8* %"$indices_buf_4080", i32 0 + %indices_cast4 = bitcast i8* %"$indices_gep_4082" to [32 x i8]* + store [32 x i8] %"$node_4081", [32 x i8]* %indices_cast4, align 1 %"$execptr_load_4083" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_4084" = call i8* @_fetch_field(i8* %"$execptr_load_4083", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4082", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4080", i32 1), !dbg !400 - %"$maybeRecord_4085" = bitcast i8* %"$maybeRecord_call_4084" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_4085", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_4086" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_4086_4087" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_4086" to i8* - %"$_literal_cost_call_4088" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_4086_4087") - %"$gasadd_4089" = add i64 %"$_literal_cost_call_4088", 0 - %"$gasadd_4090" = add i64 %"$gasadd_4089", 1 - %"$gasrem_4091" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4092" = icmp ugt i64 %"$gasadd_4090", %"$gasrem_4091" - br i1 %"$gascmp_4092", label %"$out_of_gas_4093", label %"$have_gas_4094" - -"$out_of_gas_4093": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4094" - -"$have_gas_4094": ; preds = %"$out_of_gas_4093", %entry - %"$consume_4095" = sub i64 %"$gasrem_4091", %"$gasadd_4090" - store i64 %"$consume_4095", i64* @_gasrem, align 8 - %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_4096_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4096_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4096_salloc_load", i64 32) - %"$indices_buf_4096_salloc" = bitcast i8* %"$indices_buf_4096_salloc_salloc" to [32 x i8]* - %"$indices_buf_4096" = bitcast [32 x i8]* %"$indices_buf_4096_salloc" to i8* - %"$indices_gep_4097" = getelementptr i8, i8* %"$indices_buf_4096", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_4097" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_4099" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_4100" = call i8* @_fetch_field(i8* %"$execptr_load_4099", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4098", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_4096", i32 1), !dbg !401 - %"$maybeApproved_4101" = bitcast i8* %"$maybeApproved_call_4100" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_4101", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_4102" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_4102_4103" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4102" to i8* - %"$_literal_cost_call_4104" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_4102_4103") - %"$gasadd_4105" = add i64 %"$_literal_cost_call_4104", 0 - %"$gasadd_4106" = add i64 %"$gasadd_4105", 1 - %"$gasrem_4107" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4108" = icmp ugt i64 %"$gasadd_4106", %"$gasrem_4107" - br i1 %"$gascmp_4108", label %"$out_of_gas_4109", label %"$have_gas_4110" - -"$out_of_gas_4109": ; preds = %"$have_gas_4094" - call void @_out_of_gas() - br label %"$have_gas_4110" - -"$have_gas_4110": ; preds = %"$out_of_gas_4109", %"$have_gas_4094" - %"$consume_4111" = sub i64 %"$gasrem_4107", %"$gasadd_4106" - store i64 %"$consume_4111", i64* @_gasrem, align 8 - %"$gasrem_4112" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4113" = icmp ugt i64 1, %"$gasrem_4112" - br i1 %"$gascmp_4113", label %"$out_of_gas_4114", label %"$have_gas_4115" - -"$out_of_gas_4114": ; preds = %"$have_gas_4110" - call void @_out_of_gas() - br label %"$have_gas_4115" - -"$have_gas_4115": ; preds = %"$out_of_gas_4114", %"$have_gas_4110" - %"$consume_4116" = sub i64 %"$gasrem_4112", 1 - store i64 %"$consume_4116", i64* @_gasrem, align 8 - %recordOwner = alloca [20 x i8], align 1 + call void @_update_field(i8* %"$execptr_load_4083", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4084", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_4080", i8* null), !dbg !409 + %"$gasrem_4085" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4086" = icmp ugt i64 1, %"$gasrem_4085" + br i1 %"$gascmp_4086", label %"$out_of_gas_4087", label %"$have_gas_4088" + +"$out_of_gas_4087": ; preds = %"$have_gas_4078" + call void @_out_of_gas() + br label %"$have_gas_4088" + +"$have_gas_4088": ; preds = %"$out_of_gas_4087", %"$have_gas_4078" + %"$consume_4089" = sub i64 %"$gasrem_4085", 1 + store i64 %"$consume_4089", i64* @_gasrem, align 8 + %newRecord = alloca %TName_ud-registry.Record*, align 8 + %"$gasrem_4090" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4091" = icmp ugt i64 1, %"$gasrem_4090" + br i1 %"$gascmp_4091", label %"$out_of_gas_4092", label %"$have_gas_4093" + +"$out_of_gas_4092": ; preds = %"$have_gas_4088" + call void @_out_of_gas() + br label %"$have_gas_4093" + +"$have_gas_4093": ; preds = %"$out_of_gas_4092", %"$have_gas_4088" + %"$consume_4094" = sub i64 %"$gasrem_4090", 1 + store i64 %"$consume_4094", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_4095" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + %"$adtval_4096_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4096_salloc" = call i8* @_salloc(i8* %"$adtval_4096_load", i64 41) + %"$adtval_4096" = bitcast i8* %"$adtval_4096_salloc" to %CName_ud-registry.Record* + %"$adtgep_4097" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4096", i32 0, i32 0 + store i8 0, i8* %"$adtgep_4097", align 1 + %"$adtgep_4098" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4096", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_4098", align 1 + %"$adtgep_4099" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4096", i32 0, i32 2 + store [20 x i8] %"$ud-registry.zeroByStr20_4095", [20 x i8]* %"$adtgep_4099", align 1 + %"$adtptr_4100" = bitcast %CName_ud-registry.Record* %"$adtval_4096" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_4100", %TName_ud-registry.Record** %newRecord, align 8, !dbg !410 + %"$newRecord_4101" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_4101_4102" = bitcast %TName_ud-registry.Record* %"$newRecord_4101" to i8* + %"$_literal_cost_call_4103" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", i8* %"$$newRecord_4101_4102") + %"$gasadd_4104" = add i64 %"$_literal_cost_call_4103", 1 + %"$gasrem_4105" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4106" = icmp ugt i64 %"$gasadd_4104", %"$gasrem_4105" + br i1 %"$gascmp_4106", label %"$out_of_gas_4107", label %"$have_gas_4108" + +"$out_of_gas_4107": ; preds = %"$have_gas_4093" + call void @_out_of_gas() + br label %"$have_gas_4108" + +"$have_gas_4108": ; preds = %"$out_of_gas_4107", %"$have_gas_4093" + %"$consume_4109" = sub i64 %"$gasrem_4105", %"$gasadd_4104" + store i64 %"$consume_4109", i64* @_gasrem, align 8 + %"$indices_buf_4110_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4110_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4110_salloc_load", i64 32) + %"$indices_buf_4110_salloc" = bitcast i8* %"$indices_buf_4110_salloc_salloc" to [32 x i8]* + %"$indices_buf_4110" = bitcast [32 x i8]* %"$indices_buf_4110_salloc" to i8* + %"$node_4111" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4112" = getelementptr i8, i8* %"$indices_buf_4110", i32 0 + %indices_cast5 = bitcast i8* %"$indices_gep_4112" to [32 x i8]* + store [32 x i8] %"$node_4111", [32 x i8]* %indices_cast5, align 1 + %"$execptr_load_4113" = load i8*, i8** @_execptr, align 8 + %"$newRecord_4115" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_4116" = bitcast %TName_ud-registry.Record* %"$newRecord_4115" to i8* + call void @_update_field(i8* %"$execptr_load_4113", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4114", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4110", i8* %"$update_value_4116"), !dbg !411 %"$gasrem_4117" = load i64, i64* @_gasrem, align 8 %"$gascmp_4118" = icmp ugt i64 1, %"$gasrem_4117" br i1 %"$gascmp_4118", label %"$out_of_gas_4119", label %"$have_gas_4120" -"$out_of_gas_4119": ; preds = %"$have_gas_4115" +"$out_of_gas_4119": ; preds = %"$have_gas_4108" call void @_out_of_gas() br label %"$have_gas_4120" -"$have_gas_4120": ; preds = %"$out_of_gas_4119", %"$have_gas_4115" +"$have_gas_4120": ; preds = %"$out_of_gas_4119", %"$have_gas_4108" %"$consume_4121" = sub i64 %"$gasrem_4117", 1 store i64 %"$consume_4121", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_99" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_4122" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_4123" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4122", 0 - %"$ud-registry.recordMemberOwner_envptr_4124" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4122", 1 - %"$maybeRecord_4125" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_4126" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_4123"(i8* %"$ud-registry.recordMemberOwner_envptr_4124", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4126", %TName_Option_ud-registry.Record* %"$maybeRecord_4125"), !dbg !402 - %"$ud-registry.recordMemberOwner_ret_4127" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4126", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_4127", [20 x i8]* %"$ud-registry.recordMemberOwner_99", align 1, !dbg !402 - %"$$ud-registry.recordMemberOwner_99_4128" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_99", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_99_4128", [20 x i8]* %recordOwner, align 1, !dbg !402 - %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_4129_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4129_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4129_salloc_load", i64 20) - %"$indices_buf_4129_salloc" = bitcast i8* %"$indices_buf_4129_salloc_salloc" to [20 x i8]* - %"$indices_buf_4129" = bitcast [20 x i8]* %"$indices_buf_4129_salloc" to i8* - %"$recordOwner_4130" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_4131" = getelementptr i8, i8* %"$indices_buf_4129", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_4131" to [20 x i8]* - store [20 x i8] %"$recordOwner_4130", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_4133" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_4134" = call i8* @_fetch_field(i8* %"$execptr_load_4133", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_4132", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_4129", i32 1), !dbg !403 - %"$maybeOperators_4135" = bitcast i8* %"$maybeOperators_call_4134" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4135", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_4136" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_4136_4137" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4136" to i8* - %"$_literal_cost_call_4138" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", i8* %"$$maybeOperators_4136_4137") - %"$gasadd_4139" = add i64 %"$_literal_cost_call_4138", 0 - %"$gasadd_4140" = add i64 %"$gasadd_4139", 1 - %"$gasrem_4141" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4142" = icmp ugt i64 %"$gasadd_4140", %"$gasrem_4141" - br i1 %"$gascmp_4142", label %"$out_of_gas_4143", label %"$have_gas_4144" - -"$out_of_gas_4143": ; preds = %"$have_gas_4120" - call void @_out_of_gas() - br label %"$have_gas_4144" - -"$have_gas_4144": ; preds = %"$out_of_gas_4143", %"$have_gas_4120" - %"$consume_4145" = sub i64 %"$gasrem_4141", %"$gasadd_4140" - store i64 %"$consume_4145", i64* @_gasrem, align 8 + %e6 = alloca i8*, align 8 + %"$gasrem_4122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4123" = icmp ugt i64 1, %"$gasrem_4122" + br i1 %"$gascmp_4123", label %"$out_of_gas_4124", label %"$have_gas_4125" + +"$out_of_gas_4124": ; preds = %"$have_gas_4120" + call void @_out_of_gas() + br label %"$have_gas_4125" + +"$have_gas_4125": ; preds = %"$out_of_gas_4124", %"$have_gas_4120" + %"$consume_4126" = sub i64 %"$gasrem_4122", 1 + store i64 %"$consume_4126", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_4127" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_4128" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_4127", 0 + %"$ud-registry.eConfigured_envptr_4129" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_4127", 1 + %"$ud-registry.eConfigured_node_4130" = alloca [32 x i8], align 1 + %"$node_4131" = load [32 x i8], [32 x i8]* %node, align 1 + store [32 x i8] %"$node_4131", [32 x i8]* %"$ud-registry.eConfigured_node_4130", align 1 + %"$ud-registry.eConfigured_owner_4132" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$ud-registry.eConfigured_owner_4132", align 1 + %"$ud-registry.eConfigured_ud-registry.zeroByStr20_4133" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_4134" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_4134", [20 x i8]* %"$ud-registry.eConfigured_ud-registry.zeroByStr20_4133", align 1 + %"$ud-registry.eConfigured_call_4135" = call i8* %"$ud-registry.eConfigured_fptr_4128"(i8* %"$ud-registry.eConfigured_envptr_4129", [32 x i8]* %"$ud-registry.eConfigured_node_4130", [20 x i8]* %"$ud-registry.eConfigured_owner_4132", [20 x i8]* %"$ud-registry.eConfigured_ud-registry.zeroByStr20_4133"), !dbg !412 + store i8* %"$ud-registry.eConfigured_call_4135", i8** %e6, align 8, !dbg !412 + %"$e_4136" = load i8*, i8** %e6, align 8 + %"$_literal_cost_call_4138" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4136") + %"$gasrem_4139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4140" = icmp ugt i64 %"$_literal_cost_call_4138", %"$gasrem_4139" + br i1 %"$gascmp_4140", label %"$out_of_gas_4141", label %"$have_gas_4142" + +"$out_of_gas_4141": ; preds = %"$have_gas_4125" + call void @_out_of_gas() + br label %"$have_gas_4142" + +"$have_gas_4142": ; preds = %"$out_of_gas_4141", %"$have_gas_4125" + %"$consume_4143" = sub i64 %"$gasrem_4139", %"$_literal_cost_call_4138" + store i64 %"$consume_4143", i64* @_gasrem, align 8 + %"$execptr_load_4144" = load i8*, i8** @_execptr, align 8 + %"$e_4145" = load i8*, i8** %e6, align 8 + call void @_event(i8* %"$execptr_load_4144", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4145"), !dbg !413 %"$gasrem_4146" = load i64, i64* @_gasrem, align 8 %"$gascmp_4147" = icmp ugt i64 1, %"$gasrem_4146" br i1 %"$gascmp_4147", label %"$out_of_gas_4148", label %"$have_gas_4149" -"$out_of_gas_4148": ; preds = %"$have_gas_4144" +"$out_of_gas_4148": ; preds = %"$have_gas_4142" call void @_out_of_gas() br label %"$have_gas_4149" -"$have_gas_4149": ; preds = %"$out_of_gas_4148", %"$have_gas_4144" +"$have_gas_4149": ; preds = %"$out_of_gas_4148", %"$have_gas_4142" %"$consume_4150" = sub i64 %"$gasrem_4146", 1 store i64 %"$consume_4150", i64* @_gasrem, align 8 - %isSenderOAO = alloca %TName_Bool*, align 8 + %msgs = alloca %TName_List_Message*, align 8 %"$gasrem_4151" = load i64, i64* @_gasrem, align 8 %"$gascmp_4152" = icmp ugt i64 1, %"$gasrem_4151" br i1 %"$gascmp_4152", label %"$out_of_gas_4153", label %"$have_gas_4154" @@ -7744,694 +7904,681 @@ entry: "$have_gas_4154": ; preds = %"$out_of_gas_4153", %"$have_gas_4149" %"$consume_4155" = sub i64 %"$gasrem_4151", 1 store i64 %"$consume_4155", i64* @_gasrem, align 8 - %"$ud-registry.getIsOAO_95" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_4156" = load { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.getIsOAO, align 8 - %"$ud-registry.getIsOAO_fptr_4157" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_4156", 0 - %"$ud-registry.getIsOAO_envptr_4158" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_4156", 1 - %"$ud-registry.getIsOAO__sender_4159" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_4159", align 1 - %"$ud-registry.getIsOAO_call_4160" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_4157"(i8* %"$ud-registry.getIsOAO_envptr_4158", [20 x i8]* %"$ud-registry.getIsOAO__sender_4159"), !dbg !404 - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_4160", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_95", align 8, !dbg !404 - %"$ud-registry.getIsOAO_96" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_95_4161" = load { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_95", align 8 - %"$$ud-registry.getIsOAO_95_fptr_4162" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_95_4161", 0 - %"$$ud-registry.getIsOAO_95_envptr_4163" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_95_4161", 1 - %"$$ud-registry.getIsOAO_95_recordOwner_4164" = alloca [20 x i8], align 1 - %"$recordOwner_4165" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_4165", [20 x i8]* %"$$ud-registry.getIsOAO_95_recordOwner_4164", align 1 - %"$$ud-registry.getIsOAO_95_call_4166" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_95_fptr_4162"(i8* %"$$ud-registry.getIsOAO_95_envptr_4163", [20 x i8]* %"$$ud-registry.getIsOAO_95_recordOwner_4164"), !dbg !404 - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_95_call_4166", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_96", align 8, !dbg !404 - %"$ud-registry.getIsOAO_97" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_96_4167" = load { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_96", align 8 - %"$$ud-registry.getIsOAO_96_fptr_4168" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_96_4167", 0 - %"$$ud-registry.getIsOAO_96_envptr_4169" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_96_4167", 1 - %"$maybeApproved_4170" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_96_call_4171" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_96_fptr_4168"(i8* %"$$ud-registry.getIsOAO_96_envptr_4169", %TName_Option_ByStr20* %"$maybeApproved_4170"), !dbg !404 - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_96_call_4171", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_97", align 8, !dbg !404 - %"$ud-registry.getIsOAO_98" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_97_4172" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_97", align 8 - %"$$ud-registry.getIsOAO_97_fptr_4173" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_97_4172", 0 - %"$$ud-registry.getIsOAO_97_envptr_4174" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_97_4172", 1 - %"$maybeOperators_4175" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_97_call_4176" = call %TName_Bool* %"$$ud-registry.getIsOAO_97_fptr_4173"(i8* %"$$ud-registry.getIsOAO_97_envptr_4174", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4175"), !dbg !404 - store %TName_Bool* %"$$ud-registry.getIsOAO_97_call_4176", %TName_Bool** %"$ud-registry.getIsOAO_98", align 8, !dbg !404 - %"$$ud-registry.getIsOAO_98_4177" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_98", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_98_4177", %TName_Bool** %isSenderOAO, align 8, !dbg !404 - %"$gasrem_4178" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4179" = icmp ugt i64 2, %"$gasrem_4178" - br i1 %"$gascmp_4179", label %"$out_of_gas_4180", label %"$have_gas_4181" - -"$out_of_gas_4180": ; preds = %"$have_gas_4154" - call void @_out_of_gas() - br label %"$have_gas_4181" - -"$have_gas_4181": ; preds = %"$out_of_gas_4180", %"$have_gas_4154" - %"$consume_4182" = sub i64 %"$gasrem_4178", 2 - store i64 %"$consume_4182", i64* @_gasrem, align 8 - %"$isSenderOAO_4184" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_4185" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_4184", i32 0, i32 0 - %"$isSenderOAO_tag_4186" = load i8, i8* %"$isSenderOAO_tag_4185", align 1 - switch i8 %"$isSenderOAO_tag_4186", label %"$empty_default_4187" [ - i8 0, label %"$True_4188" - i8 1, label %"$False_4341" - ], !dbg !405 - -"$True_4188": ; preds = %"$have_gas_4181" - %"$isSenderOAO_4189" = bitcast %TName_Bool* %"$isSenderOAO_4184" to %CName_True* - %"$gasrem_4190" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4191" = icmp ugt i64 1, %"$gasrem_4190" - br i1 %"$gascmp_4191", label %"$out_of_gas_4192", label %"$have_gas_4193" - -"$out_of_gas_4192": ; preds = %"$True_4188" - call void @_out_of_gas() - br label %"$have_gas_4193" - -"$have_gas_4193": ; preds = %"$out_of_gas_4192", %"$True_4188" - %"$consume_4194" = sub i64 %"$gasrem_4190", 1 - store i64 %"$consume_4194", i64* @_gasrem, align 8 - %"$indices_buf_4195_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4195_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4195_salloc_load", i64 32) - %"$indices_buf_4195_salloc" = bitcast i8* %"$indices_buf_4195_salloc_salloc" to [32 x i8]* - %"$indices_buf_4195" = bitcast [32 x i8]* %"$indices_buf_4195_salloc" to i8* - %"$indices_gep_4196" = getelementptr i8, i8* %"$indices_buf_4195", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_4196" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_4197" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_4197", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4198", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_4195", i8* null), !dbg !406 - %"$gasrem_4199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4200" = icmp ugt i64 1, %"$gasrem_4199" - br i1 %"$gascmp_4200", label %"$out_of_gas_4201", label %"$have_gas_4202" - -"$out_of_gas_4201": ; preds = %"$have_gas_4193" - call void @_out_of_gas() - br label %"$have_gas_4202" - -"$have_gas_4202": ; preds = %"$out_of_gas_4201", %"$have_gas_4193" - %"$consume_4203" = sub i64 %"$gasrem_4199", 1 - store i64 %"$consume_4203", i64* @_gasrem, align 8 - %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_4204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4205" = icmp ugt i64 1, %"$gasrem_4204" - br i1 %"$gascmp_4205", label %"$out_of_gas_4206", label %"$have_gas_4207" - -"$out_of_gas_4206": ; preds = %"$have_gas_4202" - call void @_out_of_gas() - br label %"$have_gas_4207" - -"$have_gas_4207": ; preds = %"$out_of_gas_4206", %"$have_gas_4202" - %"$consume_4208" = sub i64 %"$gasrem_4204", 1 - store i64 %"$consume_4208", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_4209" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - %"$adtval_4210_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4210_salloc" = call i8* @_salloc(i8* %"$adtval_4210_load", i64 41) - %"$adtval_4210" = bitcast i8* %"$adtval_4210_salloc" to %CName_ud-registry.Record* - %"$adtgep_4211" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4210", i32 0, i32 0 - store i8 0, i8* %"$adtgep_4211", align 1 - %"$adtgep_4212" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4210", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_4212", align 1 - %"$adtgep_4213" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4210", i32 0, i32 2 - store [20 x i8] %"$ud-registry.zeroByStr20_4209", [20 x i8]* %"$adtgep_4213", align 1 - %"$adtptr_4214" = bitcast %CName_ud-registry.Record* %"$adtval_4210" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_4214", %TName_ud-registry.Record** %newRecord, align 8, !dbg !409 - %"$newRecord_4215" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_4215_4216" = bitcast %TName_ud-registry.Record* %"$newRecord_4215" to i8* - %"$_literal_cost_call_4217" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", i8* %"$$newRecord_4215_4216") - %"$gasadd_4218" = add i64 %"$_literal_cost_call_4217", 1 - %"$gasrem_4219" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4220" = icmp ugt i64 %"$gasadd_4218", %"$gasrem_4219" - br i1 %"$gascmp_4220", label %"$out_of_gas_4221", label %"$have_gas_4222" - -"$out_of_gas_4221": ; preds = %"$have_gas_4207" - call void @_out_of_gas() - br label %"$have_gas_4222" - -"$have_gas_4222": ; preds = %"$out_of_gas_4221", %"$have_gas_4207" - %"$consume_4223" = sub i64 %"$gasrem_4219", %"$gasadd_4218" - store i64 %"$consume_4223", i64* @_gasrem, align 8 - %"$indices_buf_4224_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4224_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4224_salloc_load", i64 32) - %"$indices_buf_4224_salloc" = bitcast i8* %"$indices_buf_4224_salloc_salloc" to [32 x i8]* - %"$indices_buf_4224" = bitcast [32 x i8]* %"$indices_buf_4224_salloc" to i8* - %"$indices_gep_4225" = getelementptr i8, i8* %"$indices_buf_4224", i32 0 - %indices_cast4 = bitcast i8* %"$indices_gep_4225" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %indices_cast4, align 1 - %"$execptr_load_4226" = load i8*, i8** @_execptr, align 8 - %"$newRecord_4228" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_4229" = bitcast %TName_ud-registry.Record* %"$newRecord_4228" to i8* - call void @_update_field(i8* %"$execptr_load_4226", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4227", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4224", i8* %"$update_value_4229"), !dbg !410 - %"$gasrem_4230" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4231" = icmp ugt i64 1, %"$gasrem_4230" - br i1 %"$gascmp_4231", label %"$out_of_gas_4232", label %"$have_gas_4233" + %m = alloca i8*, align 8 + %"$gasrem_4156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4157" = icmp ugt i64 1, %"$gasrem_4156" + br i1 %"$gascmp_4157", label %"$out_of_gas_4158", label %"$have_gas_4159" + +"$out_of_gas_4158": ; preds = %"$have_gas_4154" + call void @_out_of_gas() + br label %"$have_gas_4159" + +"$have_gas_4159": ; preds = %"$out_of_gas_4158", %"$have_gas_4154" + %"$consume_4160" = sub i64 %"$gasrem_4156", 1 + store i64 %"$consume_4160", i64* @_gasrem, align 8 + %"$msgobj_4161_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_4161_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4161_salloc_load", i64 265) + %"$msgobj_4161_salloc" = bitcast i8* %"$msgobj_4161_salloc_salloc" to [265 x i8]* + %"$msgobj_4161" = bitcast [265 x i8]* %"$msgobj_4161_salloc" to i8* + store i8 6, i8* %"$msgobj_4161", align 1 + %"$msgobj_fname_4163" = getelementptr i8, i8* %"$msgobj_4161", i32 1 + %"$msgobj_fname_4164" = bitcast i8* %"$msgobj_fname_4163" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4162", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4164", align 8 + %"$msgobj_td_4165" = getelementptr i8, i8* %"$msgobj_4161", i32 17 + %"$msgobj_td_4166" = bitcast i8* %"$msgobj_td_4165" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_4166", align 8 + %"$msgobj_v_4168" = getelementptr i8, i8* %"$msgobj_4161", i32 25 + %"$msgobj_v_4169" = bitcast i8* %"$msgobj_v_4168" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_4167", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_4169", align 8 + %"$msgobj_fname_4171" = getelementptr i8, i8* %"$msgobj_4161", i32 41 + %"$msgobj_fname_4172" = bitcast i8* %"$msgobj_fname_4171" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_4170", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_4172", align 8 + %"$msgobj_td_4173" = getelementptr i8, i8* %"$msgobj_4161", i32 57 + %"$msgobj_td_4174" = bitcast i8* %"$msgobj_td_4173" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_4174", align 8 + %"$msgobj_v_4175" = getelementptr i8, i8* %"$msgobj_4161", i32 65 + %"$msgobj_v_4176" = bitcast i8* %"$msgobj_v_4175" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_4176", align 1 + %"$msgobj_fname_4178" = getelementptr i8, i8* %"$msgobj_4161", i32 97 + %"$msgobj_fname_4179" = bitcast i8* %"$msgobj_fname_4178" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4177", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4179", align 8 + %"$msgobj_td_4180" = getelementptr i8, i8* %"$msgobj_4161", i32 113 + %"$msgobj_td_4181" = bitcast i8* %"$msgobj_td_4180" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_4181", align 8 + %"$msgobj_v_4182" = getelementptr i8, i8* %"$msgobj_4161", i32 121 + %"$msgobj_v_4183" = bitcast i8* %"$msgobj_v_4182" to %String* + store %String %label, %String* %"$msgobj_v_4183", align 8 + %"$msgobj_fname_4185" = getelementptr i8, i8* %"$msgobj_4161", i32 137 + %"$msgobj_fname_4186" = bitcast i8* %"$msgobj_fname_4185" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4184", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4186", align 8 + %"$msgobj_td_4187" = getelementptr i8, i8* %"$msgobj_4161", i32 153 + %"$msgobj_td_4188" = bitcast i8* %"$msgobj_td_4187" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_4188", align 8 + %"$msgobj_v_4189" = getelementptr i8, i8* %"$msgobj_4161", i32 161 + %"$msgobj_v_4190" = bitcast i8* %"$msgobj_v_4189" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_4190", align 1 + %"$msgobj_fname_4192" = getelementptr i8, i8* %"$msgobj_4161", i32 181 + %"$msgobj_fname_4193" = bitcast i8* %"$msgobj_fname_4192" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4191", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4193", align 8 + %"$msgobj_td_4194" = getelementptr i8, i8* %"$msgobj_4161", i32 197 + %"$msgobj_td_4195" = bitcast i8* %"$msgobj_td_4194" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_4195", align 8 + %"$msgobj_v_4196" = getelementptr i8, i8* %"$msgobj_4161", i32 205 + %"$msgobj_v_4197" = bitcast i8* %"$msgobj_v_4196" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4197", align 8 + %"$msgobj_fname_4199" = getelementptr i8, i8* %"$msgobj_4161", i32 221 + %"$msgobj_fname_4200" = bitcast i8* %"$msgobj_fname_4199" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4198", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4200", align 8 + %"$msgobj_td_4201" = getelementptr i8, i8* %"$msgobj_4161", i32 237 + %"$msgobj_td_4202" = bitcast i8* %"$msgobj_td_4201" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_4202", align 8 + %"$msgobj_v_4203" = getelementptr i8, i8* %"$msgobj_4161", i32 245 + %"$msgobj_v_4204" = bitcast i8* %"$msgobj_v_4203" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4204", align 1 + store i8* %"$msgobj_4161", i8** %m, align 8, !dbg !414 + %"$gasrem_4206" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4207" = icmp ugt i64 1, %"$gasrem_4206" + br i1 %"$gascmp_4207", label %"$out_of_gas_4208", label %"$have_gas_4209" + +"$out_of_gas_4208": ; preds = %"$have_gas_4159" + call void @_out_of_gas() + br label %"$have_gas_4209" + +"$have_gas_4209": ; preds = %"$out_of_gas_4208", %"$have_gas_4159" + %"$consume_4210" = sub i64 %"$gasrem_4206", 1 + store i64 %"$consume_4210", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_53" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_4211" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_4212" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4211", 0 + %"$ud-registry.oneMsg_envptr_4213" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4211", 1 + %"$m_4214" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_4215" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4212"(i8* %"$ud-registry.oneMsg_envptr_4213", i8* %"$m_4214"), !dbg !415 + store %TName_List_Message* %"$ud-registry.oneMsg_call_4215", %TName_List_Message** %"$ud-registry.oneMsg_53", align 8, !dbg !415 + %"$$ud-registry.oneMsg_53_4216" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_53", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_53_4216", %TName_List_Message** %msgs, align 8, !dbg !415 + %"$msgs_4217" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_4217_4218" = bitcast %TName_List_Message* %"$msgs_4217" to i8* + %"$_literal_cost_call_4219" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_4217_4218") + %"$gasrem_4220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4221" = icmp ugt i64 %"$_literal_cost_call_4219", %"$gasrem_4220" + br i1 %"$gascmp_4221", label %"$out_of_gas_4222", label %"$have_gas_4223" + +"$out_of_gas_4222": ; preds = %"$have_gas_4209" + call void @_out_of_gas() + br label %"$have_gas_4223" + +"$have_gas_4223": ; preds = %"$out_of_gas_4222", %"$have_gas_4209" + %"$consume_4224" = sub i64 %"$gasrem_4220", %"$_literal_cost_call_4219" + store i64 %"$consume_4224", i64* @_gasrem, align 8 + %"$execptr_load_4225" = load i8*, i8** @_execptr, align 8 + %"$msgs_4226" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_4225", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_4226"), !dbg !416 + br label %"$matchsucc_3998" + +"$False_4227": ; preds = %"$have_gas_3996" + %"$isSenderOAO_4228" = bitcast %TName_Bool* %"$isSenderOAO_3999" to %CName_False* + %"$gasrem_4229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4230" = icmp ugt i64 1, %"$gasrem_4229" + br i1 %"$gascmp_4230", label %"$out_of_gas_4231", label %"$have_gas_4232" + +"$out_of_gas_4231": ; preds = %"$False_4227" + call void @_out_of_gas() + br label %"$have_gas_4232" + +"$have_gas_4232": ; preds = %"$out_of_gas_4231", %"$False_4227" + %"$consume_4233" = sub i64 %"$gasrem_4229", 1 + store i64 %"$consume_4233", i64* @_gasrem, align 8 + %e7 = alloca i8*, align 8 + %"$gasrem_4234" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4235" = icmp ugt i64 1, %"$gasrem_4234" + br i1 %"$gascmp_4235", label %"$out_of_gas_4236", label %"$have_gas_4237" -"$out_of_gas_4232": ; preds = %"$have_gas_4222" +"$out_of_gas_4236": ; preds = %"$have_gas_4232" call void @_out_of_gas() - br label %"$have_gas_4233" + br label %"$have_gas_4237" -"$have_gas_4233": ; preds = %"$out_of_gas_4232", %"$have_gas_4222" - %"$consume_4234" = sub i64 %"$gasrem_4230", 1 - store i64 %"$consume_4234", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 - %"$gasrem_4235" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4236" = icmp ugt i64 1, %"$gasrem_4235" - br i1 %"$gascmp_4236", label %"$out_of_gas_4237", label %"$have_gas_4238" - -"$out_of_gas_4237": ; preds = %"$have_gas_4233" - call void @_out_of_gas() - br label %"$have_gas_4238" - -"$have_gas_4238": ; preds = %"$out_of_gas_4237", %"$have_gas_4233" - %"$consume_4239" = sub i64 %"$gasrem_4235", 1 - store i64 %"$consume_4239", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_90" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_4240" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_4241" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_4240", 0 - %"$ud-registry.eConfigured_envptr_4242" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_4240", 1 - %"$ud-registry.eConfigured_node_4243" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_4243", align 1 - %"$ud-registry.eConfigured_call_4244" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_4241"(i8* %"$ud-registry.eConfigured_envptr_4242", [32 x i8]* %"$ud-registry.eConfigured_node_4243"), !dbg !411 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_4244", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_90", align 8, !dbg !411 - %"$ud-registry.eConfigured_91" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_90_4245" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_90", align 8 - %"$$ud-registry.eConfigured_90_fptr_4246" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_90_4245", 0 - %"$$ud-registry.eConfigured_90_envptr_4247" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_90_4245", 1 - %"$$ud-registry.eConfigured_90_owner_4248" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_90_owner_4248", align 1 - %"$$ud-registry.eConfigured_90_call_4249" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_90_fptr_4246"(i8* %"$$ud-registry.eConfigured_90_envptr_4247", [20 x i8]* %"$$ud-registry.eConfigured_90_owner_4248"), !dbg !411 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_90_call_4249", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_91", align 8, !dbg !411 - %"$ud-registry.eConfigured_92" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_91_4250" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_91", align 8 - %"$$ud-registry.eConfigured_91_fptr_4251" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_91_4250", 0 - %"$$ud-registry.eConfigured_91_envptr_4252" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_91_4250", 1 - %"$$ud-registry.eConfigured_91_ud-registry.zeroByStr20_4253" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_4254" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_4254", [20 x i8]* %"$$ud-registry.eConfigured_91_ud-registry.zeroByStr20_4253", align 1 - %"$$ud-registry.eConfigured_91_call_4255" = call i8* %"$$ud-registry.eConfigured_91_fptr_4251"(i8* %"$$ud-registry.eConfigured_91_envptr_4252", [20 x i8]* %"$$ud-registry.eConfigured_91_ud-registry.zeroByStr20_4253"), !dbg !411 - store i8* %"$$ud-registry.eConfigured_91_call_4255", i8** %"$ud-registry.eConfigured_92", align 8, !dbg !411 - %"$$ud-registry.eConfigured_92_4256" = load i8*, i8** %"$ud-registry.eConfigured_92", align 8 - store i8* %"$$ud-registry.eConfigured_92_4256", i8** %e, align 8, !dbg !411 - %"$e_4257" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_4259" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4257") - %"$gasrem_4260" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4261" = icmp ugt i64 %"$_literal_cost_call_4259", %"$gasrem_4260" - br i1 %"$gascmp_4261", label %"$out_of_gas_4262", label %"$have_gas_4263" - -"$out_of_gas_4262": ; preds = %"$have_gas_4238" - call void @_out_of_gas() - br label %"$have_gas_4263" - -"$have_gas_4263": ; preds = %"$out_of_gas_4262", %"$have_gas_4238" - %"$consume_4264" = sub i64 %"$gasrem_4260", %"$_literal_cost_call_4259" - store i64 %"$consume_4264", i64* @_gasrem, align 8 - %"$execptr_load_4265" = load i8*, i8** @_execptr, align 8 - %"$e_4266" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_4265", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4266"), !dbg !412 - %"$gasrem_4267" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4268" = icmp ugt i64 1, %"$gasrem_4267" - br i1 %"$gascmp_4268", label %"$out_of_gas_4269", label %"$have_gas_4270" - -"$out_of_gas_4269": ; preds = %"$have_gas_4263" - call void @_out_of_gas() - br label %"$have_gas_4270" - -"$have_gas_4270": ; preds = %"$out_of_gas_4269", %"$have_gas_4263" - %"$consume_4271" = sub i64 %"$gasrem_4267", 1 - store i64 %"$consume_4271", i64* @_gasrem, align 8 - %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_4272" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4273" = icmp ugt i64 1, %"$gasrem_4272" - br i1 %"$gascmp_4273", label %"$out_of_gas_4274", label %"$have_gas_4275" +"$have_gas_4237": ; preds = %"$out_of_gas_4236", %"$have_gas_4232" + %"$consume_4238" = sub i64 %"$gasrem_4234", 1 + store i64 %"$consume_4238", i64* @_gasrem, align 8 + %m8 = alloca %String, align 8 + %"$gasrem_4239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4240" = icmp ugt i64 1, %"$gasrem_4239" + br i1 %"$gascmp_4240", label %"$out_of_gas_4241", label %"$have_gas_4242" + +"$out_of_gas_4241": ; preds = %"$have_gas_4237" + call void @_out_of_gas() + br label %"$have_gas_4242" + +"$have_gas_4242": ; preds = %"$out_of_gas_4241", %"$have_gas_4237" + %"$consume_4243" = sub i64 %"$gasrem_4239", 1 + store i64 %"$consume_4243", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @"$stringlit_4244", i32 0, i32 0), i32 45 }, %String* %m8, align 8, !dbg !417 + %"$gasrem_4245" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4246" = icmp ugt i64 1, %"$gasrem_4245" + br i1 %"$gascmp_4246", label %"$out_of_gas_4247", label %"$have_gas_4248" + +"$out_of_gas_4247": ; preds = %"$have_gas_4242" + call void @_out_of_gas() + br label %"$have_gas_4248" + +"$have_gas_4248": ; preds = %"$out_of_gas_4247", %"$have_gas_4242" + %"$consume_4249" = sub i64 %"$gasrem_4245", 1 + store i64 %"$consume_4249", i64* @_gasrem, align 8 + %"$ud-registry.eError_54" = alloca i8*, align 8 + %"$ud-registry.eError_4250" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_4251" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4250", 0 + %"$ud-registry.eError_envptr_4252" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4250", 1 + %"$m_4253" = load %String, %String* %m8, align 8 + %"$ud-registry.eError_call_4254" = call i8* %"$ud-registry.eError_fptr_4251"(i8* %"$ud-registry.eError_envptr_4252", %String %"$m_4253"), !dbg !419 + store i8* %"$ud-registry.eError_call_4254", i8** %"$ud-registry.eError_54", align 8, !dbg !419 + %"$$ud-registry.eError_54_4255" = load i8*, i8** %"$ud-registry.eError_54", align 8 + store i8* %"$$ud-registry.eError_54_4255", i8** %e7, align 8, !dbg !419 + %"$e_4256" = load i8*, i8** %e7, align 8 + %"$_literal_cost_call_4258" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4256") + %"$gasrem_4259" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4260" = icmp ugt i64 %"$_literal_cost_call_4258", %"$gasrem_4259" + br i1 %"$gascmp_4260", label %"$out_of_gas_4261", label %"$have_gas_4262" + +"$out_of_gas_4261": ; preds = %"$have_gas_4248" + call void @_out_of_gas() + br label %"$have_gas_4262" + +"$have_gas_4262": ; preds = %"$out_of_gas_4261", %"$have_gas_4248" + %"$consume_4263" = sub i64 %"$gasrem_4259", %"$_literal_cost_call_4258" + store i64 %"$consume_4263", i64* @_gasrem, align 8 + %"$execptr_load_4264" = load i8*, i8** @_execptr, align 8 + %"$e_4265" = load i8*, i8** %e7, align 8 + call void @_event(i8* %"$execptr_load_4264", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4265"), !dbg !420 + %"$gasrem_4266" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4267" = icmp ugt i64 1, %"$gasrem_4266" + br i1 %"$gascmp_4267", label %"$out_of_gas_4268", label %"$have_gas_4269" + +"$out_of_gas_4268": ; preds = %"$have_gas_4262" + call void @_out_of_gas() + br label %"$have_gas_4269" + +"$have_gas_4269": ; preds = %"$out_of_gas_4268", %"$have_gas_4262" + %"$consume_4270" = sub i64 %"$gasrem_4266", 1 + store i64 %"$consume_4270", i64* @_gasrem, align 8 + %msgs9 = alloca %TName_List_Message*, align 8 + %"$gasrem_4271" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4272" = icmp ugt i64 1, %"$gasrem_4271" + br i1 %"$gascmp_4272", label %"$out_of_gas_4273", label %"$have_gas_4274" -"$out_of_gas_4274": ; preds = %"$have_gas_4270" +"$out_of_gas_4273": ; preds = %"$have_gas_4269" call void @_out_of_gas() - br label %"$have_gas_4275" + br label %"$have_gas_4274" -"$have_gas_4275": ; preds = %"$out_of_gas_4274", %"$have_gas_4270" - %"$consume_4276" = sub i64 %"$gasrem_4272", 1 - store i64 %"$consume_4276", i64* @_gasrem, align 8 - %m = alloca i8*, align 8 - %"$gasrem_4277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4278" = icmp ugt i64 1, %"$gasrem_4277" - br i1 %"$gascmp_4278", label %"$out_of_gas_4279", label %"$have_gas_4280" - -"$out_of_gas_4279": ; preds = %"$have_gas_4275" - call void @_out_of_gas() - br label %"$have_gas_4280" - -"$have_gas_4280": ; preds = %"$out_of_gas_4279", %"$have_gas_4275" - %"$consume_4281" = sub i64 %"$gasrem_4277", 1 - store i64 %"$consume_4281", i64* @_gasrem, align 8 - %"$msgobj_4282_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_4282_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4282_salloc_load", i64 225) - %"$msgobj_4282_salloc" = bitcast i8* %"$msgobj_4282_salloc_salloc" to [225 x i8]* - %"$msgobj_4282" = bitcast [225 x i8]* %"$msgobj_4282_salloc" to i8* - store i8 5, i8* %"$msgobj_4282", align 1 - %"$msgobj_fname_4284" = getelementptr i8, i8* %"$msgobj_4282", i32 1 - %"$msgobj_fname_4285" = bitcast i8* %"$msgobj_fname_4284" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4283", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4285", align 8 - %"$msgobj_td_4286" = getelementptr i8, i8* %"$msgobj_4282", i32 17 - %"$msgobj_td_4287" = bitcast i8* %"$msgobj_td_4286" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4287", align 8 - %"$msgobj_v_4289" = getelementptr i8, i8* %"$msgobj_4282", i32 25 - %"$msgobj_v_4290" = bitcast i8* %"$msgobj_v_4289" to %String* - store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_4288", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_4290", align 8 - %"$msgobj_fname_4292" = getelementptr i8, i8* %"$msgobj_4282", i32 41 - %"$msgobj_fname_4293" = bitcast i8* %"$msgobj_fname_4292" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4291", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4293", align 8 - %"$msgobj_td_4294" = getelementptr i8, i8* %"$msgobj_4282", i32 57 - %"$msgobj_td_4295" = bitcast i8* %"$msgobj_td_4294" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_4295", align 8 - %"$msgobj_v_4296" = getelementptr i8, i8* %"$msgobj_4282", i32 65 - %"$msgobj_v_4297" = bitcast i8* %"$msgobj_v_4296" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_4297", align 1 - %"$msgobj_fname_4299" = getelementptr i8, i8* %"$msgobj_4282", i32 97 - %"$msgobj_fname_4300" = bitcast i8* %"$msgobj_fname_4299" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4298", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4300", align 8 - %"$msgobj_td_4301" = getelementptr i8, i8* %"$msgobj_4282", i32 113 - %"$msgobj_td_4302" = bitcast i8* %"$msgobj_td_4301" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4302", align 8 - %"$msgobj_v_4303" = getelementptr i8, i8* %"$msgobj_4282", i32 121 - %"$msgobj_v_4304" = bitcast i8* %"$msgobj_v_4303" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_4304", align 1 - %"$msgobj_fname_4306" = getelementptr i8, i8* %"$msgobj_4282", i32 141 - %"$msgobj_fname_4307" = bitcast i8* %"$msgobj_fname_4306" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4305", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4307", align 8 - %"$msgobj_td_4308" = getelementptr i8, i8* %"$msgobj_4282", i32 157 - %"$msgobj_td_4309" = bitcast i8* %"$msgobj_td_4308" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_4309", align 8 - %"$msgobj_v_4310" = getelementptr i8, i8* %"$msgobj_4282", i32 165 - %"$msgobj_v_4311" = bitcast i8* %"$msgobj_v_4310" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4311", align 8 - %"$msgobj_fname_4313" = getelementptr i8, i8* %"$msgobj_4282", i32 181 +"$have_gas_4274": ; preds = %"$out_of_gas_4273", %"$have_gas_4269" + %"$consume_4275" = sub i64 %"$gasrem_4271", 1 + store i64 %"$consume_4275", i64* @_gasrem, align 8 + %"$m_2" = alloca i8*, align 8 + %"$gasrem_4276" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4277" = icmp ugt i64 1, %"$gasrem_4276" + br i1 %"$gascmp_4277", label %"$out_of_gas_4278", label %"$have_gas_4279" + +"$out_of_gas_4278": ; preds = %"$have_gas_4274" + call void @_out_of_gas() + br label %"$have_gas_4279" + +"$have_gas_4279": ; preds = %"$out_of_gas_4278", %"$have_gas_4274" + %"$consume_4280" = sub i64 %"$gasrem_4276", 1 + store i64 %"$consume_4280", i64* @_gasrem, align 8 + %"$msgobj_4281_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_4281_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4281_salloc_load", i64 265) + %"$msgobj_4281_salloc" = bitcast i8* %"$msgobj_4281_salloc_salloc" to [265 x i8]* + %"$msgobj_4281" = bitcast [265 x i8]* %"$msgobj_4281_salloc" to i8* + store i8 6, i8* %"$msgobj_4281", align 1 + %"$msgobj_fname_4283" = getelementptr i8, i8* %"$msgobj_4281", i32 1 + %"$msgobj_fname_4284" = bitcast i8* %"$msgobj_fname_4283" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4282", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4284", align 8 + %"$msgobj_td_4285" = getelementptr i8, i8* %"$msgobj_4281", i32 17 + %"$msgobj_td_4286" = bitcast i8* %"$msgobj_td_4285" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_4286", align 8 + %"$msgobj_v_4288" = getelementptr i8, i8* %"$msgobj_4281", i32 25 + %"$msgobj_v_4289" = bitcast i8* %"$msgobj_v_4288" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_4287", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_4289", align 8 + %"$msgobj_fname_4291" = getelementptr i8, i8* %"$msgobj_4281", i32 41 + %"$msgobj_fname_4292" = bitcast i8* %"$msgobj_fname_4291" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_4290", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_4292", align 8 + %"$msgobj_td_4293" = getelementptr i8, i8* %"$msgobj_4281", i32 57 + %"$msgobj_td_4294" = bitcast i8* %"$msgobj_td_4293" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_4294", align 8 + %"$msgobj_v_4295" = getelementptr i8, i8* %"$msgobj_4281", i32 65 + %"$msgobj_v_4296" = bitcast i8* %"$msgobj_v_4295" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_4296", align 1 + %"$msgobj_fname_4298" = getelementptr i8, i8* %"$msgobj_4281", i32 97 + %"$msgobj_fname_4299" = bitcast i8* %"$msgobj_fname_4298" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4297", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4299", align 8 + %"$msgobj_td_4300" = getelementptr i8, i8* %"$msgobj_4281", i32 113 + %"$msgobj_td_4301" = bitcast i8* %"$msgobj_td_4300" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_4301", align 8 + %"$msgobj_v_4302" = getelementptr i8, i8* %"$msgobj_4281", i32 121 + %"$msgobj_v_4303" = bitcast i8* %"$msgobj_v_4302" to %String* + store %String %label, %String* %"$msgobj_v_4303", align 8 + %"$msgobj_fname_4305" = getelementptr i8, i8* %"$msgobj_4281", i32 137 + %"$msgobj_fname_4306" = bitcast i8* %"$msgobj_fname_4305" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4304", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4306", align 8 + %"$msgobj_td_4307" = getelementptr i8, i8* %"$msgobj_4281", i32 153 + %"$msgobj_td_4308" = bitcast i8* %"$msgobj_td_4307" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_4308", align 8 + %"$recordOwner_4309" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$msgobj_v_4310" = getelementptr i8, i8* %"$msgobj_4281", i32 161 + %"$msgobj_v_4311" = bitcast i8* %"$msgobj_v_4310" to [20 x i8]* + store [20 x i8] %"$recordOwner_4309", [20 x i8]* %"$msgobj_v_4311", align 1 + %"$msgobj_fname_4313" = getelementptr i8, i8* %"$msgobj_4281", i32 181 %"$msgobj_fname_4314" = bitcast i8* %"$msgobj_fname_4313" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4312", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4314", align 8 - %"$msgobj_td_4315" = getelementptr i8, i8* %"$msgobj_4282", i32 197 + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4312", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4314", align 8 + %"$msgobj_td_4315" = getelementptr i8, i8* %"$msgobj_4281", i32 197 %"$msgobj_td_4316" = bitcast i8* %"$msgobj_td_4315" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4316", align 8 - %"$msgobj_v_4317" = getelementptr i8, i8* %"$msgobj_4282", i32 205 - %"$msgobj_v_4318" = bitcast i8* %"$msgobj_v_4317" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4318", align 1 - store i8* %"$msgobj_4282", i8** %m, align 8, !dbg !413 - %"$gasrem_4320" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4321" = icmp ugt i64 1, %"$gasrem_4320" - br i1 %"$gascmp_4321", label %"$out_of_gas_4322", label %"$have_gas_4323" - -"$out_of_gas_4322": ; preds = %"$have_gas_4280" - call void @_out_of_gas() - br label %"$have_gas_4323" - -"$have_gas_4323": ; preds = %"$out_of_gas_4322", %"$have_gas_4280" - %"$consume_4324" = sub i64 %"$gasrem_4320", 1 - store i64 %"$consume_4324", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_89" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_4325" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_4326" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4325", 0 - %"$ud-registry.oneMsg_envptr_4327" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4325", 1 - %"$m_4328" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_4329" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4326"(i8* %"$ud-registry.oneMsg_envptr_4327", i8* %"$m_4328"), !dbg !414 - store %TName_List_Message* %"$ud-registry.oneMsg_call_4329", %TName_List_Message** %"$ud-registry.oneMsg_89", align 8, !dbg !414 - %"$$ud-registry.oneMsg_89_4330" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_89", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_89_4330", %TName_List_Message** %msgs, align 8, !dbg !414 - %"$msgs_4331" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_4331_4332" = bitcast %TName_List_Message* %"$msgs_4331" to i8* - %"$_literal_cost_call_4333" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_4331_4332") - %"$gasrem_4334" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4335" = icmp ugt i64 %"$_literal_cost_call_4333", %"$gasrem_4334" - br i1 %"$gascmp_4335", label %"$out_of_gas_4336", label %"$have_gas_4337" - -"$out_of_gas_4336": ; preds = %"$have_gas_4323" - call void @_out_of_gas() - br label %"$have_gas_4337" - -"$have_gas_4337": ; preds = %"$out_of_gas_4336", %"$have_gas_4323" - %"$consume_4338" = sub i64 %"$gasrem_4334", %"$_literal_cost_call_4333" - store i64 %"$consume_4338", i64* @_gasrem, align 8 - %"$execptr_load_4339" = load i8*, i8** @_execptr, align 8 - %"$msgs_4340" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_4339", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_4340"), !dbg !415 - br label %"$matchsucc_4183" - -"$False_4341": ; preds = %"$have_gas_4181" - %"$isSenderOAO_4342" = bitcast %TName_Bool* %"$isSenderOAO_4184" to %CName_False* - %"$gasrem_4343" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4344" = icmp ugt i64 1, %"$gasrem_4343" - br i1 %"$gascmp_4344", label %"$out_of_gas_4345", label %"$have_gas_4346" - -"$out_of_gas_4345": ; preds = %"$False_4341" - call void @_out_of_gas() - br label %"$have_gas_4346" - -"$have_gas_4346": ; preds = %"$out_of_gas_4345", %"$False_4341" - %"$consume_4347" = sub i64 %"$gasrem_4343", 1 - store i64 %"$consume_4347", i64* @_gasrem, align 8 - %e5 = alloca i8*, align 8 - %"$gasrem_4348" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4349" = icmp ugt i64 1, %"$gasrem_4348" - br i1 %"$gascmp_4349", label %"$out_of_gas_4350", label %"$have_gas_4351" - -"$out_of_gas_4350": ; preds = %"$have_gas_4346" - call void @_out_of_gas() - br label %"$have_gas_4351" - -"$have_gas_4351": ; preds = %"$out_of_gas_4350", %"$have_gas_4346" - %"$consume_4352" = sub i64 %"$gasrem_4348", 1 - store i64 %"$consume_4352", i64* @_gasrem, align 8 - %m6 = alloca %String, align 8 - %"$gasrem_4353" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4354" = icmp ugt i64 1, %"$gasrem_4353" - br i1 %"$gascmp_4354", label %"$out_of_gas_4355", label %"$have_gas_4356" - -"$out_of_gas_4355": ; preds = %"$have_gas_4351" - call void @_out_of_gas() - br label %"$have_gas_4356" - -"$have_gas_4356": ; preds = %"$out_of_gas_4355", %"$have_gas_4351" - %"$consume_4357" = sub i64 %"$gasrem_4353", 1 - store i64 %"$consume_4357", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_4358", i32 0, i32 0), i32 43 }, %String* %m6, align 8, !dbg !416 - %"$gasrem_4359" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4360" = icmp ugt i64 1, %"$gasrem_4359" - br i1 %"$gascmp_4360", label %"$out_of_gas_4361", label %"$have_gas_4362" - -"$out_of_gas_4361": ; preds = %"$have_gas_4356" - call void @_out_of_gas() - br label %"$have_gas_4362" - -"$have_gas_4362": ; preds = %"$out_of_gas_4361", %"$have_gas_4356" - %"$consume_4363" = sub i64 %"$gasrem_4359", 1 - store i64 %"$consume_4363", i64* @_gasrem, align 8 - %"$ud-registry.eError_94" = alloca i8*, align 8 - %"$ud-registry.eError_4364" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_4365" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4364", 0 - %"$ud-registry.eError_envptr_4366" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4364", 1 - %"$m_4367" = load %String, %String* %m6, align 8 - %"$ud-registry.eError_call_4368" = call i8* %"$ud-registry.eError_fptr_4365"(i8* %"$ud-registry.eError_envptr_4366", %String %"$m_4367"), !dbg !418 - store i8* %"$ud-registry.eError_call_4368", i8** %"$ud-registry.eError_94", align 8, !dbg !418 - %"$$ud-registry.eError_94_4369" = load i8*, i8** %"$ud-registry.eError_94", align 8 - store i8* %"$$ud-registry.eError_94_4369", i8** %e5, align 8, !dbg !418 - %"$e_4370" = load i8*, i8** %e5, align 8 - %"$_literal_cost_call_4372" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4370") - %"$gasrem_4373" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4374" = icmp ugt i64 %"$_literal_cost_call_4372", %"$gasrem_4373" - br i1 %"$gascmp_4374", label %"$out_of_gas_4375", label %"$have_gas_4376" - -"$out_of_gas_4375": ; preds = %"$have_gas_4362" - call void @_out_of_gas() - br label %"$have_gas_4376" - -"$have_gas_4376": ; preds = %"$out_of_gas_4375", %"$have_gas_4362" - %"$consume_4377" = sub i64 %"$gasrem_4373", %"$_literal_cost_call_4372" - store i64 %"$consume_4377", i64* @_gasrem, align 8 - %"$execptr_load_4378" = load i8*, i8** @_execptr, align 8 - %"$e_4379" = load i8*, i8** %e5, align 8 - call void @_event(i8* %"$execptr_load_4378", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4379"), !dbg !419 - %"$gasrem_4380" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4381" = icmp ugt i64 1, %"$gasrem_4380" - br i1 %"$gascmp_4381", label %"$out_of_gas_4382", label %"$have_gas_4383" - -"$out_of_gas_4382": ; preds = %"$have_gas_4376" - call void @_out_of_gas() - br label %"$have_gas_4383" - -"$have_gas_4383": ; preds = %"$out_of_gas_4382", %"$have_gas_4376" - %"$consume_4384" = sub i64 %"$gasrem_4380", 1 - store i64 %"$consume_4384", i64* @_gasrem, align 8 - %msgs7 = alloca %TName_List_Message*, align 8 - %"$gasrem_4385" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4386" = icmp ugt i64 1, %"$gasrem_4385" - br i1 %"$gascmp_4386", label %"$out_of_gas_4387", label %"$have_gas_4388" - -"$out_of_gas_4387": ; preds = %"$have_gas_4383" - call void @_out_of_gas() - br label %"$have_gas_4388" - -"$have_gas_4388": ; preds = %"$out_of_gas_4387", %"$have_gas_4383" - %"$consume_4389" = sub i64 %"$gasrem_4385", 1 - store i64 %"$consume_4389", i64* @_gasrem, align 8 - %"$m_1" = alloca i8*, align 8 - %"$gasrem_4390" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4391" = icmp ugt i64 1, %"$gasrem_4390" - br i1 %"$gascmp_4391", label %"$out_of_gas_4392", label %"$have_gas_4393" - -"$out_of_gas_4392": ; preds = %"$have_gas_4388" - call void @_out_of_gas() - br label %"$have_gas_4393" - -"$have_gas_4393": ; preds = %"$out_of_gas_4392", %"$have_gas_4388" - %"$consume_4394" = sub i64 %"$gasrem_4390", 1 - store i64 %"$consume_4394", i64* @_gasrem, align 8 - %"$msgobj_4395_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_4395_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4395_salloc_load", i64 225) - %"$msgobj_4395_salloc" = bitcast i8* %"$msgobj_4395_salloc_salloc" to [225 x i8]* - %"$msgobj_4395" = bitcast [225 x i8]* %"$msgobj_4395_salloc" to i8* - store i8 5, i8* %"$msgobj_4395", align 1 - %"$msgobj_fname_4397" = getelementptr i8, i8* %"$msgobj_4395", i32 1 - %"$msgobj_fname_4398" = bitcast i8* %"$msgobj_fname_4397" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4396", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4398", align 8 - %"$msgobj_td_4399" = getelementptr i8, i8* %"$msgobj_4395", i32 17 - %"$msgobj_td_4400" = bitcast i8* %"$msgobj_td_4399" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4400", align 8 - %"$msgobj_v_4402" = getelementptr i8, i8* %"$msgobj_4395", i32 25 - %"$msgobj_v_4403" = bitcast i8* %"$msgobj_v_4402" to %String* - store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_4401", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_4403", align 8 - %"$msgobj_fname_4405" = getelementptr i8, i8* %"$msgobj_4395", i32 41 - %"$msgobj_fname_4406" = bitcast i8* %"$msgobj_fname_4405" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4404", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4406", align 8 - %"$msgobj_td_4407" = getelementptr i8, i8* %"$msgobj_4395", i32 57 - %"$msgobj_td_4408" = bitcast i8* %"$msgobj_td_4407" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_4408", align 8 - %"$msgobj_v_4409" = getelementptr i8, i8* %"$msgobj_4395", i32 65 - %"$msgobj_v_4410" = bitcast i8* %"$msgobj_v_4409" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_4410", align 1 - %"$msgobj_fname_4412" = getelementptr i8, i8* %"$msgobj_4395", i32 97 - %"$msgobj_fname_4413" = bitcast i8* %"$msgobj_fname_4412" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4411", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4413", align 8 - %"$msgobj_td_4414" = getelementptr i8, i8* %"$msgobj_4395", i32 113 - %"$msgobj_td_4415" = bitcast i8* %"$msgobj_td_4414" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4415", align 8 - %"$msgobj_v_4416" = getelementptr i8, i8* %"$msgobj_4395", i32 121 - %"$msgobj_v_4417" = bitcast i8* %"$msgobj_v_4416" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_4417", align 1 - %"$msgobj_fname_4419" = getelementptr i8, i8* %"$msgobj_4395", i32 141 - %"$msgobj_fname_4420" = bitcast i8* %"$msgobj_fname_4419" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4418", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4420", align 8 - %"$msgobj_td_4421" = getelementptr i8, i8* %"$msgobj_4395", i32 157 - %"$msgobj_td_4422" = bitcast i8* %"$msgobj_td_4421" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_4422", align 8 - %"$msgobj_v_4423" = getelementptr i8, i8* %"$msgobj_4395", i32 165 - %"$msgobj_v_4424" = bitcast i8* %"$msgobj_v_4423" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4424", align 8 - %"$msgobj_fname_4426" = getelementptr i8, i8* %"$msgobj_4395", i32 181 - %"$msgobj_fname_4427" = bitcast i8* %"$msgobj_fname_4426" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4425", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4427", align 8 - %"$msgobj_td_4428" = getelementptr i8, i8* %"$msgobj_4395", i32 197 - %"$msgobj_td_4429" = bitcast i8* %"$msgobj_td_4428" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4429", align 8 - %"$msgobj_v_4430" = getelementptr i8, i8* %"$msgobj_4395", i32 205 - %"$msgobj_v_4431" = bitcast i8* %"$msgobj_v_4430" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4431", align 1 - store i8* %"$msgobj_4395", i8** %"$m_1", align 8, !dbg !420 - %"$gasrem_4433" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4434" = icmp ugt i64 1, %"$gasrem_4433" - br i1 %"$gascmp_4434", label %"$out_of_gas_4435", label %"$have_gas_4436" - -"$out_of_gas_4435": ; preds = %"$have_gas_4393" - call void @_out_of_gas() - br label %"$have_gas_4436" - -"$have_gas_4436": ; preds = %"$out_of_gas_4435", %"$have_gas_4393" - %"$consume_4437" = sub i64 %"$gasrem_4433", 1 - store i64 %"$consume_4437", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_93" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_4438" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_4439" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4438", 0 - %"$ud-registry.oneMsg_envptr_4440" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4438", 1 - %"$$m_1_4441" = load i8*, i8** %"$m_1", align 8 - %"$ud-registry.oneMsg_call_4442" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4439"(i8* %"$ud-registry.oneMsg_envptr_4440", i8* %"$$m_1_4441"), !dbg !421 - store %TName_List_Message* %"$ud-registry.oneMsg_call_4442", %TName_List_Message** %"$ud-registry.oneMsg_93", align 8, !dbg !421 - %"$$ud-registry.oneMsg_93_4443" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_93", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_93_4443", %TName_List_Message** %msgs7, align 8, !dbg !421 - %"$msgs_4444" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 - %"$$msgs_4444_4445" = bitcast %TName_List_Message* %"$msgs_4444" to i8* - %"$_literal_cost_call_4446" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_4444_4445") - %"$gasrem_4447" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4448" = icmp ugt i64 %"$_literal_cost_call_4446", %"$gasrem_4447" - br i1 %"$gascmp_4448", label %"$out_of_gas_4449", label %"$have_gas_4450" - -"$out_of_gas_4449": ; preds = %"$have_gas_4436" - call void @_out_of_gas() - br label %"$have_gas_4450" - -"$have_gas_4450": ; preds = %"$out_of_gas_4449", %"$have_gas_4436" - %"$consume_4451" = sub i64 %"$gasrem_4447", %"$_literal_cost_call_4446" - store i64 %"$consume_4451", i64* @_gasrem, align 8 - %"$execptr_load_4452" = load i8*, i8** @_execptr, align 8 - %"$msgs_4453" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 - call void @_send(i8* %"$execptr_load_4452", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_4453"), !dbg !422 - br label %"$matchsucc_4183" - -"$empty_default_4187": ; preds = %"$have_gas_4181" - br label %"$matchsucc_4183" - -"$matchsucc_4183": ; preds = %"$have_gas_4450", %"$have_gas_4337", %"$empty_default_4187" + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_4316", align 8 + %"$msgobj_v_4317" = getelementptr i8, i8* %"$msgobj_4281", i32 205 + %"$msgobj_v_4318" = bitcast i8* %"$msgobj_v_4317" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4318", align 8 + %"$msgobj_fname_4320" = getelementptr i8, i8* %"$msgobj_4281", i32 221 + %"$msgobj_fname_4321" = bitcast i8* %"$msgobj_fname_4320" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4319", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4321", align 8 + %"$msgobj_td_4322" = getelementptr i8, i8* %"$msgobj_4281", i32 237 + %"$msgobj_td_4323" = bitcast i8* %"$msgobj_td_4322" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_4323", align 8 + %"$msgobj_v_4324" = getelementptr i8, i8* %"$msgobj_4281", i32 245 + %"$msgobj_v_4325" = bitcast i8* %"$msgobj_v_4324" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4325", align 1 + store i8* %"$msgobj_4281", i8** %"$m_2", align 8, !dbg !421 + %"$gasrem_4327" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4328" = icmp ugt i64 1, %"$gasrem_4327" + br i1 %"$gascmp_4328", label %"$out_of_gas_4329", label %"$have_gas_4330" + +"$out_of_gas_4329": ; preds = %"$have_gas_4279" + call void @_out_of_gas() + br label %"$have_gas_4330" + +"$have_gas_4330": ; preds = %"$out_of_gas_4329", %"$have_gas_4279" + %"$consume_4331" = sub i64 %"$gasrem_4327", 1 + store i64 %"$consume_4331", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_55" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_4332" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_4333" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4332", 0 + %"$ud-registry.oneMsg_envptr_4334" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4332", 1 + %"$$m_2_4335" = load i8*, i8** %"$m_2", align 8 + %"$ud-registry.oneMsg_call_4336" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4333"(i8* %"$ud-registry.oneMsg_envptr_4334", i8* %"$$m_2_4335"), !dbg !422 + store %TName_List_Message* %"$ud-registry.oneMsg_call_4336", %TName_List_Message** %"$ud-registry.oneMsg_55", align 8, !dbg !422 + %"$$ud-registry.oneMsg_55_4337" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_55", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_55_4337", %TName_List_Message** %msgs9, align 8, !dbg !422 + %"$msgs_4338" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 + %"$$msgs_4338_4339" = bitcast %TName_List_Message* %"$msgs_4338" to i8* + %"$_literal_cost_call_4340" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_4338_4339") + %"$gasrem_4341" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4342" = icmp ugt i64 %"$_literal_cost_call_4340", %"$gasrem_4341" + br i1 %"$gascmp_4342", label %"$out_of_gas_4343", label %"$have_gas_4344" + +"$out_of_gas_4343": ; preds = %"$have_gas_4330" + call void @_out_of_gas() + br label %"$have_gas_4344" + +"$have_gas_4344": ; preds = %"$out_of_gas_4343", %"$have_gas_4330" + %"$consume_4345" = sub i64 %"$gasrem_4341", %"$_literal_cost_call_4340" + store i64 %"$consume_4345", i64* @_gasrem, align 8 + %"$execptr_load_4346" = load i8*, i8** @_execptr, align 8 + %"$msgs_4347" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 + call void @_send(i8* %"$execptr_load_4346", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_4347"), !dbg !423 + br label %"$matchsucc_3998" + +"$empty_default_4002": ; preds = %"$have_gas_3996" + br label %"$matchsucc_3998" + +"$matchsucc_3998": ; preds = %"$have_gas_4344", %"$have_gas_4223", %"$empty_default_4002" ret void } -define void @transfer(i8* %0) !dbg !423 { +define void @assign(i8* %0) !dbg !424 { entry: - %"$_amount_4455" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4456" = bitcast i8* %"$_amount_4455" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4456", align 8 - %"$_origin_4457" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4458" = bitcast i8* %"$_origin_4457" to [20 x i8]* - %"$_sender_4459" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4460" = bitcast i8* %"$_sender_4459" to [20 x i8]* - %"$node_4461" = getelementptr i8, i8* %0, i32 56 - %"$node_4462" = bitcast i8* %"$node_4461" to [32 x i8]* - %"$owner_4463" = getelementptr i8, i8* %0, i32 88 - %"$owner_4464" = bitcast i8* %"$owner_4463" to [20 x i8]* - call void @"$transfer_4075"(%Uint128 %_amount, [20 x i8]* %"$_origin_4458", [20 x i8]* %"$_sender_4460", [32 x i8]* %"$node_4462", [20 x i8]* %"$owner_4464"), !dbg !424 + %"$_amount_4349" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4350" = bitcast i8* %"$_amount_4349" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4350", align 8 + %"$_origin_4351" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4352" = bitcast i8* %"$_origin_4351" to [20 x i8]* + %"$_sender_4353" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4354" = bitcast i8* %"$_sender_4353" to [20 x i8]* + %"$parent_4355" = getelementptr i8, i8* %0, i32 56 + %"$parent_4356" = bitcast i8* %"$parent_4355" to [32 x i8]* + %"$label_4357" = getelementptr i8, i8* %0, i32 88 + %"$label_4358" = bitcast i8* %"$label_4357" to %String* + %label = load %String, %String* %"$label_4358", align 8 + %"$owner_4359" = getelementptr i8, i8* %0, i32 104 + %"$owner_4360" = bitcast i8* %"$owner_4359" to [20 x i8]* + call void @"$assign_3903"(%Uint128 %_amount, [20 x i8]* %"$_origin_4352", [20 x i8]* %"$_sender_4354", [32 x i8]* %"$parent_4356", %String %label, [20 x i8]* %"$owner_4360"), !dbg !425 ret void } -define internal void @"$assign_4465"(%Uint128 %_amount, [20 x i8]* %"$_origin_4466", [20 x i8]* %"$_sender_4467", [32 x i8]* %"$parent_4468", %String %label, [20 x i8]* %"$owner_4469") !dbg !425 { +define internal void @"$bestow_4361"(%Uint128 %_amount, [20 x i8]* %"$_origin_4362", [20 x i8]* %"$_sender_4363", %String %label, [20 x i8]* %"$owner_4364", [20 x i8]* %"$resolver_4365") !dbg !426 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4466", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4467", align 1 - %parent = load [32 x i8], [32 x i8]* %"$parent_4468", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_4469", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4362", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4363", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_4364", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_4365", align 1 + %currentAdmins = alloca %TName_List_ByStr20*, align 8 + %"$execptr_load_4367" = load i8*, i8** @_execptr, align 8 + %"$currentAdmins_call_4368" = call i8* @_fetch_field(i8* %"$execptr_load_4367", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4366", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i32 0, i8* null, i32 1), !dbg !427 + %"$currentAdmins_4369" = bitcast i8* %"$currentAdmins_call_4368" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$currentAdmins_4369", %TName_List_ByStr20** %currentAdmins, align 8 + %"$currentAdmins_4370" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$$currentAdmins_4370_4371" = bitcast %TName_List_ByStr20* %"$currentAdmins_4370" to i8* + %"$_literal_cost_call_4372" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i8* %"$$currentAdmins_4370_4371") + %"$gasadd_4373" = add i64 %"$_literal_cost_call_4372", 0 + %"$gasrem_4374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4375" = icmp ugt i64 %"$gasadd_4373", %"$gasrem_4374" + br i1 %"$gascmp_4375", label %"$out_of_gas_4376", label %"$have_gas_4377" + +"$out_of_gas_4376": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4377" + +"$have_gas_4377": ; preds = %"$out_of_gas_4376", %entry + %"$consume_4378" = sub i64 %"$gasrem_4374", %"$gasadd_4373" + store i64 %"$consume_4378", i64* @_gasrem, align 8 + %"$gasrem_4379" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4380" = icmp ugt i64 1, %"$gasrem_4379" + br i1 %"$gascmp_4380", label %"$out_of_gas_4381", label %"$have_gas_4382" + +"$out_of_gas_4381": ; preds = %"$have_gas_4377" + call void @_out_of_gas() + br label %"$have_gas_4382" + +"$have_gas_4382": ; preds = %"$out_of_gas_4381", %"$have_gas_4377" + %"$consume_4383" = sub i64 %"$gasrem_4379", 1 + store i64 %"$consume_4383", i64* @_gasrem, align 8 + %node = alloca [32 x i8], align 1 + %"$gasrem_4384" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4385" = icmp ugt i64 1, %"$gasrem_4384" + br i1 %"$gascmp_4385", label %"$out_of_gas_4386", label %"$have_gas_4387" + +"$out_of_gas_4386": ; preds = %"$have_gas_4382" + call void @_out_of_gas() + br label %"$have_gas_4387" + +"$have_gas_4387": ; preds = %"$out_of_gas_4386", %"$have_gas_4382" + %"$consume_4388" = sub i64 %"$gasrem_4384", 1 + store i64 %"$consume_4388", i64* @_gasrem, align 8 + %"$ud-registry.parentLabelToNode_4389" = load { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }* @ud-registry.parentLabelToNode, align 8 + %"$ud-registry.parentLabelToNode_fptr_4390" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4389", 0 + %"$ud-registry.parentLabelToNode_envptr_4391" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4389", 1 + %"$ud-registry.parentLabelToNode_rootNode_4392" = alloca [32 x i8], align 1 + %"$rootNode_4393" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 + store [32 x i8] %"$rootNode_4393", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_4392", align 1 + %"$ud-registry.parentLabelToNode_retalloca_4394" = alloca [32 x i8], align 1 + call void %"$ud-registry.parentLabelToNode_fptr_4390"(i8* %"$ud-registry.parentLabelToNode_envptr_4391", [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4394", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_4392", %String %label), !dbg !428 + %"$ud-registry.parentLabelToNode_ret_4395" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4394", align 1 + store [32 x i8] %"$ud-registry.parentLabelToNode_ret_4395", [32 x i8]* %node, align 1, !dbg !428 + %recordExists = alloca %TName_Bool*, align 8 + %"$indices_buf_4396_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4396_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4396_salloc_load", i64 32) + %"$indices_buf_4396_salloc" = bitcast i8* %"$indices_buf_4396_salloc_salloc" to [32 x i8]* + %"$indices_buf_4396" = bitcast [32 x i8]* %"$indices_buf_4396_salloc" to i8* + %"$node_4397" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4398" = getelementptr i8, i8* %"$indices_buf_4396", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4398" to [32 x i8]* + store [32 x i8] %"$node_4397", [32 x i8]* %indices_cast, align 1 + %"$execptr_load_4400" = load i8*, i8** @_execptr, align 8 + %"$recordExists_call_4401" = call i8* @_fetch_field(i8* %"$execptr_load_4400", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4399", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4396", i32 0), !dbg !429 + %"$recordExists_4402" = bitcast i8* %"$recordExists_call_4401" to %TName_Bool* + store %TName_Bool* %"$recordExists_4402", %TName_Bool** %recordExists, align 8 + %"$recordExists_4403" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$$recordExists_4403_4404" = bitcast %TName_Bool* %"$recordExists_4403" to i8* + %"$_literal_cost_call_4405" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204", i8* %"$$recordExists_4403_4404") + %"$gasadd_4406" = add i64 %"$_literal_cost_call_4405", 0 + %"$gasadd_4407" = add i64 %"$gasadd_4406", 1 + %"$gasrem_4408" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4409" = icmp ugt i64 %"$gasadd_4407", %"$gasrem_4408" + br i1 %"$gascmp_4409", label %"$out_of_gas_4410", label %"$have_gas_4411" + +"$out_of_gas_4410": ; preds = %"$have_gas_4387" + call void @_out_of_gas() + br label %"$have_gas_4411" + +"$have_gas_4411": ; preds = %"$out_of_gas_4410", %"$have_gas_4387" + %"$consume_4412" = sub i64 %"$gasrem_4408", %"$gasadd_4407" + store i64 %"$consume_4412", i64* @_gasrem, align 8 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_4470_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4470_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4470_salloc_load", i64 32) - %"$indices_buf_4470_salloc" = bitcast i8* %"$indices_buf_4470_salloc_salloc" to [32 x i8]* - %"$indices_buf_4470" = bitcast [32 x i8]* %"$indices_buf_4470_salloc" to i8* - %"$indices_gep_4471" = getelementptr i8, i8* %"$indices_buf_4470", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4471" to [32 x i8]* - store [32 x i8] %parent, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_4473" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_4474" = call i8* @_fetch_field(i8* %"$execptr_load_4473", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4472", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4470", i32 1), !dbg !426 - %"$maybeRecord_4475" = bitcast i8* %"$maybeRecord_call_4474" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_4475", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_4476" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_4476_4477" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_4476" to i8* - %"$_literal_cost_call_4478" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_4476_4477") - %"$gasadd_4479" = add i64 %"$_literal_cost_call_4478", 0 - %"$gasadd_4480" = add i64 %"$gasadd_4479", 1 - %"$gasrem_4481" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4482" = icmp ugt i64 %"$gasadd_4480", %"$gasrem_4481" - br i1 %"$gascmp_4482", label %"$out_of_gas_4483", label %"$have_gas_4484" - -"$out_of_gas_4483": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4484" - -"$have_gas_4484": ; preds = %"$out_of_gas_4483", %entry - %"$consume_4485" = sub i64 %"$gasrem_4481", %"$gasadd_4480" - store i64 %"$consume_4485", i64* @_gasrem, align 8 - %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_4486_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4486_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4486_salloc_load", i64 32) - %"$indices_buf_4486_salloc" = bitcast i8* %"$indices_buf_4486_salloc_salloc" to [32 x i8]* - %"$indices_buf_4486" = bitcast [32 x i8]* %"$indices_buf_4486_salloc" to i8* - %"$indices_gep_4487" = getelementptr i8, i8* %"$indices_buf_4486", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_4487" to [32 x i8]* - store [32 x i8] %parent, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_4489" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_4490" = call i8* @_fetch_field(i8* %"$execptr_load_4489", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4488", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_4486", i32 1), !dbg !427 - %"$maybeApproved_4491" = bitcast i8* %"$maybeApproved_call_4490" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_4491", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_4492" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_4492_4493" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4492" to i8* - %"$_literal_cost_call_4494" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_4492_4493") - %"$gasadd_4495" = add i64 %"$_literal_cost_call_4494", 0 - %"$gasadd_4496" = add i64 %"$gasadd_4495", 1 - %"$gasrem_4497" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4498" = icmp ugt i64 %"$gasadd_4496", %"$gasrem_4497" - br i1 %"$gascmp_4498", label %"$out_of_gas_4499", label %"$have_gas_4500" - -"$out_of_gas_4499": ; preds = %"$have_gas_4484" - call void @_out_of_gas() - br label %"$have_gas_4500" - -"$have_gas_4500": ; preds = %"$out_of_gas_4499", %"$have_gas_4484" - %"$consume_4501" = sub i64 %"$gasrem_4497", %"$gasadd_4496" - store i64 %"$consume_4501", i64* @_gasrem, align 8 - %"$gasrem_4502" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4503" = icmp ugt i64 1, %"$gasrem_4502" - br i1 %"$gascmp_4503", label %"$out_of_gas_4504", label %"$have_gas_4505" - -"$out_of_gas_4504": ; preds = %"$have_gas_4500" - call void @_out_of_gas() - br label %"$have_gas_4505" - -"$have_gas_4505": ; preds = %"$out_of_gas_4504", %"$have_gas_4500" - %"$consume_4506" = sub i64 %"$gasrem_4502", 1 - store i64 %"$consume_4506", i64* @_gasrem, align 8 + %"$indices_buf_4413_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4413_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4413_salloc_load", i64 32) + %"$indices_buf_4413_salloc" = bitcast i8* %"$indices_buf_4413_salloc_salloc" to [32 x i8]* + %"$indices_buf_4413" = bitcast [32 x i8]* %"$indices_buf_4413_salloc" to i8* + %"$node_4414" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4415" = getelementptr i8, i8* %"$indices_buf_4413", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_4415" to [32 x i8]* + store [32 x i8] %"$node_4414", [32 x i8]* %indices_cast1, align 1 + %"$execptr_load_4417" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_4418" = call i8* @_fetch_field(i8* %"$execptr_load_4417", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4416", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4413", i32 1), !dbg !430 + %"$maybeRecord_4419" = bitcast i8* %"$maybeRecord_call_4418" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_4419", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_4420" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_4420_4421" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_4420" to i8* + %"$_literal_cost_call_4422" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_4420_4421") + %"$gasadd_4423" = add i64 %"$_literal_cost_call_4422", 0 + %"$gasadd_4424" = add i64 %"$gasadd_4423", 1 + %"$gasrem_4425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4426" = icmp ugt i64 %"$gasadd_4424", %"$gasrem_4425" + br i1 %"$gascmp_4426", label %"$out_of_gas_4427", label %"$have_gas_4428" + +"$out_of_gas_4427": ; preds = %"$have_gas_4411" + call void @_out_of_gas() + br label %"$have_gas_4428" + +"$have_gas_4428": ; preds = %"$out_of_gas_4427", %"$have_gas_4411" + %"$consume_4429" = sub i64 %"$gasrem_4425", %"$gasadd_4424" + store i64 %"$consume_4429", i64* @_gasrem, align 8 + %currentRegistrar = alloca [20 x i8], align 1 + %"$execptr_load_4431" = load i8*, i8** @_execptr, align 8 + %"$currentRegistrar_call_4432" = call i8* @_fetch_field(i8* %"$execptr_load_4431", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_4430", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i32 0, i8* null, i32 1), !dbg !431 + %"$currentRegistrar_4433" = bitcast i8* %"$currentRegistrar_call_4432" to [20 x i8]* + %"$currentRegistrar_4434" = load [20 x i8], [20 x i8]* %"$currentRegistrar_4433", align 1 + store [20 x i8] %"$currentRegistrar_4434", [20 x i8]* %currentRegistrar, align 1 + %"$_literal_cost_currentRegistrar_4435" = alloca [20 x i8], align 1 + %"$currentRegistrar_4436" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_4436", [20 x i8]* %"$_literal_cost_currentRegistrar_4435", align 1 + %"$$_literal_cost_currentRegistrar_4435_4437" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_4435" to i8* + %"$_literal_cost_call_4438" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i8* %"$$_literal_cost_currentRegistrar_4435_4437") + %"$gasadd_4439" = add i64 %"$_literal_cost_call_4438", 0 + %"$gasrem_4440" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4441" = icmp ugt i64 %"$gasadd_4439", %"$gasrem_4440" + br i1 %"$gascmp_4441", label %"$out_of_gas_4442", label %"$have_gas_4443" + +"$out_of_gas_4442": ; preds = %"$have_gas_4428" + call void @_out_of_gas() + br label %"$have_gas_4443" + +"$have_gas_4443": ; preds = %"$out_of_gas_4442", %"$have_gas_4428" + %"$consume_4444" = sub i64 %"$gasrem_4440", %"$gasadd_4439" + store i64 %"$consume_4444", i64* @_gasrem, align 8 + %"$gasrem_4445" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4446" = icmp ugt i64 1, %"$gasrem_4445" + br i1 %"$gascmp_4446", label %"$out_of_gas_4447", label %"$have_gas_4448" + +"$out_of_gas_4447": ; preds = %"$have_gas_4443" + call void @_out_of_gas() + br label %"$have_gas_4448" + +"$have_gas_4448": ; preds = %"$out_of_gas_4447", %"$have_gas_4443" + %"$consume_4449" = sub i64 %"$gasrem_4445", 1 + store i64 %"$consume_4449", i64* @_gasrem, align 8 + %isOk = alloca %TName_Bool*, align 8 + %"$gasrem_4450" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4451" = icmp ugt i64 1, %"$gasrem_4450" + br i1 %"$gascmp_4451", label %"$out_of_gas_4452", label %"$have_gas_4453" + +"$out_of_gas_4452": ; preds = %"$have_gas_4448" + call void @_out_of_gas() + br label %"$have_gas_4453" + +"$have_gas_4453": ; preds = %"$out_of_gas_4452", %"$have_gas_4448" + %"$consume_4454" = sub i64 %"$gasrem_4450", 1 + store i64 %"$consume_4454", i64* @_gasrem, align 8 + %isSenderAdmin = alloca %TName_Bool*, align 8 + %"$gasrem_4455" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4456" = icmp ugt i64 1, %"$gasrem_4455" + br i1 %"$gascmp_4456", label %"$out_of_gas_4457", label %"$have_gas_4458" + +"$out_of_gas_4457": ; preds = %"$have_gas_4453" + call void @_out_of_gas() + br label %"$have_gas_4458" + +"$have_gas_4458": ; preds = %"$out_of_gas_4457", %"$have_gas_4453" + %"$consume_4459" = sub i64 %"$gasrem_4455", 1 + store i64 %"$consume_4459", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Contains_4460" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8 + %"$ud-registry.listByStr20Contains_fptr_4461" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_4460", 0 + %"$ud-registry.listByStr20Contains_envptr_4462" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_4460", 1 + %"$currentAdmins_4463" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Contains__sender_4464" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.listByStr20Contains__sender_4464", align 1 + %"$ud-registry.listByStr20Contains_call_4465" = call %TName_Bool* %"$ud-registry.listByStr20Contains_fptr_4461"(i8* %"$ud-registry.listByStr20Contains_envptr_4462", %TName_List_ByStr20* %"$currentAdmins_4463", [20 x i8]* %"$ud-registry.listByStr20Contains__sender_4464"), !dbg !432 + store %TName_Bool* %"$ud-registry.listByStr20Contains_call_4465", %TName_Bool** %isSenderAdmin, align 8, !dbg !432 + %"$gasrem_4466" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4467" = icmp ugt i64 1, %"$gasrem_4466" + br i1 %"$gascmp_4467", label %"$out_of_gas_4468", label %"$have_gas_4469" + +"$out_of_gas_4468": ; preds = %"$have_gas_4458" + call void @_out_of_gas() + br label %"$have_gas_4469" + +"$have_gas_4469": ; preds = %"$out_of_gas_4468", %"$have_gas_4458" + %"$consume_4470" = sub i64 %"$gasrem_4466", 1 + store i64 %"$consume_4470", i64* @_gasrem, align 8 + %isSenderRegistrar = alloca %TName_Bool*, align 8 + %"$gasrem_4471" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4472" = icmp ugt i64 20, %"$gasrem_4471" + br i1 %"$gascmp_4472", label %"$out_of_gas_4473", label %"$have_gas_4474" + +"$out_of_gas_4473": ; preds = %"$have_gas_4469" + call void @_out_of_gas() + br label %"$have_gas_4474" + +"$have_gas_4474": ; preds = %"$out_of_gas_4473", %"$have_gas_4469" + %"$consume_4475" = sub i64 %"$gasrem_4471", 20 + store i64 %"$consume_4475", i64* @_gasrem, align 8 + %"$execptr_load_4476" = load i8*, i8** @_execptr, align 8 + %"$eq_currentRegistrar_4477" = alloca [20 x i8], align 1 + %"$currentRegistrar_4478" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_4478", [20 x i8]* %"$eq_currentRegistrar_4477", align 1 + %"$$eq_currentRegistrar_4477_4479" = bitcast [20 x i8]* %"$eq_currentRegistrar_4477" to i8* + %"$eq__sender_4480" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_4480", align 1 + %"$$eq__sender_4480_4481" = bitcast [20 x i8]* %"$eq__sender_4480" to i8* + %"$eq_call_4482" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4476", i32 20, i8* %"$$eq_currentRegistrar_4477_4479", i8* %"$$eq__sender_4480_4481"), !dbg !433 + store %TName_Bool* %"$eq_call_4482", %TName_Bool** %isSenderRegistrar, align 8, !dbg !433 + %"$gasrem_4484" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4485" = icmp ugt i64 1, %"$gasrem_4484" + br i1 %"$gascmp_4485", label %"$out_of_gas_4486", label %"$have_gas_4487" + +"$out_of_gas_4486": ; preds = %"$have_gas_4474" + call void @_out_of_gas() + br label %"$have_gas_4487" + +"$have_gas_4487": ; preds = %"$out_of_gas_4486", %"$have_gas_4474" + %"$consume_4488" = sub i64 %"$gasrem_4484", 1 + store i64 %"$consume_4488", i64* @_gasrem, align 8 + %isOkSender = alloca %TName_Bool*, align 8 + %"$gasrem_4489" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4490" = icmp ugt i64 1, %"$gasrem_4489" + br i1 %"$gascmp_4490", label %"$out_of_gas_4491", label %"$have_gas_4492" + +"$out_of_gas_4491": ; preds = %"$have_gas_4487" + call void @_out_of_gas() + br label %"$have_gas_4492" + +"$have_gas_4492": ; preds = %"$out_of_gas_4491", %"$have_gas_4487" + %"$consume_4493" = sub i64 %"$gasrem_4489", 1 + store i64 %"$consume_4493", i64* @_gasrem, align 8 + %"$BoolUtils.orb_4494" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 + %"$BoolUtils.orb_fptr_4495" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_4494", 0 + %"$BoolUtils.orb_envptr_4496" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_4494", 1 + %"$isSenderRegistrar_4497" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 + %"$isSenderAdmin_4498" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$BoolUtils.orb_call_4499" = call %TName_Bool* %"$BoolUtils.orb_fptr_4495"(i8* %"$BoolUtils.orb_envptr_4496", %TName_Bool* %"$isSenderRegistrar_4497", %TName_Bool* %"$isSenderAdmin_4498"), !dbg !434 + store %TName_Bool* %"$BoolUtils.orb_call_4499", %TName_Bool** %isOkSender, align 8, !dbg !434 + %"$gasrem_4500" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4501" = icmp ugt i64 1, %"$gasrem_4500" + br i1 %"$gascmp_4501", label %"$out_of_gas_4502", label %"$have_gas_4503" + +"$out_of_gas_4502": ; preds = %"$have_gas_4492" + call void @_out_of_gas() + br label %"$have_gas_4503" + +"$have_gas_4503": ; preds = %"$out_of_gas_4502", %"$have_gas_4492" + %"$consume_4504" = sub i64 %"$gasrem_4500", 1 + store i64 %"$consume_4504", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_4507" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4508" = icmp ugt i64 1, %"$gasrem_4507" - br i1 %"$gascmp_4508", label %"$out_of_gas_4509", label %"$have_gas_4510" - -"$out_of_gas_4509": ; preds = %"$have_gas_4505" - call void @_out_of_gas() - br label %"$have_gas_4510" - -"$have_gas_4510": ; preds = %"$out_of_gas_4509", %"$have_gas_4505" - %"$consume_4511" = sub i64 %"$gasrem_4507", 1 - store i64 %"$consume_4511", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_114" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_4512" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_4513" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4512", 0 - %"$ud-registry.recordMemberOwner_envptr_4514" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4512", 1 - %"$maybeRecord_4515" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_4516" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_4513"(i8* %"$ud-registry.recordMemberOwner_envptr_4514", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4516", %TName_Option_ud-registry.Record* %"$maybeRecord_4515"), !dbg !428 - %"$ud-registry.recordMemberOwner_ret_4517" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4516", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_4517", [20 x i8]* %"$ud-registry.recordMemberOwner_114", align 1, !dbg !428 - %"$$ud-registry.recordMemberOwner_114_4518" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_114", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_114_4518", [20 x i8]* %recordOwner, align 1, !dbg !428 - %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_4519_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4519_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4519_salloc_load", i64 20) - %"$indices_buf_4519_salloc" = bitcast i8* %"$indices_buf_4519_salloc_salloc" to [20 x i8]* - %"$indices_buf_4519" = bitcast [20 x i8]* %"$indices_buf_4519_salloc" to i8* - %"$recordOwner_4520" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_4521" = getelementptr i8, i8* %"$indices_buf_4519", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_4521" to [20 x i8]* - store [20 x i8] %"$recordOwner_4520", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_4523" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_4524" = call i8* @_fetch_field(i8* %"$execptr_load_4523", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_4522", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_4519", i32 1), !dbg !429 - %"$maybeOperators_4525" = bitcast i8* %"$maybeOperators_call_4524" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4525", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_4526" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_4526_4527" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4526" to i8* - %"$_literal_cost_call_4528" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", i8* %"$$maybeOperators_4526_4527") - %"$gasadd_4529" = add i64 %"$_literal_cost_call_4528", 0 - %"$gasadd_4530" = add i64 %"$gasadd_4529", 1 - %"$gasrem_4531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4532" = icmp ugt i64 %"$gasadd_4530", %"$gasrem_4531" - br i1 %"$gascmp_4532", label %"$out_of_gas_4533", label %"$have_gas_4534" - -"$out_of_gas_4533": ; preds = %"$have_gas_4510" - call void @_out_of_gas() - br label %"$have_gas_4534" - -"$have_gas_4534": ; preds = %"$out_of_gas_4533", %"$have_gas_4510" - %"$consume_4535" = sub i64 %"$gasrem_4531", %"$gasadd_4530" - store i64 %"$consume_4535", i64* @_gasrem, align 8 + %"$gasrem_4505" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4506" = icmp ugt i64 1, %"$gasrem_4505" + br i1 %"$gascmp_4506", label %"$out_of_gas_4507", label %"$have_gas_4508" + +"$out_of_gas_4507": ; preds = %"$have_gas_4503" + call void @_out_of_gas() + br label %"$have_gas_4508" + +"$have_gas_4508": ; preds = %"$out_of_gas_4507", %"$have_gas_4503" + %"$consume_4509" = sub i64 %"$gasrem_4505", 1 + store i64 %"$consume_4509", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_56" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_4510" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_4511" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4510", 0 + %"$ud-registry.recordMemberOwner_envptr_4512" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4510", 1 + %"$maybeRecord_4513" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_4514" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_4511"(i8* %"$ud-registry.recordMemberOwner_envptr_4512", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4514", %TName_Option_ud-registry.Record* %"$maybeRecord_4513"), !dbg !435 + %"$ud-registry.recordMemberOwner_ret_4515" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4514", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_4515", [20 x i8]* %"$ud-registry.recordMemberOwner_56", align 1, !dbg !435 + %"$$ud-registry.recordMemberOwner_56_4516" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_56", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_56_4516", [20 x i8]* %recordOwner, align 1, !dbg !435 + %"$gasrem_4517" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4518" = icmp ugt i64 1, %"$gasrem_4517" + br i1 %"$gascmp_4518", label %"$out_of_gas_4519", label %"$have_gas_4520" + +"$out_of_gas_4519": ; preds = %"$have_gas_4508" + call void @_out_of_gas() + br label %"$have_gas_4520" + +"$have_gas_4520": ; preds = %"$out_of_gas_4519", %"$have_gas_4508" + %"$consume_4521" = sub i64 %"$gasrem_4517", 1 + store i64 %"$consume_4521", i64* @_gasrem, align 8 + %recordIsUnowned = alloca %TName_Bool*, align 8 + %"$gasrem_4522" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4523" = icmp ugt i64 20, %"$gasrem_4522" + br i1 %"$gascmp_4523", label %"$out_of_gas_4524", label %"$have_gas_4525" + +"$out_of_gas_4524": ; preds = %"$have_gas_4520" + call void @_out_of_gas() + br label %"$have_gas_4525" + +"$have_gas_4525": ; preds = %"$out_of_gas_4524", %"$have_gas_4520" + %"$consume_4526" = sub i64 %"$gasrem_4522", 20 + store i64 %"$consume_4526", i64* @_gasrem, align 8 + %"$execptr_load_4527" = load i8*, i8** @_execptr, align 8 + %"$eq_recordOwner_4528" = alloca [20 x i8], align 1 + %"$recordOwner_4529" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_4529", [20 x i8]* %"$eq_recordOwner_4528", align 1 + %"$$eq_recordOwner_4528_4530" = bitcast [20 x i8]* %"$eq_recordOwner_4528" to i8* + %"$eq_ud-registry.zeroByStr20_4531" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_4532" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_4532", [20 x i8]* %"$eq_ud-registry.zeroByStr20_4531", align 1 + %"$$eq_ud-registry.zeroByStr20_4531_4533" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_4531" to i8* + %"$eq_call_4534" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4527", i32 20, i8* %"$$eq_recordOwner_4528_4530", i8* %"$$eq_ud-registry.zeroByStr20_4531_4533"), !dbg !436 + store %TName_Bool* %"$eq_call_4534", %TName_Bool** %recordIsUnowned, align 8, !dbg !436 %"$gasrem_4536" = load i64, i64* @_gasrem, align 8 %"$gascmp_4537" = icmp ugt i64 1, %"$gasrem_4536" br i1 %"$gascmp_4537", label %"$out_of_gas_4538", label %"$have_gas_4539" -"$out_of_gas_4538": ; preds = %"$have_gas_4534" +"$out_of_gas_4538": ; preds = %"$have_gas_4525" call void @_out_of_gas() br label %"$have_gas_4539" -"$have_gas_4539": ; preds = %"$out_of_gas_4538", %"$have_gas_4534" +"$have_gas_4539": ; preds = %"$out_of_gas_4538", %"$have_gas_4525" %"$consume_4540" = sub i64 %"$gasrem_4536", 1 store i64 %"$consume_4540", i64* @_gasrem, align 8 - %isSenderOAO = alloca %TName_Bool*, align 8 + %recordIsOwnedByRegistrar = alloca %TName_Bool*, align 8 %"$gasrem_4541" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4542" = icmp ugt i64 1, %"$gasrem_4541" + %"$gascmp_4542" = icmp ugt i64 20, %"$gasrem_4541" br i1 %"$gascmp_4542", label %"$out_of_gas_4543", label %"$have_gas_4544" "$out_of_gas_4543": ; preds = %"$have_gas_4539" @@ -8439,2534 +8586,1349 @@ entry: br label %"$have_gas_4544" "$have_gas_4544": ; preds = %"$out_of_gas_4543", %"$have_gas_4539" - %"$consume_4545" = sub i64 %"$gasrem_4541", 1 + %"$consume_4545" = sub i64 %"$gasrem_4541", 20 store i64 %"$consume_4545", i64* @_gasrem, align 8 - %"$ud-registry.getIsOAO_110" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_4546" = load { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.getIsOAO, align 8 - %"$ud-registry.getIsOAO_fptr_4547" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_4546", 0 - %"$ud-registry.getIsOAO_envptr_4548" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_4546", 1 - %"$ud-registry.getIsOAO__sender_4549" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_4549", align 1 - %"$ud-registry.getIsOAO_call_4550" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_4547"(i8* %"$ud-registry.getIsOAO_envptr_4548", [20 x i8]* %"$ud-registry.getIsOAO__sender_4549"), !dbg !430 - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_4550", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_110", align 8, !dbg !430 - %"$ud-registry.getIsOAO_111" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_110_4551" = load { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_110", align 8 - %"$$ud-registry.getIsOAO_110_fptr_4552" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_110_4551", 0 - %"$$ud-registry.getIsOAO_110_envptr_4553" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_110_4551", 1 - %"$$ud-registry.getIsOAO_110_recordOwner_4554" = alloca [20 x i8], align 1 - %"$recordOwner_4555" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_4555", [20 x i8]* %"$$ud-registry.getIsOAO_110_recordOwner_4554", align 1 - %"$$ud-registry.getIsOAO_110_call_4556" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_110_fptr_4552"(i8* %"$$ud-registry.getIsOAO_110_envptr_4553", [20 x i8]* %"$$ud-registry.getIsOAO_110_recordOwner_4554"), !dbg !430 - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_110_call_4556", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_111", align 8, !dbg !430 - %"$ud-registry.getIsOAO_112" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_111_4557" = load { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_111", align 8 - %"$$ud-registry.getIsOAO_111_fptr_4558" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_111_4557", 0 - %"$$ud-registry.getIsOAO_111_envptr_4559" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_111_4557", 1 - %"$maybeApproved_4560" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_111_call_4561" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_111_fptr_4558"(i8* %"$$ud-registry.getIsOAO_111_envptr_4559", %TName_Option_ByStr20* %"$maybeApproved_4560"), !dbg !430 - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_111_call_4561", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_112", align 8, !dbg !430 - %"$ud-registry.getIsOAO_113" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_112_4562" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_112", align 8 - %"$$ud-registry.getIsOAO_112_fptr_4563" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_112_4562", 0 - %"$$ud-registry.getIsOAO_112_envptr_4564" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_112_4562", 1 - %"$maybeOperators_4565" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_112_call_4566" = call %TName_Bool* %"$$ud-registry.getIsOAO_112_fptr_4563"(i8* %"$$ud-registry.getIsOAO_112_envptr_4564", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4565"), !dbg !430 - store %TName_Bool* %"$$ud-registry.getIsOAO_112_call_4566", %TName_Bool** %"$ud-registry.getIsOAO_113", align 8, !dbg !430 - %"$$ud-registry.getIsOAO_113_4567" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_113", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_113_4567", %TName_Bool** %isSenderOAO, align 8, !dbg !430 - %"$gasrem_4568" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4569" = icmp ugt i64 2, %"$gasrem_4568" - br i1 %"$gascmp_4569", label %"$out_of_gas_4570", label %"$have_gas_4571" - -"$out_of_gas_4570": ; preds = %"$have_gas_4544" - call void @_out_of_gas() - br label %"$have_gas_4571" - -"$have_gas_4571": ; preds = %"$out_of_gas_4570", %"$have_gas_4544" - %"$consume_4572" = sub i64 %"$gasrem_4568", 2 - store i64 %"$consume_4572", i64* @_gasrem, align 8 - %"$isSenderOAO_4574" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_4575" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_4574", i32 0, i32 0 - %"$isSenderOAO_tag_4576" = load i8, i8* %"$isSenderOAO_tag_4575", align 1 - switch i8 %"$isSenderOAO_tag_4576", label %"$empty_default_4577" [ - i8 0, label %"$True_4578" - i8 1, label %"$False_4821" - ], !dbg !431 - -"$True_4578": ; preds = %"$have_gas_4571" - %"$isSenderOAO_4579" = bitcast %TName_Bool* %"$isSenderOAO_4574" to %CName_True* - %"$gasrem_4580" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4581" = icmp ugt i64 1, %"$gasrem_4580" - br i1 %"$gascmp_4581", label %"$out_of_gas_4582", label %"$have_gas_4583" - -"$out_of_gas_4582": ; preds = %"$True_4578" - call void @_out_of_gas() - br label %"$have_gas_4583" - -"$have_gas_4583": ; preds = %"$out_of_gas_4582", %"$True_4578" - %"$consume_4584" = sub i64 %"$gasrem_4580", 1 - store i64 %"$consume_4584", i64* @_gasrem, align 8 - %node = alloca [32 x i8], align 1 - %"$gasrem_4585" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4586" = icmp ugt i64 1, %"$gasrem_4585" - br i1 %"$gascmp_4586", label %"$out_of_gas_4587", label %"$have_gas_4588" - -"$out_of_gas_4587": ; preds = %"$have_gas_4583" - call void @_out_of_gas() - br label %"$have_gas_4588" - -"$have_gas_4588": ; preds = %"$out_of_gas_4587", %"$have_gas_4583" - %"$consume_4589" = sub i64 %"$gasrem_4585", 1 - store i64 %"$consume_4589", i64* @_gasrem, align 8 - %"$ud-registry.parentLabelToNode_106" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$ud-registry.parentLabelToNode_4590" = load { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.parentLabelToNode, align 8 - %"$ud-registry.parentLabelToNode_fptr_4591" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_4590", 0 - %"$ud-registry.parentLabelToNode_envptr_4592" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_4590", 1 - %"$ud-registry.parentLabelToNode_parent_4593" = alloca [32 x i8], align 1 - store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4593", align 1 - %"$ud-registry.parentLabelToNode_call_4594" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_4591"(i8* %"$ud-registry.parentLabelToNode_envptr_4592", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4593"), !dbg !432 - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_4594", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_106", align 8, !dbg !432 - %"$ud-registry.parentLabelToNode_107" = alloca [32 x i8], align 1 - %"$$ud-registry.parentLabelToNode_106_4595" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_106", align 8 - %"$$ud-registry.parentLabelToNode_106_fptr_4596" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_106_4595", 0 - %"$$ud-registry.parentLabelToNode_106_envptr_4597" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_106_4595", 1 - %"$$ud-registry.parentLabelToNode_106_retalloca_4598" = alloca [32 x i8], align 1 - call void %"$$ud-registry.parentLabelToNode_106_fptr_4596"(i8* %"$$ud-registry.parentLabelToNode_106_envptr_4597", [32 x i8]* %"$$ud-registry.parentLabelToNode_106_retalloca_4598", %String %label), !dbg !432 - %"$$ud-registry.parentLabelToNode_106_ret_4599" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_106_retalloca_4598", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_106_ret_4599", [32 x i8]* %"$ud-registry.parentLabelToNode_107", align 1, !dbg !432 - %"$$ud-registry.parentLabelToNode_107_4600" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_107", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_107_4600", [32 x i8]* %node, align 1, !dbg !432 - %recordExists = alloca %TName_Bool*, align 8 - %"$indices_buf_4601_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4601_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4601_salloc_load", i64 32) - %"$indices_buf_4601_salloc" = bitcast i8* %"$indices_buf_4601_salloc_salloc" to [32 x i8]* - %"$indices_buf_4601" = bitcast [32 x i8]* %"$indices_buf_4601_salloc" to i8* - %"$node_4602" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_4603" = getelementptr i8, i8* %"$indices_buf_4601", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_4603" to [32 x i8]* - store [32 x i8] %"$node_4602", [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_4605" = load i8*, i8** @_execptr, align 8 - %"$recordExists_call_4606" = call i8* @_fetch_field(i8* %"$execptr_load_4605", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4604", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4601", i32 0), !dbg !435 - %"$recordExists_4607" = bitcast i8* %"$recordExists_call_4606" to %TName_Bool* - store %TName_Bool* %"$recordExists_4607", %TName_Bool** %recordExists, align 8 - %"$recordExists_4608" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$$recordExists_4608_4609" = bitcast %TName_Bool* %"$recordExists_4608" to i8* - %"$_literal_cost_call_4610" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321", i8* %"$$recordExists_4608_4609") - %"$gasadd_4611" = add i64 %"$_literal_cost_call_4610", 0 - %"$gasadd_4612" = add i64 %"$gasadd_4611", 1 - %"$gasrem_4613" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4614" = icmp ugt i64 %"$gasadd_4612", %"$gasrem_4613" - br i1 %"$gascmp_4614", label %"$out_of_gas_4615", label %"$have_gas_4616" - -"$out_of_gas_4615": ; preds = %"$have_gas_4588" - call void @_out_of_gas() - br label %"$have_gas_4616" - -"$have_gas_4616": ; preds = %"$out_of_gas_4615", %"$have_gas_4588" - %"$consume_4617" = sub i64 %"$gasrem_4613", %"$gasadd_4612" - store i64 %"$consume_4617", i64* @_gasrem, align 8 - %"$gasrem_4618" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4619" = icmp ugt i64 2, %"$gasrem_4618" - br i1 %"$gascmp_4619", label %"$out_of_gas_4620", label %"$have_gas_4621" - -"$out_of_gas_4620": ; preds = %"$have_gas_4616" - call void @_out_of_gas() - br label %"$have_gas_4621" - -"$have_gas_4621": ; preds = %"$out_of_gas_4620", %"$have_gas_4616" - %"$consume_4622" = sub i64 %"$gasrem_4618", 2 - store i64 %"$consume_4622", i64* @_gasrem, align 8 - %"$recordExists_4624" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$recordExists_tag_4625" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_4624", i32 0, i32 0 - %"$recordExists_tag_4626" = load i8, i8* %"$recordExists_tag_4625", align 1 - switch i8 %"$recordExists_tag_4626", label %"$default_4627" [ - i8 1, label %"$False_4628" - ], !dbg !436 - -"$False_4628": ; preds = %"$have_gas_4621" - %"$recordExists_4629" = bitcast %TName_Bool* %"$recordExists_4624" to %CName_False* - %"$gasrem_4630" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4631" = icmp ugt i64 1, %"$gasrem_4630" - br i1 %"$gascmp_4631", label %"$out_of_gas_4632", label %"$have_gas_4633" - -"$out_of_gas_4632": ; preds = %"$False_4628" - call void @_out_of_gas() - br label %"$have_gas_4633" - -"$have_gas_4633": ; preds = %"$out_of_gas_4632", %"$False_4628" - %"$consume_4634" = sub i64 %"$gasrem_4630", 1 - store i64 %"$consume_4634", i64* @_gasrem, align 8 + %"$execptr_load_4546" = load i8*, i8** @_execptr, align 8 + %"$eq_recordOwner_4547" = alloca [20 x i8], align 1 + %"$recordOwner_4548" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_4548", [20 x i8]* %"$eq_recordOwner_4547", align 1 + %"$$eq_recordOwner_4547_4549" = bitcast [20 x i8]* %"$eq_recordOwner_4547" to i8* + %"$eq_currentRegistrar_4550" = alloca [20 x i8], align 1 + %"$currentRegistrar_4551" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_4551", [20 x i8]* %"$eq_currentRegistrar_4550", align 1 + %"$$eq_currentRegistrar_4550_4552" = bitcast [20 x i8]* %"$eq_currentRegistrar_4550" to i8* + %"$eq_call_4553" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4546", i32 20, i8* %"$$eq_recordOwner_4547_4549", i8* %"$$eq_currentRegistrar_4550_4552"), !dbg !437 + store %TName_Bool* %"$eq_call_4553", %TName_Bool** %recordIsOwnedByRegistrar, align 8, !dbg !437 + %"$gasrem_4555" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4556" = icmp ugt i64 1, %"$gasrem_4555" + br i1 %"$gascmp_4556", label %"$out_of_gas_4557", label %"$have_gas_4558" + +"$out_of_gas_4557": ; preds = %"$have_gas_4544" + call void @_out_of_gas() + br label %"$have_gas_4558" + +"$have_gas_4558": ; preds = %"$out_of_gas_4557", %"$have_gas_4544" + %"$consume_4559" = sub i64 %"$gasrem_4555", 1 + store i64 %"$consume_4559", i64* @_gasrem, align 8 + %isRegistrarSenderAndOwned = alloca %TName_Bool*, align 8 + %"$gasrem_4560" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4561" = icmp ugt i64 1, %"$gasrem_4560" + br i1 %"$gascmp_4561", label %"$out_of_gas_4562", label %"$have_gas_4563" + +"$out_of_gas_4562": ; preds = %"$have_gas_4558" + call void @_out_of_gas() + br label %"$have_gas_4563" + +"$have_gas_4563": ; preds = %"$out_of_gas_4562", %"$have_gas_4558" + %"$consume_4564" = sub i64 %"$gasrem_4560", 1 + store i64 %"$consume_4564", i64* @_gasrem, align 8 + %"$BoolUtils.andb_4565" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_4566" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4565", 0 + %"$BoolUtils.andb_envptr_4567" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4565", 1 + %"$recordIsOwnedByRegistrar_4568" = load %TName_Bool*, %TName_Bool** %recordIsOwnedByRegistrar, align 8 + %"$isSenderRegistrar_4569" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 + %"$BoolUtils.andb_call_4570" = call %TName_Bool* %"$BoolUtils.andb_fptr_4566"(i8* %"$BoolUtils.andb_envptr_4567", %TName_Bool* %"$recordIsOwnedByRegistrar_4568", %TName_Bool* %"$isSenderRegistrar_4569"), !dbg !438 + store %TName_Bool* %"$BoolUtils.andb_call_4570", %TName_Bool** %isRegistrarSenderAndOwned, align 8, !dbg !438 + %"$gasrem_4571" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4572" = icmp ugt i64 1, %"$gasrem_4571" + br i1 %"$gascmp_4572", label %"$out_of_gas_4573", label %"$have_gas_4574" + +"$out_of_gas_4573": ; preds = %"$have_gas_4563" + call void @_out_of_gas() + br label %"$have_gas_4574" + +"$have_gas_4574": ; preds = %"$out_of_gas_4573", %"$have_gas_4563" + %"$consume_4575" = sub i64 %"$gasrem_4571", 1 + store i64 %"$consume_4575", i64* @_gasrem, align 8 + %isOkRecordOwner = alloca %TName_Bool*, align 8 + %"$gasrem_4576" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4577" = icmp ugt i64 1, %"$gasrem_4576" + br i1 %"$gascmp_4577", label %"$out_of_gas_4578", label %"$have_gas_4579" + +"$out_of_gas_4578": ; preds = %"$have_gas_4574" + call void @_out_of_gas() + br label %"$have_gas_4579" + +"$have_gas_4579": ; preds = %"$out_of_gas_4578", %"$have_gas_4574" + %"$consume_4580" = sub i64 %"$gasrem_4576", 1 + store i64 %"$consume_4580", i64* @_gasrem, align 8 + %"$BoolUtils.orb_4581" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 + %"$BoolUtils.orb_fptr_4582" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_4581", 0 + %"$BoolUtils.orb_envptr_4583" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_4581", 1 + %"$recordIsUnowned_4584" = load %TName_Bool*, %TName_Bool** %recordIsUnowned, align 8 + %"$isRegistrarSenderAndOwned_4585" = load %TName_Bool*, %TName_Bool** %isRegistrarSenderAndOwned, align 8 + %"$BoolUtils.orb_call_4586" = call %TName_Bool* %"$BoolUtils.orb_fptr_4582"(i8* %"$BoolUtils.orb_envptr_4583", %TName_Bool* %"$recordIsUnowned_4584", %TName_Bool* %"$isRegistrarSenderAndOwned_4585"), !dbg !439 + store %TName_Bool* %"$BoolUtils.orb_call_4586", %TName_Bool** %isOkRecordOwner, align 8, !dbg !439 + %"$gasrem_4587" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4588" = icmp ugt i64 1, %"$gasrem_4587" + br i1 %"$gascmp_4588", label %"$out_of_gas_4589", label %"$have_gas_4590" + +"$out_of_gas_4589": ; preds = %"$have_gas_4579" + call void @_out_of_gas() + br label %"$have_gas_4590" + +"$have_gas_4590": ; preds = %"$out_of_gas_4589", %"$have_gas_4579" + %"$consume_4591" = sub i64 %"$gasrem_4587", 1 + store i64 %"$consume_4591", i64* @_gasrem, align 8 + %"$BoolUtils.andb_4592" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_4593" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4592", 0 + %"$BoolUtils.andb_envptr_4594" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4592", 1 + %"$isOkSender_4595" = load %TName_Bool*, %TName_Bool** %isOkSender, align 8 + %"$isOkRecordOwner_4596" = load %TName_Bool*, %TName_Bool** %isOkRecordOwner, align 8 + %"$BoolUtils.andb_call_4597" = call %TName_Bool* %"$BoolUtils.andb_fptr_4593"(i8* %"$BoolUtils.andb_envptr_4594", %TName_Bool* %"$isOkSender_4595", %TName_Bool* %"$isOkRecordOwner_4596"), !dbg !440 + store %TName_Bool* %"$BoolUtils.andb_call_4597", %TName_Bool** %isOk, align 8, !dbg !440 + %"$gasrem_4598" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4599" = icmp ugt i64 2, %"$gasrem_4598" + br i1 %"$gascmp_4599", label %"$out_of_gas_4600", label %"$have_gas_4601" + +"$out_of_gas_4600": ; preds = %"$have_gas_4590" + call void @_out_of_gas() + br label %"$have_gas_4601" + +"$have_gas_4601": ; preds = %"$out_of_gas_4600", %"$have_gas_4590" + %"$consume_4602" = sub i64 %"$gasrem_4598", 2 + store i64 %"$consume_4602", i64* @_gasrem, align 8 + %"$isOk_4604" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_4605" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_4604", i32 0, i32 0 + %"$isOk_tag_4606" = load i8, i8* %"$isOk_tag_4605", align 1 + switch i8 %"$isOk_tag_4606", label %"$empty_default_4607" [ + i8 0, label %"$True_4608" + i8 1, label %"$False_4707" + ], !dbg !441 + +"$True_4608": ; preds = %"$have_gas_4601" + %"$isOk_4609" = bitcast %TName_Bool* %"$isOk_4604" to %CName_True* + %"$gasrem_4610" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4611" = icmp ugt i64 2, %"$gasrem_4610" + br i1 %"$gascmp_4611", label %"$out_of_gas_4612", label %"$have_gas_4613" + +"$out_of_gas_4612": ; preds = %"$True_4608" + call void @_out_of_gas() + br label %"$have_gas_4613" + +"$have_gas_4613": ; preds = %"$out_of_gas_4612", %"$True_4608" + %"$consume_4614" = sub i64 %"$gasrem_4610", 2 + store i64 %"$consume_4614", i64* @_gasrem, align 8 + %"$recordExists_4616" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$recordExists_tag_4617" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_4616", i32 0, i32 0 + %"$recordExists_tag_4618" = load i8, i8* %"$recordExists_tag_4617", align 1 + switch i8 %"$recordExists_tag_4618", label %"$default_4619" [ + i8 1, label %"$False_4620" + ], !dbg !442 + +"$False_4620": ; preds = %"$have_gas_4613" + %"$recordExists_4621" = bitcast %TName_Bool* %"$recordExists_4616" to %CName_False* + %"$gasrem_4622" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4623" = icmp ugt i64 1, %"$gasrem_4622" + br i1 %"$gascmp_4623", label %"$out_of_gas_4624", label %"$have_gas_4625" + +"$out_of_gas_4624": ; preds = %"$False_4620" + call void @_out_of_gas() + br label %"$have_gas_4625" + +"$have_gas_4625": ; preds = %"$out_of_gas_4624", %"$False_4620" + %"$consume_4626" = sub i64 %"$gasrem_4622", 1 + store i64 %"$consume_4626", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_4635" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4636" = icmp ugt i64 1, %"$gasrem_4635" - br i1 %"$gascmp_4636", label %"$out_of_gas_4637", label %"$have_gas_4638" - -"$out_of_gas_4637": ; preds = %"$have_gas_4633" - call void @_out_of_gas() - br label %"$have_gas_4638" - -"$have_gas_4638": ; preds = %"$out_of_gas_4637", %"$have_gas_4633" - %"$consume_4639" = sub i64 %"$gasrem_4635", 1 - store i64 %"$consume_4639", i64* @_gasrem, align 8 - %"$ud-registry.eNewDomain_104" = alloca { i8* (i8*, %String)*, i8* }, align 8 - %"$ud-registry.eNewDomain_4640" = load { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eNewDomain, align 8 - %"$ud-registry.eNewDomain_fptr_4641" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_4640", 0 - %"$ud-registry.eNewDomain_envptr_4642" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_4640", 1 - %"$ud-registry.eNewDomain_parent_4643" = alloca [32 x i8], align 1 - store [32 x i8] %parent, [32 x i8]* %"$ud-registry.eNewDomain_parent_4643", align 1 - %"$ud-registry.eNewDomain_call_4644" = call { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_fptr_4641"(i8* %"$ud-registry.eNewDomain_envptr_4642", [32 x i8]* %"$ud-registry.eNewDomain_parent_4643"), !dbg !437 - store { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_call_4644", { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_104", align 8, !dbg !437 - %"$ud-registry.eNewDomain_105" = alloca i8*, align 8 - %"$$ud-registry.eNewDomain_104_4645" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_104", align 8 - %"$$ud-registry.eNewDomain_104_fptr_4646" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_104_4645", 0 - %"$$ud-registry.eNewDomain_104_envptr_4647" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_104_4645", 1 - %"$$ud-registry.eNewDomain_104_call_4648" = call i8* %"$$ud-registry.eNewDomain_104_fptr_4646"(i8* %"$$ud-registry.eNewDomain_104_envptr_4647", %String %label), !dbg !437 - store i8* %"$$ud-registry.eNewDomain_104_call_4648", i8** %"$ud-registry.eNewDomain_105", align 8, !dbg !437 - %"$$ud-registry.eNewDomain_105_4649" = load i8*, i8** %"$ud-registry.eNewDomain_105", align 8 - store i8* %"$$ud-registry.eNewDomain_105_4649", i8** %e, align 8, !dbg !437 - %"$e_4650" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_4652" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4650") - %"$gasrem_4653" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4654" = icmp ugt i64 %"$_literal_cost_call_4652", %"$gasrem_4653" - br i1 %"$gascmp_4654", label %"$out_of_gas_4655", label %"$have_gas_4656" - -"$out_of_gas_4655": ; preds = %"$have_gas_4638" - call void @_out_of_gas() - br label %"$have_gas_4656" - -"$have_gas_4656": ; preds = %"$out_of_gas_4655", %"$have_gas_4638" - %"$consume_4657" = sub i64 %"$gasrem_4653", %"$_literal_cost_call_4652" - store i64 %"$consume_4657", i64* @_gasrem, align 8 - %"$execptr_load_4658" = load i8*, i8** @_execptr, align 8 - %"$e_4659" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_4658", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4659"), !dbg !440 - br label %"$matchsucc_4623" - -"$default_4627": ; preds = %"$have_gas_4621" - br label %"$joinp_7" - -"$joinp_7": ; preds = %"$default_4627" - br label %"$matchsucc_4623" - -"$matchsucc_4623": ; preds = %"$have_gas_4656", %"$joinp_7" - %"$gasrem_4660" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4661" = icmp ugt i64 1, %"$gasrem_4660" - br i1 %"$gascmp_4661", label %"$out_of_gas_4662", label %"$have_gas_4663" - -"$out_of_gas_4662": ; preds = %"$matchsucc_4623" - call void @_out_of_gas() - br label %"$have_gas_4663" - -"$have_gas_4663": ; preds = %"$out_of_gas_4662", %"$matchsucc_4623" - %"$consume_4664" = sub i64 %"$gasrem_4660", 1 - store i64 %"$consume_4664", i64* @_gasrem, align 8 - %"$indices_buf_4665_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4665_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4665_salloc_load", i64 32) - %"$indices_buf_4665_salloc" = bitcast i8* %"$indices_buf_4665_salloc_salloc" to [32 x i8]* - %"$indices_buf_4665" = bitcast [32 x i8]* %"$indices_buf_4665_salloc" to i8* - %"$node_4666" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_4667" = getelementptr i8, i8* %"$indices_buf_4665", i32 0 - %indices_cast4 = bitcast i8* %"$indices_gep_4667" to [32 x i8]* - store [32 x i8] %"$node_4666", [32 x i8]* %indices_cast4, align 1 - %"$execptr_load_4668" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_4668", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4669", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_4665", i8* null), !dbg !441 - %"$gasrem_4670" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4671" = icmp ugt i64 1, %"$gasrem_4670" - br i1 %"$gascmp_4671", label %"$out_of_gas_4672", label %"$have_gas_4673" - -"$out_of_gas_4672": ; preds = %"$have_gas_4663" - call void @_out_of_gas() - br label %"$have_gas_4673" - -"$have_gas_4673": ; preds = %"$out_of_gas_4672", %"$have_gas_4663" - %"$consume_4674" = sub i64 %"$gasrem_4670", 1 - store i64 %"$consume_4674", i64* @_gasrem, align 8 - %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_4675" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4676" = icmp ugt i64 1, %"$gasrem_4675" - br i1 %"$gascmp_4676", label %"$out_of_gas_4677", label %"$have_gas_4678" - -"$out_of_gas_4677": ; preds = %"$have_gas_4673" - call void @_out_of_gas() - br label %"$have_gas_4678" - -"$have_gas_4678": ; preds = %"$out_of_gas_4677", %"$have_gas_4673" - %"$consume_4679" = sub i64 %"$gasrem_4675", 1 - store i64 %"$consume_4679", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_4680" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - %"$adtval_4681_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4681_salloc" = call i8* @_salloc(i8* %"$adtval_4681_load", i64 41) - %"$adtval_4681" = bitcast i8* %"$adtval_4681_salloc" to %CName_ud-registry.Record* - %"$adtgep_4682" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4681", i32 0, i32 0 - store i8 0, i8* %"$adtgep_4682", align 1 - %"$adtgep_4683" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4681", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_4683", align 1 - %"$adtgep_4684" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4681", i32 0, i32 2 - store [20 x i8] %"$ud-registry.zeroByStr20_4680", [20 x i8]* %"$adtgep_4684", align 1 - %"$adtptr_4685" = bitcast %CName_ud-registry.Record* %"$adtval_4681" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_4685", %TName_ud-registry.Record** %newRecord, align 8, !dbg !442 - %"$newRecord_4686" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_4686_4687" = bitcast %TName_ud-registry.Record* %"$newRecord_4686" to i8* - %"$_literal_cost_call_4688" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", i8* %"$$newRecord_4686_4687") - %"$gasadd_4689" = add i64 %"$_literal_cost_call_4688", 1 - %"$gasrem_4690" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4691" = icmp ugt i64 %"$gasadd_4689", %"$gasrem_4690" - br i1 %"$gascmp_4691", label %"$out_of_gas_4692", label %"$have_gas_4693" - -"$out_of_gas_4692": ; preds = %"$have_gas_4678" - call void @_out_of_gas() - br label %"$have_gas_4693" - -"$have_gas_4693": ; preds = %"$out_of_gas_4692", %"$have_gas_4678" - %"$consume_4694" = sub i64 %"$gasrem_4690", %"$gasadd_4689" - store i64 %"$consume_4694", i64* @_gasrem, align 8 - %"$indices_buf_4695_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4695_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4695_salloc_load", i64 32) - %"$indices_buf_4695_salloc" = bitcast i8* %"$indices_buf_4695_salloc_salloc" to [32 x i8]* - %"$indices_buf_4695" = bitcast [32 x i8]* %"$indices_buf_4695_salloc" to i8* - %"$node_4696" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_4697" = getelementptr i8, i8* %"$indices_buf_4695", i32 0 - %indices_cast5 = bitcast i8* %"$indices_gep_4697" to [32 x i8]* - store [32 x i8] %"$node_4696", [32 x i8]* %indices_cast5, align 1 - %"$execptr_load_4698" = load i8*, i8** @_execptr, align 8 - %"$newRecord_4700" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_4701" = bitcast %TName_ud-registry.Record* %"$newRecord_4700" to i8* - call void @_update_field(i8* %"$execptr_load_4698", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4699", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4695", i8* %"$update_value_4701"), !dbg !443 - %"$gasrem_4702" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4703" = icmp ugt i64 1, %"$gasrem_4702" - br i1 %"$gascmp_4703", label %"$out_of_gas_4704", label %"$have_gas_4705" - -"$out_of_gas_4704": ; preds = %"$have_gas_4693" - call void @_out_of_gas() - br label %"$have_gas_4705" - -"$have_gas_4705": ; preds = %"$out_of_gas_4704", %"$have_gas_4693" - %"$consume_4706" = sub i64 %"$gasrem_4702", 1 - store i64 %"$consume_4706", i64* @_gasrem, align 8 - %e6 = alloca i8*, align 8 - %"$gasrem_4707" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4708" = icmp ugt i64 1, %"$gasrem_4707" - br i1 %"$gascmp_4708", label %"$out_of_gas_4709", label %"$have_gas_4710" - -"$out_of_gas_4709": ; preds = %"$have_gas_4705" - call void @_out_of_gas() - br label %"$have_gas_4710" - -"$have_gas_4710": ; preds = %"$out_of_gas_4709", %"$have_gas_4705" - %"$consume_4711" = sub i64 %"$gasrem_4707", 1 - store i64 %"$consume_4711", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_101" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_4712" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_4713" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_4712", 0 - %"$ud-registry.eConfigured_envptr_4714" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_4712", 1 - %"$ud-registry.eConfigured_node_4715" = alloca [32 x i8], align 1 - %"$node_4716" = load [32 x i8], [32 x i8]* %node, align 1 - store [32 x i8] %"$node_4716", [32 x i8]* %"$ud-registry.eConfigured_node_4715", align 1 - %"$ud-registry.eConfigured_call_4717" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_4713"(i8* %"$ud-registry.eConfigured_envptr_4714", [32 x i8]* %"$ud-registry.eConfigured_node_4715"), !dbg !444 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_4717", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_101", align 8, !dbg !444 - %"$ud-registry.eConfigured_102" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_101_4718" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_101", align 8 - %"$$ud-registry.eConfigured_101_fptr_4719" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_101_4718", 0 - %"$$ud-registry.eConfigured_101_envptr_4720" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_101_4718", 1 - %"$$ud-registry.eConfigured_101_owner_4721" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_101_owner_4721", align 1 - %"$$ud-registry.eConfigured_101_call_4722" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_101_fptr_4719"(i8* %"$$ud-registry.eConfigured_101_envptr_4720", [20 x i8]* %"$$ud-registry.eConfigured_101_owner_4721"), !dbg !444 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_101_call_4722", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_102", align 8, !dbg !444 - %"$ud-registry.eConfigured_103" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_102_4723" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_102", align 8 - %"$$ud-registry.eConfigured_102_fptr_4724" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_102_4723", 0 - %"$$ud-registry.eConfigured_102_envptr_4725" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_102_4723", 1 - %"$$ud-registry.eConfigured_102_ud-registry.zeroByStr20_4726" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_4727" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_4727", [20 x i8]* %"$$ud-registry.eConfigured_102_ud-registry.zeroByStr20_4726", align 1 - %"$$ud-registry.eConfigured_102_call_4728" = call i8* %"$$ud-registry.eConfigured_102_fptr_4724"(i8* %"$$ud-registry.eConfigured_102_envptr_4725", [20 x i8]* %"$$ud-registry.eConfigured_102_ud-registry.zeroByStr20_4726"), !dbg !444 - store i8* %"$$ud-registry.eConfigured_102_call_4728", i8** %"$ud-registry.eConfigured_103", align 8, !dbg !444 - %"$$ud-registry.eConfigured_103_4729" = load i8*, i8** %"$ud-registry.eConfigured_103", align 8 - store i8* %"$$ud-registry.eConfigured_103_4729", i8** %e6, align 8, !dbg !444 - %"$e_4730" = load i8*, i8** %e6, align 8 - %"$_literal_cost_call_4732" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4730") - %"$gasrem_4733" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4734" = icmp ugt i64 %"$_literal_cost_call_4732", %"$gasrem_4733" - br i1 %"$gascmp_4734", label %"$out_of_gas_4735", label %"$have_gas_4736" - -"$out_of_gas_4735": ; preds = %"$have_gas_4710" - call void @_out_of_gas() - br label %"$have_gas_4736" - -"$have_gas_4736": ; preds = %"$out_of_gas_4735", %"$have_gas_4710" - %"$consume_4737" = sub i64 %"$gasrem_4733", %"$_literal_cost_call_4732" - store i64 %"$consume_4737", i64* @_gasrem, align 8 - %"$execptr_load_4738" = load i8*, i8** @_execptr, align 8 - %"$e_4739" = load i8*, i8** %e6, align 8 - call void @_event(i8* %"$execptr_load_4738", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4739"), !dbg !445 - %"$gasrem_4740" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4741" = icmp ugt i64 1, %"$gasrem_4740" - br i1 %"$gascmp_4741", label %"$out_of_gas_4742", label %"$have_gas_4743" - -"$out_of_gas_4742": ; preds = %"$have_gas_4736" - call void @_out_of_gas() - br label %"$have_gas_4743" - -"$have_gas_4743": ; preds = %"$out_of_gas_4742", %"$have_gas_4736" - %"$consume_4744" = sub i64 %"$gasrem_4740", 1 - store i64 %"$consume_4744", i64* @_gasrem, align 8 - %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_4745" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4746" = icmp ugt i64 1, %"$gasrem_4745" - br i1 %"$gascmp_4746", label %"$out_of_gas_4747", label %"$have_gas_4748" - -"$out_of_gas_4747": ; preds = %"$have_gas_4743" - call void @_out_of_gas() - br label %"$have_gas_4748" - -"$have_gas_4748": ; preds = %"$out_of_gas_4747", %"$have_gas_4743" - %"$consume_4749" = sub i64 %"$gasrem_4745", 1 - store i64 %"$consume_4749", i64* @_gasrem, align 8 - %m = alloca i8*, align 8 - %"$gasrem_4750" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4751" = icmp ugt i64 1, %"$gasrem_4750" - br i1 %"$gascmp_4751", label %"$out_of_gas_4752", label %"$have_gas_4753" - -"$out_of_gas_4752": ; preds = %"$have_gas_4748" - call void @_out_of_gas() - br label %"$have_gas_4753" - -"$have_gas_4753": ; preds = %"$out_of_gas_4752", %"$have_gas_4748" - %"$consume_4754" = sub i64 %"$gasrem_4750", 1 - store i64 %"$consume_4754", i64* @_gasrem, align 8 - %"$msgobj_4755_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_4755_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4755_salloc_load", i64 265) - %"$msgobj_4755_salloc" = bitcast i8* %"$msgobj_4755_salloc_salloc" to [265 x i8]* - %"$msgobj_4755" = bitcast [265 x i8]* %"$msgobj_4755_salloc" to i8* - store i8 6, i8* %"$msgobj_4755", align 1 - %"$msgobj_fname_4757" = getelementptr i8, i8* %"$msgobj_4755", i32 1 - %"$msgobj_fname_4758" = bitcast i8* %"$msgobj_fname_4757" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4756", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4758", align 8 - %"$msgobj_td_4759" = getelementptr i8, i8* %"$msgobj_4755", i32 17 - %"$msgobj_td_4760" = bitcast i8* %"$msgobj_td_4759" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4760", align 8 - %"$msgobj_v_4762" = getelementptr i8, i8* %"$msgobj_4755", i32 25 - %"$msgobj_v_4763" = bitcast i8* %"$msgobj_v_4762" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_4761", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_4763", align 8 - %"$msgobj_fname_4765" = getelementptr i8, i8* %"$msgobj_4755", i32 41 - %"$msgobj_fname_4766" = bitcast i8* %"$msgobj_fname_4765" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_4764", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_4766", align 8 - %"$msgobj_td_4767" = getelementptr i8, i8* %"$msgobj_4755", i32 57 - %"$msgobj_td_4768" = bitcast i8* %"$msgobj_td_4767" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_4768", align 8 - %"$msgobj_v_4769" = getelementptr i8, i8* %"$msgobj_4755", i32 65 - %"$msgobj_v_4770" = bitcast i8* %"$msgobj_v_4769" to [32 x i8]* - store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_4770", align 1 - %"$msgobj_fname_4772" = getelementptr i8, i8* %"$msgobj_4755", i32 97 - %"$msgobj_fname_4773" = bitcast i8* %"$msgobj_fname_4772" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4771", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4773", align 8 - %"$msgobj_td_4774" = getelementptr i8, i8* %"$msgobj_4755", i32 113 - %"$msgobj_td_4775" = bitcast i8* %"$msgobj_td_4774" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4775", align 8 - %"$msgobj_v_4776" = getelementptr i8, i8* %"$msgobj_4755", i32 121 - %"$msgobj_v_4777" = bitcast i8* %"$msgobj_v_4776" to %String* - store %String %label, %String* %"$msgobj_v_4777", align 8 - %"$msgobj_fname_4779" = getelementptr i8, i8* %"$msgobj_4755", i32 137 - %"$msgobj_fname_4780" = bitcast i8* %"$msgobj_fname_4779" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4778", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4780", align 8 - %"$msgobj_td_4781" = getelementptr i8, i8* %"$msgobj_4755", i32 153 - %"$msgobj_td_4782" = bitcast i8* %"$msgobj_td_4781" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4782", align 8 - %"$msgobj_v_4783" = getelementptr i8, i8* %"$msgobj_4755", i32 161 - %"$msgobj_v_4784" = bitcast i8* %"$msgobj_v_4783" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_4784", align 1 - %"$msgobj_fname_4786" = getelementptr i8, i8* %"$msgobj_4755", i32 181 - %"$msgobj_fname_4787" = bitcast i8* %"$msgobj_fname_4786" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4785", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4787", align 8 - %"$msgobj_td_4788" = getelementptr i8, i8* %"$msgobj_4755", i32 197 - %"$msgobj_td_4789" = bitcast i8* %"$msgobj_td_4788" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_4789", align 8 - %"$msgobj_v_4790" = getelementptr i8, i8* %"$msgobj_4755", i32 205 - %"$msgobj_v_4791" = bitcast i8* %"$msgobj_v_4790" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4791", align 8 - %"$msgobj_fname_4793" = getelementptr i8, i8* %"$msgobj_4755", i32 221 - %"$msgobj_fname_4794" = bitcast i8* %"$msgobj_fname_4793" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4792", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4794", align 8 - %"$msgobj_td_4795" = getelementptr i8, i8* %"$msgobj_4755", i32 237 - %"$msgobj_td_4796" = bitcast i8* %"$msgobj_td_4795" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4796", align 8 - %"$msgobj_v_4797" = getelementptr i8, i8* %"$msgobj_4755", i32 245 - %"$msgobj_v_4798" = bitcast i8* %"$msgobj_v_4797" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4798", align 1 - store i8* %"$msgobj_4755", i8** %m, align 8, !dbg !446 - %"$gasrem_4800" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4801" = icmp ugt i64 1, %"$gasrem_4800" - br i1 %"$gascmp_4801", label %"$out_of_gas_4802", label %"$have_gas_4803" - -"$out_of_gas_4802": ; preds = %"$have_gas_4753" - call void @_out_of_gas() - br label %"$have_gas_4803" - -"$have_gas_4803": ; preds = %"$out_of_gas_4802", %"$have_gas_4753" - %"$consume_4804" = sub i64 %"$gasrem_4800", 1 - store i64 %"$consume_4804", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_100" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_4805" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_4806" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4805", 0 - %"$ud-registry.oneMsg_envptr_4807" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4805", 1 - %"$m_4808" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_4809" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4806"(i8* %"$ud-registry.oneMsg_envptr_4807", i8* %"$m_4808"), !dbg !447 - store %TName_List_Message* %"$ud-registry.oneMsg_call_4809", %TName_List_Message** %"$ud-registry.oneMsg_100", align 8, !dbg !447 - %"$$ud-registry.oneMsg_100_4810" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_100", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_100_4810", %TName_List_Message** %msgs, align 8, !dbg !447 - %"$msgs_4811" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_4811_4812" = bitcast %TName_List_Message* %"$msgs_4811" to i8* - %"$_literal_cost_call_4813" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_4811_4812") - %"$gasrem_4814" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4815" = icmp ugt i64 %"$_literal_cost_call_4813", %"$gasrem_4814" - br i1 %"$gascmp_4815", label %"$out_of_gas_4816", label %"$have_gas_4817" - -"$out_of_gas_4816": ; preds = %"$have_gas_4803" - call void @_out_of_gas() - br label %"$have_gas_4817" - -"$have_gas_4817": ; preds = %"$out_of_gas_4816", %"$have_gas_4803" - %"$consume_4818" = sub i64 %"$gasrem_4814", %"$_literal_cost_call_4813" - store i64 %"$consume_4818", i64* @_gasrem, align 8 - %"$execptr_load_4819" = load i8*, i8** @_execptr, align 8 - %"$msgs_4820" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_4819", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_4820"), !dbg !448 - br label %"$matchsucc_4573" - -"$False_4821": ; preds = %"$have_gas_4571" - %"$isSenderOAO_4822" = bitcast %TName_Bool* %"$isSenderOAO_4574" to %CName_False* - %"$gasrem_4823" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4824" = icmp ugt i64 1, %"$gasrem_4823" - br i1 %"$gascmp_4824", label %"$out_of_gas_4825", label %"$have_gas_4826" - -"$out_of_gas_4825": ; preds = %"$False_4821" - call void @_out_of_gas() - br label %"$have_gas_4826" - -"$have_gas_4826": ; preds = %"$out_of_gas_4825", %"$False_4821" - %"$consume_4827" = sub i64 %"$gasrem_4823", 1 - store i64 %"$consume_4827", i64* @_gasrem, align 8 - %e7 = alloca i8*, align 8 - %"$gasrem_4828" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4829" = icmp ugt i64 1, %"$gasrem_4828" - br i1 %"$gascmp_4829", label %"$out_of_gas_4830", label %"$have_gas_4831" + %"$gasrem_4627" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4628" = icmp ugt i64 1, %"$gasrem_4627" + br i1 %"$gascmp_4628", label %"$out_of_gas_4629", label %"$have_gas_4630" + +"$out_of_gas_4629": ; preds = %"$have_gas_4625" + call void @_out_of_gas() + br label %"$have_gas_4630" + +"$have_gas_4630": ; preds = %"$out_of_gas_4629", %"$have_gas_4625" + %"$consume_4631" = sub i64 %"$gasrem_4627", 1 + store i64 %"$consume_4631", i64* @_gasrem, align 8 + %"$ud-registry.eNewDomain_4632" = load { i8* (i8*, [32 x i8]*, %String)*, i8* }, { i8* (i8*, [32 x i8]*, %String)*, i8* }* @ud-registry.eNewDomain, align 8 + %"$ud-registry.eNewDomain_fptr_4633" = extractvalue { i8* (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.eNewDomain_4632", 0 + %"$ud-registry.eNewDomain_envptr_4634" = extractvalue { i8* (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.eNewDomain_4632", 1 + %"$ud-registry.eNewDomain_rootNode_4635" = alloca [32 x i8], align 1 + %"$rootNode_4636" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 + store [32 x i8] %"$rootNode_4636", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_4635", align 1 + %"$ud-registry.eNewDomain_call_4637" = call i8* %"$ud-registry.eNewDomain_fptr_4633"(i8* %"$ud-registry.eNewDomain_envptr_4634", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_4635", %String %label), !dbg !445 + store i8* %"$ud-registry.eNewDomain_call_4637", i8** %e, align 8, !dbg !445 + %"$e_4638" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_4640" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4638") + %"$gasrem_4641" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4642" = icmp ugt i64 %"$_literal_cost_call_4640", %"$gasrem_4641" + br i1 %"$gascmp_4642", label %"$out_of_gas_4643", label %"$have_gas_4644" + +"$out_of_gas_4643": ; preds = %"$have_gas_4630" + call void @_out_of_gas() + br label %"$have_gas_4644" + +"$have_gas_4644": ; preds = %"$out_of_gas_4643", %"$have_gas_4630" + %"$consume_4645" = sub i64 %"$gasrem_4641", %"$_literal_cost_call_4640" + store i64 %"$consume_4645", i64* @_gasrem, align 8 + %"$execptr_load_4646" = load i8*, i8** @_execptr, align 8 + %"$e_4647" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_4646", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4647"), !dbg !448 + br label %"$matchsucc_4615" + +"$default_4619": ; preds = %"$have_gas_4613" + br label %"$joinp_8" -"$out_of_gas_4830": ; preds = %"$have_gas_4826" - call void @_out_of_gas() - br label %"$have_gas_4831" +"$joinp_8": ; preds = %"$default_4619" + br label %"$matchsucc_4615" -"$have_gas_4831": ; preds = %"$out_of_gas_4830", %"$have_gas_4826" - %"$consume_4832" = sub i64 %"$gasrem_4828", 1 - store i64 %"$consume_4832", i64* @_gasrem, align 8 - %m8 = alloca %String, align 8 - %"$gasrem_4833" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4834" = icmp ugt i64 1, %"$gasrem_4833" - br i1 %"$gascmp_4834", label %"$out_of_gas_4835", label %"$have_gas_4836" +"$matchsucc_4615": ; preds = %"$have_gas_4644", %"$joinp_8" + %"$gasrem_4648" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4649" = icmp ugt i64 1, %"$gasrem_4648" + br i1 %"$gascmp_4649", label %"$out_of_gas_4650", label %"$have_gas_4651" -"$out_of_gas_4835": ; preds = %"$have_gas_4831" +"$out_of_gas_4650": ; preds = %"$matchsucc_4615" call void @_out_of_gas() - br label %"$have_gas_4836" + br label %"$have_gas_4651" -"$have_gas_4836": ; preds = %"$out_of_gas_4835", %"$have_gas_4831" - %"$consume_4837" = sub i64 %"$gasrem_4833", 1 - store i64 %"$consume_4837", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @"$stringlit_4838", i32 0, i32 0), i32 45 }, %String* %m8, align 8, !dbg !449 - %"$gasrem_4839" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4840" = icmp ugt i64 1, %"$gasrem_4839" - br i1 %"$gascmp_4840", label %"$out_of_gas_4841", label %"$have_gas_4842" - -"$out_of_gas_4841": ; preds = %"$have_gas_4836" - call void @_out_of_gas() - br label %"$have_gas_4842" - -"$have_gas_4842": ; preds = %"$out_of_gas_4841", %"$have_gas_4836" - %"$consume_4843" = sub i64 %"$gasrem_4839", 1 - store i64 %"$consume_4843", i64* @_gasrem, align 8 - %"$ud-registry.eError_109" = alloca i8*, align 8 - %"$ud-registry.eError_4844" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_4845" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4844", 0 - %"$ud-registry.eError_envptr_4846" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4844", 1 - %"$m_4847" = load %String, %String* %m8, align 8 - %"$ud-registry.eError_call_4848" = call i8* %"$ud-registry.eError_fptr_4845"(i8* %"$ud-registry.eError_envptr_4846", %String %"$m_4847"), !dbg !451 - store i8* %"$ud-registry.eError_call_4848", i8** %"$ud-registry.eError_109", align 8, !dbg !451 - %"$$ud-registry.eError_109_4849" = load i8*, i8** %"$ud-registry.eError_109", align 8 - store i8* %"$$ud-registry.eError_109_4849", i8** %e7, align 8, !dbg !451 - %"$e_4850" = load i8*, i8** %e7, align 8 - %"$_literal_cost_call_4852" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4850") - %"$gasrem_4853" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4854" = icmp ugt i64 %"$_literal_cost_call_4852", %"$gasrem_4853" - br i1 %"$gascmp_4854", label %"$out_of_gas_4855", label %"$have_gas_4856" - -"$out_of_gas_4855": ; preds = %"$have_gas_4842" - call void @_out_of_gas() - br label %"$have_gas_4856" - -"$have_gas_4856": ; preds = %"$out_of_gas_4855", %"$have_gas_4842" - %"$consume_4857" = sub i64 %"$gasrem_4853", %"$_literal_cost_call_4852" - store i64 %"$consume_4857", i64* @_gasrem, align 8 - %"$execptr_load_4858" = load i8*, i8** @_execptr, align 8 - %"$e_4859" = load i8*, i8** %e7, align 8 - call void @_event(i8* %"$execptr_load_4858", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4859"), !dbg !452 - %"$gasrem_4860" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4861" = icmp ugt i64 1, %"$gasrem_4860" - br i1 %"$gascmp_4861", label %"$out_of_gas_4862", label %"$have_gas_4863" +"$have_gas_4651": ; preds = %"$out_of_gas_4650", %"$matchsucc_4615" + %"$consume_4652" = sub i64 %"$gasrem_4648", 1 + store i64 %"$consume_4652", i64* @_gasrem, align 8 + %newRecord = alloca %TName_ud-registry.Record*, align 8 + %"$gasrem_4653" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4654" = icmp ugt i64 1, %"$gasrem_4653" + br i1 %"$gascmp_4654", label %"$out_of_gas_4655", label %"$have_gas_4656" -"$out_of_gas_4862": ; preds = %"$have_gas_4856" +"$out_of_gas_4655": ; preds = %"$have_gas_4651" call void @_out_of_gas() - br label %"$have_gas_4863" + br label %"$have_gas_4656" -"$have_gas_4863": ; preds = %"$out_of_gas_4862", %"$have_gas_4856" - %"$consume_4864" = sub i64 %"$gasrem_4860", 1 - store i64 %"$consume_4864", i64* @_gasrem, align 8 - %msgs9 = alloca %TName_List_Message*, align 8 - %"$gasrem_4865" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4866" = icmp ugt i64 1, %"$gasrem_4865" - br i1 %"$gascmp_4866", label %"$out_of_gas_4867", label %"$have_gas_4868" +"$have_gas_4656": ; preds = %"$out_of_gas_4655", %"$have_gas_4651" + %"$consume_4657" = sub i64 %"$gasrem_4653", 1 + store i64 %"$consume_4657", i64* @_gasrem, align 8 + %"$adtval_4658_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4658_salloc" = call i8* @_salloc(i8* %"$adtval_4658_load", i64 41) + %"$adtval_4658" = bitcast i8* %"$adtval_4658_salloc" to %CName_ud-registry.Record* + %"$adtgep_4659" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4658", i32 0, i32 0 + store i8 0, i8* %"$adtgep_4659", align 1 + %"$adtgep_4660" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4658", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_4660", align 1 + %"$adtgep_4661" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4658", i32 0, i32 2 + store [20 x i8] %resolver, [20 x i8]* %"$adtgep_4661", align 1 + %"$adtptr_4662" = bitcast %CName_ud-registry.Record* %"$adtval_4658" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_4662", %TName_ud-registry.Record** %newRecord, align 8, !dbg !449 + %"$newRecord_4663" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_4663_4664" = bitcast %TName_ud-registry.Record* %"$newRecord_4663" to i8* + %"$_literal_cost_call_4665" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", i8* %"$$newRecord_4663_4664") + %"$gasadd_4666" = add i64 %"$_literal_cost_call_4665", 1 + %"$gasrem_4667" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4668" = icmp ugt i64 %"$gasadd_4666", %"$gasrem_4667" + br i1 %"$gascmp_4668", label %"$out_of_gas_4669", label %"$have_gas_4670" + +"$out_of_gas_4669": ; preds = %"$have_gas_4656" + call void @_out_of_gas() + br label %"$have_gas_4670" + +"$have_gas_4670": ; preds = %"$out_of_gas_4669", %"$have_gas_4656" + %"$consume_4671" = sub i64 %"$gasrem_4667", %"$gasadd_4666" + store i64 %"$consume_4671", i64* @_gasrem, align 8 + %"$indices_buf_4672_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4672_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4672_salloc_load", i64 32) + %"$indices_buf_4672_salloc" = bitcast i8* %"$indices_buf_4672_salloc_salloc" to [32 x i8]* + %"$indices_buf_4672" = bitcast [32 x i8]* %"$indices_buf_4672_salloc" to i8* + %"$node_4673" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4674" = getelementptr i8, i8* %"$indices_buf_4672", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_4674" to [32 x i8]* + store [32 x i8] %"$node_4673", [32 x i8]* %indices_cast2, align 1 + %"$execptr_load_4675" = load i8*, i8** @_execptr, align 8 + %"$newRecord_4677" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_4678" = bitcast %TName_ud-registry.Record* %"$newRecord_4677" to i8* + call void @_update_field(i8* %"$execptr_load_4675", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4676", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4672", i8* %"$update_value_4678"), !dbg !450 + %"$gasrem_4679" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4680" = icmp ugt i64 1, %"$gasrem_4679" + br i1 %"$gascmp_4680", label %"$out_of_gas_4681", label %"$have_gas_4682" + +"$out_of_gas_4681": ; preds = %"$have_gas_4670" + call void @_out_of_gas() + br label %"$have_gas_4682" + +"$have_gas_4682": ; preds = %"$out_of_gas_4681", %"$have_gas_4670" + %"$consume_4683" = sub i64 %"$gasrem_4679", 1 + store i64 %"$consume_4683", i64* @_gasrem, align 8 + %e3 = alloca i8*, align 8 + %"$gasrem_4684" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4685" = icmp ugt i64 1, %"$gasrem_4684" + br i1 %"$gascmp_4685", label %"$out_of_gas_4686", label %"$have_gas_4687" + +"$out_of_gas_4686": ; preds = %"$have_gas_4682" + call void @_out_of_gas() + br label %"$have_gas_4687" + +"$have_gas_4687": ; preds = %"$out_of_gas_4686", %"$have_gas_4682" + %"$consume_4688" = sub i64 %"$gasrem_4684", 1 + store i64 %"$consume_4688", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_4689" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_4690" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_4689", 0 + %"$ud-registry.eConfigured_envptr_4691" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_4689", 1 + %"$ud-registry.eConfigured_node_4692" = alloca [32 x i8], align 1 + %"$node_4693" = load [32 x i8], [32 x i8]* %node, align 1 + store [32 x i8] %"$node_4693", [32 x i8]* %"$ud-registry.eConfigured_node_4692", align 1 + %"$ud-registry.eConfigured_owner_4694" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$ud-registry.eConfigured_owner_4694", align 1 + %"$ud-registry.eConfigured_resolver_4695" = alloca [20 x i8], align 1 + store [20 x i8] %resolver, [20 x i8]* %"$ud-registry.eConfigured_resolver_4695", align 1 + %"$ud-registry.eConfigured_call_4696" = call i8* %"$ud-registry.eConfigured_fptr_4690"(i8* %"$ud-registry.eConfigured_envptr_4691", [32 x i8]* %"$ud-registry.eConfigured_node_4692", [20 x i8]* %"$ud-registry.eConfigured_owner_4694", [20 x i8]* %"$ud-registry.eConfigured_resolver_4695"), !dbg !451 + store i8* %"$ud-registry.eConfigured_call_4696", i8** %e3, align 8, !dbg !451 + %"$e_4697" = load i8*, i8** %e3, align 8 + %"$_literal_cost_call_4699" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4697") + %"$gasrem_4700" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4701" = icmp ugt i64 %"$_literal_cost_call_4699", %"$gasrem_4700" + br i1 %"$gascmp_4701", label %"$out_of_gas_4702", label %"$have_gas_4703" + +"$out_of_gas_4702": ; preds = %"$have_gas_4687" + call void @_out_of_gas() + br label %"$have_gas_4703" + +"$have_gas_4703": ; preds = %"$out_of_gas_4702", %"$have_gas_4687" + %"$consume_4704" = sub i64 %"$gasrem_4700", %"$_literal_cost_call_4699" + store i64 %"$consume_4704", i64* @_gasrem, align 8 + %"$execptr_load_4705" = load i8*, i8** @_execptr, align 8 + %"$e_4706" = load i8*, i8** %e3, align 8 + call void @_event(i8* %"$execptr_load_4705", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4706"), !dbg !452 + br label %"$matchsucc_4603" + +"$False_4707": ; preds = %"$have_gas_4601" + %"$isOk_4708" = bitcast %TName_Bool* %"$isOk_4604" to %CName_False* + %"$gasrem_4709" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4710" = icmp ugt i64 1, %"$gasrem_4709" + br i1 %"$gascmp_4710", label %"$out_of_gas_4711", label %"$have_gas_4712" + +"$out_of_gas_4711": ; preds = %"$False_4707" + call void @_out_of_gas() + br label %"$have_gas_4712" + +"$have_gas_4712": ; preds = %"$out_of_gas_4711", %"$False_4707" + %"$consume_4713" = sub i64 %"$gasrem_4709", 1 + store i64 %"$consume_4713", i64* @_gasrem, align 8 + %e4 = alloca i8*, align 8 + %"$gasrem_4714" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4715" = icmp ugt i64 1, %"$gasrem_4714" + br i1 %"$gascmp_4715", label %"$out_of_gas_4716", label %"$have_gas_4717" -"$out_of_gas_4867": ; preds = %"$have_gas_4863" +"$out_of_gas_4716": ; preds = %"$have_gas_4712" call void @_out_of_gas() - br label %"$have_gas_4868" + br label %"$have_gas_4717" -"$have_gas_4868": ; preds = %"$out_of_gas_4867", %"$have_gas_4863" - %"$consume_4869" = sub i64 %"$gasrem_4865", 1 - store i64 %"$consume_4869", i64* @_gasrem, align 8 - %"$m_2" = alloca i8*, align 8 - %"$gasrem_4870" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4871" = icmp ugt i64 1, %"$gasrem_4870" - br i1 %"$gascmp_4871", label %"$out_of_gas_4872", label %"$have_gas_4873" - -"$out_of_gas_4872": ; preds = %"$have_gas_4868" - call void @_out_of_gas() - br label %"$have_gas_4873" - -"$have_gas_4873": ; preds = %"$out_of_gas_4872", %"$have_gas_4868" - %"$consume_4874" = sub i64 %"$gasrem_4870", 1 - store i64 %"$consume_4874", i64* @_gasrem, align 8 - %"$msgobj_4875_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_4875_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4875_salloc_load", i64 265) - %"$msgobj_4875_salloc" = bitcast i8* %"$msgobj_4875_salloc_salloc" to [265 x i8]* - %"$msgobj_4875" = bitcast [265 x i8]* %"$msgobj_4875_salloc" to i8* - store i8 6, i8* %"$msgobj_4875", align 1 - %"$msgobj_fname_4877" = getelementptr i8, i8* %"$msgobj_4875", i32 1 - %"$msgobj_fname_4878" = bitcast i8* %"$msgobj_fname_4877" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4876", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4878", align 8 - %"$msgobj_td_4879" = getelementptr i8, i8* %"$msgobj_4875", i32 17 - %"$msgobj_td_4880" = bitcast i8* %"$msgobj_td_4879" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4880", align 8 - %"$msgobj_v_4882" = getelementptr i8, i8* %"$msgobj_4875", i32 25 - %"$msgobj_v_4883" = bitcast i8* %"$msgobj_v_4882" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_4881", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_4883", align 8 - %"$msgobj_fname_4885" = getelementptr i8, i8* %"$msgobj_4875", i32 41 - %"$msgobj_fname_4886" = bitcast i8* %"$msgobj_fname_4885" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_4884", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_4886", align 8 - %"$msgobj_td_4887" = getelementptr i8, i8* %"$msgobj_4875", i32 57 - %"$msgobj_td_4888" = bitcast i8* %"$msgobj_td_4887" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_4888", align 8 - %"$msgobj_v_4889" = getelementptr i8, i8* %"$msgobj_4875", i32 65 - %"$msgobj_v_4890" = bitcast i8* %"$msgobj_v_4889" to [32 x i8]* - store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_4890", align 1 - %"$msgobj_fname_4892" = getelementptr i8, i8* %"$msgobj_4875", i32 97 - %"$msgobj_fname_4893" = bitcast i8* %"$msgobj_fname_4892" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4891", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4893", align 8 - %"$msgobj_td_4894" = getelementptr i8, i8* %"$msgobj_4875", i32 113 - %"$msgobj_td_4895" = bitcast i8* %"$msgobj_td_4894" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4895", align 8 - %"$msgobj_v_4896" = getelementptr i8, i8* %"$msgobj_4875", i32 121 - %"$msgobj_v_4897" = bitcast i8* %"$msgobj_v_4896" to %String* - store %String %label, %String* %"$msgobj_v_4897", align 8 - %"$msgobj_fname_4899" = getelementptr i8, i8* %"$msgobj_4875", i32 137 - %"$msgobj_fname_4900" = bitcast i8* %"$msgobj_fname_4899" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4898", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4900", align 8 - %"$msgobj_td_4901" = getelementptr i8, i8* %"$msgobj_4875", i32 153 - %"$msgobj_td_4902" = bitcast i8* %"$msgobj_td_4901" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4902", align 8 - %"$recordOwner_4903" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$msgobj_v_4904" = getelementptr i8, i8* %"$msgobj_4875", i32 161 - %"$msgobj_v_4905" = bitcast i8* %"$msgobj_v_4904" to [20 x i8]* - store [20 x i8] %"$recordOwner_4903", [20 x i8]* %"$msgobj_v_4905", align 1 - %"$msgobj_fname_4907" = getelementptr i8, i8* %"$msgobj_4875", i32 181 - %"$msgobj_fname_4908" = bitcast i8* %"$msgobj_fname_4907" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4906", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4908", align 8 - %"$msgobj_td_4909" = getelementptr i8, i8* %"$msgobj_4875", i32 197 - %"$msgobj_td_4910" = bitcast i8* %"$msgobj_td_4909" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_4910", align 8 - %"$msgobj_v_4911" = getelementptr i8, i8* %"$msgobj_4875", i32 205 - %"$msgobj_v_4912" = bitcast i8* %"$msgobj_v_4911" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4912", align 8 - %"$msgobj_fname_4914" = getelementptr i8, i8* %"$msgobj_4875", i32 221 - %"$msgobj_fname_4915" = bitcast i8* %"$msgobj_fname_4914" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4913", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4915", align 8 - %"$msgobj_td_4916" = getelementptr i8, i8* %"$msgobj_4875", i32 237 - %"$msgobj_td_4917" = bitcast i8* %"$msgobj_td_4916" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4917", align 8 - %"$msgobj_v_4918" = getelementptr i8, i8* %"$msgobj_4875", i32 245 - %"$msgobj_v_4919" = bitcast i8* %"$msgobj_v_4918" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4919", align 1 - store i8* %"$msgobj_4875", i8** %"$m_2", align 8, !dbg !453 - %"$gasrem_4921" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4922" = icmp ugt i64 1, %"$gasrem_4921" - br i1 %"$gascmp_4922", label %"$out_of_gas_4923", label %"$have_gas_4924" - -"$out_of_gas_4923": ; preds = %"$have_gas_4873" - call void @_out_of_gas() - br label %"$have_gas_4924" - -"$have_gas_4924": ; preds = %"$out_of_gas_4923", %"$have_gas_4873" - %"$consume_4925" = sub i64 %"$gasrem_4921", 1 - store i64 %"$consume_4925", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_108" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_4926" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_4927" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4926", 0 - %"$ud-registry.oneMsg_envptr_4928" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4926", 1 - %"$$m_2_4929" = load i8*, i8** %"$m_2", align 8 - %"$ud-registry.oneMsg_call_4930" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4927"(i8* %"$ud-registry.oneMsg_envptr_4928", i8* %"$$m_2_4929"), !dbg !454 - store %TName_List_Message* %"$ud-registry.oneMsg_call_4930", %TName_List_Message** %"$ud-registry.oneMsg_108", align 8, !dbg !454 - %"$$ud-registry.oneMsg_108_4931" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_108", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_108_4931", %TName_List_Message** %msgs9, align 8, !dbg !454 - %"$msgs_4932" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 - %"$$msgs_4932_4933" = bitcast %TName_List_Message* %"$msgs_4932" to i8* - %"$_literal_cost_call_4934" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_4932_4933") - %"$gasrem_4935" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4936" = icmp ugt i64 %"$_literal_cost_call_4934", %"$gasrem_4935" - br i1 %"$gascmp_4936", label %"$out_of_gas_4937", label %"$have_gas_4938" - -"$out_of_gas_4937": ; preds = %"$have_gas_4924" - call void @_out_of_gas() - br label %"$have_gas_4938" - -"$have_gas_4938": ; preds = %"$out_of_gas_4937", %"$have_gas_4924" - %"$consume_4939" = sub i64 %"$gasrem_4935", %"$_literal_cost_call_4934" - store i64 %"$consume_4939", i64* @_gasrem, align 8 - %"$execptr_load_4940" = load i8*, i8** @_execptr, align 8 - %"$msgs_4941" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 - call void @_send(i8* %"$execptr_load_4940", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_4941"), !dbg !455 - br label %"$matchsucc_4573" - -"$empty_default_4577": ; preds = %"$have_gas_4571" - br label %"$matchsucc_4573" - -"$matchsucc_4573": ; preds = %"$have_gas_4938", %"$have_gas_4817", %"$empty_default_4577" +"$have_gas_4717": ; preds = %"$out_of_gas_4716", %"$have_gas_4712" + %"$consume_4718" = sub i64 %"$gasrem_4714", 1 + store i64 %"$consume_4718", i64* @_gasrem, align 8 + %m = alloca %String, align 8 + %"$gasrem_4719" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4720" = icmp ugt i64 1, %"$gasrem_4719" + br i1 %"$gascmp_4720", label %"$out_of_gas_4721", label %"$have_gas_4722" + +"$out_of_gas_4721": ; preds = %"$have_gas_4717" + call void @_out_of_gas() + br label %"$have_gas_4722" + +"$have_gas_4722": ; preds = %"$out_of_gas_4721", %"$have_gas_4717" + %"$consume_4723" = sub i64 %"$gasrem_4719", 1 + store i64 %"$consume_4723", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_4724", i32 0, i32 0), i32 12 }, %String* %m, align 8, !dbg !453 + %"$gasrem_4725" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4726" = icmp ugt i64 1, %"$gasrem_4725" + br i1 %"$gascmp_4726", label %"$out_of_gas_4727", label %"$have_gas_4728" + +"$out_of_gas_4727": ; preds = %"$have_gas_4722" + call void @_out_of_gas() + br label %"$have_gas_4728" + +"$have_gas_4728": ; preds = %"$out_of_gas_4727", %"$have_gas_4722" + %"$consume_4729" = sub i64 %"$gasrem_4725", 1 + store i64 %"$consume_4729", i64* @_gasrem, align 8 + %"$ud-registry.eError_57" = alloca i8*, align 8 + %"$ud-registry.eError_4730" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_4731" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4730", 0 + %"$ud-registry.eError_envptr_4732" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4730", 1 + %"$m_4733" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_4734" = call i8* %"$ud-registry.eError_fptr_4731"(i8* %"$ud-registry.eError_envptr_4732", %String %"$m_4733"), !dbg !455 + store i8* %"$ud-registry.eError_call_4734", i8** %"$ud-registry.eError_57", align 8, !dbg !455 + %"$$ud-registry.eError_57_4735" = load i8*, i8** %"$ud-registry.eError_57", align 8 + store i8* %"$$ud-registry.eError_57_4735", i8** %e4, align 8, !dbg !455 + %"$e_4736" = load i8*, i8** %e4, align 8 + %"$_literal_cost_call_4738" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4736") + %"$gasrem_4739" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4740" = icmp ugt i64 %"$_literal_cost_call_4738", %"$gasrem_4739" + br i1 %"$gascmp_4740", label %"$out_of_gas_4741", label %"$have_gas_4742" + +"$out_of_gas_4741": ; preds = %"$have_gas_4728" + call void @_out_of_gas() + br label %"$have_gas_4742" + +"$have_gas_4742": ; preds = %"$out_of_gas_4741", %"$have_gas_4728" + %"$consume_4743" = sub i64 %"$gasrem_4739", %"$_literal_cost_call_4738" + store i64 %"$consume_4743", i64* @_gasrem, align 8 + %"$execptr_load_4744" = load i8*, i8** @_execptr, align 8 + %"$e_4745" = load i8*, i8** %e4, align 8 + call void @_event(i8* %"$execptr_load_4744", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4745"), !dbg !456 + br label %"$matchsucc_4603" + +"$empty_default_4607": ; preds = %"$have_gas_4601" + br label %"$matchsucc_4603" + +"$matchsucc_4603": ; preds = %"$have_gas_4742", %"$have_gas_4703", %"$empty_default_4607" ret void } -define void @assign(i8* %0) !dbg !456 { +define void @bestow(i8* %0) !dbg !457 { entry: - %"$_amount_4943" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4944" = bitcast i8* %"$_amount_4943" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4944", align 8 - %"$_origin_4945" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4946" = bitcast i8* %"$_origin_4945" to [20 x i8]* - %"$_sender_4947" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4948" = bitcast i8* %"$_sender_4947" to [20 x i8]* - %"$parent_4949" = getelementptr i8, i8* %0, i32 56 - %"$parent_4950" = bitcast i8* %"$parent_4949" to [32 x i8]* - %"$label_4951" = getelementptr i8, i8* %0, i32 88 - %"$label_4952" = bitcast i8* %"$label_4951" to %String* - %label = load %String, %String* %"$label_4952", align 8 - %"$owner_4953" = getelementptr i8, i8* %0, i32 104 - %"$owner_4954" = bitcast i8* %"$owner_4953" to [20 x i8]* - call void @"$assign_4465"(%Uint128 %_amount, [20 x i8]* %"$_origin_4946", [20 x i8]* %"$_sender_4948", [32 x i8]* %"$parent_4950", %String %label, [20 x i8]* %"$owner_4954"), !dbg !457 + %"$_amount_4747" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4748" = bitcast i8* %"$_amount_4747" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4748", align 8 + %"$_origin_4749" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4750" = bitcast i8* %"$_origin_4749" to [20 x i8]* + %"$_sender_4751" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4752" = bitcast i8* %"$_sender_4751" to [20 x i8]* + %"$label_4753" = getelementptr i8, i8* %0, i32 56 + %"$label_4754" = bitcast i8* %"$label_4753" to %String* + %label = load %String, %String* %"$label_4754", align 8 + %"$owner_4755" = getelementptr i8, i8* %0, i32 72 + %"$owner_4756" = bitcast i8* %"$owner_4755" to [20 x i8]* + %"$resolver_4757" = getelementptr i8, i8* %0, i32 92 + %"$resolver_4758" = bitcast i8* %"$resolver_4757" to [20 x i8]* + call void @"$bestow_4361"(%Uint128 %_amount, [20 x i8]* %"$_origin_4750", [20 x i8]* %"$_sender_4752", %String %label, [20 x i8]* %"$owner_4756", [20 x i8]* %"$resolver_4758"), !dbg !458 ret void } -define internal void @"$bestow_4955"(%Uint128 %_amount, [20 x i8]* %"$_origin_4956", [20 x i8]* %"$_sender_4957", %String %label, [20 x i8]* %"$owner_4958", [20 x i8]* %"$resolver_4959") !dbg !458 { +define internal void @"$setRegistrar_4759"(%Uint128 %_amount, [20 x i8]* %"$_origin_4760", [20 x i8]* %"$_sender_4761", [20 x i8]* %"$address_4762") !dbg !459 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4956", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4957", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_4958", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_4959", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4760", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4761", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_4762", align 1 %currentAdmins = alloca %TName_List_ByStr20*, align 8 - %"$execptr_load_4961" = load i8*, i8** @_execptr, align 8 - %"$currentAdmins_call_4962" = call i8* @_fetch_field(i8* %"$execptr_load_4961", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4960", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i32 0, i8* null, i32 1), !dbg !459 - %"$currentAdmins_4963" = bitcast i8* %"$currentAdmins_call_4962" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$currentAdmins_4963", %TName_List_ByStr20** %currentAdmins, align 8 - %"$currentAdmins_4964" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$$currentAdmins_4964_4965" = bitcast %TName_List_ByStr20* %"$currentAdmins_4964" to i8* - %"$_literal_cost_call_4966" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i8* %"$$currentAdmins_4964_4965") - %"$gasadd_4967" = add i64 %"$_literal_cost_call_4966", 0 - %"$gasrem_4968" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4969" = icmp ugt i64 %"$gasadd_4967", %"$gasrem_4968" - br i1 %"$gascmp_4969", label %"$out_of_gas_4970", label %"$have_gas_4971" - -"$out_of_gas_4970": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4971" - -"$have_gas_4971": ; preds = %"$out_of_gas_4970", %entry - %"$consume_4972" = sub i64 %"$gasrem_4968", %"$gasadd_4967" - store i64 %"$consume_4972", i64* @_gasrem, align 8 - %"$gasrem_4973" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4974" = icmp ugt i64 1, %"$gasrem_4973" - br i1 %"$gascmp_4974", label %"$out_of_gas_4975", label %"$have_gas_4976" - -"$out_of_gas_4975": ; preds = %"$have_gas_4971" - call void @_out_of_gas() - br label %"$have_gas_4976" - -"$have_gas_4976": ; preds = %"$out_of_gas_4975", %"$have_gas_4971" - %"$consume_4977" = sub i64 %"$gasrem_4973", 1 - store i64 %"$consume_4977", i64* @_gasrem, align 8 - %node = alloca [32 x i8], align 1 - %"$gasrem_4978" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4979" = icmp ugt i64 1, %"$gasrem_4978" - br i1 %"$gascmp_4979", label %"$out_of_gas_4980", label %"$have_gas_4981" - -"$out_of_gas_4980": ; preds = %"$have_gas_4976" - call void @_out_of_gas() - br label %"$have_gas_4981" - -"$have_gas_4981": ; preds = %"$out_of_gas_4980", %"$have_gas_4976" - %"$consume_4982" = sub i64 %"$gasrem_4978", 1 - store i64 %"$consume_4982", i64* @_gasrem, align 8 - %"$ud-registry.parentLabelToNode_132" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$ud-registry.parentLabelToNode_4983" = load { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.parentLabelToNode, align 8 - %"$ud-registry.parentLabelToNode_fptr_4984" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_4983", 0 - %"$ud-registry.parentLabelToNode_envptr_4985" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_4983", 1 - %"$ud-registry.parentLabelToNode_rootNode_4986" = alloca [32 x i8], align 1 - %"$rootNode_4987" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 - store [32 x i8] %"$rootNode_4987", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_4986", align 1 - %"$ud-registry.parentLabelToNode_call_4988" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_4984"(i8* %"$ud-registry.parentLabelToNode_envptr_4985", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_4986"), !dbg !460 - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_4988", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_132", align 8, !dbg !460 - %"$ud-registry.parentLabelToNode_133" = alloca [32 x i8], align 1 - %"$$ud-registry.parentLabelToNode_132_4989" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_132", align 8 - %"$$ud-registry.parentLabelToNode_132_fptr_4990" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_132_4989", 0 - %"$$ud-registry.parentLabelToNode_132_envptr_4991" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_132_4989", 1 - %"$$ud-registry.parentLabelToNode_132_retalloca_4992" = alloca [32 x i8], align 1 - call void %"$$ud-registry.parentLabelToNode_132_fptr_4990"(i8* %"$$ud-registry.parentLabelToNode_132_envptr_4991", [32 x i8]* %"$$ud-registry.parentLabelToNode_132_retalloca_4992", %String %label), !dbg !460 - %"$$ud-registry.parentLabelToNode_132_ret_4993" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_132_retalloca_4992", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_132_ret_4993", [32 x i8]* %"$ud-registry.parentLabelToNode_133", align 1, !dbg !460 - %"$$ud-registry.parentLabelToNode_133_4994" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_133", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_133_4994", [32 x i8]* %node, align 1, !dbg !460 - %recordExists = alloca %TName_Bool*, align 8 - %"$indices_buf_4995_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4995_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4995_salloc_load", i64 32) - %"$indices_buf_4995_salloc" = bitcast i8* %"$indices_buf_4995_salloc_salloc" to [32 x i8]* - %"$indices_buf_4995" = bitcast [32 x i8]* %"$indices_buf_4995_salloc" to i8* - %"$node_4996" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_4997" = getelementptr i8, i8* %"$indices_buf_4995", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4997" to [32 x i8]* - store [32 x i8] %"$node_4996", [32 x i8]* %indices_cast, align 1 - %"$execptr_load_4999" = load i8*, i8** @_execptr, align 8 - %"$recordExists_call_5000" = call i8* @_fetch_field(i8* %"$execptr_load_4999", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4998", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4995", i32 0), !dbg !461 - %"$recordExists_5001" = bitcast i8* %"$recordExists_call_5000" to %TName_Bool* - store %TName_Bool* %"$recordExists_5001", %TName_Bool** %recordExists, align 8 - %"$recordExists_5002" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$$recordExists_5002_5003" = bitcast %TName_Bool* %"$recordExists_5002" to i8* - %"$_literal_cost_call_5004" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321", i8* %"$$recordExists_5002_5003") - %"$gasadd_5005" = add i64 %"$_literal_cost_call_5004", 0 - %"$gasadd_5006" = add i64 %"$gasadd_5005", 1 - %"$gasrem_5007" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5008" = icmp ugt i64 %"$gasadd_5006", %"$gasrem_5007" - br i1 %"$gascmp_5008", label %"$out_of_gas_5009", label %"$have_gas_5010" - -"$out_of_gas_5009": ; preds = %"$have_gas_4981" - call void @_out_of_gas() - br label %"$have_gas_5010" - -"$have_gas_5010": ; preds = %"$out_of_gas_5009", %"$have_gas_4981" - %"$consume_5011" = sub i64 %"$gasrem_5007", %"$gasadd_5006" - store i64 %"$consume_5011", i64* @_gasrem, align 8 - %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_5012_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5012_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5012_salloc_load", i64 32) - %"$indices_buf_5012_salloc" = bitcast i8* %"$indices_buf_5012_salloc_salloc" to [32 x i8]* - %"$indices_buf_5012" = bitcast [32 x i8]* %"$indices_buf_5012_salloc" to i8* - %"$node_5013" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_5014" = getelementptr i8, i8* %"$indices_buf_5012", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_5014" to [32 x i8]* - store [32 x i8] %"$node_5013", [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_5016" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_5017" = call i8* @_fetch_field(i8* %"$execptr_load_5016", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5015", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_5012", i32 1), !dbg !462 - %"$maybeRecord_5018" = bitcast i8* %"$maybeRecord_call_5017" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_5018", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_5019" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_5019_5020" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5019" to i8* - %"$_literal_cost_call_5021" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_5019_5020") - %"$gasadd_5022" = add i64 %"$_literal_cost_call_5021", 0 - %"$gasadd_5023" = add i64 %"$gasadd_5022", 1 - %"$gasrem_5024" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5025" = icmp ugt i64 %"$gasadd_5023", %"$gasrem_5024" - br i1 %"$gascmp_5025", label %"$out_of_gas_5026", label %"$have_gas_5027" - -"$out_of_gas_5026": ; preds = %"$have_gas_5010" - call void @_out_of_gas() - br label %"$have_gas_5027" - -"$have_gas_5027": ; preds = %"$out_of_gas_5026", %"$have_gas_5010" - %"$consume_5028" = sub i64 %"$gasrem_5024", %"$gasadd_5023" - store i64 %"$consume_5028", i64* @_gasrem, align 8 - %currentRegistrar = alloca [20 x i8], align 1 - %"$execptr_load_5030" = load i8*, i8** @_execptr, align 8 - %"$currentRegistrar_call_5031" = call i8* @_fetch_field(i8* %"$execptr_load_5030", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_5029", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i32 0, i8* null, i32 1), !dbg !463 - %"$currentRegistrar_5032" = bitcast i8* %"$currentRegistrar_call_5031" to [20 x i8]* - %"$currentRegistrar_5033" = load [20 x i8], [20 x i8]* %"$currentRegistrar_5032", align 1 - store [20 x i8] %"$currentRegistrar_5033", [20 x i8]* %currentRegistrar, align 1 - %"$_literal_cost_currentRegistrar_5034" = alloca [20 x i8], align 1 - %"$currentRegistrar_5035" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_5035", [20 x i8]* %"$_literal_cost_currentRegistrar_5034", align 1 - %"$$_literal_cost_currentRegistrar_5034_5036" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_5034" to i8* - %"$_literal_cost_call_5037" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i8* %"$$_literal_cost_currentRegistrar_5034_5036") - %"$gasadd_5038" = add i64 %"$_literal_cost_call_5037", 0 - %"$gasrem_5039" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5040" = icmp ugt i64 %"$gasadd_5038", %"$gasrem_5039" - br i1 %"$gascmp_5040", label %"$out_of_gas_5041", label %"$have_gas_5042" - -"$out_of_gas_5041": ; preds = %"$have_gas_5027" - call void @_out_of_gas() - br label %"$have_gas_5042" - -"$have_gas_5042": ; preds = %"$out_of_gas_5041", %"$have_gas_5027" - %"$consume_5043" = sub i64 %"$gasrem_5039", %"$gasadd_5038" - store i64 %"$consume_5043", i64* @_gasrem, align 8 - %"$gasrem_5044" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5045" = icmp ugt i64 1, %"$gasrem_5044" - br i1 %"$gascmp_5045", label %"$out_of_gas_5046", label %"$have_gas_5047" - -"$out_of_gas_5046": ; preds = %"$have_gas_5042" - call void @_out_of_gas() - br label %"$have_gas_5047" - -"$have_gas_5047": ; preds = %"$out_of_gas_5046", %"$have_gas_5042" - %"$consume_5048" = sub i64 %"$gasrem_5044", 1 - store i64 %"$consume_5048", i64* @_gasrem, align 8 + %"$execptr_load_4764" = load i8*, i8** @_execptr, align 8 + %"$currentAdmins_call_4765" = call i8* @_fetch_field(i8* %"$execptr_load_4764", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4763", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i32 0, i8* null, i32 1), !dbg !460 + %"$currentAdmins_4766" = bitcast i8* %"$currentAdmins_call_4765" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$currentAdmins_4766", %TName_List_ByStr20** %currentAdmins, align 8 + %"$currentAdmins_4767" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$$currentAdmins_4767_4768" = bitcast %TName_List_ByStr20* %"$currentAdmins_4767" to i8* + %"$_literal_cost_call_4769" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i8* %"$$currentAdmins_4767_4768") + %"$gasadd_4770" = add i64 %"$_literal_cost_call_4769", 0 + %"$gasrem_4771" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4772" = icmp ugt i64 %"$gasadd_4770", %"$gasrem_4771" + br i1 %"$gascmp_4772", label %"$out_of_gas_4773", label %"$have_gas_4774" + +"$out_of_gas_4773": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4774" + +"$have_gas_4774": ; preds = %"$out_of_gas_4773", %entry + %"$consume_4775" = sub i64 %"$gasrem_4771", %"$gasadd_4770" + store i64 %"$consume_4775", i64* @_gasrem, align 8 + %"$gasrem_4776" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4777" = icmp ugt i64 1, %"$gasrem_4776" + br i1 %"$gascmp_4777", label %"$out_of_gas_4778", label %"$have_gas_4779" + +"$out_of_gas_4778": ; preds = %"$have_gas_4774" + call void @_out_of_gas() + br label %"$have_gas_4779" + +"$have_gas_4779": ; preds = %"$out_of_gas_4778", %"$have_gas_4774" + %"$consume_4780" = sub i64 %"$gasrem_4776", 1 + store i64 %"$consume_4780", i64* @_gasrem, align 8 %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_5049" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5050" = icmp ugt i64 1, %"$gasrem_5049" - br i1 %"$gascmp_5050", label %"$out_of_gas_5051", label %"$have_gas_5052" - -"$out_of_gas_5051": ; preds = %"$have_gas_5047" - call void @_out_of_gas() - br label %"$have_gas_5052" - -"$have_gas_5052": ; preds = %"$out_of_gas_5051", %"$have_gas_5047" - %"$consume_5053" = sub i64 %"$gasrem_5049", 1 - store i64 %"$consume_5053", i64* @_gasrem, align 8 - %isSenderAdmin = alloca %TName_Bool*, align 8 - %"$gasrem_5054" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5055" = icmp ugt i64 1, %"$gasrem_5054" - br i1 %"$gascmp_5055", label %"$out_of_gas_5056", label %"$have_gas_5057" - -"$out_of_gas_5056": ; preds = %"$have_gas_5052" - call void @_out_of_gas() - br label %"$have_gas_5057" - -"$have_gas_5057": ; preds = %"$out_of_gas_5056", %"$have_gas_5052" - %"$consume_5058" = sub i64 %"$gasrem_5054", 1 - store i64 %"$consume_5058", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Contains_121" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_5059" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8 - %"$ud-registry.listByStr20Contains_fptr_5060" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_5059", 0 - %"$ud-registry.listByStr20Contains_envptr_5061" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_5059", 1 - %"$currentAdmins_5062" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Contains_call_5063" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_5060"(i8* %"$ud-registry.listByStr20Contains_envptr_5061", %TName_List_ByStr20* %"$currentAdmins_5062"), !dbg !464 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_5063", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_121", align 8, !dbg !464 - %"$ud-registry.listByStr20Contains_122" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_121_5064" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_121", align 8 - %"$$ud-registry.listByStr20Contains_121_fptr_5065" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_121_5064", 0 - %"$$ud-registry.listByStr20Contains_121_envptr_5066" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_121_5064", 1 - %"$$ud-registry.listByStr20Contains_121__sender_5067" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_121__sender_5067", align 1 - %"$$ud-registry.listByStr20Contains_121_call_5068" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_121_fptr_5065"(i8* %"$$ud-registry.listByStr20Contains_121_envptr_5066", [20 x i8]* %"$$ud-registry.listByStr20Contains_121__sender_5067"), !dbg !464 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_121_call_5068", %TName_Bool** %"$ud-registry.listByStr20Contains_122", align 8, !dbg !464 - %"$$ud-registry.listByStr20Contains_122_5069" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_122", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_122_5069", %TName_Bool** %isSenderAdmin, align 8, !dbg !464 - %"$gasrem_5070" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5071" = icmp ugt i64 1, %"$gasrem_5070" - br i1 %"$gascmp_5071", label %"$out_of_gas_5072", label %"$have_gas_5073" - -"$out_of_gas_5072": ; preds = %"$have_gas_5057" - call void @_out_of_gas() - br label %"$have_gas_5073" - -"$have_gas_5073": ; preds = %"$out_of_gas_5072", %"$have_gas_5057" - %"$consume_5074" = sub i64 %"$gasrem_5070", 1 - store i64 %"$consume_5074", i64* @_gasrem, align 8 - %isSenderRegistrar = alloca %TName_Bool*, align 8 - %"$gasrem_5075" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5076" = icmp ugt i64 20, %"$gasrem_5075" - br i1 %"$gascmp_5076", label %"$out_of_gas_5077", label %"$have_gas_5078" - -"$out_of_gas_5077": ; preds = %"$have_gas_5073" - call void @_out_of_gas() - br label %"$have_gas_5078" - -"$have_gas_5078": ; preds = %"$out_of_gas_5077", %"$have_gas_5073" - %"$consume_5079" = sub i64 %"$gasrem_5075", 20 - store i64 %"$consume_5079", i64* @_gasrem, align 8 - %"$execptr_load_5080" = load i8*, i8** @_execptr, align 8 - %"$eq_currentRegistrar_5081" = alloca [20 x i8], align 1 - %"$currentRegistrar_5082" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_5082", [20 x i8]* %"$eq_currentRegistrar_5081", align 1 - %"$$eq_currentRegistrar_5081_5083" = bitcast [20 x i8]* %"$eq_currentRegistrar_5081" to i8* - %"$eq__sender_5084" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_5084", align 1 - %"$$eq__sender_5084_5085" = bitcast [20 x i8]* %"$eq__sender_5084" to i8* - %"$eq_call_5086" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5080", i32 20, i8* %"$$eq_currentRegistrar_5081_5083", i8* %"$$eq__sender_5084_5085"), !dbg !465 - store %TName_Bool* %"$eq_call_5086", %TName_Bool** %isSenderRegistrar, align 8, !dbg !465 - %"$gasrem_5088" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5089" = icmp ugt i64 1, %"$gasrem_5088" - br i1 %"$gascmp_5089", label %"$out_of_gas_5090", label %"$have_gas_5091" - -"$out_of_gas_5090": ; preds = %"$have_gas_5078" - call void @_out_of_gas() - br label %"$have_gas_5091" - -"$have_gas_5091": ; preds = %"$out_of_gas_5090", %"$have_gas_5078" - %"$consume_5092" = sub i64 %"$gasrem_5088", 1 - store i64 %"$consume_5092", i64* @_gasrem, align 8 - %isOkSender = alloca %TName_Bool*, align 8 - %"$gasrem_5093" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5094" = icmp ugt i64 1, %"$gasrem_5093" - br i1 %"$gascmp_5094", label %"$out_of_gas_5095", label %"$have_gas_5096" - -"$out_of_gas_5095": ; preds = %"$have_gas_5091" - call void @_out_of_gas() - br label %"$have_gas_5096" - -"$have_gas_5096": ; preds = %"$out_of_gas_5095", %"$have_gas_5091" - %"$consume_5097" = sub i64 %"$gasrem_5093", 1 - store i64 %"$consume_5097", i64* @_gasrem, align 8 - %"$BoolUtils.orb_123" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_5098" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 - %"$BoolUtils.orb_fptr_5099" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_5098", 0 - %"$BoolUtils.orb_envptr_5100" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_5098", 1 - %"$isSenderRegistrar_5101" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 - %"$BoolUtils.orb_call_5102" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_5099"(i8* %"$BoolUtils.orb_envptr_5100", %TName_Bool* %"$isSenderRegistrar_5101"), !dbg !466 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_5102", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_123", align 8, !dbg !466 - %"$BoolUtils.orb_124" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_123_5103" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_123", align 8 - %"$$BoolUtils.orb_123_fptr_5104" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_123_5103", 0 - %"$$BoolUtils.orb_123_envptr_5105" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_123_5103", 1 - %"$isSenderAdmin_5106" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$$BoolUtils.orb_123_call_5107" = call %TName_Bool* %"$$BoolUtils.orb_123_fptr_5104"(i8* %"$$BoolUtils.orb_123_envptr_5105", %TName_Bool* %"$isSenderAdmin_5106"), !dbg !466 - store %TName_Bool* %"$$BoolUtils.orb_123_call_5107", %TName_Bool** %"$BoolUtils.orb_124", align 8, !dbg !466 - %"$$BoolUtils.orb_124_5108" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_124", align 8 - store %TName_Bool* %"$$BoolUtils.orb_124_5108", %TName_Bool** %isOkSender, align 8, !dbg !466 - %"$gasrem_5109" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5110" = icmp ugt i64 1, %"$gasrem_5109" - br i1 %"$gascmp_5110", label %"$out_of_gas_5111", label %"$have_gas_5112" - -"$out_of_gas_5111": ; preds = %"$have_gas_5096" - call void @_out_of_gas() - br label %"$have_gas_5112" - -"$have_gas_5112": ; preds = %"$out_of_gas_5111", %"$have_gas_5096" - %"$consume_5113" = sub i64 %"$gasrem_5109", 1 - store i64 %"$consume_5113", i64* @_gasrem, align 8 - %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_5114" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5115" = icmp ugt i64 1, %"$gasrem_5114" - br i1 %"$gascmp_5115", label %"$out_of_gas_5116", label %"$have_gas_5117" - -"$out_of_gas_5116": ; preds = %"$have_gas_5112" - call void @_out_of_gas() - br label %"$have_gas_5117" - -"$have_gas_5117": ; preds = %"$out_of_gas_5116", %"$have_gas_5112" - %"$consume_5118" = sub i64 %"$gasrem_5114", 1 - store i64 %"$consume_5118", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_125" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_5119" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_5120" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5119", 0 - %"$ud-registry.recordMemberOwner_envptr_5121" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5119", 1 - %"$maybeRecord_5122" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_5123" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_5120"(i8* %"$ud-registry.recordMemberOwner_envptr_5121", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5123", %TName_Option_ud-registry.Record* %"$maybeRecord_5122"), !dbg !467 - %"$ud-registry.recordMemberOwner_ret_5124" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5123", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_5124", [20 x i8]* %"$ud-registry.recordMemberOwner_125", align 1, !dbg !467 - %"$$ud-registry.recordMemberOwner_125_5125" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_125", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_125_5125", [20 x i8]* %recordOwner, align 1, !dbg !467 - %"$gasrem_5126" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5127" = icmp ugt i64 1, %"$gasrem_5126" - br i1 %"$gascmp_5127", label %"$out_of_gas_5128", label %"$have_gas_5129" - -"$out_of_gas_5128": ; preds = %"$have_gas_5117" - call void @_out_of_gas() - br label %"$have_gas_5129" - -"$have_gas_5129": ; preds = %"$out_of_gas_5128", %"$have_gas_5117" - %"$consume_5130" = sub i64 %"$gasrem_5126", 1 - store i64 %"$consume_5130", i64* @_gasrem, align 8 - %recordIsUnowned = alloca %TName_Bool*, align 8 - %"$gasrem_5131" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5132" = icmp ugt i64 20, %"$gasrem_5131" - br i1 %"$gascmp_5132", label %"$out_of_gas_5133", label %"$have_gas_5134" - -"$out_of_gas_5133": ; preds = %"$have_gas_5129" - call void @_out_of_gas() - br label %"$have_gas_5134" - -"$have_gas_5134": ; preds = %"$out_of_gas_5133", %"$have_gas_5129" - %"$consume_5135" = sub i64 %"$gasrem_5131", 20 - store i64 %"$consume_5135", i64* @_gasrem, align 8 - %"$execptr_load_5136" = load i8*, i8** @_execptr, align 8 - %"$eq_recordOwner_5137" = alloca [20 x i8], align 1 - %"$recordOwner_5138" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_5138", [20 x i8]* %"$eq_recordOwner_5137", align 1 - %"$$eq_recordOwner_5137_5139" = bitcast [20 x i8]* %"$eq_recordOwner_5137" to i8* - %"$eq_ud-registry.zeroByStr20_5140" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_5141" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_5141", [20 x i8]* %"$eq_ud-registry.zeroByStr20_5140", align 1 - %"$$eq_ud-registry.zeroByStr20_5140_5142" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_5140" to i8* - %"$eq_call_5143" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5136", i32 20, i8* %"$$eq_recordOwner_5137_5139", i8* %"$$eq_ud-registry.zeroByStr20_5140_5142"), !dbg !468 - store %TName_Bool* %"$eq_call_5143", %TName_Bool** %recordIsUnowned, align 8, !dbg !468 - %"$gasrem_5145" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5146" = icmp ugt i64 1, %"$gasrem_5145" - br i1 %"$gascmp_5146", label %"$out_of_gas_5147", label %"$have_gas_5148" - -"$out_of_gas_5147": ; preds = %"$have_gas_5134" - call void @_out_of_gas() - br label %"$have_gas_5148" - -"$have_gas_5148": ; preds = %"$out_of_gas_5147", %"$have_gas_5134" - %"$consume_5149" = sub i64 %"$gasrem_5145", 1 - store i64 %"$consume_5149", i64* @_gasrem, align 8 - %recordIsOwnedByRegistrar = alloca %TName_Bool*, align 8 - %"$gasrem_5150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5151" = icmp ugt i64 20, %"$gasrem_5150" - br i1 %"$gascmp_5151", label %"$out_of_gas_5152", label %"$have_gas_5153" - -"$out_of_gas_5152": ; preds = %"$have_gas_5148" - call void @_out_of_gas() - br label %"$have_gas_5153" - -"$have_gas_5153": ; preds = %"$out_of_gas_5152", %"$have_gas_5148" - %"$consume_5154" = sub i64 %"$gasrem_5150", 20 - store i64 %"$consume_5154", i64* @_gasrem, align 8 - %"$execptr_load_5155" = load i8*, i8** @_execptr, align 8 - %"$eq_recordOwner_5156" = alloca [20 x i8], align 1 - %"$recordOwner_5157" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_5157", [20 x i8]* %"$eq_recordOwner_5156", align 1 - %"$$eq_recordOwner_5156_5158" = bitcast [20 x i8]* %"$eq_recordOwner_5156" to i8* - %"$eq_currentRegistrar_5159" = alloca [20 x i8], align 1 - %"$currentRegistrar_5160" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_5160", [20 x i8]* %"$eq_currentRegistrar_5159", align 1 - %"$$eq_currentRegistrar_5159_5161" = bitcast [20 x i8]* %"$eq_currentRegistrar_5159" to i8* - %"$eq_call_5162" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5155", i32 20, i8* %"$$eq_recordOwner_5156_5158", i8* %"$$eq_currentRegistrar_5159_5161"), !dbg !469 - store %TName_Bool* %"$eq_call_5162", %TName_Bool** %recordIsOwnedByRegistrar, align 8, !dbg !469 - %"$gasrem_5164" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5165" = icmp ugt i64 1, %"$gasrem_5164" - br i1 %"$gascmp_5165", label %"$out_of_gas_5166", label %"$have_gas_5167" - -"$out_of_gas_5166": ; preds = %"$have_gas_5153" - call void @_out_of_gas() - br label %"$have_gas_5167" - -"$have_gas_5167": ; preds = %"$out_of_gas_5166", %"$have_gas_5153" - %"$consume_5168" = sub i64 %"$gasrem_5164", 1 - store i64 %"$consume_5168", i64* @_gasrem, align 8 - %isRegistrarSenderAndOwned = alloca %TName_Bool*, align 8 - %"$gasrem_5169" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5170" = icmp ugt i64 1, %"$gasrem_5169" - br i1 %"$gascmp_5170", label %"$out_of_gas_5171", label %"$have_gas_5172" - -"$out_of_gas_5171": ; preds = %"$have_gas_5167" - call void @_out_of_gas() - br label %"$have_gas_5172" - -"$have_gas_5172": ; preds = %"$out_of_gas_5171", %"$have_gas_5167" - %"$consume_5173" = sub i64 %"$gasrem_5169", 1 - store i64 %"$consume_5173", i64* @_gasrem, align 8 - %"$BoolUtils.andb_126" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_5174" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_5175" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5174", 0 - %"$BoolUtils.andb_envptr_5176" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5174", 1 - %"$recordIsOwnedByRegistrar_5177" = load %TName_Bool*, %TName_Bool** %recordIsOwnedByRegistrar, align 8 - %"$BoolUtils.andb_call_5178" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_5175"(i8* %"$BoolUtils.andb_envptr_5176", %TName_Bool* %"$recordIsOwnedByRegistrar_5177"), !dbg !470 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_5178", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_126", align 8, !dbg !470 - %"$BoolUtils.andb_127" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_126_5179" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_126", align 8 - %"$$BoolUtils.andb_126_fptr_5180" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_126_5179", 0 - %"$$BoolUtils.andb_126_envptr_5181" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_126_5179", 1 - %"$isSenderRegistrar_5182" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 - %"$$BoolUtils.andb_126_call_5183" = call %TName_Bool* %"$$BoolUtils.andb_126_fptr_5180"(i8* %"$$BoolUtils.andb_126_envptr_5181", %TName_Bool* %"$isSenderRegistrar_5182"), !dbg !470 - store %TName_Bool* %"$$BoolUtils.andb_126_call_5183", %TName_Bool** %"$BoolUtils.andb_127", align 8, !dbg !470 - %"$$BoolUtils.andb_127_5184" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_127", align 8 - store %TName_Bool* %"$$BoolUtils.andb_127_5184", %TName_Bool** %isRegistrarSenderAndOwned, align 8, !dbg !470 - %"$gasrem_5185" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5186" = icmp ugt i64 1, %"$gasrem_5185" - br i1 %"$gascmp_5186", label %"$out_of_gas_5187", label %"$have_gas_5188" - -"$out_of_gas_5187": ; preds = %"$have_gas_5172" - call void @_out_of_gas() - br label %"$have_gas_5188" - -"$have_gas_5188": ; preds = %"$out_of_gas_5187", %"$have_gas_5172" - %"$consume_5189" = sub i64 %"$gasrem_5185", 1 - store i64 %"$consume_5189", i64* @_gasrem, align 8 - %isOkRecordOwner = alloca %TName_Bool*, align 8 - %"$gasrem_5190" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5191" = icmp ugt i64 1, %"$gasrem_5190" - br i1 %"$gascmp_5191", label %"$out_of_gas_5192", label %"$have_gas_5193" - -"$out_of_gas_5192": ; preds = %"$have_gas_5188" - call void @_out_of_gas() - br label %"$have_gas_5193" - -"$have_gas_5193": ; preds = %"$out_of_gas_5192", %"$have_gas_5188" - %"$consume_5194" = sub i64 %"$gasrem_5190", 1 - store i64 %"$consume_5194", i64* @_gasrem, align 8 - %"$BoolUtils.orb_128" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_5195" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 - %"$BoolUtils.orb_fptr_5196" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_5195", 0 - %"$BoolUtils.orb_envptr_5197" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_5195", 1 - %"$recordIsUnowned_5198" = load %TName_Bool*, %TName_Bool** %recordIsUnowned, align 8 - %"$BoolUtils.orb_call_5199" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_5196"(i8* %"$BoolUtils.orb_envptr_5197", %TName_Bool* %"$recordIsUnowned_5198"), !dbg !471 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_5199", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_128", align 8, !dbg !471 - %"$BoolUtils.orb_129" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_128_5200" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_128", align 8 - %"$$BoolUtils.orb_128_fptr_5201" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_128_5200", 0 - %"$$BoolUtils.orb_128_envptr_5202" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_128_5200", 1 - %"$isRegistrarSenderAndOwned_5203" = load %TName_Bool*, %TName_Bool** %isRegistrarSenderAndOwned, align 8 - %"$$BoolUtils.orb_128_call_5204" = call %TName_Bool* %"$$BoolUtils.orb_128_fptr_5201"(i8* %"$$BoolUtils.orb_128_envptr_5202", %TName_Bool* %"$isRegistrarSenderAndOwned_5203"), !dbg !471 - store %TName_Bool* %"$$BoolUtils.orb_128_call_5204", %TName_Bool** %"$BoolUtils.orb_129", align 8, !dbg !471 - %"$$BoolUtils.orb_129_5205" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_129", align 8 - store %TName_Bool* %"$$BoolUtils.orb_129_5205", %TName_Bool** %isOkRecordOwner, align 8, !dbg !471 - %"$gasrem_5206" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5207" = icmp ugt i64 1, %"$gasrem_5206" - br i1 %"$gascmp_5207", label %"$out_of_gas_5208", label %"$have_gas_5209" - -"$out_of_gas_5208": ; preds = %"$have_gas_5193" - call void @_out_of_gas() - br label %"$have_gas_5209" - -"$have_gas_5209": ; preds = %"$out_of_gas_5208", %"$have_gas_5193" - %"$consume_5210" = sub i64 %"$gasrem_5206", 1 - store i64 %"$consume_5210", i64* @_gasrem, align 8 - %"$BoolUtils.andb_130" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_5211" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_5212" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5211", 0 - %"$BoolUtils.andb_envptr_5213" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5211", 1 - %"$isOkSender_5214" = load %TName_Bool*, %TName_Bool** %isOkSender, align 8 - %"$BoolUtils.andb_call_5215" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_5212"(i8* %"$BoolUtils.andb_envptr_5213", %TName_Bool* %"$isOkSender_5214"), !dbg !472 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_5215", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_130", align 8, !dbg !472 - %"$BoolUtils.andb_131" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_130_5216" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_130", align 8 - %"$$BoolUtils.andb_130_fptr_5217" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_130_5216", 0 - %"$$BoolUtils.andb_130_envptr_5218" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_130_5216", 1 - %"$isOkRecordOwner_5219" = load %TName_Bool*, %TName_Bool** %isOkRecordOwner, align 8 - %"$$BoolUtils.andb_130_call_5220" = call %TName_Bool* %"$$BoolUtils.andb_130_fptr_5217"(i8* %"$$BoolUtils.andb_130_envptr_5218", %TName_Bool* %"$isOkRecordOwner_5219"), !dbg !472 - store %TName_Bool* %"$$BoolUtils.andb_130_call_5220", %TName_Bool** %"$BoolUtils.andb_131", align 8, !dbg !472 - %"$$BoolUtils.andb_131_5221" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_131", align 8 - store %TName_Bool* %"$$BoolUtils.andb_131_5221", %TName_Bool** %isOk, align 8, !dbg !472 - %"$gasrem_5222" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5223" = icmp ugt i64 2, %"$gasrem_5222" - br i1 %"$gascmp_5223", label %"$out_of_gas_5224", label %"$have_gas_5225" - -"$out_of_gas_5224": ; preds = %"$have_gas_5209" - call void @_out_of_gas() - br label %"$have_gas_5225" - -"$have_gas_5225": ; preds = %"$out_of_gas_5224", %"$have_gas_5209" - %"$consume_5226" = sub i64 %"$gasrem_5222", 2 - store i64 %"$consume_5226", i64* @_gasrem, align 8 - %"$isOk_5228" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_5229" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5228", i32 0, i32 0 - %"$isOk_tag_5230" = load i8, i8* %"$isOk_tag_5229", align 1 - switch i8 %"$isOk_tag_5230", label %"$empty_default_5231" [ - i8 0, label %"$True_5232" - i8 1, label %"$False_5345" - ], !dbg !473 - -"$True_5232": ; preds = %"$have_gas_5225" - %"$isOk_5233" = bitcast %TName_Bool* %"$isOk_5228" to %CName_True* - %"$gasrem_5234" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5235" = icmp ugt i64 2, %"$gasrem_5234" - br i1 %"$gascmp_5235", label %"$out_of_gas_5236", label %"$have_gas_5237" - -"$out_of_gas_5236": ; preds = %"$True_5232" - call void @_out_of_gas() - br label %"$have_gas_5237" - -"$have_gas_5237": ; preds = %"$out_of_gas_5236", %"$True_5232" - %"$consume_5238" = sub i64 %"$gasrem_5234", 2 - store i64 %"$consume_5238", i64* @_gasrem, align 8 - %"$recordExists_5240" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$recordExists_tag_5241" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_5240", i32 0, i32 0 - %"$recordExists_tag_5242" = load i8, i8* %"$recordExists_tag_5241", align 1 - switch i8 %"$recordExists_tag_5242", label %"$default_5243" [ - i8 1, label %"$False_5244" - ], !dbg !474 - -"$False_5244": ; preds = %"$have_gas_5237" - %"$recordExists_5245" = bitcast %TName_Bool* %"$recordExists_5240" to %CName_False* - %"$gasrem_5246" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5247" = icmp ugt i64 1, %"$gasrem_5246" - br i1 %"$gascmp_5247", label %"$out_of_gas_5248", label %"$have_gas_5249" - -"$out_of_gas_5248": ; preds = %"$False_5244" - call void @_out_of_gas() - br label %"$have_gas_5249" - -"$have_gas_5249": ; preds = %"$out_of_gas_5248", %"$False_5244" - %"$consume_5250" = sub i64 %"$gasrem_5246", 1 - store i64 %"$consume_5250", i64* @_gasrem, align 8 + %"$gasrem_4781" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4782" = icmp ugt i64 1, %"$gasrem_4781" + br i1 %"$gascmp_4782", label %"$out_of_gas_4783", label %"$have_gas_4784" + +"$out_of_gas_4783": ; preds = %"$have_gas_4779" + call void @_out_of_gas() + br label %"$have_gas_4784" + +"$have_gas_4784": ; preds = %"$out_of_gas_4783", %"$have_gas_4779" + %"$consume_4785" = sub i64 %"$gasrem_4781", 1 + store i64 %"$consume_4785", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Contains_4786" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8 + %"$ud-registry.listByStr20Contains_fptr_4787" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_4786", 0 + %"$ud-registry.listByStr20Contains_envptr_4788" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_4786", 1 + %"$currentAdmins_4789" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Contains__sender_4790" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.listByStr20Contains__sender_4790", align 1 + %"$ud-registry.listByStr20Contains_call_4791" = call %TName_Bool* %"$ud-registry.listByStr20Contains_fptr_4787"(i8* %"$ud-registry.listByStr20Contains_envptr_4788", %TName_List_ByStr20* %"$currentAdmins_4789", [20 x i8]* %"$ud-registry.listByStr20Contains__sender_4790"), !dbg !461 + store %TName_Bool* %"$ud-registry.listByStr20Contains_call_4791", %TName_Bool** %isOk, align 8, !dbg !461 + %"$gasrem_4792" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4793" = icmp ugt i64 2, %"$gasrem_4792" + br i1 %"$gascmp_4793", label %"$out_of_gas_4794", label %"$have_gas_4795" + +"$out_of_gas_4794": ; preds = %"$have_gas_4784" + call void @_out_of_gas() + br label %"$have_gas_4795" + +"$have_gas_4795": ; preds = %"$out_of_gas_4794", %"$have_gas_4784" + %"$consume_4796" = sub i64 %"$gasrem_4792", 2 + store i64 %"$consume_4796", i64* @_gasrem, align 8 + %"$isOk_4798" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_4799" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_4798", i32 0, i32 0 + %"$isOk_tag_4800" = load i8, i8* %"$isOk_tag_4799", align 1 + switch i8 %"$isOk_tag_4800", label %"$default_4801" [ + i8 0, label %"$True_4802" + ], !dbg !462 + +"$True_4802": ; preds = %"$have_gas_4795" + %"$isOk_4803" = bitcast %TName_Bool* %"$isOk_4798" to %CName_True* + %"$gasrem_4804" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4805" = icmp ugt i64 1, %"$gasrem_4804" + br i1 %"$gascmp_4805", label %"$out_of_gas_4806", label %"$have_gas_4807" + +"$out_of_gas_4806": ; preds = %"$True_4802" + call void @_out_of_gas() + br label %"$have_gas_4807" + +"$have_gas_4807": ; preds = %"$out_of_gas_4806", %"$True_4802" + %"$consume_4808" = sub i64 %"$gasrem_4804", 1 + store i64 %"$consume_4808", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_5251" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5252" = icmp ugt i64 1, %"$gasrem_5251" - br i1 %"$gascmp_5252", label %"$out_of_gas_5253", label %"$have_gas_5254" - -"$out_of_gas_5253": ; preds = %"$have_gas_5249" - call void @_out_of_gas() - br label %"$have_gas_5254" - -"$have_gas_5254": ; preds = %"$out_of_gas_5253", %"$have_gas_5249" - %"$consume_5255" = sub i64 %"$gasrem_5251", 1 - store i64 %"$consume_5255", i64* @_gasrem, align 8 - %"$ud-registry.eNewDomain_118" = alloca { i8* (i8*, %String)*, i8* }, align 8 - %"$ud-registry.eNewDomain_5256" = load { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eNewDomain, align 8 - %"$ud-registry.eNewDomain_fptr_5257" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_5256", 0 - %"$ud-registry.eNewDomain_envptr_5258" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_5256", 1 - %"$ud-registry.eNewDomain_rootNode_5259" = alloca [32 x i8], align 1 - %"$rootNode_5260" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 - store [32 x i8] %"$rootNode_5260", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_5259", align 1 - %"$ud-registry.eNewDomain_call_5261" = call { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_fptr_5257"(i8* %"$ud-registry.eNewDomain_envptr_5258", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_5259"), !dbg !477 - store { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_call_5261", { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_118", align 8, !dbg !477 - %"$ud-registry.eNewDomain_119" = alloca i8*, align 8 - %"$$ud-registry.eNewDomain_118_5262" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_118", align 8 - %"$$ud-registry.eNewDomain_118_fptr_5263" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_118_5262", 0 - %"$$ud-registry.eNewDomain_118_envptr_5264" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_118_5262", 1 - %"$$ud-registry.eNewDomain_118_call_5265" = call i8* %"$$ud-registry.eNewDomain_118_fptr_5263"(i8* %"$$ud-registry.eNewDomain_118_envptr_5264", %String %label), !dbg !477 - store i8* %"$$ud-registry.eNewDomain_118_call_5265", i8** %"$ud-registry.eNewDomain_119", align 8, !dbg !477 - %"$$ud-registry.eNewDomain_119_5266" = load i8*, i8** %"$ud-registry.eNewDomain_119", align 8 - store i8* %"$$ud-registry.eNewDomain_119_5266", i8** %e, align 8, !dbg !477 - %"$e_5267" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_5269" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5267") - %"$gasrem_5270" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5271" = icmp ugt i64 %"$_literal_cost_call_5269", %"$gasrem_5270" - br i1 %"$gascmp_5271", label %"$out_of_gas_5272", label %"$have_gas_5273" - -"$out_of_gas_5272": ; preds = %"$have_gas_5254" - call void @_out_of_gas() - br label %"$have_gas_5273" - -"$have_gas_5273": ; preds = %"$out_of_gas_5272", %"$have_gas_5254" - %"$consume_5274" = sub i64 %"$gasrem_5270", %"$_literal_cost_call_5269" - store i64 %"$consume_5274", i64* @_gasrem, align 8 - %"$execptr_load_5275" = load i8*, i8** @_execptr, align 8 - %"$e_5276" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_5275", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5276"), !dbg !480 - br label %"$matchsucc_5239" - -"$default_5243": ; preds = %"$have_gas_5237" - br label %"$joinp_8" - -"$joinp_8": ; preds = %"$default_5243" - br label %"$matchsucc_5239" - -"$matchsucc_5239": ; preds = %"$have_gas_5273", %"$joinp_8" - %"$gasrem_5277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5278" = icmp ugt i64 1, %"$gasrem_5277" - br i1 %"$gascmp_5278", label %"$out_of_gas_5279", label %"$have_gas_5280" + %"$gasrem_4809" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4810" = icmp ugt i64 1, %"$gasrem_4809" + br i1 %"$gascmp_4810", label %"$out_of_gas_4811", label %"$have_gas_4812" + +"$out_of_gas_4811": ; preds = %"$have_gas_4807" + call void @_out_of_gas() + br label %"$have_gas_4812" + +"$have_gas_4812": ; preds = %"$out_of_gas_4811", %"$have_gas_4807" + %"$consume_4813" = sub i64 %"$gasrem_4809", 1 + store i64 %"$consume_4813", i64* @_gasrem, align 8 + %"$ud-registry.eNewRegistrar_58" = alloca i8*, align 8 + %"$ud-registry.eNewRegistrar_4814" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8 + %"$ud-registry.eNewRegistrar_fptr_4815" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_4814", 0 + %"$ud-registry.eNewRegistrar_envptr_4816" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_4814", 1 + %"$ud-registry.eNewRegistrar_address_4817" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.eNewRegistrar_address_4817", align 1 + %"$ud-registry.eNewRegistrar_call_4818" = call i8* %"$ud-registry.eNewRegistrar_fptr_4815"(i8* %"$ud-registry.eNewRegistrar_envptr_4816", [20 x i8]* %"$ud-registry.eNewRegistrar_address_4817"), !dbg !463 + store i8* %"$ud-registry.eNewRegistrar_call_4818", i8** %"$ud-registry.eNewRegistrar_58", align 8, !dbg !463 + %"$$ud-registry.eNewRegistrar_58_4819" = load i8*, i8** %"$ud-registry.eNewRegistrar_58", align 8 + store i8* %"$$ud-registry.eNewRegistrar_58_4819", i8** %e, align 8, !dbg !463 + %"$e_4820" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_4822" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4820") + %"$gasrem_4823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4824" = icmp ugt i64 %"$_literal_cost_call_4822", %"$gasrem_4823" + br i1 %"$gascmp_4824", label %"$out_of_gas_4825", label %"$have_gas_4826" -"$out_of_gas_5279": ; preds = %"$matchsucc_5239" +"$out_of_gas_4825": ; preds = %"$have_gas_4812" call void @_out_of_gas() - br label %"$have_gas_5280" + br label %"$have_gas_4826" -"$have_gas_5280": ; preds = %"$out_of_gas_5279", %"$matchsucc_5239" - %"$consume_5281" = sub i64 %"$gasrem_5277", 1 - store i64 %"$consume_5281", i64* @_gasrem, align 8 - %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_5282" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5283" = icmp ugt i64 1, %"$gasrem_5282" - br i1 %"$gascmp_5283", label %"$out_of_gas_5284", label %"$have_gas_5285" - -"$out_of_gas_5284": ; preds = %"$have_gas_5280" - call void @_out_of_gas() - br label %"$have_gas_5285" - -"$have_gas_5285": ; preds = %"$out_of_gas_5284", %"$have_gas_5280" - %"$consume_5286" = sub i64 %"$gasrem_5282", 1 - store i64 %"$consume_5286", i64* @_gasrem, align 8 - %"$adtval_5287_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_5287_salloc" = call i8* @_salloc(i8* %"$adtval_5287_load", i64 41) - %"$adtval_5287" = bitcast i8* %"$adtval_5287_salloc" to %CName_ud-registry.Record* - %"$adtgep_5288" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5287", i32 0, i32 0 - store i8 0, i8* %"$adtgep_5288", align 1 - %"$adtgep_5289" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5287", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_5289", align 1 - %"$adtgep_5290" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5287", i32 0, i32 2 - store [20 x i8] %resolver, [20 x i8]* %"$adtgep_5290", align 1 - %"$adtptr_5291" = bitcast %CName_ud-registry.Record* %"$adtval_5287" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_5291", %TName_ud-registry.Record** %newRecord, align 8, !dbg !481 - %"$newRecord_5292" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_5292_5293" = bitcast %TName_ud-registry.Record* %"$newRecord_5292" to i8* - %"$_literal_cost_call_5294" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", i8* %"$$newRecord_5292_5293") - %"$gasadd_5295" = add i64 %"$_literal_cost_call_5294", 1 - %"$gasrem_5296" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5297" = icmp ugt i64 %"$gasadd_5295", %"$gasrem_5296" - br i1 %"$gascmp_5297", label %"$out_of_gas_5298", label %"$have_gas_5299" - -"$out_of_gas_5298": ; preds = %"$have_gas_5285" - call void @_out_of_gas() - br label %"$have_gas_5299" - -"$have_gas_5299": ; preds = %"$out_of_gas_5298", %"$have_gas_5285" - %"$consume_5300" = sub i64 %"$gasrem_5296", %"$gasadd_5295" - store i64 %"$consume_5300", i64* @_gasrem, align 8 - %"$indices_buf_5301_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5301_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5301_salloc_load", i64 32) - %"$indices_buf_5301_salloc" = bitcast i8* %"$indices_buf_5301_salloc_salloc" to [32 x i8]* - %"$indices_buf_5301" = bitcast [32 x i8]* %"$indices_buf_5301_salloc" to i8* - %"$node_5302" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_5303" = getelementptr i8, i8* %"$indices_buf_5301", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_5303" to [32 x i8]* - store [32 x i8] %"$node_5302", [32 x i8]* %indices_cast2, align 1 - %"$execptr_load_5304" = load i8*, i8** @_execptr, align 8 - %"$newRecord_5306" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_5307" = bitcast %TName_ud-registry.Record* %"$newRecord_5306" to i8* - call void @_update_field(i8* %"$execptr_load_5304", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5305", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_5301", i8* %"$update_value_5307"), !dbg !482 - %"$gasrem_5308" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5309" = icmp ugt i64 1, %"$gasrem_5308" - br i1 %"$gascmp_5309", label %"$out_of_gas_5310", label %"$have_gas_5311" - -"$out_of_gas_5310": ; preds = %"$have_gas_5299" - call void @_out_of_gas() - br label %"$have_gas_5311" - -"$have_gas_5311": ; preds = %"$out_of_gas_5310", %"$have_gas_5299" - %"$consume_5312" = sub i64 %"$gasrem_5308", 1 - store i64 %"$consume_5312", i64* @_gasrem, align 8 - %e3 = alloca i8*, align 8 - %"$gasrem_5313" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5314" = icmp ugt i64 1, %"$gasrem_5313" - br i1 %"$gascmp_5314", label %"$out_of_gas_5315", label %"$have_gas_5316" - -"$out_of_gas_5315": ; preds = %"$have_gas_5311" - call void @_out_of_gas() - br label %"$have_gas_5316" - -"$have_gas_5316": ; preds = %"$out_of_gas_5315", %"$have_gas_5311" - %"$consume_5317" = sub i64 %"$gasrem_5313", 1 - store i64 %"$consume_5317", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_115" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_5318" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_5319" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5318", 0 - %"$ud-registry.eConfigured_envptr_5320" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5318", 1 - %"$ud-registry.eConfigured_node_5321" = alloca [32 x i8], align 1 - %"$node_5322" = load [32 x i8], [32 x i8]* %node, align 1 - store [32 x i8] %"$node_5322", [32 x i8]* %"$ud-registry.eConfigured_node_5321", align 1 - %"$ud-registry.eConfigured_call_5323" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_5319"(i8* %"$ud-registry.eConfigured_envptr_5320", [32 x i8]* %"$ud-registry.eConfigured_node_5321"), !dbg !483 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_5323", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_115", align 8, !dbg !483 - %"$ud-registry.eConfigured_116" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_115_5324" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_115", align 8 - %"$$ud-registry.eConfigured_115_fptr_5325" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_115_5324", 0 - %"$$ud-registry.eConfigured_115_envptr_5326" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_115_5324", 1 - %"$$ud-registry.eConfigured_115_owner_5327" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_115_owner_5327", align 1 - %"$$ud-registry.eConfigured_115_call_5328" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_115_fptr_5325"(i8* %"$$ud-registry.eConfigured_115_envptr_5326", [20 x i8]* %"$$ud-registry.eConfigured_115_owner_5327"), !dbg !483 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_115_call_5328", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_116", align 8, !dbg !483 - %"$ud-registry.eConfigured_117" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_116_5329" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_116", align 8 - %"$$ud-registry.eConfigured_116_fptr_5330" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_116_5329", 0 - %"$$ud-registry.eConfigured_116_envptr_5331" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_116_5329", 1 - %"$$ud-registry.eConfigured_116_resolver_5332" = alloca [20 x i8], align 1 - store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_116_resolver_5332", align 1 - %"$$ud-registry.eConfigured_116_call_5333" = call i8* %"$$ud-registry.eConfigured_116_fptr_5330"(i8* %"$$ud-registry.eConfigured_116_envptr_5331", [20 x i8]* %"$$ud-registry.eConfigured_116_resolver_5332"), !dbg !483 - store i8* %"$$ud-registry.eConfigured_116_call_5333", i8** %"$ud-registry.eConfigured_117", align 8, !dbg !483 - %"$$ud-registry.eConfigured_117_5334" = load i8*, i8** %"$ud-registry.eConfigured_117", align 8 - store i8* %"$$ud-registry.eConfigured_117_5334", i8** %e3, align 8, !dbg !483 - %"$e_5335" = load i8*, i8** %e3, align 8 - %"$_literal_cost_call_5337" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5335") - %"$gasrem_5338" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5339" = icmp ugt i64 %"$_literal_cost_call_5337", %"$gasrem_5338" - br i1 %"$gascmp_5339", label %"$out_of_gas_5340", label %"$have_gas_5341" - -"$out_of_gas_5340": ; preds = %"$have_gas_5316" - call void @_out_of_gas() - br label %"$have_gas_5341" - -"$have_gas_5341": ; preds = %"$out_of_gas_5340", %"$have_gas_5316" - %"$consume_5342" = sub i64 %"$gasrem_5338", %"$_literal_cost_call_5337" - store i64 %"$consume_5342", i64* @_gasrem, align 8 - %"$execptr_load_5343" = load i8*, i8** @_execptr, align 8 - %"$e_5344" = load i8*, i8** %e3, align 8 - call void @_event(i8* %"$execptr_load_5343", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5344"), !dbg !484 - br label %"$matchsucc_5227" - -"$False_5345": ; preds = %"$have_gas_5225" - %"$isOk_5346" = bitcast %TName_Bool* %"$isOk_5228" to %CName_False* - %"$gasrem_5347" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5348" = icmp ugt i64 1, %"$gasrem_5347" - br i1 %"$gascmp_5348", label %"$out_of_gas_5349", label %"$have_gas_5350" - -"$out_of_gas_5349": ; preds = %"$False_5345" - call void @_out_of_gas() - br label %"$have_gas_5350" - -"$have_gas_5350": ; preds = %"$out_of_gas_5349", %"$False_5345" - %"$consume_5351" = sub i64 %"$gasrem_5347", 1 - store i64 %"$consume_5351", i64* @_gasrem, align 8 - %e4 = alloca i8*, align 8 - %"$gasrem_5352" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5353" = icmp ugt i64 1, %"$gasrem_5352" - br i1 %"$gascmp_5353", label %"$out_of_gas_5354", label %"$have_gas_5355" +"$have_gas_4826": ; preds = %"$out_of_gas_4825", %"$have_gas_4812" + %"$consume_4827" = sub i64 %"$gasrem_4823", %"$_literal_cost_call_4822" + store i64 %"$consume_4827", i64* @_gasrem, align 8 + %"$execptr_load_4828" = load i8*, i8** @_execptr, align 8 + %"$e_4829" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_4828", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4829"), !dbg !466 + %"$_literal_cost_address_4830" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_4830", align 1 + %"$$_literal_cost_address_4830_4831" = bitcast [20 x i8]* %"$_literal_cost_address_4830" to i8* + %"$_literal_cost_call_4832" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i8* %"$$_literal_cost_address_4830_4831") + %"$gasrem_4833" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4834" = icmp ugt i64 %"$_literal_cost_call_4832", %"$gasrem_4833" + br i1 %"$gascmp_4834", label %"$out_of_gas_4835", label %"$have_gas_4836" -"$out_of_gas_5354": ; preds = %"$have_gas_5350" +"$out_of_gas_4835": ; preds = %"$have_gas_4826" call void @_out_of_gas() - br label %"$have_gas_5355" - -"$have_gas_5355": ; preds = %"$out_of_gas_5354", %"$have_gas_5350" - %"$consume_5356" = sub i64 %"$gasrem_5352", 1 - store i64 %"$consume_5356", i64* @_gasrem, align 8 - %m = alloca %String, align 8 - %"$gasrem_5357" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5358" = icmp ugt i64 1, %"$gasrem_5357" - br i1 %"$gascmp_5358", label %"$out_of_gas_5359", label %"$have_gas_5360" - -"$out_of_gas_5359": ; preds = %"$have_gas_5355" - call void @_out_of_gas() - br label %"$have_gas_5360" - -"$have_gas_5360": ; preds = %"$out_of_gas_5359", %"$have_gas_5355" - %"$consume_5361" = sub i64 %"$gasrem_5357", 1 - store i64 %"$consume_5361", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_5362", i32 0, i32 0), i32 12 }, %String* %m, align 8, !dbg !485 - %"$gasrem_5363" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5364" = icmp ugt i64 1, %"$gasrem_5363" - br i1 %"$gascmp_5364", label %"$out_of_gas_5365", label %"$have_gas_5366" - -"$out_of_gas_5365": ; preds = %"$have_gas_5360" - call void @_out_of_gas() - br label %"$have_gas_5366" - -"$have_gas_5366": ; preds = %"$out_of_gas_5365", %"$have_gas_5360" - %"$consume_5367" = sub i64 %"$gasrem_5363", 1 - store i64 %"$consume_5367", i64* @_gasrem, align 8 - %"$ud-registry.eError_120" = alloca i8*, align 8 - %"$ud-registry.eError_5368" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_5369" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5368", 0 - %"$ud-registry.eError_envptr_5370" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5368", 1 - %"$m_5371" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_5372" = call i8* %"$ud-registry.eError_fptr_5369"(i8* %"$ud-registry.eError_envptr_5370", %String %"$m_5371"), !dbg !487 - store i8* %"$ud-registry.eError_call_5372", i8** %"$ud-registry.eError_120", align 8, !dbg !487 - %"$$ud-registry.eError_120_5373" = load i8*, i8** %"$ud-registry.eError_120", align 8 - store i8* %"$$ud-registry.eError_120_5373", i8** %e4, align 8, !dbg !487 - %"$e_5374" = load i8*, i8** %e4, align 8 - %"$_literal_cost_call_5376" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5374") - %"$gasrem_5377" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5378" = icmp ugt i64 %"$_literal_cost_call_5376", %"$gasrem_5377" - br i1 %"$gascmp_5378", label %"$out_of_gas_5379", label %"$have_gas_5380" - -"$out_of_gas_5379": ; preds = %"$have_gas_5366" - call void @_out_of_gas() - br label %"$have_gas_5380" - -"$have_gas_5380": ; preds = %"$out_of_gas_5379", %"$have_gas_5366" - %"$consume_5381" = sub i64 %"$gasrem_5377", %"$_literal_cost_call_5376" - store i64 %"$consume_5381", i64* @_gasrem, align 8 - %"$execptr_load_5382" = load i8*, i8** @_execptr, align 8 - %"$e_5383" = load i8*, i8** %e4, align 8 - call void @_event(i8* %"$execptr_load_5382", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5383"), !dbg !488 - br label %"$matchsucc_5227" - -"$empty_default_5231": ; preds = %"$have_gas_5225" - br label %"$matchsucc_5227" - -"$matchsucc_5227": ; preds = %"$have_gas_5380", %"$have_gas_5341", %"$empty_default_5231" - ret void -} - -define void @bestow(i8* %0) !dbg !489 { -entry: - %"$_amount_5385" = getelementptr i8, i8* %0, i32 0 - %"$_amount_5386" = bitcast i8* %"$_amount_5385" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_5386", align 8 - %"$_origin_5387" = getelementptr i8, i8* %0, i32 16 - %"$_origin_5388" = bitcast i8* %"$_origin_5387" to [20 x i8]* - %"$_sender_5389" = getelementptr i8, i8* %0, i32 36 - %"$_sender_5390" = bitcast i8* %"$_sender_5389" to [20 x i8]* - %"$label_5391" = getelementptr i8, i8* %0, i32 56 - %"$label_5392" = bitcast i8* %"$label_5391" to %String* - %label = load %String, %String* %"$label_5392", align 8 - %"$owner_5393" = getelementptr i8, i8* %0, i32 72 - %"$owner_5394" = bitcast i8* %"$owner_5393" to [20 x i8]* - %"$resolver_5395" = getelementptr i8, i8* %0, i32 92 - %"$resolver_5396" = bitcast i8* %"$resolver_5395" to [20 x i8]* - call void @"$bestow_4955"(%Uint128 %_amount, [20 x i8]* %"$_origin_5388", [20 x i8]* %"$_sender_5390", %String %label, [20 x i8]* %"$owner_5394", [20 x i8]* %"$resolver_5396"), !dbg !490 - ret void -} + br label %"$have_gas_4836" -define internal void @"$setRegistrar_5397"(%Uint128 %_amount, [20 x i8]* %"$_origin_5398", [20 x i8]* %"$_sender_5399", [20 x i8]* %"$address_5400") !dbg !491 { -entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_5398", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_5399", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_5400", align 1 - %currentAdmins = alloca %TName_List_ByStr20*, align 8 - %"$execptr_load_5402" = load i8*, i8** @_execptr, align 8 - %"$currentAdmins_call_5403" = call i8* @_fetch_field(i8* %"$execptr_load_5402", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_5401", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i32 0, i8* null, i32 1), !dbg !492 - %"$currentAdmins_5404" = bitcast i8* %"$currentAdmins_call_5403" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$currentAdmins_5404", %TName_List_ByStr20** %currentAdmins, align 8 - %"$currentAdmins_5405" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$$currentAdmins_5405_5406" = bitcast %TName_List_ByStr20* %"$currentAdmins_5405" to i8* - %"$_literal_cost_call_5407" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i8* %"$$currentAdmins_5405_5406") - %"$gasadd_5408" = add i64 %"$_literal_cost_call_5407", 0 - %"$gasrem_5409" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5410" = icmp ugt i64 %"$gasadd_5408", %"$gasrem_5409" - br i1 %"$gascmp_5410", label %"$out_of_gas_5411", label %"$have_gas_5412" - -"$out_of_gas_5411": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_5412" - -"$have_gas_5412": ; preds = %"$out_of_gas_5411", %entry - %"$consume_5413" = sub i64 %"$gasrem_5409", %"$gasadd_5408" - store i64 %"$consume_5413", i64* @_gasrem, align 8 - %"$gasrem_5414" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5415" = icmp ugt i64 1, %"$gasrem_5414" - br i1 %"$gascmp_5415", label %"$out_of_gas_5416", label %"$have_gas_5417" - -"$out_of_gas_5416": ; preds = %"$have_gas_5412" - call void @_out_of_gas() - br label %"$have_gas_5417" - -"$have_gas_5417": ; preds = %"$out_of_gas_5416", %"$have_gas_5412" - %"$consume_5418" = sub i64 %"$gasrem_5414", 1 - store i64 %"$consume_5418", i64* @_gasrem, align 8 - %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_5419" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5420" = icmp ugt i64 1, %"$gasrem_5419" - br i1 %"$gascmp_5420", label %"$out_of_gas_5421", label %"$have_gas_5422" - -"$out_of_gas_5421": ; preds = %"$have_gas_5417" - call void @_out_of_gas() - br label %"$have_gas_5422" - -"$have_gas_5422": ; preds = %"$out_of_gas_5421", %"$have_gas_5417" - %"$consume_5423" = sub i64 %"$gasrem_5419", 1 - store i64 %"$consume_5423", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Contains_135" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_5424" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8 - %"$ud-registry.listByStr20Contains_fptr_5425" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_5424", 0 - %"$ud-registry.listByStr20Contains_envptr_5426" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_5424", 1 - %"$currentAdmins_5427" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Contains_call_5428" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_5425"(i8* %"$ud-registry.listByStr20Contains_envptr_5426", %TName_List_ByStr20* %"$currentAdmins_5427"), !dbg !493 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_5428", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_135", align 8, !dbg !493 - %"$ud-registry.listByStr20Contains_136" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_135_5429" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_135", align 8 - %"$$ud-registry.listByStr20Contains_135_fptr_5430" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_135_5429", 0 - %"$$ud-registry.listByStr20Contains_135_envptr_5431" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_135_5429", 1 - %"$$ud-registry.listByStr20Contains_135__sender_5432" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_135__sender_5432", align 1 - %"$$ud-registry.listByStr20Contains_135_call_5433" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_135_fptr_5430"(i8* %"$$ud-registry.listByStr20Contains_135_envptr_5431", [20 x i8]* %"$$ud-registry.listByStr20Contains_135__sender_5432"), !dbg !493 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_135_call_5433", %TName_Bool** %"$ud-registry.listByStr20Contains_136", align 8, !dbg !493 - %"$$ud-registry.listByStr20Contains_136_5434" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_136", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_136_5434", %TName_Bool** %isOk, align 8, !dbg !493 - %"$gasrem_5435" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5436" = icmp ugt i64 2, %"$gasrem_5435" - br i1 %"$gascmp_5436", label %"$out_of_gas_5437", label %"$have_gas_5438" - -"$out_of_gas_5437": ; preds = %"$have_gas_5422" - call void @_out_of_gas() - br label %"$have_gas_5438" - -"$have_gas_5438": ; preds = %"$out_of_gas_5437", %"$have_gas_5422" - %"$consume_5439" = sub i64 %"$gasrem_5435", 2 - store i64 %"$consume_5439", i64* @_gasrem, align 8 - %"$isOk_5441" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_5442" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5441", i32 0, i32 0 - %"$isOk_tag_5443" = load i8, i8* %"$isOk_tag_5442", align 1 - switch i8 %"$isOk_tag_5443", label %"$default_5444" [ - i8 0, label %"$True_5445" - ], !dbg !494 - -"$True_5445": ; preds = %"$have_gas_5438" - %"$isOk_5446" = bitcast %TName_Bool* %"$isOk_5441" to %CName_True* - %"$gasrem_5447" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5448" = icmp ugt i64 1, %"$gasrem_5447" - br i1 %"$gascmp_5448", label %"$out_of_gas_5449", label %"$have_gas_5450" - -"$out_of_gas_5449": ; preds = %"$True_5445" - call void @_out_of_gas() - br label %"$have_gas_5450" - -"$have_gas_5450": ; preds = %"$out_of_gas_5449", %"$True_5445" - %"$consume_5451" = sub i64 %"$gasrem_5447", 1 - store i64 %"$consume_5451", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 - %"$gasrem_5452" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5453" = icmp ugt i64 1, %"$gasrem_5452" - br i1 %"$gascmp_5453", label %"$out_of_gas_5454", label %"$have_gas_5455" - -"$out_of_gas_5454": ; preds = %"$have_gas_5450" - call void @_out_of_gas() - br label %"$have_gas_5455" - -"$have_gas_5455": ; preds = %"$out_of_gas_5454", %"$have_gas_5450" - %"$consume_5456" = sub i64 %"$gasrem_5452", 1 - store i64 %"$consume_5456", i64* @_gasrem, align 8 - %"$ud-registry.eNewRegistrar_134" = alloca i8*, align 8 - %"$ud-registry.eNewRegistrar_5457" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8 - %"$ud-registry.eNewRegistrar_fptr_5458" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_5457", 0 - %"$ud-registry.eNewRegistrar_envptr_5459" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_5457", 1 - %"$ud-registry.eNewRegistrar_address_5460" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-registry.eNewRegistrar_address_5460", align 1 - %"$ud-registry.eNewRegistrar_call_5461" = call i8* %"$ud-registry.eNewRegistrar_fptr_5458"(i8* %"$ud-registry.eNewRegistrar_envptr_5459", [20 x i8]* %"$ud-registry.eNewRegistrar_address_5460"), !dbg !495 - store i8* %"$ud-registry.eNewRegistrar_call_5461", i8** %"$ud-registry.eNewRegistrar_134", align 8, !dbg !495 - %"$$ud-registry.eNewRegistrar_134_5462" = load i8*, i8** %"$ud-registry.eNewRegistrar_134", align 8 - store i8* %"$$ud-registry.eNewRegistrar_134_5462", i8** %e, align 8, !dbg !495 - %"$e_5463" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_5465" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5463") - %"$gasrem_5466" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5467" = icmp ugt i64 %"$_literal_cost_call_5465", %"$gasrem_5466" - br i1 %"$gascmp_5467", label %"$out_of_gas_5468", label %"$have_gas_5469" - -"$out_of_gas_5468": ; preds = %"$have_gas_5455" - call void @_out_of_gas() - br label %"$have_gas_5469" - -"$have_gas_5469": ; preds = %"$out_of_gas_5468", %"$have_gas_5455" - %"$consume_5470" = sub i64 %"$gasrem_5466", %"$_literal_cost_call_5465" - store i64 %"$consume_5470", i64* @_gasrem, align 8 - %"$execptr_load_5471" = load i8*, i8** @_execptr, align 8 - %"$e_5472" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_5471", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5472"), !dbg !498 - %"$_literal_cost_address_5473" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_5473", align 1 - %"$$_literal_cost_address_5473_5474" = bitcast [20 x i8]* %"$_literal_cost_address_5473" to i8* - %"$_literal_cost_call_5475" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i8* %"$$_literal_cost_address_5473_5474") - %"$gasrem_5476" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5477" = icmp ugt i64 %"$_literal_cost_call_5475", %"$gasrem_5476" - br i1 %"$gascmp_5477", label %"$out_of_gas_5478", label %"$have_gas_5479" - -"$out_of_gas_5478": ; preds = %"$have_gas_5469" - call void @_out_of_gas() - br label %"$have_gas_5479" - -"$have_gas_5479": ; preds = %"$out_of_gas_5478", %"$have_gas_5469" - %"$consume_5480" = sub i64 %"$gasrem_5476", %"$_literal_cost_call_5475" - store i64 %"$consume_5480", i64* @_gasrem, align 8 - %"$execptr_load_5481" = load i8*, i8** @_execptr, align 8 - %"$update_value_5483" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$update_value_5483", align 1 - %"$update_value_5484" = bitcast [20 x i8]* %"$update_value_5483" to i8* - call void @_update_field(i8* %"$execptr_load_5481", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_5482", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i32 0, i8* null, i8* %"$update_value_5484"), !dbg !499 - br label %"$matchsucc_5440" - -"$default_5444": ; preds = %"$have_gas_5438" +"$have_gas_4836": ; preds = %"$out_of_gas_4835", %"$have_gas_4826" + %"$consume_4837" = sub i64 %"$gasrem_4833", %"$_literal_cost_call_4832" + store i64 %"$consume_4837", i64* @_gasrem, align 8 + %"$execptr_load_4838" = load i8*, i8** @_execptr, align 8 + %"$update_value_4840" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$update_value_4840", align 1 + %"$update_value_4841" = bitcast [20 x i8]* %"$update_value_4840" to i8* + call void @_update_field(i8* %"$execptr_load_4838", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_4839", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i32 0, i8* null, i8* %"$update_value_4841"), !dbg !467 + br label %"$matchsucc_4797" + +"$default_4801": ; preds = %"$have_gas_4795" br label %"$joinp_9" -"$joinp_9": ; preds = %"$default_5444" - br label %"$matchsucc_5440" +"$joinp_9": ; preds = %"$default_4801" + br label %"$matchsucc_4797" -"$matchsucc_5440": ; preds = %"$have_gas_5479", %"$joinp_9" +"$matchsucc_4797": ; preds = %"$have_gas_4836", %"$joinp_9" ret void } -define void @setRegistrar(i8* %0) !dbg !500 { +define void @setRegistrar(i8* %0) !dbg !468 { entry: - %"$_amount_5486" = getelementptr i8, i8* %0, i32 0 - %"$_amount_5487" = bitcast i8* %"$_amount_5486" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_5487", align 8 - %"$_origin_5488" = getelementptr i8, i8* %0, i32 16 - %"$_origin_5489" = bitcast i8* %"$_origin_5488" to [20 x i8]* - %"$_sender_5490" = getelementptr i8, i8* %0, i32 36 - %"$_sender_5491" = bitcast i8* %"$_sender_5490" to [20 x i8]* - %"$address_5492" = getelementptr i8, i8* %0, i32 56 - %"$address_5493" = bitcast i8* %"$address_5492" to [20 x i8]* - call void @"$setRegistrar_5397"(%Uint128 %_amount, [20 x i8]* %"$_origin_5489", [20 x i8]* %"$_sender_5491", [20 x i8]* %"$address_5493"), !dbg !501 + %"$_amount_4843" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4844" = bitcast i8* %"$_amount_4843" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4844", align 8 + %"$_origin_4845" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4846" = bitcast i8* %"$_origin_4845" to [20 x i8]* + %"$_sender_4847" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4848" = bitcast i8* %"$_sender_4847" to [20 x i8]* + %"$address_4849" = getelementptr i8, i8* %0, i32 56 + %"$address_4850" = bitcast i8* %"$address_4849" to [20 x i8]* + call void @"$setRegistrar_4759"(%Uint128 %_amount, [20 x i8]* %"$_origin_4846", [20 x i8]* %"$_sender_4848", [20 x i8]* %"$address_4850"), !dbg !469 ret void } -define internal void @"$register_5494"(%Uint128 %_amount, [20 x i8]* %"$_origin_5495", [20 x i8]* %"$_sender_5496", [32 x i8]* %"$parent_5497", %String %label) !dbg !502 { +define internal void @"$register_4851"(%Uint128 %_amount, [20 x i8]* %"$_origin_4852", [20 x i8]* %"$_sender_4853", [32 x i8]* %"$parent_4854", %String %label) !dbg !470 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_5495", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_5496", align 1 - %parent = load [32 x i8], [32 x i8]* %"$parent_5497", align 1 - %"$gasrem_5498" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5499" = icmp ugt i64 1, %"$gasrem_5498" - br i1 %"$gascmp_5499", label %"$out_of_gas_5500", label %"$have_gas_5501" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4852", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4853", align 1 + %parent = load [32 x i8], [32 x i8]* %"$parent_4854", align 1 + %"$gasrem_4855" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4856" = icmp ugt i64 1, %"$gasrem_4855" + br i1 %"$gascmp_4856", label %"$out_of_gas_4857", label %"$have_gas_4858" -"$out_of_gas_5500": ; preds = %entry +"$out_of_gas_4857": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_5501" + br label %"$have_gas_4858" -"$have_gas_5501": ; preds = %"$out_of_gas_5500", %entry - %"$consume_5502" = sub i64 %"$gasrem_5498", 1 - store i64 %"$consume_5502", i64* @_gasrem, align 8 +"$have_gas_4858": ; preds = %"$out_of_gas_4857", %entry + %"$consume_4859" = sub i64 %"$gasrem_4855", 1 + store i64 %"$consume_4859", i64* @_gasrem, align 8 %node = alloca [32 x i8], align 1 - %"$gasrem_5503" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5504" = icmp ugt i64 1, %"$gasrem_5503" - br i1 %"$gascmp_5504", label %"$out_of_gas_5505", label %"$have_gas_5506" - -"$out_of_gas_5505": ; preds = %"$have_gas_5501" - call void @_out_of_gas() - br label %"$have_gas_5506" - -"$have_gas_5506": ; preds = %"$out_of_gas_5505", %"$have_gas_5501" - %"$consume_5507" = sub i64 %"$gasrem_5503", 1 - store i64 %"$consume_5507", i64* @_gasrem, align 8 - %"$ud-registry.parentLabelToNode_141" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$ud-registry.parentLabelToNode_5508" = load { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.parentLabelToNode, align 8 - %"$ud-registry.parentLabelToNode_fptr_5509" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_5508", 0 - %"$ud-registry.parentLabelToNode_envptr_5510" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_5508", 1 - %"$ud-registry.parentLabelToNode_parent_5511" = alloca [32 x i8], align 1 - store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_5511", align 1 - %"$ud-registry.parentLabelToNode_call_5512" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_5509"(i8* %"$ud-registry.parentLabelToNode_envptr_5510", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_5511"), !dbg !503 - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_5512", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_141", align 8, !dbg !503 - %"$ud-registry.parentLabelToNode_142" = alloca [32 x i8], align 1 - %"$$ud-registry.parentLabelToNode_141_5513" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_141", align 8 - %"$$ud-registry.parentLabelToNode_141_fptr_5514" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_141_5513", 0 - %"$$ud-registry.parentLabelToNode_141_envptr_5515" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_141_5513", 1 - %"$$ud-registry.parentLabelToNode_141_retalloca_5516" = alloca [32 x i8], align 1 - call void %"$$ud-registry.parentLabelToNode_141_fptr_5514"(i8* %"$$ud-registry.parentLabelToNode_141_envptr_5515", [32 x i8]* %"$$ud-registry.parentLabelToNode_141_retalloca_5516", %String %label), !dbg !503 - %"$$ud-registry.parentLabelToNode_141_ret_5517" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_141_retalloca_5516", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_141_ret_5517", [32 x i8]* %"$ud-registry.parentLabelToNode_142", align 1, !dbg !503 - %"$$ud-registry.parentLabelToNode_142_5518" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_142", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_142_5518", [32 x i8]* %node, align 1, !dbg !503 + %"$gasrem_4860" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4861" = icmp ugt i64 1, %"$gasrem_4860" + br i1 %"$gascmp_4861", label %"$out_of_gas_4862", label %"$have_gas_4863" + +"$out_of_gas_4862": ; preds = %"$have_gas_4858" + call void @_out_of_gas() + br label %"$have_gas_4863" + +"$have_gas_4863": ; preds = %"$out_of_gas_4862", %"$have_gas_4858" + %"$consume_4864" = sub i64 %"$gasrem_4860", 1 + store i64 %"$consume_4864", i64* @_gasrem, align 8 + %"$ud-registry.parentLabelToNode_4865" = load { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }* @ud-registry.parentLabelToNode, align 8 + %"$ud-registry.parentLabelToNode_fptr_4866" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4865", 0 + %"$ud-registry.parentLabelToNode_envptr_4867" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4865", 1 + %"$ud-registry.parentLabelToNode_parent_4868" = alloca [32 x i8], align 1 + store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4868", align 1 + %"$ud-registry.parentLabelToNode_retalloca_4869" = alloca [32 x i8], align 1 + call void %"$ud-registry.parentLabelToNode_fptr_4866"(i8* %"$ud-registry.parentLabelToNode_envptr_4867", [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4869", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4868", %String %label), !dbg !471 + %"$ud-registry.parentLabelToNode_ret_4870" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4869", align 1 + store [32 x i8] %"$ud-registry.parentLabelToNode_ret_4870", [32 x i8]* %node, align 1, !dbg !471 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_5519_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5519_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5519_salloc_load", i64 32) - %"$indices_buf_5519_salloc" = bitcast i8* %"$indices_buf_5519_salloc_salloc" to [32 x i8]* - %"$indices_buf_5519" = bitcast [32 x i8]* %"$indices_buf_5519_salloc" to i8* - %"$node_5520" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_5521" = getelementptr i8, i8* %"$indices_buf_5519", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_5521" to [32 x i8]* - store [32 x i8] %"$node_5520", [32 x i8]* %indices_cast, align 1 - %"$execptr_load_5523" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_5524" = call i8* @_fetch_field(i8* %"$execptr_load_5523", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5522", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_5519", i32 1), !dbg !504 - %"$maybeRecord_5525" = bitcast i8* %"$maybeRecord_call_5524" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_5525", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_5526" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_5526_5527" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5526" to i8* - %"$_literal_cost_call_5528" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_5526_5527") - %"$gasadd_5529" = add i64 %"$_literal_cost_call_5528", 0 - %"$gasadd_5530" = add i64 %"$gasadd_5529", 1 - %"$gasrem_5531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5532" = icmp ugt i64 %"$gasadd_5530", %"$gasrem_5531" - br i1 %"$gascmp_5532", label %"$out_of_gas_5533", label %"$have_gas_5534" - -"$out_of_gas_5533": ; preds = %"$have_gas_5506" - call void @_out_of_gas() - br label %"$have_gas_5534" - -"$have_gas_5534": ; preds = %"$out_of_gas_5533", %"$have_gas_5506" - %"$consume_5535" = sub i64 %"$gasrem_5531", %"$gasadd_5530" - store i64 %"$consume_5535", i64* @_gasrem, align 8 + %"$indices_buf_4871_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4871_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4871_salloc_load", i64 32) + %"$indices_buf_4871_salloc" = bitcast i8* %"$indices_buf_4871_salloc_salloc" to [32 x i8]* + %"$indices_buf_4871" = bitcast [32 x i8]* %"$indices_buf_4871_salloc" to i8* + %"$node_4872" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4873" = getelementptr i8, i8* %"$indices_buf_4871", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4873" to [32 x i8]* + store [32 x i8] %"$node_4872", [32 x i8]* %indices_cast, align 1 + %"$execptr_load_4875" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_4876" = call i8* @_fetch_field(i8* %"$execptr_load_4875", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4874", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4871", i32 1), !dbg !472 + %"$maybeRecord_4877" = bitcast i8* %"$maybeRecord_call_4876" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_4877", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_4878" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_4878_4879" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_4878" to i8* + %"$_literal_cost_call_4880" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_4878_4879") + %"$gasadd_4881" = add i64 %"$_literal_cost_call_4880", 0 + %"$gasadd_4882" = add i64 %"$gasadd_4881", 1 + %"$gasrem_4883" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4884" = icmp ugt i64 %"$gasadd_4882", %"$gasrem_4883" + br i1 %"$gascmp_4884", label %"$out_of_gas_4885", label %"$have_gas_4886" + +"$out_of_gas_4885": ; preds = %"$have_gas_4863" + call void @_out_of_gas() + br label %"$have_gas_4886" + +"$have_gas_4886": ; preds = %"$out_of_gas_4885", %"$have_gas_4863" + %"$consume_4887" = sub i64 %"$gasrem_4883", %"$gasadd_4882" + store i64 %"$consume_4887", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_5536_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5536_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5536_salloc_load", i64 32) - %"$indices_buf_5536_salloc" = bitcast i8* %"$indices_buf_5536_salloc_salloc" to [32 x i8]* - %"$indices_buf_5536" = bitcast [32 x i8]* %"$indices_buf_5536_salloc" to i8* - %"$node_5537" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_5538" = getelementptr i8, i8* %"$indices_buf_5536", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_5538" to [32 x i8]* - store [32 x i8] %"$node_5537", [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_5540" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_5541" = call i8* @_fetch_field(i8* %"$execptr_load_5540", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_5539", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_5536", i32 1), !dbg !505 - %"$maybeApproved_5542" = bitcast i8* %"$maybeApproved_call_5541" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_5542", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_5543" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_5543_5544" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5543" to i8* - %"$_literal_cost_call_5545" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_5543_5544") - %"$gasadd_5546" = add i64 %"$_literal_cost_call_5545", 0 - %"$gasadd_5547" = add i64 %"$gasadd_5546", 1 - %"$gasrem_5548" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5549" = icmp ugt i64 %"$gasadd_5547", %"$gasrem_5548" - br i1 %"$gascmp_5549", label %"$out_of_gas_5550", label %"$have_gas_5551" - -"$out_of_gas_5550": ; preds = %"$have_gas_5534" - call void @_out_of_gas() - br label %"$have_gas_5551" - -"$have_gas_5551": ; preds = %"$out_of_gas_5550", %"$have_gas_5534" - %"$consume_5552" = sub i64 %"$gasrem_5548", %"$gasadd_5547" - store i64 %"$consume_5552", i64* @_gasrem, align 8 - %"$gasrem_5553" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5554" = icmp ugt i64 1, %"$gasrem_5553" - br i1 %"$gascmp_5554", label %"$out_of_gas_5555", label %"$have_gas_5556" - -"$out_of_gas_5555": ; preds = %"$have_gas_5551" - call void @_out_of_gas() - br label %"$have_gas_5556" - -"$have_gas_5556": ; preds = %"$out_of_gas_5555", %"$have_gas_5551" - %"$consume_5557" = sub i64 %"$gasrem_5553", 1 - store i64 %"$consume_5557", i64* @_gasrem, align 8 + %"$indices_buf_4888_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4888_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4888_salloc_load", i64 32) + %"$indices_buf_4888_salloc" = bitcast i8* %"$indices_buf_4888_salloc_salloc" to [32 x i8]* + %"$indices_buf_4888" = bitcast [32 x i8]* %"$indices_buf_4888_salloc" to i8* + %"$node_4889" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4890" = getelementptr i8, i8* %"$indices_buf_4888", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_4890" to [32 x i8]* + store [32 x i8] %"$node_4889", [32 x i8]* %indices_cast1, align 1 + %"$execptr_load_4892" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_4893" = call i8* @_fetch_field(i8* %"$execptr_load_4892", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4891", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_4888", i32 1), !dbg !473 + %"$maybeApproved_4894" = bitcast i8* %"$maybeApproved_call_4893" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_4894", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_4895" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_4895_4896" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4895" to i8* + %"$_literal_cost_call_4897" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_4895_4896") + %"$gasadd_4898" = add i64 %"$_literal_cost_call_4897", 0 + %"$gasadd_4899" = add i64 %"$gasadd_4898", 1 + %"$gasrem_4900" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4901" = icmp ugt i64 %"$gasadd_4899", %"$gasrem_4900" + br i1 %"$gascmp_4901", label %"$out_of_gas_4902", label %"$have_gas_4903" + +"$out_of_gas_4902": ; preds = %"$have_gas_4886" + call void @_out_of_gas() + br label %"$have_gas_4903" + +"$have_gas_4903": ; preds = %"$out_of_gas_4902", %"$have_gas_4886" + %"$consume_4904" = sub i64 %"$gasrem_4900", %"$gasadd_4899" + store i64 %"$consume_4904", i64* @_gasrem, align 8 + %"$gasrem_4905" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4906" = icmp ugt i64 1, %"$gasrem_4905" + br i1 %"$gascmp_4906", label %"$out_of_gas_4907", label %"$have_gas_4908" + +"$out_of_gas_4907": ; preds = %"$have_gas_4903" + call void @_out_of_gas() + br label %"$have_gas_4908" + +"$have_gas_4908": ; preds = %"$out_of_gas_4907", %"$have_gas_4903" + %"$consume_4909" = sub i64 %"$gasrem_4905", 1 + store i64 %"$consume_4909", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_5558" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5559" = icmp ugt i64 1, %"$gasrem_5558" - br i1 %"$gascmp_5559", label %"$out_of_gas_5560", label %"$have_gas_5561" - -"$out_of_gas_5560": ; preds = %"$have_gas_5556" - call void @_out_of_gas() - br label %"$have_gas_5561" - -"$have_gas_5561": ; preds = %"$out_of_gas_5560", %"$have_gas_5556" - %"$consume_5562" = sub i64 %"$gasrem_5558", 1 - store i64 %"$consume_5562", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_140" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_5563" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_5564" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5563", 0 - %"$ud-registry.recordMemberOwner_envptr_5565" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5563", 1 - %"$maybeRecord_5566" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_5567" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_5564"(i8* %"$ud-registry.recordMemberOwner_envptr_5565", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5567", %TName_Option_ud-registry.Record* %"$maybeRecord_5566"), !dbg !506 - %"$ud-registry.recordMemberOwner_ret_5568" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5567", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_5568", [20 x i8]* %"$ud-registry.recordMemberOwner_140", align 1, !dbg !506 - %"$$ud-registry.recordMemberOwner_140_5569" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_140", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_140_5569", [20 x i8]* %recordOwner, align 1, !dbg !506 - %"$gasrem_5570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5571" = icmp ugt i64 1, %"$gasrem_5570" - br i1 %"$gascmp_5571", label %"$out_of_gas_5572", label %"$have_gas_5573" - -"$out_of_gas_5572": ; preds = %"$have_gas_5561" - call void @_out_of_gas() - br label %"$have_gas_5573" - -"$have_gas_5573": ; preds = %"$out_of_gas_5572", %"$have_gas_5561" - %"$consume_5574" = sub i64 %"$gasrem_5570", 1 - store i64 %"$consume_5574", i64* @_gasrem, align 8 + %"$gasrem_4910" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4911" = icmp ugt i64 1, %"$gasrem_4910" + br i1 %"$gascmp_4911", label %"$out_of_gas_4912", label %"$have_gas_4913" + +"$out_of_gas_4912": ; preds = %"$have_gas_4908" + call void @_out_of_gas() + br label %"$have_gas_4913" + +"$have_gas_4913": ; preds = %"$out_of_gas_4912", %"$have_gas_4908" + %"$consume_4914" = sub i64 %"$gasrem_4910", 1 + store i64 %"$consume_4914", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_59" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_4915" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_4916" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4915", 0 + %"$ud-registry.recordMemberOwner_envptr_4917" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4915", 1 + %"$maybeRecord_4918" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_4919" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_4916"(i8* %"$ud-registry.recordMemberOwner_envptr_4917", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4919", %TName_Option_ud-registry.Record* %"$maybeRecord_4918"), !dbg !474 + %"$ud-registry.recordMemberOwner_ret_4920" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4919", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_4920", [20 x i8]* %"$ud-registry.recordMemberOwner_59", align 1, !dbg !474 + %"$$ud-registry.recordMemberOwner_59_4921" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_59", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_59_4921", [20 x i8]* %recordOwner, align 1, !dbg !474 + %"$gasrem_4922" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4923" = icmp ugt i64 1, %"$gasrem_4922" + br i1 %"$gascmp_4923", label %"$out_of_gas_4924", label %"$have_gas_4925" + +"$out_of_gas_4924": ; preds = %"$have_gas_4913" + call void @_out_of_gas() + br label %"$have_gas_4925" + +"$have_gas_4925": ; preds = %"$out_of_gas_4924", %"$have_gas_4913" + %"$consume_4926" = sub i64 %"$gasrem_4922", 1 + store i64 %"$consume_4926", i64* @_gasrem, align 8 %approved = alloca [20 x i8], align 1 - %"$gasrem_5575" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5576" = icmp ugt i64 2, %"$gasrem_5575" - br i1 %"$gascmp_5576", label %"$out_of_gas_5577", label %"$have_gas_5578" - -"$out_of_gas_5577": ; preds = %"$have_gas_5573" - call void @_out_of_gas() - br label %"$have_gas_5578" - -"$have_gas_5578": ; preds = %"$out_of_gas_5577", %"$have_gas_5573" - %"$consume_5579" = sub i64 %"$gasrem_5575", 2 - store i64 %"$consume_5579", i64* @_gasrem, align 8 - %"$maybeApproved_5581" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_tag_5582" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_5581", i32 0, i32 0 - %"$maybeApproved_tag_5583" = load i8, i8* %"$maybeApproved_tag_5582", align 1 - switch i8 %"$maybeApproved_tag_5583", label %"$empty_default_5584" [ - i8 1, label %"$None_5585" - i8 0, label %"$Some_5593" - ], !dbg !507 - -"$None_5585": ; preds = %"$have_gas_5578" - %"$maybeApproved_5586" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5581" to %CName_None_ByStr20* - %"$gasrem_5587" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5588" = icmp ugt i64 1, %"$gasrem_5587" - br i1 %"$gascmp_5588", label %"$out_of_gas_5589", label %"$have_gas_5590" - -"$out_of_gas_5589": ; preds = %"$None_5585" - call void @_out_of_gas() - br label %"$have_gas_5590" - -"$have_gas_5590": ; preds = %"$out_of_gas_5589", %"$None_5585" - %"$consume_5591" = sub i64 %"$gasrem_5587", 1 - store i64 %"$consume_5591", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_5592" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_5592", [20 x i8]* %approved, align 1, !dbg !508 - br label %"$matchsucc_5580" - -"$Some_5593": ; preds = %"$have_gas_5578" - %"$maybeApproved_5594" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5581" to %CName_Some_ByStr20* - %"$approved_gep_5595" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_5594", i32 0, i32 1 - %"$approved_load_5596" = load [20 x i8], [20 x i8]* %"$approved_gep_5595", align 1 + %"$gasrem_4927" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4928" = icmp ugt i64 2, %"$gasrem_4927" + br i1 %"$gascmp_4928", label %"$out_of_gas_4929", label %"$have_gas_4930" + +"$out_of_gas_4929": ; preds = %"$have_gas_4925" + call void @_out_of_gas() + br label %"$have_gas_4930" + +"$have_gas_4930": ; preds = %"$out_of_gas_4929", %"$have_gas_4925" + %"$consume_4931" = sub i64 %"$gasrem_4927", 2 + store i64 %"$consume_4931", i64* @_gasrem, align 8 + %"$maybeApproved_4933" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_tag_4934" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_4933", i32 0, i32 0 + %"$maybeApproved_tag_4935" = load i8, i8* %"$maybeApproved_tag_4934", align 1 + switch i8 %"$maybeApproved_tag_4935", label %"$empty_default_4936" [ + i8 1, label %"$None_4937" + i8 0, label %"$Some_4945" + ], !dbg !475 + +"$None_4937": ; preds = %"$have_gas_4930" + %"$maybeApproved_4938" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4933" to %CName_None_ByStr20* + %"$gasrem_4939" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4940" = icmp ugt i64 1, %"$gasrem_4939" + br i1 %"$gascmp_4940", label %"$out_of_gas_4941", label %"$have_gas_4942" + +"$out_of_gas_4941": ; preds = %"$None_4937" + call void @_out_of_gas() + br label %"$have_gas_4942" + +"$have_gas_4942": ; preds = %"$out_of_gas_4941", %"$None_4937" + %"$consume_4943" = sub i64 %"$gasrem_4939", 1 + store i64 %"$consume_4943", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_4944" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_4944", [20 x i8]* %approved, align 1, !dbg !476 + br label %"$matchsucc_4932" + +"$Some_4945": ; preds = %"$have_gas_4930" + %"$maybeApproved_4946" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4933" to %CName_Some_ByStr20* + %"$approved_gep_4947" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_4946", i32 0, i32 1 + %"$approved_load_4948" = load [20 x i8], [20 x i8]* %"$approved_gep_4947", align 1 %approved2 = alloca [20 x i8], align 1 - store [20 x i8] %"$approved_load_5596", [20 x i8]* %approved2, align 1 - %"$gasrem_5597" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5598" = icmp ugt i64 1, %"$gasrem_5597" - br i1 %"$gascmp_5598", label %"$out_of_gas_5599", label %"$have_gas_5600" + store [20 x i8] %"$approved_load_4948", [20 x i8]* %approved2, align 1 + %"$gasrem_4949" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4950" = icmp ugt i64 1, %"$gasrem_4949" + br i1 %"$gascmp_4950", label %"$out_of_gas_4951", label %"$have_gas_4952" -"$out_of_gas_5599": ; preds = %"$Some_5593" +"$out_of_gas_4951": ; preds = %"$Some_4945" call void @_out_of_gas() - br label %"$have_gas_5600" + br label %"$have_gas_4952" -"$have_gas_5600": ; preds = %"$out_of_gas_5599", %"$Some_5593" - %"$consume_5601" = sub i64 %"$gasrem_5597", 1 - store i64 %"$consume_5601", i64* @_gasrem, align 8 - %"$approved_5602" = load [20 x i8], [20 x i8]* %approved2, align 1 - store [20 x i8] %"$approved_5602", [20 x i8]* %approved2, align 1, !dbg !511 - br label %"$matchsucc_5580" +"$have_gas_4952": ; preds = %"$out_of_gas_4951", %"$Some_4945" + %"$consume_4953" = sub i64 %"$gasrem_4949", 1 + store i64 %"$consume_4953", i64* @_gasrem, align 8 + %"$approved_4954" = load [20 x i8], [20 x i8]* %approved2, align 1 + store [20 x i8] %"$approved_4954", [20 x i8]* %approved2, align 1, !dbg !479 + br label %"$matchsucc_4932" -"$empty_default_5584": ; preds = %"$have_gas_5578" - br label %"$matchsucc_5580" +"$empty_default_4936": ; preds = %"$have_gas_4930" + br label %"$matchsucc_4932" -"$matchsucc_5580": ; preds = %"$have_gas_5600", %"$have_gas_5590", %"$empty_default_5584" +"$matchsucc_4932": ; preds = %"$have_gas_4952", %"$have_gas_4942", %"$empty_default_4936" %currentRegistrar = alloca [20 x i8], align 1 - %"$execptr_load_5604" = load i8*, i8** @_execptr, align 8 - %"$currentRegistrar_call_5605" = call i8* @_fetch_field(i8* %"$execptr_load_5604", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_5603", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i32 0, i8* null, i32 1), !dbg !513 - %"$currentRegistrar_5606" = bitcast i8* %"$currentRegistrar_call_5605" to [20 x i8]* - %"$currentRegistrar_5607" = load [20 x i8], [20 x i8]* %"$currentRegistrar_5606", align 1 - store [20 x i8] %"$currentRegistrar_5607", [20 x i8]* %currentRegistrar, align 1 - %"$_literal_cost_currentRegistrar_5608" = alloca [20 x i8], align 1 - %"$currentRegistrar_5609" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_5609", [20 x i8]* %"$_literal_cost_currentRegistrar_5608", align 1 - %"$$_literal_cost_currentRegistrar_5608_5610" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_5608" to i8* - %"$_literal_cost_call_5611" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i8* %"$$_literal_cost_currentRegistrar_5608_5610") - %"$gasadd_5612" = add i64 %"$_literal_cost_call_5611", 0 - %"$gasrem_5613" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5614" = icmp ugt i64 %"$gasadd_5612", %"$gasrem_5613" - br i1 %"$gascmp_5614", label %"$out_of_gas_5615", label %"$have_gas_5616" - -"$out_of_gas_5615": ; preds = %"$matchsucc_5580" - call void @_out_of_gas() - br label %"$have_gas_5616" - -"$have_gas_5616": ; preds = %"$out_of_gas_5615", %"$matchsucc_5580" - %"$consume_5617" = sub i64 %"$gasrem_5613", %"$gasadd_5612" - store i64 %"$consume_5617", i64* @_gasrem, align 8 - %"$gasrem_5618" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5619" = icmp ugt i64 1, %"$gasrem_5618" - br i1 %"$gascmp_5619", label %"$out_of_gas_5620", label %"$have_gas_5621" - -"$out_of_gas_5620": ; preds = %"$have_gas_5616" - call void @_out_of_gas() - br label %"$have_gas_5621" - -"$have_gas_5621": ; preds = %"$out_of_gas_5620", %"$have_gas_5616" - %"$consume_5622" = sub i64 %"$gasrem_5618", 1 - store i64 %"$consume_5622", i64* @_gasrem, align 8 + %"$execptr_load_4956" = load i8*, i8** @_execptr, align 8 + %"$currentRegistrar_call_4957" = call i8* @_fetch_field(i8* %"$execptr_load_4956", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_4955", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i32 0, i8* null, i32 1), !dbg !481 + %"$currentRegistrar_4958" = bitcast i8* %"$currentRegistrar_call_4957" to [20 x i8]* + %"$currentRegistrar_4959" = load [20 x i8], [20 x i8]* %"$currentRegistrar_4958", align 1 + store [20 x i8] %"$currentRegistrar_4959", [20 x i8]* %currentRegistrar, align 1 + %"$_literal_cost_currentRegistrar_4960" = alloca [20 x i8], align 1 + %"$currentRegistrar_4961" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_4961", [20 x i8]* %"$_literal_cost_currentRegistrar_4960", align 1 + %"$$_literal_cost_currentRegistrar_4960_4962" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_4960" to i8* + %"$_literal_cost_call_4963" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i8* %"$$_literal_cost_currentRegistrar_4960_4962") + %"$gasadd_4964" = add i64 %"$_literal_cost_call_4963", 0 + %"$gasrem_4965" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4966" = icmp ugt i64 %"$gasadd_4964", %"$gasrem_4965" + br i1 %"$gascmp_4966", label %"$out_of_gas_4967", label %"$have_gas_4968" + +"$out_of_gas_4967": ; preds = %"$matchsucc_4932" + call void @_out_of_gas() + br label %"$have_gas_4968" + +"$have_gas_4968": ; preds = %"$out_of_gas_4967", %"$matchsucc_4932" + %"$consume_4969" = sub i64 %"$gasrem_4965", %"$gasadd_4964" + store i64 %"$consume_4969", i64* @_gasrem, align 8 + %"$gasrem_4970" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4971" = icmp ugt i64 1, %"$gasrem_4970" + br i1 %"$gascmp_4971", label %"$out_of_gas_4972", label %"$have_gas_4973" + +"$out_of_gas_4972": ; preds = %"$have_gas_4968" + call void @_out_of_gas() + br label %"$have_gas_4973" + +"$have_gas_4973": ; preds = %"$out_of_gas_4972", %"$have_gas_4968" + %"$consume_4974" = sub i64 %"$gasrem_4970", 1 + store i64 %"$consume_4974", i64* @_gasrem, align 8 %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_5623" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5624" = icmp ugt i64 1, %"$gasrem_5623" - br i1 %"$gascmp_5624", label %"$out_of_gas_5625", label %"$have_gas_5626" + %"$gasrem_4975" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4976" = icmp ugt i64 1, %"$gasrem_4975" + br i1 %"$gascmp_4976", label %"$out_of_gas_4977", label %"$have_gas_4978" -"$out_of_gas_5625": ; preds = %"$have_gas_5621" +"$out_of_gas_4977": ; preds = %"$have_gas_4973" call void @_out_of_gas() - br label %"$have_gas_5626" + br label %"$have_gas_4978" -"$have_gas_5626": ; preds = %"$out_of_gas_5625", %"$have_gas_5621" - %"$consume_5627" = sub i64 %"$gasrem_5623", 1 - store i64 %"$consume_5627", i64* @_gasrem, align 8 +"$have_gas_4978": ; preds = %"$out_of_gas_4977", %"$have_gas_4973" + %"$consume_4979" = sub i64 %"$gasrem_4975", 1 + store i64 %"$consume_4979", i64* @_gasrem, align 8 %isRecordUnowned = alloca %TName_Bool*, align 8 - %"$gasrem_5628" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5629" = icmp ugt i64 20, %"$gasrem_5628" - br i1 %"$gascmp_5629", label %"$out_of_gas_5630", label %"$have_gas_5631" - -"$out_of_gas_5630": ; preds = %"$have_gas_5626" - call void @_out_of_gas() - br label %"$have_gas_5631" - -"$have_gas_5631": ; preds = %"$out_of_gas_5630", %"$have_gas_5626" - %"$consume_5632" = sub i64 %"$gasrem_5628", 20 - store i64 %"$consume_5632", i64* @_gasrem, align 8 - %"$execptr_load_5633" = load i8*, i8** @_execptr, align 8 - %"$eq_recordOwner_5634" = alloca [20 x i8], align 1 - %"$recordOwner_5635" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_5635", [20 x i8]* %"$eq_recordOwner_5634", align 1 - %"$$eq_recordOwner_5634_5636" = bitcast [20 x i8]* %"$eq_recordOwner_5634" to i8* - %"$eq_ud-registry.zeroByStr20_5637" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_5638" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_5638", [20 x i8]* %"$eq_ud-registry.zeroByStr20_5637", align 1 - %"$$eq_ud-registry.zeroByStr20_5637_5639" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_5637" to i8* - %"$eq_call_5640" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5633", i32 20, i8* %"$$eq_recordOwner_5634_5636", i8* %"$$eq_ud-registry.zeroByStr20_5637_5639"), !dbg !514 - store %TName_Bool* %"$eq_call_5640", %TName_Bool** %isRecordUnowned, align 8, !dbg !514 - %"$gasrem_5642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5643" = icmp ugt i64 1, %"$gasrem_5642" - br i1 %"$gascmp_5643", label %"$out_of_gas_5644", label %"$have_gas_5645" - -"$out_of_gas_5644": ; preds = %"$have_gas_5631" - call void @_out_of_gas() - br label %"$have_gas_5645" - -"$have_gas_5645": ; preds = %"$out_of_gas_5644", %"$have_gas_5631" - %"$consume_5646" = sub i64 %"$gasrem_5642", 1 - store i64 %"$consume_5646", i64* @_gasrem, align 8 + %"$gasrem_4980" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4981" = icmp ugt i64 20, %"$gasrem_4980" + br i1 %"$gascmp_4981", label %"$out_of_gas_4982", label %"$have_gas_4983" + +"$out_of_gas_4982": ; preds = %"$have_gas_4978" + call void @_out_of_gas() + br label %"$have_gas_4983" + +"$have_gas_4983": ; preds = %"$out_of_gas_4982", %"$have_gas_4978" + %"$consume_4984" = sub i64 %"$gasrem_4980", 20 + store i64 %"$consume_4984", i64* @_gasrem, align 8 + %"$execptr_load_4985" = load i8*, i8** @_execptr, align 8 + %"$eq_recordOwner_4986" = alloca [20 x i8], align 1 + %"$recordOwner_4987" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_4987", [20 x i8]* %"$eq_recordOwner_4986", align 1 + %"$$eq_recordOwner_4986_4988" = bitcast [20 x i8]* %"$eq_recordOwner_4986" to i8* + %"$eq_ud-registry.zeroByStr20_4989" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_4990" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_4990", [20 x i8]* %"$eq_ud-registry.zeroByStr20_4989", align 1 + %"$$eq_ud-registry.zeroByStr20_4989_4991" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_4989" to i8* + %"$eq_call_4992" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4985", i32 20, i8* %"$$eq_recordOwner_4986_4988", i8* %"$$eq_ud-registry.zeroByStr20_4989_4991"), !dbg !482 + store %TName_Bool* %"$eq_call_4992", %TName_Bool** %isRecordUnowned, align 8, !dbg !482 + %"$gasrem_4994" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4995" = icmp ugt i64 1, %"$gasrem_4994" + br i1 %"$gascmp_4995", label %"$out_of_gas_4996", label %"$have_gas_4997" + +"$out_of_gas_4996": ; preds = %"$have_gas_4983" + call void @_out_of_gas() + br label %"$have_gas_4997" + +"$have_gas_4997": ; preds = %"$out_of_gas_4996", %"$have_gas_4983" + %"$consume_4998" = sub i64 %"$gasrem_4994", 1 + store i64 %"$consume_4998", i64* @_gasrem, align 8 %isUnapproved = alloca %TName_Bool*, align 8 - %"$gasrem_5647" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5648" = icmp ugt i64 20, %"$gasrem_5647" - br i1 %"$gascmp_5648", label %"$out_of_gas_5649", label %"$have_gas_5650" - -"$out_of_gas_5649": ; preds = %"$have_gas_5645" - call void @_out_of_gas() - br label %"$have_gas_5650" - -"$have_gas_5650": ; preds = %"$out_of_gas_5649", %"$have_gas_5645" - %"$consume_5651" = sub i64 %"$gasrem_5647", 20 - store i64 %"$consume_5651", i64* @_gasrem, align 8 - %"$execptr_load_5652" = load i8*, i8** @_execptr, align 8 - %"$eq_approved_5653" = alloca [20 x i8], align 1 - %"$approved_5654" = load [20 x i8], [20 x i8]* %approved, align 1 - store [20 x i8] %"$approved_5654", [20 x i8]* %"$eq_approved_5653", align 1 - %"$$eq_approved_5653_5655" = bitcast [20 x i8]* %"$eq_approved_5653" to i8* - %"$eq_ud-registry.zeroByStr20_5656" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_5657" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_5657", [20 x i8]* %"$eq_ud-registry.zeroByStr20_5656", align 1 - %"$$eq_ud-registry.zeroByStr20_5656_5658" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_5656" to i8* - %"$eq_call_5659" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5652", i32 20, i8* %"$$eq_approved_5653_5655", i8* %"$$eq_ud-registry.zeroByStr20_5656_5658"), !dbg !515 - store %TName_Bool* %"$eq_call_5659", %TName_Bool** %isUnapproved, align 8, !dbg !515 - %"$gasrem_5661" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5662" = icmp ugt i64 1, %"$gasrem_5661" - br i1 %"$gascmp_5662", label %"$out_of_gas_5663", label %"$have_gas_5664" - -"$out_of_gas_5663": ; preds = %"$have_gas_5650" - call void @_out_of_gas() - br label %"$have_gas_5664" - -"$have_gas_5664": ; preds = %"$out_of_gas_5663", %"$have_gas_5650" - %"$consume_5665" = sub i64 %"$gasrem_5661", 1 - store i64 %"$consume_5665", i64* @_gasrem, align 8 - %"$BoolUtils.andb_138" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_5666" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_5667" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5666", 0 - %"$BoolUtils.andb_envptr_5668" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5666", 1 - %"$isRecordUnowned_5669" = load %TName_Bool*, %TName_Bool** %isRecordUnowned, align 8 - %"$BoolUtils.andb_call_5670" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_5667"(i8* %"$BoolUtils.andb_envptr_5668", %TName_Bool* %"$isRecordUnowned_5669"), !dbg !516 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_5670", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_138", align 8, !dbg !516 - %"$BoolUtils.andb_139" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_138_5671" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_138", align 8 - %"$$BoolUtils.andb_138_fptr_5672" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_138_5671", 0 - %"$$BoolUtils.andb_138_envptr_5673" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_138_5671", 1 - %"$isUnapproved_5674" = load %TName_Bool*, %TName_Bool** %isUnapproved, align 8 - %"$$BoolUtils.andb_138_call_5675" = call %TName_Bool* %"$$BoolUtils.andb_138_fptr_5672"(i8* %"$$BoolUtils.andb_138_envptr_5673", %TName_Bool* %"$isUnapproved_5674"), !dbg !516 - store %TName_Bool* %"$$BoolUtils.andb_138_call_5675", %TName_Bool** %"$BoolUtils.andb_139", align 8, !dbg !516 - %"$$BoolUtils.andb_139_5676" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_139", align 8 - store %TName_Bool* %"$$BoolUtils.andb_139_5676", %TName_Bool** %isOk, align 8, !dbg !516 - %"$gasrem_5677" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5678" = icmp ugt i64 2, %"$gasrem_5677" - br i1 %"$gascmp_5678", label %"$out_of_gas_5679", label %"$have_gas_5680" - -"$out_of_gas_5679": ; preds = %"$have_gas_5664" - call void @_out_of_gas() - br label %"$have_gas_5680" - -"$have_gas_5680": ; preds = %"$out_of_gas_5679", %"$have_gas_5664" - %"$consume_5681" = sub i64 %"$gasrem_5677", 2 - store i64 %"$consume_5681", i64* @_gasrem, align 8 - %"$isOk_5683" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_5684" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5683", i32 0, i32 0 - %"$isOk_tag_5685" = load i8, i8* %"$isOk_tag_5684", align 1 - switch i8 %"$isOk_tag_5685", label %"$empty_default_5686" [ - i8 0, label %"$True_5687" - i8 1, label %"$False_5785" - ], !dbg !517 - -"$True_5687": ; preds = %"$have_gas_5680" - %"$isOk_5688" = bitcast %TName_Bool* %"$isOk_5683" to %CName_True* - %"$gasrem_5689" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5690" = icmp ugt i64 1, %"$gasrem_5689" - br i1 %"$gascmp_5690", label %"$out_of_gas_5691", label %"$have_gas_5692" - -"$out_of_gas_5691": ; preds = %"$True_5687" - call void @_out_of_gas() - br label %"$have_gas_5692" - -"$have_gas_5692": ; preds = %"$out_of_gas_5691", %"$True_5687" - %"$consume_5693" = sub i64 %"$gasrem_5689", 1 - store i64 %"$consume_5693", i64* @_gasrem, align 8 - %"$execptr_load_5694" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_5694"), !dbg !518 - %"$gasrem_5695" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5696" = icmp ugt i64 1, %"$gasrem_5695" - br i1 %"$gascmp_5696", label %"$out_of_gas_5697", label %"$have_gas_5698" - -"$out_of_gas_5697": ; preds = %"$have_gas_5692" - call void @_out_of_gas() - br label %"$have_gas_5698" - -"$have_gas_5698": ; preds = %"$out_of_gas_5697", %"$have_gas_5692" - %"$consume_5699" = sub i64 %"$gasrem_5695", 1 - store i64 %"$consume_5699", i64* @_gasrem, align 8 + %"$gasrem_4999" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5000" = icmp ugt i64 20, %"$gasrem_4999" + br i1 %"$gascmp_5000", label %"$out_of_gas_5001", label %"$have_gas_5002" + +"$out_of_gas_5001": ; preds = %"$have_gas_4997" + call void @_out_of_gas() + br label %"$have_gas_5002" + +"$have_gas_5002": ; preds = %"$out_of_gas_5001", %"$have_gas_4997" + %"$consume_5003" = sub i64 %"$gasrem_4999", 20 + store i64 %"$consume_5003", i64* @_gasrem, align 8 + %"$execptr_load_5004" = load i8*, i8** @_execptr, align 8 + %"$eq_approved_5005" = alloca [20 x i8], align 1 + %"$approved_5006" = load [20 x i8], [20 x i8]* %approved, align 1 + store [20 x i8] %"$approved_5006", [20 x i8]* %"$eq_approved_5005", align 1 + %"$$eq_approved_5005_5007" = bitcast [20 x i8]* %"$eq_approved_5005" to i8* + %"$eq_ud-registry.zeroByStr20_5008" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_5009" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_5009", [20 x i8]* %"$eq_ud-registry.zeroByStr20_5008", align 1 + %"$$eq_ud-registry.zeroByStr20_5008_5010" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_5008" to i8* + %"$eq_call_5011" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5004", i32 20, i8* %"$$eq_approved_5005_5007", i8* %"$$eq_ud-registry.zeroByStr20_5008_5010"), !dbg !483 + store %TName_Bool* %"$eq_call_5011", %TName_Bool** %isUnapproved, align 8, !dbg !483 + %"$gasrem_5013" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5014" = icmp ugt i64 1, %"$gasrem_5013" + br i1 %"$gascmp_5014", label %"$out_of_gas_5015", label %"$have_gas_5016" + +"$out_of_gas_5015": ; preds = %"$have_gas_5002" + call void @_out_of_gas() + br label %"$have_gas_5016" + +"$have_gas_5016": ; preds = %"$out_of_gas_5015", %"$have_gas_5002" + %"$consume_5017" = sub i64 %"$gasrem_5013", 1 + store i64 %"$consume_5017", i64* @_gasrem, align 8 + %"$BoolUtils.andb_5018" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_5019" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5018", 0 + %"$BoolUtils.andb_envptr_5020" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5018", 1 + %"$isRecordUnowned_5021" = load %TName_Bool*, %TName_Bool** %isRecordUnowned, align 8 + %"$isUnapproved_5022" = load %TName_Bool*, %TName_Bool** %isUnapproved, align 8 + %"$BoolUtils.andb_call_5023" = call %TName_Bool* %"$BoolUtils.andb_fptr_5019"(i8* %"$BoolUtils.andb_envptr_5020", %TName_Bool* %"$isRecordUnowned_5021", %TName_Bool* %"$isUnapproved_5022"), !dbg !484 + store %TName_Bool* %"$BoolUtils.andb_call_5023", %TName_Bool** %isOk, align 8, !dbg !484 + %"$gasrem_5024" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5025" = icmp ugt i64 2, %"$gasrem_5024" + br i1 %"$gascmp_5025", label %"$out_of_gas_5026", label %"$have_gas_5027" + +"$out_of_gas_5026": ; preds = %"$have_gas_5016" + call void @_out_of_gas() + br label %"$have_gas_5027" + +"$have_gas_5027": ; preds = %"$out_of_gas_5026", %"$have_gas_5016" + %"$consume_5028" = sub i64 %"$gasrem_5024", 2 + store i64 %"$consume_5028", i64* @_gasrem, align 8 + %"$isOk_5030" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_5031" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5030", i32 0, i32 0 + %"$isOk_tag_5032" = load i8, i8* %"$isOk_tag_5031", align 1 + switch i8 %"$isOk_tag_5032", label %"$empty_default_5033" [ + i8 0, label %"$True_5034" + i8 1, label %"$False_5132" + ], !dbg !485 + +"$True_5034": ; preds = %"$have_gas_5027" + %"$isOk_5035" = bitcast %TName_Bool* %"$isOk_5030" to %CName_True* + %"$gasrem_5036" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5037" = icmp ugt i64 1, %"$gasrem_5036" + br i1 %"$gascmp_5037", label %"$out_of_gas_5038", label %"$have_gas_5039" + +"$out_of_gas_5038": ; preds = %"$True_5034" + call void @_out_of_gas() + br label %"$have_gas_5039" + +"$have_gas_5039": ; preds = %"$out_of_gas_5038", %"$True_5034" + %"$consume_5040" = sub i64 %"$gasrem_5036", 1 + store i64 %"$consume_5040", i64* @_gasrem, align 8 + %"$execptr_load_5041" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_5041"), !dbg !486 + %"$gasrem_5042" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5043" = icmp ugt i64 1, %"$gasrem_5042" + br i1 %"$gascmp_5043", label %"$out_of_gas_5044", label %"$have_gas_5045" + +"$out_of_gas_5044": ; preds = %"$have_gas_5039" + call void @_out_of_gas() + br label %"$have_gas_5045" + +"$have_gas_5045": ; preds = %"$out_of_gas_5044", %"$have_gas_5039" + %"$consume_5046" = sub i64 %"$gasrem_5042", 1 + store i64 %"$consume_5046", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_5700" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5701" = icmp ugt i64 1, %"$gasrem_5700" - br i1 %"$gascmp_5701", label %"$out_of_gas_5702", label %"$have_gas_5703" + %"$gasrem_5047" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5048" = icmp ugt i64 1, %"$gasrem_5047" + br i1 %"$gascmp_5048", label %"$out_of_gas_5049", label %"$have_gas_5050" -"$out_of_gas_5702": ; preds = %"$have_gas_5698" +"$out_of_gas_5049": ; preds = %"$have_gas_5045" call void @_out_of_gas() - br label %"$have_gas_5703" + br label %"$have_gas_5050" -"$have_gas_5703": ; preds = %"$out_of_gas_5702", %"$have_gas_5698" - %"$consume_5704" = sub i64 %"$gasrem_5700", 1 - store i64 %"$consume_5704", i64* @_gasrem, align 8 +"$have_gas_5050": ; preds = %"$out_of_gas_5049", %"$have_gas_5045" + %"$consume_5051" = sub i64 %"$gasrem_5047", 1 + store i64 %"$consume_5051", i64* @_gasrem, align 8 %m = alloca i8*, align 8 - %"$gasrem_5705" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5706" = icmp ugt i64 1, %"$gasrem_5705" - br i1 %"$gascmp_5706", label %"$out_of_gas_5707", label %"$have_gas_5708" - -"$out_of_gas_5707": ; preds = %"$have_gas_5703" - call void @_out_of_gas() - br label %"$have_gas_5708" - -"$have_gas_5708": ; preds = %"$out_of_gas_5707", %"$have_gas_5703" - %"$consume_5709" = sub i64 %"$gasrem_5705", 1 - store i64 %"$consume_5709", i64* @_gasrem, align 8 - %"$msgobj_5710_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_5710_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_5710_salloc_load", i64 321) - %"$msgobj_5710_salloc" = bitcast i8* %"$msgobj_5710_salloc_salloc" to [321 x i8]* - %"$msgobj_5710" = bitcast [321 x i8]* %"$msgobj_5710_salloc" to i8* - store i8 7, i8* %"$msgobj_5710", align 1 - %"$msgobj_fname_5712" = getelementptr i8, i8* %"$msgobj_5710", i32 1 - %"$msgobj_fname_5713" = bitcast i8* %"$msgobj_fname_5712" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5711", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5713", align 8 - %"$msgobj_td_5714" = getelementptr i8, i8* %"$msgobj_5710", i32 17 - %"$msgobj_td_5715" = bitcast i8* %"$msgobj_td_5714" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_5715", align 8 - %"$msgobj_v_5717" = getelementptr i8, i8* %"$msgobj_5710", i32 25 - %"$msgobj_v_5718" = bitcast i8* %"$msgobj_v_5717" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_5716", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_5718", align 8 - %"$msgobj_fname_5720" = getelementptr i8, i8* %"$msgobj_5710", i32 41 - %"$msgobj_fname_5721" = bitcast i8* %"$msgobj_fname_5720" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_5719", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_5721", align 8 - %"$msgobj_td_5722" = getelementptr i8, i8* %"$msgobj_5710", i32 57 - %"$msgobj_td_5723" = bitcast i8* %"$msgobj_td_5722" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_5723", align 8 - %"$msgobj_v_5724" = getelementptr i8, i8* %"$msgobj_5710", i32 65 - %"$msgobj_v_5725" = bitcast i8* %"$msgobj_v_5724" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_5725", align 8 - %"$msgobj_fname_5727" = getelementptr i8, i8* %"$msgobj_5710", i32 81 - %"$msgobj_fname_5728" = bitcast i8* %"$msgobj_fname_5727" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_5726", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_5728", align 8 - %"$msgobj_td_5729" = getelementptr i8, i8* %"$msgobj_5710", i32 97 - %"$msgobj_td_5730" = bitcast i8* %"$msgobj_td_5729" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_5730", align 8 - %"$currentRegistrar_5731" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - %"$msgobj_v_5732" = getelementptr i8, i8* %"$msgobj_5710", i32 105 - %"$msgobj_v_5733" = bitcast i8* %"$msgobj_v_5732" to [20 x i8]* - store [20 x i8] %"$currentRegistrar_5731", [20 x i8]* %"$msgobj_v_5733", align 1 - %"$msgobj_fname_5735" = getelementptr i8, i8* %"$msgobj_5710", i32 125 - %"$msgobj_fname_5736" = bitcast i8* %"$msgobj_fname_5735" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_5734", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_5736", align 8 - %"$msgobj_td_5737" = getelementptr i8, i8* %"$msgobj_5710", i32 141 - %"$msgobj_td_5738" = bitcast i8* %"$msgobj_td_5737" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_5738", align 8 - %"$msgobj_v_5739" = getelementptr i8, i8* %"$msgobj_5710", i32 149 - %"$msgobj_v_5740" = bitcast i8* %"$msgobj_v_5739" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_5740", align 1 - %"$msgobj_fname_5742" = getelementptr i8, i8* %"$msgobj_5710", i32 169 - %"$msgobj_fname_5743" = bitcast i8* %"$msgobj_fname_5742" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5741", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5743", align 8 - %"$msgobj_td_5744" = getelementptr i8, i8* %"$msgobj_5710", i32 185 - %"$msgobj_td_5745" = bitcast i8* %"$msgobj_td_5744" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_5745", align 8 - %"$node_5746" = load [32 x i8], [32 x i8]* %node, align 1 - %"$msgobj_v_5747" = getelementptr i8, i8* %"$msgobj_5710", i32 193 - %"$msgobj_v_5748" = bitcast i8* %"$msgobj_v_5747" to [32 x i8]* - store [32 x i8] %"$node_5746", [32 x i8]* %"$msgobj_v_5748", align 1 - %"$msgobj_fname_5750" = getelementptr i8, i8* %"$msgobj_5710", i32 225 - %"$msgobj_fname_5751" = bitcast i8* %"$msgobj_fname_5750" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_5749", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_5751", align 8 - %"$msgobj_td_5752" = getelementptr i8, i8* %"$msgobj_5710", i32 241 - %"$msgobj_td_5753" = bitcast i8* %"$msgobj_td_5752" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_5753", align 8 - %"$msgobj_v_5754" = getelementptr i8, i8* %"$msgobj_5710", i32 249 - %"$msgobj_v_5755" = bitcast i8* %"$msgobj_v_5754" to [32 x i8]* - store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_5755", align 1 - %"$msgobj_fname_5757" = getelementptr i8, i8* %"$msgobj_5710", i32 281 - %"$msgobj_fname_5758" = bitcast i8* %"$msgobj_fname_5757" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_5756", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_5758", align 8 - %"$msgobj_td_5759" = getelementptr i8, i8* %"$msgobj_5710", i32 297 - %"$msgobj_td_5760" = bitcast i8* %"$msgobj_td_5759" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_5760", align 8 - %"$msgobj_v_5761" = getelementptr i8, i8* %"$msgobj_5710", i32 305 - %"$msgobj_v_5762" = bitcast i8* %"$msgobj_v_5761" to %String* - store %String %label, %String* %"$msgobj_v_5762", align 8 - store i8* %"$msgobj_5710", i8** %m, align 8, !dbg !521 - %"$gasrem_5764" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5765" = icmp ugt i64 1, %"$gasrem_5764" - br i1 %"$gascmp_5765", label %"$out_of_gas_5766", label %"$have_gas_5767" - -"$out_of_gas_5766": ; preds = %"$have_gas_5708" - call void @_out_of_gas() - br label %"$have_gas_5767" - -"$have_gas_5767": ; preds = %"$out_of_gas_5766", %"$have_gas_5708" - %"$consume_5768" = sub i64 %"$gasrem_5764", 1 - store i64 %"$consume_5768", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_137" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_5769" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_5770" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5769", 0 - %"$ud-registry.oneMsg_envptr_5771" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5769", 1 - %"$m_5772" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_5773" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_5770"(i8* %"$ud-registry.oneMsg_envptr_5771", i8* %"$m_5772"), !dbg !522 - store %TName_List_Message* %"$ud-registry.oneMsg_call_5773", %TName_List_Message** %"$ud-registry.oneMsg_137", align 8, !dbg !522 - %"$$ud-registry.oneMsg_137_5774" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_137", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_137_5774", %TName_List_Message** %msgs, align 8, !dbg !522 - %"$msgs_5775" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_5775_5776" = bitcast %TName_List_Message* %"$msgs_5775" to i8* - %"$_literal_cost_call_5777" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_5775_5776") - %"$gasrem_5778" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5779" = icmp ugt i64 %"$_literal_cost_call_5777", %"$gasrem_5778" - br i1 %"$gascmp_5779", label %"$out_of_gas_5780", label %"$have_gas_5781" - -"$out_of_gas_5780": ; preds = %"$have_gas_5767" - call void @_out_of_gas() - br label %"$have_gas_5781" - -"$have_gas_5781": ; preds = %"$out_of_gas_5780", %"$have_gas_5767" - %"$consume_5782" = sub i64 %"$gasrem_5778", %"$_literal_cost_call_5777" - store i64 %"$consume_5782", i64* @_gasrem, align 8 - %"$execptr_load_5783" = load i8*, i8** @_execptr, align 8 - %"$msgs_5784" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_5783", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_5784"), !dbg !523 - br label %"$matchsucc_5682" - -"$False_5785": ; preds = %"$have_gas_5680" - %"$isOk_5786" = bitcast %TName_Bool* %"$isOk_5683" to %CName_False* - br label %"$matchsucc_5682" - -"$empty_default_5686": ; preds = %"$have_gas_5680" - br label %"$matchsucc_5682" - -"$matchsucc_5682": ; preds = %"$False_5785", %"$have_gas_5781", %"$empty_default_5686" + %"$gasrem_5052" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5053" = icmp ugt i64 1, %"$gasrem_5052" + br i1 %"$gascmp_5053", label %"$out_of_gas_5054", label %"$have_gas_5055" + +"$out_of_gas_5054": ; preds = %"$have_gas_5050" + call void @_out_of_gas() + br label %"$have_gas_5055" + +"$have_gas_5055": ; preds = %"$out_of_gas_5054", %"$have_gas_5050" + %"$consume_5056" = sub i64 %"$gasrem_5052", 1 + store i64 %"$consume_5056", i64* @_gasrem, align 8 + %"$msgobj_5057_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_5057_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_5057_salloc_load", i64 321) + %"$msgobj_5057_salloc" = bitcast i8* %"$msgobj_5057_salloc_salloc" to [321 x i8]* + %"$msgobj_5057" = bitcast [321 x i8]* %"$msgobj_5057_salloc" to i8* + store i8 7, i8* %"$msgobj_5057", align 1 + %"$msgobj_fname_5059" = getelementptr i8, i8* %"$msgobj_5057", i32 1 + %"$msgobj_fname_5060" = bitcast i8* %"$msgobj_fname_5059" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5058", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5060", align 8 + %"$msgobj_td_5061" = getelementptr i8, i8* %"$msgobj_5057", i32 17 + %"$msgobj_td_5062" = bitcast i8* %"$msgobj_td_5061" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_5062", align 8 + %"$msgobj_v_5064" = getelementptr i8, i8* %"$msgobj_5057", i32 25 + %"$msgobj_v_5065" = bitcast i8* %"$msgobj_v_5064" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_5063", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_5065", align 8 + %"$msgobj_fname_5067" = getelementptr i8, i8* %"$msgobj_5057", i32 41 + %"$msgobj_fname_5068" = bitcast i8* %"$msgobj_fname_5067" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_5066", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_5068", align 8 + %"$msgobj_td_5069" = getelementptr i8, i8* %"$msgobj_5057", i32 57 + %"$msgobj_td_5070" = bitcast i8* %"$msgobj_td_5069" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_5070", align 8 + %"$msgobj_v_5071" = getelementptr i8, i8* %"$msgobj_5057", i32 65 + %"$msgobj_v_5072" = bitcast i8* %"$msgobj_v_5071" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_5072", align 8 + %"$msgobj_fname_5074" = getelementptr i8, i8* %"$msgobj_5057", i32 81 + %"$msgobj_fname_5075" = bitcast i8* %"$msgobj_fname_5074" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_5073", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_5075", align 8 + %"$msgobj_td_5076" = getelementptr i8, i8* %"$msgobj_5057", i32 97 + %"$msgobj_td_5077" = bitcast i8* %"$msgobj_td_5076" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_5077", align 8 + %"$currentRegistrar_5078" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + %"$msgobj_v_5079" = getelementptr i8, i8* %"$msgobj_5057", i32 105 + %"$msgobj_v_5080" = bitcast i8* %"$msgobj_v_5079" to [20 x i8]* + store [20 x i8] %"$currentRegistrar_5078", [20 x i8]* %"$msgobj_v_5080", align 1 + %"$msgobj_fname_5082" = getelementptr i8, i8* %"$msgobj_5057", i32 125 + %"$msgobj_fname_5083" = bitcast i8* %"$msgobj_fname_5082" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_5081", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_5083", align 8 + %"$msgobj_td_5084" = getelementptr i8, i8* %"$msgobj_5057", i32 141 + %"$msgobj_td_5085" = bitcast i8* %"$msgobj_td_5084" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_5085", align 8 + %"$msgobj_v_5086" = getelementptr i8, i8* %"$msgobj_5057", i32 149 + %"$msgobj_v_5087" = bitcast i8* %"$msgobj_v_5086" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_5087", align 1 + %"$msgobj_fname_5089" = getelementptr i8, i8* %"$msgobj_5057", i32 169 + %"$msgobj_fname_5090" = bitcast i8* %"$msgobj_fname_5089" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5088", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5090", align 8 + %"$msgobj_td_5091" = getelementptr i8, i8* %"$msgobj_5057", i32 185 + %"$msgobj_td_5092" = bitcast i8* %"$msgobj_td_5091" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_5092", align 8 + %"$node_5093" = load [32 x i8], [32 x i8]* %node, align 1 + %"$msgobj_v_5094" = getelementptr i8, i8* %"$msgobj_5057", i32 193 + %"$msgobj_v_5095" = bitcast i8* %"$msgobj_v_5094" to [32 x i8]* + store [32 x i8] %"$node_5093", [32 x i8]* %"$msgobj_v_5095", align 1 + %"$msgobj_fname_5097" = getelementptr i8, i8* %"$msgobj_5057", i32 225 + %"$msgobj_fname_5098" = bitcast i8* %"$msgobj_fname_5097" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_5096", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_5098", align 8 + %"$msgobj_td_5099" = getelementptr i8, i8* %"$msgobj_5057", i32 241 + %"$msgobj_td_5100" = bitcast i8* %"$msgobj_td_5099" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_5100", align 8 + %"$msgobj_v_5101" = getelementptr i8, i8* %"$msgobj_5057", i32 249 + %"$msgobj_v_5102" = bitcast i8* %"$msgobj_v_5101" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_5102", align 1 + %"$msgobj_fname_5104" = getelementptr i8, i8* %"$msgobj_5057", i32 281 + %"$msgobj_fname_5105" = bitcast i8* %"$msgobj_fname_5104" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_5103", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_5105", align 8 + %"$msgobj_td_5106" = getelementptr i8, i8* %"$msgobj_5057", i32 297 + %"$msgobj_td_5107" = bitcast i8* %"$msgobj_td_5106" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_5107", align 8 + %"$msgobj_v_5108" = getelementptr i8, i8* %"$msgobj_5057", i32 305 + %"$msgobj_v_5109" = bitcast i8* %"$msgobj_v_5108" to %String* + store %String %label, %String* %"$msgobj_v_5109", align 8 + store i8* %"$msgobj_5057", i8** %m, align 8, !dbg !489 + %"$gasrem_5111" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5112" = icmp ugt i64 1, %"$gasrem_5111" + br i1 %"$gascmp_5112", label %"$out_of_gas_5113", label %"$have_gas_5114" + +"$out_of_gas_5113": ; preds = %"$have_gas_5055" + call void @_out_of_gas() + br label %"$have_gas_5114" + +"$have_gas_5114": ; preds = %"$out_of_gas_5113", %"$have_gas_5055" + %"$consume_5115" = sub i64 %"$gasrem_5111", 1 + store i64 %"$consume_5115", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_60" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_5116" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_5117" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5116", 0 + %"$ud-registry.oneMsg_envptr_5118" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5116", 1 + %"$m_5119" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_5120" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_5117"(i8* %"$ud-registry.oneMsg_envptr_5118", i8* %"$m_5119"), !dbg !490 + store %TName_List_Message* %"$ud-registry.oneMsg_call_5120", %TName_List_Message** %"$ud-registry.oneMsg_60", align 8, !dbg !490 + %"$$ud-registry.oneMsg_60_5121" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_60", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_60_5121", %TName_List_Message** %msgs, align 8, !dbg !490 + %"$msgs_5122" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_5122_5123" = bitcast %TName_List_Message* %"$msgs_5122" to i8* + %"$_literal_cost_call_5124" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_5122_5123") + %"$gasrem_5125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5126" = icmp ugt i64 %"$_literal_cost_call_5124", %"$gasrem_5125" + br i1 %"$gascmp_5126", label %"$out_of_gas_5127", label %"$have_gas_5128" + +"$out_of_gas_5127": ; preds = %"$have_gas_5114" + call void @_out_of_gas() + br label %"$have_gas_5128" + +"$have_gas_5128": ; preds = %"$out_of_gas_5127", %"$have_gas_5114" + %"$consume_5129" = sub i64 %"$gasrem_5125", %"$_literal_cost_call_5124" + store i64 %"$consume_5129", i64* @_gasrem, align 8 + %"$execptr_load_5130" = load i8*, i8** @_execptr, align 8 + %"$msgs_5131" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_5130", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_5131"), !dbg !491 + br label %"$matchsucc_5029" + +"$False_5132": ; preds = %"$have_gas_5027" + %"$isOk_5133" = bitcast %TName_Bool* %"$isOk_5030" to %CName_False* + br label %"$matchsucc_5029" + +"$empty_default_5033": ; preds = %"$have_gas_5027" + br label %"$matchsucc_5029" + +"$matchsucc_5029": ; preds = %"$False_5132", %"$have_gas_5128", %"$empty_default_5033" ret void } declare void @_accept(i8*) -define void @register(i8* %0) !dbg !524 { +define void @register(i8* %0) !dbg !492 { entry: - %"$_amount_5788" = getelementptr i8, i8* %0, i32 0 - %"$_amount_5789" = bitcast i8* %"$_amount_5788" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_5789", align 8 - %"$_origin_5790" = getelementptr i8, i8* %0, i32 16 - %"$_origin_5791" = bitcast i8* %"$_origin_5790" to [20 x i8]* - %"$_sender_5792" = getelementptr i8, i8* %0, i32 36 - %"$_sender_5793" = bitcast i8* %"$_sender_5792" to [20 x i8]* - %"$parent_5794" = getelementptr i8, i8* %0, i32 56 - %"$parent_5795" = bitcast i8* %"$parent_5794" to [32 x i8]* - %"$label_5796" = getelementptr i8, i8* %0, i32 88 - %"$label_5797" = bitcast i8* %"$label_5796" to %String* - %label = load %String, %String* %"$label_5797", align 8 - call void @"$register_5494"(%Uint128 %_amount, [20 x i8]* %"$_origin_5791", [20 x i8]* %"$_sender_5793", [32 x i8]* %"$parent_5795", %String %label), !dbg !525 + %"$_amount_5135" = getelementptr i8, i8* %0, i32 0 + %"$_amount_5136" = bitcast i8* %"$_amount_5135" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_5136", align 8 + %"$_origin_5137" = getelementptr i8, i8* %0, i32 16 + %"$_origin_5138" = bitcast i8* %"$_origin_5137" to [20 x i8]* + %"$_sender_5139" = getelementptr i8, i8* %0, i32 36 + %"$_sender_5140" = bitcast i8* %"$_sender_5139" to [20 x i8]* + %"$parent_5141" = getelementptr i8, i8* %0, i32 56 + %"$parent_5142" = bitcast i8* %"$parent_5141" to [32 x i8]* + %"$label_5143" = getelementptr i8, i8* %0, i32 88 + %"$label_5144" = bitcast i8* %"$label_5143" to %String* + %label = load %String, %String* %"$label_5144", align 8 + call void @"$register_4851"(%Uint128 %_amount, [20 x i8]* %"$_origin_5138", [20 x i8]* %"$_sender_5140", [32 x i8]* %"$parent_5142", %String %label), !dbg !493 ret void } -define internal void @"$onResolverConfigured_5798"(%Uint128 %_amount, [20 x i8]* %"$_origin_5799", [20 x i8]* %"$_sender_5800", [32 x i8]* %"$node_5801") !dbg !526 { +define internal void @"$onResolverConfigured_5145"(%Uint128 %_amount, [20 x i8]* %"$_origin_5146", [20 x i8]* %"$_sender_5147", [32 x i8]* %"$node_5148") !dbg !494 { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_5799", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_5800", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_5801", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_5146", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_5147", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_5148", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_5802_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5802_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5802_salloc_load", i64 32) - %"$indices_buf_5802_salloc" = bitcast i8* %"$indices_buf_5802_salloc_salloc" to [32 x i8]* - %"$indices_buf_5802" = bitcast [32 x i8]* %"$indices_buf_5802_salloc" to i8* - %"$indices_gep_5803" = getelementptr i8, i8* %"$indices_buf_5802", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_5803" to [32 x i8]* + %"$indices_buf_5149_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5149_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5149_salloc_load", i64 32) + %"$indices_buf_5149_salloc" = bitcast i8* %"$indices_buf_5149_salloc_salloc" to [32 x i8]* + %"$indices_buf_5149" = bitcast [32 x i8]* %"$indices_buf_5149_salloc" to i8* + %"$indices_gep_5150" = getelementptr i8, i8* %"$indices_buf_5149", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_5150" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_5805" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_5806" = call i8* @_fetch_field(i8* %"$execptr_load_5805", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5804", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_5802", i32 1), !dbg !527 - %"$maybeRecord_5807" = bitcast i8* %"$maybeRecord_call_5806" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_5807", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_5808" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_5808_5809" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5808" to i8* - %"$_literal_cost_call_5810" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_5808_5809") - %"$gasadd_5811" = add i64 %"$_literal_cost_call_5810", 0 - %"$gasadd_5812" = add i64 %"$gasadd_5811", 1 - %"$gasrem_5813" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5814" = icmp ugt i64 %"$gasadd_5812", %"$gasrem_5813" - br i1 %"$gascmp_5814", label %"$out_of_gas_5815", label %"$have_gas_5816" - -"$out_of_gas_5815": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_5816" - -"$have_gas_5816": ; preds = %"$out_of_gas_5815", %entry - %"$consume_5817" = sub i64 %"$gasrem_5813", %"$gasadd_5812" - store i64 %"$consume_5817", i64* @_gasrem, align 8 - %"$gasrem_5818" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5819" = icmp ugt i64 2, %"$gasrem_5818" - br i1 %"$gascmp_5819", label %"$out_of_gas_5820", label %"$have_gas_5821" - -"$out_of_gas_5820": ; preds = %"$have_gas_5816" - call void @_out_of_gas() - br label %"$have_gas_5821" - -"$have_gas_5821": ; preds = %"$out_of_gas_5820", %"$have_gas_5816" - %"$consume_5822" = sub i64 %"$gasrem_5818", 2 - store i64 %"$consume_5822", i64* @_gasrem, align 8 - %"$maybeRecord_5824" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_tag_5825" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %"$maybeRecord_5824", i32 0, i32 0 - %"$maybeRecord_tag_5826" = load i8, i8* %"$maybeRecord_tag_5825", align 1 - switch i8 %"$maybeRecord_tag_5826", label %"$empty_default_5827" [ - i8 1, label %"$None_5828" - i8 0, label %"$Some_5830" - ], !dbg !528 - -"$None_5828": ; preds = %"$have_gas_5821" - %"$maybeRecord_5829" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5824" to %CName_None_ud-registry.Record* - br label %"$matchsucc_5823" - -"$Some_5830": ; preds = %"$have_gas_5821" - %"$maybeRecord_5831" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5824" to %CName_Some_ud-registry.Record* - %"$record_gep_5832" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_5831", i32 0, i32 1 - %"$record_load_5833" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_5832", align 8 + %"$execptr_load_5152" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_5153" = call i8* @_fetch_field(i8* %"$execptr_load_5152", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5151", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_5149", i32 1), !dbg !495 + %"$maybeRecord_5154" = bitcast i8* %"$maybeRecord_call_5153" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_5154", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_5155" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_5155_5156" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5155" to i8* + %"$_literal_cost_call_5157" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_5155_5156") + %"$gasadd_5158" = add i64 %"$_literal_cost_call_5157", 0 + %"$gasadd_5159" = add i64 %"$gasadd_5158", 1 + %"$gasrem_5160" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5161" = icmp ugt i64 %"$gasadd_5159", %"$gasrem_5160" + br i1 %"$gascmp_5161", label %"$out_of_gas_5162", label %"$have_gas_5163" + +"$out_of_gas_5162": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_5163" + +"$have_gas_5163": ; preds = %"$out_of_gas_5162", %entry + %"$consume_5164" = sub i64 %"$gasrem_5160", %"$gasadd_5159" + store i64 %"$consume_5164", i64* @_gasrem, align 8 + %"$gasrem_5165" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5166" = icmp ugt i64 2, %"$gasrem_5165" + br i1 %"$gascmp_5166", label %"$out_of_gas_5167", label %"$have_gas_5168" + +"$out_of_gas_5167": ; preds = %"$have_gas_5163" + call void @_out_of_gas() + br label %"$have_gas_5168" + +"$have_gas_5168": ; preds = %"$out_of_gas_5167", %"$have_gas_5163" + %"$consume_5169" = sub i64 %"$gasrem_5165", 2 + store i64 %"$consume_5169", i64* @_gasrem, align 8 + %"$maybeRecord_5171" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_tag_5172" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %"$maybeRecord_5171", i32 0, i32 0 + %"$maybeRecord_tag_5173" = load i8, i8* %"$maybeRecord_tag_5172", align 1 + switch i8 %"$maybeRecord_tag_5173", label %"$empty_default_5174" [ + i8 1, label %"$None_5175" + i8 0, label %"$Some_5177" + ], !dbg !496 + +"$None_5175": ; preds = %"$have_gas_5168" + %"$maybeRecord_5176" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5171" to %CName_None_ud-registry.Record* + br label %"$matchsucc_5170" + +"$Some_5177": ; preds = %"$have_gas_5168" + %"$maybeRecord_5178" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5171" to %CName_Some_ud-registry.Record* + %"$record_gep_5179" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_5178", i32 0, i32 1 + %"$record_load_5180" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_5179", align 8 %record = alloca %TName_ud-registry.Record*, align 8 - store %TName_ud-registry.Record* %"$record_load_5833", %TName_ud-registry.Record** %record, align 8 - %"$gasrem_5834" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5835" = icmp ugt i64 1, %"$gasrem_5834" - br i1 %"$gascmp_5835", label %"$out_of_gas_5836", label %"$have_gas_5837" - -"$out_of_gas_5836": ; preds = %"$Some_5830" - call void @_out_of_gas() - br label %"$have_gas_5837" - -"$have_gas_5837": ; preds = %"$out_of_gas_5836", %"$Some_5830" - %"$consume_5838" = sub i64 %"$gasrem_5834", 1 - store i64 %"$consume_5838", i64* @_gasrem, align 8 - %"$record_5840" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 - %"$record_tag_5841" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_5840", i32 0, i32 0 - %"$record_tag_5842" = load i8, i8* %"$record_tag_5841", align 1 - switch i8 %"$record_tag_5842", label %"$empty_default_5843" [ - i8 0, label %"$ud-registry.Record_5844" - ], !dbg !529 - -"$ud-registry.Record_5844": ; preds = %"$have_gas_5837" - %"$record_5845" = bitcast %TName_ud-registry.Record* %"$record_5840" to %CName_ud-registry.Record* - %"$owner_gep_5846" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_5845", i32 0, i32 1 - %"$owner_load_5847" = load [20 x i8], [20 x i8]* %"$owner_gep_5846", align 1 + store %TName_ud-registry.Record* %"$record_load_5180", %TName_ud-registry.Record** %record, align 8 + %"$gasrem_5181" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5182" = icmp ugt i64 1, %"$gasrem_5181" + br i1 %"$gascmp_5182", label %"$out_of_gas_5183", label %"$have_gas_5184" + +"$out_of_gas_5183": ; preds = %"$Some_5177" + call void @_out_of_gas() + br label %"$have_gas_5184" + +"$have_gas_5184": ; preds = %"$out_of_gas_5183", %"$Some_5177" + %"$consume_5185" = sub i64 %"$gasrem_5181", 1 + store i64 %"$consume_5185", i64* @_gasrem, align 8 + %"$record_5187" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 + %"$record_tag_5188" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_5187", i32 0, i32 0 + %"$record_tag_5189" = load i8, i8* %"$record_tag_5188", align 1 + switch i8 %"$record_tag_5189", label %"$empty_default_5190" [ + i8 0, label %"$ud-registry.Record_5191" + ], !dbg !497 + +"$ud-registry.Record_5191": ; preds = %"$have_gas_5184" + %"$record_5192" = bitcast %TName_ud-registry.Record* %"$record_5187" to %CName_ud-registry.Record* + %"$owner_gep_5193" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_5192", i32 0, i32 1 + %"$owner_load_5194" = load [20 x i8], [20 x i8]* %"$owner_gep_5193", align 1 %owner = alloca [20 x i8], align 1 - store [20 x i8] %"$owner_load_5847", [20 x i8]* %owner, align 1 - %"$resolver_gep_5848" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_5845", i32 0, i32 2 - %"$resolver_load_5849" = load [20 x i8], [20 x i8]* %"$resolver_gep_5848", align 1 + store [20 x i8] %"$owner_load_5194", [20 x i8]* %owner, align 1 + %"$resolver_gep_5195" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_5192", i32 0, i32 2 + %"$resolver_load_5196" = load [20 x i8], [20 x i8]* %"$resolver_gep_5195", align 1 %resolver = alloca [20 x i8], align 1 - store [20 x i8] %"$resolver_load_5849", [20 x i8]* %resolver, align 1 - %"$gasrem_5850" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5851" = icmp ugt i64 1, %"$gasrem_5850" - br i1 %"$gascmp_5851", label %"$out_of_gas_5852", label %"$have_gas_5853" + store [20 x i8] %"$resolver_load_5196", [20 x i8]* %resolver, align 1 + %"$gasrem_5197" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5198" = icmp ugt i64 1, %"$gasrem_5197" + br i1 %"$gascmp_5198", label %"$out_of_gas_5199", label %"$have_gas_5200" -"$out_of_gas_5852": ; preds = %"$ud-registry.Record_5844" +"$out_of_gas_5199": ; preds = %"$ud-registry.Record_5191" call void @_out_of_gas() - br label %"$have_gas_5853" + br label %"$have_gas_5200" -"$have_gas_5853": ; preds = %"$out_of_gas_5852", %"$ud-registry.Record_5844" - %"$consume_5854" = sub i64 %"$gasrem_5850", 1 - store i64 %"$consume_5854", i64* @_gasrem, align 8 +"$have_gas_5200": ; preds = %"$out_of_gas_5199", %"$ud-registry.Record_5191" + %"$consume_5201" = sub i64 %"$gasrem_5197", 1 + store i64 %"$consume_5201", i64* @_gasrem, align 8 %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_5855" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5856" = icmp ugt i64 20, %"$gasrem_5855" - br i1 %"$gascmp_5856", label %"$out_of_gas_5857", label %"$have_gas_5858" - -"$out_of_gas_5857": ; preds = %"$have_gas_5853" - call void @_out_of_gas() - br label %"$have_gas_5858" - -"$have_gas_5858": ; preds = %"$out_of_gas_5857", %"$have_gas_5853" - %"$consume_5859" = sub i64 %"$gasrem_5855", 20 - store i64 %"$consume_5859", i64* @_gasrem, align 8 - %"$execptr_load_5860" = load i8*, i8** @_execptr, align 8 - %"$eq_resolver_5861" = alloca [20 x i8], align 1 - %"$resolver_5862" = load [20 x i8], [20 x i8]* %resolver, align 1 - store [20 x i8] %"$resolver_5862", [20 x i8]* %"$eq_resolver_5861", align 1 - %"$$eq_resolver_5861_5863" = bitcast [20 x i8]* %"$eq_resolver_5861" to i8* - %"$eq__sender_5864" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_5864", align 1 - %"$$eq__sender_5864_5865" = bitcast [20 x i8]* %"$eq__sender_5864" to i8* - %"$eq_call_5866" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5860", i32 20, i8* %"$$eq_resolver_5861_5863", i8* %"$$eq__sender_5864_5865"), !dbg !532 - store %TName_Bool* %"$eq_call_5866", %TName_Bool** %isOk, align 8, !dbg !532 - %"$gasrem_5868" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5869" = icmp ugt i64 2, %"$gasrem_5868" - br i1 %"$gascmp_5869", label %"$out_of_gas_5870", label %"$have_gas_5871" - -"$out_of_gas_5870": ; preds = %"$have_gas_5858" - call void @_out_of_gas() - br label %"$have_gas_5871" - -"$have_gas_5871": ; preds = %"$out_of_gas_5870", %"$have_gas_5858" - %"$consume_5872" = sub i64 %"$gasrem_5868", 2 - store i64 %"$consume_5872", i64* @_gasrem, align 8 - %"$isOk_5874" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_5875" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5874", i32 0, i32 0 - %"$isOk_tag_5876" = load i8, i8* %"$isOk_tag_5875", align 1 - switch i8 %"$isOk_tag_5876", label %"$empty_default_5877" [ - i8 0, label %"$True_5878" - i8 1, label %"$False_5918" - ], !dbg !535 - -"$True_5878": ; preds = %"$have_gas_5871" - %"$isOk_5879" = bitcast %TName_Bool* %"$isOk_5874" to %CName_True* - %"$gasrem_5880" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5881" = icmp ugt i64 1, %"$gasrem_5880" - br i1 %"$gascmp_5881", label %"$out_of_gas_5882", label %"$have_gas_5883" - -"$out_of_gas_5882": ; preds = %"$True_5878" - call void @_out_of_gas() - br label %"$have_gas_5883" - -"$have_gas_5883": ; preds = %"$out_of_gas_5882", %"$True_5878" - %"$consume_5884" = sub i64 %"$gasrem_5880", 1 - store i64 %"$consume_5884", i64* @_gasrem, align 8 + %"$gasrem_5202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5203" = icmp ugt i64 20, %"$gasrem_5202" + br i1 %"$gascmp_5203", label %"$out_of_gas_5204", label %"$have_gas_5205" + +"$out_of_gas_5204": ; preds = %"$have_gas_5200" + call void @_out_of_gas() + br label %"$have_gas_5205" + +"$have_gas_5205": ; preds = %"$out_of_gas_5204", %"$have_gas_5200" + %"$consume_5206" = sub i64 %"$gasrem_5202", 20 + store i64 %"$consume_5206", i64* @_gasrem, align 8 + %"$execptr_load_5207" = load i8*, i8** @_execptr, align 8 + %"$eq_resolver_5208" = alloca [20 x i8], align 1 + %"$resolver_5209" = load [20 x i8], [20 x i8]* %resolver, align 1 + store [20 x i8] %"$resolver_5209", [20 x i8]* %"$eq_resolver_5208", align 1 + %"$$eq_resolver_5208_5210" = bitcast [20 x i8]* %"$eq_resolver_5208" to i8* + %"$eq__sender_5211" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_5211", align 1 + %"$$eq__sender_5211_5212" = bitcast [20 x i8]* %"$eq__sender_5211" to i8* + %"$eq_call_5213" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5207", i32 20, i8* %"$$eq_resolver_5208_5210", i8* %"$$eq__sender_5211_5212"), !dbg !500 + store %TName_Bool* %"$eq_call_5213", %TName_Bool** %isOk, align 8, !dbg !500 + %"$gasrem_5215" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5216" = icmp ugt i64 2, %"$gasrem_5215" + br i1 %"$gascmp_5216", label %"$out_of_gas_5217", label %"$have_gas_5218" + +"$out_of_gas_5217": ; preds = %"$have_gas_5205" + call void @_out_of_gas() + br label %"$have_gas_5218" + +"$have_gas_5218": ; preds = %"$out_of_gas_5217", %"$have_gas_5205" + %"$consume_5219" = sub i64 %"$gasrem_5215", 2 + store i64 %"$consume_5219", i64* @_gasrem, align 8 + %"$isOk_5221" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_5222" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5221", i32 0, i32 0 + %"$isOk_tag_5223" = load i8, i8* %"$isOk_tag_5222", align 1 + switch i8 %"$isOk_tag_5223", label %"$empty_default_5224" [ + i8 0, label %"$True_5225" + i8 1, label %"$False_5256" + ], !dbg !503 + +"$True_5225": ; preds = %"$have_gas_5218" + %"$isOk_5226" = bitcast %TName_Bool* %"$isOk_5221" to %CName_True* + %"$gasrem_5227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5228" = icmp ugt i64 1, %"$gasrem_5227" + br i1 %"$gascmp_5228", label %"$out_of_gas_5229", label %"$have_gas_5230" + +"$out_of_gas_5229": ; preds = %"$True_5225" + call void @_out_of_gas() + br label %"$have_gas_5230" + +"$have_gas_5230": ; preds = %"$out_of_gas_5229", %"$True_5225" + %"$consume_5231" = sub i64 %"$gasrem_5227", 1 + store i64 %"$consume_5231", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_5885" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5886" = icmp ugt i64 1, %"$gasrem_5885" - br i1 %"$gascmp_5886", label %"$out_of_gas_5887", label %"$have_gas_5888" - -"$out_of_gas_5887": ; preds = %"$have_gas_5883" - call void @_out_of_gas() - br label %"$have_gas_5888" - -"$have_gas_5888": ; preds = %"$out_of_gas_5887", %"$have_gas_5883" - %"$consume_5889" = sub i64 %"$gasrem_5885", 1 - store i64 %"$consume_5889", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_143" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_5890" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_5891" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5890", 0 - %"$ud-registry.eConfigured_envptr_5892" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5890", 1 - %"$ud-registry.eConfigured_node_5893" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_5893", align 1 - %"$ud-registry.eConfigured_call_5894" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_5891"(i8* %"$ud-registry.eConfigured_envptr_5892", [32 x i8]* %"$ud-registry.eConfigured_node_5893"), !dbg !536 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_5894", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_143", align 8, !dbg !536 - %"$ud-registry.eConfigured_144" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_143_5895" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_143", align 8 - %"$$ud-registry.eConfigured_143_fptr_5896" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_5895", 0 - %"$$ud-registry.eConfigured_143_envptr_5897" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_5895", 1 - %"$$ud-registry.eConfigured_143_owner_5898" = alloca [20 x i8], align 1 - %"$owner_5899" = load [20 x i8], [20 x i8]* %owner, align 1 - store [20 x i8] %"$owner_5899", [20 x i8]* %"$$ud-registry.eConfigured_143_owner_5898", align 1 - %"$$ud-registry.eConfigured_143_call_5900" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_fptr_5896"(i8* %"$$ud-registry.eConfigured_143_envptr_5897", [20 x i8]* %"$$ud-registry.eConfigured_143_owner_5898"), !dbg !536 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_call_5900", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_144", align 8, !dbg !536 - %"$ud-registry.eConfigured_145" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_144_5901" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_144", align 8 - %"$$ud-registry.eConfigured_144_fptr_5902" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_144_5901", 0 - %"$$ud-registry.eConfigured_144_envptr_5903" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_144_5901", 1 - %"$$ud-registry.eConfigured_144_resolver_5904" = alloca [20 x i8], align 1 - %"$resolver_5905" = load [20 x i8], [20 x i8]* %resolver, align 1 - store [20 x i8] %"$resolver_5905", [20 x i8]* %"$$ud-registry.eConfigured_144_resolver_5904", align 1 - %"$$ud-registry.eConfigured_144_call_5906" = call i8* %"$$ud-registry.eConfigured_144_fptr_5902"(i8* %"$$ud-registry.eConfigured_144_envptr_5903", [20 x i8]* %"$$ud-registry.eConfigured_144_resolver_5904"), !dbg !536 - store i8* %"$$ud-registry.eConfigured_144_call_5906", i8** %"$ud-registry.eConfigured_145", align 8, !dbg !536 - %"$$ud-registry.eConfigured_145_5907" = load i8*, i8** %"$ud-registry.eConfigured_145", align 8 - store i8* %"$$ud-registry.eConfigured_145_5907", i8** %e, align 8, !dbg !536 - %"$e_5908" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_5910" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5908") - %"$gasrem_5911" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5912" = icmp ugt i64 %"$_literal_cost_call_5910", %"$gasrem_5911" - br i1 %"$gascmp_5912", label %"$out_of_gas_5913", label %"$have_gas_5914" - -"$out_of_gas_5913": ; preds = %"$have_gas_5888" - call void @_out_of_gas() - br label %"$have_gas_5914" - -"$have_gas_5914": ; preds = %"$out_of_gas_5913", %"$have_gas_5888" - %"$consume_5915" = sub i64 %"$gasrem_5911", %"$_literal_cost_call_5910" - store i64 %"$consume_5915", i64* @_gasrem, align 8 - %"$execptr_load_5916" = load i8*, i8** @_execptr, align 8 - %"$e_5917" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_5916", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5917"), !dbg !539 - br label %"$matchsucc_5873" - -"$False_5918": ; preds = %"$have_gas_5871" - %"$isOk_5919" = bitcast %TName_Bool* %"$isOk_5874" to %CName_False* - br label %"$matchsucc_5873" - -"$empty_default_5877": ; preds = %"$have_gas_5871" - br label %"$matchsucc_5873" - -"$matchsucc_5873": ; preds = %"$False_5918", %"$have_gas_5914", %"$empty_default_5877" - br label %"$matchsucc_5839" - -"$empty_default_5843": ; preds = %"$have_gas_5837" - br label %"$matchsucc_5839" - -"$matchsucc_5839": ; preds = %"$matchsucc_5873", %"$empty_default_5843" - br label %"$matchsucc_5823" - -"$empty_default_5827": ; preds = %"$have_gas_5821" - br label %"$matchsucc_5823" - -"$matchsucc_5823": ; preds = %"$matchsucc_5839", %"$None_5828", %"$empty_default_5827" + %"$gasrem_5232" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5233" = icmp ugt i64 1, %"$gasrem_5232" + br i1 %"$gascmp_5233", label %"$out_of_gas_5234", label %"$have_gas_5235" + +"$out_of_gas_5234": ; preds = %"$have_gas_5230" + call void @_out_of_gas() + br label %"$have_gas_5235" + +"$have_gas_5235": ; preds = %"$out_of_gas_5234", %"$have_gas_5230" + %"$consume_5236" = sub i64 %"$gasrem_5232", 1 + store i64 %"$consume_5236", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_5237" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_5238" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_5237", 0 + %"$ud-registry.eConfigured_envptr_5239" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_5237", 1 + %"$ud-registry.eConfigured_node_5240" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_5240", align 1 + %"$ud-registry.eConfigured_owner_5241" = alloca [20 x i8], align 1 + %"$owner_5242" = load [20 x i8], [20 x i8]* %owner, align 1 + store [20 x i8] %"$owner_5242", [20 x i8]* %"$ud-registry.eConfigured_owner_5241", align 1 + %"$ud-registry.eConfigured_resolver_5243" = alloca [20 x i8], align 1 + %"$resolver_5244" = load [20 x i8], [20 x i8]* %resolver, align 1 + store [20 x i8] %"$resolver_5244", [20 x i8]* %"$ud-registry.eConfigured_resolver_5243", align 1 + %"$ud-registry.eConfigured_call_5245" = call i8* %"$ud-registry.eConfigured_fptr_5238"(i8* %"$ud-registry.eConfigured_envptr_5239", [32 x i8]* %"$ud-registry.eConfigured_node_5240", [20 x i8]* %"$ud-registry.eConfigured_owner_5241", [20 x i8]* %"$ud-registry.eConfigured_resolver_5243"), !dbg !504 + store i8* %"$ud-registry.eConfigured_call_5245", i8** %e, align 8, !dbg !504 + %"$e_5246" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_5248" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_5246") + %"$gasrem_5249" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5250" = icmp ugt i64 %"$_literal_cost_call_5248", %"$gasrem_5249" + br i1 %"$gascmp_5250", label %"$out_of_gas_5251", label %"$have_gas_5252" + +"$out_of_gas_5251": ; preds = %"$have_gas_5235" + call void @_out_of_gas() + br label %"$have_gas_5252" + +"$have_gas_5252": ; preds = %"$out_of_gas_5251", %"$have_gas_5235" + %"$consume_5253" = sub i64 %"$gasrem_5249", %"$_literal_cost_call_5248" + store i64 %"$consume_5253", i64* @_gasrem, align 8 + %"$execptr_load_5254" = load i8*, i8** @_execptr, align 8 + %"$e_5255" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_5254", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_5255"), !dbg !507 + br label %"$matchsucc_5220" + +"$False_5256": ; preds = %"$have_gas_5218" + %"$isOk_5257" = bitcast %TName_Bool* %"$isOk_5221" to %CName_False* + br label %"$matchsucc_5220" + +"$empty_default_5224": ; preds = %"$have_gas_5218" + br label %"$matchsucc_5220" + +"$matchsucc_5220": ; preds = %"$False_5256", %"$have_gas_5252", %"$empty_default_5224" + br label %"$matchsucc_5186" + +"$empty_default_5190": ; preds = %"$have_gas_5184" + br label %"$matchsucc_5186" + +"$matchsucc_5186": ; preds = %"$matchsucc_5220", %"$empty_default_5190" + br label %"$matchsucc_5170" + +"$empty_default_5174": ; preds = %"$have_gas_5168" + br label %"$matchsucc_5170" + +"$matchsucc_5170": ; preds = %"$matchsucc_5186", %"$None_5175", %"$empty_default_5174" ret void } -define void @onResolverConfigured(i8* %0) !dbg !540 { +define void @onResolverConfigured(i8* %0) !dbg !508 { entry: - %"$_amount_5921" = getelementptr i8, i8* %0, i32 0 - %"$_amount_5922" = bitcast i8* %"$_amount_5921" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_5922", align 8 - %"$_origin_5923" = getelementptr i8, i8* %0, i32 16 - %"$_origin_5924" = bitcast i8* %"$_origin_5923" to [20 x i8]* - %"$_sender_5925" = getelementptr i8, i8* %0, i32 36 - %"$_sender_5926" = bitcast i8* %"$_sender_5925" to [20 x i8]* - %"$node_5927" = getelementptr i8, i8* %0, i32 56 - %"$node_5928" = bitcast i8* %"$node_5927" to [32 x i8]* - call void @"$onResolverConfigured_5798"(%Uint128 %_amount, [20 x i8]* %"$_origin_5924", [20 x i8]* %"$_sender_5926", [32 x i8]* %"$node_5928"), !dbg !541 + %"$_amount_5259" = getelementptr i8, i8* %0, i32 0 + %"$_amount_5260" = bitcast i8* %"$_amount_5259" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_5260", align 8 + %"$_origin_5261" = getelementptr i8, i8* %0, i32 16 + %"$_origin_5262" = bitcast i8* %"$_origin_5261" to [20 x i8]* + %"$_sender_5263" = getelementptr i8, i8* %0, i32 36 + %"$_sender_5264" = bitcast i8* %"$_sender_5263" to [20 x i8]* + %"$node_5265" = getelementptr i8, i8* %0, i32 56 + %"$node_5266" = bitcast i8* %"$node_5265" to [32 x i8]* + call void @"$onResolverConfigured_5145"(%Uint128 %_amount, [20 x i8]* %"$_origin_5262", [20 x i8]* %"$_sender_5264", [32 x i8]* %"$node_5266"), !dbg !509 ret void } @@ -10977,7 +9939,7 @@ entry: !1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) !2 = !DIFile(filename: "ud-registry.scilla", directory: "codegen/contr") !3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_214", linkageName: "$fundef_214", scope: !2, file: !2, line: 100, type: !5, scopeLine: 100, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!4 = distinct !DISubprogram(name: "$fundef_119", linkageName: "$fundef_119", scope: !2, file: !2, line: 97, type: !5, scopeLine: 97, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !5 = !DISubroutineType(types: !6) !6 = !{!7} !7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") @@ -10996,522 +9958,490 @@ entry: !20 = distinct !DILexicalBlock(scope: !18, file: !2, line: 108, column: 7) !21 = !DILocation(line: 110, column: 14, scope: !4) !22 = !DILocation(line: 110, column: 40, scope: !4) -!23 = distinct !DISubprogram(name: "$fundef_212", linkageName: "$fundef_212", scope: !2, file: !2, line: 99, type: !5, scopeLine: 99, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 100, column: 5, scope: !23) -!25 = distinct !DISubprogram(name: "$fundef_210", linkageName: "$fundef_210", scope: !2, file: !2, line: 98, type: !5, scopeLine: 98, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DILocation(line: 99, column: 3, scope: !25) -!27 = distinct !DISubprogram(name: "$fundef_208", linkageName: "$fundef_208", scope: !2, file: !2, line: 97, type: !5, scopeLine: 97, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!28 = !DILocation(line: 98, column: 3, scope: !27) -!29 = distinct !DISubprogram(name: "$fundef_218", linkageName: "$fundef_218", scope: !2, file: !2, line: 92, type: !5, scopeLine: 92, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DILocation(line: 92, column: 21, scope: !29) -!31 = !DILocation(line: 93, column: 21, scope: !29) -!32 = !DILocation(line: 94, column: 7, scope: !29) -!33 = distinct !DISubprogram(name: "$fundef_216", linkageName: "$fundef_216", scope: !2, file: !2, line: 91, type: !5, scopeLine: 91, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!34 = !DILocation(line: 92, column: 5, scope: !33) -!35 = distinct !DISubprogram(name: "$fundef_220", linkageName: "$fundef_220", scope: !2, file: !2, line: 82, type: !5, scopeLine: 82, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!36 = !DILocation(line: 82, column: 5, scope: !35) -!37 = !DILocation(line: 83, column: 15, scope: !38) -!38 = distinct !DILexicalBlock(scope: !39, file: !2, line: 83, column: 7) -!39 = distinct !DILexicalBlock(scope: !35, file: !2, line: 82, column: 5) -!40 = !DILocation(line: 85, column: 7, scope: !41) -!41 = distinct !DILexicalBlock(scope: !39, file: !2, line: 84, column: 7) -!42 = !DILocation(line: 86, column: 34, scope: !43) -!43 = distinct !DILexicalBlock(scope: !44, file: !2, line: 86, column: 9) -!44 = distinct !DILexicalBlock(scope: !41, file: !2, line: 85, column: 7) -!45 = distinct !DISubprogram(name: "$fundef_222", linkageName: "$fundef_222", scope: !2, file: !2, line: 77, type: !5, scopeLine: 77, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!46 = !DILocation(line: 77, column: 5, scope: !45) -!47 = distinct !DISubprogram(name: "$fundef_228", linkageName: "$fundef_228", scope: !2, file: !2, line: 74, type: !5, scopeLine: 74, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!48 = !DILocation(line: 74, column: 5, scope: !47) -!49 = distinct !DISubprogram(name: "$fundef_226", linkageName: "$fundef_226", scope: !2, file: !2, line: 73, type: !5, scopeLine: 73, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!50 = !DILocation(line: 74, column: 5, scope: !49) -!51 = distinct !DISubprogram(name: "$fundef_224", linkageName: "$fundef_224", scope: !2, file: !2, line: 72, type: !5, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!52 = !DILocation(line: 73, column: 3, scope: !51) -!53 = distinct !DISubprogram(name: "$fundef_232", linkageName: "$fundef_232", scope: !2, file: !2, line: 69, type: !5, scopeLine: 69, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!54 = !DILocation(line: 69, column: 5, scope: !53) -!55 = distinct !DISubprogram(name: "$fundef_230", linkageName: "$fundef_230", scope: !2, file: !2, line: 68, type: !5, scopeLine: 68, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!56 = !DILocation(line: 69, column: 5, scope: !55) -!57 = distinct !DISubprogram(name: "$fundef_234", linkageName: "$fundef_234", scope: !2, file: !2, line: 65, type: !5, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!58 = !DILocation(line: 65, column: 5, scope: !57) -!59 = distinct !DISubprogram(name: "$fundef_236", linkageName: "$fundef_236", scope: !2, file: !2, line: 62, type: !5, scopeLine: 62, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!60 = !DILocation(line: 62, column: 5, scope: !59) -!61 = distinct !DISubprogram(name: "$fundef_242", linkageName: "$fundef_242", scope: !2, file: !2, line: 59, type: !5, scopeLine: 59, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!62 = !DILocation(line: 59, column: 5, scope: !61) -!63 = distinct !DISubprogram(name: "$fundef_240", linkageName: "$fundef_240", scope: !2, file: !2, line: 58, type: !5, scopeLine: 58, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!64 = !DILocation(line: 59, column: 5, scope: !63) -!65 = distinct !DISubprogram(name: "$fundef_238", linkageName: "$fundef_238", scope: !2, file: !2, line: 57, type: !5, scopeLine: 57, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!66 = !DILocation(line: 58, column: 3, scope: !65) -!67 = distinct !DISubprogram(name: "$fundef_246", linkageName: "$fundef_246", scope: !2, file: !2, line: 54, type: !5, scopeLine: 54, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!68 = !DILocation(line: 54, column: 5, scope: !67) -!69 = distinct !DISubprogram(name: "$fundef_244", linkageName: "$fundef_244", scope: !2, file: !2, line: 53, type: !5, scopeLine: 53, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!70 = !DILocation(line: 54, column: 5, scope: !69) -!71 = distinct !DISubprogram(name: "$fundef_250", linkageName: "$fundef_250", scope: !2, file: !2, line: 39, type: !5, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!72 = !DILocation(line: 39, column: 5, scope: !71) -!73 = !DILocation(line: 41, column: 7, scope: !74) -!74 = distinct !DILexicalBlock(scope: !75, file: !2, line: 40, column: 7) -!75 = distinct !DILexicalBlock(scope: !71, file: !2, line: 39, column: 5) -!76 = !DILocation(line: 42, column: 17, scope: !77) -!77 = distinct !DILexicalBlock(scope: !78, file: !2, line: 42, column: 9) -!78 = distinct !DILexicalBlock(scope: !74, file: !2, line: 41, column: 7) -!79 = !DILocation(line: 43, column: 18, scope: !80) -!80 = distinct !DILexicalBlock(scope: !78, file: !2, line: 43, column: 9) -!81 = !DILocation(line: 46, column: 7, scope: !82) -!82 = distinct !DILexicalBlock(scope: !75, file: !2, line: 45, column: 7) -!83 = !DILocation(line: 47, column: 17, scope: !84) -!84 = distinct !DILexicalBlock(scope: !85, file: !2, line: 47, column: 9) -!85 = distinct !DILexicalBlock(scope: !82, file: !2, line: 46, column: 7) -!86 = !DILocation(line: 48, column: 18, scope: !87) -!87 = distinct !DILexicalBlock(scope: !85, file: !2, line: 48, column: 9) -!88 = distinct !DISubprogram(name: "$fundef_248", linkageName: "$fundef_248", scope: !2, file: !2, line: 38, type: !5, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!89 = !DILocation(line: 39, column: 5, scope: !88) -!90 = distinct !DISubprogram(name: "$fundef_256", linkageName: "$fundef_256", scope: !2, file: !2, line: 33, type: !5, scopeLine: 33, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!91 = !DILocation(line: 33, column: 15, scope: !90) -!92 = !DILocation(line: 34, column: 8, scope: !90) -!93 = distinct !DISubprogram(name: "$fundef_254", linkageName: "$fundef_254", scope: !2, file: !2, line: 31, type: !5, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!94 = !DILocation(line: 31, column: 30, scope: !93) -!95 = !DILocation(line: 31, column: 29, scope: !93) -!96 = !DILocation(line: 33, column: 7, scope: !93) -!97 = !DILocation(line: 35, column: 7, scope: !93) -!98 = distinct !DISubprogram(name: "$fundef_252", linkageName: "$fundef_252", scope: !2, file: !2, line: 30, type: !5, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!99 = !DILocation(line: 31, column: 5, scope: !98) -!100 = distinct !DISubprogram(name: "$fundef_260", linkageName: "$fundef_260", scope: !2, file: !2, line: 27, type: !5, scopeLine: 27, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!101 = !DILocation(line: 27, column: 13, scope: !100) -!102 = !DILocation(line: 27, column: 44, scope: !100) -!103 = distinct !DISubprogram(name: "$fundef_258", linkageName: "$fundef_258", scope: !2, file: !2, line: 26, type: !5, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!104 = !DILocation(line: 27, column: 5, scope: !103) -!105 = distinct !DISubprogram(name: "$fundef_264", linkageName: "$fundef_264", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!106 = !DILocation(line: 22, column: 27, scope: !105) -!107 = !DILocation(line: 22, column: 26, scope: !105) -!108 = !DILocation(line: 23, column: 7, scope: !105) -!109 = distinct !DISubprogram(name: "$fundef_262", linkageName: "$fundef_262", scope: !2, file: !2, line: 21, type: !5, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!110 = !DILocation(line: 22, column: 5, scope: !109) -!111 = distinct !DISubprogram(name: "$fundef_268", linkageName: "$fundef_268", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!112 = !DILocation(line: 18, column: 5, scope: !111) -!113 = distinct !DISubprogram(name: "$fundef_266", linkageName: "$fundef_266", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!114 = !DILocation(line: 18, column: 5, scope: !113) -!115 = distinct !DISubprogram(name: "$fundef_270", linkageName: "$fundef_270", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!116 = !DILocation(line: 14, column: 5, scope: !115) -!117 = distinct !DISubprogram(name: "$fundef_182", linkageName: "$fundef_182", scope: !118, file: !118, line: 252, type: !5, scopeLine: 252, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!118 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") -!119 = !DILocation(line: 252, column: 19, scope: !117) -!120 = !DILocation(line: 253, column: 15, scope: !117) -!121 = !DILocation(line: 253, column: 14, scope: !117) -!122 = !DILocation(line: 254, column: 5, scope: !117) -!123 = distinct !DISubprogram(name: "$fundef_180", linkageName: "$fundef_180", scope: !118, file: !118, line: 251, type: !5, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!124 = !DILocation(line: 252, column: 5, scope: !123) -!125 = distinct !DISubprogram(name: "$fundef_178", linkageName: "$fundef_178", scope: !118, file: !118, line: 251, type: !5, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!126 = !DILocation(line: 251, column: 33, scope: !125) -!127 = distinct !DISubprogram(name: "$fundef_188", linkageName: "$fundef_188", scope: !118, file: !118, line: 241, type: !5, scopeLine: 241, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!128 = !DILocation(line: 241, column: 17, scope: !127) -!129 = !DILocation(line: 241, column: 16, scope: !127) -!130 = !DILocation(line: 242, column: 18, scope: !127) -!131 = !DILocation(line: 243, column: 5, scope: !127) -!132 = !DILocation(line: 244, column: 17, scope: !133) -!133 = distinct !DILexicalBlock(scope: !134, file: !118, line: 244, column: 7) -!134 = distinct !DILexicalBlock(scope: !127, file: !118, line: 243, column: 5) -!135 = !DILocation(line: 245, column: 15, scope: !136) -!136 = distinct !DILexicalBlock(scope: !134, file: !118, line: 245, column: 7) -!137 = distinct !DISubprogram(name: "$fundef_186", linkageName: "$fundef_186", scope: !118, file: !118, line: 240, type: !5, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!138 = !DILocation(line: 241, column: 5, scope: !137) -!139 = distinct !DISubprogram(name: "$fundef_184", linkageName: "$fundef_184", scope: !118, file: !118, line: 240, type: !5, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!140 = !DILocation(line: 240, column: 27, scope: !139) -!141 = distinct !DISubprogram(name: "$fundef_198", linkageName: "$fundef_198", scope: !118, file: !118, line: 230, type: !5, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!142 = !DILocation(line: 230, column: 19, scope: !141) -!143 = !DILocation(line: 231, column: 9, scope: !141) -!144 = !DILocation(line: 232, column: 19, scope: !145) -!145 = distinct !DILexicalBlock(scope: !146, file: !118, line: 232, column: 11) -!146 = distinct !DILexicalBlock(scope: !141, file: !118, line: 231, column: 9) -!147 = !DILocation(line: 233, column: 20, scope: !148) -!148 = distinct !DILexicalBlock(scope: !146, file: !118, line: 233, column: 11) -!149 = distinct !DISubprogram(name: "$fundef_196", linkageName: "$fundef_196", scope: !118, file: !118, line: 229, type: !5, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!150 = !DILocation(line: 230, column: 9, scope: !149) -!151 = distinct !DISubprogram(name: "$fundef_194", linkageName: "$fundef_194", scope: !118, file: !118, line: 228, type: !5, scopeLine: 228, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!152 = !DILocation(line: 229, column: 7, scope: !151) -!153 = distinct !DISubprogram(name: "$fundef_192", linkageName: "$fundef_192", scope: !118, file: !118, line: 224, type: !5, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!154 = !DILocation(line: 224, column: 18, scope: !153) -!155 = !DILocation(line: 224, column: 17, scope: !153) -!156 = !DILocation(line: 225, column: 16, scope: !153) -!157 = !DILocation(line: 228, column: 35, scope: !153) -!158 = !DILocation(line: 235, column: 5, scope: !153) -!159 = distinct !DISubprogram(name: "$fundef_190", linkageName: "$fundef_190", scope: !118, file: !118, line: 224, type: !5, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!160 = !DILocation(line: 224, column: 5, scope: !159) -!161 = distinct !DISubprogram(name: "$fundef_206", linkageName: "$fundef_206", scope: !118, file: !118, line: 40, type: !5, scopeLine: 40, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!162 = !DILocation(line: 40, column: 16, scope: !161) -!163 = !DILocation(line: 41, column: 7, scope: !161) -!164 = !DILocation(line: 42, column: 17, scope: !165) -!165 = distinct !DILexicalBlock(scope: !166, file: !118, line: 42, column: 9) -!166 = distinct !DILexicalBlock(scope: !161, file: !118, line: 41, column: 7) -!167 = !DILocation(line: 43, column: 18, scope: !168) -!168 = distinct !DILexicalBlock(scope: !166, file: !118, line: 43, column: 9) -!169 = distinct !DISubprogram(name: "$fundef_204", linkageName: "$fundef_204", scope: !118, file: !118, line: 39, type: !5, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!170 = !DILocation(line: 40, column: 7, scope: !169) -!171 = distinct !DISubprogram(name: "$fundef_202", linkageName: "$fundef_202", scope: !118, file: !118, line: 38, type: !5, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!172 = !DILocation(line: 38, column: 18, scope: !171) -!173 = !DILocation(line: 38, column: 17, scope: !171) -!174 = !DILocation(line: 39, column: 32, scope: !171) -!175 = !DILocation(line: 45, column: 16, scope: !171) -!176 = !DILocation(line: 46, column: 5, scope: !171) -!177 = distinct !DISubprogram(name: "$fundef_200", linkageName: "$fundef_200", scope: !118, file: !118, line: 38, type: !5, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!178 = !DILocation(line: 38, column: 5, scope: !177) -!179 = distinct !DISubprogram(name: "$fundef_168", linkageName: "$fundef_168", scope: !180, file: !180, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!180 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") -!181 = !DILocation(line: 22, column: 5, scope: !179) -!182 = !DILocation(line: 23, column: 15, scope: !183) -!183 = distinct !DILexicalBlock(scope: !184, file: !180, line: 23, column: 7) -!184 = distinct !DILexicalBlock(scope: !179, file: !180, line: 22, column: 5) -!185 = !DILocation(line: 24, column: 16, scope: !186) -!186 = distinct !DILexicalBlock(scope: !184, file: !180, line: 24, column: 7) -!187 = distinct !DISubprogram(name: "$fundef_172", linkageName: "$fundef_172", scope: !180, file: !180, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!188 = !DILocation(line: 15, column: 5, scope: !187) -!189 = !DILocation(line: 16, column: 16, scope: !190) -!190 = distinct !DILexicalBlock(scope: !191, file: !180, line: 16, column: 7) -!191 = distinct !DILexicalBlock(scope: !187, file: !180, line: 15, column: 5) -!192 = !DILocation(line: 17, column: 16, scope: !193) -!193 = distinct !DILexicalBlock(scope: !191, file: !180, line: 17, column: 7) -!194 = distinct !DISubprogram(name: "$fundef_170", linkageName: "$fundef_170", scope: !180, file: !180, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!195 = !DILocation(line: 15, column: 5, scope: !194) -!196 = distinct !DISubprogram(name: "$fundef_176", linkageName: "$fundef_176", scope: !180, file: !180, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!197 = !DILocation(line: 8, column: 5, scope: !196) -!198 = !DILocation(line: 9, column: 16, scope: !199) -!199 = distinct !DILexicalBlock(scope: !200, file: !180, line: 9, column: 7) -!200 = distinct !DILexicalBlock(scope: !196, file: !180, line: 8, column: 5) -!201 = !DILocation(line: 10, column: 16, scope: !202) -!202 = distinct !DILexicalBlock(scope: !200, file: !180, line: 10, column: 7) -!203 = distinct !DISubprogram(name: "$fundef_174", linkageName: "$fundef_174", scope: !180, file: !180, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!204 = !DILocation(line: 8, column: 5, scope: !203) -!205 = distinct !DISubprogram(name: "$fundef_156", linkageName: "$fundef_156", scope: !206, file: !206, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!206 = !DIFile(filename: "Prelude", directory: ".") -!207 = !DILocation(line: 1, column: 94, scope: !205) -!208 = distinct !DISubprogram(name: "$fundef_154", linkageName: "$fundef_154", scope: !206, file: !206, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!209 = !DILocation(line: 1, column: 37, scope: !208) -!210 = !DILocation(line: 1, column: 94, scope: !211) -!211 = distinct !DILexicalBlock(scope: !212, file: !206, line: 1, column: 52) -!212 = distinct !DILexicalBlock(scope: !208, file: !206, line: 1, column: 37) -!213 = !DILocation(line: 1, column: 106, scope: !211) -!214 = !DILocation(line: 1, column: 129, scope: !215) -!215 = distinct !DILexicalBlock(scope: !212, file: !206, line: 1, column: 122) -!216 = distinct !DISubprogram(name: "$fundef_152", linkageName: "$fundef_152", scope: !206, file: !206, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!217 = !DILocation(line: 1, column: 37, scope: !216) -!218 = distinct !DISubprogram(name: "$fundef_150", linkageName: "$fundef_150", scope: !206, file: !206, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!219 = !DILocation(line: 1, column: 17, scope: !218) -!220 = distinct !DISubprogram(name: "$fundef_148", linkageName: "$fundef_148", scope: !206, file: !206, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!221 = !DILocation(line: 1, column: 17, scope: !220) -!222 = distinct !DISubprogram(name: "$fundef_146", linkageName: "$fundef_146", scope: !206, file: !206, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!223 = !DILocation(line: 1, column: 17, scope: !222) -!224 = distinct !DISubprogram(name: "$fundef_166", linkageName: "$fundef_166", scope: !206, file: !206, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!225 = !DILocation(line: 1, column: 37, scope: !224) -!226 = !DILocation(line: 1, column: 74, scope: !227) -!227 = distinct !DILexicalBlock(scope: !228, file: !206, line: 1, column: 52) -!228 = distinct !DILexicalBlock(scope: !224, file: !206, line: 1, column: 37) -!229 = !DILocation(line: 1, column: 83, scope: !227) -!230 = !DILocation(line: 1, column: 100, scope: !231) -!231 = distinct !DILexicalBlock(scope: !228, file: !206, line: 1, column: 93) -!232 = distinct !DISubprogram(name: "$fundef_164", linkageName: "$fundef_164", scope: !206, file: !206, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!233 = !DILocation(line: 1, column: 37, scope: !232) -!234 = distinct !DISubprogram(name: "$fundef_162", linkageName: "$fundef_162", scope: !206, file: !206, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!235 = !DILocation(line: 1, column: 17, scope: !234) -!236 = distinct !DISubprogram(name: "$fundef_160", linkageName: "$fundef_160", scope: !206, file: !206, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!237 = !DILocation(line: 1, column: 17, scope: !236) -!238 = distinct !DISubprogram(name: "$fundef_158", linkageName: "$fundef_158", scope: !206, file: !206, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!239 = !DILocation(line: 1, column: 17, scope: !238) -!240 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !241, file: !241, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!241 = !DIFile(filename: ".", directory: ".") -!242 = !DILocation(line: 1, column: 17, scope: !240) -!243 = !DILocation(line: 7, column: 3, scope: !240) -!244 = !DILocation(line: 14, column: 21, scope: !240) -!245 = !DILocation(line: 22, column: 5, scope: !240) -!246 = !DILocation(line: 36, column: 3, scope: !240) -!247 = !DILocation(line: 222, column: 3, scope: !240) -!248 = !DILocation(line: 239, column: 3, scope: !240) -!249 = !DILocation(line: 250, column: 3, scope: !240) -!250 = !DILocation(line: 7, column: 19, scope: !240) -!251 = !DILocation(line: 10, column: 18, scope: !240) -!252 = !DILocation(line: 11, column: 18, scope: !240) -!253 = !DILocation(line: 14, column: 5, scope: !240) -!254 = !DILocation(line: 17, column: 3, scope: !240) -!255 = !DILocation(line: 21, column: 3, scope: !240) -!256 = !DILocation(line: 26, column: 3, scope: !240) -!257 = !DILocation(line: 30, column: 3, scope: !240) -!258 = !DILocation(line: 38, column: 3, scope: !240) -!259 = !DILocation(line: 53, column: 3, scope: !240) -!260 = !DILocation(line: 57, column: 3, scope: !240) -!261 = !DILocation(line: 62, column: 5, scope: !240) -!262 = !DILocation(line: 65, column: 5, scope: !240) -!263 = !DILocation(line: 68, column: 3, scope: !240) -!264 = !DILocation(line: 72, column: 3, scope: !240) -!265 = !DILocation(line: 77, column: 5, scope: !240) -!266 = !DILocation(line: 82, column: 5, scope: !240) -!267 = !DILocation(line: 91, column: 3, scope: !240) -!268 = !DILocation(line: 97, column: 3, scope: !240) -!269 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !241, file: !241, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!270 = !DILocation(line: 114, column: 15, scope: !269) -!271 = !DILocation(line: 115, column: 20, scope: !269) -!272 = !DILocation(line: 116, column: 5, scope: !269) -!273 = !DILocation(line: 117, column: 28, scope: !269) -!274 = !DILocation(line: 118, column: 40, scope: !269) -!275 = !DILocation(line: 119, column: 47, scope: !269) -!276 = !DILocation(line: 120, column: 30, scope: !269) -!277 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 121, type: !5, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!278 = !DILocation(line: 122, column: 3, scope: !277) -!279 = !DILocation(line: 123, column: 19, scope: !277) -!280 = !DILocation(line: 124, column: 3, scope: !277) -!281 = !DILocation(line: 127, column: 15, scope: !282) -!282 = distinct !DILexicalBlock(scope: !283, file: !2, line: 125, column: 5) -!283 = distinct !DILexicalBlock(scope: !277, file: !2, line: 124, column: 3) -!284 = !DILocation(line: 127, column: 60, scope: !282) -!285 = !DILocation(line: 128, column: 5, scope: !282) -!286 = !DILocation(line: 130, column: 19, scope: !287) -!287 = distinct !DILexicalBlock(scope: !288, file: !2, line: 129, column: 7) -!288 = distinct !DILexicalBlock(scope: !282, file: !2, line: 128, column: 5) -!289 = !DILocation(line: 131, column: 19, scope: !290) -!290 = distinct !DILexicalBlock(scope: !291, file: !2, line: 131, column: 11) -!291 = distinct !DILexicalBlock(scope: !287, file: !2, line: 130, column: 19) -!292 = !DILocation(line: 132, column: 20, scope: !293) -!293 = distinct !DILexicalBlock(scope: !291, file: !2, line: 132, column: 11) -!294 = !DILocation(line: 134, column: 7, scope: !287) -!295 = !DILocation(line: 135, column: 11, scope: !287) -!296 = !DILocation(line: 136, column: 7, scope: !287) -!297 = !DILocation(line: 140, column: 44, scope: !298) -!298 = distinct !DILexicalBlock(scope: !283, file: !2, line: 139, column: 5) -!299 = !DILocation(line: 140, column: 49, scope: !298) -!300 = !DILocation(line: 141, column: 5, scope: !298) -!301 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 121, type: !5, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!302 = !DILocation(line: 121, column: 12, scope: !301) -!303 = distinct !DISubprogram(name: "approve", linkageName: "approve", scope: !2, file: !2, line: 144, type: !5, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!304 = !DILocation(line: 145, column: 3, scope: !303) -!305 = !DILocation(line: 146, column: 17, scope: !303) -!306 = !DILocation(line: 147, column: 23, scope: !303) -!307 = !DILocation(line: 148, column: 3, scope: !303) -!308 = !DILocation(line: 150, column: 5, scope: !309) -!309 = distinct !DILexicalBlock(scope: !310, file: !2, line: 149, column: 5) -!310 = distinct !DILexicalBlock(scope: !303, file: !2, line: 148, column: 3) -!311 = !DILocation(line: 151, column: 25, scope: !309) -!312 = !DILocation(line: 152, column: 17, scope: !313) -!313 = distinct !DILexicalBlock(scope: !314, file: !2, line: 152, column: 9) -!314 = distinct !DILexicalBlock(scope: !309, file: !2, line: 151, column: 25) -!315 = !DILocation(line: 153, column: 26, scope: !316) -!316 = distinct !DILexicalBlock(scope: !314, file: !2, line: 153, column: 9) -!317 = !DILocation(line: 155, column: 29, scope: !309) -!318 = !DILocation(line: 155, column: 69, scope: !309) -!319 = !DILocation(line: 156, column: 5, scope: !309) -!320 = !DILocation(line: 158, column: 7, scope: !321) -!321 = distinct !DILexicalBlock(scope: !322, file: !2, line: 157, column: 7) -!322 = distinct !DILexicalBlock(scope: !309, file: !2, line: 156, column: 5) -!323 = !DILocation(line: 159, column: 11, scope: !321) -!324 = !DILocation(line: 160, column: 7, scope: !321) -!325 = !DILocation(line: 164, column: 39, scope: !326) -!326 = distinct !DILexicalBlock(scope: !310, file: !2, line: 163, column: 5) -!327 = !DILocation(line: 164, column: 44, scope: !326) -!328 = !DILocation(line: 165, column: 5, scope: !326) -!329 = distinct !DISubprogram(name: "approve", linkageName: "approve", scope: !2, file: !2, line: 144, type: !5, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!330 = !DILocation(line: 144, column: 12, scope: !329) -!331 = distinct !DISubprogram(name: "approveFor", linkageName: "approveFor", scope: !2, file: !2, line: 168, type: !5, scopeLine: 168, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!332 = !DILocation(line: 169, column: 3, scope: !331) -!333 = !DILocation(line: 170, column: 22, scope: !331) -!334 = !DILocation(line: 171, column: 15, scope: !335) -!335 = distinct !DILexicalBlock(scope: !336, file: !2, line: 171, column: 7) -!336 = distinct !DILexicalBlock(scope: !331, file: !2, line: 170, column: 22) -!337 = !DILocation(line: 172, column: 19, scope: !338) -!338 = distinct !DILexicalBlock(scope: !336, file: !2, line: 172, column: 7) -!339 = !DILocation(line: 174, column: 27, scope: !331) -!340 = !DILocation(line: 175, column: 5, scope: !331) -!341 = !DILocation(line: 176, column: 3, scope: !331) -!342 = !DILocation(line: 178, column: 20, scope: !343) -!343 = distinct !DILexicalBlock(scope: !344, file: !2, line: 177, column: 5) -!344 = distinct !DILexicalBlock(scope: !331, file: !2, line: 176, column: 3) -!345 = !DILocation(line: 179, column: 17, scope: !346) -!346 = distinct !DILexicalBlock(scope: !347, file: !2, line: 179, column: 9) -!347 = distinct !DILexicalBlock(scope: !343, file: !2, line: 178, column: 20) -!348 = !DILocation(line: 180, column: 18, scope: !349) -!349 = distinct !DILexicalBlock(scope: !347, file: !2, line: 180, column: 9) -!350 = !DILocation(line: 182, column: 5, scope: !343) -!351 = !DILocation(line: 183, column: 9, scope: !343) -!352 = !DILocation(line: 184, column: 5, scope: !343) -!353 = distinct !DISubprogram(name: "approveFor", linkageName: "approveFor", scope: !2, file: !2, line: 168, type: !5, scopeLine: 168, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!354 = !DILocation(line: 168, column: 12, scope: !353) -!355 = distinct !DISubprogram(name: "configureNode", linkageName: "configureNode", scope: !2, file: !2, line: 188, type: !5, scopeLine: 188, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!356 = !DILocation(line: 189, column: 3, scope: !355) -!357 = !DILocation(line: 190, column: 3, scope: !355) -!358 = !DILocation(line: 191, column: 17, scope: !355) -!359 = !DILocation(line: 192, column: 3, scope: !355) -!360 = !DILocation(line: 193, column: 17, scope: !355) -!361 = !DILocation(line: 194, column: 3, scope: !355) -!362 = !DILocation(line: 196, column: 17, scope: !363) -!363 = distinct !DILexicalBlock(scope: !364, file: !2, line: 195, column: 5) -!364 = distinct !DILexicalBlock(scope: !355, file: !2, line: 194, column: 3) -!365 = !DILocation(line: 197, column: 5, scope: !363) -!366 = !DILocation(line: 198, column: 9, scope: !363) -!367 = !DILocation(line: 199, column: 5, scope: !363) -!368 = !DILocation(line: 200, column: 20, scope: !363) -!369 = !DILocation(line: 202, column: 10, scope: !363) -!370 = !DILocation(line: 203, column: 5, scope: !363) -!371 = !DILocation(line: 205, column: 61, scope: !372) -!372 = distinct !DILexicalBlock(scope: !364, file: !2, line: 204, column: 5) -!373 = !DILocation(line: 205, column: 66, scope: !372) -!374 = !DILocation(line: 206, column: 5, scope: !372) -!375 = !DILocation(line: 207, column: 20, scope: !372) -!376 = !DILocation(line: 209, column: 10, scope: !372) -!377 = !DILocation(line: 210, column: 5, scope: !372) -!378 = distinct !DISubprogram(name: "configureNode", linkageName: "configureNode", scope: !2, file: !2, line: 188, type: !5, scopeLine: 188, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!379 = !DILocation(line: 188, column: 12, scope: !378) -!380 = distinct !DISubprogram(name: "configureResolver", linkageName: "configureResolver", scope: !2, file: !2, line: 213, type: !5, scopeLine: 213, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!381 = !DILocation(line: 214, column: 3, scope: !380) -!382 = !DILocation(line: 215, column: 3, scope: !380) -!383 = !DILocation(line: 216, column: 17, scope: !380) -!384 = !DILocation(line: 217, column: 3, scope: !380) -!385 = !DILocation(line: 218, column: 17, scope: !380) -!386 = !DILocation(line: 219, column: 3, scope: !380) -!387 = !DILocation(line: 221, column: 17, scope: !388) -!388 = distinct !DILexicalBlock(scope: !389, file: !2, line: 220, column: 5) -!389 = distinct !DILexicalBlock(scope: !380, file: !2, line: 219, column: 3) -!390 = !DILocation(line: 222, column: 5, scope: !388) -!391 = !DILocation(line: 223, column: 9, scope: !388) -!392 = !DILocation(line: 224, column: 5, scope: !388) -!393 = !DILocation(line: 226, column: 61, scope: !394) -!394 = distinct !DILexicalBlock(scope: !389, file: !2, line: 225, column: 5) -!395 = !DILocation(line: 226, column: 66, scope: !394) -!396 = !DILocation(line: 227, column: 5, scope: !394) -!397 = distinct !DISubprogram(name: "configureResolver", linkageName: "configureResolver", scope: !2, file: !2, line: 213, type: !5, scopeLine: 213, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!398 = !DILocation(line: 213, column: 12, scope: !397) -!399 = distinct !DISubprogram(name: "transfer", linkageName: "transfer", scope: !2, file: !2, line: 230, type: !5, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!400 = !DILocation(line: 231, column: 3, scope: !399) -!401 = !DILocation(line: 232, column: 3, scope: !399) -!402 = !DILocation(line: 233, column: 17, scope: !399) -!403 = !DILocation(line: 234, column: 3, scope: !399) -!404 = !DILocation(line: 235, column: 17, scope: !399) -!405 = !DILocation(line: 236, column: 3, scope: !399) -!406 = !DILocation(line: 238, column: 5, scope: !407) -!407 = distinct !DILexicalBlock(scope: !408, file: !2, line: 237, column: 5) -!408 = distinct !DILexicalBlock(scope: !399, file: !2, line: 236, column: 3) -!409 = !DILocation(line: 239, column: 17, scope: !407) -!410 = !DILocation(line: 240, column: 5, scope: !407) -!411 = !DILocation(line: 241, column: 9, scope: !407) -!412 = !DILocation(line: 242, column: 5, scope: !407) -!413 = !DILocation(line: 243, column: 20, scope: !407) -!414 = !DILocation(line: 245, column: 10, scope: !407) -!415 = !DILocation(line: 246, column: 5, scope: !407) -!416 = !DILocation(line: 248, column: 61, scope: !417) -!417 = distinct !DILexicalBlock(scope: !408, file: !2, line: 247, column: 5) -!418 = !DILocation(line: 248, column: 66, scope: !417) -!419 = !DILocation(line: 249, column: 5, scope: !417) -!420 = !DILocation(line: 250, column: 20, scope: !417) -!421 = !DILocation(line: 252, column: 10, scope: !417) -!422 = !DILocation(line: 253, column: 5, scope: !417) -!423 = distinct !DISubprogram(name: "transfer", linkageName: "transfer", scope: !2, file: !2, line: 230, type: !5, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!424 = !DILocation(line: 230, column: 12, scope: !423) -!425 = distinct !DISubprogram(name: "assign", linkageName: "assign", scope: !2, file: !2, line: 256, type: !5, scopeLine: 256, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!426 = !DILocation(line: 257, column: 3, scope: !425) -!427 = !DILocation(line: 258, column: 3, scope: !425) -!428 = !DILocation(line: 259, column: 17, scope: !425) -!429 = !DILocation(line: 260, column: 3, scope: !425) -!430 = !DILocation(line: 261, column: 17, scope: !425) -!431 = !DILocation(line: 262, column: 3, scope: !425) -!432 = !DILocation(line: 264, column: 12, scope: !433) -!433 = distinct !DILexicalBlock(scope: !434, file: !2, line: 263, column: 5) -!434 = distinct !DILexicalBlock(scope: !425, file: !2, line: 262, column: 3) -!435 = !DILocation(line: 265, column: 5, scope: !433) -!436 = !DILocation(line: 266, column: 5, scope: !433) -!437 = !DILocation(line: 268, column: 11, scope: !438) -!438 = distinct !DILexicalBlock(scope: !439, file: !2, line: 267, column: 7) -!439 = distinct !DILexicalBlock(scope: !433, file: !2, line: 266, column: 5) -!440 = !DILocation(line: 269, column: 7, scope: !438) -!441 = !DILocation(line: 272, column: 5, scope: !433) -!442 = !DILocation(line: 273, column: 17, scope: !433) -!443 = !DILocation(line: 274, column: 5, scope: !433) -!444 = !DILocation(line: 275, column: 9, scope: !433) -!445 = !DILocation(line: 276, column: 5, scope: !433) -!446 = !DILocation(line: 277, column: 20, scope: !433) -!447 = !DILocation(line: 279, column: 10, scope: !433) -!448 = !DILocation(line: 280, column: 5, scope: !433) -!449 = !DILocation(line: 282, column: 63, scope: !450) -!450 = distinct !DILexicalBlock(scope: !434, file: !2, line: 281, column: 5) -!451 = !DILocation(line: 282, column: 68, scope: !450) -!452 = !DILocation(line: 283, column: 5, scope: !450) -!453 = !DILocation(line: 284, column: 20, scope: !450) -!454 = !DILocation(line: 286, column: 10, scope: !450) -!455 = !DILocation(line: 287, column: 5, scope: !450) -!456 = distinct !DISubprogram(name: "assign", linkageName: "assign", scope: !2, file: !2, line: 256, type: !5, scopeLine: 256, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!457 = !DILocation(line: 256, column: 12, scope: !456) -!458 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 290, type: !5, scopeLine: 290, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!459 = !DILocation(line: 291, column: 3, scope: !458) -!460 = !DILocation(line: 292, column: 10, scope: !458) -!461 = !DILocation(line: 293, column: 3, scope: !458) -!462 = !DILocation(line: 294, column: 3, scope: !458) -!463 = !DILocation(line: 295, column: 3, scope: !458) -!464 = !DILocation(line: 297, column: 25, scope: !458) -!465 = !DILocation(line: 298, column: 29, scope: !458) -!466 = !DILocation(line: 299, column: 22, scope: !458) -!467 = !DILocation(line: 300, column: 23, scope: !458) -!468 = !DILocation(line: 301, column: 27, scope: !458) -!469 = !DILocation(line: 302, column: 36, scope: !458) -!470 = !DILocation(line: 303, column: 37, scope: !458) -!471 = !DILocation(line: 304, column: 27, scope: !458) -!472 = !DILocation(line: 305, column: 7, scope: !458) -!473 = !DILocation(line: 306, column: 3, scope: !458) -!474 = !DILocation(line: 308, column: 5, scope: !475) -!475 = distinct !DILexicalBlock(scope: !476, file: !2, line: 307, column: 5) -!476 = distinct !DILexicalBlock(scope: !458, file: !2, line: 306, column: 3) -!477 = !DILocation(line: 310, column: 11, scope: !478) -!478 = distinct !DILexicalBlock(scope: !479, file: !2, line: 309, column: 7) -!479 = distinct !DILexicalBlock(scope: !475, file: !2, line: 308, column: 5) -!480 = !DILocation(line: 311, column: 7, scope: !478) -!481 = !DILocation(line: 314, column: 17, scope: !475) -!482 = !DILocation(line: 315, column: 5, scope: !475) -!483 = !DILocation(line: 316, column: 9, scope: !475) -!484 = !DILocation(line: 317, column: 5, scope: !475) -!485 = !DILocation(line: 319, column: 30, scope: !486) -!486 = distinct !DILexicalBlock(scope: !476, file: !2, line: 318, column: 5) -!487 = !DILocation(line: 319, column: 35, scope: !486) -!488 = !DILocation(line: 320, column: 5, scope: !486) -!489 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 290, type: !5, scopeLine: 290, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!490 = !DILocation(line: 290, column: 12, scope: !489) -!491 = distinct !DISubprogram(name: "setRegistrar", linkageName: "setRegistrar", scope: !2, file: !2, line: 323, type: !5, scopeLine: 323, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!492 = !DILocation(line: 324, column: 3, scope: !491) -!493 = !DILocation(line: 325, column: 10, scope: !491) -!494 = !DILocation(line: 326, column: 3, scope: !491) -!495 = !DILocation(line: 328, column: 9, scope: !496) -!496 = distinct !DILexicalBlock(scope: !497, file: !2, line: 327, column: 5) -!497 = distinct !DILexicalBlock(scope: !491, file: !2, line: 326, column: 3) -!498 = !DILocation(line: 329, column: 5, scope: !496) -!499 = !DILocation(line: 330, column: 5, scope: !496) -!500 = distinct !DISubprogram(name: "setRegistrar", linkageName: "setRegistrar", scope: !2, file: !2, line: 323, type: !5, scopeLine: 323, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!501 = !DILocation(line: 323, column: 12, scope: !500) -!502 = distinct !DISubprogram(name: "register", linkageName: "register", scope: !2, file: !2, line: 334, type: !5, scopeLine: 334, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!503 = !DILocation(line: 335, column: 10, scope: !502) -!504 = !DILocation(line: 336, column: 3, scope: !502) -!505 = !DILocation(line: 337, column: 3, scope: !502) -!506 = !DILocation(line: 338, column: 17, scope: !502) -!507 = !DILocation(line: 340, column: 5, scope: !502) -!508 = !DILocation(line: 341, column: 15, scope: !509) -!509 = distinct !DILexicalBlock(scope: !510, file: !2, line: 341, column: 7) -!510 = distinct !DILexicalBlock(scope: !502, file: !2, line: 340, column: 5) -!511 = !DILocation(line: 342, column: 24, scope: !512) -!512 = distinct !DILexicalBlock(scope: !510, file: !2, line: 342, column: 7) -!513 = !DILocation(line: 344, column: 3, scope: !502) -!514 = !DILocation(line: 346, column: 27, scope: !502) -!515 = !DILocation(line: 347, column: 24, scope: !502) -!516 = !DILocation(line: 348, column: 7, scope: !502) -!517 = !DILocation(line: 349, column: 3, scope: !502) -!518 = !DILocation(line: 351, column: 5, scope: !519) -!519 = distinct !DILexicalBlock(scope: !520, file: !2, line: 350, column: 5) -!520 = distinct !DILexicalBlock(scope: !502, file: !2, line: 349, column: 3) -!521 = !DILocation(line: 353, column: 15, scope: !519) -!522 = !DILocation(line: 355, column: 9, scope: !519) -!523 = !DILocation(line: 356, column: 5, scope: !519) -!524 = distinct !DISubprogram(name: "register", linkageName: "register", scope: !2, file: !2, line: 334, type: !5, scopeLine: 334, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!525 = !DILocation(line: 334, column: 12, scope: !524) -!526 = distinct !DISubprogram(name: "onResolverConfigured", linkageName: "onResolverConfigured", scope: !2, file: !2, line: 360, type: !5, scopeLine: 360, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!527 = !DILocation(line: 361, column: 3, scope: !526) -!528 = !DILocation(line: 362, column: 3, scope: !526) -!529 = !DILocation(line: 365, column: 5, scope: !530) -!530 = distinct !DILexicalBlock(scope: !531, file: !2, line: 364, column: 5) -!531 = distinct !DILexicalBlock(scope: !526, file: !2, line: 362, column: 3) -!532 = !DILocation(line: 367, column: 14, scope: !533) -!533 = distinct !DILexicalBlock(scope: !534, file: !2, line: 366, column: 7) -!534 = distinct !DILexicalBlock(scope: !530, file: !2, line: 365, column: 5) -!535 = !DILocation(line: 368, column: 7, scope: !533) -!536 = !DILocation(line: 370, column: 13, scope: !537) -!537 = distinct !DILexicalBlock(scope: !538, file: !2, line: 369, column: 9) -!538 = distinct !DILexicalBlock(scope: !533, file: !2, line: 368, column: 7) -!539 = !DILocation(line: 371, column: 9, scope: !537) -!540 = distinct !DISubprogram(name: "onResolverConfigured", linkageName: "onResolverConfigured", scope: !2, file: !2, line: 360, type: !5, scopeLine: 360, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!541 = !DILocation(line: 360, column: 12, scope: !540) +!23 = distinct !DISubprogram(name: "$fundef_121", linkageName: "$fundef_121", scope: !2, file: !2, line: 91, type: !5, scopeLine: 91, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!24 = !DILocation(line: 92, column: 21, scope: !23) +!25 = !DILocation(line: 93, column: 21, scope: !23) +!26 = !DILocation(line: 94, column: 7, scope: !23) +!27 = distinct !DISubprogram(name: "$fundef_123", linkageName: "$fundef_123", scope: !2, file: !2, line: 82, type: !5, scopeLine: 82, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!28 = !DILocation(line: 82, column: 5, scope: !27) +!29 = !DILocation(line: 83, column: 15, scope: !30) +!30 = distinct !DILexicalBlock(scope: !31, file: !2, line: 83, column: 7) +!31 = distinct !DILexicalBlock(scope: !27, file: !2, line: 82, column: 5) +!32 = !DILocation(line: 85, column: 7, scope: !33) +!33 = distinct !DILexicalBlock(scope: !31, file: !2, line: 84, column: 7) +!34 = !DILocation(line: 86, column: 34, scope: !35) +!35 = distinct !DILexicalBlock(scope: !36, file: !2, line: 86, column: 9) +!36 = distinct !DILexicalBlock(scope: !33, file: !2, line: 85, column: 7) +!37 = distinct !DISubprogram(name: "$fundef_125", linkageName: "$fundef_125", scope: !2, file: !2, line: 77, type: !5, scopeLine: 77, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!38 = !DILocation(line: 77, column: 5, scope: !37) +!39 = distinct !DISubprogram(name: "$fundef_127", linkageName: "$fundef_127", scope: !2, file: !2, line: 72, type: !5, scopeLine: 72, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!40 = !DILocation(line: 74, column: 5, scope: !39) +!41 = distinct !DISubprogram(name: "$fundef_129", linkageName: "$fundef_129", scope: !2, file: !2, line: 68, type: !5, scopeLine: 68, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!42 = !DILocation(line: 69, column: 5, scope: !41) +!43 = distinct !DISubprogram(name: "$fundef_131", linkageName: "$fundef_131", scope: !2, file: !2, line: 65, type: !5, scopeLine: 65, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!44 = !DILocation(line: 65, column: 5, scope: !43) +!45 = distinct !DISubprogram(name: "$fundef_133", linkageName: "$fundef_133", scope: !2, file: !2, line: 62, type: !5, scopeLine: 62, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!46 = !DILocation(line: 62, column: 5, scope: !45) +!47 = distinct !DISubprogram(name: "$fundef_135", linkageName: "$fundef_135", scope: !2, file: !2, line: 57, type: !5, scopeLine: 57, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!48 = !DILocation(line: 59, column: 5, scope: !47) +!49 = distinct !DISubprogram(name: "$fundef_137", linkageName: "$fundef_137", scope: !2, file: !2, line: 53, type: !5, scopeLine: 53, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!50 = !DILocation(line: 54, column: 5, scope: !49) +!51 = distinct !DISubprogram(name: "$fundef_139", linkageName: "$fundef_139", scope: !2, file: !2, line: 38, type: !5, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!52 = !DILocation(line: 39, column: 5, scope: !51) +!53 = !DILocation(line: 41, column: 7, scope: !54) +!54 = distinct !DILexicalBlock(scope: !55, file: !2, line: 40, column: 7) +!55 = distinct !DILexicalBlock(scope: !51, file: !2, line: 39, column: 5) +!56 = !DILocation(line: 42, column: 17, scope: !57) +!57 = distinct !DILexicalBlock(scope: !58, file: !2, line: 42, column: 9) +!58 = distinct !DILexicalBlock(scope: !54, file: !2, line: 41, column: 7) +!59 = !DILocation(line: 43, column: 18, scope: !60) +!60 = distinct !DILexicalBlock(scope: !58, file: !2, line: 43, column: 9) +!61 = !DILocation(line: 46, column: 7, scope: !62) +!62 = distinct !DILexicalBlock(scope: !55, file: !2, line: 45, column: 7) +!63 = !DILocation(line: 47, column: 17, scope: !64) +!64 = distinct !DILexicalBlock(scope: !65, file: !2, line: 47, column: 9) +!65 = distinct !DILexicalBlock(scope: !62, file: !2, line: 46, column: 7) +!66 = !DILocation(line: 48, column: 18, scope: !67) +!67 = distinct !DILexicalBlock(scope: !65, file: !2, line: 48, column: 9) +!68 = distinct !DISubprogram(name: "$fundef_143", linkageName: "$fundef_143", scope: !2, file: !2, line: 33, type: !5, scopeLine: 33, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!69 = !DILocation(line: 33, column: 15, scope: !68) +!70 = !DILocation(line: 34, column: 8, scope: !68) +!71 = distinct !DISubprogram(name: "$fundef_141", linkageName: "$fundef_141", scope: !2, file: !2, line: 30, type: !5, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!72 = !DILocation(line: 31, column: 30, scope: !71) +!73 = !DILocation(line: 31, column: 29, scope: !71) +!74 = !DILocation(line: 33, column: 7, scope: !71) +!75 = !DILocation(line: 35, column: 7, scope: !71) +!76 = distinct !DISubprogram(name: "$fundef_145", linkageName: "$fundef_145", scope: !2, file: !2, line: 26, type: !5, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!77 = !DILocation(line: 27, column: 13, scope: !76) +!78 = !DILocation(line: 27, column: 44, scope: !76) +!79 = distinct !DISubprogram(name: "$fundef_147", linkageName: "$fundef_147", scope: !2, file: !2, line: 21, type: !5, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!80 = !DILocation(line: 22, column: 27, scope: !79) +!81 = !DILocation(line: 22, column: 26, scope: !79) +!82 = !DILocation(line: 23, column: 7, scope: !79) +!83 = distinct !DISubprogram(name: "$fundef_151", linkageName: "$fundef_151", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!84 = !DILocation(line: 18, column: 5, scope: !83) +!85 = distinct !DISubprogram(name: "$fundef_149", linkageName: "$fundef_149", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!86 = !DILocation(line: 18, column: 5, scope: !85) +!87 = distinct !DISubprogram(name: "$fundef_153", linkageName: "$fundef_153", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!88 = !DILocation(line: 14, column: 5, scope: !87) +!89 = distinct !DISubprogram(name: "$fundef_93", linkageName: "$fundef_93", scope: !90, file: !90, line: 252, type: !5, scopeLine: 252, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!90 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") +!91 = !DILocation(line: 252, column: 19, scope: !89) +!92 = !DILocation(line: 253, column: 15, scope: !89) +!93 = !DILocation(line: 253, column: 14, scope: !89) +!94 = !DILocation(line: 254, column: 5, scope: !89) +!95 = distinct !DISubprogram(name: "$fundef_91", linkageName: "$fundef_91", scope: !90, file: !90, line: 251, type: !5, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!96 = !DILocation(line: 252, column: 5, scope: !95) +!97 = distinct !DISubprogram(name: "$fundef_89", linkageName: "$fundef_89", scope: !90, file: !90, line: 251, type: !5, scopeLine: 251, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!98 = !DILocation(line: 251, column: 33, scope: !97) +!99 = distinct !DISubprogram(name: "$fundef_99", linkageName: "$fundef_99", scope: !90, file: !90, line: 241, type: !5, scopeLine: 241, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!100 = !DILocation(line: 241, column: 17, scope: !99) +!101 = !DILocation(line: 241, column: 16, scope: !99) +!102 = !DILocation(line: 242, column: 18, scope: !99) +!103 = !DILocation(line: 243, column: 5, scope: !99) +!104 = !DILocation(line: 244, column: 17, scope: !105) +!105 = distinct !DILexicalBlock(scope: !106, file: !90, line: 244, column: 7) +!106 = distinct !DILexicalBlock(scope: !99, file: !90, line: 243, column: 5) +!107 = !DILocation(line: 245, column: 15, scope: !108) +!108 = distinct !DILexicalBlock(scope: !106, file: !90, line: 245, column: 7) +!109 = distinct !DISubprogram(name: "$fundef_97", linkageName: "$fundef_97", scope: !90, file: !90, line: 240, type: !5, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!110 = !DILocation(line: 241, column: 5, scope: !109) +!111 = distinct !DISubprogram(name: "$fundef_95", linkageName: "$fundef_95", scope: !90, file: !90, line: 240, type: !5, scopeLine: 240, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!112 = !DILocation(line: 240, column: 27, scope: !111) +!113 = distinct !DISubprogram(name: "$fundef_109", linkageName: "$fundef_109", scope: !90, file: !90, line: 230, type: !5, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!114 = !DILocation(line: 230, column: 19, scope: !113) +!115 = !DILocation(line: 231, column: 9, scope: !113) +!116 = !DILocation(line: 232, column: 19, scope: !117) +!117 = distinct !DILexicalBlock(scope: !118, file: !90, line: 232, column: 11) +!118 = distinct !DILexicalBlock(scope: !113, file: !90, line: 231, column: 9) +!119 = !DILocation(line: 233, column: 20, scope: !120) +!120 = distinct !DILexicalBlock(scope: !118, file: !90, line: 233, column: 11) +!121 = distinct !DISubprogram(name: "$fundef_107", linkageName: "$fundef_107", scope: !90, file: !90, line: 229, type: !5, scopeLine: 229, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!122 = !DILocation(line: 230, column: 9, scope: !121) +!123 = distinct !DISubprogram(name: "$fundef_105", linkageName: "$fundef_105", scope: !90, file: !90, line: 228, type: !5, scopeLine: 228, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!124 = !DILocation(line: 229, column: 7, scope: !123) +!125 = distinct !DISubprogram(name: "$fundef_103", linkageName: "$fundef_103", scope: !90, file: !90, line: 224, type: !5, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!126 = !DILocation(line: 224, column: 18, scope: !125) +!127 = !DILocation(line: 224, column: 17, scope: !125) +!128 = !DILocation(line: 225, column: 16, scope: !125) +!129 = !DILocation(line: 228, column: 35, scope: !125) +!130 = !DILocation(line: 235, column: 5, scope: !125) +!131 = distinct !DISubprogram(name: "$fundef_101", linkageName: "$fundef_101", scope: !90, file: !90, line: 224, type: !5, scopeLine: 224, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!132 = !DILocation(line: 224, column: 5, scope: !131) +!133 = distinct !DISubprogram(name: "$fundef_117", linkageName: "$fundef_117", scope: !90, file: !90, line: 40, type: !5, scopeLine: 40, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!134 = !DILocation(line: 40, column: 16, scope: !133) +!135 = !DILocation(line: 41, column: 7, scope: !133) +!136 = !DILocation(line: 42, column: 17, scope: !137) +!137 = distinct !DILexicalBlock(scope: !138, file: !90, line: 42, column: 9) +!138 = distinct !DILexicalBlock(scope: !133, file: !90, line: 41, column: 7) +!139 = !DILocation(line: 43, column: 18, scope: !140) +!140 = distinct !DILexicalBlock(scope: !138, file: !90, line: 43, column: 9) +!141 = distinct !DISubprogram(name: "$fundef_115", linkageName: "$fundef_115", scope: !90, file: !90, line: 39, type: !5, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!142 = !DILocation(line: 40, column: 7, scope: !141) +!143 = distinct !DISubprogram(name: "$fundef_113", linkageName: "$fundef_113", scope: !90, file: !90, line: 38, type: !5, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!144 = !DILocation(line: 38, column: 18, scope: !143) +!145 = !DILocation(line: 38, column: 17, scope: !143) +!146 = !DILocation(line: 39, column: 32, scope: !143) +!147 = !DILocation(line: 45, column: 16, scope: !143) +!148 = !DILocation(line: 46, column: 5, scope: !143) +!149 = distinct !DISubprogram(name: "$fundef_111", linkageName: "$fundef_111", scope: !90, file: !90, line: 38, type: !5, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!150 = !DILocation(line: 38, column: 5, scope: !149) +!151 = distinct !DISubprogram(name: "$fundef_83", linkageName: "$fundef_83", scope: !152, file: !152, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!152 = !DIFile(filename: "BoolUtils.scillib", directory: "../src/stdlib") +!153 = !DILocation(line: 22, column: 5, scope: !151) +!154 = !DILocation(line: 23, column: 15, scope: !155) +!155 = distinct !DILexicalBlock(scope: !156, file: !152, line: 23, column: 7) +!156 = distinct !DILexicalBlock(scope: !151, file: !152, line: 22, column: 5) +!157 = !DILocation(line: 24, column: 16, scope: !158) +!158 = distinct !DILexicalBlock(scope: !156, file: !152, line: 24, column: 7) +!159 = distinct !DISubprogram(name: "$fundef_85", linkageName: "$fundef_85", scope: !152, file: !152, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!160 = !DILocation(line: 15, column: 5, scope: !159) +!161 = !DILocation(line: 16, column: 16, scope: !162) +!162 = distinct !DILexicalBlock(scope: !163, file: !152, line: 16, column: 7) +!163 = distinct !DILexicalBlock(scope: !159, file: !152, line: 15, column: 5) +!164 = !DILocation(line: 17, column: 16, scope: !165) +!165 = distinct !DILexicalBlock(scope: !163, file: !152, line: 17, column: 7) +!166 = distinct !DISubprogram(name: "$fundef_87", linkageName: "$fundef_87", scope: !152, file: !152, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!167 = !DILocation(line: 8, column: 5, scope: !166) +!168 = !DILocation(line: 9, column: 16, scope: !169) +!169 = distinct !DILexicalBlock(scope: !170, file: !152, line: 9, column: 7) +!170 = distinct !DILexicalBlock(scope: !166, file: !152, line: 8, column: 5) +!171 = !DILocation(line: 10, column: 16, scope: !172) +!172 = distinct !DILexicalBlock(scope: !170, file: !152, line: 10, column: 7) +!173 = distinct !DISubprogram(name: "$fundef_71", linkageName: "$fundef_71", scope: !174, file: !174, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!174 = !DIFile(filename: "Prelude", directory: ".") +!175 = !DILocation(line: 1, column: 94, scope: !173) +!176 = distinct !DISubprogram(name: "$fundef_69", linkageName: "$fundef_69", scope: !174, file: !174, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!177 = !DILocation(line: 1, column: 37, scope: !176) +!178 = !DILocation(line: 1, column: 94, scope: !179) +!179 = distinct !DILexicalBlock(scope: !180, file: !174, line: 1, column: 52) +!180 = distinct !DILexicalBlock(scope: !176, file: !174, line: 1, column: 37) +!181 = !DILocation(line: 1, column: 106, scope: !179) +!182 = !DILocation(line: 1, column: 129, scope: !183) +!183 = distinct !DILexicalBlock(scope: !180, file: !174, line: 1, column: 122) +!184 = distinct !DISubprogram(name: "$fundef_67", linkageName: "$fundef_67", scope: !174, file: !174, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!185 = !DILocation(line: 1, column: 37, scope: !184) +!186 = distinct !DISubprogram(name: "$fundef_65", linkageName: "$fundef_65", scope: !174, file: !174, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!187 = !DILocation(line: 1, column: 17, scope: !186) +!188 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !174, file: !174, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!189 = !DILocation(line: 1, column: 17, scope: !188) +!190 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !174, file: !174, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!191 = !DILocation(line: 1, column: 17, scope: !190) +!192 = distinct !DISubprogram(name: "$fundef_81", linkageName: "$fundef_81", scope: !174, file: !174, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!193 = !DILocation(line: 1, column: 37, scope: !192) +!194 = !DILocation(line: 1, column: 74, scope: !195) +!195 = distinct !DILexicalBlock(scope: !196, file: !174, line: 1, column: 52) +!196 = distinct !DILexicalBlock(scope: !192, file: !174, line: 1, column: 37) +!197 = !DILocation(line: 1, column: 83, scope: !195) +!198 = !DILocation(line: 1, column: 100, scope: !199) +!199 = distinct !DILexicalBlock(scope: !196, file: !174, line: 1, column: 93) +!200 = distinct !DISubprogram(name: "$fundef_79", linkageName: "$fundef_79", scope: !174, file: !174, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!201 = !DILocation(line: 1, column: 37, scope: !200) +!202 = distinct !DISubprogram(name: "$fundef_77", linkageName: "$fundef_77", scope: !174, file: !174, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!203 = !DILocation(line: 1, column: 17, scope: !202) +!204 = distinct !DISubprogram(name: "$fundef_75", linkageName: "$fundef_75", scope: !174, file: !174, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!205 = !DILocation(line: 1, column: 17, scope: !204) +!206 = distinct !DISubprogram(name: "$fundef_73", linkageName: "$fundef_73", scope: !174, file: !174, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!207 = !DILocation(line: 1, column: 17, scope: !206) +!208 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !209, file: !209, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!209 = !DIFile(filename: ".", directory: ".") +!210 = !DILocation(line: 1, column: 17, scope: !208) +!211 = !DILocation(line: 7, column: 3, scope: !208) +!212 = !DILocation(line: 14, column: 21, scope: !208) +!213 = !DILocation(line: 22, column: 5, scope: !208) +!214 = !DILocation(line: 36, column: 3, scope: !208) +!215 = !DILocation(line: 222, column: 3, scope: !208) +!216 = !DILocation(line: 239, column: 3, scope: !208) +!217 = !DILocation(line: 250, column: 3, scope: !208) +!218 = !DILocation(line: 7, column: 19, scope: !208) +!219 = !DILocation(line: 10, column: 18, scope: !208) +!220 = !DILocation(line: 11, column: 18, scope: !208) +!221 = !DILocation(line: 14, column: 5, scope: !208) +!222 = !DILocation(line: 17, column: 3, scope: !208) +!223 = !DILocation(line: 21, column: 3, scope: !208) +!224 = !DILocation(line: 26, column: 3, scope: !208) +!225 = !DILocation(line: 30, column: 3, scope: !208) +!226 = !DILocation(line: 38, column: 3, scope: !208) +!227 = !DILocation(line: 53, column: 3, scope: !208) +!228 = !DILocation(line: 57, column: 3, scope: !208) +!229 = !DILocation(line: 62, column: 5, scope: !208) +!230 = !DILocation(line: 65, column: 5, scope: !208) +!231 = !DILocation(line: 68, column: 3, scope: !208) +!232 = !DILocation(line: 72, column: 3, scope: !208) +!233 = !DILocation(line: 77, column: 5, scope: !208) +!234 = !DILocation(line: 82, column: 5, scope: !208) +!235 = !DILocation(line: 91, column: 3, scope: !208) +!236 = !DILocation(line: 97, column: 3, scope: !208) +!237 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !209, file: !209, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!238 = !DILocation(line: 114, column: 15, scope: !237) +!239 = !DILocation(line: 115, column: 20, scope: !237) +!240 = !DILocation(line: 116, column: 5, scope: !237) +!241 = !DILocation(line: 117, column: 28, scope: !237) +!242 = !DILocation(line: 118, column: 40, scope: !237) +!243 = !DILocation(line: 119, column: 47, scope: !237) +!244 = !DILocation(line: 120, column: 30, scope: !237) +!245 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 121, type: !5, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!246 = !DILocation(line: 122, column: 3, scope: !245) +!247 = !DILocation(line: 123, column: 19, scope: !245) +!248 = !DILocation(line: 124, column: 3, scope: !245) +!249 = !DILocation(line: 127, column: 15, scope: !250) +!250 = distinct !DILexicalBlock(scope: !251, file: !2, line: 125, column: 5) +!251 = distinct !DILexicalBlock(scope: !245, file: !2, line: 124, column: 3) +!252 = !DILocation(line: 127, column: 60, scope: !250) +!253 = !DILocation(line: 128, column: 5, scope: !250) +!254 = !DILocation(line: 130, column: 19, scope: !255) +!255 = distinct !DILexicalBlock(scope: !256, file: !2, line: 129, column: 7) +!256 = distinct !DILexicalBlock(scope: !250, file: !2, line: 128, column: 5) +!257 = !DILocation(line: 131, column: 19, scope: !258) +!258 = distinct !DILexicalBlock(scope: !259, file: !2, line: 131, column: 11) +!259 = distinct !DILexicalBlock(scope: !255, file: !2, line: 130, column: 19) +!260 = !DILocation(line: 132, column: 20, scope: !261) +!261 = distinct !DILexicalBlock(scope: !259, file: !2, line: 132, column: 11) +!262 = !DILocation(line: 134, column: 7, scope: !255) +!263 = !DILocation(line: 135, column: 11, scope: !255) +!264 = !DILocation(line: 136, column: 7, scope: !255) +!265 = !DILocation(line: 140, column: 44, scope: !266) +!266 = distinct !DILexicalBlock(scope: !251, file: !2, line: 139, column: 5) +!267 = !DILocation(line: 140, column: 49, scope: !266) +!268 = !DILocation(line: 141, column: 5, scope: !266) +!269 = distinct !DISubprogram(name: "setAdmin", linkageName: "setAdmin", scope: !2, file: !2, line: 121, type: !5, scopeLine: 121, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!270 = !DILocation(line: 121, column: 12, scope: !269) +!271 = distinct !DISubprogram(name: "approve", linkageName: "approve", scope: !2, file: !2, line: 144, type: !5, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!272 = !DILocation(line: 145, column: 3, scope: !271) +!273 = !DILocation(line: 146, column: 17, scope: !271) +!274 = !DILocation(line: 147, column: 23, scope: !271) +!275 = !DILocation(line: 148, column: 3, scope: !271) +!276 = !DILocation(line: 150, column: 5, scope: !277) +!277 = distinct !DILexicalBlock(scope: !278, file: !2, line: 149, column: 5) +!278 = distinct !DILexicalBlock(scope: !271, file: !2, line: 148, column: 3) +!279 = !DILocation(line: 151, column: 25, scope: !277) +!280 = !DILocation(line: 152, column: 17, scope: !281) +!281 = distinct !DILexicalBlock(scope: !282, file: !2, line: 152, column: 9) +!282 = distinct !DILexicalBlock(scope: !277, file: !2, line: 151, column: 25) +!283 = !DILocation(line: 153, column: 26, scope: !284) +!284 = distinct !DILexicalBlock(scope: !282, file: !2, line: 153, column: 9) +!285 = !DILocation(line: 155, column: 29, scope: !277) +!286 = !DILocation(line: 155, column: 69, scope: !277) +!287 = !DILocation(line: 156, column: 5, scope: !277) +!288 = !DILocation(line: 158, column: 7, scope: !289) +!289 = distinct !DILexicalBlock(scope: !290, file: !2, line: 157, column: 7) +!290 = distinct !DILexicalBlock(scope: !277, file: !2, line: 156, column: 5) +!291 = !DILocation(line: 159, column: 11, scope: !289) +!292 = !DILocation(line: 160, column: 7, scope: !289) +!293 = !DILocation(line: 164, column: 39, scope: !294) +!294 = distinct !DILexicalBlock(scope: !278, file: !2, line: 163, column: 5) +!295 = !DILocation(line: 164, column: 44, scope: !294) +!296 = !DILocation(line: 165, column: 5, scope: !294) +!297 = distinct !DISubprogram(name: "approve", linkageName: "approve", scope: !2, file: !2, line: 144, type: !5, scopeLine: 144, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!298 = !DILocation(line: 144, column: 12, scope: !297) +!299 = distinct !DISubprogram(name: "approveFor", linkageName: "approveFor", scope: !2, file: !2, line: 168, type: !5, scopeLine: 168, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!300 = !DILocation(line: 169, column: 3, scope: !299) +!301 = !DILocation(line: 170, column: 22, scope: !299) +!302 = !DILocation(line: 171, column: 15, scope: !303) +!303 = distinct !DILexicalBlock(scope: !304, file: !2, line: 171, column: 7) +!304 = distinct !DILexicalBlock(scope: !299, file: !2, line: 170, column: 22) +!305 = !DILocation(line: 172, column: 19, scope: !306) +!306 = distinct !DILexicalBlock(scope: !304, file: !2, line: 172, column: 7) +!307 = !DILocation(line: 174, column: 27, scope: !299) +!308 = !DILocation(line: 175, column: 5, scope: !299) +!309 = !DILocation(line: 176, column: 3, scope: !299) +!310 = !DILocation(line: 178, column: 20, scope: !311) +!311 = distinct !DILexicalBlock(scope: !312, file: !2, line: 177, column: 5) +!312 = distinct !DILexicalBlock(scope: !299, file: !2, line: 176, column: 3) +!313 = !DILocation(line: 179, column: 17, scope: !314) +!314 = distinct !DILexicalBlock(scope: !315, file: !2, line: 179, column: 9) +!315 = distinct !DILexicalBlock(scope: !311, file: !2, line: 178, column: 20) +!316 = !DILocation(line: 180, column: 18, scope: !317) +!317 = distinct !DILexicalBlock(scope: !315, file: !2, line: 180, column: 9) +!318 = !DILocation(line: 182, column: 5, scope: !311) +!319 = !DILocation(line: 183, column: 9, scope: !311) +!320 = !DILocation(line: 184, column: 5, scope: !311) +!321 = distinct !DISubprogram(name: "approveFor", linkageName: "approveFor", scope: !2, file: !2, line: 168, type: !5, scopeLine: 168, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!322 = !DILocation(line: 168, column: 12, scope: !321) +!323 = distinct !DISubprogram(name: "configureNode", linkageName: "configureNode", scope: !2, file: !2, line: 188, type: !5, scopeLine: 188, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!324 = !DILocation(line: 189, column: 3, scope: !323) +!325 = !DILocation(line: 190, column: 3, scope: !323) +!326 = !DILocation(line: 191, column: 17, scope: !323) +!327 = !DILocation(line: 192, column: 3, scope: !323) +!328 = !DILocation(line: 193, column: 17, scope: !323) +!329 = !DILocation(line: 194, column: 3, scope: !323) +!330 = !DILocation(line: 196, column: 17, scope: !331) +!331 = distinct !DILexicalBlock(scope: !332, file: !2, line: 195, column: 5) +!332 = distinct !DILexicalBlock(scope: !323, file: !2, line: 194, column: 3) +!333 = !DILocation(line: 197, column: 5, scope: !331) +!334 = !DILocation(line: 198, column: 9, scope: !331) +!335 = !DILocation(line: 199, column: 5, scope: !331) +!336 = !DILocation(line: 200, column: 20, scope: !331) +!337 = !DILocation(line: 202, column: 10, scope: !331) +!338 = !DILocation(line: 203, column: 5, scope: !331) +!339 = !DILocation(line: 205, column: 61, scope: !340) +!340 = distinct !DILexicalBlock(scope: !332, file: !2, line: 204, column: 5) +!341 = !DILocation(line: 205, column: 66, scope: !340) +!342 = !DILocation(line: 206, column: 5, scope: !340) +!343 = !DILocation(line: 207, column: 20, scope: !340) +!344 = !DILocation(line: 209, column: 10, scope: !340) +!345 = !DILocation(line: 210, column: 5, scope: !340) +!346 = distinct !DISubprogram(name: "configureNode", linkageName: "configureNode", scope: !2, file: !2, line: 188, type: !5, scopeLine: 188, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!347 = !DILocation(line: 188, column: 12, scope: !346) +!348 = distinct !DISubprogram(name: "configureResolver", linkageName: "configureResolver", scope: !2, file: !2, line: 213, type: !5, scopeLine: 213, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!349 = !DILocation(line: 214, column: 3, scope: !348) +!350 = !DILocation(line: 215, column: 3, scope: !348) +!351 = !DILocation(line: 216, column: 17, scope: !348) +!352 = !DILocation(line: 217, column: 3, scope: !348) +!353 = !DILocation(line: 218, column: 17, scope: !348) +!354 = !DILocation(line: 219, column: 3, scope: !348) +!355 = !DILocation(line: 221, column: 17, scope: !356) +!356 = distinct !DILexicalBlock(scope: !357, file: !2, line: 220, column: 5) +!357 = distinct !DILexicalBlock(scope: !348, file: !2, line: 219, column: 3) +!358 = !DILocation(line: 222, column: 5, scope: !356) +!359 = !DILocation(line: 223, column: 9, scope: !356) +!360 = !DILocation(line: 224, column: 5, scope: !356) +!361 = !DILocation(line: 226, column: 61, scope: !362) +!362 = distinct !DILexicalBlock(scope: !357, file: !2, line: 225, column: 5) +!363 = !DILocation(line: 226, column: 66, scope: !362) +!364 = !DILocation(line: 227, column: 5, scope: !362) +!365 = distinct !DISubprogram(name: "configureResolver", linkageName: "configureResolver", scope: !2, file: !2, line: 213, type: !5, scopeLine: 213, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!366 = !DILocation(line: 213, column: 12, scope: !365) +!367 = distinct !DISubprogram(name: "transfer", linkageName: "transfer", scope: !2, file: !2, line: 230, type: !5, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!368 = !DILocation(line: 231, column: 3, scope: !367) +!369 = !DILocation(line: 232, column: 3, scope: !367) +!370 = !DILocation(line: 233, column: 17, scope: !367) +!371 = !DILocation(line: 234, column: 3, scope: !367) +!372 = !DILocation(line: 235, column: 17, scope: !367) +!373 = !DILocation(line: 236, column: 3, scope: !367) +!374 = !DILocation(line: 238, column: 5, scope: !375) +!375 = distinct !DILexicalBlock(scope: !376, file: !2, line: 237, column: 5) +!376 = distinct !DILexicalBlock(scope: !367, file: !2, line: 236, column: 3) +!377 = !DILocation(line: 239, column: 17, scope: !375) +!378 = !DILocation(line: 240, column: 5, scope: !375) +!379 = !DILocation(line: 241, column: 9, scope: !375) +!380 = !DILocation(line: 242, column: 5, scope: !375) +!381 = !DILocation(line: 243, column: 20, scope: !375) +!382 = !DILocation(line: 245, column: 10, scope: !375) +!383 = !DILocation(line: 246, column: 5, scope: !375) +!384 = !DILocation(line: 248, column: 61, scope: !385) +!385 = distinct !DILexicalBlock(scope: !376, file: !2, line: 247, column: 5) +!386 = !DILocation(line: 248, column: 66, scope: !385) +!387 = !DILocation(line: 249, column: 5, scope: !385) +!388 = !DILocation(line: 250, column: 20, scope: !385) +!389 = !DILocation(line: 252, column: 10, scope: !385) +!390 = !DILocation(line: 253, column: 5, scope: !385) +!391 = distinct !DISubprogram(name: "transfer", linkageName: "transfer", scope: !2, file: !2, line: 230, type: !5, scopeLine: 230, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!392 = !DILocation(line: 230, column: 12, scope: !391) +!393 = distinct !DISubprogram(name: "assign", linkageName: "assign", scope: !2, file: !2, line: 256, type: !5, scopeLine: 256, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!394 = !DILocation(line: 257, column: 3, scope: !393) +!395 = !DILocation(line: 258, column: 3, scope: !393) +!396 = !DILocation(line: 259, column: 17, scope: !393) +!397 = !DILocation(line: 260, column: 3, scope: !393) +!398 = !DILocation(line: 261, column: 17, scope: !393) +!399 = !DILocation(line: 262, column: 3, scope: !393) +!400 = !DILocation(line: 264, column: 12, scope: !401) +!401 = distinct !DILexicalBlock(scope: !402, file: !2, line: 263, column: 5) +!402 = distinct !DILexicalBlock(scope: !393, file: !2, line: 262, column: 3) +!403 = !DILocation(line: 265, column: 5, scope: !401) +!404 = !DILocation(line: 266, column: 5, scope: !401) +!405 = !DILocation(line: 268, column: 11, scope: !406) +!406 = distinct !DILexicalBlock(scope: !407, file: !2, line: 267, column: 7) +!407 = distinct !DILexicalBlock(scope: !401, file: !2, line: 266, column: 5) +!408 = !DILocation(line: 269, column: 7, scope: !406) +!409 = !DILocation(line: 272, column: 5, scope: !401) +!410 = !DILocation(line: 273, column: 17, scope: !401) +!411 = !DILocation(line: 274, column: 5, scope: !401) +!412 = !DILocation(line: 275, column: 9, scope: !401) +!413 = !DILocation(line: 276, column: 5, scope: !401) +!414 = !DILocation(line: 277, column: 20, scope: !401) +!415 = !DILocation(line: 279, column: 10, scope: !401) +!416 = !DILocation(line: 280, column: 5, scope: !401) +!417 = !DILocation(line: 282, column: 63, scope: !418) +!418 = distinct !DILexicalBlock(scope: !402, file: !2, line: 281, column: 5) +!419 = !DILocation(line: 282, column: 68, scope: !418) +!420 = !DILocation(line: 283, column: 5, scope: !418) +!421 = !DILocation(line: 284, column: 20, scope: !418) +!422 = !DILocation(line: 286, column: 10, scope: !418) +!423 = !DILocation(line: 287, column: 5, scope: !418) +!424 = distinct !DISubprogram(name: "assign", linkageName: "assign", scope: !2, file: !2, line: 256, type: !5, scopeLine: 256, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!425 = !DILocation(line: 256, column: 12, scope: !424) +!426 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 290, type: !5, scopeLine: 290, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!427 = !DILocation(line: 291, column: 3, scope: !426) +!428 = !DILocation(line: 292, column: 10, scope: !426) +!429 = !DILocation(line: 293, column: 3, scope: !426) +!430 = !DILocation(line: 294, column: 3, scope: !426) +!431 = !DILocation(line: 295, column: 3, scope: !426) +!432 = !DILocation(line: 297, column: 25, scope: !426) +!433 = !DILocation(line: 298, column: 29, scope: !426) +!434 = !DILocation(line: 299, column: 22, scope: !426) +!435 = !DILocation(line: 300, column: 23, scope: !426) +!436 = !DILocation(line: 301, column: 27, scope: !426) +!437 = !DILocation(line: 302, column: 36, scope: !426) +!438 = !DILocation(line: 303, column: 37, scope: !426) +!439 = !DILocation(line: 304, column: 27, scope: !426) +!440 = !DILocation(line: 305, column: 7, scope: !426) +!441 = !DILocation(line: 306, column: 3, scope: !426) +!442 = !DILocation(line: 308, column: 5, scope: !443) +!443 = distinct !DILexicalBlock(scope: !444, file: !2, line: 307, column: 5) +!444 = distinct !DILexicalBlock(scope: !426, file: !2, line: 306, column: 3) +!445 = !DILocation(line: 310, column: 11, scope: !446) +!446 = distinct !DILexicalBlock(scope: !447, file: !2, line: 309, column: 7) +!447 = distinct !DILexicalBlock(scope: !443, file: !2, line: 308, column: 5) +!448 = !DILocation(line: 311, column: 7, scope: !446) +!449 = !DILocation(line: 314, column: 17, scope: !443) +!450 = !DILocation(line: 315, column: 5, scope: !443) +!451 = !DILocation(line: 316, column: 9, scope: !443) +!452 = !DILocation(line: 317, column: 5, scope: !443) +!453 = !DILocation(line: 319, column: 30, scope: !454) +!454 = distinct !DILexicalBlock(scope: !444, file: !2, line: 318, column: 5) +!455 = !DILocation(line: 319, column: 35, scope: !454) +!456 = !DILocation(line: 320, column: 5, scope: !454) +!457 = distinct !DISubprogram(name: "bestow", linkageName: "bestow", scope: !2, file: !2, line: 290, type: !5, scopeLine: 290, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!458 = !DILocation(line: 290, column: 12, scope: !457) +!459 = distinct !DISubprogram(name: "setRegistrar", linkageName: "setRegistrar", scope: !2, file: !2, line: 323, type: !5, scopeLine: 323, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!460 = !DILocation(line: 324, column: 3, scope: !459) +!461 = !DILocation(line: 325, column: 10, scope: !459) +!462 = !DILocation(line: 326, column: 3, scope: !459) +!463 = !DILocation(line: 328, column: 9, scope: !464) +!464 = distinct !DILexicalBlock(scope: !465, file: !2, line: 327, column: 5) +!465 = distinct !DILexicalBlock(scope: !459, file: !2, line: 326, column: 3) +!466 = !DILocation(line: 329, column: 5, scope: !464) +!467 = !DILocation(line: 330, column: 5, scope: !464) +!468 = distinct !DISubprogram(name: "setRegistrar", linkageName: "setRegistrar", scope: !2, file: !2, line: 323, type: !5, scopeLine: 323, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!469 = !DILocation(line: 323, column: 12, scope: !468) +!470 = distinct !DISubprogram(name: "register", linkageName: "register", scope: !2, file: !2, line: 334, type: !5, scopeLine: 334, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!471 = !DILocation(line: 335, column: 10, scope: !470) +!472 = !DILocation(line: 336, column: 3, scope: !470) +!473 = !DILocation(line: 337, column: 3, scope: !470) +!474 = !DILocation(line: 338, column: 17, scope: !470) +!475 = !DILocation(line: 340, column: 5, scope: !470) +!476 = !DILocation(line: 341, column: 15, scope: !477) +!477 = distinct !DILexicalBlock(scope: !478, file: !2, line: 341, column: 7) +!478 = distinct !DILexicalBlock(scope: !470, file: !2, line: 340, column: 5) +!479 = !DILocation(line: 342, column: 24, scope: !480) +!480 = distinct !DILexicalBlock(scope: !478, file: !2, line: 342, column: 7) +!481 = !DILocation(line: 344, column: 3, scope: !470) +!482 = !DILocation(line: 346, column: 27, scope: !470) +!483 = !DILocation(line: 347, column: 24, scope: !470) +!484 = !DILocation(line: 348, column: 7, scope: !470) +!485 = !DILocation(line: 349, column: 3, scope: !470) +!486 = !DILocation(line: 351, column: 5, scope: !487) +!487 = distinct !DILexicalBlock(scope: !488, file: !2, line: 350, column: 5) +!488 = distinct !DILexicalBlock(scope: !470, file: !2, line: 349, column: 3) +!489 = !DILocation(line: 353, column: 15, scope: !487) +!490 = !DILocation(line: 355, column: 9, scope: !487) +!491 = !DILocation(line: 356, column: 5, scope: !487) +!492 = distinct !DISubprogram(name: "register", linkageName: "register", scope: !2, file: !2, line: 334, type: !5, scopeLine: 334, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!493 = !DILocation(line: 334, column: 12, scope: !492) +!494 = distinct !DISubprogram(name: "onResolverConfigured", linkageName: "onResolverConfigured", scope: !2, file: !2, line: 360, type: !5, scopeLine: 360, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!495 = !DILocation(line: 361, column: 3, scope: !494) +!496 = !DILocation(line: 362, column: 3, scope: !494) +!497 = !DILocation(line: 365, column: 5, scope: !498) +!498 = distinct !DILexicalBlock(scope: !499, file: !2, line: 364, column: 5) +!499 = distinct !DILexicalBlock(scope: !494, file: !2, line: 362, column: 3) +!500 = !DILocation(line: 367, column: 14, scope: !501) +!501 = distinct !DILexicalBlock(scope: !502, file: !2, line: 366, column: 7) +!502 = distinct !DILexicalBlock(scope: !498, file: !2, line: 365, column: 5) +!503 = !DILocation(line: 368, column: 7, scope: !501) +!504 = !DILocation(line: 370, column: 13, scope: !505) +!505 = distinct !DILexicalBlock(scope: !506, file: !2, line: 369, column: 9) +!506 = distinct !DILexicalBlock(scope: !501, file: !2, line: 368, column: 7) +!507 = !DILocation(line: 371, column: 9, scope: !505) +!508 = distinct !DISubprogram(name: "onResolverConfigured", linkageName: "onResolverConfigured", scope: !2, file: !2, line: 360, type: !5, scopeLine: 360, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!509 = !DILocation(line: 360, column: 12, scope: !508) diff --git a/tests/codegen/contr/dgold/uncurry1.scilla.gold b/tests/codegen/contr/dgold/uncurry1.scilla.gold new file mode 100644 index 00000000..d4d5f73f --- /dev/null +++ b/tests/codegen/contr/dgold/uncurry1.scilla.gold @@ -0,0 +1,947 @@ + + +; gas_remaining: 4001999 +; ModuleID = 'SimpleUnuccury' +source_filename = "SimpleUnuccury" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" + +%"$TyDescrTy_PrimTyp_24" = type { i32, i32 } +%_TyDescrTy_Typ = type { i32, i8* } +%"$TyDescrTy_ADTTyp_56" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_55"** } +%TyDescrString = type { i8*, i32 } +%"$TyDescrTy_ADTTyp_Specl_55" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_57"**, %"$TyDescrTy_ADTTyp_56"* } +%"$TyDescrTy_ADTTyp_Constr_57" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$TyDescr_AddrTyp_61" = type { i32, %"$TyDescr_AddrFieldTyp_60"* } +%"$TyDescr_AddrFieldTyp_60" = type { %TyDescrString, %_TyDescrTy_Typ* } +%Int32 = type { i32 } +%Uint32 = type { i32 } +%"$ParamDescr_455" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%ParamDescrString = type { i8*, i32 } +%"$TransDescr_456" = type { %ParamDescrString, i32, %"$ParamDescr_455"* } +%"$$fundef_22_env_76" = type { %Int32 } +%"$$fundef_20_env_77" = type {} +%"$$fundef_10_env_78" = type { %Int32 } +%"$$fundef_8_env_79" = type {} +%"$$fundef_14_env_80" = type { %Int32 } +%"$$fundef_12_env_81" = type {} +%"$$fundef_16_env_82" = type {} +%TName_Bool = type { i8, %CName_True*, %CName_False* } +%CName_True = type <{ i8 }> +%CName_False = type <{ i8 }> +%Uint128 = type { i128 } + +@_execptr = global i8* null +@_gasrem = global i64 0 +@"$TyDescr_Int32_Prim_25" = global %"$TyDescrTy_PrimTyp_24" zeroinitializer +@"$TyDescr_Int32_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int32_Prim_25" to i8*) } +@"$TyDescr_Uint32_Prim_27" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 0 } +@"$TyDescr_Uint32_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint32_Prim_27" to i8*) } +@"$TyDescr_Int64_Prim_29" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 1 } +@"$TyDescr_Int64_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int64_Prim_29" to i8*) } +@"$TyDescr_Uint64_Prim_31" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 1 } +@"$TyDescr_Uint64_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint64_Prim_31" to i8*) } +@"$TyDescr_Int128_Prim_33" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 2 } +@"$TyDescr_Int128_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int128_Prim_33" to i8*) } +@"$TyDescr_Uint128_Prim_35" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 2 } +@"$TyDescr_Uint128_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint128_Prim_35" to i8*) } +@"$TyDescr_Int256_Prim_37" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 3 } +@"$TyDescr_Int256_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int256_Prim_37" to i8*) } +@"$TyDescr_Uint256_Prim_39" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 3 } +@"$TyDescr_Uint256_40" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint256_Prim_39" to i8*) } +@"$TyDescr_String_Prim_41" = global %"$TyDescrTy_PrimTyp_24" { i32 2, i32 0 } +@"$TyDescr_String_42" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_String_Prim_41" to i8*) } +@"$TyDescr_Bnum_Prim_43" = global %"$TyDescrTy_PrimTyp_24" { i32 3, i32 0 } +@"$TyDescr_Bnum_44" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bnum_Prim_43" to i8*) } +@"$TyDescr_Message_Prim_45" = global %"$TyDescrTy_PrimTyp_24" { i32 4, i32 0 } +@"$TyDescr_Message_46" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Message_Prim_45" to i8*) } +@"$TyDescr_Event_Prim_47" = global %"$TyDescrTy_PrimTyp_24" { i32 5, i32 0 } +@"$TyDescr_Event_48" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Event_Prim_47" to i8*) } +@"$TyDescr_Exception_Prim_49" = global %"$TyDescrTy_PrimTyp_24" { i32 6, i32 0 } +@"$TyDescr_Exception_50" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Exception_Prim_49" to i8*) } +@"$TyDescr_Bystr_Prim_51" = global %"$TyDescrTy_PrimTyp_24" { i32 7, i32 0 } +@"$TyDescr_Bystr_52" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bystr_Prim_51" to i8*) } +@"$TyDescr_Bystr20_Prim_53" = global %"$TyDescrTy_PrimTyp_24" { i32 8, i32 20 } +@"$TyDescr_Bystr20_54" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bystr20_Prim_53" to i8*) } +@"$TyDescr_ADT_Bool_58" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Bool_ADTTyp_Specl_72" to i8*) } +@"$TyDescr_Addr_62" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_61"* @"$TyDescr_AddrFields_75" to i8*) } +@"$TyDescr_Bool_ADTTyp_63" = unnamed_addr constant %"$TyDescrTy_ADTTyp_56" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_74", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_55"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_55"*], [1 x %"$TyDescrTy_ADTTyp_Specl_55"*]* @"$TyDescr_Bool_ADTTyp_m_specls_73", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_64" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_65" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_66" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_65", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_64", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_67" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_68" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_69" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_68", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_67", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_70" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_57"*] [%"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Bool_True_ADTTyp_Constr_66", %"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Bool_False_ADTTyp_Constr_69"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_71" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_72" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_55" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_71", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_57"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_57"*], [2 x %"$TyDescrTy_ADTTyp_Constr_57"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_70", i32 0, i32 0), %"$TyDescrTy_ADTTyp_56"* @"$TyDescr_Bool_ADTTyp_63" } +@"$TyDescr_Bool_ADTTyp_m_specls_73" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_55"*] [%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Bool_ADTTyp_Specl_72"] +@"$TyDescr_ADT_Bool_74" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_AddrFields_75" = unnamed_addr constant %"$TyDescr_AddrTyp_61" { i32 -1, %"$TyDescr_AddrFieldTyp_60"* null } +@uncurry1.uncur_lib_func = global { %Int32 (i8*, %Int32, %Int32)*, i8* } zeroinitializer +@uncurry1.no_uncur_lib_func = global { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } zeroinitializer +@uncurry1.uncur_lib_func_partial = global { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } zeroinitializer +@_cparam__scilla_version = global %Uint32 zeroinitializer +@_cparam__this_address = global [20 x i8] zeroinitializer +@_cparam__creation_block = global i8* null +@"$some_bool_197" = unnamed_addr constant [10 x i8] c"some_bool\00" +@"$res_206" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_335" = unnamed_addr constant [4 x i8] c"res\00" +@"$some_bool_372" = unnamed_addr constant [10 x i8] c"some_bool\00" +@"$res_438" = unnamed_addr constant [4 x i8] c"res\00" +@_tydescr_table = constant [17 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_48", %_TyDescrTy_Typ* @"$TyDescr_Int64_30", %_TyDescrTy_Typ* @"$TyDescr_Addr_62", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_58", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54", %_TyDescrTy_Typ* @"$TyDescr_Uint256_40", %_TyDescrTy_Typ* @"$TyDescr_Uint32_28", %_TyDescrTy_Typ* @"$TyDescr_Uint64_32", %_TyDescrTy_Typ* @"$TyDescr_Bnum_44", %_TyDescrTy_Typ* @"$TyDescr_Uint128_36", %_TyDescrTy_Typ* @"$TyDescr_Exception_50", %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ* @"$TyDescr_Int256_38", %_TyDescrTy_Typ* @"$TyDescr_Int128_34", %_TyDescrTy_Typ* @"$TyDescr_Bystr_52", %_TyDescrTy_Typ* @"$TyDescr_Message_46", %_TyDescrTy_Typ* @"$TyDescr_Int32_26"] +@_tydescr_table_length = constant i32 17 +@"$pname__scilla_version_457" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_458" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_459" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_455"] [%"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_457", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_28" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_458", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_459", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_44" }] +@_contract_parameters_length = constant i32 3 +@"$tpname__amount_460" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_461" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_462" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_463" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_464" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy_465" = unnamed_addr constant [5 x %"$ParamDescr_455"] [%"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_460", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_461", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_62" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_462", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_62" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_463", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_26" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_464", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_26" }] +@"$tname_dummy_466" = unnamed_addr constant [5 x i8] c"dummy" +@"$tpname__amount_467" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_468" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_469" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_470" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_471" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy2_472" = unnamed_addr constant [5 x %"$ParamDescr_455"] [%"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_467", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_468", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_62" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_469", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_62" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_470", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_26" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_471", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_26" }] +@"$tname_dummy2_473" = unnamed_addr constant [6 x i8] c"dummy2" +@_transition_parameters = constant [2 x %"$TransDescr_456"] [%"$TransDescr_456" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_dummy_466", i32 0, i32 0), i32 5 }, i32 5, %"$ParamDescr_455"* getelementptr inbounds ([5 x %"$ParamDescr_455"], [5 x %"$ParamDescr_455"]* @"$tparams_dummy_465", i32 0, i32 0) }, %"$TransDescr_456" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_dummy2_473", i32 0, i32 0), i32 6 }, i32 5, %"$ParamDescr_455"* getelementptr inbounds ([5 x %"$ParamDescr_455"], [5 x %"$ParamDescr_455"]* @"$tparams_dummy2_472", i32 0, i32 0) }] +@_transition_parameters_length = constant i32 2 + +define internal %Int32 @"$fundef_22"(%"$$fundef_22_env_76"* %0, %Int32 %1) !dbg !4 { +entry: + %"$$fundef_22_env_a_154" = getelementptr inbounds %"$$fundef_22_env_76", %"$$fundef_22_env_76"* %0, i32 0, i32 0 + %"$a_envload_155" = load %Int32, %Int32* %"$$fundef_22_env_a_154", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_155", %Int32* %a, align 4 + %"$retval_23" = alloca %Int32, align 8 + %"$gasrem_156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_157" = icmp ugt i64 4, %"$gasrem_156" + br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" + +"$out_of_gas_158": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_159" + +"$have_gas_159": ; preds = %"$out_of_gas_158", %entry + %"$consume_160" = sub i64 %"$gasrem_156", 4 + store i64 %"$consume_160", i64* @_gasrem, align 8 + %"$a_161" = load %Int32, %Int32* %a, align 4 + %"$sub_call_162" = call %Int32 @_sub_Int32(%Int32 %"$a_161", %Int32 %1), !dbg !8 + store %Int32 %"$sub_call_162", %Int32* %"$retval_23", align 4, !dbg !8 + %"$$retval_23_163" = load %Int32, %Int32* %"$retval_23", align 4 + ret %Int32 %"$$retval_23_163" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_20"(%"$$fundef_20_env_77"* %0, %Int32 %1) !dbg !9 { +entry: + %"$retval_21" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_143" = load i64, i64* @_gasrem, align 8 + %"$gascmp_144" = icmp ugt i64 1, %"$gasrem_143" + br i1 %"$gascmp_144", label %"$out_of_gas_145", label %"$have_gas_146" + +"$out_of_gas_145": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_146" + +"$have_gas_146": ; preds = %"$out_of_gas_145", %entry + %"$consume_147" = sub i64 %"$gasrem_143", 1 + store i64 %"$consume_147", i64* @_gasrem, align 8 + %"$$fundef_22_envp_148_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_22_envp_148_salloc" = call i8* @_salloc(i8* %"$$fundef_22_envp_148_load", i64 4) + %"$$fundef_22_envp_148" = bitcast i8* %"$$fundef_22_envp_148_salloc" to %"$$fundef_22_env_76"* + %"$$fundef_22_env_voidp_150" = bitcast %"$$fundef_22_env_76"* %"$$fundef_22_envp_148" to i8* + %"$$fundef_22_cloval_151" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_22_env_76"*, %Int32)* @"$fundef_22" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_22_env_voidp_150", 1 + %"$$fundef_22_env_a_152" = getelementptr inbounds %"$$fundef_22_env_76", %"$$fundef_22_env_76"* %"$$fundef_22_envp_148", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_22_env_a_152", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_22_cloval_151", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_21", align 8, !dbg !10 + %"$$retval_21_153" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_21", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_21_153" +} + +define internal %Int32 @"$fundef_10"(%"$$fundef_10_env_78"* %0, %Int32 %1) !dbg !11 { +entry: + %"$$fundef_10_env_a_133" = getelementptr inbounds %"$$fundef_10_env_78", %"$$fundef_10_env_78"* %0, i32 0, i32 0 + %"$a_envload_134" = load %Int32, %Int32* %"$$fundef_10_env_a_133", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_134", %Int32* %a, align 4 + %"$retval_11" = alloca %Int32, align 8 + %"$gasrem_135" = load i64, i64* @_gasrem, align 8 + %"$gascmp_136" = icmp ugt i64 4, %"$gasrem_135" + br i1 %"$gascmp_136", label %"$out_of_gas_137", label %"$have_gas_138" + +"$out_of_gas_137": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_138" + +"$have_gas_138": ; preds = %"$out_of_gas_137", %entry + %"$consume_139" = sub i64 %"$gasrem_135", 4 + store i64 %"$consume_139", i64* @_gasrem, align 8 + %"$a_140" = load %Int32, %Int32* %a, align 4 + %"$add_call_141" = call %Int32 @_add_Int32(%Int32 %"$a_140", %Int32 %1), !dbg !12 + store %Int32 %"$add_call_141", %Int32* %"$retval_11", align 4, !dbg !12 + %"$$retval_11_142" = load %Int32, %Int32* %"$retval_11", align 4 + ret %Int32 %"$$retval_11_142" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_8"(%"$$fundef_8_env_79"* %0, %Int32 %1) !dbg !13 { +entry: + %"$retval_9" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_123" = icmp ugt i64 1, %"$gasrem_122" + br i1 %"$gascmp_123", label %"$out_of_gas_124", label %"$have_gas_125" + +"$out_of_gas_124": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_125" + +"$have_gas_125": ; preds = %"$out_of_gas_124", %entry + %"$consume_126" = sub i64 %"$gasrem_122", 1 + store i64 %"$consume_126", i64* @_gasrem, align 8 + %"$$fundef_10_envp_127_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_10_envp_127_salloc" = call i8* @_salloc(i8* %"$$fundef_10_envp_127_load", i64 4) + %"$$fundef_10_envp_127" = bitcast i8* %"$$fundef_10_envp_127_salloc" to %"$$fundef_10_env_78"* + %"$$fundef_10_env_voidp_129" = bitcast %"$$fundef_10_env_78"* %"$$fundef_10_envp_127" to i8* + %"$$fundef_10_cloval_130" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_10_env_78"*, %Int32)* @"$fundef_10" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_10_env_voidp_129", 1 + %"$$fundef_10_env_a_131" = getelementptr inbounds %"$$fundef_10_env_78", %"$$fundef_10_env_78"* %"$$fundef_10_envp_127", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_10_env_a_131", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_10_cloval_130", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_9", align 8, !dbg !14 + %"$$retval_9_132" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_9", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_9_132" +} + +define internal %Int32 @"$fundef_14"(%"$$fundef_14_env_80"* %0, %Int32 %1) !dbg !15 { +entry: + %"$$fundef_14_env_a__112" = getelementptr inbounds %"$$fundef_14_env_80", %"$$fundef_14_env_80"* %0, i32 0, i32 0 + %"$a__envload_113" = load %Int32, %Int32* %"$$fundef_14_env_a__112", align 4 + %a_ = alloca %Int32, align 8 + store %Int32 %"$a__envload_113", %Int32* %a_, align 4 + %"$retval_15" = alloca %Int32, align 8 + %"$gasrem_114" = load i64, i64* @_gasrem, align 8 + %"$gascmp_115" = icmp ugt i64 4, %"$gasrem_114" + br i1 %"$gascmp_115", label %"$out_of_gas_116", label %"$have_gas_117" + +"$out_of_gas_116": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_117" + +"$have_gas_117": ; preds = %"$out_of_gas_116", %entry + %"$consume_118" = sub i64 %"$gasrem_114", 4 + store i64 %"$consume_118", i64* @_gasrem, align 8 + %"$a__119" = load %Int32, %Int32* %a_, align 4 + %"$add_call_120" = call %Int32 @_add_Int32(%Int32 %"$a__119", %Int32 %1), !dbg !16 + store %Int32 %"$add_call_120", %Int32* %"$retval_15", align 4, !dbg !16 + %"$$retval_15_121" = load %Int32, %Int32* %"$retval_15", align 4 + ret %Int32 %"$$retval_15_121" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_12"(%"$$fundef_12_env_81"* %0, %Int32 %1) !dbg !17 { +entry: + %"$retval_13" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_90" = load i64, i64* @_gasrem, align 8 + %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" + br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" + +"$out_of_gas_92": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_93" + +"$have_gas_93": ; preds = %"$out_of_gas_92", %entry + %"$consume_94" = sub i64 %"$gasrem_90", 1 + store i64 %"$consume_94", i64* @_gasrem, align 8 + %a_ = alloca %Int32, align 8 + %"$gasrem_95" = load i64, i64* @_gasrem, align 8 + %"$gascmp_96" = icmp ugt i64 1, %"$gasrem_95" + br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" + +"$out_of_gas_97": ; preds = %"$have_gas_93" + call void @_out_of_gas() + br label %"$have_gas_98" + +"$have_gas_98": ; preds = %"$out_of_gas_97", %"$have_gas_93" + %"$consume_99" = sub i64 %"$gasrem_95", 1 + store i64 %"$consume_99", i64* @_gasrem, align 8 + store %Int32 %1, %Int32* %a_, align 4, !dbg !18 + %"$gasrem_100" = load i64, i64* @_gasrem, align 8 + %"$gascmp_101" = icmp ugt i64 1, %"$gasrem_100" + br i1 %"$gascmp_101", label %"$out_of_gas_102", label %"$have_gas_103" + +"$out_of_gas_102": ; preds = %"$have_gas_98" + call void @_out_of_gas() + br label %"$have_gas_103" + +"$have_gas_103": ; preds = %"$out_of_gas_102", %"$have_gas_98" + %"$consume_104" = sub i64 %"$gasrem_100", 1 + store i64 %"$consume_104", i64* @_gasrem, align 8 + %"$$fundef_14_envp_105_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_14_envp_105_salloc" = call i8* @_salloc(i8* %"$$fundef_14_envp_105_load", i64 4) + %"$$fundef_14_envp_105" = bitcast i8* %"$$fundef_14_envp_105_salloc" to %"$$fundef_14_env_80"* + %"$$fundef_14_env_voidp_107" = bitcast %"$$fundef_14_env_80"* %"$$fundef_14_envp_105" to i8* + %"$$fundef_14_cloval_108" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_14_env_80"*, %Int32)* @"$fundef_14" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_14_env_voidp_107", 1 + %"$$fundef_14_env_a__109" = getelementptr inbounds %"$$fundef_14_env_80", %"$$fundef_14_env_80"* %"$$fundef_14_envp_105", i32 0, i32 0 + %"$a__110" = load %Int32, %Int32* %a_, align 4 + store %Int32 %"$a__110", %Int32* %"$$fundef_14_env_a__109", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_14_cloval_108", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_13", align 8, !dbg !19 + %"$$retval_13_111" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_13", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_13_111" +} + +define internal %Int32 @"$fundef_16"(%"$$fundef_16_env_82"* %0, %Int32 %1, %Int32 %2) !dbg !20 { +entry: + %"$retval_17" = alloca %Int32, align 8 + %"$gasrem_83" = load i64, i64* @_gasrem, align 8 + %"$gascmp_84" = icmp ugt i64 4, %"$gasrem_83" + br i1 %"$gascmp_84", label %"$out_of_gas_85", label %"$have_gas_86" + +"$out_of_gas_85": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_86" + +"$have_gas_86": ; preds = %"$out_of_gas_85", %entry + %"$consume_87" = sub i64 %"$gasrem_83", 4 + store i64 %"$consume_87", i64* @_gasrem, align 8 + %"$add_call_88" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %2), !dbg !21 + store %Int32 %"$add_call_88", %Int32* %"$retval_17", align 4, !dbg !21 + %"$$retval_17_89" = load %Int32, %Int32* %"$retval_17", align 4 + ret %Int32 %"$$retval_17_89" +} + +declare void @_out_of_gas() + +declare %Int32 @_add_Int32(%Int32, %Int32) + +declare i8* @_salloc(i8*, i64) + +declare %Int32 @_sub_Int32(%Int32, %Int32) + +define void @_init_libs() !dbg !22 { +entry: + %"$gasrem_164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_165" = icmp ugt i64 2, %"$gasrem_164" + br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" + +"$out_of_gas_166": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_167" + +"$have_gas_167": ; preds = %"$out_of_gas_166", %entry + %"$consume_168" = sub i64 %"$gasrem_164", 2 + store i64 %"$consume_168", i64* @_gasrem, align 8 + store { %Int32 (i8*, %Int32, %Int32)*, i8* } { %Int32 (i8*, %Int32, %Int32)* bitcast (%Int32 (%"$$fundef_16_env_82"*, %Int32, %Int32)* @"$fundef_16" to %Int32 (i8*, %Int32, %Int32)*), i8* null }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* @uncurry1.uncur_lib_func, align 8, !dbg !24 + %"$gasrem_172" = load i64, i64* @_gasrem, align 8 + %"$gascmp_173" = icmp ugt i64 1, %"$gasrem_172" + br i1 %"$gascmp_173", label %"$out_of_gas_174", label %"$have_gas_175" + +"$out_of_gas_174": ; preds = %"$have_gas_167" + call void @_out_of_gas() + br label %"$have_gas_175" + +"$have_gas_175": ; preds = %"$out_of_gas_174", %"$have_gas_167" + %"$consume_176" = sub i64 %"$gasrem_172", 1 + store i64 %"$consume_176", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_12_env_81"*, %Int32)* @"$fundef_12" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry1.no_uncur_lib_func, align 8, !dbg !25 + %"$gasrem_180" = load i64, i64* @_gasrem, align 8 + %"$gascmp_181" = icmp ugt i64 1, %"$gasrem_180" + br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" + +"$out_of_gas_182": ; preds = %"$have_gas_175" + call void @_out_of_gas() + br label %"$have_gas_183" + +"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_175" + %"$consume_184" = sub i64 %"$gasrem_180", 1 + store i64 %"$consume_184", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_8_env_79"*, %Int32)* @"$fundef_8" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry1.uncur_lib_func_partial, align 8, !dbg !26 + ret void +} + +define void @_init_state() !dbg !27 { +entry: + %"$some_bool_18" = alloca %TName_Bool*, align 8 + %"$gasrem_188" = load i64, i64* @_gasrem, align 8 + %"$gascmp_189" = icmp ugt i64 1, %"$gasrem_188" + br i1 %"$gascmp_189", label %"$out_of_gas_190", label %"$have_gas_191" + +"$out_of_gas_190": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_191" + +"$have_gas_191": ; preds = %"$out_of_gas_190", %entry + %"$consume_192" = sub i64 %"$gasrem_188", 1 + store i64 %"$consume_192", i64* @_gasrem, align 8 + %"$adtval_193_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_193_salloc" = call i8* @_salloc(i8* %"$adtval_193_load", i64 1) + %"$adtval_193" = bitcast i8* %"$adtval_193_salloc" to %CName_False* + %"$adtgep_194" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_193", i32 0, i32 0 + store i8 1, i8* %"$adtgep_194", align 1 + %"$adtptr_195" = bitcast %CName_False* %"$adtval_193" to %TName_Bool* + store %TName_Bool* %"$adtptr_195", %TName_Bool** %"$some_bool_18", align 8, !dbg !28 + %"$execptr_load_196" = load i8*, i8** @_execptr, align 8 + %"$$some_bool_18_198" = load %TName_Bool*, %TName_Bool** %"$some_bool_18", align 8 + %"$update_value_199" = bitcast %TName_Bool* %"$$some_bool_18_198" to i8* + call void @_update_field(i8* %"$execptr_load_196", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$some_bool_197", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_58", i32 0, i8* null, i8* %"$update_value_199"), !dbg !28 + %"$res_19" = alloca %Int32, align 8 + %"$gasrem_200" = load i64, i64* @_gasrem, align 8 + %"$gascmp_201" = icmp ugt i64 1, %"$gasrem_200" + br i1 %"$gascmp_201", label %"$out_of_gas_202", label %"$have_gas_203" + +"$out_of_gas_202": ; preds = %"$have_gas_191" + call void @_out_of_gas() + br label %"$have_gas_203" + +"$have_gas_203": ; preds = %"$out_of_gas_202", %"$have_gas_191" + %"$consume_204" = sub i64 %"$gasrem_200", 1 + store i64 %"$consume_204", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %"$res_19", align 4, !dbg !29 + %"$execptr_load_205" = load i8*, i8** @_execptr, align 8 + %"$$res_19_207" = load %Int32, %Int32* %"$res_19", align 4 + %"$update_value_208" = alloca %Int32, align 8 + store %Int32 %"$$res_19_207", %Int32* %"$update_value_208", align 4 + %"$update_value_209" = bitcast %Int32* %"$update_value_208" to i8* + call void @_update_field(i8* %"$execptr_load_205", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_206", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_26", i32 0, i8* null, i8* %"$update_value_209"), !dbg !29 + ret void +} + +declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) + +define internal void @"$dummy_210"(%Uint128 %_amount, [20 x i8]* %"$_origin_211", [20 x i8]* %"$_sender_212", %Int32 %x1, %Int32 %x2) !dbg !30 { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_211", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_212", align 1 + %"$gasrem_213" = load i64, i64* @_gasrem, align 8 + %"$gascmp_214" = icmp ugt i64 1, %"$gasrem_213" + br i1 %"$gascmp_214", label %"$out_of_gas_215", label %"$have_gas_216" + +"$out_of_gas_215": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_216" + +"$have_gas_216": ; preds = %"$out_of_gas_215", %entry + %"$consume_217" = sub i64 %"$gasrem_213", 1 + store i64 %"$consume_217", i64* @_gasrem, align 8 + %partial_app_func = alloca %Int32, align 8 + %"$gasrem_218" = load i64, i64* @_gasrem, align 8 + %"$gascmp_219" = icmp ugt i64 1, %"$gasrem_218" + br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" + +"$out_of_gas_220": ; preds = %"$have_gas_216" + call void @_out_of_gas() + br label %"$have_gas_221" + +"$have_gas_221": ; preds = %"$out_of_gas_220", %"$have_gas_216" + %"$consume_222" = sub i64 %"$gasrem_218", 1 + store i64 %"$consume_222", i64* @_gasrem, align 8 + %partial_app_func_ = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_223" = load i64, i64* @_gasrem, align 8 + %"$gascmp_224" = icmp ugt i64 1, %"$gasrem_223" + br i1 %"$gascmp_224", label %"$out_of_gas_225", label %"$have_gas_226" + +"$out_of_gas_225": ; preds = %"$have_gas_221" + call void @_out_of_gas() + br label %"$have_gas_226" + +"$have_gas_226": ; preds = %"$out_of_gas_225", %"$have_gas_221" + %"$consume_227" = sub i64 %"$gasrem_223", 1 + store i64 %"$consume_227", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_20_env_77"*, %Int32)* @"$fundef_20" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %partial_app_func_, align 8, !dbg !31 + %"$gasrem_231" = load i64, i64* @_gasrem, align 8 + %"$gascmp_232" = icmp ugt i64 1, %"$gasrem_231" + br i1 %"$gascmp_232", label %"$out_of_gas_233", label %"$have_gas_234" + +"$out_of_gas_233": ; preds = %"$have_gas_226" + call void @_out_of_gas() + br label %"$have_gas_234" + +"$have_gas_234": ; preds = %"$out_of_gas_233", %"$have_gas_226" + %"$consume_235" = sub i64 %"$gasrem_231", 1 + store i64 %"$consume_235", i64* @_gasrem, align 8 + %n1 = alloca %Int32, align 8 + %"$gasrem_236" = load i64, i64* @_gasrem, align 8 + %"$gascmp_237" = icmp ugt i64 1, %"$gasrem_236" + br i1 %"$gascmp_237", label %"$out_of_gas_238", label %"$have_gas_239" + +"$out_of_gas_238": ; preds = %"$have_gas_234" + call void @_out_of_gas() + br label %"$have_gas_239" + +"$have_gas_239": ; preds = %"$out_of_gas_238", %"$have_gas_234" + %"$consume_240" = sub i64 %"$gasrem_236", 1 + store i64 %"$consume_240", i64* @_gasrem, align 8 + store %Int32 { i32 4 }, %Int32* %n1, align 4, !dbg !32 + %"$gasrem_241" = load i64, i64* @_gasrem, align 8 + %"$gascmp_242" = icmp ugt i64 1, %"$gasrem_241" + br i1 %"$gascmp_242", label %"$out_of_gas_243", label %"$have_gas_244" + +"$out_of_gas_243": ; preds = %"$have_gas_239" + call void @_out_of_gas() + br label %"$have_gas_244" + +"$have_gas_244": ; preds = %"$out_of_gas_243", %"$have_gas_239" + %"$consume_245" = sub i64 %"$gasrem_241", 1 + store i64 %"$consume_245", i64* @_gasrem, align 8 + %n2 = alloca %Int32, align 8 + %"$gasrem_246" = load i64, i64* @_gasrem, align 8 + %"$gascmp_247" = icmp ugt i64 1, %"$gasrem_246" + br i1 %"$gascmp_247", label %"$out_of_gas_248", label %"$have_gas_249" + +"$out_of_gas_248": ; preds = %"$have_gas_244" + call void @_out_of_gas() + br label %"$have_gas_249" + +"$have_gas_249": ; preds = %"$out_of_gas_248", %"$have_gas_244" + %"$consume_250" = sub i64 %"$gasrem_246", 1 + store i64 %"$consume_250", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* %n2, align 4, !dbg !33 + %"$gasrem_251" = load i64, i64* @_gasrem, align 8 + %"$gascmp_252" = icmp ugt i64 1, %"$gasrem_251" + br i1 %"$gascmp_252", label %"$out_of_gas_253", label %"$have_gas_254" + +"$out_of_gas_253": ; preds = %"$have_gas_249" + call void @_out_of_gas() + br label %"$have_gas_254" + +"$have_gas_254": ; preds = %"$out_of_gas_253", %"$have_gas_249" + %"$consume_255" = sub i64 %"$gasrem_251", 1 + store i64 %"$consume_255", i64* @_gasrem, align 8 + %res1 = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_256" = load i64, i64* @_gasrem, align 8 + %"$gascmp_257" = icmp ugt i64 1, %"$gasrem_256" + br i1 %"$gascmp_257", label %"$out_of_gas_258", label %"$have_gas_259" + +"$out_of_gas_258": ; preds = %"$have_gas_254" + call void @_out_of_gas() + br label %"$have_gas_259" + +"$have_gas_259": ; preds = %"$out_of_gas_258", %"$have_gas_254" + %"$consume_260" = sub i64 %"$gasrem_256", 1 + store i64 %"$consume_260", i64* @_gasrem, align 8 + %"$partial_app_func__0" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$partial_app_func__261" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %partial_app_func_, align 8 + %"$partial_app_func__fptr_262" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$partial_app_func__261", 0 + %"$partial_app_func__envptr_263" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$partial_app_func__261", 1 + %"$n1_264" = load %Int32, %Int32* %n1, align 4 + %"$partial_app_func__call_265" = call { %Int32 (i8*, %Int32)*, i8* } %"$partial_app_func__fptr_262"(i8* %"$partial_app_func__envptr_263", %Int32 %"$n1_264"), !dbg !34 + store { %Int32 (i8*, %Int32)*, i8* } %"$partial_app_func__call_265", { %Int32 (i8*, %Int32)*, i8* }* %"$partial_app_func__0", align 8, !dbg !34 + %"$$partial_app_func__0_266" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$partial_app_func__0", align 8 + store { %Int32 (i8*, %Int32)*, i8* } %"$$partial_app_func__0_266", { %Int32 (i8*, %Int32)*, i8* }* %res1, align 8, !dbg !34 + %"$gasrem_267" = load i64, i64* @_gasrem, align 8 + %"$gascmp_268" = icmp ugt i64 1, %"$gasrem_267" + br i1 %"$gascmp_268", label %"$out_of_gas_269", label %"$have_gas_270" + +"$out_of_gas_269": ; preds = %"$have_gas_259" + call void @_out_of_gas() + br label %"$have_gas_270" + +"$have_gas_270": ; preds = %"$out_of_gas_269", %"$have_gas_259" + %"$consume_271" = sub i64 %"$gasrem_267", 1 + store i64 %"$consume_271", i64* @_gasrem, align 8 + %"$res1_1" = alloca %Int32, align 8 + %"$res1_272" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %res1, align 8 + %"$res1_fptr_273" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$res1_272", 0 + %"$res1_envptr_274" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$res1_272", 1 + %"$n2_275" = load %Int32, %Int32* %n2, align 4 + %"$res1_call_276" = call %Int32 %"$res1_fptr_273"(i8* %"$res1_envptr_274", %Int32 %"$n2_275"), !dbg !35 + store %Int32 %"$res1_call_276", %Int32* %"$res1_1", align 4, !dbg !35 + %"$$res1_1_277" = load %Int32, %Int32* %"$res1_1", align 4 + store %Int32 %"$$res1_1_277", %Int32* %partial_app_func, align 4, !dbg !35 + %"$gasrem_278" = load i64, i64* @_gasrem, align 8 + %"$gascmp_279" = icmp ugt i64 1, %"$gasrem_278" + br i1 %"$gascmp_279", label %"$out_of_gas_280", label %"$have_gas_281" + +"$out_of_gas_280": ; preds = %"$have_gas_270" + call void @_out_of_gas() + br label %"$have_gas_281" + +"$have_gas_281": ; preds = %"$out_of_gas_280", %"$have_gas_270" + %"$consume_282" = sub i64 %"$gasrem_278", 1 + store i64 %"$consume_282", i64* @_gasrem, align 8 + %total_app1 = alloca %Int32, align 8 + %"$gasrem_283" = load i64, i64* @_gasrem, align 8 + %"$gascmp_284" = icmp ugt i64 1, %"$gasrem_283" + br i1 %"$gascmp_284", label %"$out_of_gas_285", label %"$have_gas_286" + +"$out_of_gas_285": ; preds = %"$have_gas_281" + call void @_out_of_gas() + br label %"$have_gas_286" + +"$have_gas_286": ; preds = %"$out_of_gas_285", %"$have_gas_281" + %"$consume_287" = sub i64 %"$gasrem_283", 1 + store i64 %"$consume_287", i64* @_gasrem, align 8 + %"$uncurry1.uncur_lib_func_288" = load { %Int32 (i8*, %Int32, %Int32)*, i8* }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* @uncurry1.uncur_lib_func, align 8 + %"$uncurry1.uncur_lib_func_fptr_289" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_288", 0 + %"$uncurry1.uncur_lib_func_envptr_290" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_288", 1 + %"$uncurry1.uncur_lib_func_call_291" = call %Int32 %"$uncurry1.uncur_lib_func_fptr_289"(i8* %"$uncurry1.uncur_lib_func_envptr_290", %Int32 %x1, %Int32 %x2), !dbg !36 + store %Int32 %"$uncurry1.uncur_lib_func_call_291", %Int32* %total_app1, align 4, !dbg !36 + %"$gasrem_292" = load i64, i64* @_gasrem, align 8 + %"$gascmp_293" = icmp ugt i64 1, %"$gasrem_292" + br i1 %"$gascmp_293", label %"$out_of_gas_294", label %"$have_gas_295" + +"$out_of_gas_294": ; preds = %"$have_gas_286" + call void @_out_of_gas() + br label %"$have_gas_295" + +"$have_gas_295": ; preds = %"$out_of_gas_294", %"$have_gas_286" + %"$consume_296" = sub i64 %"$gasrem_292", 1 + store i64 %"$consume_296", i64* @_gasrem, align 8 + %total_app2 = alloca %Int32, align 8 + %"$gasrem_297" = load i64, i64* @_gasrem, align 8 + %"$gascmp_298" = icmp ugt i64 1, %"$gasrem_297" + br i1 %"$gascmp_298", label %"$out_of_gas_299", label %"$have_gas_300" + +"$out_of_gas_299": ; preds = %"$have_gas_295" + call void @_out_of_gas() + br label %"$have_gas_300" + +"$have_gas_300": ; preds = %"$out_of_gas_299", %"$have_gas_295" + %"$consume_301" = sub i64 %"$gasrem_297", 1 + store i64 %"$consume_301", i64* @_gasrem, align 8 + %"$uncurry1.no_uncur_lib_func_2" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$uncurry1.no_uncur_lib_func_302" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry1.no_uncur_lib_func, align 8 + %"$uncurry1.no_uncur_lib_func_fptr_303" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.no_uncur_lib_func_302", 0 + %"$uncurry1.no_uncur_lib_func_envptr_304" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.no_uncur_lib_func_302", 1 + %"$total_app1_305" = load %Int32, %Int32* %total_app1, align 4 + %"$uncurry1.no_uncur_lib_func_call_306" = call { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.no_uncur_lib_func_fptr_303"(i8* %"$uncurry1.no_uncur_lib_func_envptr_304", %Int32 %"$total_app1_305"), !dbg !37 + store { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.no_uncur_lib_func_call_306", { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.no_uncur_lib_func_2", align 8, !dbg !37 + %"$uncurry1.no_uncur_lib_func_3" = alloca %Int32, align 8 + %"$$uncurry1.no_uncur_lib_func_2_307" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.no_uncur_lib_func_2", align 8 + %"$$uncurry1.no_uncur_lib_func_2_fptr_308" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry1.no_uncur_lib_func_2_307", 0 + %"$$uncurry1.no_uncur_lib_func_2_envptr_309" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry1.no_uncur_lib_func_2_307", 1 + %"$$uncurry1.no_uncur_lib_func_2_call_310" = call %Int32 %"$$uncurry1.no_uncur_lib_func_2_fptr_308"(i8* %"$$uncurry1.no_uncur_lib_func_2_envptr_309", %Int32 %x2), !dbg !37 + store %Int32 %"$$uncurry1.no_uncur_lib_func_2_call_310", %Int32* %"$uncurry1.no_uncur_lib_func_3", align 4, !dbg !37 + %"$$uncurry1.no_uncur_lib_func_3_311" = load %Int32, %Int32* %"$uncurry1.no_uncur_lib_func_3", align 4 + store %Int32 %"$$uncurry1.no_uncur_lib_func_3_311", %Int32* %total_app2, align 4, !dbg !37 + %"$gasrem_312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_313" = icmp ugt i64 1, %"$gasrem_312" + br i1 %"$gascmp_313", label %"$out_of_gas_314", label %"$have_gas_315" + +"$out_of_gas_314": ; preds = %"$have_gas_300" + call void @_out_of_gas() + br label %"$have_gas_315" + +"$have_gas_315": ; preds = %"$out_of_gas_314", %"$have_gas_300" + %"$consume_316" = sub i64 %"$gasrem_312", 1 + store i64 %"$consume_316", i64* @_gasrem, align 8 + %y = alloca %Int32, align 8 + %"$gasrem_317" = load i64, i64* @_gasrem, align 8 + %"$gascmp_318" = icmp ugt i64 4, %"$gasrem_317" + br i1 %"$gascmp_318", label %"$out_of_gas_319", label %"$have_gas_320" + +"$out_of_gas_319": ; preds = %"$have_gas_315" + call void @_out_of_gas() + br label %"$have_gas_320" + +"$have_gas_320": ; preds = %"$out_of_gas_319", %"$have_gas_315" + %"$consume_321" = sub i64 %"$gasrem_317", 4 + store i64 %"$consume_321", i64* @_gasrem, align 8 + %"$partial_app_func_322" = load %Int32, %Int32* %partial_app_func, align 4 + %"$total_app2_323" = load %Int32, %Int32* %total_app2, align 4 + %"$add_call_324" = call %Int32 @_add_Int32(%Int32 %"$partial_app_func_322", %Int32 %"$total_app2_323"), !dbg !38 + store %Int32 %"$add_call_324", %Int32* %y, align 4, !dbg !38 + %"$_literal_cost_y_325" = alloca %Int32, align 8 + %"$y_326" = load %Int32, %Int32* %y, align 4 + store %Int32 %"$y_326", %Int32* %"$_literal_cost_y_325", align 4 + %"$$_literal_cost_y_325_327" = bitcast %Int32* %"$_literal_cost_y_325" to i8* + %"$_literal_cost_call_328" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_26", i8* %"$$_literal_cost_y_325_327") + %"$gasrem_329" = load i64, i64* @_gasrem, align 8 + %"$gascmp_330" = icmp ugt i64 %"$_literal_cost_call_328", %"$gasrem_329" + br i1 %"$gascmp_330", label %"$out_of_gas_331", label %"$have_gas_332" + +"$out_of_gas_331": ; preds = %"$have_gas_320" + call void @_out_of_gas() + br label %"$have_gas_332" + +"$have_gas_332": ; preds = %"$out_of_gas_331", %"$have_gas_320" + %"$consume_333" = sub i64 %"$gasrem_329", %"$_literal_cost_call_328" + store i64 %"$consume_333", i64* @_gasrem, align 8 + %"$execptr_load_334" = load i8*, i8** @_execptr, align 8 + %"$y_336" = load %Int32, %Int32* %y, align 4 + %"$update_value_337" = alloca %Int32, align 8 + store %Int32 %"$y_336", %Int32* %"$update_value_337", align 4 + %"$update_value_338" = bitcast %Int32* %"$update_value_337" to i8* + call void @_update_field(i8* %"$execptr_load_334", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_335", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_26", i32 0, i8* null, i8* %"$update_value_338"), !dbg !39 + ret void +} + +declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) + +define void @dummy(i8* %0) !dbg !40 { +entry: + %"$_amount_340" = getelementptr i8, i8* %0, i32 0 + %"$_amount_341" = bitcast i8* %"$_amount_340" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_341", align 8 + %"$_origin_342" = getelementptr i8, i8* %0, i32 16 + %"$_origin_343" = bitcast i8* %"$_origin_342" to [20 x i8]* + %"$_sender_344" = getelementptr i8, i8* %0, i32 36 + %"$_sender_345" = bitcast i8* %"$_sender_344" to [20 x i8]* + %"$x1_346" = getelementptr i8, i8* %0, i32 56 + %"$x1_347" = bitcast i8* %"$x1_346" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_347", align 4 + %"$x2_348" = getelementptr i8, i8* %0, i32 60 + %"$x2_349" = bitcast i8* %"$x2_348" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_349", align 4 + call void @"$dummy_210"(%Uint128 %_amount, [20 x i8]* %"$_origin_343", [20 x i8]* %"$_sender_345", %Int32 %x1, %Int32 %x2), !dbg !41 + ret void +} + +define internal void @"$dummy2_350"(%Uint128 %_amount, [20 x i8]* %"$_origin_351", [20 x i8]* %"$_sender_352", %Int32 %x1, %Int32 %x2) !dbg !42 { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_351", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_352", align 1 + %"$gasrem_353" = load i64, i64* @_gasrem, align 8 + %"$gascmp_354" = icmp ugt i64 1, %"$gasrem_353" + br i1 %"$gascmp_354", label %"$out_of_gas_355", label %"$have_gas_356" + +"$out_of_gas_355": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_356" + +"$have_gas_356": ; preds = %"$out_of_gas_355", %entry + %"$consume_357" = sub i64 %"$gasrem_353", 1 + store i64 %"$consume_357", i64* @_gasrem, align 8 + %total_app = alloca %Int32, align 8 + %"$gasrem_358" = load i64, i64* @_gasrem, align 8 + %"$gascmp_359" = icmp ugt i64 1, %"$gasrem_358" + br i1 %"$gascmp_359", label %"$out_of_gas_360", label %"$have_gas_361" + +"$out_of_gas_360": ; preds = %"$have_gas_356" + call void @_out_of_gas() + br label %"$have_gas_361" + +"$have_gas_361": ; preds = %"$out_of_gas_360", %"$have_gas_356" + %"$consume_362" = sub i64 %"$gasrem_358", 1 + store i64 %"$consume_362", i64* @_gasrem, align 8 + %"$uncurry1.uncur_lib_func_partial_4" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$uncurry1.uncur_lib_func_partial_363" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry1.uncur_lib_func_partial, align 8 + %"$uncurry1.uncur_lib_func_partial_fptr_364" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_363", 0 + %"$uncurry1.uncur_lib_func_partial_envptr_365" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_363", 1 + %"$uncurry1.uncur_lib_func_partial_call_366" = call { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_fptr_364"(i8* %"$uncurry1.uncur_lib_func_partial_envptr_365", %Int32 %x1), !dbg !43 + store { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_call_366", { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.uncur_lib_func_partial_4", align 8, !dbg !43 + %"$uncurry1.uncur_lib_func_partial_5" = alloca %Int32, align 8 + %"$$uncurry1.uncur_lib_func_partial_4_367" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.uncur_lib_func_partial_4", align 8 + %"$$uncurry1.uncur_lib_func_partial_4_fptr_368" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry1.uncur_lib_func_partial_4_367", 0 + %"$$uncurry1.uncur_lib_func_partial_4_envptr_369" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry1.uncur_lib_func_partial_4_367", 1 + %"$$uncurry1.uncur_lib_func_partial_4_call_370" = call %Int32 %"$$uncurry1.uncur_lib_func_partial_4_fptr_368"(i8* %"$$uncurry1.uncur_lib_func_partial_4_envptr_369", %Int32 %x2), !dbg !43 + store %Int32 %"$$uncurry1.uncur_lib_func_partial_4_call_370", %Int32* %"$uncurry1.uncur_lib_func_partial_5", align 4, !dbg !43 + %"$$uncurry1.uncur_lib_func_partial_5_371" = load %Int32, %Int32* %"$uncurry1.uncur_lib_func_partial_5", align 4 + store %Int32 %"$$uncurry1.uncur_lib_func_partial_5_371", %Int32* %total_app, align 4, !dbg !43 + %some_bool_ = alloca %TName_Bool*, align 8 + %"$execptr_load_373" = load i8*, i8** @_execptr, align 8 + %"$some_bool__call_374" = call i8* @_fetch_field(i8* %"$execptr_load_373", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$some_bool_372", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_58", i32 0, i8* null, i32 1), !dbg !44 + %"$some_bool__375" = bitcast i8* %"$some_bool__call_374" to %TName_Bool* + store %TName_Bool* %"$some_bool__375", %TName_Bool** %some_bool_, align 8 + %"$some_bool__376" = load %TName_Bool*, %TName_Bool** %some_bool_, align 8 + %"$$some_bool__376_377" = bitcast %TName_Bool* %"$some_bool__376" to i8* + %"$_literal_cost_call_378" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_58", i8* %"$$some_bool__376_377") + %"$gasadd_379" = add i64 %"$_literal_cost_call_378", 0 + %"$gasrem_380" = load i64, i64* @_gasrem, align 8 + %"$gascmp_381" = icmp ugt i64 %"$gasadd_379", %"$gasrem_380" + br i1 %"$gascmp_381", label %"$out_of_gas_382", label %"$have_gas_383" + +"$out_of_gas_382": ; preds = %"$have_gas_361" + call void @_out_of_gas() + br label %"$have_gas_383" + +"$have_gas_383": ; preds = %"$out_of_gas_382", %"$have_gas_361" + %"$consume_384" = sub i64 %"$gasrem_380", %"$gasadd_379" + store i64 %"$consume_384", i64* @_gasrem, align 8 + %"$gasrem_385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_386" = icmp ugt i64 2, %"$gasrem_385" + br i1 %"$gascmp_386", label %"$out_of_gas_387", label %"$have_gas_388" + +"$out_of_gas_387": ; preds = %"$have_gas_383" + call void @_out_of_gas() + br label %"$have_gas_388" + +"$have_gas_388": ; preds = %"$out_of_gas_387", %"$have_gas_383" + %"$consume_389" = sub i64 %"$gasrem_385", 2 + store i64 %"$consume_389", i64* @_gasrem, align 8 + %"$some_bool__391" = load %TName_Bool*, %TName_Bool** %some_bool_, align 8 + %"$some_bool__tag_392" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$some_bool__391", i32 0, i32 0 + %"$some_bool__tag_393" = load i8, i8* %"$some_bool__tag_392", align 1 + switch i8 %"$some_bool__tag_393", label %"$empty_default_394" [ + i8 1, label %"$False_395" + i8 0, label %"$True_442" + ], !dbg !45 + +"$False_395": ; preds = %"$have_gas_388" + %"$some_bool__396" = bitcast %TName_Bool* %"$some_bool__391" to %CName_False* + %"$gasrem_397" = load i64, i64* @_gasrem, align 8 + %"$gascmp_398" = icmp ugt i64 1, %"$gasrem_397" + br i1 %"$gascmp_398", label %"$out_of_gas_399", label %"$have_gas_400" + +"$out_of_gas_399": ; preds = %"$False_395" + call void @_out_of_gas() + br label %"$have_gas_400" + +"$have_gas_400": ; preds = %"$out_of_gas_399", %"$False_395" + %"$consume_401" = sub i64 %"$gasrem_397", 1 + store i64 %"$consume_401", i64* @_gasrem, align 8 + %partial_app1 = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_402" = load i64, i64* @_gasrem, align 8 + %"$gascmp_403" = icmp ugt i64 1, %"$gasrem_402" + br i1 %"$gascmp_403", label %"$out_of_gas_404", label %"$have_gas_405" + +"$out_of_gas_404": ; preds = %"$have_gas_400" + call void @_out_of_gas() + br label %"$have_gas_405" + +"$have_gas_405": ; preds = %"$out_of_gas_404", %"$have_gas_400" + %"$consume_406" = sub i64 %"$gasrem_402", 1 + store i64 %"$consume_406", i64* @_gasrem, align 8 + %"$uncurry1.uncur_lib_func_partial_6" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$uncurry1.uncur_lib_func_partial_407" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry1.uncur_lib_func_partial, align 8 + %"$uncurry1.uncur_lib_func_partial_fptr_408" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_407", 0 + %"$uncurry1.uncur_lib_func_partial_envptr_409" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_407", 1 + %"$total_app_410" = load %Int32, %Int32* %total_app, align 4 + %"$uncurry1.uncur_lib_func_partial_call_411" = call { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_fptr_408"(i8* %"$uncurry1.uncur_lib_func_partial_envptr_409", %Int32 %"$total_app_410"), !dbg !46 + store { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_call_411", { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.uncur_lib_func_partial_6", align 8, !dbg !46 + %"$$uncurry1.uncur_lib_func_partial_6_412" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.uncur_lib_func_partial_6", align 8 + store { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry1.uncur_lib_func_partial_6_412", { %Int32 (i8*, %Int32)*, i8* }* %partial_app1, align 8, !dbg !46 + %"$gasrem_413" = load i64, i64* @_gasrem, align 8 + %"$gascmp_414" = icmp ugt i64 1, %"$gasrem_413" + br i1 %"$gascmp_414", label %"$out_of_gas_415", label %"$have_gas_416" + +"$out_of_gas_415": ; preds = %"$have_gas_405" + call void @_out_of_gas() + br label %"$have_gas_416" + +"$have_gas_416": ; preds = %"$out_of_gas_415", %"$have_gas_405" + %"$consume_417" = sub i64 %"$gasrem_413", 1 + store i64 %"$consume_417", i64* @_gasrem, align 8 + %partial_app2 = alloca %Int32, align 8 + %"$gasrem_418" = load i64, i64* @_gasrem, align 8 + %"$gascmp_419" = icmp ugt i64 1, %"$gasrem_418" + br i1 %"$gascmp_419", label %"$out_of_gas_420", label %"$have_gas_421" + +"$out_of_gas_420": ; preds = %"$have_gas_416" + call void @_out_of_gas() + br label %"$have_gas_421" + +"$have_gas_421": ; preds = %"$out_of_gas_420", %"$have_gas_416" + %"$consume_422" = sub i64 %"$gasrem_418", 1 + store i64 %"$consume_422", i64* @_gasrem, align 8 + %"$partial_app1_7" = alloca %Int32, align 8 + %"$partial_app1_423" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %partial_app1, align 8 + %"$partial_app1_fptr_424" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_app1_423", 0 + %"$partial_app1_envptr_425" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_app1_423", 1 + %"$partial_app1_call_426" = call %Int32 %"$partial_app1_fptr_424"(i8* %"$partial_app1_envptr_425", %Int32 %x1), !dbg !49 + store %Int32 %"$partial_app1_call_426", %Int32* %"$partial_app1_7", align 4, !dbg !49 + %"$$partial_app1_7_427" = load %Int32, %Int32* %"$partial_app1_7", align 4 + store %Int32 %"$$partial_app1_7_427", %Int32* %partial_app2, align 4, !dbg !49 + %"$_literal_cost_partial_app2_428" = alloca %Int32, align 8 + %"$partial_app2_429" = load %Int32, %Int32* %partial_app2, align 4 + store %Int32 %"$partial_app2_429", %Int32* %"$_literal_cost_partial_app2_428", align 4 + %"$$_literal_cost_partial_app2_428_430" = bitcast %Int32* %"$_literal_cost_partial_app2_428" to i8* + %"$_literal_cost_call_431" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_26", i8* %"$$_literal_cost_partial_app2_428_430") + %"$gasrem_432" = load i64, i64* @_gasrem, align 8 + %"$gascmp_433" = icmp ugt i64 %"$_literal_cost_call_431", %"$gasrem_432" + br i1 %"$gascmp_433", label %"$out_of_gas_434", label %"$have_gas_435" + +"$out_of_gas_434": ; preds = %"$have_gas_421" + call void @_out_of_gas() + br label %"$have_gas_435" + +"$have_gas_435": ; preds = %"$out_of_gas_434", %"$have_gas_421" + %"$consume_436" = sub i64 %"$gasrem_432", %"$_literal_cost_call_431" + store i64 %"$consume_436", i64* @_gasrem, align 8 + %"$execptr_load_437" = load i8*, i8** @_execptr, align 8 + %"$partial_app2_439" = load %Int32, %Int32* %partial_app2, align 4 + %"$update_value_440" = alloca %Int32, align 8 + store %Int32 %"$partial_app2_439", %Int32* %"$update_value_440", align 4 + %"$update_value_441" = bitcast %Int32* %"$update_value_440" to i8* + call void @_update_field(i8* %"$execptr_load_437", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_438", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_26", i32 0, i8* null, i8* %"$update_value_441"), !dbg !50 + br label %"$matchsucc_390" + +"$True_442": ; preds = %"$have_gas_388" + %"$some_bool__443" = bitcast %TName_Bool* %"$some_bool__391" to %CName_True* + br label %"$matchsucc_390" + +"$empty_default_394": ; preds = %"$have_gas_388" + br label %"$matchsucc_390" + +"$matchsucc_390": ; preds = %"$True_442", %"$have_gas_435", %"$empty_default_394" + ret void +} + +declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) + +define void @dummy2(i8* %0) !dbg !51 { +entry: + %"$_amount_445" = getelementptr i8, i8* %0, i32 0 + %"$_amount_446" = bitcast i8* %"$_amount_445" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_446", align 8 + %"$_origin_447" = getelementptr i8, i8* %0, i32 16 + %"$_origin_448" = bitcast i8* %"$_origin_447" to [20 x i8]* + %"$_sender_449" = getelementptr i8, i8* %0, i32 36 + %"$_sender_450" = bitcast i8* %"$_sender_449" to [20 x i8]* + %"$x1_451" = getelementptr i8, i8* %0, i32 56 + %"$x1_452" = bitcast i8* %"$x1_451" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_452", align 4 + %"$x2_453" = getelementptr i8, i8* %0, i32 60 + %"$x2_454" = bitcast i8* %"$x2_453" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_454", align 4 + call void @"$dummy2_350"(%Uint128 %_amount, [20 x i8]* %"$_origin_448", [20 x i8]* %"$_sender_450", %Int32 %x1, %Int32 %x2), !dbg !52 + ret void +} + +!llvm.module.flags = !{!0} +!llvm.dbg.cu = !{!1} + +!0 = !{i32 2, !"Debug Info Version", i32 3} +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) +!2 = !DIFile(filename: "uncurry1.scilla", directory: "codegen/contr") +!3 = !{} +!4 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !2, file: !2, line: 36, type: !5, scopeLine: 36, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !DILocation(line: 36, column: 21, scope: !4) +!9 = distinct !DISubprogram(name: "$fundef_20", linkageName: "$fundef_20", scope: !2, file: !2, line: 35, type: !5, scopeLine: 35, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!10 = !DILocation(line: 36, column: 21, scope: !9) +!11 = distinct !DISubprogram(name: "$fundef_10", linkageName: "$fundef_10", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!12 = !DILocation(line: 22, column: 13, scope: !11) +!13 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !2, file: !2, line: 21, type: !5, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!14 = !DILocation(line: 22, column: 13, scope: !13) +!15 = distinct !DISubprogram(name: "$fundef_14", linkageName: "$fundef_14", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!16 = !DILocation(line: 14, column: 17, scope: !15) +!17 = distinct !DISubprogram(name: "$fundef_12", linkageName: "$fundef_12", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!18 = !DILocation(line: 12, column: 18, scope: !17) +!19 = !DILocation(line: 14, column: 17, scope: !17) +!20 = distinct !DISubprogram(name: "$fundef_16", linkageName: "$fundef_16", scope: !2, file: !2, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!21 = !DILocation(line: 8, column: 13, scope: !20) +!22 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !23, file: !23, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!23 = !DIFile(filename: ".", directory: ".") +!24 = !DILocation(line: 7, column: 9, scope: !22) +!25 = !DILocation(line: 12, column: 9, scope: !22) +!26 = !DILocation(line: 21, column: 9, scope: !22) +!27 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !23, file: !23, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!28 = !DILocation(line: 28, column: 26, scope: !27) +!29 = !DILocation(line: 29, column: 21, scope: !27) +!30 = distinct !DISubprogram(name: "dummy", linkageName: "dummy", scope: !2, file: !2, line: 31, type: !5, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!31 = !DILocation(line: 35, column: 17, scope: !30) +!32 = !DILocation(line: 38, column: 18, scope: !30) +!33 = !DILocation(line: 39, column: 18, scope: !30) +!34 = !DILocation(line: 40, column: 20, scope: !30) +!35 = !DILocation(line: 41, column: 9, scope: !30) +!36 = !DILocation(line: 43, column: 18, scope: !30) +!37 = !DILocation(line: 44, column: 18, scope: !30) +!38 = !DILocation(line: 46, column: 9, scope: !30) +!39 = !DILocation(line: 47, column: 5, scope: !30) +!40 = distinct !DISubprogram(name: "dummy", linkageName: "dummy", scope: !2, file: !2, line: 31, type: !5, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!41 = !DILocation(line: 31, column: 12, scope: !40) +!42 = distinct !DISubprogram(name: "dummy2", linkageName: "dummy2", scope: !2, file: !2, line: 50, type: !5, scopeLine: 50, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!43 = !DILocation(line: 53, column: 17, scope: !42) +!44 = !DILocation(line: 55, column: 5, scope: !42) +!45 = !DILocation(line: 57, column: 5, scope: !42) +!46 = !DILocation(line: 59, column: 24, scope: !47) +!47 = distinct !DILexicalBlock(scope: !48, file: !2, line: 58, column: 7) +!48 = distinct !DILexicalBlock(scope: !42, file: !2, line: 57, column: 5) +!49 = !DILocation(line: 60, column: 24, scope: !47) +!50 = !DILocation(line: 61, column: 9, scope: !47) +!51 = distinct !DISubprogram(name: "dummy2", linkageName: "dummy2", scope: !2, file: !2, line: 50, type: !5, scopeLine: 50, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!52 = !DILocation(line: 50, column: 12, scope: !51) diff --git a/tests/codegen/contr/dgold/uncurry2.scilla.gold b/tests/codegen/contr/dgold/uncurry2.scilla.gold new file mode 100644 index 00000000..88046be2 --- /dev/null +++ b/tests/codegen/contr/dgold/uncurry2.scilla.gold @@ -0,0 +1,343 @@ + + +; gas_remaining: 4001999 +; ModuleID = 'SimpleUnuccury2' +source_filename = "SimpleUnuccury2" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" + +%"$TyDescrTy_PrimTyp_7" = type { i32, i32 } +%_TyDescrTy_Typ = type { i32, i8* } +%"$TyDescr_AddrTyp_43" = type { i32, %"$TyDescr_AddrFieldTyp_42"* } +%"$TyDescr_AddrFieldTyp_42" = type { %TyDescrString, %_TyDescrTy_Typ* } +%TyDescrString = type { i8*, i32 } +%Int32 = type { i32 } +%Uint32 = type { i32 } +%"$ParamDescr_157" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%ParamDescrString = type { i8*, i32 } +%"$TransDescr_158" = type { %ParamDescrString, i32, %"$ParamDescr_157"* } +%"$$fundef_4_env_46" = type { %Int32 } +%"$$fundef_2_env_47" = type {} +%Uint128 = type { i128 } + +@_execptr = global i8* null +@_gasrem = global i64 0 +@"$TyDescr_Int32_Prim_8" = global %"$TyDescrTy_PrimTyp_7" zeroinitializer +@"$TyDescr_Int32_9" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Int32_Prim_8" to i8*) } +@"$TyDescr_Uint32_Prim_10" = global %"$TyDescrTy_PrimTyp_7" { i32 1, i32 0 } +@"$TyDescr_Uint32_11" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Uint32_Prim_10" to i8*) } +@"$TyDescr_Int64_Prim_12" = global %"$TyDescrTy_PrimTyp_7" { i32 0, i32 1 } +@"$TyDescr_Int64_13" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Int64_Prim_12" to i8*) } +@"$TyDescr_Uint64_Prim_14" = global %"$TyDescrTy_PrimTyp_7" { i32 1, i32 1 } +@"$TyDescr_Uint64_15" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Uint64_Prim_14" to i8*) } +@"$TyDescr_Int128_Prim_16" = global %"$TyDescrTy_PrimTyp_7" { i32 0, i32 2 } +@"$TyDescr_Int128_17" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Int128_Prim_16" to i8*) } +@"$TyDescr_Uint128_Prim_18" = global %"$TyDescrTy_PrimTyp_7" { i32 1, i32 2 } +@"$TyDescr_Uint128_19" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Uint128_Prim_18" to i8*) } +@"$TyDescr_Int256_Prim_20" = global %"$TyDescrTy_PrimTyp_7" { i32 0, i32 3 } +@"$TyDescr_Int256_21" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Int256_Prim_20" to i8*) } +@"$TyDescr_Uint256_Prim_22" = global %"$TyDescrTy_PrimTyp_7" { i32 1, i32 3 } +@"$TyDescr_Uint256_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Uint256_Prim_22" to i8*) } +@"$TyDescr_String_Prim_24" = global %"$TyDescrTy_PrimTyp_7" { i32 2, i32 0 } +@"$TyDescr_String_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_String_Prim_24" to i8*) } +@"$TyDescr_Bnum_Prim_26" = global %"$TyDescrTy_PrimTyp_7" { i32 3, i32 0 } +@"$TyDescr_Bnum_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Bnum_Prim_26" to i8*) } +@"$TyDescr_Message_Prim_28" = global %"$TyDescrTy_PrimTyp_7" { i32 4, i32 0 } +@"$TyDescr_Message_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Message_Prim_28" to i8*) } +@"$TyDescr_Event_Prim_30" = global %"$TyDescrTy_PrimTyp_7" { i32 5, i32 0 } +@"$TyDescr_Event_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Event_Prim_30" to i8*) } +@"$TyDescr_Exception_Prim_32" = global %"$TyDescrTy_PrimTyp_7" { i32 6, i32 0 } +@"$TyDescr_Exception_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Exception_Prim_32" to i8*) } +@"$TyDescr_Bystr_Prim_34" = global %"$TyDescrTy_PrimTyp_7" { i32 7, i32 0 } +@"$TyDescr_Bystr_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Bystr_Prim_34" to i8*) } +@"$TyDescr_Bystr20_Prim_36" = global %"$TyDescrTy_PrimTyp_7" { i32 8, i32 20 } +@"$TyDescr_Bystr20_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Bystr20_Prim_36" to i8*) } +@"$TyDescr_Addr_44" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_43"* @"$TyDescr_AddrFields_45" to i8*) } +@"$TyDescr_AddrFields_45" = unnamed_addr constant %"$TyDescr_AddrTyp_43" { i32 -1, %"$TyDescr_AddrFieldTyp_42"* null } +@uncurry2.uncur_lib_func = global { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } zeroinitializer +@_cparam__scilla_version = global %Uint32 zeroinitializer +@_cparam__this_address = global [20 x i8] zeroinitializer +@_cparam__creation_block = global i8* null +@"$res_83" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_142" = unnamed_addr constant [4 x i8] c"res\00" +@_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_31", %_TyDescrTy_Typ* @"$TyDescr_Int64_13", %_TyDescrTy_Typ* @"$TyDescr_Addr_44", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ* @"$TyDescr_Uint256_23", %_TyDescrTy_Typ* @"$TyDescr_Uint32_11", %_TyDescrTy_Typ* @"$TyDescr_Uint64_15", %_TyDescrTy_Typ* @"$TyDescr_Bnum_27", %_TyDescrTy_Typ* @"$TyDescr_Uint128_19", %_TyDescrTy_Typ* @"$TyDescr_Exception_33", %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ* @"$TyDescr_Int256_21", %_TyDescrTy_Typ* @"$TyDescr_Int128_17", %_TyDescrTy_Typ* @"$TyDescr_Bystr_35", %_TyDescrTy_Typ* @"$TyDescr_Message_29", %_TyDescrTy_Typ* @"$TyDescr_Int32_9"] +@_tydescr_table_length = constant i32 16 +@"$pname__scilla_version_159" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_160" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_161" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_157"] [%"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_159", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_11" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_160", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_161", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_27" }] +@_contract_parameters_length = constant i32 3 +@"$tpname__amount_162" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_163" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_164" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_165" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_166" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy_167" = unnamed_addr constant [5 x %"$ParamDescr_157"] [%"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_162", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_163", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_164", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_165", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_9" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_166", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_9" }] +@"$tname_dummy_168" = unnamed_addr constant [5 x i8] c"dummy" +@_transition_parameters = constant [1 x %"$TransDescr_158"] [%"$TransDescr_158" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_dummy_168", i32 0, i32 0), i32 5 }, i32 5, %"$ParamDescr_157"* getelementptr inbounds ([5 x %"$ParamDescr_157"], [5 x %"$ParamDescr_157"]* @"$tparams_dummy_167", i32 0, i32 0) }] +@_transition_parameters_length = constant i32 1 + +define internal %Int32 @"$fundef_4"(%"$$fundef_4_env_46"* %0, %Int32 %1) !dbg !4 { +entry: + %"$$fundef_4_env_a_59" = getelementptr inbounds %"$$fundef_4_env_46", %"$$fundef_4_env_46"* %0, i32 0, i32 0 + %"$a_envload_60" = load %Int32, %Int32* %"$$fundef_4_env_a_59", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_60", %Int32* %a, align 4 + %"$retval_5" = alloca %Int32, align 8 + %"$gasrem_61" = load i64, i64* @_gasrem, align 8 + %"$gascmp_62" = icmp ugt i64 4, %"$gasrem_61" + br i1 %"$gascmp_62", label %"$out_of_gas_63", label %"$have_gas_64" + +"$out_of_gas_63": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_64" + +"$have_gas_64": ; preds = %"$out_of_gas_63", %entry + %"$consume_65" = sub i64 %"$gasrem_61", 4 + store i64 %"$consume_65", i64* @_gasrem, align 8 + %"$a_66" = load %Int32, %Int32* %a, align 4 + %"$add_call_67" = call %Int32 @_add_Int32(%Int32 %"$a_66", %Int32 %1), !dbg !8 + store %Int32 %"$add_call_67", %Int32* %"$retval_5", align 4, !dbg !8 + %"$$retval_5_68" = load %Int32, %Int32* %"$retval_5", align 4 + ret %Int32 %"$$retval_5_68" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_2"(%"$$fundef_2_env_47"* %0, %Int32 %1) !dbg !9 { +entry: + %"$retval_3" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_48" = load i64, i64* @_gasrem, align 8 + %"$gascmp_49" = icmp ugt i64 1, %"$gasrem_48" + br i1 %"$gascmp_49", label %"$out_of_gas_50", label %"$have_gas_51" + +"$out_of_gas_50": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_51" + +"$have_gas_51": ; preds = %"$out_of_gas_50", %entry + %"$consume_52" = sub i64 %"$gasrem_48", 1 + store i64 %"$consume_52", i64* @_gasrem, align 8 + %"$$fundef_4_envp_53_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_4_envp_53_salloc" = call i8* @_salloc(i8* %"$$fundef_4_envp_53_load", i64 4) + %"$$fundef_4_envp_53" = bitcast i8* %"$$fundef_4_envp_53_salloc" to %"$$fundef_4_env_46"* + %"$$fundef_4_env_voidp_55" = bitcast %"$$fundef_4_env_46"* %"$$fundef_4_envp_53" to i8* + %"$$fundef_4_cloval_56" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_4_env_46"*, %Int32)* @"$fundef_4" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_4_env_voidp_55", 1 + %"$$fundef_4_env_a_57" = getelementptr inbounds %"$$fundef_4_env_46", %"$$fundef_4_env_46"* %"$$fundef_4_envp_53", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_4_env_a_57", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_4_cloval_56", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_3", align 8, !dbg !10 + %"$$retval_3_58" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_3", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_3_58" +} + +declare void @_out_of_gas() + +declare i8* @_salloc(i8*, i64) + +declare %Int32 @_add_Int32(%Int32, %Int32) + +define void @_init_libs() !dbg !11 { +entry: + %"$gasrem_69" = load i64, i64* @_gasrem, align 8 + %"$gascmp_70" = icmp ugt i64 1, %"$gasrem_69" + br i1 %"$gascmp_70", label %"$out_of_gas_71", label %"$have_gas_72" + +"$out_of_gas_71": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_72" + +"$have_gas_72": ; preds = %"$out_of_gas_71", %entry + %"$consume_73" = sub i64 %"$gasrem_69", 1 + store i64 %"$consume_73", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_2_env_47"*, %Int32)* @"$fundef_2" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry2.uncur_lib_func, align 8, !dbg !13 + ret void +} + +define void @_init_state() !dbg !14 { +entry: + %"$res_6" = alloca %Int32, align 8 + %"$gasrem_77" = load i64, i64* @_gasrem, align 8 + %"$gascmp_78" = icmp ugt i64 1, %"$gasrem_77" + br i1 %"$gascmp_78", label %"$out_of_gas_79", label %"$have_gas_80" + +"$out_of_gas_79": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_80" + +"$have_gas_80": ; preds = %"$out_of_gas_79", %entry + %"$consume_81" = sub i64 %"$gasrem_77", 1 + store i64 %"$consume_81", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %"$res_6", align 4, !dbg !15 + %"$execptr_load_82" = load i8*, i8** @_execptr, align 8 + %"$$res_6_84" = load %Int32, %Int32* %"$res_6", align 4 + %"$update_value_85" = alloca %Int32, align 8 + store %Int32 %"$$res_6_84", %Int32* %"$update_value_85", align 4 + %"$update_value_86" = bitcast %Int32* %"$update_value_85" to i8* + call void @_update_field(i8* %"$execptr_load_82", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_83", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_9", i32 0, i8* null, i8* %"$update_value_86"), !dbg !15 + ret void +} + +declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) + +define internal void @"$dummy_87"(%Uint128 %_amount, [20 x i8]* %"$_origin_88", [20 x i8]* %"$_sender_89", %Int32 %x1, %Int32 %x2) !dbg !16 { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_88", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_89", align 1 + %"$gasrem_90" = load i64, i64* @_gasrem, align 8 + %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" + br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" + +"$out_of_gas_92": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_93" + +"$have_gas_93": ; preds = %"$out_of_gas_92", %entry + %"$consume_94" = sub i64 %"$gasrem_90", 1 + store i64 %"$consume_94", i64* @_gasrem, align 8 + %partial_app1 = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_95" = load i64, i64* @_gasrem, align 8 + %"$gascmp_96" = icmp ugt i64 1, %"$gasrem_95" + br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" + +"$out_of_gas_97": ; preds = %"$have_gas_93" + call void @_out_of_gas() + br label %"$have_gas_98" + +"$have_gas_98": ; preds = %"$out_of_gas_97", %"$have_gas_93" + %"$consume_99" = sub i64 %"$gasrem_95", 1 + store i64 %"$consume_99", i64* @_gasrem, align 8 + %"$uncurry2.uncur_lib_func_0" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$uncurry2.uncur_lib_func_100" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry2.uncur_lib_func, align 8 + %"$uncurry2.uncur_lib_func_fptr_101" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry2.uncur_lib_func_100", 0 + %"$uncurry2.uncur_lib_func_envptr_102" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry2.uncur_lib_func_100", 1 + %"$uncurry2.uncur_lib_func_call_103" = call { %Int32 (i8*, %Int32)*, i8* } %"$uncurry2.uncur_lib_func_fptr_101"(i8* %"$uncurry2.uncur_lib_func_envptr_102", %Int32 %x1), !dbg !17 + store { %Int32 (i8*, %Int32)*, i8* } %"$uncurry2.uncur_lib_func_call_103", { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry2.uncur_lib_func_0", align 8, !dbg !17 + %"$$uncurry2.uncur_lib_func_0_104" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry2.uncur_lib_func_0", align 8 + store { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry2.uncur_lib_func_0_104", { %Int32 (i8*, %Int32)*, i8* }* %partial_app1, align 8, !dbg !17 + %"$gasrem_105" = load i64, i64* @_gasrem, align 8 + %"$gascmp_106" = icmp ugt i64 1, %"$gasrem_105" + br i1 %"$gascmp_106", label %"$out_of_gas_107", label %"$have_gas_108" + +"$out_of_gas_107": ; preds = %"$have_gas_98" + call void @_out_of_gas() + br label %"$have_gas_108" + +"$have_gas_108": ; preds = %"$out_of_gas_107", %"$have_gas_98" + %"$consume_109" = sub i64 %"$gasrem_105", 1 + store i64 %"$consume_109", i64* @_gasrem, align 8 + %total_app = alloca %Int32, align 8 + %"$gasrem_110" = load i64, i64* @_gasrem, align 8 + %"$gascmp_111" = icmp ugt i64 1, %"$gasrem_110" + br i1 %"$gascmp_111", label %"$out_of_gas_112", label %"$have_gas_113" + +"$out_of_gas_112": ; preds = %"$have_gas_108" + call void @_out_of_gas() + br label %"$have_gas_113" + +"$have_gas_113": ; preds = %"$out_of_gas_112", %"$have_gas_108" + %"$consume_114" = sub i64 %"$gasrem_110", 1 + store i64 %"$consume_114", i64* @_gasrem, align 8 + %"$partial_app1_1" = alloca %Int32, align 8 + %"$partial_app1_115" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %partial_app1, align 8 + %"$partial_app1_fptr_116" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_app1_115", 0 + %"$partial_app1_envptr_117" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_app1_115", 1 + %"$partial_app1_call_118" = call %Int32 %"$partial_app1_fptr_116"(i8* %"$partial_app1_envptr_117", %Int32 %x2), !dbg !18 + store %Int32 %"$partial_app1_call_118", %Int32* %"$partial_app1_1", align 4, !dbg !18 + %"$$partial_app1_1_119" = load %Int32, %Int32* %"$partial_app1_1", align 4 + store %Int32 %"$$partial_app1_1_119", %Int32* %total_app, align 4, !dbg !18 + %"$gasrem_120" = load i64, i64* @_gasrem, align 8 + %"$gascmp_121" = icmp ugt i64 1, %"$gasrem_120" + br i1 %"$gascmp_121", label %"$out_of_gas_122", label %"$have_gas_123" + +"$out_of_gas_122": ; preds = %"$have_gas_113" + call void @_out_of_gas() + br label %"$have_gas_123" + +"$have_gas_123": ; preds = %"$out_of_gas_122", %"$have_gas_113" + %"$consume_124" = sub i64 %"$gasrem_120", 1 + store i64 %"$consume_124", i64* @_gasrem, align 8 + %y = alloca %Int32, align 8 + %"$gasrem_125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_126" = icmp ugt i64 4, %"$gasrem_125" + br i1 %"$gascmp_126", label %"$out_of_gas_127", label %"$have_gas_128" + +"$out_of_gas_127": ; preds = %"$have_gas_123" + call void @_out_of_gas() + br label %"$have_gas_128" + +"$have_gas_128": ; preds = %"$out_of_gas_127", %"$have_gas_123" + %"$consume_129" = sub i64 %"$gasrem_125", 4 + store i64 %"$consume_129", i64* @_gasrem, align 8 + %"$total_app_130" = load %Int32, %Int32* %total_app, align 4 + %"$add_call_131" = call %Int32 @_add_Int32(%Int32 %x1, %Int32 %"$total_app_130"), !dbg !19 + store %Int32 %"$add_call_131", %Int32* %y, align 4, !dbg !19 + %"$_literal_cost_y_132" = alloca %Int32, align 8 + %"$y_133" = load %Int32, %Int32* %y, align 4 + store %Int32 %"$y_133", %Int32* %"$_literal_cost_y_132", align 4 + %"$$_literal_cost_y_132_134" = bitcast %Int32* %"$_literal_cost_y_132" to i8* + %"$_literal_cost_call_135" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_9", i8* %"$$_literal_cost_y_132_134") + %"$gasrem_136" = load i64, i64* @_gasrem, align 8 + %"$gascmp_137" = icmp ugt i64 %"$_literal_cost_call_135", %"$gasrem_136" + br i1 %"$gascmp_137", label %"$out_of_gas_138", label %"$have_gas_139" + +"$out_of_gas_138": ; preds = %"$have_gas_128" + call void @_out_of_gas() + br label %"$have_gas_139" + +"$have_gas_139": ; preds = %"$out_of_gas_138", %"$have_gas_128" + %"$consume_140" = sub i64 %"$gasrem_136", %"$_literal_cost_call_135" + store i64 %"$consume_140", i64* @_gasrem, align 8 + %"$execptr_load_141" = load i8*, i8** @_execptr, align 8 + %"$y_143" = load %Int32, %Int32* %y, align 4 + %"$update_value_144" = alloca %Int32, align 8 + store %Int32 %"$y_143", %Int32* %"$update_value_144", align 4 + %"$update_value_145" = bitcast %Int32* %"$update_value_144" to i8* + call void @_update_field(i8* %"$execptr_load_141", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_142", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_9", i32 0, i8* null, i8* %"$update_value_145"), !dbg !20 + ret void +} + +declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) + +define void @dummy(i8* %0) !dbg !21 { +entry: + %"$_amount_147" = getelementptr i8, i8* %0, i32 0 + %"$_amount_148" = bitcast i8* %"$_amount_147" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_148", align 8 + %"$_origin_149" = getelementptr i8, i8* %0, i32 16 + %"$_origin_150" = bitcast i8* %"$_origin_149" to [20 x i8]* + %"$_sender_151" = getelementptr i8, i8* %0, i32 36 + %"$_sender_152" = bitcast i8* %"$_sender_151" to [20 x i8]* + %"$x1_153" = getelementptr i8, i8* %0, i32 56 + %"$x1_154" = bitcast i8* %"$x1_153" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_154", align 4 + %"$x2_155" = getelementptr i8, i8* %0, i32 60 + %"$x2_156" = bitcast i8* %"$x2_155" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_156", align 4 + call void @"$dummy_87"(%Uint128 %_amount, [20 x i8]* %"$_origin_150", [20 x i8]* %"$_sender_152", %Int32 %x1, %Int32 %x2), !dbg !22 + ret void +} + +!llvm.module.flags = !{!0} +!llvm.dbg.cu = !{!1} + +!0 = !{i32 2, !"Debug Info Version", i32 3} +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) +!2 = !DIFile(filename: "uncurry2.scilla", directory: "codegen/contr") +!3 = !{} +!4 = distinct !DISubprogram(name: "$fundef_4", linkageName: "$fundef_4", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !DILocation(line: 9, column: 13, scope: !4) +!9 = distinct !DISubprogram(name: "$fundef_2", linkageName: "$fundef_2", scope: !2, file: !2, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!10 = !DILocation(line: 9, column: 13, scope: !9) +!11 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !12, file: !12, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!12 = !DIFile(filename: ".", directory: ".") +!13 = !DILocation(line: 8, column: 9, scope: !11) +!14 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !12, file: !12, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!15 = !DILocation(line: 14, column: 21, scope: !14) +!16 = distinct !DISubprogram(name: "dummy", linkageName: "dummy", scope: !2, file: !2, line: 16, type: !5, scopeLine: 16, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!17 = !DILocation(line: 17, column: 20, scope: !16) +!18 = !DILocation(line: 18, column: 17, scope: !16) +!19 = !DILocation(line: 20, column: 9, scope: !16) +!20 = !DILocation(line: 21, column: 5, scope: !16) +!21 = distinct !DISubprogram(name: "dummy", linkageName: "dummy", scope: !2, file: !2, line: 16, type: !5, scopeLine: 16, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!22 = !DILocation(line: 16, column: 12, scope: !21) diff --git a/tests/codegen/contr/dgold/uncurry3.scilla.gold b/tests/codegen/contr/dgold/uncurry3.scilla.gold new file mode 100644 index 00000000..2f27d598 --- /dev/null +++ b/tests/codegen/contr/dgold/uncurry3.scilla.gold @@ -0,0 +1,843 @@ + + +; gas_remaining: 4001999 +; ModuleID = 'SimpleUnuccury3' +source_filename = "SimpleUnuccury3" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" + +%"$TyDescrTy_PrimTyp_21" = type { i32, i32 } +%_TyDescrTy_Typ = type { i32, i8* } +%"$TyDescr_AddrTyp_57" = type { i32, %"$TyDescr_AddrFieldTyp_56"* } +%"$TyDescr_AddrFieldTyp_56" = type { %TyDescrString, %_TyDescrTy_Typ* } +%TyDescrString = type { i8*, i32 } +%Int32 = type { i32 } +%Uint32 = type { i32 } +%"$ParamDescr_396" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%ParamDescrString = type { i8*, i32 } +%"$TransDescr_397" = type { %ParamDescrString, i32, %"$ParamDescr_396"* } +%"$$fundef_19_env_60" = type {} +%"$$fundef_8_env_61" = type {} +%"$$fundef_12_env_62" = type { %Int32 } +%"$$fundef_10_env_63" = type {} +%"$$fundef_16_env_64" = type { %Int32 } +%"$$fundef_14_env_65" = type {} +%Uint128 = type { i128 } +%TName_uncurry3.T = type { i8, %CName_uncurry3.C1*, %CName_uncurry3.C2* } +%CName_uncurry3.C1 = type <{ i8, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } }> +%CName_uncurry3.C2 = type <{ i8, %TName_Bool* }> +%TName_Bool = type { i8, %CName_True*, %CName_False* } +%CName_True = type <{ i8 }> +%CName_False = type <{ i8 }> + +@_execptr = global i8* null +@_gasrem = global i64 0 +@"$TyDescr_Int32_Prim_22" = global %"$TyDescrTy_PrimTyp_21" zeroinitializer +@"$TyDescr_Int32_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Int32_Prim_22" to i8*) } +@"$TyDescr_Uint32_Prim_24" = global %"$TyDescrTy_PrimTyp_21" { i32 1, i32 0 } +@"$TyDescr_Uint32_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Uint32_Prim_24" to i8*) } +@"$TyDescr_Int64_Prim_26" = global %"$TyDescrTy_PrimTyp_21" { i32 0, i32 1 } +@"$TyDescr_Int64_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Int64_Prim_26" to i8*) } +@"$TyDescr_Uint64_Prim_28" = global %"$TyDescrTy_PrimTyp_21" { i32 1, i32 1 } +@"$TyDescr_Uint64_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Uint64_Prim_28" to i8*) } +@"$TyDescr_Int128_Prim_30" = global %"$TyDescrTy_PrimTyp_21" { i32 0, i32 2 } +@"$TyDescr_Int128_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Int128_Prim_30" to i8*) } +@"$TyDescr_Uint128_Prim_32" = global %"$TyDescrTy_PrimTyp_21" { i32 1, i32 2 } +@"$TyDescr_Uint128_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Uint128_Prim_32" to i8*) } +@"$TyDescr_Int256_Prim_34" = global %"$TyDescrTy_PrimTyp_21" { i32 0, i32 3 } +@"$TyDescr_Int256_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Int256_Prim_34" to i8*) } +@"$TyDescr_Uint256_Prim_36" = global %"$TyDescrTy_PrimTyp_21" { i32 1, i32 3 } +@"$TyDescr_Uint256_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Uint256_Prim_36" to i8*) } +@"$TyDescr_String_Prim_38" = global %"$TyDescrTy_PrimTyp_21" { i32 2, i32 0 } +@"$TyDescr_String_39" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_String_Prim_38" to i8*) } +@"$TyDescr_Bnum_Prim_40" = global %"$TyDescrTy_PrimTyp_21" { i32 3, i32 0 } +@"$TyDescr_Bnum_41" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Bnum_Prim_40" to i8*) } +@"$TyDescr_Message_Prim_42" = global %"$TyDescrTy_PrimTyp_21" { i32 4, i32 0 } +@"$TyDescr_Message_43" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Message_Prim_42" to i8*) } +@"$TyDescr_Event_Prim_44" = global %"$TyDescrTy_PrimTyp_21" { i32 5, i32 0 } +@"$TyDescr_Event_45" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Event_Prim_44" to i8*) } +@"$TyDescr_Exception_Prim_46" = global %"$TyDescrTy_PrimTyp_21" { i32 6, i32 0 } +@"$TyDescr_Exception_47" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Exception_Prim_46" to i8*) } +@"$TyDescr_Bystr_Prim_48" = global %"$TyDescrTy_PrimTyp_21" { i32 7, i32 0 } +@"$TyDescr_Bystr_49" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Bystr_Prim_48" to i8*) } +@"$TyDescr_Bystr20_Prim_50" = global %"$TyDescrTy_PrimTyp_21" { i32 8, i32 20 } +@"$TyDescr_Bystr20_51" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Bystr20_Prim_50" to i8*) } +@"$TyDescr_Addr_58" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_57"* @"$TyDescr_AddrFields_59" to i8*) } +@"$TyDescr_AddrFields_59" = unnamed_addr constant %"$TyDescr_AddrTyp_57" { i32 -1, %"$TyDescr_AddrFieldTyp_56"* null } +@uncurry3.uncur_lib_func1 = global { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } zeroinitializer +@uncurry3.uncur_lib_func2 = global { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } zeroinitializer +@uncurry3.uncur_lib_func3 = global { %Int32 (i8*, %Int32, %Int32)*, i8* } zeroinitializer +@_cparam__scilla_version = global %Uint32 zeroinitializer +@_cparam__this_address = global [20 x i8] zeroinitializer +@_cparam__creation_block = global i8* null +@"$res_181" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_266" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_339" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_381" = unnamed_addr constant [4 x i8] c"res\00" +@_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_45", %_TyDescrTy_Typ* @"$TyDescr_Int64_27", %_TyDescrTy_Typ* @"$TyDescr_Addr_58", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_51", %_TyDescrTy_Typ* @"$TyDescr_Uint256_37", %_TyDescrTy_Typ* @"$TyDescr_Uint32_25", %_TyDescrTy_Typ* @"$TyDescr_Uint64_29", %_TyDescrTy_Typ* @"$TyDescr_Bnum_41", %_TyDescrTy_Typ* @"$TyDescr_Uint128_33", %_TyDescrTy_Typ* @"$TyDescr_Exception_47", %_TyDescrTy_Typ* @"$TyDescr_String_39", %_TyDescrTy_Typ* @"$TyDescr_Int256_35", %_TyDescrTy_Typ* @"$TyDescr_Int128_31", %_TyDescrTy_Typ* @"$TyDescr_Bystr_49", %_TyDescrTy_Typ* @"$TyDescr_Message_43", %_TyDescrTy_Typ* @"$TyDescr_Int32_23"] +@_tydescr_table_length = constant i32 16 +@"$pname__scilla_version_398" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_399" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_400" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_396"] [%"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_398", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_25" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_399", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_51" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_400", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_41" }] +@_contract_parameters_length = constant i32 3 +@"$tpname__amount_401" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_402" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_403" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_404" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_405" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy1_406" = unnamed_addr constant [5 x %"$ParamDescr_396"] [%"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_401", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_33" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_402", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_403", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_404", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_405", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }] +@"$tname_dummy1_407" = unnamed_addr constant [6 x i8] c"dummy1" +@"$tpname__amount_408" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_409" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_410" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_411" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_412" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy2_413" = unnamed_addr constant [5 x %"$ParamDescr_396"] [%"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_408", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_33" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_409", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_410", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_411", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_412", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }] +@"$tname_dummy2_414" = unnamed_addr constant [6 x i8] c"dummy2" +@"$tpname__amount_415" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_416" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_417" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_418" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_419" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy3_420" = unnamed_addr constant [5 x %"$ParamDescr_396"] [%"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_415", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_33" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_416", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_417", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_418", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_419", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }] +@"$tname_dummy3_421" = unnamed_addr constant [6 x i8] c"dummy3" +@_transition_parameters = constant [3 x %"$TransDescr_397"] [%"$TransDescr_397" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_dummy1_407", i32 0, i32 0), i32 6 }, i32 5, %"$ParamDescr_396"* getelementptr inbounds ([5 x %"$ParamDescr_396"], [5 x %"$ParamDescr_396"]* @"$tparams_dummy1_406", i32 0, i32 0) }, %"$TransDescr_397" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_dummy2_414", i32 0, i32 0), i32 6 }, i32 5, %"$ParamDescr_396"* getelementptr inbounds ([5 x %"$ParamDescr_396"], [5 x %"$ParamDescr_396"]* @"$tparams_dummy2_413", i32 0, i32 0) }, %"$TransDescr_397" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_dummy3_421", i32 0, i32 0), i32 6 }, i32 5, %"$ParamDescr_396"* getelementptr inbounds ([5 x %"$ParamDescr_396"], [5 x %"$ParamDescr_396"]* @"$tparams_dummy3_420", i32 0, i32 0) }] +@_transition_parameters_length = constant i32 3 + +define internal %Int32 @"$fundef_19"(%"$$fundef_19_env_60"* %0, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %1) !dbg !4 { +entry: + %"$retval_20" = alloca %Int32, align 8 + %"$gasrem_115" = load i64, i64* @_gasrem, align 8 + %"$gascmp_116" = icmp ugt i64 1, %"$gasrem_115" + br i1 %"$gascmp_116", label %"$out_of_gas_117", label %"$have_gas_118" + +"$out_of_gas_117": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_118" + +"$have_gas_118": ; preds = %"$out_of_gas_117", %entry + %"$consume_119" = sub i64 %"$gasrem_115", 1 + store i64 %"$consume_119", i64* @_gasrem, align 8 + %n1 = alloca %Int32, align 8 + %"$gasrem_120" = load i64, i64* @_gasrem, align 8 + %"$gascmp_121" = icmp ugt i64 1, %"$gasrem_120" + br i1 %"$gascmp_121", label %"$out_of_gas_122", label %"$have_gas_123" + +"$out_of_gas_122": ; preds = %"$have_gas_118" + call void @_out_of_gas() + br label %"$have_gas_123" + +"$have_gas_123": ; preds = %"$out_of_gas_122", %"$have_gas_118" + %"$consume_124" = sub i64 %"$gasrem_120", 1 + store i64 %"$consume_124", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* %n1, align 4, !dbg !8 + %"$gasrem_125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_126" = icmp ugt i64 1, %"$gasrem_125" + br i1 %"$gascmp_126", label %"$out_of_gas_127", label %"$have_gas_128" + +"$out_of_gas_127": ; preds = %"$have_gas_123" + call void @_out_of_gas() + br label %"$have_gas_128" + +"$have_gas_128": ; preds = %"$out_of_gas_127", %"$have_gas_123" + %"$consume_129" = sub i64 %"$gasrem_125", 1 + store i64 %"$consume_129", i64* @_gasrem, align 8 + %n2 = alloca %Int32, align 8 + %"$gasrem_130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_131" = icmp ugt i64 1, %"$gasrem_130" + br i1 %"$gascmp_131", label %"$out_of_gas_132", label %"$have_gas_133" + +"$out_of_gas_132": ; preds = %"$have_gas_128" + call void @_out_of_gas() + br label %"$have_gas_133" + +"$have_gas_133": ; preds = %"$out_of_gas_132", %"$have_gas_128" + %"$consume_134" = sub i64 %"$gasrem_130", 1 + store i64 %"$consume_134", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* %n2, align 4, !dbg !9 + %"$gasrem_135" = load i64, i64* @_gasrem, align 8 + %"$gascmp_136" = icmp ugt i64 1, %"$gasrem_135" + br i1 %"$gascmp_136", label %"$out_of_gas_137", label %"$have_gas_138" + +"$out_of_gas_137": ; preds = %"$have_gas_133" + call void @_out_of_gas() + br label %"$have_gas_138" + +"$have_gas_138": ; preds = %"$out_of_gas_137", %"$have_gas_133" + %"$consume_139" = sub i64 %"$gasrem_135", 1 + store i64 %"$consume_139", i64* @_gasrem, align 8 + %"$f__5" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$f__fptr_140" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %1, 0 + %"$f__envptr_141" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %1, 1 + %"$n1_142" = load %Int32, %Int32* %n1, align 4 + %"$f__call_143" = call { %Int32 (i8*, %Int32)*, i8* } %"$f__fptr_140"(i8* %"$f__envptr_141", %Int32 %"$n1_142"), !dbg !10 + store { %Int32 (i8*, %Int32)*, i8* } %"$f__call_143", { %Int32 (i8*, %Int32)*, i8* }* %"$f__5", align 8, !dbg !10 + %"$f__6" = alloca %Int32, align 8 + %"$$f__5_144" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$f__5", align 8 + %"$$f__5_fptr_145" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f__5_144", 0 + %"$$f__5_envptr_146" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f__5_144", 1 + %"$n2_147" = load %Int32, %Int32* %n2, align 4 + %"$$f__5_call_148" = call %Int32 %"$$f__5_fptr_145"(i8* %"$$f__5_envptr_146", %Int32 %"$n2_147"), !dbg !10 + store %Int32 %"$$f__5_call_148", %Int32* %"$f__6", align 4, !dbg !10 + %"$$f__6_149" = load %Int32, %Int32* %"$f__6", align 4 + store %Int32 %"$$f__6_149", %Int32* %"$retval_20", align 4, !dbg !10 + %"$$retval_20_150" = load %Int32, %Int32* %"$retval_20", align 4 + ret %Int32 %"$$retval_20_150" +} + +define internal %Int32 @"$fundef_8"(%"$$fundef_8_env_61"* %0, %Int32 %1, %Int32 %2) !dbg !11 { +entry: + %"$retval_9" = alloca %Int32, align 8 + %"$gasrem_108" = load i64, i64* @_gasrem, align 8 + %"$gascmp_109" = icmp ugt i64 4, %"$gasrem_108" + br i1 %"$gascmp_109", label %"$out_of_gas_110", label %"$have_gas_111" + +"$out_of_gas_110": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_111" + +"$have_gas_111": ; preds = %"$out_of_gas_110", %entry + %"$consume_112" = sub i64 %"$gasrem_108", 4 + store i64 %"$consume_112", i64* @_gasrem, align 8 + %"$add_call_113" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %2), !dbg !12 + store %Int32 %"$add_call_113", %Int32* %"$retval_9", align 4, !dbg !12 + %"$$retval_9_114" = load %Int32, %Int32* %"$retval_9", align 4 + ret %Int32 %"$$retval_9_114" +} + +define internal %Int32 @"$fundef_12"(%"$$fundef_12_env_62"* %0, %Int32 %1) !dbg !13 { +entry: + %"$$fundef_12_env_a_98" = getelementptr inbounds %"$$fundef_12_env_62", %"$$fundef_12_env_62"* %0, i32 0, i32 0 + %"$a_envload_99" = load %Int32, %Int32* %"$$fundef_12_env_a_98", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_99", %Int32* %a, align 4 + %"$retval_13" = alloca %Int32, align 8 + %"$gasrem_100" = load i64, i64* @_gasrem, align 8 + %"$gascmp_101" = icmp ugt i64 4, %"$gasrem_100" + br i1 %"$gascmp_101", label %"$out_of_gas_102", label %"$have_gas_103" + +"$out_of_gas_102": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_103" + +"$have_gas_103": ; preds = %"$out_of_gas_102", %entry + %"$consume_104" = sub i64 %"$gasrem_100", 4 + store i64 %"$consume_104", i64* @_gasrem, align 8 + %"$a_105" = load %Int32, %Int32* %a, align 4 + %"$add_call_106" = call %Int32 @_add_Int32(%Int32 %"$a_105", %Int32 %1), !dbg !14 + store %Int32 %"$add_call_106", %Int32* %"$retval_13", align 4, !dbg !14 + %"$$retval_13_107" = load %Int32, %Int32* %"$retval_13", align 4 + ret %Int32 %"$$retval_13_107" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_10"(%"$$fundef_10_env_63"* %0, %Int32 %1) !dbg !15 { +entry: + %"$retval_11" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_87" = load i64, i64* @_gasrem, align 8 + %"$gascmp_88" = icmp ugt i64 1, %"$gasrem_87" + br i1 %"$gascmp_88", label %"$out_of_gas_89", label %"$have_gas_90" + +"$out_of_gas_89": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_90" + +"$have_gas_90": ; preds = %"$out_of_gas_89", %entry + %"$consume_91" = sub i64 %"$gasrem_87", 1 + store i64 %"$consume_91", i64* @_gasrem, align 8 + %"$$fundef_12_envp_92_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_12_envp_92_salloc" = call i8* @_salloc(i8* %"$$fundef_12_envp_92_load", i64 4) + %"$$fundef_12_envp_92" = bitcast i8* %"$$fundef_12_envp_92_salloc" to %"$$fundef_12_env_62"* + %"$$fundef_12_env_voidp_94" = bitcast %"$$fundef_12_env_62"* %"$$fundef_12_envp_92" to i8* + %"$$fundef_12_cloval_95" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_12_env_62"*, %Int32)* @"$fundef_12" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_12_env_voidp_94", 1 + %"$$fundef_12_env_a_96" = getelementptr inbounds %"$$fundef_12_env_62", %"$$fundef_12_env_62"* %"$$fundef_12_envp_92", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_12_env_a_96", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_12_cloval_95", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_11", align 8, !dbg !16 + %"$$retval_11_97" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_11", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_11_97" +} + +define internal %Int32 @"$fundef_16"(%"$$fundef_16_env_64"* %0, %Int32 %1) !dbg !17 { +entry: + %"$$fundef_16_env_a_77" = getelementptr inbounds %"$$fundef_16_env_64", %"$$fundef_16_env_64"* %0, i32 0, i32 0 + %"$a_envload_78" = load %Int32, %Int32* %"$$fundef_16_env_a_77", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_78", %Int32* %a, align 4 + %"$retval_17" = alloca %Int32, align 8 + %"$gasrem_79" = load i64, i64* @_gasrem, align 8 + %"$gascmp_80" = icmp ugt i64 4, %"$gasrem_79" + br i1 %"$gascmp_80", label %"$out_of_gas_81", label %"$have_gas_82" + +"$out_of_gas_81": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_82" + +"$have_gas_82": ; preds = %"$out_of_gas_81", %entry + %"$consume_83" = sub i64 %"$gasrem_79", 4 + store i64 %"$consume_83", i64* @_gasrem, align 8 + %"$a_84" = load %Int32, %Int32* %a, align 4 + %"$add_call_85" = call %Int32 @_add_Int32(%Int32 %"$a_84", %Int32 %1), !dbg !18 + store %Int32 %"$add_call_85", %Int32* %"$retval_17", align 4, !dbg !18 + %"$$retval_17_86" = load %Int32, %Int32* %"$retval_17", align 4 + ret %Int32 %"$$retval_17_86" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_14"(%"$$fundef_14_env_65"* %0, %Int32 %1) !dbg !19 { +entry: + %"$retval_15" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_66" = load i64, i64* @_gasrem, align 8 + %"$gascmp_67" = icmp ugt i64 1, %"$gasrem_66" + br i1 %"$gascmp_67", label %"$out_of_gas_68", label %"$have_gas_69" + +"$out_of_gas_68": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_69" + +"$have_gas_69": ; preds = %"$out_of_gas_68", %entry + %"$consume_70" = sub i64 %"$gasrem_66", 1 + store i64 %"$consume_70", i64* @_gasrem, align 8 + %"$$fundef_16_envp_71_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_16_envp_71_salloc" = call i8* @_salloc(i8* %"$$fundef_16_envp_71_load", i64 4) + %"$$fundef_16_envp_71" = bitcast i8* %"$$fundef_16_envp_71_salloc" to %"$$fundef_16_env_64"* + %"$$fundef_16_env_voidp_73" = bitcast %"$$fundef_16_env_64"* %"$$fundef_16_envp_71" to i8* + %"$$fundef_16_cloval_74" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_16_env_64"*, %Int32)* @"$fundef_16" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_16_env_voidp_73", 1 + %"$$fundef_16_env_a_75" = getelementptr inbounds %"$$fundef_16_env_64", %"$$fundef_16_env_64"* %"$$fundef_16_envp_71", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_16_env_a_75", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_16_cloval_74", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_15", align 8, !dbg !20 + %"$$retval_15_76" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_15", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_15_76" +} + +declare void @_out_of_gas() + +declare i8* @_salloc(i8*, i64) + +declare %Int32 @_add_Int32(%Int32, %Int32) + +define void @_init_libs() !dbg !21 { +entry: + %"$gasrem_151" = load i64, i64* @_gasrem, align 8 + %"$gascmp_152" = icmp ugt i64 1, %"$gasrem_151" + br i1 %"$gascmp_152", label %"$out_of_gas_153", label %"$have_gas_154" + +"$out_of_gas_153": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_154" + +"$have_gas_154": ; preds = %"$out_of_gas_153", %entry + %"$consume_155" = sub i64 %"$gasrem_151", 1 + store i64 %"$consume_155", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_14_env_65"*, %Int32)* @"$fundef_14" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry3.uncur_lib_func1, align 8, !dbg !23 + %"$gasrem_159" = load i64, i64* @_gasrem, align 8 + %"$gascmp_160" = icmp ugt i64 1, %"$gasrem_159" + br i1 %"$gascmp_160", label %"$out_of_gas_161", label %"$have_gas_162" + +"$out_of_gas_161": ; preds = %"$have_gas_154" + call void @_out_of_gas() + br label %"$have_gas_162" + +"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_154" + %"$consume_163" = sub i64 %"$gasrem_159", 1 + store i64 %"$consume_163", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_10_env_63"*, %Int32)* @"$fundef_10" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry3.uncur_lib_func2, align 8, !dbg !24 + %"$gasrem_167" = load i64, i64* @_gasrem, align 8 + %"$gascmp_168" = icmp ugt i64 2, %"$gasrem_167" + br i1 %"$gascmp_168", label %"$out_of_gas_169", label %"$have_gas_170" + +"$out_of_gas_169": ; preds = %"$have_gas_162" + call void @_out_of_gas() + br label %"$have_gas_170" + +"$have_gas_170": ; preds = %"$out_of_gas_169", %"$have_gas_162" + %"$consume_171" = sub i64 %"$gasrem_167", 2 + store i64 %"$consume_171", i64* @_gasrem, align 8 + store { %Int32 (i8*, %Int32, %Int32)*, i8* } { %Int32 (i8*, %Int32, %Int32)* bitcast (%Int32 (%"$$fundef_8_env_61"*, %Int32, %Int32)* @"$fundef_8" to %Int32 (i8*, %Int32, %Int32)*), i8* null }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* @uncurry3.uncur_lib_func3, align 8, !dbg !25 + ret void +} + +define void @_init_state() !dbg !26 { +entry: + %"$res_18" = alloca %Int32, align 8 + %"$gasrem_175" = load i64, i64* @_gasrem, align 8 + %"$gascmp_176" = icmp ugt i64 1, %"$gasrem_175" + br i1 %"$gascmp_176", label %"$out_of_gas_177", label %"$have_gas_178" + +"$out_of_gas_177": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_178" + +"$have_gas_178": ; preds = %"$out_of_gas_177", %entry + %"$consume_179" = sub i64 %"$gasrem_175", 1 + store i64 %"$consume_179", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %"$res_18", align 4, !dbg !27 + %"$execptr_load_180" = load i8*, i8** @_execptr, align 8 + %"$$res_18_182" = load %Int32, %Int32* %"$res_18", align 4 + %"$update_value_183" = alloca %Int32, align 8 + store %Int32 %"$$res_18_182", %Int32* %"$update_value_183", align 4 + %"$update_value_184" = bitcast %Int32* %"$update_value_183" to i8* + call void @_update_field(i8* %"$execptr_load_180", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_181", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_23", i32 0, i8* null, i8* %"$update_value_184"), !dbg !27 + ret void +} + +declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) + +define internal void @"$dummy1_185"(%Uint128 %_amount, [20 x i8]* %"$_origin_186", [20 x i8]* %"$_sender_187", %Int32 %x1, %Int32 %x2) !dbg !28 { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_186", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_187", align 1 + %"$gasrem_188" = load i64, i64* @_gasrem, align 8 + %"$gascmp_189" = icmp ugt i64 1, %"$gasrem_188" + br i1 %"$gascmp_189", label %"$out_of_gas_190", label %"$have_gas_191" + +"$out_of_gas_190": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_191" + +"$have_gas_191": ; preds = %"$out_of_gas_190", %entry + %"$consume_192" = sub i64 %"$gasrem_188", 1 + store i64 %"$consume_192", i64* @_gasrem, align 8 + %total_app = alloca %Int32, align 8 + %"$gasrem_193" = load i64, i64* @_gasrem, align 8 + %"$gascmp_194" = icmp ugt i64 1, %"$gasrem_193" + br i1 %"$gascmp_194", label %"$out_of_gas_195", label %"$have_gas_196" + +"$out_of_gas_195": ; preds = %"$have_gas_191" + call void @_out_of_gas() + br label %"$have_gas_196" + +"$have_gas_196": ; preds = %"$out_of_gas_195", %"$have_gas_191" + %"$consume_197" = sub i64 %"$gasrem_193", 1 + store i64 %"$consume_197", i64* @_gasrem, align 8 + %"$uncurry3.uncur_lib_func1_1" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$uncurry3.uncur_lib_func1_198" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry3.uncur_lib_func1, align 8 + %"$uncurry3.uncur_lib_func1_fptr_199" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func1_198", 0 + %"$uncurry3.uncur_lib_func1_envptr_200" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func1_198", 1 + %"$uncurry3.uncur_lib_func1_call_201" = call { %Int32 (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func1_fptr_199"(i8* %"$uncurry3.uncur_lib_func1_envptr_200", %Int32 %x1), !dbg !29 + store { %Int32 (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func1_call_201", { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry3.uncur_lib_func1_1", align 8, !dbg !29 + %"$uncurry3.uncur_lib_func1_2" = alloca %Int32, align 8 + %"$$uncurry3.uncur_lib_func1_1_202" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry3.uncur_lib_func1_1", align 8 + %"$$uncurry3.uncur_lib_func1_1_fptr_203" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry3.uncur_lib_func1_1_202", 0 + %"$$uncurry3.uncur_lib_func1_1_envptr_204" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry3.uncur_lib_func1_1_202", 1 + %"$$uncurry3.uncur_lib_func1_1_call_205" = call %Int32 %"$$uncurry3.uncur_lib_func1_1_fptr_203"(i8* %"$$uncurry3.uncur_lib_func1_1_envptr_204", %Int32 %x2), !dbg !29 + store %Int32 %"$$uncurry3.uncur_lib_func1_1_call_205", %Int32* %"$uncurry3.uncur_lib_func1_2", align 4, !dbg !29 + %"$$uncurry3.uncur_lib_func1_2_206" = load %Int32, %Int32* %"$uncurry3.uncur_lib_func1_2", align 4 + store %Int32 %"$$uncurry3.uncur_lib_func1_2_206", %Int32* %total_app, align 4, !dbg !29 + %"$gasrem_207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_208" = icmp ugt i64 1, %"$gasrem_207" + br i1 %"$gascmp_208", label %"$out_of_gas_209", label %"$have_gas_210" + +"$out_of_gas_209": ; preds = %"$have_gas_196" + call void @_out_of_gas() + br label %"$have_gas_210" + +"$have_gas_210": ; preds = %"$out_of_gas_209", %"$have_gas_196" + %"$consume_211" = sub i64 %"$gasrem_207", 1 + store i64 %"$consume_211", i64* @_gasrem, align 8 + %x = alloca %TName_uncurry3.T*, align 8 + %"$gasrem_212" = load i64, i64* @_gasrem, align 8 + %"$gascmp_213" = icmp ugt i64 1, %"$gasrem_212" + br i1 %"$gascmp_213", label %"$out_of_gas_214", label %"$have_gas_215" + +"$out_of_gas_214": ; preds = %"$have_gas_210" + call void @_out_of_gas() + br label %"$have_gas_215" + +"$have_gas_215": ; preds = %"$out_of_gas_214", %"$have_gas_210" + %"$consume_216" = sub i64 %"$gasrem_212", 1 + store i64 %"$consume_216", i64* @_gasrem, align 8 + %"$uncurry3.uncur_lib_func1_217" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry3.uncur_lib_func1, align 8 + %"$adtval_218_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_218_salloc" = call i8* @_salloc(i8* %"$adtval_218_load", i64 17) + %"$adtval_218" = bitcast i8* %"$adtval_218_salloc" to %CName_uncurry3.C1* + %"$adtgep_219" = getelementptr inbounds %CName_uncurry3.C1, %CName_uncurry3.C1* %"$adtval_218", i32 0, i32 0 + store i8 0, i8* %"$adtgep_219", align 1 + %"$adtgep_220" = getelementptr inbounds %CName_uncurry3.C1, %CName_uncurry3.C1* %"$adtval_218", i32 0, i32 1 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func1_217", { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %"$adtgep_220", align 8 + %"$adtptr_221" = bitcast %CName_uncurry3.C1* %"$adtval_218" to %TName_uncurry3.T* + store %TName_uncurry3.T* %"$adtptr_221", %TName_uncurry3.T** %x, align 8, !dbg !30 + %"$gasrem_222" = load i64, i64* @_gasrem, align 8 + %"$gascmp_223" = icmp ugt i64 2, %"$gasrem_222" + br i1 %"$gascmp_223", label %"$out_of_gas_224", label %"$have_gas_225" + +"$out_of_gas_224": ; preds = %"$have_gas_215" + call void @_out_of_gas() + br label %"$have_gas_225" + +"$have_gas_225": ; preds = %"$out_of_gas_224", %"$have_gas_215" + %"$consume_226" = sub i64 %"$gasrem_222", 2 + store i64 %"$consume_226", i64* @_gasrem, align 8 + %"$x_228" = load %TName_uncurry3.T*, %TName_uncurry3.T** %x, align 8 + %"$x_tag_229" = getelementptr inbounds %TName_uncurry3.T, %TName_uncurry3.T* %"$x_228", i32 0, i32 0 + %"$x_tag_230" = load i8, i8* %"$x_tag_229", align 1 + switch i8 %"$x_tag_230", label %"$default_231" [ + i8 0, label %"$uncurry3.C1_232" + ], !dbg !31 + +"$uncurry3.C1_232": ; preds = %"$have_gas_225" + %"$x_233" = bitcast %TName_uncurry3.T* %"$x_228" to %CName_uncurry3.C1* + %"$v_gep_234" = getelementptr inbounds %CName_uncurry3.C1, %CName_uncurry3.C1* %"$x_233", i32 0, i32 1 + %"$v_load_235" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %"$v_gep_234", align 8 + %v = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$v_load_235", { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %v, align 8 + %"$gasrem_236" = load i64, i64* @_gasrem, align 8 + %"$gascmp_237" = icmp ugt i64 1, %"$gasrem_236" + br i1 %"$gascmp_237", label %"$out_of_gas_238", label %"$have_gas_239" + +"$out_of_gas_238": ; preds = %"$uncurry3.C1_232" + call void @_out_of_gas() + br label %"$have_gas_239" + +"$have_gas_239": ; preds = %"$out_of_gas_238", %"$uncurry3.C1_232" + %"$consume_240" = sub i64 %"$gasrem_236", 1 + store i64 %"$consume_240", i64* @_gasrem, align 8 + %x_ = alloca %Int32, align 8 + %"$gasrem_241" = load i64, i64* @_gasrem, align 8 + %"$gascmp_242" = icmp ugt i64 1, %"$gasrem_241" + br i1 %"$gascmp_242", label %"$out_of_gas_243", label %"$have_gas_244" + +"$out_of_gas_243": ; preds = %"$have_gas_239" + call void @_out_of_gas() + br label %"$have_gas_244" + +"$have_gas_244": ; preds = %"$out_of_gas_243", %"$have_gas_239" + %"$consume_245" = sub i64 %"$gasrem_241", 1 + store i64 %"$consume_245", i64* @_gasrem, align 8 + %"$v_3" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$v_246" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %v, align 8 + %"$v_fptr_247" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$v_246", 0 + %"$v_envptr_248" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$v_246", 1 + %"$total_app_249" = load %Int32, %Int32* %total_app, align 4 + %"$v_call_250" = call { %Int32 (i8*, %Int32)*, i8* } %"$v_fptr_247"(i8* %"$v_envptr_248", %Int32 %"$total_app_249"), !dbg !32 + store { %Int32 (i8*, %Int32)*, i8* } %"$v_call_250", { %Int32 (i8*, %Int32)*, i8* }* %"$v_3", align 8, !dbg !32 + %"$v_4" = alloca %Int32, align 8 + %"$$v_3_251" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$v_3", align 8 + %"$$v_3_fptr_252" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$v_3_251", 0 + %"$$v_3_envptr_253" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$v_3_251", 1 + %"$$v_3_call_254" = call %Int32 %"$$v_3_fptr_252"(i8* %"$$v_3_envptr_253", %Int32 %x1), !dbg !32 + store %Int32 %"$$v_3_call_254", %Int32* %"$v_4", align 4, !dbg !32 + %"$$v_4_255" = load %Int32, %Int32* %"$v_4", align 4 + store %Int32 %"$$v_4_255", %Int32* %x_, align 4, !dbg !32 + %"$_literal_cost_x__256" = alloca %Int32, align 8 + %"$x__257" = load %Int32, %Int32* %x_, align 4 + store %Int32 %"$x__257", %Int32* %"$_literal_cost_x__256", align 4 + %"$$_literal_cost_x__256_258" = bitcast %Int32* %"$_literal_cost_x__256" to i8* + %"$_literal_cost_call_259" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_23", i8* %"$$_literal_cost_x__256_258") + %"$gasrem_260" = load i64, i64* @_gasrem, align 8 + %"$gascmp_261" = icmp ugt i64 %"$_literal_cost_call_259", %"$gasrem_260" + br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" + +"$out_of_gas_262": ; preds = %"$have_gas_244" + call void @_out_of_gas() + br label %"$have_gas_263" + +"$have_gas_263": ; preds = %"$out_of_gas_262", %"$have_gas_244" + %"$consume_264" = sub i64 %"$gasrem_260", %"$_literal_cost_call_259" + store i64 %"$consume_264", i64* @_gasrem, align 8 + %"$execptr_load_265" = load i8*, i8** @_execptr, align 8 + %"$x__267" = load %Int32, %Int32* %x_, align 4 + %"$update_value_268" = alloca %Int32, align 8 + store %Int32 %"$x__267", %Int32* %"$update_value_268", align 4 + %"$update_value_269" = bitcast %Int32* %"$update_value_268" to i8* + call void @_update_field(i8* %"$execptr_load_265", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_266", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_23", i32 0, i8* null, i8* %"$update_value_269"), !dbg !35 + br label %"$matchsucc_227" + +"$default_231": ; preds = %"$have_gas_225" + br label %"$joinp_0" + +"$joinp_0": ; preds = %"$default_231" + br label %"$matchsucc_227" + +"$matchsucc_227": ; preds = %"$have_gas_263", %"$joinp_0" + ret void +} + +declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) + +define void @dummy1(i8* %0) !dbg !36 { +entry: + %"$_amount_271" = getelementptr i8, i8* %0, i32 0 + %"$_amount_272" = bitcast i8* %"$_amount_271" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_272", align 8 + %"$_origin_273" = getelementptr i8, i8* %0, i32 16 + %"$_origin_274" = bitcast i8* %"$_origin_273" to [20 x i8]* + %"$_sender_275" = getelementptr i8, i8* %0, i32 36 + %"$_sender_276" = bitcast i8* %"$_sender_275" to [20 x i8]* + %"$x1_277" = getelementptr i8, i8* %0, i32 56 + %"$x1_278" = bitcast i8* %"$x1_277" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_278", align 4 + %"$x2_279" = getelementptr i8, i8* %0, i32 60 + %"$x2_280" = bitcast i8* %"$x2_279" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_280", align 4 + call void @"$dummy1_185"(%Uint128 %_amount, [20 x i8]* %"$_origin_274", [20 x i8]* %"$_sender_276", %Int32 %x1, %Int32 %x2), !dbg !37 + ret void +} + +define internal void @"$dummy2_281"(%Uint128 %_amount, [20 x i8]* %"$_origin_282", [20 x i8]* %"$_sender_283", %Int32 %x1, %Int32 %x2) !dbg !38 { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_282", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_283", align 1 + %"$gasrem_284" = load i64, i64* @_gasrem, align 8 + %"$gascmp_285" = icmp ugt i64 1, %"$gasrem_284" + br i1 %"$gascmp_285", label %"$out_of_gas_286", label %"$have_gas_287" + +"$out_of_gas_286": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_287" + +"$have_gas_287": ; preds = %"$out_of_gas_286", %entry + %"$consume_288" = sub i64 %"$gasrem_284", 1 + store i64 %"$consume_288", i64* @_gasrem, align 8 + %"$gasrem_289" = load i64, i64* @_gasrem, align 8 + %"$gascmp_290" = icmp ugt i64 1, %"$gasrem_289" + br i1 %"$gascmp_290", label %"$out_of_gas_291", label %"$have_gas_292" + +"$out_of_gas_291": ; preds = %"$have_gas_287" + call void @_out_of_gas() + br label %"$have_gas_292" + +"$have_gas_292": ; preds = %"$out_of_gas_291", %"$have_gas_287" + %"$consume_293" = sub i64 %"$gasrem_289", 1 + store i64 %"$consume_293", i64* @_gasrem, align 8 + %big_func = alloca { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }, align 8 + %"$gasrem_294" = load i64, i64* @_gasrem, align 8 + %"$gascmp_295" = icmp ugt i64 1, %"$gasrem_294" + br i1 %"$gascmp_295", label %"$out_of_gas_296", label %"$have_gas_297" + +"$out_of_gas_296": ; preds = %"$have_gas_292" + call void @_out_of_gas() + br label %"$have_gas_297" + +"$have_gas_297": ; preds = %"$out_of_gas_296", %"$have_gas_292" + %"$consume_298" = sub i64 %"$gasrem_294", 1 + store i64 %"$consume_298", i64* @_gasrem, align 8 + %f = alloca { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }, align 8 + %"$gasrem_299" = load i64, i64* @_gasrem, align 8 + %"$gascmp_300" = icmp ugt i64 1, %"$gasrem_299" + br i1 %"$gascmp_300", label %"$out_of_gas_301", label %"$have_gas_302" + +"$out_of_gas_301": ; preds = %"$have_gas_297" + call void @_out_of_gas() + br label %"$have_gas_302" + +"$have_gas_302": ; preds = %"$out_of_gas_301", %"$have_gas_297" + %"$consume_303" = sub i64 %"$gasrem_299", 1 + store i64 %"$consume_303", i64* @_gasrem, align 8 + store { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* } { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })* bitcast (%Int32 (%"$$fundef_19_env_60"*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })* @"$fundef_19" to %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*), i8* null }, { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }* %f, align 8, !dbg !39 + %"$gasrem_307" = load i64, i64* @_gasrem, align 8 + %"$gascmp_308" = icmp ugt i64 1, %"$gasrem_307" + br i1 %"$gascmp_308", label %"$out_of_gas_309", label %"$have_gas_310" + +"$out_of_gas_309": ; preds = %"$have_gas_302" + call void @_out_of_gas() + br label %"$have_gas_310" + +"$have_gas_310": ; preds = %"$out_of_gas_309", %"$have_gas_302" + %"$consume_311" = sub i64 %"$gasrem_307", 1 + store i64 %"$consume_311", i64* @_gasrem, align 8 + %"$f_312" = load { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }, { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }* %f, align 8 + store { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* } %"$f_312", { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }* %big_func, align 8, !dbg !40 + %"$gasrem_313" = load i64, i64* @_gasrem, align 8 + %"$gascmp_314" = icmp ugt i64 1, %"$gasrem_313" + br i1 %"$gascmp_314", label %"$out_of_gas_315", label %"$have_gas_316" + +"$out_of_gas_315": ; preds = %"$have_gas_310" + call void @_out_of_gas() + br label %"$have_gas_316" + +"$have_gas_316": ; preds = %"$out_of_gas_315", %"$have_gas_310" + %"$consume_317" = sub i64 %"$gasrem_313", 1 + store i64 %"$consume_317", i64* @_gasrem, align 8 + %x = alloca %Int32, align 8 + %"$gasrem_318" = load i64, i64* @_gasrem, align 8 + %"$gascmp_319" = icmp ugt i64 1, %"$gasrem_318" + br i1 %"$gascmp_319", label %"$out_of_gas_320", label %"$have_gas_321" + +"$out_of_gas_320": ; preds = %"$have_gas_316" + call void @_out_of_gas() + br label %"$have_gas_321" + +"$have_gas_321": ; preds = %"$out_of_gas_320", %"$have_gas_316" + %"$consume_322" = sub i64 %"$gasrem_318", 1 + store i64 %"$consume_322", i64* @_gasrem, align 8 + %"$big_func_7" = alloca %Int32, align 8 + %"$big_func_323" = load { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }, { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }* %big_func, align 8 + %"$big_func_fptr_324" = extractvalue { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* } %"$big_func_323", 0 + %"$big_func_envptr_325" = extractvalue { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* } %"$big_func_323", 1 + %"$uncurry3.uncur_lib_func2_326" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry3.uncur_lib_func2, align 8 + %"$big_func_call_327" = call %Int32 %"$big_func_fptr_324"(i8* %"$big_func_envptr_325", { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func2_326"), !dbg !41 + store %Int32 %"$big_func_call_327", %Int32* %"$big_func_7", align 4, !dbg !41 + %"$$big_func_7_328" = load %Int32, %Int32* %"$big_func_7", align 4 + store %Int32 %"$$big_func_7_328", %Int32* %x, align 4, !dbg !41 + %"$_literal_cost_x_329" = alloca %Int32, align 8 + %"$x_330" = load %Int32, %Int32* %x, align 4 + store %Int32 %"$x_330", %Int32* %"$_literal_cost_x_329", align 4 + %"$$_literal_cost_x_329_331" = bitcast %Int32* %"$_literal_cost_x_329" to i8* + %"$_literal_cost_call_332" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_23", i8* %"$$_literal_cost_x_329_331") + %"$gasrem_333" = load i64, i64* @_gasrem, align 8 + %"$gascmp_334" = icmp ugt i64 %"$_literal_cost_call_332", %"$gasrem_333" + br i1 %"$gascmp_334", label %"$out_of_gas_335", label %"$have_gas_336" + +"$out_of_gas_335": ; preds = %"$have_gas_321" + call void @_out_of_gas() + br label %"$have_gas_336" + +"$have_gas_336": ; preds = %"$out_of_gas_335", %"$have_gas_321" + %"$consume_337" = sub i64 %"$gasrem_333", %"$_literal_cost_call_332" + store i64 %"$consume_337", i64* @_gasrem, align 8 + %"$execptr_load_338" = load i8*, i8** @_execptr, align 8 + %"$x_340" = load %Int32, %Int32* %x, align 4 + %"$update_value_341" = alloca %Int32, align 8 + store %Int32 %"$x_340", %Int32* %"$update_value_341", align 4 + %"$update_value_342" = bitcast %Int32* %"$update_value_341" to i8* + call void @_update_field(i8* %"$execptr_load_338", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_339", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_23", i32 0, i8* null, i8* %"$update_value_342"), !dbg !42 + ret void +} + +define void @dummy2(i8* %0) !dbg !43 { +entry: + %"$_amount_344" = getelementptr i8, i8* %0, i32 0 + %"$_amount_345" = bitcast i8* %"$_amount_344" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_345", align 8 + %"$_origin_346" = getelementptr i8, i8* %0, i32 16 + %"$_origin_347" = bitcast i8* %"$_origin_346" to [20 x i8]* + %"$_sender_348" = getelementptr i8, i8* %0, i32 36 + %"$_sender_349" = bitcast i8* %"$_sender_348" to [20 x i8]* + %"$x1_350" = getelementptr i8, i8* %0, i32 56 + %"$x1_351" = bitcast i8* %"$x1_350" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_351", align 4 + %"$x2_352" = getelementptr i8, i8* %0, i32 60 + %"$x2_353" = bitcast i8* %"$x2_352" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_353", align 4 + call void @"$dummy2_281"(%Uint128 %_amount, [20 x i8]* %"$_origin_347", [20 x i8]* %"$_sender_349", %Int32 %x1, %Int32 %x2), !dbg !44 + ret void +} + +define internal void @"$dummy3_354"(%Uint128 %_amount, [20 x i8]* %"$_origin_355", [20 x i8]* %"$_sender_356", %Int32 %x1, %Int32 %x2) !dbg !45 { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_355", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_356", align 1 + %"$gasrem_357" = load i64, i64* @_gasrem, align 8 + %"$gascmp_358" = icmp ugt i64 1, %"$gasrem_357" + br i1 %"$gascmp_358", label %"$out_of_gas_359", label %"$have_gas_360" + +"$out_of_gas_359": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_360" + +"$have_gas_360": ; preds = %"$out_of_gas_359", %entry + %"$consume_361" = sub i64 %"$gasrem_357", 1 + store i64 %"$consume_361", i64* @_gasrem, align 8 + %total_app = alloca %Int32, align 8 + %"$gasrem_362" = load i64, i64* @_gasrem, align 8 + %"$gascmp_363" = icmp ugt i64 1, %"$gasrem_362" + br i1 %"$gascmp_363", label %"$out_of_gas_364", label %"$have_gas_365" + +"$out_of_gas_364": ; preds = %"$have_gas_360" + call void @_out_of_gas() + br label %"$have_gas_365" + +"$have_gas_365": ; preds = %"$out_of_gas_364", %"$have_gas_360" + %"$consume_366" = sub i64 %"$gasrem_362", 1 + store i64 %"$consume_366", i64* @_gasrem, align 8 + %"$uncurry3.uncur_lib_func3_367" = load { %Int32 (i8*, %Int32, %Int32)*, i8* }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* @uncurry3.uncur_lib_func3, align 8 + %"$uncurry3.uncur_lib_func3_fptr_368" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$uncurry3.uncur_lib_func3_367", 0 + %"$uncurry3.uncur_lib_func3_envptr_369" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$uncurry3.uncur_lib_func3_367", 1 + %"$uncurry3.uncur_lib_func3_call_370" = call %Int32 %"$uncurry3.uncur_lib_func3_fptr_368"(i8* %"$uncurry3.uncur_lib_func3_envptr_369", %Int32 %x1, %Int32 %x2), !dbg !46 + store %Int32 %"$uncurry3.uncur_lib_func3_call_370", %Int32* %total_app, align 4, !dbg !46 + %"$_literal_cost_total_app_371" = alloca %Int32, align 8 + %"$total_app_372" = load %Int32, %Int32* %total_app, align 4 + store %Int32 %"$total_app_372", %Int32* %"$_literal_cost_total_app_371", align 4 + %"$$_literal_cost_total_app_371_373" = bitcast %Int32* %"$_literal_cost_total_app_371" to i8* + %"$_literal_cost_call_374" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_23", i8* %"$$_literal_cost_total_app_371_373") + %"$gasrem_375" = load i64, i64* @_gasrem, align 8 + %"$gascmp_376" = icmp ugt i64 %"$_literal_cost_call_374", %"$gasrem_375" + br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" + +"$out_of_gas_377": ; preds = %"$have_gas_365" + call void @_out_of_gas() + br label %"$have_gas_378" + +"$have_gas_378": ; preds = %"$out_of_gas_377", %"$have_gas_365" + %"$consume_379" = sub i64 %"$gasrem_375", %"$_literal_cost_call_374" + store i64 %"$consume_379", i64* @_gasrem, align 8 + %"$execptr_load_380" = load i8*, i8** @_execptr, align 8 + %"$total_app_382" = load %Int32, %Int32* %total_app, align 4 + %"$update_value_383" = alloca %Int32, align 8 + store %Int32 %"$total_app_382", %Int32* %"$update_value_383", align 4 + %"$update_value_384" = bitcast %Int32* %"$update_value_383" to i8* + call void @_update_field(i8* %"$execptr_load_380", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_381", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_23", i32 0, i8* null, i8* %"$update_value_384"), !dbg !47 + ret void +} + +define void @dummy3(i8* %0) !dbg !48 { +entry: + %"$_amount_386" = getelementptr i8, i8* %0, i32 0 + %"$_amount_387" = bitcast i8* %"$_amount_386" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_387", align 8 + %"$_origin_388" = getelementptr i8, i8* %0, i32 16 + %"$_origin_389" = bitcast i8* %"$_origin_388" to [20 x i8]* + %"$_sender_390" = getelementptr i8, i8* %0, i32 36 + %"$_sender_391" = bitcast i8* %"$_sender_390" to [20 x i8]* + %"$x1_392" = getelementptr i8, i8* %0, i32 56 + %"$x1_393" = bitcast i8* %"$x1_392" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_393", align 4 + %"$x2_394" = getelementptr i8, i8* %0, i32 60 + %"$x2_395" = bitcast i8* %"$x2_394" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_395", align 4 + call void @"$dummy3_354"(%Uint128 %_amount, [20 x i8]* %"$_origin_389", [20 x i8]* %"$_sender_391", %Int32 %x1, %Int32 %x2), !dbg !49 + ret void +} + +!llvm.module.flags = !{!0} +!llvm.dbg.cu = !{!1} + +!0 = !{i32 2, !"Debug Info Version", i32 3} +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) +!2 = !DIFile(filename: "uncurry3.scilla", directory: "codegen/contr") +!3 = !{} +!4 = distinct !DISubprogram(name: "$fundef_19", linkageName: "$fundef_19", scope: !2, file: !2, line: 53, type: !5, scopeLine: 53, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !DILocation(line: 53, column: 26, scope: !4) +!9 = !DILocation(line: 54, column: 26, scope: !4) +!10 = !DILocation(line: 55, column: 17, scope: !4) +!11 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!12 = !DILocation(line: 19, column: 13, scope: !11) +!13 = distinct !DISubprogram(name: "$fundef_12", linkageName: "$fundef_12", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!14 = !DILocation(line: 13, column: 13, scope: !13) +!15 = distinct !DISubprogram(name: "$fundef_10", linkageName: "$fundef_10", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!16 = !DILocation(line: 13, column: 13, scope: !15) +!17 = distinct !DISubprogram(name: "$fundef_16", linkageName: "$fundef_16", scope: !2, file: !2, line: 8, type: !5, scopeLine: 8, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!18 = !DILocation(line: 8, column: 13, scope: !17) +!19 = distinct !DISubprogram(name: "$fundef_14", linkageName: "$fundef_14", scope: !2, file: !2, line: 7, type: !5, scopeLine: 7, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!20 = !DILocation(line: 8, column: 13, scope: !19) +!21 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !22, file: !22, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!22 = !DIFile(filename: ".", directory: ".") +!23 = !DILocation(line: 7, column: 9, scope: !21) +!24 = !DILocation(line: 12, column: 9, scope: !21) +!25 = !DILocation(line: 18, column: 9, scope: !21) +!26 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !22, file: !22, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!27 = !DILocation(line: 27, column: 21, scope: !26) +!28 = distinct !DISubprogram(name: "dummy1", linkageName: "dummy1", scope: !2, file: !2, line: 29, type: !5, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!29 = !DILocation(line: 32, column: 17, scope: !28) +!30 = !DILocation(line: 35, column: 9, scope: !28) +!31 = !DILocation(line: 37, column: 5, scope: !28) +!32 = !DILocation(line: 39, column: 14, scope: !33) +!33 = distinct !DILexicalBlock(scope: !34, file: !2, line: 38, column: 7) +!34 = distinct !DILexicalBlock(scope: !28, file: !2, line: 37, column: 5) +!35 = !DILocation(line: 40, column: 9, scope: !33) +!36 = distinct !DISubprogram(name: "dummy1", linkageName: "dummy1", scope: !2, file: !2, line: 29, type: !5, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!37 = !DILocation(line: 29, column: 12, scope: !36) +!38 = distinct !DISubprogram(name: "dummy2", linkageName: "dummy2", scope: !2, file: !2, line: 45, type: !5, scopeLine: 45, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!39 = !DILocation(line: 53, column: 17, scope: !38) +!40 = !DILocation(line: 57, column: 9, scope: !38) +!41 = !DILocation(line: 60, column: 9, scope: !38) +!42 = !DILocation(line: 61, column: 5, scope: !38) +!43 = distinct !DISubprogram(name: "dummy2", linkageName: "dummy2", scope: !2, file: !2, line: 45, type: !5, scopeLine: 45, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!44 = !DILocation(line: 45, column: 12, scope: !43) +!45 = distinct !DISubprogram(name: "dummy3", linkageName: "dummy3", scope: !2, file: !2, line: 64, type: !5, scopeLine: 64, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!46 = !DILocation(line: 66, column: 17, scope: !45) +!47 = !DILocation(line: 67, column: 5, scope: !45) +!48 = distinct !DISubprogram(name: "dummy3", linkageName: "dummy3", scope: !2, file: !2, line: 64, type: !5, scopeLine: 64, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!49 = !DILocation(line: 64, column: 12, scope: !48) diff --git a/tests/codegen/contr/dgold/uncurry4.scilla.gold b/tests/codegen/contr/dgold/uncurry4.scilla.gold new file mode 100644 index 00000000..ca4b5a5d --- /dev/null +++ b/tests/codegen/contr/dgold/uncurry4.scilla.gold @@ -0,0 +1,428 @@ + + +; gas_remaining: 4001999 +; ModuleID = 'SimpleUnuccury4' +source_filename = "SimpleUnuccury4" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" + +%"$TyDescrTy_PrimTyp_9" = type { i32, i32 } +%_TyDescrTy_Typ = type { i32, i8* } +%"$TyDescr_AddrTyp_45" = type { i32, %"$TyDescr_AddrFieldTyp_44"* } +%"$TyDescr_AddrFieldTyp_44" = type { %TyDescrString, %_TyDescrTy_Typ* } +%TyDescrString = type { i8*, i32 } +%Uint32 = type { i32 } +%"$ParamDescr_201" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%ParamDescrString = type { i8*, i32 } +%"$TransDescr_202" = type { %ParamDescrString, i32, %"$ParamDescr_201"* } +%"$$fundef_3_env_48" = type {} +%Int32 = type { i32 } +%"$$fundef_7_env_49" = type { %Int32 } +%"$$fundef_5_env_50" = type {} +%Uint128 = type { i128 } + +@_execptr = global i8* null +@_gasrem = global i64 0 +@"$TyDescr_Int32_Prim_10" = global %"$TyDescrTy_PrimTyp_9" zeroinitializer +@"$TyDescr_Int32_11" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Int32_Prim_10" to i8*) } +@"$TyDescr_Uint32_Prim_12" = global %"$TyDescrTy_PrimTyp_9" { i32 1, i32 0 } +@"$TyDescr_Uint32_13" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Uint32_Prim_12" to i8*) } +@"$TyDescr_Int64_Prim_14" = global %"$TyDescrTy_PrimTyp_9" { i32 0, i32 1 } +@"$TyDescr_Int64_15" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Int64_Prim_14" to i8*) } +@"$TyDescr_Uint64_Prim_16" = global %"$TyDescrTy_PrimTyp_9" { i32 1, i32 1 } +@"$TyDescr_Uint64_17" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Uint64_Prim_16" to i8*) } +@"$TyDescr_Int128_Prim_18" = global %"$TyDescrTy_PrimTyp_9" { i32 0, i32 2 } +@"$TyDescr_Int128_19" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Int128_Prim_18" to i8*) } +@"$TyDescr_Uint128_Prim_20" = global %"$TyDescrTy_PrimTyp_9" { i32 1, i32 2 } +@"$TyDescr_Uint128_21" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Uint128_Prim_20" to i8*) } +@"$TyDescr_Int256_Prim_22" = global %"$TyDescrTy_PrimTyp_9" { i32 0, i32 3 } +@"$TyDescr_Int256_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Int256_Prim_22" to i8*) } +@"$TyDescr_Uint256_Prim_24" = global %"$TyDescrTy_PrimTyp_9" { i32 1, i32 3 } +@"$TyDescr_Uint256_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Uint256_Prim_24" to i8*) } +@"$TyDescr_String_Prim_26" = global %"$TyDescrTy_PrimTyp_9" { i32 2, i32 0 } +@"$TyDescr_String_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_String_Prim_26" to i8*) } +@"$TyDescr_Bnum_Prim_28" = global %"$TyDescrTy_PrimTyp_9" { i32 3, i32 0 } +@"$TyDescr_Bnum_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Bnum_Prim_28" to i8*) } +@"$TyDescr_Message_Prim_30" = global %"$TyDescrTy_PrimTyp_9" { i32 4, i32 0 } +@"$TyDescr_Message_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Message_Prim_30" to i8*) } +@"$TyDescr_Event_Prim_32" = global %"$TyDescrTy_PrimTyp_9" { i32 5, i32 0 } +@"$TyDescr_Event_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Event_Prim_32" to i8*) } +@"$TyDescr_Exception_Prim_34" = global %"$TyDescrTy_PrimTyp_9" { i32 6, i32 0 } +@"$TyDescr_Exception_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Exception_Prim_34" to i8*) } +@"$TyDescr_Bystr_Prim_36" = global %"$TyDescrTy_PrimTyp_9" { i32 7, i32 0 } +@"$TyDescr_Bystr_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Bystr_Prim_36" to i8*) } +@"$TyDescr_Bystr20_Prim_38" = global %"$TyDescrTy_PrimTyp_9" { i32 8, i32 20 } +@"$TyDescr_Bystr20_39" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Bystr20_Prim_38" to i8*) } +@"$TyDescr_Addr_46" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_45"* @"$TyDescr_AddrFields_47" to i8*) } +@"$TyDescr_AddrFields_47" = unnamed_addr constant %"$TyDescr_AddrTyp_45" { i32 -1, %"$TyDescr_AddrFieldTyp_44"* null } +@_cparam__scilla_version = global %Uint32 zeroinitializer +@_cparam__this_address = global [20 x i8] zeroinitializer +@_cparam__creation_block = global i8* null +@"$res_85" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_145" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_186" = unnamed_addr constant [4 x i8] c"res\00" +@_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_33", %_TyDescrTy_Typ* @"$TyDescr_Int64_15", %_TyDescrTy_Typ* @"$TyDescr_Addr_46", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_TyDescrTy_Typ* @"$TyDescr_Uint256_25", %_TyDescrTy_Typ* @"$TyDescr_Uint32_13", %_TyDescrTy_Typ* @"$TyDescr_Uint64_17", %_TyDescrTy_Typ* @"$TyDescr_Bnum_29", %_TyDescrTy_Typ* @"$TyDescr_Uint128_21", %_TyDescrTy_Typ* @"$TyDescr_Exception_35", %_TyDescrTy_Typ* @"$TyDescr_String_27", %_TyDescrTy_Typ* @"$TyDescr_Int256_23", %_TyDescrTy_Typ* @"$TyDescr_Int128_19", %_TyDescrTy_Typ* @"$TyDescr_Bystr_37", %_TyDescrTy_Typ* @"$TyDescr_Message_31", %_TyDescrTy_Typ* @"$TyDescr_Int32_11"] +@_tydescr_table_length = constant i32 16 +@"$pname__scilla_version_203" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_204" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_205" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_201"] [%"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_203", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_13" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_204", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_205", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_29" }] +@_contract_parameters_length = constant i32 3 +@"$tpname__amount_206" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_207" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_208" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_209" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_210" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy_211" = unnamed_addr constant [5 x %"$ParamDescr_201"] [%"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_206", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_21" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_207", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_208", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_209", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_11" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_210", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_11" }] +@"$tname_dummy_212" = unnamed_addr constant [5 x i8] c"dummy" +@_transition_parameters = constant [1 x %"$TransDescr_202"] [%"$TransDescr_202" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_dummy_212", i32 0, i32 0), i32 5 }, i32 5, %"$ParamDescr_201"* getelementptr inbounds ([5 x %"$ParamDescr_201"], [5 x %"$ParamDescr_201"]* @"$tparams_dummy_211", i32 0, i32 0) }] +@_transition_parameters_length = constant i32 1 + +define internal %Int32 @"$fundef_3"(%"$$fundef_3_env_48"* %0, %Int32 %1, %Int32 %2) !dbg !4 { +entry: + %"$retval_4" = alloca %Int32, align 8 + %"$gasrem_72" = load i64, i64* @_gasrem, align 8 + %"$gascmp_73" = icmp ugt i64 4, %"$gasrem_72" + br i1 %"$gascmp_73", label %"$out_of_gas_74", label %"$have_gas_75" + +"$out_of_gas_74": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_75" + +"$have_gas_75": ; preds = %"$out_of_gas_74", %entry + %"$consume_76" = sub i64 %"$gasrem_72", 4 + store i64 %"$consume_76", i64* @_gasrem, align 8 + %"$add_call_77" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %2), !dbg !8 + store %Int32 %"$add_call_77", %Int32* %"$retval_4", align 4, !dbg !8 + %"$$retval_4_78" = load %Int32, %Int32* %"$retval_4", align 4 + ret %Int32 %"$$retval_4_78" +} + +define internal %Int32 @"$fundef_7"(%"$$fundef_7_env_49"* %0, %Int32 %1) !dbg !9 { +entry: + %"$$fundef_7_env_a_62" = getelementptr inbounds %"$$fundef_7_env_49", %"$$fundef_7_env_49"* %0, i32 0, i32 0 + %"$a_envload_63" = load %Int32, %Int32* %"$$fundef_7_env_a_62", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_63", %Int32* %a, align 4 + %"$retval_8" = alloca %Int32, align 8 + %"$gasrem_64" = load i64, i64* @_gasrem, align 8 + %"$gascmp_65" = icmp ugt i64 4, %"$gasrem_64" + br i1 %"$gascmp_65", label %"$out_of_gas_66", label %"$have_gas_67" + +"$out_of_gas_66": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_67" + +"$have_gas_67": ; preds = %"$out_of_gas_66", %entry + %"$consume_68" = sub i64 %"$gasrem_64", 4 + store i64 %"$consume_68", i64* @_gasrem, align 8 + %"$a_69" = load %Int32, %Int32* %a, align 4 + %"$add_call_70" = call %Int32 @_add_Int32(%Int32 %"$a_69", %Int32 %1), !dbg !10 + store %Int32 %"$add_call_70", %Int32* %"$retval_8", align 4, !dbg !10 + %"$$retval_8_71" = load %Int32, %Int32* %"$retval_8", align 4 + ret %Int32 %"$$retval_8_71" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_5"(%"$$fundef_5_env_50"* %0, %Int32 %1) !dbg !11 { +entry: + %"$retval_6" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_51" = load i64, i64* @_gasrem, align 8 + %"$gascmp_52" = icmp ugt i64 1, %"$gasrem_51" + br i1 %"$gascmp_52", label %"$out_of_gas_53", label %"$have_gas_54" + +"$out_of_gas_53": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_54" + +"$have_gas_54": ; preds = %"$out_of_gas_53", %entry + %"$consume_55" = sub i64 %"$gasrem_51", 1 + store i64 %"$consume_55", i64* @_gasrem, align 8 + %"$$fundef_7_envp_56_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_7_envp_56_salloc" = call i8* @_salloc(i8* %"$$fundef_7_envp_56_load", i64 4) + %"$$fundef_7_envp_56" = bitcast i8* %"$$fundef_7_envp_56_salloc" to %"$$fundef_7_env_49"* + %"$$fundef_7_env_voidp_58" = bitcast %"$$fundef_7_env_49"* %"$$fundef_7_envp_56" to i8* + %"$$fundef_7_cloval_59" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_7_env_49"*, %Int32)* @"$fundef_7" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_7_env_voidp_58", 1 + %"$$fundef_7_env_a_60" = getelementptr inbounds %"$$fundef_7_env_49", %"$$fundef_7_env_49"* %"$$fundef_7_envp_56", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_7_env_a_60", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_7_cloval_59", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_6", align 8, !dbg !12 + %"$$retval_6_61" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_6", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_6_61" +} + +declare void @_out_of_gas() + +declare i8* @_salloc(i8*, i64) + +declare %Int32 @_add_Int32(%Int32, %Int32) + +define void @_init_libs() !dbg !13 { +entry: + ret void +} + +define void @_init_state() !dbg !15 { +entry: + %"$res_2" = alloca %Int32, align 8 + %"$gasrem_79" = load i64, i64* @_gasrem, align 8 + %"$gascmp_80" = icmp ugt i64 1, %"$gasrem_79" + br i1 %"$gascmp_80", label %"$out_of_gas_81", label %"$have_gas_82" + +"$out_of_gas_81": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_82" + +"$have_gas_82": ; preds = %"$out_of_gas_81", %entry + %"$consume_83" = sub i64 %"$gasrem_79", 1 + store i64 %"$consume_83", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %"$res_2", align 4, !dbg !16 + %"$execptr_load_84" = load i8*, i8** @_execptr, align 8 + %"$$res_2_86" = load %Int32, %Int32* %"$res_2", align 4 + %"$update_value_87" = alloca %Int32, align 8 + store %Int32 %"$$res_2_86", %Int32* %"$update_value_87", align 4 + %"$update_value_88" = bitcast %Int32* %"$update_value_87" to i8* + call void @_update_field(i8* %"$execptr_load_84", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_85", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_11", i32 0, i8* null, i8* %"$update_value_88"), !dbg !16 + ret void +} + +declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) + +define internal void @"$dummy_89"(%Uint128 %_amount, [20 x i8]* %"$_origin_90", [20 x i8]* %"$_sender_91", %Int32 %x1, %Int32 %x2) !dbg !17 { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_90", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_91", align 1 + %"$gasrem_92" = load i64, i64* @_gasrem, align 8 + %"$gascmp_93" = icmp ugt i64 1, %"$gasrem_92" + br i1 %"$gascmp_93", label %"$out_of_gas_94", label %"$have_gas_95" + +"$out_of_gas_94": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_95" + +"$have_gas_95": ; preds = %"$out_of_gas_94", %entry + %"$consume_96" = sub i64 %"$gasrem_92", 1 + store i64 %"$consume_96", i64* @_gasrem, align 8 + %x = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_97" = load i64, i64* @_gasrem, align 8 + %"$gascmp_98" = icmp ugt i64 1, %"$gasrem_97" + br i1 %"$gascmp_98", label %"$out_of_gas_99", label %"$have_gas_100" + +"$out_of_gas_99": ; preds = %"$have_gas_95" + call void @_out_of_gas() + br label %"$have_gas_100" + +"$have_gas_100": ; preds = %"$out_of_gas_99", %"$have_gas_95" + %"$consume_101" = sub i64 %"$gasrem_97", 1 + store i64 %"$consume_101", i64* @_gasrem, align 8 + %f = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_102" = load i64, i64* @_gasrem, align 8 + %"$gascmp_103" = icmp ugt i64 1, %"$gasrem_102" + br i1 %"$gascmp_103", label %"$out_of_gas_104", label %"$have_gas_105" + +"$out_of_gas_104": ; preds = %"$have_gas_100" + call void @_out_of_gas() + br label %"$have_gas_105" + +"$have_gas_105": ; preds = %"$out_of_gas_104", %"$have_gas_100" + %"$consume_106" = sub i64 %"$gasrem_102", 1 + store i64 %"$consume_106", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_5_env_50"*, %Int32)* @"$fundef_5" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f, align 8, !dbg !18 + %"$gasrem_110" = load i64, i64* @_gasrem, align 8 + %"$gascmp_111" = icmp ugt i64 1, %"$gasrem_110" + br i1 %"$gascmp_111", label %"$out_of_gas_112", label %"$have_gas_113" + +"$out_of_gas_112": ; preds = %"$have_gas_105" + call void @_out_of_gas() + br label %"$have_gas_113" + +"$have_gas_113": ; preds = %"$out_of_gas_112", %"$have_gas_105" + %"$consume_114" = sub i64 %"$gasrem_110", 1 + store i64 %"$consume_114", i64* @_gasrem, align 8 + %"$f_115" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f_115", { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %x, align 8, !dbg !19 + %"$gasrem_116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_117" = icmp ugt i64 1, %"$gasrem_116" + br i1 %"$gascmp_117", label %"$out_of_gas_118", label %"$have_gas_119" + +"$out_of_gas_118": ; preds = %"$have_gas_113" + call void @_out_of_gas() + br label %"$have_gas_119" + +"$have_gas_119": ; preds = %"$out_of_gas_118", %"$have_gas_113" + %"$consume_120" = sub i64 %"$gasrem_116", 1 + store i64 %"$consume_120", i64* @_gasrem, align 8 + %total_app = alloca %Int32, align 8 + %"$gasrem_121" = load i64, i64* @_gasrem, align 8 + %"$gascmp_122" = icmp ugt i64 1, %"$gasrem_121" + br i1 %"$gascmp_122", label %"$out_of_gas_123", label %"$have_gas_124" + +"$out_of_gas_123": ; preds = %"$have_gas_119" + call void @_out_of_gas() + br label %"$have_gas_124" + +"$have_gas_124": ; preds = %"$out_of_gas_123", %"$have_gas_119" + %"$consume_125" = sub i64 %"$gasrem_121", 1 + store i64 %"$consume_125", i64* @_gasrem, align 8 + %"$x_0" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$x_126" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %x, align 8 + %"$x_fptr_127" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$x_126", 0 + %"$x_envptr_128" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$x_126", 1 + %"$x_call_129" = call { %Int32 (i8*, %Int32)*, i8* } %"$x_fptr_127"(i8* %"$x_envptr_128", %Int32 %x1), !dbg !20 + store { %Int32 (i8*, %Int32)*, i8* } %"$x_call_129", { %Int32 (i8*, %Int32)*, i8* }* %"$x_0", align 8, !dbg !20 + %"$x_1" = alloca %Int32, align 8 + %"$$x_0_130" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$x_0", align 8 + %"$$x_0_fptr_131" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$x_0_130", 0 + %"$$x_0_envptr_132" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$x_0_130", 1 + %"$$x_0_call_133" = call %Int32 %"$$x_0_fptr_131"(i8* %"$$x_0_envptr_132", %Int32 %x2), !dbg !20 + store %Int32 %"$$x_0_call_133", %Int32* %"$x_1", align 4, !dbg !20 + %"$$x_1_134" = load %Int32, %Int32* %"$x_1", align 4 + store %Int32 %"$$x_1_134", %Int32* %total_app, align 4, !dbg !20 + %"$_literal_cost_total_app_135" = alloca %Int32, align 8 + %"$total_app_136" = load %Int32, %Int32* %total_app, align 4 + store %Int32 %"$total_app_136", %Int32* %"$_literal_cost_total_app_135", align 4 + %"$$_literal_cost_total_app_135_137" = bitcast %Int32* %"$_literal_cost_total_app_135" to i8* + %"$_literal_cost_call_138" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_11", i8* %"$$_literal_cost_total_app_135_137") + %"$gasrem_139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_140" = icmp ugt i64 %"$_literal_cost_call_138", %"$gasrem_139" + br i1 %"$gascmp_140", label %"$out_of_gas_141", label %"$have_gas_142" + +"$out_of_gas_141": ; preds = %"$have_gas_124" + call void @_out_of_gas() + br label %"$have_gas_142" + +"$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_124" + %"$consume_143" = sub i64 %"$gasrem_139", %"$_literal_cost_call_138" + store i64 %"$consume_143", i64* @_gasrem, align 8 + %"$execptr_load_144" = load i8*, i8** @_execptr, align 8 + %"$total_app_146" = load %Int32, %Int32* %total_app, align 4 + %"$update_value_147" = alloca %Int32, align 8 + store %Int32 %"$total_app_146", %Int32* %"$update_value_147", align 4 + %"$update_value_148" = bitcast %Int32* %"$update_value_147" to i8* + call void @_update_field(i8* %"$execptr_load_144", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_145", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_11", i32 0, i8* null, i8* %"$update_value_148"), !dbg !21 + %"$gasrem_149" = load i64, i64* @_gasrem, align 8 + %"$gascmp_150" = icmp ugt i64 1, %"$gasrem_149" + br i1 %"$gascmp_150", label %"$out_of_gas_151", label %"$have_gas_152" + +"$out_of_gas_151": ; preds = %"$have_gas_142" + call void @_out_of_gas() + br label %"$have_gas_152" + +"$have_gas_152": ; preds = %"$out_of_gas_151", %"$have_gas_142" + %"$consume_153" = sub i64 %"$gasrem_149", 1 + store i64 %"$consume_153", i64* @_gasrem, align 8 + %y = alloca { %Int32 (i8*, %Int32, %Int32)*, i8* }, align 8 + %"$gasrem_154" = load i64, i64* @_gasrem, align 8 + %"$gascmp_155" = icmp ugt i64 2, %"$gasrem_154" + br i1 %"$gascmp_155", label %"$out_of_gas_156", label %"$have_gas_157" + +"$out_of_gas_156": ; preds = %"$have_gas_152" + call void @_out_of_gas() + br label %"$have_gas_157" + +"$have_gas_157": ; preds = %"$out_of_gas_156", %"$have_gas_152" + %"$consume_158" = sub i64 %"$gasrem_154", 2 + store i64 %"$consume_158", i64* @_gasrem, align 8 + store { %Int32 (i8*, %Int32, %Int32)*, i8* } { %Int32 (i8*, %Int32, %Int32)* bitcast (%Int32 (%"$$fundef_3_env_48"*, %Int32, %Int32)* @"$fundef_3" to %Int32 (i8*, %Int32, %Int32)*), i8* null }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* %y, align 8, !dbg !22 + %"$gasrem_162" = load i64, i64* @_gasrem, align 8 + %"$gascmp_163" = icmp ugt i64 1, %"$gasrem_162" + br i1 %"$gascmp_163", label %"$out_of_gas_164", label %"$have_gas_165" + +"$out_of_gas_164": ; preds = %"$have_gas_157" + call void @_out_of_gas() + br label %"$have_gas_165" + +"$have_gas_165": ; preds = %"$out_of_gas_164", %"$have_gas_157" + %"$consume_166" = sub i64 %"$gasrem_162", 1 + store i64 %"$consume_166", i64* @_gasrem, align 8 + %total_app2 = alloca %Int32, align 8 + %"$gasrem_167" = load i64, i64* @_gasrem, align 8 + %"$gascmp_168" = icmp ugt i64 1, %"$gasrem_167" + br i1 %"$gascmp_168", label %"$out_of_gas_169", label %"$have_gas_170" + +"$out_of_gas_169": ; preds = %"$have_gas_165" + call void @_out_of_gas() + br label %"$have_gas_170" + +"$have_gas_170": ; preds = %"$out_of_gas_169", %"$have_gas_165" + %"$consume_171" = sub i64 %"$gasrem_167", 1 + store i64 %"$consume_171", i64* @_gasrem, align 8 + %"$y_172" = load { %Int32 (i8*, %Int32, %Int32)*, i8* }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* %y, align 8 + %"$y_fptr_173" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$y_172", 0 + %"$y_envptr_174" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$y_172", 1 + %"$y_call_175" = call %Int32 %"$y_fptr_173"(i8* %"$y_envptr_174", %Int32 %x1, %Int32 %x2), !dbg !23 + store %Int32 %"$y_call_175", %Int32* %total_app2, align 4, !dbg !23 + %"$_literal_cost_total_app2_176" = alloca %Int32, align 8 + %"$total_app2_177" = load %Int32, %Int32* %total_app2, align 4 + store %Int32 %"$total_app2_177", %Int32* %"$_literal_cost_total_app2_176", align 4 + %"$$_literal_cost_total_app2_176_178" = bitcast %Int32* %"$_literal_cost_total_app2_176" to i8* + %"$_literal_cost_call_179" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_11", i8* %"$$_literal_cost_total_app2_176_178") + %"$gasrem_180" = load i64, i64* @_gasrem, align 8 + %"$gascmp_181" = icmp ugt i64 %"$_literal_cost_call_179", %"$gasrem_180" + br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" + +"$out_of_gas_182": ; preds = %"$have_gas_170" + call void @_out_of_gas() + br label %"$have_gas_183" + +"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_170" + %"$consume_184" = sub i64 %"$gasrem_180", %"$_literal_cost_call_179" + store i64 %"$consume_184", i64* @_gasrem, align 8 + %"$execptr_load_185" = load i8*, i8** @_execptr, align 8 + %"$total_app2_187" = load %Int32, %Int32* %total_app2, align 4 + %"$update_value_188" = alloca %Int32, align 8 + store %Int32 %"$total_app2_187", %Int32* %"$update_value_188", align 4 + %"$update_value_189" = bitcast %Int32* %"$update_value_188" to i8* + call void @_update_field(i8* %"$execptr_load_185", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_186", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_11", i32 0, i8* null, i8* %"$update_value_189"), !dbg !24 + ret void +} + +declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) + +define void @dummy(i8* %0) !dbg !25 { +entry: + %"$_amount_191" = getelementptr i8, i8* %0, i32 0 + %"$_amount_192" = bitcast i8* %"$_amount_191" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_192", align 8 + %"$_origin_193" = getelementptr i8, i8* %0, i32 16 + %"$_origin_194" = bitcast i8* %"$_origin_193" to [20 x i8]* + %"$_sender_195" = getelementptr i8, i8* %0, i32 36 + %"$_sender_196" = bitcast i8* %"$_sender_195" to [20 x i8]* + %"$x1_197" = getelementptr i8, i8* %0, i32 56 + %"$x1_198" = bitcast i8* %"$x1_197" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_198", align 4 + %"$x2_199" = getelementptr i8, i8* %0, i32 60 + %"$x2_200" = bitcast i8* %"$x2_199" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_200", align 4 + call void @"$dummy_89"(%Uint128 %_amount, [20 x i8]* %"$_origin_194", [20 x i8]* %"$_sender_196", %Int32 %x1, %Int32 %x2), !dbg !26 + ret void +} + +!llvm.module.flags = !{!0} +!llvm.dbg.cu = !{!1} + +!0 = !{i32 2, !"Debug Info Version", i32 3} +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) +!2 = !DIFile(filename: "uncurry4.scilla", directory: "codegen/contr") +!3 = !{} +!4 = distinct !DISubprogram(name: "$fundef_3", linkageName: "$fundef_3", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !DILocation(line: 23, column: 13, scope: !4) +!9 = distinct !DISubprogram(name: "$fundef_7", linkageName: "$fundef_7", scope: !2, file: !2, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!10 = !DILocation(line: 15, column: 17, scope: !9) +!11 = distinct !DISubprogram(name: "$fundef_5", linkageName: "$fundef_5", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!12 = !DILocation(line: 15, column: 17, scope: !11) +!13 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !14, file: !14, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!14 = !DIFile(filename: ".", directory: ".") +!15 = distinct !DISubprogram(name: "_init_state", linkageName: "_init_state", scope: !14, file: !14, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!16 = !DILocation(line: 7, column: 21, scope: !15) +!17 = distinct !DISubprogram(name: "dummy", linkageName: "dummy", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!18 = !DILocation(line: 14, column: 13, scope: !17) +!19 = !DILocation(line: 16, column: 17, scope: !17) +!20 = !DILocation(line: 17, column: 17, scope: !17) +!21 = !DILocation(line: 18, column: 5, scope: !17) +!22 = !DILocation(line: 22, column: 9, scope: !17) +!23 = !DILocation(line: 24, column: 18, scope: !17) +!24 = !DILocation(line: 26, column: 5, scope: !17) +!25 = distinct !DISubprogram(name: "dummy", linkageName: "dummy", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!26 = !DILocation(line: 9, column: 12, scope: !25) diff --git a/tests/codegen/contr/gold/MmphTest.scilla.gold b/tests/codegen/contr/gold/MmphTest.scilla.gold index ef4c4e50..e4461ef9 100644 --- a/tests/codegen/contr/gold/MmphTest.scilla.gold +++ b/tests/codegen/contr/gold/MmphTest.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'MmphTest' source_filename = "MmphTest" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_8" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/accept.scilla.gold b/tests/codegen/contr/gold/accept.scilla.gold index cd6e16f5..9c071f0e 100644 --- a/tests/codegen/contr/gold/accept.scilla.gold +++ b/tests/codegen/contr/gold/accept.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'Accept' source_filename = "Accept" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/accounting_tests.scilla.gold b/tests/codegen/contr/gold/accounting_tests.scilla.gold index 345a8db2..5ee71e03 100644 --- a/tests/codegen/contr/gold/accounting_tests.scilla.gold +++ b/tests/codegen/contr/gold/accounting_tests.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001916 ; ModuleID = 'AccountingTests' source_filename = "AccountingTests" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_87" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } @@ -2643,15 +2643,15 @@ entry: "$have_gas_1305": ; preds = %"$out_of_gas_1304", %"$have_gas_1300" %"$consume_1306" = sub i64 %"$gasrem_1302", 1 store i64 %"$consume_1306", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_20" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_18" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_1307" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_1308" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1307", 0 %"$accounting_tests.one_msg_envptr_1309" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1307", 1 %"$msg1_1310" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_1311" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1308"(i8* %"$accounting_tests.one_msg_envptr_1309", i8* %"$msg1_1310") - store %TName_List_Message* %"$accounting_tests.one_msg_call_1311", %TName_List_Message** %"$accounting_tests.one_msg_20", align 8 - %"$$accounting_tests.one_msg_20_1312" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_20", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_20_1312", %TName_List_Message** %msgs1, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1311", %TName_List_Message** %"$accounting_tests.one_msg_18", align 8 + %"$$accounting_tests.one_msg_18_1312" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_18", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_18_1312", %TName_List_Message** %msgs1, align 8 %"$msgs1_1313" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_1313_1314" = bitcast %TName_List_Message* %"$msgs1_1313" to i8* %"$_literal_cost_call_1315" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_1313_1314") @@ -2888,15 +2888,15 @@ entry: "$have_gas_1450": ; preds = %"$out_of_gas_1449", %"$have_gas_1445" %"$consume_1451" = sub i64 %"$gasrem_1447", 1 store i64 %"$consume_1451", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_18" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_20" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_1452" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_1453" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1452", 0 %"$accounting_tests.one_msg_envptr_1454" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1452", 1 %"$msg_final_1455" = load i8*, i8** %msg_final, align 8 %"$accounting_tests.one_msg_call_1456" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1453"(i8* %"$accounting_tests.one_msg_envptr_1454", i8* %"$msg_final_1455") - store %TName_List_Message* %"$accounting_tests.one_msg_call_1456", %TName_List_Message** %"$accounting_tests.one_msg_18", align 8 - %"$$accounting_tests.one_msg_18_1457" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_18", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_18_1457", %TName_List_Message** %msgs_final, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1456", %TName_List_Message** %"$accounting_tests.one_msg_20", align 8 + %"$$accounting_tests.one_msg_20_1457" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_20", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_20_1457", %TName_List_Message** %msgs_final, align 8 %"$msgs_final_1458" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 %"$$msgs_final_1458_1459" = bitcast %TName_List_Message* %"$msgs_final_1458" to i8* %"$_literal_cost_call_1460" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs_final_1458_1459") @@ -3545,15 +3545,15 @@ entry: "$have_gas_1820": ; preds = %"$out_of_gas_1819", %"$have_gas_1815" %"$consume_1821" = sub i64 %"$gasrem_1817", 1 store i64 %"$consume_1821", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_24" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_23" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_1822" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_1823" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1822", 0 %"$accounting_tests.one_msg_envptr_1824" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1822", 1 %"$msg2_1825" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_1826" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1823"(i8* %"$accounting_tests.one_msg_envptr_1824", i8* %"$msg2_1825") - store %TName_List_Message* %"$accounting_tests.one_msg_call_1826", %TName_List_Message** %"$accounting_tests.one_msg_24", align 8 - %"$$accounting_tests.one_msg_24_1827" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_24", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_24_1827", %TName_List_Message** %msgs_tmp, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1826", %TName_List_Message** %"$accounting_tests.one_msg_23", align 8 + %"$$accounting_tests.one_msg_23_1827" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_23", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_23_1827", %TName_List_Message** %msgs_tmp, align 8 %"$gasrem_1828" = load i64, i64* @_gasrem, align 8 %"$gascmp_1829" = icmp ugt i64 1, %"$gasrem_1828" br i1 %"$gascmp_1829", label %"$out_of_gas_1830", label %"$have_gas_1831" @@ -3687,15 +3687,15 @@ entry: "$have_gas_1898": ; preds = %"$out_of_gas_1897", %"$have_gas_1893" %"$consume_1899" = sub i64 %"$gasrem_1895", 1 store i64 %"$consume_1899", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_23" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_24" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_1900" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_1901" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1900", 0 %"$accounting_tests.one_msg_envptr_1902" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_1900", 1 %"$msg_final_1903" = load i8*, i8** %msg_final, align 8 %"$accounting_tests.one_msg_call_1904" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_1901"(i8* %"$accounting_tests.one_msg_envptr_1902", i8* %"$msg_final_1903") - store %TName_List_Message* %"$accounting_tests.one_msg_call_1904", %TName_List_Message** %"$accounting_tests.one_msg_23", align 8 - %"$$accounting_tests.one_msg_23_1905" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_23", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_23_1905", %TName_List_Message** %msgs_final, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_1904", %TName_List_Message** %"$accounting_tests.one_msg_24", align 8 + %"$$accounting_tests.one_msg_24_1905" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_24", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_24_1905", %TName_List_Message** %msgs_final, align 8 %"$msgs_final_1906" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 %"$$msgs_final_1906_1907" = bitcast %TName_List_Message* %"$msgs_final_1906" to i8* %"$_literal_cost_call_1908" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs_final_1906_1907") @@ -3901,15 +3901,15 @@ entry: "$have_gas_2010": ; preds = %"$out_of_gas_2009", %"$have_gas_2005" %"$consume_2011" = sub i64 %"$gasrem_2007", 1 store i64 %"$consume_2011", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_27" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_25" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_2012" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_2013" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2012", 0 %"$accounting_tests.one_msg_envptr_2014" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2012", 1 %"$msg1_2015" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_2016" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2013"(i8* %"$accounting_tests.one_msg_envptr_2014", i8* %"$msg1_2015") - store %TName_List_Message* %"$accounting_tests.one_msg_call_2016", %TName_List_Message** %"$accounting_tests.one_msg_27", align 8 - %"$$accounting_tests.one_msg_27_2017" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_27", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_27_2017", %TName_List_Message** %msgs1, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2016", %TName_List_Message** %"$accounting_tests.one_msg_25", align 8 + %"$$accounting_tests.one_msg_25_2017" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_25", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_25_2017", %TName_List_Message** %msgs1, align 8 %"$msgs1_2018" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_2018_2019" = bitcast %TName_List_Message* %"$msgs1_2018" to i8* %"$_literal_cost_call_2020" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_2018_2019") @@ -4146,15 +4146,15 @@ entry: "$have_gas_2155": ; preds = %"$out_of_gas_2154", %"$have_gas_2150" %"$consume_2156" = sub i64 %"$gasrem_2152", 1 store i64 %"$consume_2156", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_25" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_27" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_2157" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_2158" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2157", 0 %"$accounting_tests.one_msg_envptr_2159" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2157", 1 %"$msg_final_2160" = load i8*, i8** %msg_final, align 8 %"$accounting_tests.one_msg_call_2161" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2158"(i8* %"$accounting_tests.one_msg_envptr_2159", i8* %"$msg_final_2160") - store %TName_List_Message* %"$accounting_tests.one_msg_call_2161", %TName_List_Message** %"$accounting_tests.one_msg_25", align 8 - %"$$accounting_tests.one_msg_25_2162" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_25", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_25_2162", %TName_List_Message** %msgs_final, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2161", %TName_List_Message** %"$accounting_tests.one_msg_27", align 8 + %"$$accounting_tests.one_msg_27_2162" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_27", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_27_2162", %TName_List_Message** %msgs_final, align 8 %"$msgs_final_2163" = load %TName_List_Message*, %TName_List_Message** %msgs_final, align 8 %"$$msgs_final_2163_2164" = bitcast %TName_List_Message* %"$msgs_final_2163" to i8* %"$_literal_cost_call_2165" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs_final_2163_2164") @@ -4960,15 +4960,15 @@ entry: "$have_gas_2610": ; preds = %"$out_of_gas_2609", %"$have_gas_2605" %"$consume_2611" = sub i64 %"$gasrem_2607", 1 store i64 %"$consume_2611", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_30" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_29" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_2612" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_2613" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2612", 0 %"$accounting_tests.one_msg_envptr_2614" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2612", 1 %"$msg1_2615" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_2616" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2613"(i8* %"$accounting_tests.one_msg_envptr_2614", i8* %"$msg1_2615") - store %TName_List_Message* %"$accounting_tests.one_msg_call_2616", %TName_List_Message** %"$accounting_tests.one_msg_30", align 8 - %"$$accounting_tests.one_msg_30_2617" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_30", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_30_2617", %TName_List_Message** %msgs1, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2616", %TName_List_Message** %"$accounting_tests.one_msg_29", align 8 + %"$$accounting_tests.one_msg_29_2617" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_29", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_29_2617", %TName_List_Message** %msgs1, align 8 %"$msgs1_2618" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_2618_2619" = bitcast %TName_List_Message* %"$msgs1_2618" to i8* %"$_literal_cost_call_2620" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_2618_2619") @@ -5111,15 +5111,15 @@ entry: "$have_gas_2694": ; preds = %"$out_of_gas_2693", %"$have_gas_2689" %"$consume_2695" = sub i64 %"$gasrem_2691", 1 store i64 %"$consume_2695", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_29" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_30" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_2696" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_2697" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2696", 0 %"$accounting_tests.one_msg_envptr_2698" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_2696", 1 %"$msg2_2699" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_2700" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_2697"(i8* %"$accounting_tests.one_msg_envptr_2698", i8* %"$msg2_2699") - store %TName_List_Message* %"$accounting_tests.one_msg_call_2700", %TName_List_Message** %"$accounting_tests.one_msg_29", align 8 - %"$$accounting_tests.one_msg_29_2701" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_29", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_29_2701", %TName_List_Message** %msgs2, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_2700", %TName_List_Message** %"$accounting_tests.one_msg_30", align 8 + %"$$accounting_tests.one_msg_30_2701" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_30", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_30_2701", %TName_List_Message** %msgs2, align 8 %"$msgs2_2702" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_2702_2703" = bitcast %TName_List_Message* %"$msgs2_2702" to i8* %"$_literal_cost_call_2704" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_2702_2703") @@ -5700,15 +5700,15 @@ entry: "$have_gas_3023": ; preds = %"$out_of_gas_3022", %"$have_gas_3018" %"$consume_3024" = sub i64 %"$gasrem_3020", 1 store i64 %"$consume_3024", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_33" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_32" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3025" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3026" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3025", 0 %"$accounting_tests.one_msg_envptr_3027" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3025", 1 %"$msg1_3028" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_3029" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3026"(i8* %"$accounting_tests.one_msg_envptr_3027", i8* %"$msg1_3028") - store %TName_List_Message* %"$accounting_tests.one_msg_call_3029", %TName_List_Message** %"$accounting_tests.one_msg_33", align 8 - %"$$accounting_tests.one_msg_33_3030" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_33", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_33_3030", %TName_List_Message** %msgs1, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3029", %TName_List_Message** %"$accounting_tests.one_msg_32", align 8 + %"$$accounting_tests.one_msg_32_3030" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_32", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_32_3030", %TName_List_Message** %msgs1, align 8 %"$msgs1_3031" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_3031_3032" = bitcast %TName_List_Message* %"$msgs1_3031" to i8* %"$_literal_cost_call_3033" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_3031_3032") @@ -5843,15 +5843,15 @@ entry: "$have_gas_3106": ; preds = %"$out_of_gas_3105", %"$have_gas_3101" %"$consume_3107" = sub i64 %"$gasrem_3103", 1 store i64 %"$consume_3107", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_32" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_33" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3108" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3109" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3108", 0 %"$accounting_tests.one_msg_envptr_3110" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3108", 1 %"$msg2_3111" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_3112" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3109"(i8* %"$accounting_tests.one_msg_envptr_3110", i8* %"$msg2_3111") - store %TName_List_Message* %"$accounting_tests.one_msg_call_3112", %TName_List_Message** %"$accounting_tests.one_msg_32", align 8 - %"$$accounting_tests.one_msg_32_3113" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_32", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_32_3113", %TName_List_Message** %msgs2, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3112", %TName_List_Message** %"$accounting_tests.one_msg_33", align 8 + %"$$accounting_tests.one_msg_33_3113" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_33", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_33_3113", %TName_List_Message** %msgs2, align 8 %"$msgs2_3114" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_3114_3115" = bitcast %TName_List_Message* %"$msgs2_3114" to i8* %"$_literal_cost_call_3116" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_3114_3115") @@ -6032,15 +6032,15 @@ entry: "$have_gas_3215": ; preds = %"$out_of_gas_3214", %"$have_gas_3210" %"$consume_3216" = sub i64 %"$gasrem_3212", 1 store i64 %"$consume_3216", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_35" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_34" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3217" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3218" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3217", 0 %"$accounting_tests.one_msg_envptr_3219" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3217", 1 %"$msg1_3220" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_3221" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3218"(i8* %"$accounting_tests.one_msg_envptr_3219", i8* %"$msg1_3220") - store %TName_List_Message* %"$accounting_tests.one_msg_call_3221", %TName_List_Message** %"$accounting_tests.one_msg_35", align 8 - %"$$accounting_tests.one_msg_35_3222" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_35", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_35_3222", %TName_List_Message** %msgs1, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3221", %TName_List_Message** %"$accounting_tests.one_msg_34", align 8 + %"$$accounting_tests.one_msg_34_3222" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_34", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_34_3222", %TName_List_Message** %msgs1, align 8 %"$msgs1_3223" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_3223_3224" = bitcast %TName_List_Message* %"$msgs1_3223" to i8* %"$_literal_cost_call_3225" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_3223_3224") @@ -6148,15 +6148,15 @@ entry: "$have_gas_3284": ; preds = %"$out_of_gas_3283", %"$have_gas_3279" %"$consume_3285" = sub i64 %"$gasrem_3281", 1 store i64 %"$consume_3285", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_34" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_35" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3286" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3287" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3286", 0 %"$accounting_tests.one_msg_envptr_3288" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3286", 1 %"$msg2_3289" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_3290" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3287"(i8* %"$accounting_tests.one_msg_envptr_3288", i8* %"$msg2_3289") - store %TName_List_Message* %"$accounting_tests.one_msg_call_3290", %TName_List_Message** %"$accounting_tests.one_msg_34", align 8 - %"$$accounting_tests.one_msg_34_3291" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_34", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_34_3291", %TName_List_Message** %msgs2, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3290", %TName_List_Message** %"$accounting_tests.one_msg_35", align 8 + %"$$accounting_tests.one_msg_35_3291" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_35", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_35_3291", %TName_List_Message** %msgs2, align 8 %"$msgs2_3292" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_3292_3293" = bitcast %TName_List_Message* %"$msgs2_3292" to i8* %"$_literal_cost_call_3294" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_3292_3293") @@ -6314,15 +6314,15 @@ entry: "$have_gas_3378": ; preds = %"$out_of_gas_3377", %"$have_gas_3373" %"$consume_3379" = sub i64 %"$gasrem_3375", 1 store i64 %"$consume_3379", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_37" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_36" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3380" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3381" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3380", 0 %"$accounting_tests.one_msg_envptr_3382" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3380", 1 %"$msg1_3383" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_3384" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3381"(i8* %"$accounting_tests.one_msg_envptr_3382", i8* %"$msg1_3383") - store %TName_List_Message* %"$accounting_tests.one_msg_call_3384", %TName_List_Message** %"$accounting_tests.one_msg_37", align 8 - %"$$accounting_tests.one_msg_37_3385" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_37", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_37_3385", %TName_List_Message** %msgs1, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3384", %TName_List_Message** %"$accounting_tests.one_msg_36", align 8 + %"$$accounting_tests.one_msg_36_3385" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_36", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_36_3385", %TName_List_Message** %msgs1, align 8 %"$msgs1_3386" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_3386_3387" = bitcast %TName_List_Message* %"$msgs1_3386" to i8* %"$_literal_cost_call_3388" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_3386_3387") @@ -6483,15 +6483,15 @@ entry: "$have_gas_3478": ; preds = %"$out_of_gas_3477", %"$have_gas_3473" %"$consume_3479" = sub i64 %"$gasrem_3475", 1 store i64 %"$consume_3479", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_36" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_37" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3480" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3481" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3480", 0 %"$accounting_tests.one_msg_envptr_3482" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3480", 1 %"$msg2_3483" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_3484" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3481"(i8* %"$accounting_tests.one_msg_envptr_3482", i8* %"$msg2_3483") - store %TName_List_Message* %"$accounting_tests.one_msg_call_3484", %TName_List_Message** %"$accounting_tests.one_msg_36", align 8 - %"$$accounting_tests.one_msg_36_3485" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_36", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_36_3485", %TName_List_Message** %msgs2, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3484", %TName_List_Message** %"$accounting_tests.one_msg_37", align 8 + %"$$accounting_tests.one_msg_37_3485" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_37", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_37_3485", %TName_List_Message** %msgs2, align 8 %"$msgs2_3486" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_3486_3487" = bitcast %TName_List_Message* %"$msgs2_3486" to i8* %"$_literal_cost_call_3488" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_3486_3487") @@ -6651,15 +6651,15 @@ entry: "$have_gas_3572": ; preds = %"$out_of_gas_3571", %"$have_gas_3567" %"$consume_3573" = sub i64 %"$gasrem_3569", 1 store i64 %"$consume_3573", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_39" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_38" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3574" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3575" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3574", 0 %"$accounting_tests.one_msg_envptr_3576" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3574", 1 %"$msg1_3577" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_3578" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3575"(i8* %"$accounting_tests.one_msg_envptr_3576", i8* %"$msg1_3577") - store %TName_List_Message* %"$accounting_tests.one_msg_call_3578", %TName_List_Message** %"$accounting_tests.one_msg_39", align 8 - %"$$accounting_tests.one_msg_39_3579" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_39", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_39_3579", %TName_List_Message** %msgs1, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3578", %TName_List_Message** %"$accounting_tests.one_msg_38", align 8 + %"$$accounting_tests.one_msg_38_3579" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_38", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_38_3579", %TName_List_Message** %msgs1, align 8 %"$msgs1_3580" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_3580_3581" = bitcast %TName_List_Message* %"$msgs1_3580" to i8* %"$_literal_cost_call_3582" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_3580_3581") @@ -6793,15 +6793,15 @@ entry: "$have_gas_3658": ; preds = %"$out_of_gas_3657", %"$have_gas_3653" %"$consume_3659" = sub i64 %"$gasrem_3655", 1 store i64 %"$consume_3659", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_38" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_39" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3660" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3661" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3660", 0 %"$accounting_tests.one_msg_envptr_3662" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3660", 1 %"$msg2_3663" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_3664" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3661"(i8* %"$accounting_tests.one_msg_envptr_3662", i8* %"$msg2_3663") - store %TName_List_Message* %"$accounting_tests.one_msg_call_3664", %TName_List_Message** %"$accounting_tests.one_msg_38", align 8 - %"$$accounting_tests.one_msg_38_3665" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_38", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_38_3665", %TName_List_Message** %msgs2, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3664", %TName_List_Message** %"$accounting_tests.one_msg_39", align 8 + %"$$accounting_tests.one_msg_39_3665" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_39", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_39_3665", %TName_List_Message** %msgs2, align 8 %"$msgs2_3666" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_3666_3667" = bitcast %TName_List_Message* %"$msgs2_3666" to i8* %"$_literal_cost_call_3668" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_3666_3667") @@ -7298,15 +7298,15 @@ entry: "$have_gas_3948": ; preds = %"$out_of_gas_3947", %"$have_gas_3943" %"$consume_3949" = sub i64 %"$gasrem_3945", 1 store i64 %"$consume_3949", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_43" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_42" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_3950" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_3951" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3950", 0 %"$accounting_tests.one_msg_envptr_3952" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_3950", 1 %"$msg1_3953" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_3954" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_3951"(i8* %"$accounting_tests.one_msg_envptr_3952", i8* %"$msg1_3953") - store %TName_List_Message* %"$accounting_tests.one_msg_call_3954", %TName_List_Message** %"$accounting_tests.one_msg_43", align 8 - %"$$accounting_tests.one_msg_43_3955" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_43", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_43_3955", %TName_List_Message** %msgs1, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_3954", %TName_List_Message** %"$accounting_tests.one_msg_42", align 8 + %"$$accounting_tests.one_msg_42_3955" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_42", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_42_3955", %TName_List_Message** %msgs1, align 8 %"$msgs1_3956" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_3956_3957" = bitcast %TName_List_Message* %"$msgs1_3956" to i8* %"$_literal_cost_call_3958" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_3956_3957") @@ -7441,15 +7441,15 @@ entry: "$have_gas_4031": ; preds = %"$out_of_gas_4030", %"$have_gas_4026" %"$consume_4032" = sub i64 %"$gasrem_4028", 1 store i64 %"$consume_4032", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_42" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_43" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_4033" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_4034" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4033", 0 %"$accounting_tests.one_msg_envptr_4035" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4033", 1 %"$msg2_4036" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_4037" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4034"(i8* %"$accounting_tests.one_msg_envptr_4035", i8* %"$msg2_4036") - store %TName_List_Message* %"$accounting_tests.one_msg_call_4037", %TName_List_Message** %"$accounting_tests.one_msg_42", align 8 - %"$$accounting_tests.one_msg_42_4038" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_42", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_42_4038", %TName_List_Message** %msgs2, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_4037", %TName_List_Message** %"$accounting_tests.one_msg_43", align 8 + %"$$accounting_tests.one_msg_43_4038" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_43", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_43_4038", %TName_List_Message** %msgs2, align 8 %"$msgs2_4039" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_4039_4040" = bitcast %TName_List_Message* %"$msgs2_4039" to i8* %"$_literal_cost_call_4041" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_4039_4040") @@ -7607,15 +7607,15 @@ entry: "$have_gas_4125": ; preds = %"$out_of_gas_4124", %"$have_gas_4120" %"$consume_4126" = sub i64 %"$gasrem_4122", 1 store i64 %"$consume_4126", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_45" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_44" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_4127" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_4128" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4127", 0 %"$accounting_tests.one_msg_envptr_4129" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4127", 1 %"$msg1_4130" = load i8*, i8** %msg1, align 8 %"$accounting_tests.one_msg_call_4131" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4128"(i8* %"$accounting_tests.one_msg_envptr_4129", i8* %"$msg1_4130") - store %TName_List_Message* %"$accounting_tests.one_msg_call_4131", %TName_List_Message** %"$accounting_tests.one_msg_45", align 8 - %"$$accounting_tests.one_msg_45_4132" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_45", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_45_4132", %TName_List_Message** %msgs1, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_4131", %TName_List_Message** %"$accounting_tests.one_msg_44", align 8 + %"$$accounting_tests.one_msg_44_4132" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_44", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_44_4132", %TName_List_Message** %msgs1, align 8 %"$msgs1_4133" = load %TName_List_Message*, %TName_List_Message** %msgs1, align 8 %"$$msgs1_4133_4134" = bitcast %TName_List_Message* %"$msgs1_4133" to i8* %"$_literal_cost_call_4135" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs1_4133_4134") @@ -7776,15 +7776,15 @@ entry: "$have_gas_4225": ; preds = %"$out_of_gas_4224", %"$have_gas_4220" %"$consume_4226" = sub i64 %"$gasrem_4222", 1 store i64 %"$consume_4226", i64* @_gasrem, align 8 - %"$accounting_tests.one_msg_44" = alloca %TName_List_Message*, align 8 + %"$accounting_tests.one_msg_45" = alloca %TName_List_Message*, align 8 %"$accounting_tests.one_msg_4227" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @accounting_tests.one_msg, align 8 %"$accounting_tests.one_msg_fptr_4228" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4227", 0 %"$accounting_tests.one_msg_envptr_4229" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$accounting_tests.one_msg_4227", 1 %"$msg2_4230" = load i8*, i8** %msg2, align 8 %"$accounting_tests.one_msg_call_4231" = call %TName_List_Message* %"$accounting_tests.one_msg_fptr_4228"(i8* %"$accounting_tests.one_msg_envptr_4229", i8* %"$msg2_4230") - store %TName_List_Message* %"$accounting_tests.one_msg_call_4231", %TName_List_Message** %"$accounting_tests.one_msg_44", align 8 - %"$$accounting_tests.one_msg_44_4232" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_44", align 8 - store %TName_List_Message* %"$$accounting_tests.one_msg_44_4232", %TName_List_Message** %msgs2, align 8 + store %TName_List_Message* %"$accounting_tests.one_msg_call_4231", %TName_List_Message** %"$accounting_tests.one_msg_45", align 8 + %"$$accounting_tests.one_msg_45_4232" = load %TName_List_Message*, %TName_List_Message** %"$accounting_tests.one_msg_45", align 8 + store %TName_List_Message* %"$$accounting_tests.one_msg_45_4232", %TName_List_Message** %msgs2, align 8 %"$msgs2_4233" = load %TName_List_Message*, %TName_List_Message** %msgs2, align 8 %"$$msgs2_4233_4234" = bitcast %TName_List_Message* %"$msgs2_4233" to i8* %"$_literal_cost_call_4235" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_121", i8* %"$$msgs2_4233_4234") diff --git a/tests/codegen/contr/gold/accounting_tests_support.scilla.gold b/tests/codegen/contr/gold/accounting_tests_support.scilla.gold index dc5aa330..d8142ae5 100644 --- a/tests/codegen/contr/gold/accounting_tests_support.scilla.gold +++ b/tests/codegen/contr/gold/accounting_tests_support.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'AccountingTestsSupport' source_filename = "AccountingTestsSupport" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/crowdfunding.scilla.gold b/tests/codegen/contr/gold/crowdfunding.scilla.gold index 23056c46..94840561 100644 --- a/tests/codegen/contr/gold/crowdfunding.scilla.gold +++ b/tests/codegen/contr/gold/crowdfunding.scilla.gold @@ -3,18 +3,18 @@ ; gas_remaining: 4001999 ; ModuleID = 'Crowdfunding' source_filename = "Crowdfunding" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_44" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_19" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_76" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_75"** } +%"$TyDescrTy_ADTTyp_51" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_50"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_75" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_77"**, %"$TyDescrTy_ADTTyp_76"* } -%"$TyDescrTy_ADTTyp_Constr_77" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$TyDescr_MapTyp_82" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } -%"$TyDescr_AddrTyp_85" = type { i32, %"$TyDescr_AddrFieldTyp_84"* } -%"$TyDescr_AddrFieldTyp_84" = type { %TyDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_50" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_52"**, %"$TyDescrTy_ADTTyp_51"* } +%"$TyDescrTy_ADTTyp_Constr_52" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$TyDescr_MapTyp_57" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } +%"$TyDescr_AddrTyp_60" = type { i32, %"$TyDescr_AddrFieldTyp_59"* } +%"$TyDescr_AddrFieldTyp_59" = type { %TyDescrString, %_TyDescrTy_Typ* } %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> @@ -24,24 +24,19 @@ target triple = "x86_64-unknown-linux-gnu" %"TName_Option_Map_(ByStr20)_(Uint128)" = type { i8, %"CName_Some_Map_(ByStr20)_(Uint128)"*, %"CName_None_Map_(ByStr20)_(Uint128)"* } %"CName_Some_Map_(ByStr20)_(Uint128)" = type <{ i8, %Map_ByStr20_Uint128* }> %"CName_None_Map_(ByStr20)_(Uint128)" = type <{ i8 }> -%Uint128 = type { i128 } %Map_ByStr20_Uint128 = type { [20 x i8], %Uint128 } +%Uint128 = type { i128 } %Int32 = type { i32 } %Uint32 = type { i32 } -%"$ParamDescr_1804" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_1653" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1805" = type { %ParamDescrString, i32, %"$ParamDescr_1804"* } -%"$$fundef_32_env_134" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, i8* } -%"$$fundef_30_env_135" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } } -%"$$fundef_38_env_136" = type { %Map_ByStr20_Uint128*, [20 x i8] } -%"$$fundef_36_env_137" = type { %Map_ByStr20_Uint128* } -%"$$fundef_34_env_138" = type {} -%"$$fundef_40_env_139" = type {} -%"$$fundef_20_env_140" = type {} -%"$$fundef_24_env_141" = type { %TName_Bool* } -%"$$fundef_22_env_142" = type {} -%"$$fundef_28_env_143" = type { %TName_Bool* } -%"$$fundef_26_env_144" = type {} +%"$TransDescr_1654" = type { %ParamDescrString, i32, %"$ParamDescr_1653"* } +%"$$fundef_11_env_109" = type { { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } } +%"$$fundef_13_env_110" = type {} +%"$$fundef_15_env_111" = type {} +%"$$fundef_5_env_112" = type {} +%"$$fundef_7_env_113" = type {} +%"$$fundef_9_env_114" = type {} %BCVName = type { i8*, i32 } %String = type { i8*, i32 } %TName_Option_Uint128 = type { i8, %CName_Some_Uint128*, %CName_None_Uint128* } @@ -50,95 +45,95 @@ target triple = "x86_64-unknown-linux-gnu" @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_45" = global %"$TyDescrTy_PrimTyp_44" zeroinitializer -@"$TyDescr_Int32_46" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Int32_Prim_45" to i8*) } -@"$TyDescr_Uint32_Prim_47" = global %"$TyDescrTy_PrimTyp_44" { i32 1, i32 0 } -@"$TyDescr_Uint32_48" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Uint32_Prim_47" to i8*) } -@"$TyDescr_Int64_Prim_49" = global %"$TyDescrTy_PrimTyp_44" { i32 0, i32 1 } -@"$TyDescr_Int64_50" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Int64_Prim_49" to i8*) } -@"$TyDescr_Uint64_Prim_51" = global %"$TyDescrTy_PrimTyp_44" { i32 1, i32 1 } -@"$TyDescr_Uint64_52" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Uint64_Prim_51" to i8*) } -@"$TyDescr_Int128_Prim_53" = global %"$TyDescrTy_PrimTyp_44" { i32 0, i32 2 } -@"$TyDescr_Int128_54" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Int128_Prim_53" to i8*) } -@"$TyDescr_Uint128_Prim_55" = global %"$TyDescrTy_PrimTyp_44" { i32 1, i32 2 } -@"$TyDescr_Uint128_56" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Uint128_Prim_55" to i8*) } -@"$TyDescr_Int256_Prim_57" = global %"$TyDescrTy_PrimTyp_44" { i32 0, i32 3 } -@"$TyDescr_Int256_58" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Int256_Prim_57" to i8*) } -@"$TyDescr_Uint256_Prim_59" = global %"$TyDescrTy_PrimTyp_44" { i32 1, i32 3 } -@"$TyDescr_Uint256_60" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Uint256_Prim_59" to i8*) } -@"$TyDescr_String_Prim_61" = global %"$TyDescrTy_PrimTyp_44" { i32 2, i32 0 } -@"$TyDescr_String_62" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_String_Prim_61" to i8*) } -@"$TyDescr_Bnum_Prim_63" = global %"$TyDescrTy_PrimTyp_44" { i32 3, i32 0 } -@"$TyDescr_Bnum_64" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Bnum_Prim_63" to i8*) } -@"$TyDescr_Message_Prim_65" = global %"$TyDescrTy_PrimTyp_44" { i32 4, i32 0 } -@"$TyDescr_Message_66" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Message_Prim_65" to i8*) } -@"$TyDescr_Event_Prim_67" = global %"$TyDescrTy_PrimTyp_44" { i32 5, i32 0 } -@"$TyDescr_Event_68" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Event_Prim_67" to i8*) } -@"$TyDescr_Exception_Prim_69" = global %"$TyDescrTy_PrimTyp_44" { i32 6, i32 0 } -@"$TyDescr_Exception_70" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Exception_Prim_69" to i8*) } -@"$TyDescr_Bystr_Prim_71" = global %"$TyDescrTy_PrimTyp_44" { i32 7, i32 0 } -@"$TyDescr_Bystr_72" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Bystr_Prim_71" to i8*) } -@"$TyDescr_Bystr20_Prim_73" = global %"$TyDescrTy_PrimTyp_44" { i32 8, i32 20 } -@"$TyDescr_Bystr20_74" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_44"* @"$TyDescr_Bystr20_Prim_73" to i8*) } -@"$TyDescr_ADT_Option_Uint128_78" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Option_Uint128_ADTTyp_Specl_96" to i8*) } -@"$TyDescr_ADT_Option_Map_(ByStr20)_(Uint128)_79" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_105" to i8*) } -@"$TyDescr_ADT_List_Message_80" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_List_Message_ADTTyp_Specl_117" to i8*) } -@"$TyDescr_ADT_Bool_81" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Bool_ADTTyp_Specl_129" to i8*) } -@"$TyDescr_Map_83" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_82"* @"$TyDescr_MapTyp_132" to i8*) } -@"$TyDescr_Addr_86" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_85"* @"$TyDescr_AddrFields_133" to i8*) } -@"$TyDescr_Option_ADTTyp_87" = unnamed_addr constant %"$TyDescrTy_ADTTyp_76" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_107", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_75"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_75"*], [2 x %"$TyDescrTy_ADTTyp_Specl_75"*]* @"$TyDescr_Option_ADTTyp_m_specls_106", i32 0, i32 0) } -@"$TyDescr_Option_Some_Uint128_Constr_m_args_88" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Uint128_56"] -@"$TyDescr_ADT_Some_89" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_Uint128_ADTTyp_Constr_90" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_89", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Uint128_Constr_m_args_88", i32 0, i32 0) } -@"$TyDescr_Option_None_Uint128_Constr_m_args_91" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_92" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_Uint128_ADTTyp_Constr_93" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_92", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Uint128_Constr_m_args_91", i32 0, i32 0) } -@"$TyDescr_Option_Uint128_ADTTyp_Specl_m_constrs_94" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_77"*] [%"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Option_Some_Uint128_ADTTyp_Constr_90", %"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Option_None_Uint128_ADTTyp_Constr_93"] -@"$TyDescr_Option_Uint128_ADTTyp_Specl_m_TArgs_95" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Uint128_56"] -@"$TyDescr_Option_Uint128_ADTTyp_Specl_96" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_75" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Uint128_ADTTyp_Specl_m_TArgs_95", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_77"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_77"*], [2 x %"$TyDescrTy_ADTTyp_Constr_77"*]* @"$TyDescr_Option_Uint128_ADTTyp_Specl_m_constrs_94", i32 0, i32 0), %"$TyDescrTy_ADTTyp_76"* @"$TyDescr_Option_ADTTyp_87" } -@"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_Constr_m_args_97" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_83"] -@"$TyDescr_ADT_Some_98" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_99" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_98", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_Constr_m_args_97", i32 0, i32 0) } -@"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_Constr_m_args_100" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_101" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_102" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_101", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_Constr_m_args_100", i32 0, i32 0) } -@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_constrs_103" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_77"*] [%"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_99", %"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_102"] -@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_TArgs_104" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_83"] -@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_105" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_75" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_TArgs_104", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_77"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_77"*], [2 x %"$TyDescrTy_ADTTyp_Constr_77"*]* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_constrs_103", i32 0, i32 0), %"$TyDescrTy_ADTTyp_76"* @"$TyDescr_Option_ADTTyp_87" } -@"$TyDescr_Option_ADTTyp_m_specls_106" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_75"*] [%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Option_Uint128_ADTTyp_Specl_96", %"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_105"] -@"$TyDescr_ADT_Option_107" = unnamed_addr constant [6 x i8] c"Option" -@"$TyDescr_List_ADTTyp_108" = unnamed_addr constant %"$TyDescrTy_ADTTyp_76" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_119", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_75"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_75"*], [1 x %"$TyDescrTy_ADTTyp_Specl_75"*]* @"$TyDescr_List_ADTTyp_m_specls_118", i32 0, i32 0) } -@"$TyDescr_List_Cons_Message_Constr_m_args_109" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_66", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80"] -@"$TyDescr_ADT_Cons_110" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_Message_ADTTyp_Constr_111" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_110", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_109", i32 0, i32 0) } -@"$TyDescr_List_Nil_Message_Constr_m_args_112" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_113" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_Message_ADTTyp_Constr_114" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_113", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_112", i32 0, i32 0) } -@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_115" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_77"*] [%"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_111", %"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_114"] -@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_116" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_66"] -@"$TyDescr_List_Message_ADTTyp_Specl_117" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_75" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_116", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_77"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_77"*], [2 x %"$TyDescrTy_ADTTyp_Constr_77"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_115", i32 0, i32 0), %"$TyDescrTy_ADTTyp_76"* @"$TyDescr_List_ADTTyp_108" } -@"$TyDescr_List_ADTTyp_m_specls_118" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_75"*] [%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_List_Message_ADTTyp_Specl_117"] -@"$TyDescr_ADT_List_119" = unnamed_addr constant [4 x i8] c"List" -@"$TyDescr_Bool_ADTTyp_120" = unnamed_addr constant %"$TyDescrTy_ADTTyp_76" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_131", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_75"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_75"*], [1 x %"$TyDescrTy_ADTTyp_Specl_75"*]* @"$TyDescr_Bool_ADTTyp_m_specls_130", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_121" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_122" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_123" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_122", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_121", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_124" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_125" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_126" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_77" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_125", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_124", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_127" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_77"*] [%"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Bool_True_ADTTyp_Constr_123", %"$TyDescrTy_ADTTyp_Constr_77"* @"$TyDescr_Bool_False_ADTTyp_Constr_126"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_128" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_129" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_75" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_128", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_77"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_77"*], [2 x %"$TyDescrTy_ADTTyp_Constr_77"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_127", i32 0, i32 0), %"$TyDescrTy_ADTTyp_76"* @"$TyDescr_Bool_ADTTyp_120" } -@"$TyDescr_Bool_ADTTyp_m_specls_130" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_75"*] [%"$TyDescrTy_ADTTyp_Specl_75"* @"$TyDescr_Bool_ADTTyp_Specl_129"] -@"$TyDescr_ADT_Bool_131" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_MapTyp_132" = unnamed_addr constant %"$TyDescr_MapTyp_82" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ* @"$TyDescr_Uint128_56" } -@"$TyDescr_AddrFields_133" = unnamed_addr constant %"$TyDescr_AddrTyp_85" { i32 -1, %"$TyDescr_AddrFieldTyp_84"* null } -@BoolUtils.andb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer -@BoolUtils.orb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer +@"$TyDescr_Int32_Prim_20" = global %"$TyDescrTy_PrimTyp_19" zeroinitializer +@"$TyDescr_Int32_21" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Int32_Prim_20" to i8*) } +@"$TyDescr_Uint32_Prim_22" = global %"$TyDescrTy_PrimTyp_19" { i32 1, i32 0 } +@"$TyDescr_Uint32_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Uint32_Prim_22" to i8*) } +@"$TyDescr_Int64_Prim_24" = global %"$TyDescrTy_PrimTyp_19" { i32 0, i32 1 } +@"$TyDescr_Int64_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Int64_Prim_24" to i8*) } +@"$TyDescr_Uint64_Prim_26" = global %"$TyDescrTy_PrimTyp_19" { i32 1, i32 1 } +@"$TyDescr_Uint64_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Uint64_Prim_26" to i8*) } +@"$TyDescr_Int128_Prim_28" = global %"$TyDescrTy_PrimTyp_19" { i32 0, i32 2 } +@"$TyDescr_Int128_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Int128_Prim_28" to i8*) } +@"$TyDescr_Uint128_Prim_30" = global %"$TyDescrTy_PrimTyp_19" { i32 1, i32 2 } +@"$TyDescr_Uint128_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Uint128_Prim_30" to i8*) } +@"$TyDescr_Int256_Prim_32" = global %"$TyDescrTy_PrimTyp_19" { i32 0, i32 3 } +@"$TyDescr_Int256_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Int256_Prim_32" to i8*) } +@"$TyDescr_Uint256_Prim_34" = global %"$TyDescrTy_PrimTyp_19" { i32 1, i32 3 } +@"$TyDescr_Uint256_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Uint256_Prim_34" to i8*) } +@"$TyDescr_String_Prim_36" = global %"$TyDescrTy_PrimTyp_19" { i32 2, i32 0 } +@"$TyDescr_String_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_String_Prim_36" to i8*) } +@"$TyDescr_Bnum_Prim_38" = global %"$TyDescrTy_PrimTyp_19" { i32 3, i32 0 } +@"$TyDescr_Bnum_39" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Bnum_Prim_38" to i8*) } +@"$TyDescr_Message_Prim_40" = global %"$TyDescrTy_PrimTyp_19" { i32 4, i32 0 } +@"$TyDescr_Message_41" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Message_Prim_40" to i8*) } +@"$TyDescr_Event_Prim_42" = global %"$TyDescrTy_PrimTyp_19" { i32 5, i32 0 } +@"$TyDescr_Event_43" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Event_Prim_42" to i8*) } +@"$TyDescr_Exception_Prim_44" = global %"$TyDescrTy_PrimTyp_19" { i32 6, i32 0 } +@"$TyDescr_Exception_45" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Exception_Prim_44" to i8*) } +@"$TyDescr_Bystr_Prim_46" = global %"$TyDescrTy_PrimTyp_19" { i32 7, i32 0 } +@"$TyDescr_Bystr_47" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Bystr_Prim_46" to i8*) } +@"$TyDescr_Bystr20_Prim_48" = global %"$TyDescrTy_PrimTyp_19" { i32 8, i32 20 } +@"$TyDescr_Bystr20_49" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_19"* @"$TyDescr_Bystr20_Prim_48" to i8*) } +@"$TyDescr_ADT_Option_Uint128_53" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Option_Uint128_ADTTyp_Specl_71" to i8*) } +@"$TyDescr_ADT_Option_Map_(ByStr20)_(Uint128)_54" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_80" to i8*) } +@"$TyDescr_ADT_List_Message_55" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_List_Message_ADTTyp_Specl_92" to i8*) } +@"$TyDescr_ADT_Bool_56" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Bool_ADTTyp_Specl_104" to i8*) } +@"$TyDescr_Map_58" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_57"* @"$TyDescr_MapTyp_107" to i8*) } +@"$TyDescr_Addr_61" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_60"* @"$TyDescr_AddrFields_108" to i8*) } +@"$TyDescr_Option_ADTTyp_62" = unnamed_addr constant %"$TyDescrTy_ADTTyp_51" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_82", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_50"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_50"*], [2 x %"$TyDescrTy_ADTTyp_Specl_50"*]* @"$TyDescr_Option_ADTTyp_m_specls_81", i32 0, i32 0) } +@"$TyDescr_Option_Some_Uint128_Constr_m_args_63" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Uint128_31"] +@"$TyDescr_ADT_Some_64" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_Uint128_ADTTyp_Constr_65" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_64", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Uint128_Constr_m_args_63", i32 0, i32 0) } +@"$TyDescr_Option_None_Uint128_Constr_m_args_66" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_67" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_Uint128_ADTTyp_Constr_68" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_67", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Uint128_Constr_m_args_66", i32 0, i32 0) } +@"$TyDescr_Option_Uint128_ADTTyp_Specl_m_constrs_69" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_52"*] [%"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Option_Some_Uint128_ADTTyp_Constr_65", %"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Option_None_Uint128_ADTTyp_Constr_68"] +@"$TyDescr_Option_Uint128_ADTTyp_Specl_m_TArgs_70" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Uint128_31"] +@"$TyDescr_Option_Uint128_ADTTyp_Specl_71" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_50" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Uint128_ADTTyp_Specl_m_TArgs_70", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_52"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_52"*], [2 x %"$TyDescrTy_ADTTyp_Constr_52"*]* @"$TyDescr_Option_Uint128_ADTTyp_Specl_m_constrs_69", i32 0, i32 0), %"$TyDescrTy_ADTTyp_51"* @"$TyDescr_Option_ADTTyp_62" } +@"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_Constr_m_args_72" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_58"] +@"$TyDescr_ADT_Some_73" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_74" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_73", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_Constr_m_args_72", i32 0, i32 0) } +@"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_Constr_m_args_75" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_76" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_77" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_76", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_Constr_m_args_75", i32 0, i32 0) } +@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_constrs_78" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_52"*] [%"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Option_Some_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_74", %"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Option_None_Map_(ByStr20)_(Uint128)_ADTTyp_Constr_77"] +@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_TArgs_79" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_58"] +@"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_80" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_50" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_TArgs_79", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_52"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_52"*], [2 x %"$TyDescrTy_ADTTyp_Constr_52"*]* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_m_constrs_78", i32 0, i32 0), %"$TyDescrTy_ADTTyp_51"* @"$TyDescr_Option_ADTTyp_62" } +@"$TyDescr_Option_ADTTyp_m_specls_81" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_50"*] [%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Option_Uint128_ADTTyp_Specl_71", %"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Option_Map_(ByStr20)_(Uint128)_ADTTyp_Specl_80"] +@"$TyDescr_ADT_Option_82" = unnamed_addr constant [6 x i8] c"Option" +@"$TyDescr_List_ADTTyp_83" = unnamed_addr constant %"$TyDescrTy_ADTTyp_51" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_94", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_50"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_50"*], [1 x %"$TyDescrTy_ADTTyp_Specl_50"*]* @"$TyDescr_List_ADTTyp_m_specls_93", i32 0, i32 0) } +@"$TyDescr_List_Cons_Message_Constr_m_args_84" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_41", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55"] +@"$TyDescr_ADT_Cons_85" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_Message_ADTTyp_Constr_86" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_85", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_84", i32 0, i32 0) } +@"$TyDescr_List_Nil_Message_Constr_m_args_87" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_88" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_Message_ADTTyp_Constr_89" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_88", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_87", i32 0, i32 0) } +@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_90" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_52"*] [%"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_86", %"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_89"] +@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_91" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_41"] +@"$TyDescr_List_Message_ADTTyp_Specl_92" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_50" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_91", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_52"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_52"*], [2 x %"$TyDescrTy_ADTTyp_Constr_52"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_90", i32 0, i32 0), %"$TyDescrTy_ADTTyp_51"* @"$TyDescr_List_ADTTyp_83" } +@"$TyDescr_List_ADTTyp_m_specls_93" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_50"*] [%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_List_Message_ADTTyp_Specl_92"] +@"$TyDescr_ADT_List_94" = unnamed_addr constant [4 x i8] c"List" +@"$TyDescr_Bool_ADTTyp_95" = unnamed_addr constant %"$TyDescrTy_ADTTyp_51" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_106", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_50"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_50"*], [1 x %"$TyDescrTy_ADTTyp_Specl_50"*]* @"$TyDescr_Bool_ADTTyp_m_specls_105", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_96" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_97" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_98" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_97", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_96", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_99" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_100" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_101" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_52" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_100", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_99", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_102" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_52"*] [%"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Bool_True_ADTTyp_Constr_98", %"$TyDescrTy_ADTTyp_Constr_52"* @"$TyDescr_Bool_False_ADTTyp_Constr_101"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_103" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_104" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_50" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_103", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_52"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_52"*], [2 x %"$TyDescrTy_ADTTyp_Constr_52"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_102", i32 0, i32 0), %"$TyDescrTy_ADTTyp_51"* @"$TyDescr_Bool_ADTTyp_95" } +@"$TyDescr_Bool_ADTTyp_m_specls_105" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_50"*] [%"$TyDescrTy_ADTTyp_Specl_50"* @"$TyDescr_Bool_ADTTyp_Specl_104"] +@"$TyDescr_ADT_Bool_106" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_MapTyp_107" = unnamed_addr constant %"$TyDescr_MapTyp_57" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ* @"$TyDescr_Uint128_31" } +@"$TyDescr_AddrFields_108" = unnamed_addr constant %"$TyDescr_AddrTyp_60" { i32 -1, %"$TyDescr_AddrFieldTyp_59"* null } +@BoolUtils.andb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer +@BoolUtils.orb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer @BoolUtils.negb = global { %TName_Bool* (i8*, %TName_Bool*)*, i8* } zeroinitializer @crowdfunding.one_msg = global { %TName_List_Message* (i8*, i8*)*, i8* } zeroinitializer -@crowdfunding.check_update = global { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } zeroinitializer -@crowdfunding.blk_leq = global { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } zeroinitializer +@crowdfunding.check_update = global { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* } zeroinitializer +@crowdfunding.blk_leq = global { %TName_Bool* (i8*, i8*, i8*)*, i8* } zeroinitializer @crowdfunding.accepted_code = global %Int32 zeroinitializer @crowdfunding.missed_deadline_code = global %Int32 zeroinitializer @crowdfunding.already_backed_code = global %Int32 zeroinitializer @@ -154,593 +149,336 @@ target triple = "x86_64-unknown-linux-gnu" @_cparam_owner = global [20 x i8] zeroinitializer @_cparam_max_block = global i8* null @_cparam_goal = global %Uint128 zeroinitializer -@"$backers_556" = unnamed_addr constant [8 x i8] c"backers\00" -@"$funded_568" = unnamed_addr constant [7 x i8] c"funded\00" -@"$read_blockchain_579" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" -@"$backers_616" = unnamed_addr constant [8 x i8] c"backers\00" -@"$stringlit_680" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_685" = unnamed_addr constant [15 x i8] c"DonationFailure" -@"$stringlit_688" = unnamed_addr constant [5 x i8] c"donor" -@"$stringlit_695" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_702" = unnamed_addr constant [4 x i8] c"code" -@"$backers_734" = unnamed_addr constant [8 x i8] c"backers\00" -@"$stringlit_754" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_759" = unnamed_addr constant [15 x i8] c"DonationSuccess" -@"$stringlit_762" = unnamed_addr constant [5 x i8] c"donor" -@"$stringlit_769" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_776" = unnamed_addr constant [4 x i8] c"code" -@"$stringlit_808" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_813" = unnamed_addr constant [15 x i8] c"DonationFailure" -@"$stringlit_816" = unnamed_addr constant [5 x i8] c"donor" -@"$stringlit_823" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_830" = unnamed_addr constant [4 x i8] c"code" -@"$stringlit_900" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_905" = unnamed_addr constant [15 x i8] c"GetFundsFailure" -@"$stringlit_908" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_915" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_922" = unnamed_addr constant [4 x i8] c"code" -@"$read_blockchain_948" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" -@"$_balance_989" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$stringlit_1080" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1085" = unnamed_addr constant [15 x i8] c"GetFundsFailure" -@"$stringlit_1088" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1095" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1102" = unnamed_addr constant [4 x i8] c"code" -@"$funded_1145" = unnamed_addr constant [7 x i8] c"funded\00" -@"$stringlit_1159" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1164" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_1167" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1175" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1211" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1216" = unnamed_addr constant [15 x i8] c"GetFundsSuccess" -@"$stringlit_1219" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1227" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1235" = unnamed_addr constant [4 x i8] c"code" -@"$read_blockchain_1279" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" -@"$stringlit_1321" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1326" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" -@"$stringlit_1329" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1336" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1343" = unnamed_addr constant [4 x i8] c"code" -@"$backers_1364" = unnamed_addr constant [8 x i8] c"backers\00" -@"$_balance_1380" = unnamed_addr constant [9 x i8] c"_balance\00" -@"$funded_1395" = unnamed_addr constant [7 x i8] c"funded\00" -@"$stringlit_1522" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1527" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" -@"$stringlit_1530" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1537" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1544" = unnamed_addr constant [4 x i8] c"code" -@"$stringlit_1605" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1610" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" -@"$stringlit_1613" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1620" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1627" = unnamed_addr constant [4 x i8] c"code" -@"$backers_1680" = unnamed_addr constant [8 x i8] c"backers\00" -@"$stringlit_1694" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_1699" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_1702" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_1709" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_1745" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1750" = unnamed_addr constant [16 x i8] c"ClaimBackSuccess" -@"$stringlit_1753" = unnamed_addr constant [6 x i8] c"caller" -@"$stringlit_1760" = unnamed_addr constant [6 x i8] c"amount" -@"$stringlit_1768" = unnamed_addr constant [4 x i8] c"code" -@_tydescr_table = constant [21 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80", %_TyDescrTy_Typ* @"$TyDescr_Event_68", %_TyDescrTy_Typ* @"$TyDescr_Int64_50", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(ByStr20)_(Uint128)_79", %_TyDescrTy_Typ* @"$TyDescr_Addr_86", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ* @"$TyDescr_Uint256_60", %_TyDescrTy_Typ* @"$TyDescr_Uint32_48", %_TyDescrTy_Typ* @"$TyDescr_Uint64_52", %_TyDescrTy_Typ* @"$TyDescr_Bnum_64", %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ* @"$TyDescr_Exception_70", %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ* @"$TyDescr_Int256_58", %_TyDescrTy_Typ* @"$TyDescr_Int128_54", %_TyDescrTy_Typ* @"$TyDescr_Map_83", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_78", %_TyDescrTy_Typ* @"$TyDescr_Bystr_72", %_TyDescrTy_Typ* @"$TyDescr_Message_66", %_TyDescrTy_Typ* @"$TyDescr_Int32_46"] +@"$backers_439" = unnamed_addr constant [8 x i8] c"backers\00" +@"$funded_451" = unnamed_addr constant [7 x i8] c"funded\00" +@"$read_blockchain_462" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" +@"$backers_494" = unnamed_addr constant [8 x i8] c"backers\00" +@"$stringlit_549" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_554" = unnamed_addr constant [15 x i8] c"DonationFailure" +@"$stringlit_557" = unnamed_addr constant [5 x i8] c"donor" +@"$stringlit_564" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_571" = unnamed_addr constant [4 x i8] c"code" +@"$backers_603" = unnamed_addr constant [8 x i8] c"backers\00" +@"$stringlit_623" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_628" = unnamed_addr constant [15 x i8] c"DonationSuccess" +@"$stringlit_631" = unnamed_addr constant [5 x i8] c"donor" +@"$stringlit_638" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_645" = unnamed_addr constant [4 x i8] c"code" +@"$stringlit_677" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_682" = unnamed_addr constant [15 x i8] c"DonationFailure" +@"$stringlit_685" = unnamed_addr constant [5 x i8] c"donor" +@"$stringlit_692" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_699" = unnamed_addr constant [4 x i8] c"code" +@"$stringlit_769" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_774" = unnamed_addr constant [15 x i8] c"GetFundsFailure" +@"$stringlit_777" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_784" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_791" = unnamed_addr constant [4 x i8] c"code" +@"$read_blockchain_817" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" +@"$_balance_853" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$stringlit_939" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_944" = unnamed_addr constant [15 x i8] c"GetFundsFailure" +@"$stringlit_947" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_954" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_961" = unnamed_addr constant [4 x i8] c"code" +@"$funded_1004" = unnamed_addr constant [7 x i8] c"funded\00" +@"$stringlit_1018" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1023" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_1026" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1034" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_1070" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1075" = unnamed_addr constant [15 x i8] c"GetFundsSuccess" +@"$stringlit_1078" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1086" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1094" = unnamed_addr constant [4 x i8] c"code" +@"$read_blockchain_1138" = unnamed_addr constant [11 x i8] c"BLOCKNUMBER" +@"$stringlit_1180" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1185" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" +@"$stringlit_1188" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1195" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1202" = unnamed_addr constant [4 x i8] c"code" +@"$backers_1223" = unnamed_addr constant [8 x i8] c"backers\00" +@"$_balance_1239" = unnamed_addr constant [9 x i8] c"_balance\00" +@"$funded_1254" = unnamed_addr constant [7 x i8] c"funded\00" +@"$stringlit_1371" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1376" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" +@"$stringlit_1379" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1386" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1393" = unnamed_addr constant [4 x i8] c"code" +@"$stringlit_1454" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1459" = unnamed_addr constant [16 x i8] c"ClaimBackFailure" +@"$stringlit_1462" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1469" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1476" = unnamed_addr constant [4 x i8] c"code" +@"$backers_1529" = unnamed_addr constant [8 x i8] c"backers\00" +@"$stringlit_1543" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_1548" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_1551" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_1558" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_1594" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1599" = unnamed_addr constant [16 x i8] c"ClaimBackSuccess" +@"$stringlit_1602" = unnamed_addr constant [6 x i8] c"caller" +@"$stringlit_1609" = unnamed_addr constant [6 x i8] c"amount" +@"$stringlit_1617" = unnamed_addr constant [4 x i8] c"code" +@_tydescr_table = constant [21 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55", %_TyDescrTy_Typ* @"$TyDescr_Event_43", %_TyDescrTy_Typ* @"$TyDescr_Int64_25", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(ByStr20)_(Uint128)_54", %_TyDescrTy_Typ* @"$TyDescr_Addr_61", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ* @"$TyDescr_Uint256_35", %_TyDescrTy_Typ* @"$TyDescr_Uint32_23", %_TyDescrTy_Typ* @"$TyDescr_Uint64_27", %_TyDescrTy_Typ* @"$TyDescr_Bnum_39", %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ* @"$TyDescr_Exception_45", %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ* @"$TyDescr_Int256_33", %_TyDescrTy_Typ* @"$TyDescr_Int128_29", %_TyDescrTy_Typ* @"$TyDescr_Map_58", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Uint128_53", %_TyDescrTy_Typ* @"$TyDescr_Bystr_47", %_TyDescrTy_Typ* @"$TyDescr_Message_41", %_TyDescrTy_Typ* @"$TyDescr_Int32_21"] @_tydescr_table_length = constant i32 21 -@"$pname__scilla_version_1806" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_1807" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_1808" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_owner_1809" = unnamed_addr constant [5 x i8] c"owner" -@"$pname_max_block_1810" = unnamed_addr constant [9 x i8] c"max_block" -@"$pname_goal_1811" = unnamed_addr constant [4 x i8] c"goal" -@_contract_parameters = constant [6 x %"$ParamDescr_1804"] [%"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_1806", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_48" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_1807", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_1808", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_64" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$pname_owner_1809", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$pname_max_block_1810", i32 0, i32 0), i32 9 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_64" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_goal_1811", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_56" }] +@"$pname__scilla_version_1655" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_1656" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_1657" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_owner_1658" = unnamed_addr constant [5 x i8] c"owner" +@"$pname_max_block_1659" = unnamed_addr constant [9 x i8] c"max_block" +@"$pname_goal_1660" = unnamed_addr constant [4 x i8] c"goal" +@_contract_parameters = constant [6 x %"$ParamDescr_1653"] [%"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_1655", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_23" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_1656", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_1657", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_39" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$pname_owner_1658", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$pname_max_block_1659", i32 0, i32 0), i32 9 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_39" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$pname_goal_1660", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_31" }] @_contract_parameters_length = constant i32 6 -@"$tpname__amount_1812" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1813" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1814" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_Donate_1815" = unnamed_addr constant [3 x %"$ParamDescr_1804"] [%"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1812", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_56" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1813", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1814", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }] -@"$tname_Donate_1816" = unnamed_addr constant [6 x i8] c"Donate" -@"$tpname__amount_1817" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1818" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1819" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_GetFunds_1820" = unnamed_addr constant [3 x %"$ParamDescr_1804"] [%"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1817", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_56" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1818", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1819", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }] -@"$tname_GetFunds_1821" = unnamed_addr constant [8 x i8] c"GetFunds" -@"$tpname__amount_1822" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_1823" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_1824" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_ClaimBack_1825" = unnamed_addr constant [3 x %"$ParamDescr_1804"] [%"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1822", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_56" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1823", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }, %"$ParamDescr_1804" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1824", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_86" }] -@"$tname_ClaimBack_1826" = unnamed_addr constant [9 x i8] c"ClaimBack" -@_transition_parameters = constant [3 x %"$TransDescr_1805"] [%"$TransDescr_1805" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_Donate_1816", i32 0, i32 0), i32 6 }, i32 3, %"$ParamDescr_1804"* getelementptr inbounds ([3 x %"$ParamDescr_1804"], [3 x %"$ParamDescr_1804"]* @"$tparams_Donate_1815", i32 0, i32 0) }, %"$TransDescr_1805" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_GetFunds_1821", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_1804"* getelementptr inbounds ([3 x %"$ParamDescr_1804"], [3 x %"$ParamDescr_1804"]* @"$tparams_GetFunds_1820", i32 0, i32 0) }, %"$TransDescr_1805" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_ClaimBack_1826", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_1804"* getelementptr inbounds ([3 x %"$ParamDescr_1804"], [3 x %"$ParamDescr_1804"]* @"$tparams_ClaimBack_1825", i32 0, i32 0) }] +@"$tpname__amount_1661" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1662" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1663" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_Donate_1664" = unnamed_addr constant [3 x %"$ParamDescr_1653"] [%"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1661", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_31" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1662", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1663", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }] +@"$tname_Donate_1665" = unnamed_addr constant [6 x i8] c"Donate" +@"$tpname__amount_1666" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1667" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1668" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_GetFunds_1669" = unnamed_addr constant [3 x %"$ParamDescr_1653"] [%"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1666", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_31" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1667", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1668", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }] +@"$tname_GetFunds_1670" = unnamed_addr constant [8 x i8] c"GetFunds" +@"$tpname__amount_1671" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_1672" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_1673" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_ClaimBack_1674" = unnamed_addr constant [3 x %"$ParamDescr_1653"] [%"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_1671", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_31" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_1672", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }, %"$ParamDescr_1653" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_1673", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_61" }] +@"$tname_ClaimBack_1675" = unnamed_addr constant [9 x i8] c"ClaimBack" +@_transition_parameters = constant [3 x %"$TransDescr_1654"] [%"$TransDescr_1654" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_Donate_1665", i32 0, i32 0), i32 6 }, i32 3, %"$ParamDescr_1653"* getelementptr inbounds ([3 x %"$ParamDescr_1653"], [3 x %"$ParamDescr_1653"]* @"$tparams_Donate_1664", i32 0, i32 0) }, %"$TransDescr_1654" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_GetFunds_1670", i32 0, i32 0), i32 8 }, i32 3, %"$ParamDescr_1653"* getelementptr inbounds ([3 x %"$ParamDescr_1653"], [3 x %"$ParamDescr_1653"]* @"$tparams_GetFunds_1669", i32 0, i32 0) }, %"$TransDescr_1654" { %ParamDescrString { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$tname_ClaimBack_1675", i32 0, i32 0), i32 9 }, i32 3, %"$ParamDescr_1653"* getelementptr inbounds ([3 x %"$ParamDescr_1653"], [3 x %"$ParamDescr_1653"]* @"$tparams_ClaimBack_1674", i32 0, i32 0) }] @_transition_parameters_length = constant i32 3 -define internal %TName_Bool* @"$fundef_32"(%"$$fundef_32_env_134"* %0, i8* %1) { +define internal %TName_Bool* @"$fundef_11"(%"$$fundef_11_env_109"* %0, i8* %1, i8* %2) { entry: - %"$$fundef_32_env_BoolUtils.orb_402" = getelementptr inbounds %"$$fundef_32_env_134", %"$$fundef_32_env_134"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_403" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_32_env_BoolUtils.orb_402", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_403", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$$fundef_32_env_blk1_404" = getelementptr inbounds %"$$fundef_32_env_134", %"$$fundef_32_env_134"* %0, i32 0, i32 1 - %"$blk1_envload_405" = load i8*, i8** %"$$fundef_32_env_blk1_404", align 8 - %blk1 = alloca i8*, align 8 - store i8* %"$blk1_envload_405", i8** %blk1, align 8 - %"$retval_33" = alloca %TName_Bool*, align 8 - %"$gasrem_406" = load i64, i64* @_gasrem, align 8 - %"$gascmp_407" = icmp ugt i64 1, %"$gasrem_406" - br i1 %"$gascmp_407", label %"$out_of_gas_408", label %"$have_gas_409" - -"$out_of_gas_408": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_409" - -"$have_gas_409": ; preds = %"$out_of_gas_408", %entry - %"$consume_410" = sub i64 %"$gasrem_406", 1 - store i64 %"$consume_410", i64* @_gasrem, align 8 + %"$$fundef_11_env_BoolUtils.orb_294" = getelementptr inbounds %"$$fundef_11_env_109", %"$$fundef_11_env_109"* %0, i32 0, i32 0 + %"$BoolUtils.orb_envload_295" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %"$$fundef_11_env_BoolUtils.orb_294", align 8 + %BoolUtils.orb = alloca { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_295", { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 + %"$retval_12" = alloca %TName_Bool*, align 8 + %"$gasrem_296" = load i64, i64* @_gasrem, align 8 + %"$gascmp_297" = icmp ugt i64 1, %"$gasrem_296" + br i1 %"$gascmp_297", label %"$out_of_gas_298", label %"$have_gas_299" + +"$out_of_gas_298": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_299" + +"$have_gas_299": ; preds = %"$out_of_gas_298", %entry + %"$consume_300" = sub i64 %"$gasrem_296", 1 + store i64 %"$consume_300", i64* @_gasrem, align 8 %bc1 = alloca %TName_Bool*, align 8 - %"$gasrem_411" = load i64, i64* @_gasrem, align 8 - %"$gascmp_412" = icmp ugt i64 32, %"$gasrem_411" - br i1 %"$gascmp_412", label %"$out_of_gas_413", label %"$have_gas_414" + %"$gasrem_301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_302" = icmp ugt i64 32, %"$gasrem_301" + br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" -"$out_of_gas_413": ; preds = %"$have_gas_409" +"$out_of_gas_303": ; preds = %"$have_gas_299" call void @_out_of_gas() - br label %"$have_gas_414" + br label %"$have_gas_304" -"$have_gas_414": ; preds = %"$out_of_gas_413", %"$have_gas_409" - %"$consume_415" = sub i64 %"$gasrem_411", 32 - store i64 %"$consume_415", i64* @_gasrem, align 8 - %"$execptr_load_416" = load i8*, i8** @_execptr, align 8 - %"$blk1_417" = load i8*, i8** %blk1, align 8 - %"$blt_call_418" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_416", i8* %"$blk1_417", i8* %1) - store %TName_Bool* %"$blt_call_418", %TName_Bool** %bc1, align 8 - %"$gasrem_420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_421" = icmp ugt i64 1, %"$gasrem_420" - br i1 %"$gascmp_421", label %"$out_of_gas_422", label %"$have_gas_423" +"$have_gas_304": ; preds = %"$out_of_gas_303", %"$have_gas_299" + %"$consume_305" = sub i64 %"$gasrem_301", 32 + store i64 %"$consume_305", i64* @_gasrem, align 8 + %"$execptr_load_306" = load i8*, i8** @_execptr, align 8 + %"$blt_call_307" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_306", i8* %1, i8* %2) + store %TName_Bool* %"$blt_call_307", %TName_Bool** %bc1, align 8 + %"$gasrem_309" = load i64, i64* @_gasrem, align 8 + %"$gascmp_310" = icmp ugt i64 1, %"$gasrem_309" + br i1 %"$gascmp_310", label %"$out_of_gas_311", label %"$have_gas_312" -"$out_of_gas_422": ; preds = %"$have_gas_414" +"$out_of_gas_311": ; preds = %"$have_gas_304" call void @_out_of_gas() - br label %"$have_gas_423" + br label %"$have_gas_312" -"$have_gas_423": ; preds = %"$out_of_gas_422", %"$have_gas_414" - %"$consume_424" = sub i64 %"$gasrem_420", 1 - store i64 %"$consume_424", i64* @_gasrem, align 8 +"$have_gas_312": ; preds = %"$out_of_gas_311", %"$have_gas_304" + %"$consume_313" = sub i64 %"$gasrem_309", 1 + store i64 %"$consume_313", i64* @_gasrem, align 8 %bc2 = alloca %TName_Bool*, align 8 - %"$gasrem_425" = load i64, i64* @_gasrem, align 8 - %"$gascmp_426" = icmp ugt i64 32, %"$gasrem_425" - br i1 %"$gascmp_426", label %"$out_of_gas_427", label %"$have_gas_428" - -"$out_of_gas_427": ; preds = %"$have_gas_423" - call void @_out_of_gas() - br label %"$have_gas_428" - -"$have_gas_428": ; preds = %"$out_of_gas_427", %"$have_gas_423" - %"$consume_429" = sub i64 %"$gasrem_425", 32 - store i64 %"$consume_429", i64* @_gasrem, align 8 - %"$execptr_load_430" = load i8*, i8** @_execptr, align 8 - %"$blk1_431" = load i8*, i8** %blk1, align 8 - %"$eq_call_432" = call %TName_Bool* @_eq_BNum(i8* %"$execptr_load_430", i8* %"$blk1_431", i8* %1) - store %TName_Bool* %"$eq_call_432", %TName_Bool** %bc2, align 8 - %"$gasrem_434" = load i64, i64* @_gasrem, align 8 - %"$gascmp_435" = icmp ugt i64 1, %"$gasrem_434" - br i1 %"$gascmp_435", label %"$out_of_gas_436", label %"$have_gas_437" - -"$out_of_gas_436": ; preds = %"$have_gas_428" - call void @_out_of_gas() - br label %"$have_gas_437" - -"$have_gas_437": ; preds = %"$out_of_gas_436", %"$have_gas_428" - %"$consume_438" = sub i64 %"$gasrem_434", 1 - store i64 %"$consume_438", i64* @_gasrem, align 8 - %"$BoolUtils.orb_0" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_439" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$BoolUtils.orb_fptr_440" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_439", 0 - %"$BoolUtils.orb_envptr_441" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_439", 1 - %"$bc1_442" = load %TName_Bool*, %TName_Bool** %bc1, align 8 - %"$BoolUtils.orb_call_443" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_440"(i8* %"$BoolUtils.orb_envptr_441", %TName_Bool* %"$bc1_442") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_443", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_0", align 8 - %"$BoolUtils.orb_1" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_0_444" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_0", align 8 - %"$$BoolUtils.orb_0_fptr_445" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_0_444", 0 - %"$$BoolUtils.orb_0_envptr_446" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_0_444", 1 - %"$bc2_447" = load %TName_Bool*, %TName_Bool** %bc2, align 8 - %"$$BoolUtils.orb_0_call_448" = call %TName_Bool* %"$$BoolUtils.orb_0_fptr_445"(i8* %"$$BoolUtils.orb_0_envptr_446", %TName_Bool* %"$bc2_447") - store %TName_Bool* %"$$BoolUtils.orb_0_call_448", %TName_Bool** %"$BoolUtils.orb_1", align 8 - %"$$BoolUtils.orb_1_449" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_1", align 8 - store %TName_Bool* %"$$BoolUtils.orb_1_449", %TName_Bool** %"$retval_33", align 8 - %"$$retval_33_450" = load %TName_Bool*, %TName_Bool** %"$retval_33", align 8 - ret %TName_Bool* %"$$retval_33_450" + %"$gasrem_314" = load i64, i64* @_gasrem, align 8 + %"$gascmp_315" = icmp ugt i64 32, %"$gasrem_314" + br i1 %"$gascmp_315", label %"$out_of_gas_316", label %"$have_gas_317" + +"$out_of_gas_316": ; preds = %"$have_gas_312" + call void @_out_of_gas() + br label %"$have_gas_317" + +"$have_gas_317": ; preds = %"$out_of_gas_316", %"$have_gas_312" + %"$consume_318" = sub i64 %"$gasrem_314", 32 + store i64 %"$consume_318", i64* @_gasrem, align 8 + %"$execptr_load_319" = load i8*, i8** @_execptr, align 8 + %"$eq_call_320" = call %TName_Bool* @_eq_BNum(i8* %"$execptr_load_319", i8* %1, i8* %2) + store %TName_Bool* %"$eq_call_320", %TName_Bool** %bc2, align 8 + %"$gasrem_322" = load i64, i64* @_gasrem, align 8 + %"$gascmp_323" = icmp ugt i64 1, %"$gasrem_322" + br i1 %"$gascmp_323", label %"$out_of_gas_324", label %"$have_gas_325" + +"$out_of_gas_324": ; preds = %"$have_gas_317" + call void @_out_of_gas() + br label %"$have_gas_325" + +"$have_gas_325": ; preds = %"$out_of_gas_324", %"$have_gas_317" + %"$consume_326" = sub i64 %"$gasrem_322", 1 + store i64 %"$consume_326", i64* @_gasrem, align 8 + %"$BoolUtils.orb_327" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 + %"$BoolUtils.orb_fptr_328" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_327", 0 + %"$BoolUtils.orb_envptr_329" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_327", 1 + %"$bc1_330" = load %TName_Bool*, %TName_Bool** %bc1, align 8 + %"$bc2_331" = load %TName_Bool*, %TName_Bool** %bc2, align 8 + %"$BoolUtils.orb_call_332" = call %TName_Bool* %"$BoolUtils.orb_fptr_328"(i8* %"$BoolUtils.orb_envptr_329", %TName_Bool* %"$bc1_330", %TName_Bool* %"$bc2_331") + store %TName_Bool* %"$BoolUtils.orb_call_332", %TName_Bool** %"$retval_12", align 8 + %"$$retval_12_333" = load %TName_Bool*, %TName_Bool** %"$retval_12", align 8 + ret %TName_Bool* %"$$retval_12_333" } -define internal { %TName_Bool* (i8*, i8*)*, i8* } @"$fundef_30"(%"$$fundef_30_env_135"* %0, i8* %1) { +define internal %"TName_Option_Map_(ByStr20)_(Uint128)"* @"$fundef_13"(%"$$fundef_13_env_110"* %0, %Map_ByStr20_Uint128* %1, [20 x i8]* %2, %Uint128 %3) { entry: - %"$$fundef_30_env_BoolUtils.orb_387" = getelementptr inbounds %"$$fundef_30_env_135", %"$$fundef_30_env_135"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_388" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_30_env_BoolUtils.orb_387", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_388", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$retval_31" = alloca { %TName_Bool* (i8*, i8*)*, i8* }, align 8 - %"$gasrem_389" = load i64, i64* @_gasrem, align 8 - %"$gascmp_390" = icmp ugt i64 1, %"$gasrem_389" - br i1 %"$gascmp_390", label %"$out_of_gas_391", label %"$have_gas_392" - -"$out_of_gas_391": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_392" - -"$have_gas_392": ; preds = %"$out_of_gas_391", %entry - %"$consume_393" = sub i64 %"$gasrem_389", 1 - store i64 %"$consume_393", i64* @_gasrem, align 8 - %"$$fundef_32_envp_394_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_32_envp_394_salloc" = call i8* @_salloc(i8* %"$$fundef_32_envp_394_load", i64 24) - %"$$fundef_32_envp_394" = bitcast i8* %"$$fundef_32_envp_394_salloc" to %"$$fundef_32_env_134"* - %"$$fundef_32_env_voidp_396" = bitcast %"$$fundef_32_env_134"* %"$$fundef_32_envp_394" to i8* - %"$$fundef_32_cloval_397" = insertvalue { %TName_Bool* (i8*, i8*)*, i8* } { %TName_Bool* (i8*, i8*)* bitcast (%TName_Bool* (%"$$fundef_32_env_134"*, i8*)* @"$fundef_32" to %TName_Bool* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_32_env_voidp_396", 1 - %"$$fundef_32_env_BoolUtils.orb_398" = getelementptr inbounds %"$$fundef_32_env_134", %"$$fundef_32_env_134"* %"$$fundef_32_envp_394", i32 0, i32 0 - %"$BoolUtils.orb_399" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_399", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_32_env_BoolUtils.orb_398", align 8 - %"$$fundef_32_env_blk1_400" = getelementptr inbounds %"$$fundef_32_env_134", %"$$fundef_32_env_134"* %"$$fundef_32_envp_394", i32 0, i32 1 - store i8* %1, i8** %"$$fundef_32_env_blk1_400", align 8 - store { %TName_Bool* (i8*, i8*)*, i8* } %"$$fundef_32_cloval_397", { %TName_Bool* (i8*, i8*)*, i8* }* %"$retval_31", align 8 - %"$$retval_31_401" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$retval_31", align 8 - ret { %TName_Bool* (i8*, i8*)*, i8* } %"$$retval_31_401" -} + %sender = load [20 x i8], [20 x i8]* %2, align 1 + %"$retval_14" = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, align 8 + %"$gasrem_224" = load i64, i64* @_gasrem, align 8 + %"$gascmp_225" = icmp ugt i64 1, %"$gasrem_224" + br i1 %"$gascmp_225", label %"$out_of_gas_226", label %"$have_gas_227" -define internal %"TName_Option_Map_(ByStr20)_(Uint128)"* @"$fundef_38"(%"$$fundef_38_env_136"* %0, %Uint128 %1) { -entry: - %"$$fundef_38_env_bs_308" = getelementptr inbounds %"$$fundef_38_env_136", %"$$fundef_38_env_136"* %0, i32 0, i32 0 - %"$bs_envload_309" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$$fundef_38_env_bs_308", align 8 - %bs = alloca %Map_ByStr20_Uint128*, align 8 - store %Map_ByStr20_Uint128* %"$bs_envload_309", %Map_ByStr20_Uint128** %bs, align 8 - %"$$fundef_38_env_sender_310" = getelementptr inbounds %"$$fundef_38_env_136", %"$$fundef_38_env_136"* %0, i32 0, i32 1 - %"$sender_envload_311" = load [20 x i8], [20 x i8]* %"$$fundef_38_env_sender_310", align 1 - %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_311", [20 x i8]* %sender, align 1 - %"$retval_39" = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, align 8 - %"$gasrem_312" = load i64, i64* @_gasrem, align 8 - %"$gascmp_313" = icmp ugt i64 1, %"$gasrem_312" - br i1 %"$gascmp_313", label %"$out_of_gas_314", label %"$have_gas_315" - -"$out_of_gas_314": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_315" - -"$have_gas_315": ; preds = %"$out_of_gas_314", %entry - %"$consume_316" = sub i64 %"$gasrem_312", 1 - store i64 %"$consume_316", i64* @_gasrem, align 8 +"$out_of_gas_226": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_227" + +"$have_gas_227": ; preds = %"$out_of_gas_226", %entry + %"$consume_228" = sub i64 %"$gasrem_224", 1 + store i64 %"$consume_228", i64* @_gasrem, align 8 %c = alloca %TName_Bool*, align 8 - %"$gasrem_317" = load i64, i64* @_gasrem, align 8 - %"$gascmp_318" = icmp ugt i64 1, %"$gasrem_317" - br i1 %"$gascmp_318", label %"$out_of_gas_319", label %"$have_gas_320" - -"$out_of_gas_319": ; preds = %"$have_gas_315" - call void @_out_of_gas() - br label %"$have_gas_320" - -"$have_gas_320": ; preds = %"$out_of_gas_319", %"$have_gas_315" - %"$consume_321" = sub i64 %"$gasrem_317", 1 - store i64 %"$consume_321", i64* @_gasrem, align 8 - %"$execptr_load_322" = load i8*, i8** @_execptr, align 8 - %"$bs_323" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_323_324" = bitcast %Map_ByStr20_Uint128* %"$bs_323" to i8* - %"$contains_sender_325" = alloca [20 x i8], align 1 - %"$sender_326" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_326", [20 x i8]* %"$contains_sender_325", align 1 - %"$$contains_sender_325_327" = bitcast [20 x i8]* %"$contains_sender_325" to i8* - %"$contains_call_328" = call %TName_Bool* @_contains(i8* %"$execptr_load_322", %_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_323_324", i8* %"$$contains_sender_325_327") - store %TName_Bool* %"$contains_call_328", %TName_Bool** %c, align 8 - %"$gasrem_330" = load i64, i64* @_gasrem, align 8 - %"$gascmp_331" = icmp ugt i64 2, %"$gasrem_330" - br i1 %"$gascmp_331", label %"$out_of_gas_332", label %"$have_gas_333" - -"$out_of_gas_332": ; preds = %"$have_gas_320" - call void @_out_of_gas() - br label %"$have_gas_333" - -"$have_gas_333": ; preds = %"$out_of_gas_332", %"$have_gas_320" - %"$consume_334" = sub i64 %"$gasrem_330", 2 - store i64 %"$consume_334", i64* @_gasrem, align 8 - %"$c_336" = load %TName_Bool*, %TName_Bool** %c, align 8 - %"$c_tag_337" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c_336", i32 0, i32 0 - %"$c_tag_338" = load i8, i8* %"$c_tag_337", align 1 - switch i8 %"$c_tag_338", label %"$empty_default_339" [ - i8 1, label %"$False_340" - i8 0, label %"$True_376" + %"$gasrem_229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_230" = icmp ugt i64 1, %"$gasrem_229" + br i1 %"$gascmp_230", label %"$out_of_gas_231", label %"$have_gas_232" + +"$out_of_gas_231": ; preds = %"$have_gas_227" + call void @_out_of_gas() + br label %"$have_gas_232" + +"$have_gas_232": ; preds = %"$out_of_gas_231", %"$have_gas_227" + %"$consume_233" = sub i64 %"$gasrem_229", 1 + store i64 %"$consume_233", i64* @_gasrem, align 8 + %"$execptr_load_234" = load i8*, i8** @_execptr, align 8 + %"$_235" = bitcast %Map_ByStr20_Uint128* %1 to i8* + %"$contains_sender_236" = alloca [20 x i8], align 1 + store [20 x i8] %sender, [20 x i8]* %"$contains_sender_236", align 1 + %"$$contains_sender_236_237" = bitcast [20 x i8]* %"$contains_sender_236" to i8* + %"$contains_call_238" = call %TName_Bool* @_contains(i8* %"$execptr_load_234", %_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$_235", i8* %"$$contains_sender_236_237") + store %TName_Bool* %"$contains_call_238", %TName_Bool** %c, align 8 + %"$gasrem_240" = load i64, i64* @_gasrem, align 8 + %"$gascmp_241" = icmp ugt i64 2, %"$gasrem_240" + br i1 %"$gascmp_241", label %"$out_of_gas_242", label %"$have_gas_243" + +"$out_of_gas_242": ; preds = %"$have_gas_232" + call void @_out_of_gas() + br label %"$have_gas_243" + +"$have_gas_243": ; preds = %"$out_of_gas_242", %"$have_gas_232" + %"$consume_244" = sub i64 %"$gasrem_240", 2 + store i64 %"$consume_244", i64* @_gasrem, align 8 + %"$c_246" = load %TName_Bool*, %TName_Bool** %c, align 8 + %"$c_tag_247" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c_246", i32 0, i32 0 + %"$c_tag_248" = load i8, i8* %"$c_tag_247", align 1 + switch i8 %"$c_tag_248", label %"$empty_default_249" [ + i8 1, label %"$False_250" + i8 0, label %"$True_283" ] -"$False_340": ; preds = %"$have_gas_333" - %"$c_341" = bitcast %TName_Bool* %"$c_336" to %CName_False* - %"$gasrem_342" = load i64, i64* @_gasrem, align 8 - %"$gascmp_343" = icmp ugt i64 1, %"$gasrem_342" - br i1 %"$gascmp_343", label %"$out_of_gas_344", label %"$have_gas_345" +"$False_250": ; preds = %"$have_gas_243" + %"$c_251" = bitcast %TName_Bool* %"$c_246" to %CName_False* + %"$gasrem_252" = load i64, i64* @_gasrem, align 8 + %"$gascmp_253" = icmp ugt i64 1, %"$gasrem_252" + br i1 %"$gascmp_253", label %"$out_of_gas_254", label %"$have_gas_255" -"$out_of_gas_344": ; preds = %"$False_340" +"$out_of_gas_254": ; preds = %"$False_250" call void @_out_of_gas() - br label %"$have_gas_345" + br label %"$have_gas_255" -"$have_gas_345": ; preds = %"$out_of_gas_344", %"$False_340" - %"$consume_346" = sub i64 %"$gasrem_342", 1 - store i64 %"$consume_346", i64* @_gasrem, align 8 +"$have_gas_255": ; preds = %"$out_of_gas_254", %"$False_250" + %"$consume_256" = sub i64 %"$gasrem_252", 1 + store i64 %"$consume_256", i64* @_gasrem, align 8 %bs1 = alloca %Map_ByStr20_Uint128*, align 8 - %"$bs_347" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_347_348" = bitcast %Map_ByStr20_Uint128* %"$bs_347" to i8* - %"$_lengthof_call_349" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_347_348") - %"$gasadd_350" = add i64 1, %"$_lengthof_call_349" - %"$gasrem_351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_352" = icmp ugt i64 %"$gasadd_350", %"$gasrem_351" - br i1 %"$gascmp_352", label %"$out_of_gas_353", label %"$have_gas_354" - -"$out_of_gas_353": ; preds = %"$have_gas_345" - call void @_out_of_gas() - br label %"$have_gas_354" - -"$have_gas_354": ; preds = %"$out_of_gas_353", %"$have_gas_345" - %"$consume_355" = sub i64 %"$gasrem_351", %"$gasadd_350" - store i64 %"$consume_355", i64* @_gasrem, align 8 - %"$execptr_load_356" = load i8*, i8** @_execptr, align 8 - %"$bs_357" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_357_358" = bitcast %Map_ByStr20_Uint128* %"$bs_357" to i8* - %"$put_sender_359" = alloca [20 x i8], align 1 - %"$sender_360" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_360", [20 x i8]* %"$put_sender_359", align 1 - %"$$put_sender_359_361" = bitcast [20 x i8]* %"$put_sender_359" to i8* - %"$put_amount_362" = alloca %Uint128, align 8 - store %Uint128 %1, %Uint128* %"$put_amount_362", align 8 - %"$$put_amount_362_363" = bitcast %Uint128* %"$put_amount_362" to i8* - %"$put_call_364" = call i8* @_put(i8* %"$execptr_load_356", %_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_357_358", i8* %"$$put_sender_359_361", i8* %"$$put_amount_362_363") - %"$put_365" = bitcast i8* %"$put_call_364" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$put_365", %Map_ByStr20_Uint128** %bs1, align 8 - %"$gasrem_366" = load i64, i64* @_gasrem, align 8 - %"$gascmp_367" = icmp ugt i64 1, %"$gasrem_366" - br i1 %"$gascmp_367", label %"$out_of_gas_368", label %"$have_gas_369" - -"$out_of_gas_368": ; preds = %"$have_gas_354" - call void @_out_of_gas() - br label %"$have_gas_369" - -"$have_gas_369": ; preds = %"$out_of_gas_368", %"$have_gas_354" - %"$consume_370" = sub i64 %"$gasrem_366", 1 - store i64 %"$consume_370", i64* @_gasrem, align 8 - %"$bs1_371" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$adtval_372_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_372_salloc" = call i8* @_salloc(i8* %"$adtval_372_load", i64 9) - %"$adtval_372" = bitcast i8* %"$adtval_372_salloc" to %"CName_Some_Map_(ByStr20)_(Uint128)"* - %"$adtgep_373" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_372", i32 0, i32 0 - store i8 0, i8* %"$adtgep_373", align 1 - %"$adtgep_374" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_372", i32 0, i32 1 - store %Map_ByStr20_Uint128* %"$bs1_371", %Map_ByStr20_Uint128** %"$adtgep_374", align 8 - %"$adtptr_375" = bitcast %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_372" to %"TName_Option_Map_(ByStr20)_(Uint128)"* - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_375", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_39", align 8 - br label %"$matchsucc_335" - -"$True_376": ; preds = %"$have_gas_333" - %"$c_377" = bitcast %TName_Bool* %"$c_336" to %CName_True* - %"$gasrem_378" = load i64, i64* @_gasrem, align 8 - %"$gascmp_379" = icmp ugt i64 1, %"$gasrem_378" - br i1 %"$gascmp_379", label %"$out_of_gas_380", label %"$have_gas_381" - -"$out_of_gas_380": ; preds = %"$True_376" - call void @_out_of_gas() - br label %"$have_gas_381" - -"$have_gas_381": ; preds = %"$out_of_gas_380", %"$True_376" - %"$consume_382" = sub i64 %"$gasrem_378", 1 - store i64 %"$consume_382", i64* @_gasrem, align 8 - %"$adtval_383_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_383_salloc" = call i8* @_salloc(i8* %"$adtval_383_load", i64 1) - %"$adtval_383" = bitcast i8* %"$adtval_383_salloc" to %"CName_None_Map_(ByStr20)_(Uint128)"* - %"$adtgep_384" = getelementptr inbounds %"CName_None_Map_(ByStr20)_(Uint128)", %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_383", i32 0, i32 0 - store i8 1, i8* %"$adtgep_384", align 1 - %"$adtptr_385" = bitcast %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_383" to %"TName_Option_Map_(ByStr20)_(Uint128)"* - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_385", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_39", align 8 - br label %"$matchsucc_335" - -"$empty_default_339": ; preds = %"$have_gas_333" - br label %"$matchsucc_335" - -"$matchsucc_335": ; preds = %"$have_gas_381", %"$have_gas_369", %"$empty_default_339" - %"$$retval_39_386" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_39", align 8 - ret %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$retval_39_386" -} - -define internal { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } @"$fundef_36"(%"$$fundef_36_env_137"* %0, [20 x i8]* %1) { -entry: - %sender = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_36_env_bs_293" = getelementptr inbounds %"$$fundef_36_env_137", %"$$fundef_36_env_137"* %0, i32 0, i32 0 - %"$bs_envload_294" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$$fundef_36_env_bs_293", align 8 - %bs = alloca %Map_ByStr20_Uint128*, align 8 - store %Map_ByStr20_Uint128* %"$bs_envload_294", %Map_ByStr20_Uint128** %bs, align 8 - %"$retval_37" = alloca { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, align 8 - %"$gasrem_295" = load i64, i64* @_gasrem, align 8 - %"$gascmp_296" = icmp ugt i64 1, %"$gasrem_295" - br i1 %"$gascmp_296", label %"$out_of_gas_297", label %"$have_gas_298" - -"$out_of_gas_297": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_298" - -"$have_gas_298": ; preds = %"$out_of_gas_297", %entry - %"$consume_299" = sub i64 %"$gasrem_295", 1 - store i64 %"$consume_299", i64* @_gasrem, align 8 - %"$$fundef_38_envp_300_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_38_envp_300_salloc" = call i8* @_salloc(i8* %"$$fundef_38_envp_300_load", i64 32) - %"$$fundef_38_envp_300" = bitcast i8* %"$$fundef_38_envp_300_salloc" to %"$$fundef_38_env_136"* - %"$$fundef_38_env_voidp_302" = bitcast %"$$fundef_38_env_136"* %"$$fundef_38_envp_300" to i8* - %"$$fundef_38_cloval_303" = insertvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)* bitcast (%"TName_Option_Map_(ByStr20)_(Uint128)"* (%"$$fundef_38_env_136"*, %Uint128)* @"$fundef_38" to %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*), i8* undef }, i8* %"$$fundef_38_env_voidp_302", 1 - %"$$fundef_38_env_bs_304" = getelementptr inbounds %"$$fundef_38_env_136", %"$$fundef_38_env_136"* %"$$fundef_38_envp_300", i32 0, i32 0 - %"$bs_305" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - store %Map_ByStr20_Uint128* %"$bs_305", %Map_ByStr20_Uint128** %"$$fundef_38_env_bs_304", align 8 - %"$$fundef_38_env_sender_306" = getelementptr inbounds %"$$fundef_38_env_136", %"$$fundef_38_env_136"* %"$$fundef_38_envp_300", i32 0, i32 1 - store [20 x i8] %sender, [20 x i8]* %"$$fundef_38_env_sender_306", align 1 - store { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$fundef_38_cloval_303", { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$retval_37", align 8 - %"$$retval_37_307" = load { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$retval_37", align 8 - ret { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$retval_37_307" -} - -define internal { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_34"(%"$$fundef_34_env_138"* %0, %Map_ByStr20_Uint128* %1) { -entry: - %"$retval_35" = alloca { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_282" = load i64, i64* @_gasrem, align 8 - %"$gascmp_283" = icmp ugt i64 1, %"$gasrem_282" - br i1 %"$gascmp_283", label %"$out_of_gas_284", label %"$have_gas_285" - -"$out_of_gas_284": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_285" - -"$have_gas_285": ; preds = %"$out_of_gas_284", %entry - %"$consume_286" = sub i64 %"$gasrem_282", 1 - store i64 %"$consume_286", i64* @_gasrem, align 8 - %"$$fundef_36_envp_287_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_36_envp_287_salloc" = call i8* @_salloc(i8* %"$$fundef_36_envp_287_load", i64 8) - %"$$fundef_36_envp_287" = bitcast i8* %"$$fundef_36_envp_287_salloc" to %"$$fundef_36_env_137"* - %"$$fundef_36_env_voidp_289" = bitcast %"$$fundef_36_env_137"* %"$$fundef_36_envp_287" to i8* - %"$$fundef_36_cloval_290" = insertvalue { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (%"$$fundef_36_env_137"*, [20 x i8]*)* @"$fundef_36" to { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_36_env_voidp_289", 1 - %"$$fundef_36_env_bs_291" = getelementptr inbounds %"$$fundef_36_env_137", %"$$fundef_36_env_137"* %"$$fundef_36_envp_287", i32 0, i32 0 - store %Map_ByStr20_Uint128* %1, %Map_ByStr20_Uint128** %"$$fundef_36_env_bs_291", align 8 - store { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_36_cloval_290", { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_35", align 8 - %"$$retval_35_292" = load { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_35", align 8 - ret { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_35_292" -} - -define internal %TName_List_Message* @"$fundef_40"(%"$$fundef_40_env_139"* %0, i8* %1) { -entry: - %"$retval_41" = alloca %TName_List_Message*, align 8 - %"$gasrem_257" = load i64, i64* @_gasrem, align 8 - %"$gascmp_258" = icmp ugt i64 1, %"$gasrem_257" - br i1 %"$gascmp_258", label %"$out_of_gas_259", label %"$have_gas_260" - -"$out_of_gas_259": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_260" - -"$have_gas_260": ; preds = %"$out_of_gas_259", %entry - %"$consume_261" = sub i64 %"$gasrem_257", 1 - store i64 %"$consume_261", i64* @_gasrem, align 8 - %nil_msg = alloca %TName_List_Message*, align 8 - %"$gasrem_262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_263" = icmp ugt i64 1, %"$gasrem_262" - br i1 %"$gascmp_263", label %"$out_of_gas_264", label %"$have_gas_265" - -"$out_of_gas_264": ; preds = %"$have_gas_260" - call void @_out_of_gas() - br label %"$have_gas_265" - -"$have_gas_265": ; preds = %"$out_of_gas_264", %"$have_gas_260" - %"$consume_266" = sub i64 %"$gasrem_262", 1 - store i64 %"$consume_266", i64* @_gasrem, align 8 - %"$adtval_267_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_267_salloc" = call i8* @_salloc(i8* %"$adtval_267_load", i64 1) - %"$adtval_267" = bitcast i8* %"$adtval_267_salloc" to %CName_Nil_Message* - %"$adtgep_268" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_267", i32 0, i32 0 - store i8 1, i8* %"$adtgep_268", align 1 - %"$adtptr_269" = bitcast %CName_Nil_Message* %"$adtval_267" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_269", %TName_List_Message** %nil_msg, align 8 - %"$gasrem_270" = load i64, i64* @_gasrem, align 8 - %"$gascmp_271" = icmp ugt i64 1, %"$gasrem_270" - br i1 %"$gascmp_271", label %"$out_of_gas_272", label %"$have_gas_273" - -"$out_of_gas_272": ; preds = %"$have_gas_265" - call void @_out_of_gas() - br label %"$have_gas_273" - -"$have_gas_273": ; preds = %"$out_of_gas_272", %"$have_gas_265" - %"$consume_274" = sub i64 %"$gasrem_270", 1 - store i64 %"$consume_274", i64* @_gasrem, align 8 - %"$nil_msg_275" = load %TName_List_Message*, %TName_List_Message** %nil_msg, align 8 - %"$adtval_276_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_276_salloc" = call i8* @_salloc(i8* %"$adtval_276_load", i64 17) - %"$adtval_276" = bitcast i8* %"$adtval_276_salloc" to %CName_Cons_Message* - %"$adtgep_277" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_276", i32 0, i32 0 - store i8 0, i8* %"$adtgep_277", align 1 - %"$adtgep_278" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_276", i32 0, i32 1 - store i8* %1, i8** %"$adtgep_278", align 8 - %"$adtgep_279" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_276", i32 0, i32 2 - store %TName_List_Message* %"$nil_msg_275", %TName_List_Message** %"$adtgep_279", align 8 - %"$adtptr_280" = bitcast %CName_Cons_Message* %"$adtval_276" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_280", %TName_List_Message** %"$retval_41", align 8 - %"$$retval_41_281" = load %TName_List_Message*, %TName_List_Message** %"$retval_41", align 8 - ret %TName_List_Message* %"$$retval_41_281" -} - -define internal %TName_Bool* @"$fundef_20"(%"$$fundef_20_env_140"* %0, %TName_Bool* %1) { -entry: - %"$retval_21" = alloca %TName_Bool*, align 8 - %"$gasrem_227" = load i64, i64* @_gasrem, align 8 - %"$gascmp_228" = icmp ugt i64 2, %"$gasrem_227" - br i1 %"$gascmp_228", label %"$out_of_gas_229", label %"$have_gas_230" - -"$out_of_gas_229": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_230" - -"$have_gas_230": ; preds = %"$out_of_gas_229", %entry - %"$consume_231" = sub i64 %"$gasrem_227", 2 - store i64 %"$consume_231", i64* @_gasrem, align 8 - %"$b_tag_233" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b_tag_234" = load i8, i8* %"$b_tag_233", align 1 - switch i8 %"$b_tag_234", label %"$empty_default_235" [ - i8 0, label %"$True_236" - i8 1, label %"$False_246" - ] - -"$True_236": ; preds = %"$have_gas_230" - %"$b_237" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_238" = load i64, i64* @_gasrem, align 8 - %"$gascmp_239" = icmp ugt i64 1, %"$gasrem_238" - br i1 %"$gascmp_239", label %"$out_of_gas_240", label %"$have_gas_241" - -"$out_of_gas_240": ; preds = %"$True_236" - call void @_out_of_gas() - br label %"$have_gas_241" - -"$have_gas_241": ; preds = %"$out_of_gas_240", %"$True_236" - %"$consume_242" = sub i64 %"$gasrem_238", 1 - store i64 %"$consume_242", i64* @_gasrem, align 8 - %"$adtval_243_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_243_salloc" = call i8* @_salloc(i8* %"$adtval_243_load", i64 1) - %"$adtval_243" = bitcast i8* %"$adtval_243_salloc" to %CName_False* - %"$adtgep_244" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_243", i32 0, i32 0 - store i8 1, i8* %"$adtgep_244", align 1 - %"$adtptr_245" = bitcast %CName_False* %"$adtval_243" to %TName_Bool* - store %TName_Bool* %"$adtptr_245", %TName_Bool** %"$retval_21", align 8 - br label %"$matchsucc_232" - -"$False_246": ; preds = %"$have_gas_230" - %"$b_247" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_248" = load i64, i64* @_gasrem, align 8 - %"$gascmp_249" = icmp ugt i64 1, %"$gasrem_248" - br i1 %"$gascmp_249", label %"$out_of_gas_250", label %"$have_gas_251" - -"$out_of_gas_250": ; preds = %"$False_246" - call void @_out_of_gas() - br label %"$have_gas_251" - -"$have_gas_251": ; preds = %"$out_of_gas_250", %"$False_246" - %"$consume_252" = sub i64 %"$gasrem_248", 1 - store i64 %"$consume_252", i64* @_gasrem, align 8 - %"$adtval_253_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_253_salloc" = call i8* @_salloc(i8* %"$adtval_253_load", i64 1) - %"$adtval_253" = bitcast i8* %"$adtval_253_salloc" to %CName_True* - %"$adtgep_254" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_253", i32 0, i32 0 - store i8 0, i8* %"$adtgep_254", align 1 - %"$adtptr_255" = bitcast %CName_True* %"$adtval_253" to %TName_Bool* - store %TName_Bool* %"$adtptr_255", %TName_Bool** %"$retval_21", align 8 - br label %"$matchsucc_232" - -"$empty_default_235": ; preds = %"$have_gas_230" - br label %"$matchsucc_232" - -"$matchsucc_232": ; preds = %"$have_gas_251", %"$have_gas_241", %"$empty_default_235" - %"$$retval_21_256" = load %TName_Bool*, %TName_Bool** %"$retval_21", align 8 - ret %TName_Bool* %"$$retval_21_256" + %"$_257" = bitcast %Map_ByStr20_Uint128* %1 to i8* + %"$_lengthof_call_258" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$_257") + %"$gasadd_259" = add i64 1, %"$_lengthof_call_258" + %"$gasrem_260" = load i64, i64* @_gasrem, align 8 + %"$gascmp_261" = icmp ugt i64 %"$gasadd_259", %"$gasrem_260" + br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" + +"$out_of_gas_262": ; preds = %"$have_gas_255" + call void @_out_of_gas() + br label %"$have_gas_263" + +"$have_gas_263": ; preds = %"$out_of_gas_262", %"$have_gas_255" + %"$consume_264" = sub i64 %"$gasrem_260", %"$gasadd_259" + store i64 %"$consume_264", i64* @_gasrem, align 8 + %"$execptr_load_265" = load i8*, i8** @_execptr, align 8 + %"$_266" = bitcast %Map_ByStr20_Uint128* %1 to i8* + %"$put_sender_267" = alloca [20 x i8], align 1 + store [20 x i8] %sender, [20 x i8]* %"$put_sender_267", align 1 + %"$$put_sender_267_268" = bitcast [20 x i8]* %"$put_sender_267" to i8* + %"$put_amount_269" = alloca %Uint128, align 8 + store %Uint128 %3, %Uint128* %"$put_amount_269", align 8 + %"$$put_amount_269_270" = bitcast %Uint128* %"$put_amount_269" to i8* + %"$put_call_271" = call i8* @_put(i8* %"$execptr_load_265", %_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$_266", i8* %"$$put_sender_267_268", i8* %"$$put_amount_269_270") + %"$put_272" = bitcast i8* %"$put_call_271" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$put_272", %Map_ByStr20_Uint128** %bs1, align 8 + %"$gasrem_273" = load i64, i64* @_gasrem, align 8 + %"$gascmp_274" = icmp ugt i64 1, %"$gasrem_273" + br i1 %"$gascmp_274", label %"$out_of_gas_275", label %"$have_gas_276" + +"$out_of_gas_275": ; preds = %"$have_gas_263" + call void @_out_of_gas() + br label %"$have_gas_276" + +"$have_gas_276": ; preds = %"$out_of_gas_275", %"$have_gas_263" + %"$consume_277" = sub i64 %"$gasrem_273", 1 + store i64 %"$consume_277", i64* @_gasrem, align 8 + %"$bs1_278" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$adtval_279_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_279_salloc" = call i8* @_salloc(i8* %"$adtval_279_load", i64 9) + %"$adtval_279" = bitcast i8* %"$adtval_279_salloc" to %"CName_Some_Map_(ByStr20)_(Uint128)"* + %"$adtgep_280" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_279", i32 0, i32 0 + store i8 0, i8* %"$adtgep_280", align 1 + %"$adtgep_281" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_279", i32 0, i32 1 + store %Map_ByStr20_Uint128* %"$bs1_278", %Map_ByStr20_Uint128** %"$adtgep_281", align 8 + %"$adtptr_282" = bitcast %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$adtval_279" to %"TName_Option_Map_(ByStr20)_(Uint128)"* + store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_282", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_14", align 8 + br label %"$matchsucc_245" + +"$True_283": ; preds = %"$have_gas_243" + %"$c_284" = bitcast %TName_Bool* %"$c_246" to %CName_True* + %"$gasrem_285" = load i64, i64* @_gasrem, align 8 + %"$gascmp_286" = icmp ugt i64 1, %"$gasrem_285" + br i1 %"$gascmp_286", label %"$out_of_gas_287", label %"$have_gas_288" + +"$out_of_gas_287": ; preds = %"$True_283" + call void @_out_of_gas() + br label %"$have_gas_288" + +"$have_gas_288": ; preds = %"$out_of_gas_287", %"$True_283" + %"$consume_289" = sub i64 %"$gasrem_285", 1 + store i64 %"$consume_289", i64* @_gasrem, align 8 + %"$adtval_290_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_290_salloc" = call i8* @_salloc(i8* %"$adtval_290_load", i64 1) + %"$adtval_290" = bitcast i8* %"$adtval_290_salloc" to %"CName_None_Map_(ByStr20)_(Uint128)"* + %"$adtgep_291" = getelementptr inbounds %"CName_None_Map_(ByStr20)_(Uint128)", %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_290", i32 0, i32 0 + store i8 1, i8* %"$adtgep_291", align 1 + %"$adtptr_292" = bitcast %"CName_None_Map_(ByStr20)_(Uint128)"* %"$adtval_290" to %"TName_Option_Map_(ByStr20)_(Uint128)"* + store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$adtptr_292", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_14", align 8 + br label %"$matchsucc_245" + +"$empty_default_249": ; preds = %"$have_gas_243" + br label %"$matchsucc_245" + +"$matchsucc_245": ; preds = %"$have_gas_288", %"$have_gas_276", %"$empty_default_249" + %"$$retval_14_293" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$retval_14", align 8 + ret %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$retval_14_293" } -define internal %TName_Bool* @"$fundef_24"(%"$$fundef_24_env_141"* %0, %TName_Bool* %1) { +define internal %TName_List_Message* @"$fundef_15"(%"$$fundef_15_env_111"* %0, i8* %1) { entry: - %"$$fundef_24_env_b_197" = getelementptr inbounds %"$$fundef_24_env_141", %"$$fundef_24_env_141"* %0, i32 0, i32 0 - %"$b_envload_198" = load %TName_Bool*, %TName_Bool** %"$$fundef_24_env_b_197", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_198", %TName_Bool** %b, align 8 - %"$retval_25" = alloca %TName_Bool*, align 8 + %"$retval_16" = alloca %TName_List_Message*, align 8 %"$gasrem_199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_200" = icmp ugt i64 2, %"$gasrem_199" + %"$gascmp_200" = icmp ugt i64 1, %"$gasrem_199" br i1 %"$gascmp_200", label %"$out_of_gas_201", label %"$have_gas_202" "$out_of_gas_201": ; preds = %entry @@ -748,138 +486,77 @@ entry: br label %"$have_gas_202" "$have_gas_202": ; preds = %"$out_of_gas_201", %entry - %"$consume_203" = sub i64 %"$gasrem_199", 2 + %"$consume_203" = sub i64 %"$gasrem_199", 1 store i64 %"$consume_203", i64* @_gasrem, align 8 - %"$b_205" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_206" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_205", i32 0, i32 0 - %"$b_tag_207" = load i8, i8* %"$b_tag_206", align 1 - switch i8 %"$b_tag_207", label %"$empty_default_208" [ - i8 0, label %"$True_209" - i8 1, label %"$False_219" - ] - -"$True_209": ; preds = %"$have_gas_202" - %"$b_210" = bitcast %TName_Bool* %"$b_205" to %CName_True* - %"$gasrem_211" = load i64, i64* @_gasrem, align 8 - %"$gascmp_212" = icmp ugt i64 1, %"$gasrem_211" - br i1 %"$gascmp_212", label %"$out_of_gas_213", label %"$have_gas_214" - -"$out_of_gas_213": ; preds = %"$True_209" - call void @_out_of_gas() - br label %"$have_gas_214" - -"$have_gas_214": ; preds = %"$out_of_gas_213", %"$True_209" - %"$consume_215" = sub i64 %"$gasrem_211", 1 - store i64 %"$consume_215", i64* @_gasrem, align 8 - %"$adtval_216_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_216_salloc" = call i8* @_salloc(i8* %"$adtval_216_load", i64 1) - %"$adtval_216" = bitcast i8* %"$adtval_216_salloc" to %CName_True* - %"$adtgep_217" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_216", i32 0, i32 0 - store i8 0, i8* %"$adtgep_217", align 1 - %"$adtptr_218" = bitcast %CName_True* %"$adtval_216" to %TName_Bool* - store %TName_Bool* %"$adtptr_218", %TName_Bool** %"$retval_25", align 8 - br label %"$matchsucc_204" - -"$False_219": ; preds = %"$have_gas_202" - %"$b_220" = bitcast %TName_Bool* %"$b_205" to %CName_False* - %"$gasrem_221" = load i64, i64* @_gasrem, align 8 - %"$gascmp_222" = icmp ugt i64 1, %"$gasrem_221" - br i1 %"$gascmp_222", label %"$out_of_gas_223", label %"$have_gas_224" - -"$out_of_gas_223": ; preds = %"$False_219" - call void @_out_of_gas() - br label %"$have_gas_224" - -"$have_gas_224": ; preds = %"$out_of_gas_223", %"$False_219" - %"$consume_225" = sub i64 %"$gasrem_221", 1 - store i64 %"$consume_225", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_25", align 8 - br label %"$matchsucc_204" - -"$empty_default_208": ; preds = %"$have_gas_202" - br label %"$matchsucc_204" - -"$matchsucc_204": ; preds = %"$have_gas_224", %"$have_gas_214", %"$empty_default_208" - %"$$retval_25_226" = load %TName_Bool*, %TName_Bool** %"$retval_25", align 8 - ret %TName_Bool* %"$$retval_25_226" + %nil_msg = alloca %TName_List_Message*, align 8 + %"$gasrem_204" = load i64, i64* @_gasrem, align 8 + %"$gascmp_205" = icmp ugt i64 1, %"$gasrem_204" + br i1 %"$gascmp_205", label %"$out_of_gas_206", label %"$have_gas_207" + +"$out_of_gas_206": ; preds = %"$have_gas_202" + call void @_out_of_gas() + br label %"$have_gas_207" + +"$have_gas_207": ; preds = %"$out_of_gas_206", %"$have_gas_202" + %"$consume_208" = sub i64 %"$gasrem_204", 1 + store i64 %"$consume_208", i64* @_gasrem, align 8 + %"$adtval_209_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_209_salloc" = call i8* @_salloc(i8* %"$adtval_209_load", i64 1) + %"$adtval_209" = bitcast i8* %"$adtval_209_salloc" to %CName_Nil_Message* + %"$adtgep_210" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_209", i32 0, i32 0 + store i8 1, i8* %"$adtgep_210", align 1 + %"$adtptr_211" = bitcast %CName_Nil_Message* %"$adtval_209" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_211", %TName_List_Message** %nil_msg, align 8 + %"$gasrem_212" = load i64, i64* @_gasrem, align 8 + %"$gascmp_213" = icmp ugt i64 1, %"$gasrem_212" + br i1 %"$gascmp_213", label %"$out_of_gas_214", label %"$have_gas_215" + +"$out_of_gas_214": ; preds = %"$have_gas_207" + call void @_out_of_gas() + br label %"$have_gas_215" + +"$have_gas_215": ; preds = %"$out_of_gas_214", %"$have_gas_207" + %"$consume_216" = sub i64 %"$gasrem_212", 1 + store i64 %"$consume_216", i64* @_gasrem, align 8 + %"$nil_msg_217" = load %TName_List_Message*, %TName_List_Message** %nil_msg, align 8 + %"$adtval_218_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_218_salloc" = call i8* @_salloc(i8* %"$adtval_218_load", i64 17) + %"$adtval_218" = bitcast i8* %"$adtval_218_salloc" to %CName_Cons_Message* + %"$adtgep_219" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_218", i32 0, i32 0 + store i8 0, i8* %"$adtgep_219", align 1 + %"$adtgep_220" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_218", i32 0, i32 1 + store i8* %1, i8** %"$adtgep_220", align 8 + %"$adtgep_221" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_218", i32 0, i32 2 + store %TName_List_Message* %"$nil_msg_217", %TName_List_Message** %"$adtgep_221", align 8 + %"$adtptr_222" = bitcast %CName_Cons_Message* %"$adtval_218" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_222", %TName_List_Message** %"$retval_16", align 8 + %"$$retval_16_223" = load %TName_List_Message*, %TName_List_Message** %"$retval_16", align 8 + ret %TName_List_Message* %"$$retval_16_223" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_22"(%"$$fundef_22_env_142"* %0, %TName_Bool* %1) { +define internal %TName_Bool* @"$fundef_5"(%"$$fundef_5_env_112"* %0, %TName_Bool* %1) { entry: - %"$retval_23" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_186" = load i64, i64* @_gasrem, align 8 - %"$gascmp_187" = icmp ugt i64 1, %"$gasrem_186" - br i1 %"$gascmp_187", label %"$out_of_gas_188", label %"$have_gas_189" - -"$out_of_gas_188": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_189" - -"$have_gas_189": ; preds = %"$out_of_gas_188", %entry - %"$consume_190" = sub i64 %"$gasrem_186", 1 - store i64 %"$consume_190", i64* @_gasrem, align 8 - %"$$fundef_24_envp_191_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_24_envp_191_salloc" = call i8* @_salloc(i8* %"$$fundef_24_envp_191_load", i64 8) - %"$$fundef_24_envp_191" = bitcast i8* %"$$fundef_24_envp_191_salloc" to %"$$fundef_24_env_141"* - %"$$fundef_24_env_voidp_193" = bitcast %"$$fundef_24_env_141"* %"$$fundef_24_envp_191" to i8* - %"$$fundef_24_cloval_194" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_24_env_141"*, %TName_Bool*)* @"$fundef_24" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_24_env_voidp_193", 1 - %"$$fundef_24_env_b_195" = getelementptr inbounds %"$$fundef_24_env_141", %"$$fundef_24_env_141"* %"$$fundef_24_envp_191", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_24_env_b_195", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_24_cloval_194", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_23", align 8 - %"$$retval_23_196" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_23", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_23_196" -} + %"$retval_6" = alloca %TName_Bool*, align 8 + %"$gasrem_169" = load i64, i64* @_gasrem, align 8 + %"$gascmp_170" = icmp ugt i64 2, %"$gasrem_169" + br i1 %"$gascmp_170", label %"$out_of_gas_171", label %"$have_gas_172" -define internal %TName_Bool* @"$fundef_28"(%"$$fundef_28_env_143"* %0, %TName_Bool* %1) { -entry: - %"$$fundef_28_env_b_156" = getelementptr inbounds %"$$fundef_28_env_143", %"$$fundef_28_env_143"* %0, i32 0, i32 0 - %"$b_envload_157" = load %TName_Bool*, %TName_Bool** %"$$fundef_28_env_b_156", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_157", %TName_Bool** %b, align 8 - %"$retval_29" = alloca %TName_Bool*, align 8 - %"$gasrem_158" = load i64, i64* @_gasrem, align 8 - %"$gascmp_159" = icmp ugt i64 2, %"$gasrem_158" - br i1 %"$gascmp_159", label %"$out_of_gas_160", label %"$have_gas_161" - -"$out_of_gas_160": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_161" - -"$have_gas_161": ; preds = %"$out_of_gas_160", %entry - %"$consume_162" = sub i64 %"$gasrem_158", 2 - store i64 %"$consume_162", i64* @_gasrem, align 8 - %"$b_164" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_165" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_164", i32 0, i32 0 - %"$b_tag_166" = load i8, i8* %"$b_tag_165", align 1 - switch i8 %"$b_tag_166", label %"$empty_default_167" [ - i8 1, label %"$False_168" +"$out_of_gas_171": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_172" + +"$have_gas_172": ; preds = %"$out_of_gas_171", %entry + %"$consume_173" = sub i64 %"$gasrem_169", 2 + store i64 %"$consume_173", i64* @_gasrem, align 8 + %"$b_tag_175" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_176" = load i8, i8* %"$b_tag_175", align 1 + switch i8 %"$b_tag_176", label %"$empty_default_177" [ i8 0, label %"$True_178" + i8 1, label %"$False_188" ] -"$False_168": ; preds = %"$have_gas_161" - %"$b_169" = bitcast %TName_Bool* %"$b_164" to %CName_False* - %"$gasrem_170" = load i64, i64* @_gasrem, align 8 - %"$gascmp_171" = icmp ugt i64 1, %"$gasrem_170" - br i1 %"$gascmp_171", label %"$out_of_gas_172", label %"$have_gas_173" - -"$out_of_gas_172": ; preds = %"$False_168" - call void @_out_of_gas() - br label %"$have_gas_173" - -"$have_gas_173": ; preds = %"$out_of_gas_172", %"$False_168" - %"$consume_174" = sub i64 %"$gasrem_170", 1 - store i64 %"$consume_174", i64* @_gasrem, align 8 - %"$adtval_175_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_175_salloc" = call i8* @_salloc(i8* %"$adtval_175_load", i64 1) - %"$adtval_175" = bitcast i8* %"$adtval_175_salloc" to %CName_False* - %"$adtgep_176" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_175", i32 0, i32 0 - store i8 1, i8* %"$adtgep_176", align 1 - %"$adtptr_177" = bitcast %CName_False* %"$adtval_175" to %TName_Bool* - store %TName_Bool* %"$adtptr_177", %TName_Bool** %"$retval_29", align 8 - br label %"$matchsucc_163" - -"$True_178": ; preds = %"$have_gas_161" - %"$b_179" = bitcast %TName_Bool* %"$b_164" to %CName_True* +"$True_178": ; preds = %"$have_gas_172" + %"$b_179" = bitcast %TName_Bool* %1 to %CName_True* %"$gasrem_180" = load i64, i64* @_gasrem, align 8 %"$gascmp_181" = icmp ugt i64 1, %"$gasrem_180" br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" @@ -891,41 +568,177 @@ entry: "$have_gas_183": ; preds = %"$out_of_gas_182", %"$True_178" %"$consume_184" = sub i64 %"$gasrem_180", 1 store i64 %"$consume_184", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_29", align 8 - br label %"$matchsucc_163" + %"$adtval_185_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_185_salloc" = call i8* @_salloc(i8* %"$adtval_185_load", i64 1) + %"$adtval_185" = bitcast i8* %"$adtval_185_salloc" to %CName_False* + %"$adtgep_186" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_185", i32 0, i32 0 + store i8 1, i8* %"$adtgep_186", align 1 + %"$adtptr_187" = bitcast %CName_False* %"$adtval_185" to %TName_Bool* + store %TName_Bool* %"$adtptr_187", %TName_Bool** %"$retval_6", align 8 + br label %"$matchsucc_174" + +"$False_188": ; preds = %"$have_gas_172" + %"$b_189" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_190" = load i64, i64* @_gasrem, align 8 + %"$gascmp_191" = icmp ugt i64 1, %"$gasrem_190" + br i1 %"$gascmp_191", label %"$out_of_gas_192", label %"$have_gas_193" + +"$out_of_gas_192": ; preds = %"$False_188" + call void @_out_of_gas() + br label %"$have_gas_193" + +"$have_gas_193": ; preds = %"$out_of_gas_192", %"$False_188" + %"$consume_194" = sub i64 %"$gasrem_190", 1 + store i64 %"$consume_194", i64* @_gasrem, align 8 + %"$adtval_195_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_195_salloc" = call i8* @_salloc(i8* %"$adtval_195_load", i64 1) + %"$adtval_195" = bitcast i8* %"$adtval_195_salloc" to %CName_True* + %"$adtgep_196" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_195", i32 0, i32 0 + store i8 0, i8* %"$adtgep_196", align 1 + %"$adtptr_197" = bitcast %CName_True* %"$adtval_195" to %TName_Bool* + store %TName_Bool* %"$adtptr_197", %TName_Bool** %"$retval_6", align 8 + br label %"$matchsucc_174" + +"$empty_default_177": ; preds = %"$have_gas_172" + br label %"$matchsucc_174" + +"$matchsucc_174": ; preds = %"$have_gas_193", %"$have_gas_183", %"$empty_default_177" + %"$$retval_6_198" = load %TName_Bool*, %TName_Bool** %"$retval_6", align 8 + ret %TName_Bool* %"$$retval_6_198" +} -"$empty_default_167": ; preds = %"$have_gas_161" - br label %"$matchsucc_163" +define internal %TName_Bool* @"$fundef_7"(%"$$fundef_7_env_113"* %0, %TName_Bool* %1, %TName_Bool* %2) { +entry: + %"$retval_8" = alloca %TName_Bool*, align 8 + %"$gasrem_142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_143" = icmp ugt i64 2, %"$gasrem_142" + br i1 %"$gascmp_143", label %"$out_of_gas_144", label %"$have_gas_145" + +"$out_of_gas_144": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_145" + +"$have_gas_145": ; preds = %"$out_of_gas_144", %entry + %"$consume_146" = sub i64 %"$gasrem_142", 2 + store i64 %"$consume_146", i64* @_gasrem, align 8 + %"$b_tag_148" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_149" = load i8, i8* %"$b_tag_148", align 1 + switch i8 %"$b_tag_149", label %"$empty_default_150" [ + i8 0, label %"$True_151" + i8 1, label %"$False_161" + ] -"$matchsucc_163": ; preds = %"$have_gas_183", %"$have_gas_173", %"$empty_default_167" - %"$$retval_29_185" = load %TName_Bool*, %TName_Bool** %"$retval_29", align 8 - ret %TName_Bool* %"$$retval_29_185" +"$True_151": ; preds = %"$have_gas_145" + %"$b_152" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_153" = load i64, i64* @_gasrem, align 8 + %"$gascmp_154" = icmp ugt i64 1, %"$gasrem_153" + br i1 %"$gascmp_154", label %"$out_of_gas_155", label %"$have_gas_156" + +"$out_of_gas_155": ; preds = %"$True_151" + call void @_out_of_gas() + br label %"$have_gas_156" + +"$have_gas_156": ; preds = %"$out_of_gas_155", %"$True_151" + %"$consume_157" = sub i64 %"$gasrem_153", 1 + store i64 %"$consume_157", i64* @_gasrem, align 8 + %"$adtval_158_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_158_salloc" = call i8* @_salloc(i8* %"$adtval_158_load", i64 1) + %"$adtval_158" = bitcast i8* %"$adtval_158_salloc" to %CName_True* + %"$adtgep_159" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_158", i32 0, i32 0 + store i8 0, i8* %"$adtgep_159", align 1 + %"$adtptr_160" = bitcast %CName_True* %"$adtval_158" to %TName_Bool* + store %TName_Bool* %"$adtptr_160", %TName_Bool** %"$retval_8", align 8 + br label %"$matchsucc_147" + +"$False_161": ; preds = %"$have_gas_145" + %"$b_162" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_163" = load i64, i64* @_gasrem, align 8 + %"$gascmp_164" = icmp ugt i64 1, %"$gasrem_163" + br i1 %"$gascmp_164", label %"$out_of_gas_165", label %"$have_gas_166" + +"$out_of_gas_165": ; preds = %"$False_161" + call void @_out_of_gas() + br label %"$have_gas_166" + +"$have_gas_166": ; preds = %"$out_of_gas_165", %"$False_161" + %"$consume_167" = sub i64 %"$gasrem_163", 1 + store i64 %"$consume_167", i64* @_gasrem, align 8 + store %TName_Bool* %2, %TName_Bool** %"$retval_8", align 8 + br label %"$matchsucc_147" + +"$empty_default_150": ; preds = %"$have_gas_145" + br label %"$matchsucc_147" + +"$matchsucc_147": ; preds = %"$have_gas_166", %"$have_gas_156", %"$empty_default_150" + %"$$retval_8_168" = load %TName_Bool*, %TName_Bool** %"$retval_8", align 8 + ret %TName_Bool* %"$$retval_8_168" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_26"(%"$$fundef_26_env_144"* %0, %TName_Bool* %1) { +define internal %TName_Bool* @"$fundef_9"(%"$$fundef_9_env_114"* %0, %TName_Bool* %1, %TName_Bool* %2) { entry: - %"$retval_27" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_145" = load i64, i64* @_gasrem, align 8 - %"$gascmp_146" = icmp ugt i64 1, %"$gasrem_145" - br i1 %"$gascmp_146", label %"$out_of_gas_147", label %"$have_gas_148" - -"$out_of_gas_147": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_148" - -"$have_gas_148": ; preds = %"$out_of_gas_147", %entry - %"$consume_149" = sub i64 %"$gasrem_145", 1 - store i64 %"$consume_149", i64* @_gasrem, align 8 - %"$$fundef_28_envp_150_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_28_envp_150_salloc" = call i8* @_salloc(i8* %"$$fundef_28_envp_150_load", i64 8) - %"$$fundef_28_envp_150" = bitcast i8* %"$$fundef_28_envp_150_salloc" to %"$$fundef_28_env_143"* - %"$$fundef_28_env_voidp_152" = bitcast %"$$fundef_28_env_143"* %"$$fundef_28_envp_150" to i8* - %"$$fundef_28_cloval_153" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_28_env_143"*, %TName_Bool*)* @"$fundef_28" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_28_env_voidp_152", 1 - %"$$fundef_28_env_b_154" = getelementptr inbounds %"$$fundef_28_env_143", %"$$fundef_28_env_143"* %"$$fundef_28_envp_150", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_28_env_b_154", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_28_cloval_153", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_27", align 8 - %"$$retval_27_155" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_27", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_27_155" + %"$retval_10" = alloca %TName_Bool*, align 8 + %"$gasrem_115" = load i64, i64* @_gasrem, align 8 + %"$gascmp_116" = icmp ugt i64 2, %"$gasrem_115" + br i1 %"$gascmp_116", label %"$out_of_gas_117", label %"$have_gas_118" + +"$out_of_gas_117": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_118" + +"$have_gas_118": ; preds = %"$out_of_gas_117", %entry + %"$consume_119" = sub i64 %"$gasrem_115", 2 + store i64 %"$consume_119", i64* @_gasrem, align 8 + %"$b_tag_121" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_122" = load i8, i8* %"$b_tag_121", align 1 + switch i8 %"$b_tag_122", label %"$empty_default_123" [ + i8 1, label %"$False_124" + i8 0, label %"$True_134" + ] + +"$False_124": ; preds = %"$have_gas_118" + %"$b_125" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_126" = load i64, i64* @_gasrem, align 8 + %"$gascmp_127" = icmp ugt i64 1, %"$gasrem_126" + br i1 %"$gascmp_127", label %"$out_of_gas_128", label %"$have_gas_129" + +"$out_of_gas_128": ; preds = %"$False_124" + call void @_out_of_gas() + br label %"$have_gas_129" + +"$have_gas_129": ; preds = %"$out_of_gas_128", %"$False_124" + %"$consume_130" = sub i64 %"$gasrem_126", 1 + store i64 %"$consume_130", i64* @_gasrem, align 8 + %"$adtval_131_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_131_salloc" = call i8* @_salloc(i8* %"$adtval_131_load", i64 1) + %"$adtval_131" = bitcast i8* %"$adtval_131_salloc" to %CName_False* + %"$adtgep_132" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_131", i32 0, i32 0 + store i8 1, i8* %"$adtgep_132", align 1 + %"$adtptr_133" = bitcast %CName_False* %"$adtval_131" to %TName_Bool* + store %TName_Bool* %"$adtptr_133", %TName_Bool** %"$retval_10", align 8 + br label %"$matchsucc_120" + +"$True_134": ; preds = %"$have_gas_118" + %"$b_135" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_136" = load i64, i64* @_gasrem, align 8 + %"$gascmp_137" = icmp ugt i64 1, %"$gasrem_136" + br i1 %"$gascmp_137", label %"$out_of_gas_138", label %"$have_gas_139" + +"$out_of_gas_138": ; preds = %"$True_134" + call void @_out_of_gas() + br label %"$have_gas_139" + +"$have_gas_139": ; preds = %"$out_of_gas_138", %"$True_134" + %"$consume_140" = sub i64 %"$gasrem_136", 1 + store i64 %"$consume_140", i64* @_gasrem, align 8 + store %TName_Bool* %2, %TName_Bool** %"$retval_10", align 8 + br label %"$matchsucc_120" + +"$empty_default_123": ; preds = %"$have_gas_118" + br label %"$matchsucc_120" + +"$matchsucc_120": ; preds = %"$have_gas_139", %"$have_gas_129", %"$empty_default_123" + %"$$retval_10_141" = load %TName_Bool*, %TName_Bool** %"$retval_10", align 8 + ret %TName_Bool* %"$$retval_10_141" } declare void @_out_of_gas() @@ -944,242 +757,242 @@ declare %TName_Bool* @_eq_BNum(i8*, i8*, i8*) define void @_init_libs() { entry: - %"$gasrem_451" = load i64, i64* @_gasrem, align 8 - %"$gascmp_452" = icmp ugt i64 1, %"$gasrem_451" - br i1 %"$gascmp_452", label %"$out_of_gas_453", label %"$have_gas_454" - -"$out_of_gas_453": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_454" - -"$have_gas_454": ; preds = %"$out_of_gas_453", %entry - %"$consume_455" = sub i64 %"$gasrem_451", 1 - store i64 %"$consume_455", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_26_env_144"*, %TName_Bool*)* @"$fundef_26" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$gasrem_459" = load i64, i64* @_gasrem, align 8 - %"$gascmp_460" = icmp ugt i64 1, %"$gasrem_459" - br i1 %"$gascmp_460", label %"$out_of_gas_461", label %"$have_gas_462" - -"$out_of_gas_461": ; preds = %"$have_gas_454" - call void @_out_of_gas() - br label %"$have_gas_462" - -"$have_gas_462": ; preds = %"$out_of_gas_461", %"$have_gas_454" - %"$consume_463" = sub i64 %"$gasrem_459", 1 - store i64 %"$consume_463", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_22_env_142"*, %TName_Bool*)* @"$fundef_22" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 - %"$gasrem_467" = load i64, i64* @_gasrem, align 8 - %"$gascmp_468" = icmp ugt i64 1, %"$gasrem_467" - br i1 %"$gascmp_468", label %"$out_of_gas_469", label %"$have_gas_470" - -"$out_of_gas_469": ; preds = %"$have_gas_462" - call void @_out_of_gas() - br label %"$have_gas_470" - -"$have_gas_470": ; preds = %"$out_of_gas_469", %"$have_gas_462" - %"$consume_471" = sub i64 %"$gasrem_467", 1 - store i64 %"$consume_471", i64* @_gasrem, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_20_env_140"*, %TName_Bool*)* @"$fundef_20" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$gasrem_475" = load i64, i64* @_gasrem, align 8 - %"$gascmp_476" = icmp ugt i64 1, %"$gasrem_475" - br i1 %"$gascmp_476", label %"$out_of_gas_477", label %"$have_gas_478" - -"$out_of_gas_477": ; preds = %"$have_gas_470" - call void @_out_of_gas() - br label %"$have_gas_478" - -"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_470" - %"$consume_479" = sub i64 %"$gasrem_475", 1 - store i64 %"$consume_479", i64* @_gasrem, align 8 - store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_40_env_139"*, i8*)* @"$fundef_40" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 - %"$gasrem_483" = load i64, i64* @_gasrem, align 8 - %"$gascmp_484" = icmp ugt i64 1, %"$gasrem_483" - br i1 %"$gascmp_484", label %"$out_of_gas_485", label %"$have_gas_486" - -"$out_of_gas_485": ; preds = %"$have_gas_478" - call void @_out_of_gas() - br label %"$have_gas_486" - -"$have_gas_486": ; preds = %"$out_of_gas_485", %"$have_gas_478" - %"$consume_487" = sub i64 %"$gasrem_483", 1 - store i64 %"$consume_487", i64* @_gasrem, align 8 - store { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)* bitcast ({ { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_34_env_138"*, %Map_ByStr20_Uint128*)* @"$fundef_34" to { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*), i8* null }, { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* }* @crowdfunding.check_update, align 8 - %"$gasrem_491" = load i64, i64* @_gasrem, align 8 - %"$gascmp_492" = icmp ugt i64 1, %"$gasrem_491" - br i1 %"$gascmp_492", label %"$out_of_gas_493", label %"$have_gas_494" - -"$out_of_gas_493": ; preds = %"$have_gas_486" - call void @_out_of_gas() - br label %"$have_gas_494" - -"$have_gas_494": ; preds = %"$out_of_gas_493", %"$have_gas_486" - %"$consume_495" = sub i64 %"$gasrem_491", 1 - store i64 %"$consume_495", i64* @_gasrem, align 8 - %"$$fundef_30_envp_496_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_30_envp_496_salloc" = call i8* @_salloc(i8* %"$$fundef_30_envp_496_load", i64 16) - %"$$fundef_30_envp_496" = bitcast i8* %"$$fundef_30_envp_496_salloc" to %"$$fundef_30_env_135"* - %"$$fundef_30_env_voidp_498" = bitcast %"$$fundef_30_env_135"* %"$$fundef_30_envp_496" to i8* - %"$$fundef_30_cloval_499" = insertvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)* bitcast ({ %TName_Bool* (i8*, i8*)*, i8* } (%"$$fundef_30_env_135"*, i8*)* @"$fundef_30" to { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*), i8* undef }, i8* %"$$fundef_30_env_voidp_498", 1 - %"$$fundef_30_env_BoolUtils.orb_500" = getelementptr inbounds %"$$fundef_30_env_135", %"$$fundef_30_env_135"* %"$$fundef_30_envp_496", i32 0, i32 0 - %"$BoolUtils.orb_501" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_501", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_30_env_BoolUtils.orb_500", align 8 - store { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$$fundef_30_cloval_499", { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8 - %"$gasrem_502" = load i64, i64* @_gasrem, align 8 - %"$gascmp_503" = icmp ugt i64 1, %"$gasrem_502" - br i1 %"$gascmp_503", label %"$out_of_gas_504", label %"$have_gas_505" - -"$out_of_gas_504": ; preds = %"$have_gas_494" - call void @_out_of_gas() - br label %"$have_gas_505" - -"$have_gas_505": ; preds = %"$out_of_gas_504", %"$have_gas_494" - %"$consume_506" = sub i64 %"$gasrem_502", 1 - store i64 %"$consume_506", i64* @_gasrem, align 8 + %"$gasrem_334" = load i64, i64* @_gasrem, align 8 + %"$gascmp_335" = icmp ugt i64 2, %"$gasrem_334" + br i1 %"$gascmp_335", label %"$out_of_gas_336", label %"$have_gas_337" + +"$out_of_gas_336": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_337" + +"$have_gas_337": ; preds = %"$out_of_gas_336", %entry + %"$consume_338" = sub i64 %"$gasrem_334", 2 + store i64 %"$consume_338", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_9_env_114"*, %TName_Bool*, %TName_Bool*)* @"$fundef_9" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$gasrem_342" = load i64, i64* @_gasrem, align 8 + %"$gascmp_343" = icmp ugt i64 2, %"$gasrem_342" + br i1 %"$gascmp_343", label %"$out_of_gas_344", label %"$have_gas_345" + +"$out_of_gas_344": ; preds = %"$have_gas_337" + call void @_out_of_gas() + br label %"$have_gas_345" + +"$have_gas_345": ; preds = %"$out_of_gas_344", %"$have_gas_337" + %"$consume_346" = sub i64 %"$gasrem_342", 2 + store i64 %"$consume_346", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_7_env_113"*, %TName_Bool*, %TName_Bool*)* @"$fundef_7" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 + %"$gasrem_350" = load i64, i64* @_gasrem, align 8 + %"$gascmp_351" = icmp ugt i64 1, %"$gasrem_350" + br i1 %"$gascmp_351", label %"$out_of_gas_352", label %"$have_gas_353" + +"$out_of_gas_352": ; preds = %"$have_gas_345" + call void @_out_of_gas() + br label %"$have_gas_353" + +"$have_gas_353": ; preds = %"$out_of_gas_352", %"$have_gas_345" + %"$consume_354" = sub i64 %"$gasrem_350", 1 + store i64 %"$consume_354", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_5_env_112"*, %TName_Bool*)* @"$fundef_5" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$gasrem_358" = load i64, i64* @_gasrem, align 8 + %"$gascmp_359" = icmp ugt i64 1, %"$gasrem_358" + br i1 %"$gascmp_359", label %"$out_of_gas_360", label %"$have_gas_361" + +"$out_of_gas_360": ; preds = %"$have_gas_353" + call void @_out_of_gas() + br label %"$have_gas_361" + +"$have_gas_361": ; preds = %"$out_of_gas_360", %"$have_gas_353" + %"$consume_362" = sub i64 %"$gasrem_358", 1 + store i64 %"$consume_362", i64* @_gasrem, align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_15_env_111"*, i8*)* @"$fundef_15" to %TName_List_Message* (i8*, i8*)*), i8* null }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 + %"$gasrem_366" = load i64, i64* @_gasrem, align 8 + %"$gascmp_367" = icmp ugt i64 3, %"$gasrem_366" + br i1 %"$gascmp_367", label %"$out_of_gas_368", label %"$have_gas_369" + +"$out_of_gas_368": ; preds = %"$have_gas_361" + call void @_out_of_gas() + br label %"$have_gas_369" + +"$have_gas_369": ; preds = %"$out_of_gas_368", %"$have_gas_361" + %"$consume_370" = sub i64 %"$gasrem_366", 3 + store i64 %"$consume_370", i64* @_gasrem, align 8 + store { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* } { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)* bitcast (%"TName_Option_Map_(ByStr20)_(Uint128)"* (%"$$fundef_13_env_110"*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)* @"$fundef_13" to %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*), i8* null }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* }* @crowdfunding.check_update, align 8 + %"$gasrem_374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_375" = icmp ugt i64 2, %"$gasrem_374" + br i1 %"$gascmp_375", label %"$out_of_gas_376", label %"$have_gas_377" + +"$out_of_gas_376": ; preds = %"$have_gas_369" + call void @_out_of_gas() + br label %"$have_gas_377" + +"$have_gas_377": ; preds = %"$out_of_gas_376", %"$have_gas_369" + %"$consume_378" = sub i64 %"$gasrem_374", 2 + store i64 %"$consume_378", i64* @_gasrem, align 8 + %"$$fundef_11_envp_379_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_11_envp_379_salloc" = call i8* @_salloc(i8* %"$$fundef_11_envp_379_load", i64 16) + %"$$fundef_11_envp_379" = bitcast i8* %"$$fundef_11_envp_379_salloc" to %"$$fundef_11_env_109"* + %"$$fundef_11_env_voidp_381" = bitcast %"$$fundef_11_env_109"* %"$$fundef_11_envp_379" to i8* + %"$$fundef_11_cloval_382" = insertvalue { %TName_Bool* (i8*, i8*, i8*)*, i8* } { %TName_Bool* (i8*, i8*, i8*)* bitcast (%TName_Bool* (%"$$fundef_11_env_109"*, i8*, i8*)* @"$fundef_11" to %TName_Bool* (i8*, i8*, i8*)*), i8* undef }, i8* %"$$fundef_11_env_voidp_381", 1 + %"$$fundef_11_env_BoolUtils.orb_383" = getelementptr inbounds %"$$fundef_11_env_109", %"$$fundef_11_env_109"* %"$$fundef_11_envp_379", i32 0, i32 0 + %"$BoolUtils.orb_384" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_384", { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %"$$fundef_11_env_BoolUtils.orb_383", align 8 + store { %TName_Bool* (i8*, i8*, i8*)*, i8* } %"$$fundef_11_cloval_382", { %TName_Bool* (i8*, i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8 + %"$gasrem_385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_386" = icmp ugt i64 1, %"$gasrem_385" + br i1 %"$gascmp_386", label %"$out_of_gas_387", label %"$have_gas_388" + +"$out_of_gas_387": ; preds = %"$have_gas_377" + call void @_out_of_gas() + br label %"$have_gas_388" + +"$have_gas_388": ; preds = %"$out_of_gas_387", %"$have_gas_377" + %"$consume_389" = sub i64 %"$gasrem_385", 1 + store i64 %"$consume_389", i64* @_gasrem, align 8 store %Int32 { i32 1 }, %Int32* @crowdfunding.accepted_code, align 4 - %"$gasrem_507" = load i64, i64* @_gasrem, align 8 - %"$gascmp_508" = icmp ugt i64 1, %"$gasrem_507" - br i1 %"$gascmp_508", label %"$out_of_gas_509", label %"$have_gas_510" + %"$gasrem_390" = load i64, i64* @_gasrem, align 8 + %"$gascmp_391" = icmp ugt i64 1, %"$gasrem_390" + br i1 %"$gascmp_391", label %"$out_of_gas_392", label %"$have_gas_393" -"$out_of_gas_509": ; preds = %"$have_gas_505" +"$out_of_gas_392": ; preds = %"$have_gas_388" call void @_out_of_gas() - br label %"$have_gas_510" + br label %"$have_gas_393" -"$have_gas_510": ; preds = %"$out_of_gas_509", %"$have_gas_505" - %"$consume_511" = sub i64 %"$gasrem_507", 1 - store i64 %"$consume_511", i64* @_gasrem, align 8 +"$have_gas_393": ; preds = %"$out_of_gas_392", %"$have_gas_388" + %"$consume_394" = sub i64 %"$gasrem_390", 1 + store i64 %"$consume_394", i64* @_gasrem, align 8 store %Int32 { i32 2 }, %Int32* @crowdfunding.missed_deadline_code, align 4 - %"$gasrem_512" = load i64, i64* @_gasrem, align 8 - %"$gascmp_513" = icmp ugt i64 1, %"$gasrem_512" - br i1 %"$gascmp_513", label %"$out_of_gas_514", label %"$have_gas_515" + %"$gasrem_395" = load i64, i64* @_gasrem, align 8 + %"$gascmp_396" = icmp ugt i64 1, %"$gasrem_395" + br i1 %"$gascmp_396", label %"$out_of_gas_397", label %"$have_gas_398" -"$out_of_gas_514": ; preds = %"$have_gas_510" +"$out_of_gas_397": ; preds = %"$have_gas_393" call void @_out_of_gas() - br label %"$have_gas_515" + br label %"$have_gas_398" -"$have_gas_515": ; preds = %"$out_of_gas_514", %"$have_gas_510" - %"$consume_516" = sub i64 %"$gasrem_512", 1 - store i64 %"$consume_516", i64* @_gasrem, align 8 +"$have_gas_398": ; preds = %"$out_of_gas_397", %"$have_gas_393" + %"$consume_399" = sub i64 %"$gasrem_395", 1 + store i64 %"$consume_399", i64* @_gasrem, align 8 store %Int32 { i32 3 }, %Int32* @crowdfunding.already_backed_code, align 4 - %"$gasrem_517" = load i64, i64* @_gasrem, align 8 - %"$gascmp_518" = icmp ugt i64 1, %"$gasrem_517" - br i1 %"$gascmp_518", label %"$out_of_gas_519", label %"$have_gas_520" + %"$gasrem_400" = load i64, i64* @_gasrem, align 8 + %"$gascmp_401" = icmp ugt i64 1, %"$gasrem_400" + br i1 %"$gascmp_401", label %"$out_of_gas_402", label %"$have_gas_403" -"$out_of_gas_519": ; preds = %"$have_gas_515" +"$out_of_gas_402": ; preds = %"$have_gas_398" call void @_out_of_gas() - br label %"$have_gas_520" + br label %"$have_gas_403" -"$have_gas_520": ; preds = %"$out_of_gas_519", %"$have_gas_515" - %"$consume_521" = sub i64 %"$gasrem_517", 1 - store i64 %"$consume_521", i64* @_gasrem, align 8 +"$have_gas_403": ; preds = %"$out_of_gas_402", %"$have_gas_398" + %"$consume_404" = sub i64 %"$gasrem_400", 1 + store i64 %"$consume_404", i64* @_gasrem, align 8 store %Int32 { i32 4 }, %Int32* @crowdfunding.not_owner_code, align 4 - %"$gasrem_522" = load i64, i64* @_gasrem, align 8 - %"$gascmp_523" = icmp ugt i64 1, %"$gasrem_522" - br i1 %"$gascmp_523", label %"$out_of_gas_524", label %"$have_gas_525" + %"$gasrem_405" = load i64, i64* @_gasrem, align 8 + %"$gascmp_406" = icmp ugt i64 1, %"$gasrem_405" + br i1 %"$gascmp_406", label %"$out_of_gas_407", label %"$have_gas_408" -"$out_of_gas_524": ; preds = %"$have_gas_520" +"$out_of_gas_407": ; preds = %"$have_gas_403" call void @_out_of_gas() - br label %"$have_gas_525" + br label %"$have_gas_408" -"$have_gas_525": ; preds = %"$out_of_gas_524", %"$have_gas_520" - %"$consume_526" = sub i64 %"$gasrem_522", 1 - store i64 %"$consume_526", i64* @_gasrem, align 8 +"$have_gas_408": ; preds = %"$out_of_gas_407", %"$have_gas_403" + %"$consume_409" = sub i64 %"$gasrem_405", 1 + store i64 %"$consume_409", i64* @_gasrem, align 8 store %Int32 { i32 5 }, %Int32* @crowdfunding.too_early_code, align 4 - %"$gasrem_527" = load i64, i64* @_gasrem, align 8 - %"$gascmp_528" = icmp ugt i64 1, %"$gasrem_527" - br i1 %"$gascmp_528", label %"$out_of_gas_529", label %"$have_gas_530" + %"$gasrem_410" = load i64, i64* @_gasrem, align 8 + %"$gascmp_411" = icmp ugt i64 1, %"$gasrem_410" + br i1 %"$gascmp_411", label %"$out_of_gas_412", label %"$have_gas_413" -"$out_of_gas_529": ; preds = %"$have_gas_525" +"$out_of_gas_412": ; preds = %"$have_gas_408" call void @_out_of_gas() - br label %"$have_gas_530" + br label %"$have_gas_413" -"$have_gas_530": ; preds = %"$out_of_gas_529", %"$have_gas_525" - %"$consume_531" = sub i64 %"$gasrem_527", 1 - store i64 %"$consume_531", i64* @_gasrem, align 8 +"$have_gas_413": ; preds = %"$out_of_gas_412", %"$have_gas_408" + %"$consume_414" = sub i64 %"$gasrem_410", 1 + store i64 %"$consume_414", i64* @_gasrem, align 8 store %Int32 { i32 6 }, %Int32* @crowdfunding.got_funds_code, align 4 - %"$gasrem_532" = load i64, i64* @_gasrem, align 8 - %"$gascmp_533" = icmp ugt i64 1, %"$gasrem_532" - br i1 %"$gascmp_533", label %"$out_of_gas_534", label %"$have_gas_535" + %"$gasrem_415" = load i64, i64* @_gasrem, align 8 + %"$gascmp_416" = icmp ugt i64 1, %"$gasrem_415" + br i1 %"$gascmp_416", label %"$out_of_gas_417", label %"$have_gas_418" -"$out_of_gas_534": ; preds = %"$have_gas_530" +"$out_of_gas_417": ; preds = %"$have_gas_413" call void @_out_of_gas() - br label %"$have_gas_535" + br label %"$have_gas_418" -"$have_gas_535": ; preds = %"$out_of_gas_534", %"$have_gas_530" - %"$consume_536" = sub i64 %"$gasrem_532", 1 - store i64 %"$consume_536", i64* @_gasrem, align 8 +"$have_gas_418": ; preds = %"$out_of_gas_417", %"$have_gas_413" + %"$consume_419" = sub i64 %"$gasrem_415", 1 + store i64 %"$consume_419", i64* @_gasrem, align 8 store %Int32 { i32 7 }, %Int32* @crowdfunding.cannot_get_funds, align 4 - %"$gasrem_537" = load i64, i64* @_gasrem, align 8 - %"$gascmp_538" = icmp ugt i64 1, %"$gasrem_537" - br i1 %"$gascmp_538", label %"$out_of_gas_539", label %"$have_gas_540" + %"$gasrem_420" = load i64, i64* @_gasrem, align 8 + %"$gascmp_421" = icmp ugt i64 1, %"$gasrem_420" + br i1 %"$gascmp_421", label %"$out_of_gas_422", label %"$have_gas_423" -"$out_of_gas_539": ; preds = %"$have_gas_535" +"$out_of_gas_422": ; preds = %"$have_gas_418" call void @_out_of_gas() - br label %"$have_gas_540" + br label %"$have_gas_423" -"$have_gas_540": ; preds = %"$out_of_gas_539", %"$have_gas_535" - %"$consume_541" = sub i64 %"$gasrem_537", 1 - store i64 %"$consume_541", i64* @_gasrem, align 8 +"$have_gas_423": ; preds = %"$out_of_gas_422", %"$have_gas_418" + %"$consume_424" = sub i64 %"$gasrem_420", 1 + store i64 %"$consume_424", i64* @_gasrem, align 8 store %Int32 { i32 8 }, %Int32* @crowdfunding.cannot_reclaim_code, align 4 - %"$gasrem_542" = load i64, i64* @_gasrem, align 8 - %"$gascmp_543" = icmp ugt i64 1, %"$gasrem_542" - br i1 %"$gascmp_543", label %"$out_of_gas_544", label %"$have_gas_545" + %"$gasrem_425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_426" = icmp ugt i64 1, %"$gasrem_425" + br i1 %"$gascmp_426", label %"$out_of_gas_427", label %"$have_gas_428" -"$out_of_gas_544": ; preds = %"$have_gas_540" +"$out_of_gas_427": ; preds = %"$have_gas_423" call void @_out_of_gas() - br label %"$have_gas_545" + br label %"$have_gas_428" -"$have_gas_545": ; preds = %"$out_of_gas_544", %"$have_gas_540" - %"$consume_546" = sub i64 %"$gasrem_542", 1 - store i64 %"$consume_546", i64* @_gasrem, align 8 +"$have_gas_428": ; preds = %"$out_of_gas_427", %"$have_gas_423" + %"$consume_429" = sub i64 %"$gasrem_425", 1 + store i64 %"$consume_429", i64* @_gasrem, align 8 store %Int32 { i32 9 }, %Int32* @crowdfunding.reclaimed_code, align 4 ret void } define void @_init_state() { entry: - %"$backers_42" = alloca %Map_ByStr20_Uint128*, align 8 - %"$gasrem_547" = load i64, i64* @_gasrem, align 8 - %"$gascmp_548" = icmp ugt i64 1, %"$gasrem_547" - br i1 %"$gascmp_548", label %"$out_of_gas_549", label %"$have_gas_550" - -"$out_of_gas_549": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_550" - -"$have_gas_550": ; preds = %"$out_of_gas_549", %entry - %"$consume_551" = sub i64 %"$gasrem_547", 1 - store i64 %"$consume_551", i64* @_gasrem, align 8 - %"$execptr_load_552" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_553" = call i8* @_new_empty_map(i8* %"$execptr_load_552") - %"$_new_empty_map_554" = bitcast i8* %"$_new_empty_map_call_553" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$_new_empty_map_554", %Map_ByStr20_Uint128** %"$backers_42", align 8 - %"$execptr_load_555" = load i8*, i8** @_execptr, align 8 - %"$$backers_42_557" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$backers_42", align 8 - %"$update_value_558" = bitcast %Map_ByStr20_Uint128* %"$$backers_42_557" to i8* - call void @_update_field(i8* %"$execptr_load_555", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_556", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_83", i32 0, i8* null, i8* %"$update_value_558") - %"$funded_43" = alloca %TName_Bool*, align 8 - %"$gasrem_559" = load i64, i64* @_gasrem, align 8 - %"$gascmp_560" = icmp ugt i64 1, %"$gasrem_559" - br i1 %"$gascmp_560", label %"$out_of_gas_561", label %"$have_gas_562" - -"$out_of_gas_561": ; preds = %"$have_gas_550" - call void @_out_of_gas() - br label %"$have_gas_562" - -"$have_gas_562": ; preds = %"$out_of_gas_561", %"$have_gas_550" - %"$consume_563" = sub i64 %"$gasrem_559", 1 - store i64 %"$consume_563", i64* @_gasrem, align 8 - %"$adtval_564_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_564_salloc" = call i8* @_salloc(i8* %"$adtval_564_load", i64 1) - %"$adtval_564" = bitcast i8* %"$adtval_564_salloc" to %CName_False* - %"$adtgep_565" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_564", i32 0, i32 0 - store i8 1, i8* %"$adtgep_565", align 1 - %"$adtptr_566" = bitcast %CName_False* %"$adtval_564" to %TName_Bool* - store %TName_Bool* %"$adtptr_566", %TName_Bool** %"$funded_43", align 8 - %"$execptr_load_567" = load i8*, i8** @_execptr, align 8 - %"$$funded_43_569" = load %TName_Bool*, %TName_Bool** %"$funded_43", align 8 - %"$update_value_570" = bitcast %TName_Bool* %"$$funded_43_569" to i8* - call void @_update_field(i8* %"$execptr_load_567", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_568", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", i32 0, i8* null, i8* %"$update_value_570") + %"$backers_17" = alloca %Map_ByStr20_Uint128*, align 8 + %"$gasrem_430" = load i64, i64* @_gasrem, align 8 + %"$gascmp_431" = icmp ugt i64 1, %"$gasrem_430" + br i1 %"$gascmp_431", label %"$out_of_gas_432", label %"$have_gas_433" + +"$out_of_gas_432": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_433" + +"$have_gas_433": ; preds = %"$out_of_gas_432", %entry + %"$consume_434" = sub i64 %"$gasrem_430", 1 + store i64 %"$consume_434", i64* @_gasrem, align 8 + %"$execptr_load_435" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_436" = call i8* @_new_empty_map(i8* %"$execptr_load_435") + %"$_new_empty_map_437" = bitcast i8* %"$_new_empty_map_call_436" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$_new_empty_map_437", %Map_ByStr20_Uint128** %"$backers_17", align 8 + %"$execptr_load_438" = load i8*, i8** @_execptr, align 8 + %"$$backers_17_440" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$backers_17", align 8 + %"$update_value_441" = bitcast %Map_ByStr20_Uint128* %"$$backers_17_440" to i8* + call void @_update_field(i8* %"$execptr_load_438", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_439", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_58", i32 0, i8* null, i8* %"$update_value_441") + %"$funded_18" = alloca %TName_Bool*, align 8 + %"$gasrem_442" = load i64, i64* @_gasrem, align 8 + %"$gascmp_443" = icmp ugt i64 1, %"$gasrem_442" + br i1 %"$gascmp_443", label %"$out_of_gas_444", label %"$have_gas_445" + +"$out_of_gas_444": ; preds = %"$have_gas_433" + call void @_out_of_gas() + br label %"$have_gas_445" + +"$have_gas_445": ; preds = %"$out_of_gas_444", %"$have_gas_433" + %"$consume_446" = sub i64 %"$gasrem_442", 1 + store i64 %"$consume_446", i64* @_gasrem, align 8 + %"$adtval_447_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_447_salloc" = call i8* @_salloc(i8* %"$adtval_447_load", i64 1) + %"$adtval_447" = bitcast i8* %"$adtval_447_salloc" to %CName_False* + %"$adtgep_448" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_447", i32 0, i32 0 + store i8 1, i8* %"$adtgep_448", align 1 + %"$adtptr_449" = bitcast %CName_False* %"$adtval_447" to %TName_Bool* + store %TName_Bool* %"$adtptr_449", %TName_Bool** %"$funded_18", align 8 + %"$execptr_load_450" = load i8*, i8** @_execptr, align 8 + %"$$funded_18_452" = load %TName_Bool*, %TName_Bool** %"$funded_18", align 8 + %"$update_value_453" = bitcast %TName_Bool* %"$$funded_18_452" to i8* + call void @_update_field(i8* %"$execptr_load_450", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_451", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", i32 0, i8* null, i8* %"$update_value_453") ret void } @@ -1187,476 +1000,452 @@ declare i8* @_new_empty_map(i8*) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$Donate_571"(%Uint128 %_amount, [20 x i8]* %"$_origin_572", [20 x i8]* %"$_sender_573") { +define internal void @"$Donate_454"(%Uint128 %_amount, [20 x i8]* %"$_origin_455", [20 x i8]* %"$_sender_456") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_572", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_573", align 1 - %"$gasrem_574" = load i64, i64* @_gasrem, align 8 - %"$gascmp_575" = icmp ugt i64 1, %"$gasrem_574" - br i1 %"$gascmp_575", label %"$out_of_gas_576", label %"$have_gas_577" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_455", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_456", align 1 + %"$gasrem_457" = load i64, i64* @_gasrem, align 8 + %"$gascmp_458" = icmp ugt i64 1, %"$gasrem_457" + br i1 %"$gascmp_458", label %"$out_of_gas_459", label %"$have_gas_460" -"$out_of_gas_576": ; preds = %entry +"$out_of_gas_459": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_577" + br label %"$have_gas_460" -"$have_gas_577": ; preds = %"$out_of_gas_576", %entry - %"$consume_578" = sub i64 %"$gasrem_574", 1 - store i64 %"$consume_578", i64* @_gasrem, align 8 +"$have_gas_460": ; preds = %"$out_of_gas_459", %entry + %"$consume_461" = sub i64 %"$gasrem_457", 1 + store i64 %"$consume_461", i64* @_gasrem, align 8 %blk = alloca i8*, align 8 - %"$execptr_load_580" = load i8*, i8** @_execptr, align 8 - %"$blk_call_581" = call i8* @_read_blockchain(i8* %"$execptr_load_580", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_579", i32 0, i32 0), i32 11 }) - store i8* %"$blk_call_581", i8** %blk, align 8 - %"$gasrem_583" = load i64, i64* @_gasrem, align 8 - %"$gascmp_584" = icmp ugt i64 1, %"$gasrem_583" - br i1 %"$gascmp_584", label %"$out_of_gas_585", label %"$have_gas_586" + %"$execptr_load_463" = load i8*, i8** @_execptr, align 8 + %"$blk_call_464" = call i8* @_read_blockchain(i8* %"$execptr_load_463", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_462", i32 0, i32 0), i32 11 }) + store i8* %"$blk_call_464", i8** %blk, align 8 + %"$gasrem_466" = load i64, i64* @_gasrem, align 8 + %"$gascmp_467" = icmp ugt i64 1, %"$gasrem_466" + br i1 %"$gascmp_467", label %"$out_of_gas_468", label %"$have_gas_469" -"$out_of_gas_585": ; preds = %"$have_gas_577" +"$out_of_gas_468": ; preds = %"$have_gas_460" call void @_out_of_gas() - br label %"$have_gas_586" + br label %"$have_gas_469" -"$have_gas_586": ; preds = %"$out_of_gas_585", %"$have_gas_577" - %"$consume_587" = sub i64 %"$gasrem_583", 1 - store i64 %"$consume_587", i64* @_gasrem, align 8 +"$have_gas_469": ; preds = %"$out_of_gas_468", %"$have_gas_460" + %"$consume_470" = sub i64 %"$gasrem_466", 1 + store i64 %"$consume_470", i64* @_gasrem, align 8 %in_time = alloca %TName_Bool*, align 8 - %"$gasrem_588" = load i64, i64* @_gasrem, align 8 - %"$gascmp_589" = icmp ugt i64 1, %"$gasrem_588" - br i1 %"$gascmp_589", label %"$out_of_gas_590", label %"$have_gas_591" - -"$out_of_gas_590": ; preds = %"$have_gas_586" - call void @_out_of_gas() - br label %"$have_gas_591" - -"$have_gas_591": ; preds = %"$out_of_gas_590", %"$have_gas_586" - %"$consume_592" = sub i64 %"$gasrem_588", 1 - store i64 %"$consume_592", i64* @_gasrem, align 8 - %"$crowdfunding.blk_leq_5" = alloca { %TName_Bool* (i8*, i8*)*, i8* }, align 8 - %"$crowdfunding.blk_leq_593" = load { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }, { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8 - %"$crowdfunding.blk_leq_fptr_594" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_593", 0 - %"$crowdfunding.blk_leq_envptr_595" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_593", 1 - %"$blk_596" = load i8*, i8** %blk, align 8 - %"$crowdfunding.blk_leq_call_597" = call { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_fptr_594"(i8* %"$crowdfunding.blk_leq_envptr_595", i8* %"$blk_596") - store { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_call_597", { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_5", align 8 - %"$crowdfunding.blk_leq_6" = alloca %TName_Bool*, align 8 - %"$$crowdfunding.blk_leq_5_598" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_5", align 8 - %"$$crowdfunding.blk_leq_5_fptr_599" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_5_598", 0 - %"$$crowdfunding.blk_leq_5_envptr_600" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_5_598", 1 - %"$max_block_601" = load i8*, i8** @_cparam_max_block, align 8 - %"$$crowdfunding.blk_leq_5_call_602" = call %TName_Bool* %"$$crowdfunding.blk_leq_5_fptr_599"(i8* %"$$crowdfunding.blk_leq_5_envptr_600", i8* %"$max_block_601") - store %TName_Bool* %"$$crowdfunding.blk_leq_5_call_602", %TName_Bool** %"$crowdfunding.blk_leq_6", align 8 - %"$$crowdfunding.blk_leq_6_603" = load %TName_Bool*, %TName_Bool** %"$crowdfunding.blk_leq_6", align 8 - store %TName_Bool* %"$$crowdfunding.blk_leq_6_603", %TName_Bool** %in_time, align 8 - %"$gasrem_604" = load i64, i64* @_gasrem, align 8 - %"$gascmp_605" = icmp ugt i64 2, %"$gasrem_604" - br i1 %"$gascmp_605", label %"$out_of_gas_606", label %"$have_gas_607" - -"$out_of_gas_606": ; preds = %"$have_gas_591" - call void @_out_of_gas() - br label %"$have_gas_607" - -"$have_gas_607": ; preds = %"$out_of_gas_606", %"$have_gas_591" - %"$consume_608" = sub i64 %"$gasrem_604", 2 - store i64 %"$consume_608", i64* @_gasrem, align 8 - %"$in_time_610" = load %TName_Bool*, %TName_Bool** %in_time, align 8 - %"$in_time_tag_611" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$in_time_610", i32 0, i32 0 - %"$in_time_tag_612" = load i8, i8* %"$in_time_tag_611", align 1 - switch i8 %"$in_time_tag_612", label %"$empty_default_613" [ - i8 0, label %"$True_614" - i8 1, label %"$False_795" + %"$gasrem_471" = load i64, i64* @_gasrem, align 8 + %"$gascmp_472" = icmp ugt i64 1, %"$gasrem_471" + br i1 %"$gascmp_472", label %"$out_of_gas_473", label %"$have_gas_474" + +"$out_of_gas_473": ; preds = %"$have_gas_469" + call void @_out_of_gas() + br label %"$have_gas_474" + +"$have_gas_474": ; preds = %"$out_of_gas_473", %"$have_gas_469" + %"$consume_475" = sub i64 %"$gasrem_471", 1 + store i64 %"$consume_475", i64* @_gasrem, align 8 + %"$crowdfunding.blk_leq_476" = load { %TName_Bool* (i8*, i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8 + %"$crowdfunding.blk_leq_fptr_477" = extractvalue { %TName_Bool* (i8*, i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_476", 0 + %"$crowdfunding.blk_leq_envptr_478" = extractvalue { %TName_Bool* (i8*, i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_476", 1 + %"$blk_479" = load i8*, i8** %blk, align 8 + %"$max_block_480" = load i8*, i8** @_cparam_max_block, align 8 + %"$crowdfunding.blk_leq_call_481" = call %TName_Bool* %"$crowdfunding.blk_leq_fptr_477"(i8* %"$crowdfunding.blk_leq_envptr_478", i8* %"$blk_479", i8* %"$max_block_480") + store %TName_Bool* %"$crowdfunding.blk_leq_call_481", %TName_Bool** %in_time, align 8 + %"$gasrem_482" = load i64, i64* @_gasrem, align 8 + %"$gascmp_483" = icmp ugt i64 2, %"$gasrem_482" + br i1 %"$gascmp_483", label %"$out_of_gas_484", label %"$have_gas_485" + +"$out_of_gas_484": ; preds = %"$have_gas_474" + call void @_out_of_gas() + br label %"$have_gas_485" + +"$have_gas_485": ; preds = %"$out_of_gas_484", %"$have_gas_474" + %"$consume_486" = sub i64 %"$gasrem_482", 2 + store i64 %"$consume_486", i64* @_gasrem, align 8 + %"$in_time_488" = load %TName_Bool*, %TName_Bool** %in_time, align 8 + %"$in_time_tag_489" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$in_time_488", i32 0, i32 0 + %"$in_time_tag_490" = load i8, i8* %"$in_time_tag_489", align 1 + switch i8 %"$in_time_tag_490", label %"$empty_default_491" [ + i8 0, label %"$True_492" + i8 1, label %"$False_664" ] -"$True_614": ; preds = %"$have_gas_607" - %"$in_time_615" = bitcast %TName_Bool* %"$in_time_610" to %CName_True* +"$True_492": ; preds = %"$have_gas_485" + %"$in_time_493" = bitcast %TName_Bool* %"$in_time_488" to %CName_True* %bs = alloca %Map_ByStr20_Uint128*, align 8 - %"$execptr_load_617" = load i8*, i8** @_execptr, align 8 - %"$bs_call_618" = call i8* @_fetch_field(i8* %"$execptr_load_617", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_616", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_83", i32 0, i8* null, i32 1) - %"$bs_619" = bitcast i8* %"$bs_call_618" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$bs_619", %Map_ByStr20_Uint128** %bs, align 8 - %"$bs_620" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_620_621" = bitcast %Map_ByStr20_Uint128* %"$bs_620" to i8* - %"$_literal_cost_call_622" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_620_621") - %"$bs_623" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_623_624" = bitcast %Map_ByStr20_Uint128* %"$bs_623" to i8* - %"$_mapsortcost_call_625" = call i64 @_mapsortcost(i8* %"$$bs_623_624") - %"$gasadd_626" = add i64 %"$_literal_cost_call_622", %"$_mapsortcost_call_625" - %"$gasrem_627" = load i64, i64* @_gasrem, align 8 - %"$gascmp_628" = icmp ugt i64 %"$gasadd_626", %"$gasrem_627" - br i1 %"$gascmp_628", label %"$out_of_gas_629", label %"$have_gas_630" - -"$out_of_gas_629": ; preds = %"$True_614" - call void @_out_of_gas() - br label %"$have_gas_630" - -"$have_gas_630": ; preds = %"$out_of_gas_629", %"$True_614" - %"$consume_631" = sub i64 %"$gasrem_627", %"$gasadd_626" - store i64 %"$consume_631", i64* @_gasrem, align 8 - %"$gasrem_632" = load i64, i64* @_gasrem, align 8 - %"$gascmp_633" = icmp ugt i64 1, %"$gasrem_632" - br i1 %"$gascmp_633", label %"$out_of_gas_634", label %"$have_gas_635" - -"$out_of_gas_634": ; preds = %"$have_gas_630" - call void @_out_of_gas() - br label %"$have_gas_635" - -"$have_gas_635": ; preds = %"$out_of_gas_634", %"$have_gas_630" - %"$consume_636" = sub i64 %"$gasrem_632", 1 - store i64 %"$consume_636", i64* @_gasrem, align 8 + %"$execptr_load_495" = load i8*, i8** @_execptr, align 8 + %"$bs_call_496" = call i8* @_fetch_field(i8* %"$execptr_load_495", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_494", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_58", i32 0, i8* null, i32 1) + %"$bs_497" = bitcast i8* %"$bs_call_496" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$bs_497", %Map_ByStr20_Uint128** %bs, align 8 + %"$bs_498" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_498_499" = bitcast %Map_ByStr20_Uint128* %"$bs_498" to i8* + %"$_literal_cost_call_500" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_498_499") + %"$bs_501" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_501_502" = bitcast %Map_ByStr20_Uint128* %"$bs_501" to i8* + %"$_mapsortcost_call_503" = call i64 @_mapsortcost(i8* %"$$bs_501_502") + %"$gasadd_504" = add i64 %"$_literal_cost_call_500", %"$_mapsortcost_call_503" + %"$gasrem_505" = load i64, i64* @_gasrem, align 8 + %"$gascmp_506" = icmp ugt i64 %"$gasadd_504", %"$gasrem_505" + br i1 %"$gascmp_506", label %"$out_of_gas_507", label %"$have_gas_508" + +"$out_of_gas_507": ; preds = %"$True_492" + call void @_out_of_gas() + br label %"$have_gas_508" + +"$have_gas_508": ; preds = %"$out_of_gas_507", %"$True_492" + %"$consume_509" = sub i64 %"$gasrem_505", %"$gasadd_504" + store i64 %"$consume_509", i64* @_gasrem, align 8 + %"$gasrem_510" = load i64, i64* @_gasrem, align 8 + %"$gascmp_511" = icmp ugt i64 1, %"$gasrem_510" + br i1 %"$gascmp_511", label %"$out_of_gas_512", label %"$have_gas_513" + +"$out_of_gas_512": ; preds = %"$have_gas_508" + call void @_out_of_gas() + br label %"$have_gas_513" + +"$have_gas_513": ; preds = %"$out_of_gas_512", %"$have_gas_508" + %"$consume_514" = sub i64 %"$gasrem_510", 1 + store i64 %"$consume_514", i64* @_gasrem, align 8 %res = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, align 8 - %"$gasrem_637" = load i64, i64* @_gasrem, align 8 - %"$gascmp_638" = icmp ugt i64 1, %"$gasrem_637" - br i1 %"$gascmp_638", label %"$out_of_gas_639", label %"$have_gas_640" - -"$out_of_gas_639": ; preds = %"$have_gas_635" - call void @_out_of_gas() - br label %"$have_gas_640" - -"$have_gas_640": ; preds = %"$out_of_gas_639", %"$have_gas_635" - %"$consume_641" = sub i64 %"$gasrem_637", 1 - store i64 %"$consume_641", i64* @_gasrem, align 8 - %"$crowdfunding.check_update_2" = alloca { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$crowdfunding.check_update_642" = load { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* }, { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* }* @crowdfunding.check_update, align 8 - %"$crowdfunding.check_update_fptr_643" = extractvalue { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } %"$crowdfunding.check_update_642", 0 - %"$crowdfunding.check_update_envptr_644" = extractvalue { { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %Map_ByStr20_Uint128*)*, i8* } %"$crowdfunding.check_update_642", 1 - %"$bs_645" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$crowdfunding.check_update_call_646" = call { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$crowdfunding.check_update_fptr_643"(i8* %"$crowdfunding.check_update_envptr_644", %Map_ByStr20_Uint128* %"$bs_645") - store { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$crowdfunding.check_update_call_646", { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$crowdfunding.check_update_2", align 8 - %"$crowdfunding.check_update_3" = alloca { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, align 8 - %"$$crowdfunding.check_update_2_647" = load { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$crowdfunding.check_update_2", align 8 - %"$$crowdfunding.check_update_2_fptr_648" = extractvalue { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$crowdfunding.check_update_2_647", 0 - %"$$crowdfunding.check_update_2_envptr_649" = extractvalue { { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$crowdfunding.check_update_2_647", 1 - %"$$crowdfunding.check_update_2__sender_650" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$crowdfunding.check_update_2__sender_650", align 1 - %"$$crowdfunding.check_update_2_call_651" = call { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_2_fptr_648"(i8* %"$$crowdfunding.check_update_2_envptr_649", [20 x i8]* %"$$crowdfunding.check_update_2__sender_650") - store { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_2_call_651", { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$crowdfunding.check_update_3", align 8 - %"$crowdfunding.check_update_4" = alloca %"TName_Option_Map_(ByStr20)_(Uint128)"*, align 8 - %"$$crowdfunding.check_update_3_652" = load { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* }* %"$crowdfunding.check_update_3", align 8 - %"$$crowdfunding.check_update_3_fptr_653" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_3_652", 0 - %"$$crowdfunding.check_update_3_envptr_654" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Uint128)*, i8* } %"$$crowdfunding.check_update_3_652", 1 - %"$$crowdfunding.check_update_3_call_655" = call %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_3_fptr_653"(i8* %"$$crowdfunding.check_update_3_envptr_654", %Uint128 %_amount) - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_3_call_655", %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$crowdfunding.check_update_4", align 8 - %"$$crowdfunding.check_update_4_656" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %"$crowdfunding.check_update_4", align 8 - store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$$crowdfunding.check_update_4_656", %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8 - %"$gasrem_657" = load i64, i64* @_gasrem, align 8 - %"$gascmp_658" = icmp ugt i64 2, %"$gasrem_657" - br i1 %"$gascmp_658", label %"$out_of_gas_659", label %"$have_gas_660" - -"$out_of_gas_659": ; preds = %"$have_gas_640" - call void @_out_of_gas() - br label %"$have_gas_660" - -"$have_gas_660": ; preds = %"$out_of_gas_659", %"$have_gas_640" - %"$consume_661" = sub i64 %"$gasrem_657", 2 - store i64 %"$consume_661", i64* @_gasrem, align 8 - %"$res_663" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8 - %"$res_tag_664" = getelementptr inbounds %"TName_Option_Map_(ByStr20)_(Uint128)", %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_663", i32 0, i32 0 - %"$res_tag_665" = load i8, i8* %"$res_tag_664", align 1 - switch i8 %"$res_tag_665", label %"$empty_default_666" [ - i8 1, label %"$None_667" - i8 0, label %"$Some_721" + %"$gasrem_515" = load i64, i64* @_gasrem, align 8 + %"$gascmp_516" = icmp ugt i64 1, %"$gasrem_515" + br i1 %"$gascmp_516", label %"$out_of_gas_517", label %"$have_gas_518" + +"$out_of_gas_517": ; preds = %"$have_gas_513" + call void @_out_of_gas() + br label %"$have_gas_518" + +"$have_gas_518": ; preds = %"$out_of_gas_517", %"$have_gas_513" + %"$consume_519" = sub i64 %"$gasrem_515", 1 + store i64 %"$consume_519", i64* @_gasrem, align 8 + %"$crowdfunding.check_update_520" = load { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* }, { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* }* @crowdfunding.check_update, align 8 + %"$crowdfunding.check_update_fptr_521" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* } %"$crowdfunding.check_update_520", 0 + %"$crowdfunding.check_update_envptr_522" = extractvalue { %"TName_Option_Map_(ByStr20)_(Uint128)"* (i8*, %Map_ByStr20_Uint128*, [20 x i8]*, %Uint128)*, i8* } %"$crowdfunding.check_update_520", 1 + %"$bs_523" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$crowdfunding.check_update__sender_524" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$crowdfunding.check_update__sender_524", align 1 + %"$crowdfunding.check_update_call_525" = call %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$crowdfunding.check_update_fptr_521"(i8* %"$crowdfunding.check_update_envptr_522", %Map_ByStr20_Uint128* %"$bs_523", [20 x i8]* %"$crowdfunding.check_update__sender_524", %Uint128 %_amount) + store %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$crowdfunding.check_update_call_525", %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8 + %"$gasrem_526" = load i64, i64* @_gasrem, align 8 + %"$gascmp_527" = icmp ugt i64 2, %"$gasrem_526" + br i1 %"$gascmp_527", label %"$out_of_gas_528", label %"$have_gas_529" + +"$out_of_gas_528": ; preds = %"$have_gas_518" + call void @_out_of_gas() + br label %"$have_gas_529" + +"$have_gas_529": ; preds = %"$out_of_gas_528", %"$have_gas_518" + %"$consume_530" = sub i64 %"$gasrem_526", 2 + store i64 %"$consume_530", i64* @_gasrem, align 8 + %"$res_532" = load %"TName_Option_Map_(ByStr20)_(Uint128)"*, %"TName_Option_Map_(ByStr20)_(Uint128)"** %res, align 8 + %"$res_tag_533" = getelementptr inbounds %"TName_Option_Map_(ByStr20)_(Uint128)", %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_532", i32 0, i32 0 + %"$res_tag_534" = load i8, i8* %"$res_tag_533", align 1 + switch i8 %"$res_tag_534", label %"$empty_default_535" [ + i8 1, label %"$None_536" + i8 0, label %"$Some_590" ] -"$None_667": ; preds = %"$have_gas_660" - %"$res_668" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_663" to %"CName_None_Map_(ByStr20)_(Uint128)"* - %"$gasrem_669" = load i64, i64* @_gasrem, align 8 - %"$gascmp_670" = icmp ugt i64 1, %"$gasrem_669" - br i1 %"$gascmp_670", label %"$out_of_gas_671", label %"$have_gas_672" +"$None_536": ; preds = %"$have_gas_529" + %"$res_537" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_532" to %"CName_None_Map_(ByStr20)_(Uint128)"* + %"$gasrem_538" = load i64, i64* @_gasrem, align 8 + %"$gascmp_539" = icmp ugt i64 1, %"$gasrem_538" + br i1 %"$gascmp_539", label %"$out_of_gas_540", label %"$have_gas_541" -"$out_of_gas_671": ; preds = %"$None_667" +"$out_of_gas_540": ; preds = %"$None_536" call void @_out_of_gas() - br label %"$have_gas_672" + br label %"$have_gas_541" -"$have_gas_672": ; preds = %"$out_of_gas_671", %"$None_667" - %"$consume_673" = sub i64 %"$gasrem_669", 1 - store i64 %"$consume_673", i64* @_gasrem, align 8 +"$have_gas_541": ; preds = %"$out_of_gas_540", %"$None_536" + %"$consume_542" = sub i64 %"$gasrem_538", 1 + store i64 %"$consume_542", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_675" = icmp ugt i64 1, %"$gasrem_674" - br i1 %"$gascmp_675", label %"$out_of_gas_676", label %"$have_gas_677" - -"$out_of_gas_676": ; preds = %"$have_gas_672" - call void @_out_of_gas() - br label %"$have_gas_677" - -"$have_gas_677": ; preds = %"$out_of_gas_676", %"$have_gas_672" - %"$consume_678" = sub i64 %"$gasrem_674", 1 - store i64 %"$consume_678", i64* @_gasrem, align 8 - %"$msgobj_679_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_679_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_679_salloc_load", i64 153) - %"$msgobj_679_salloc" = bitcast i8* %"$msgobj_679_salloc_salloc" to [153 x i8]* - %"$msgobj_679" = bitcast [153 x i8]* %"$msgobj_679_salloc" to i8* - store i8 4, i8* %"$msgobj_679", align 1 - %"$msgobj_fname_681" = getelementptr i8, i8* %"$msgobj_679", i32 1 - %"$msgobj_fname_682" = bitcast i8* %"$msgobj_fname_681" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_680", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_682", align 8 - %"$msgobj_td_683" = getelementptr i8, i8* %"$msgobj_679", i32 17 - %"$msgobj_td_684" = bitcast i8* %"$msgobj_td_683" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_684", align 8 - %"$msgobj_v_686" = getelementptr i8, i8* %"$msgobj_679", i32 25 - %"$msgobj_v_687" = bitcast i8* %"$msgobj_v_686" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_685", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_687", align 8 - %"$msgobj_fname_689" = getelementptr i8, i8* %"$msgobj_679", i32 41 - %"$msgobj_fname_690" = bitcast i8* %"$msgobj_fname_689" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_688", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_690", align 8 - %"$msgobj_td_691" = getelementptr i8, i8* %"$msgobj_679", i32 57 - %"$msgobj_td_692" = bitcast i8* %"$msgobj_td_691" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_692", align 8 - %"$msgobj_v_693" = getelementptr i8, i8* %"$msgobj_679", i32 65 - %"$msgobj_v_694" = bitcast i8* %"$msgobj_v_693" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_694", align 1 - %"$msgobj_fname_696" = getelementptr i8, i8* %"$msgobj_679", i32 85 - %"$msgobj_fname_697" = bitcast i8* %"$msgobj_fname_696" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_695", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_697", align 8 - %"$msgobj_td_698" = getelementptr i8, i8* %"$msgobj_679", i32 101 - %"$msgobj_td_699" = bitcast i8* %"$msgobj_td_698" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_699", align 8 - %"$msgobj_v_700" = getelementptr i8, i8* %"$msgobj_679", i32 109 - %"$msgobj_v_701" = bitcast i8* %"$msgobj_v_700" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_701", align 8 - %"$msgobj_fname_703" = getelementptr i8, i8* %"$msgobj_679", i32 125 - %"$msgobj_fname_704" = bitcast i8* %"$msgobj_fname_703" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_702", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_704", align 8 - %"$msgobj_td_705" = getelementptr i8, i8* %"$msgobj_679", i32 141 - %"$msgobj_td_706" = bitcast i8* %"$msgobj_td_705" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_706", align 8 - %"$crowdfunding.already_backed_code_707" = load %Int32, %Int32* @crowdfunding.already_backed_code, align 4 - %"$msgobj_v_708" = getelementptr i8, i8* %"$msgobj_679", i32 149 - %"$msgobj_v_709" = bitcast i8* %"$msgobj_v_708" to %Int32* - store %Int32 %"$crowdfunding.already_backed_code_707", %Int32* %"$msgobj_v_709", align 4 - store i8* %"$msgobj_679", i8** %e, align 8 - %"$e_711" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_713" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_711") - %"$gasrem_714" = load i64, i64* @_gasrem, align 8 - %"$gascmp_715" = icmp ugt i64 %"$_literal_cost_call_713", %"$gasrem_714" - br i1 %"$gascmp_715", label %"$out_of_gas_716", label %"$have_gas_717" - -"$out_of_gas_716": ; preds = %"$have_gas_677" - call void @_out_of_gas() - br label %"$have_gas_717" - -"$have_gas_717": ; preds = %"$out_of_gas_716", %"$have_gas_677" - %"$consume_718" = sub i64 %"$gasrem_714", %"$_literal_cost_call_713" - store i64 %"$consume_718", i64* @_gasrem, align 8 - %"$execptr_load_719" = load i8*, i8** @_execptr, align 8 - %"$e_720" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_719", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_720") - br label %"$matchsucc_662" - -"$Some_721": ; preds = %"$have_gas_660" - %"$res_722" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_663" to %"CName_Some_Map_(ByStr20)_(Uint128)"* - %"$bs1_gep_723" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$res_722", i32 0, i32 1 - %"$bs1_load_724" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$bs1_gep_723", align 8 - %bs1 = alloca %Map_ByStr20_Uint128*, align 8 - store %Map_ByStr20_Uint128* %"$bs1_load_724", %Map_ByStr20_Uint128** %bs1, align 8 - %"$bs1_725" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$$bs1_725_726" = bitcast %Map_ByStr20_Uint128* %"$bs1_725" to i8* - %"$_literal_cost_call_727" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs1_725_726") - %"$gasrem_728" = load i64, i64* @_gasrem, align 8 - %"$gascmp_729" = icmp ugt i64 %"$_literal_cost_call_727", %"$gasrem_728" - br i1 %"$gascmp_729", label %"$out_of_gas_730", label %"$have_gas_731" + %"$gasrem_543" = load i64, i64* @_gasrem, align 8 + %"$gascmp_544" = icmp ugt i64 1, %"$gasrem_543" + br i1 %"$gascmp_544", label %"$out_of_gas_545", label %"$have_gas_546" + +"$out_of_gas_545": ; preds = %"$have_gas_541" + call void @_out_of_gas() + br label %"$have_gas_546" + +"$have_gas_546": ; preds = %"$out_of_gas_545", %"$have_gas_541" + %"$consume_547" = sub i64 %"$gasrem_543", 1 + store i64 %"$consume_547", i64* @_gasrem, align 8 + %"$msgobj_548_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_548_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_548_salloc_load", i64 153) + %"$msgobj_548_salloc" = bitcast i8* %"$msgobj_548_salloc_salloc" to [153 x i8]* + %"$msgobj_548" = bitcast [153 x i8]* %"$msgobj_548_salloc" to i8* + store i8 4, i8* %"$msgobj_548", align 1 + %"$msgobj_fname_550" = getelementptr i8, i8* %"$msgobj_548", i32 1 + %"$msgobj_fname_551" = bitcast i8* %"$msgobj_fname_550" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_549", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_551", align 8 + %"$msgobj_td_552" = getelementptr i8, i8* %"$msgobj_548", i32 17 + %"$msgobj_td_553" = bitcast i8* %"$msgobj_td_552" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_553", align 8 + %"$msgobj_v_555" = getelementptr i8, i8* %"$msgobj_548", i32 25 + %"$msgobj_v_556" = bitcast i8* %"$msgobj_v_555" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_554", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_556", align 8 + %"$msgobj_fname_558" = getelementptr i8, i8* %"$msgobj_548", i32 41 + %"$msgobj_fname_559" = bitcast i8* %"$msgobj_fname_558" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_557", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_559", align 8 + %"$msgobj_td_560" = getelementptr i8, i8* %"$msgobj_548", i32 57 + %"$msgobj_td_561" = bitcast i8* %"$msgobj_td_560" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_561", align 8 + %"$msgobj_v_562" = getelementptr i8, i8* %"$msgobj_548", i32 65 + %"$msgobj_v_563" = bitcast i8* %"$msgobj_v_562" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_563", align 1 + %"$msgobj_fname_565" = getelementptr i8, i8* %"$msgobj_548", i32 85 + %"$msgobj_fname_566" = bitcast i8* %"$msgobj_fname_565" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_564", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_566", align 8 + %"$msgobj_td_567" = getelementptr i8, i8* %"$msgobj_548", i32 101 + %"$msgobj_td_568" = bitcast i8* %"$msgobj_td_567" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_568", align 8 + %"$msgobj_v_569" = getelementptr i8, i8* %"$msgobj_548", i32 109 + %"$msgobj_v_570" = bitcast i8* %"$msgobj_v_569" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_570", align 8 + %"$msgobj_fname_572" = getelementptr i8, i8* %"$msgobj_548", i32 125 + %"$msgobj_fname_573" = bitcast i8* %"$msgobj_fname_572" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_571", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_573", align 8 + %"$msgobj_td_574" = getelementptr i8, i8* %"$msgobj_548", i32 141 + %"$msgobj_td_575" = bitcast i8* %"$msgobj_td_574" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_575", align 8 + %"$crowdfunding.already_backed_code_576" = load %Int32, %Int32* @crowdfunding.already_backed_code, align 4 + %"$msgobj_v_577" = getelementptr i8, i8* %"$msgobj_548", i32 149 + %"$msgobj_v_578" = bitcast i8* %"$msgobj_v_577" to %Int32* + store %Int32 %"$crowdfunding.already_backed_code_576", %Int32* %"$msgobj_v_578", align 4 + store i8* %"$msgobj_548", i8** %e, align 8 + %"$e_580" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_582" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_580") + %"$gasrem_583" = load i64, i64* @_gasrem, align 8 + %"$gascmp_584" = icmp ugt i64 %"$_literal_cost_call_582", %"$gasrem_583" + br i1 %"$gascmp_584", label %"$out_of_gas_585", label %"$have_gas_586" -"$out_of_gas_730": ; preds = %"$Some_721" +"$out_of_gas_585": ; preds = %"$have_gas_546" call void @_out_of_gas() - br label %"$have_gas_731" + br label %"$have_gas_586" -"$have_gas_731": ; preds = %"$out_of_gas_730", %"$Some_721" - %"$consume_732" = sub i64 %"$gasrem_728", %"$_literal_cost_call_727" - store i64 %"$consume_732", i64* @_gasrem, align 8 - %"$execptr_load_733" = load i8*, i8** @_execptr, align 8 - %"$bs1_735" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$update_value_736" = bitcast %Map_ByStr20_Uint128* %"$bs1_735" to i8* - call void @_update_field(i8* %"$execptr_load_733", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_734", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_83", i32 0, i8* null, i8* %"$update_value_736") - %"$gasrem_737" = load i64, i64* @_gasrem, align 8 - %"$gascmp_738" = icmp ugt i64 1, %"$gasrem_737" - br i1 %"$gascmp_738", label %"$out_of_gas_739", label %"$have_gas_740" - -"$out_of_gas_739": ; preds = %"$have_gas_731" - call void @_out_of_gas() - br label %"$have_gas_740" - -"$have_gas_740": ; preds = %"$out_of_gas_739", %"$have_gas_731" - %"$consume_741" = sub i64 %"$gasrem_737", 1 - store i64 %"$consume_741", i64* @_gasrem, align 8 - %"$execptr_load_742" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_742") - %"$gasrem_743" = load i64, i64* @_gasrem, align 8 - %"$gascmp_744" = icmp ugt i64 1, %"$gasrem_743" - br i1 %"$gascmp_744", label %"$out_of_gas_745", label %"$have_gas_746" - -"$out_of_gas_745": ; preds = %"$have_gas_740" - call void @_out_of_gas() - br label %"$have_gas_746" - -"$have_gas_746": ; preds = %"$out_of_gas_745", %"$have_gas_740" - %"$consume_747" = sub i64 %"$gasrem_743", 1 - store i64 %"$consume_747", i64* @_gasrem, align 8 +"$have_gas_586": ; preds = %"$out_of_gas_585", %"$have_gas_546" + %"$consume_587" = sub i64 %"$gasrem_583", %"$_literal_cost_call_582" + store i64 %"$consume_587", i64* @_gasrem, align 8 + %"$execptr_load_588" = load i8*, i8** @_execptr, align 8 + %"$e_589" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_588", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_589") + br label %"$matchsucc_531" + +"$Some_590": ; preds = %"$have_gas_529" + %"$res_591" = bitcast %"TName_Option_Map_(ByStr20)_(Uint128)"* %"$res_532" to %"CName_Some_Map_(ByStr20)_(Uint128)"* + %"$bs1_gep_592" = getelementptr inbounds %"CName_Some_Map_(ByStr20)_(Uint128)", %"CName_Some_Map_(ByStr20)_(Uint128)"* %"$res_591", i32 0, i32 1 + %"$bs1_load_593" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %"$bs1_gep_592", align 8 + %bs1 = alloca %Map_ByStr20_Uint128*, align 8 + store %Map_ByStr20_Uint128* %"$bs1_load_593", %Map_ByStr20_Uint128** %bs1, align 8 + %"$bs1_594" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$$bs1_594_595" = bitcast %Map_ByStr20_Uint128* %"$bs1_594" to i8* + %"$_literal_cost_call_596" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs1_594_595") + %"$gasrem_597" = load i64, i64* @_gasrem, align 8 + %"$gascmp_598" = icmp ugt i64 %"$_literal_cost_call_596", %"$gasrem_597" + br i1 %"$gascmp_598", label %"$out_of_gas_599", label %"$have_gas_600" + +"$out_of_gas_599": ; preds = %"$Some_590" + call void @_out_of_gas() + br label %"$have_gas_600" + +"$have_gas_600": ; preds = %"$out_of_gas_599", %"$Some_590" + %"$consume_601" = sub i64 %"$gasrem_597", %"$_literal_cost_call_596" + store i64 %"$consume_601", i64* @_gasrem, align 8 + %"$execptr_load_602" = load i8*, i8** @_execptr, align 8 + %"$bs1_604" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$update_value_605" = bitcast %Map_ByStr20_Uint128* %"$bs1_604" to i8* + call void @_update_field(i8* %"$execptr_load_602", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_603", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_58", i32 0, i8* null, i8* %"$update_value_605") + %"$gasrem_606" = load i64, i64* @_gasrem, align 8 + %"$gascmp_607" = icmp ugt i64 1, %"$gasrem_606" + br i1 %"$gascmp_607", label %"$out_of_gas_608", label %"$have_gas_609" + +"$out_of_gas_608": ; preds = %"$have_gas_600" + call void @_out_of_gas() + br label %"$have_gas_609" + +"$have_gas_609": ; preds = %"$out_of_gas_608", %"$have_gas_600" + %"$consume_610" = sub i64 %"$gasrem_606", 1 + store i64 %"$consume_610", i64* @_gasrem, align 8 + %"$execptr_load_611" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_611") + %"$gasrem_612" = load i64, i64* @_gasrem, align 8 + %"$gascmp_613" = icmp ugt i64 1, %"$gasrem_612" + br i1 %"$gascmp_613", label %"$out_of_gas_614", label %"$have_gas_615" + +"$out_of_gas_614": ; preds = %"$have_gas_609" + call void @_out_of_gas() + br label %"$have_gas_615" + +"$have_gas_615": ; preds = %"$out_of_gas_614", %"$have_gas_609" + %"$consume_616" = sub i64 %"$gasrem_612", 1 + store i64 %"$consume_616", i64* @_gasrem, align 8 %e1 = alloca i8*, align 8 - %"$gasrem_748" = load i64, i64* @_gasrem, align 8 - %"$gascmp_749" = icmp ugt i64 1, %"$gasrem_748" - br i1 %"$gascmp_749", label %"$out_of_gas_750", label %"$have_gas_751" - -"$out_of_gas_750": ; preds = %"$have_gas_746" - call void @_out_of_gas() - br label %"$have_gas_751" - -"$have_gas_751": ; preds = %"$out_of_gas_750", %"$have_gas_746" - %"$consume_752" = sub i64 %"$gasrem_748", 1 - store i64 %"$consume_752", i64* @_gasrem, align 8 - %"$msgobj_753_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_753_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_753_salloc_load", i64 153) - %"$msgobj_753_salloc" = bitcast i8* %"$msgobj_753_salloc_salloc" to [153 x i8]* - %"$msgobj_753" = bitcast [153 x i8]* %"$msgobj_753_salloc" to i8* - store i8 4, i8* %"$msgobj_753", align 1 - %"$msgobj_fname_755" = getelementptr i8, i8* %"$msgobj_753", i32 1 - %"$msgobj_fname_756" = bitcast i8* %"$msgobj_fname_755" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_754", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_756", align 8 - %"$msgobj_td_757" = getelementptr i8, i8* %"$msgobj_753", i32 17 - %"$msgobj_td_758" = bitcast i8* %"$msgobj_td_757" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_758", align 8 - %"$msgobj_v_760" = getelementptr i8, i8* %"$msgobj_753", i32 25 - %"$msgobj_v_761" = bitcast i8* %"$msgobj_v_760" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_759", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_761", align 8 - %"$msgobj_fname_763" = getelementptr i8, i8* %"$msgobj_753", i32 41 - %"$msgobj_fname_764" = bitcast i8* %"$msgobj_fname_763" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_762", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_764", align 8 - %"$msgobj_td_765" = getelementptr i8, i8* %"$msgobj_753", i32 57 - %"$msgobj_td_766" = bitcast i8* %"$msgobj_td_765" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_766", align 8 - %"$msgobj_v_767" = getelementptr i8, i8* %"$msgobj_753", i32 65 - %"$msgobj_v_768" = bitcast i8* %"$msgobj_v_767" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_768", align 1 - %"$msgobj_fname_770" = getelementptr i8, i8* %"$msgobj_753", i32 85 - %"$msgobj_fname_771" = bitcast i8* %"$msgobj_fname_770" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_769", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_771", align 8 - %"$msgobj_td_772" = getelementptr i8, i8* %"$msgobj_753", i32 101 - %"$msgobj_td_773" = bitcast i8* %"$msgobj_td_772" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_773", align 8 - %"$msgobj_v_774" = getelementptr i8, i8* %"$msgobj_753", i32 109 - %"$msgobj_v_775" = bitcast i8* %"$msgobj_v_774" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_775", align 8 - %"$msgobj_fname_777" = getelementptr i8, i8* %"$msgobj_753", i32 125 - %"$msgobj_fname_778" = bitcast i8* %"$msgobj_fname_777" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_776", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_778", align 8 - %"$msgobj_td_779" = getelementptr i8, i8* %"$msgobj_753", i32 141 - %"$msgobj_td_780" = bitcast i8* %"$msgobj_td_779" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_780", align 8 - %"$crowdfunding.accepted_code_781" = load %Int32, %Int32* @crowdfunding.accepted_code, align 4 - %"$msgobj_v_782" = getelementptr i8, i8* %"$msgobj_753", i32 149 - %"$msgobj_v_783" = bitcast i8* %"$msgobj_v_782" to %Int32* - store %Int32 %"$crowdfunding.accepted_code_781", %Int32* %"$msgobj_v_783", align 4 - store i8* %"$msgobj_753", i8** %e1, align 8 - %"$e_785" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_787" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_785") - %"$gasrem_788" = load i64, i64* @_gasrem, align 8 - %"$gascmp_789" = icmp ugt i64 %"$_literal_cost_call_787", %"$gasrem_788" - br i1 %"$gascmp_789", label %"$out_of_gas_790", label %"$have_gas_791" - -"$out_of_gas_790": ; preds = %"$have_gas_751" - call void @_out_of_gas() - br label %"$have_gas_791" - -"$have_gas_791": ; preds = %"$out_of_gas_790", %"$have_gas_751" - %"$consume_792" = sub i64 %"$gasrem_788", %"$_literal_cost_call_787" - store i64 %"$consume_792", i64* @_gasrem, align 8 - %"$execptr_load_793" = load i8*, i8** @_execptr, align 8 - %"$e_794" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_793", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_794") - br label %"$matchsucc_662" - -"$empty_default_666": ; preds = %"$have_gas_660" - br label %"$matchsucc_662" - -"$matchsucc_662": ; preds = %"$have_gas_791", %"$have_gas_717", %"$empty_default_666" - br label %"$matchsucc_609" - -"$False_795": ; preds = %"$have_gas_607" - %"$in_time_796" = bitcast %TName_Bool* %"$in_time_610" to %CName_False* - %"$gasrem_797" = load i64, i64* @_gasrem, align 8 - %"$gascmp_798" = icmp ugt i64 1, %"$gasrem_797" - br i1 %"$gascmp_798", label %"$out_of_gas_799", label %"$have_gas_800" - -"$out_of_gas_799": ; preds = %"$False_795" - call void @_out_of_gas() - br label %"$have_gas_800" - -"$have_gas_800": ; preds = %"$out_of_gas_799", %"$False_795" - %"$consume_801" = sub i64 %"$gasrem_797", 1 - store i64 %"$consume_801", i64* @_gasrem, align 8 - %e2 = alloca i8*, align 8 - %"$gasrem_802" = load i64, i64* @_gasrem, align 8 - %"$gascmp_803" = icmp ugt i64 1, %"$gasrem_802" - br i1 %"$gascmp_803", label %"$out_of_gas_804", label %"$have_gas_805" - -"$out_of_gas_804": ; preds = %"$have_gas_800" - call void @_out_of_gas() - br label %"$have_gas_805" - -"$have_gas_805": ; preds = %"$out_of_gas_804", %"$have_gas_800" - %"$consume_806" = sub i64 %"$gasrem_802", 1 - store i64 %"$consume_806", i64* @_gasrem, align 8 - %"$msgobj_807_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_807_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_807_salloc_load", i64 153) - %"$msgobj_807_salloc" = bitcast i8* %"$msgobj_807_salloc_salloc" to [153 x i8]* - %"$msgobj_807" = bitcast [153 x i8]* %"$msgobj_807_salloc" to i8* - store i8 4, i8* %"$msgobj_807", align 1 - %"$msgobj_fname_809" = getelementptr i8, i8* %"$msgobj_807", i32 1 - %"$msgobj_fname_810" = bitcast i8* %"$msgobj_fname_809" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_808", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_810", align 8 - %"$msgobj_td_811" = getelementptr i8, i8* %"$msgobj_807", i32 17 - %"$msgobj_td_812" = bitcast i8* %"$msgobj_td_811" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_812", align 8 - %"$msgobj_v_814" = getelementptr i8, i8* %"$msgobj_807", i32 25 - %"$msgobj_v_815" = bitcast i8* %"$msgobj_v_814" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_813", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_815", align 8 - %"$msgobj_fname_817" = getelementptr i8, i8* %"$msgobj_807", i32 41 - %"$msgobj_fname_818" = bitcast i8* %"$msgobj_fname_817" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_816", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_818", align 8 - %"$msgobj_td_819" = getelementptr i8, i8* %"$msgobj_807", i32 57 - %"$msgobj_td_820" = bitcast i8* %"$msgobj_td_819" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_820", align 8 - %"$msgobj_v_821" = getelementptr i8, i8* %"$msgobj_807", i32 65 - %"$msgobj_v_822" = bitcast i8* %"$msgobj_v_821" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_822", align 1 - %"$msgobj_fname_824" = getelementptr i8, i8* %"$msgobj_807", i32 85 - %"$msgobj_fname_825" = bitcast i8* %"$msgobj_fname_824" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_823", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_825", align 8 - %"$msgobj_td_826" = getelementptr i8, i8* %"$msgobj_807", i32 101 - %"$msgobj_td_827" = bitcast i8* %"$msgobj_td_826" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_827", align 8 - %"$msgobj_v_828" = getelementptr i8, i8* %"$msgobj_807", i32 109 - %"$msgobj_v_829" = bitcast i8* %"$msgobj_v_828" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_829", align 8 - %"$msgobj_fname_831" = getelementptr i8, i8* %"$msgobj_807", i32 125 - %"$msgobj_fname_832" = bitcast i8* %"$msgobj_fname_831" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_830", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_832", align 8 - %"$msgobj_td_833" = getelementptr i8, i8* %"$msgobj_807", i32 141 - %"$msgobj_td_834" = bitcast i8* %"$msgobj_td_833" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_834", align 8 - %"$crowdfunding.missed_deadline_code_835" = load %Int32, %Int32* @crowdfunding.missed_deadline_code, align 4 - %"$msgobj_v_836" = getelementptr i8, i8* %"$msgobj_807", i32 149 - %"$msgobj_v_837" = bitcast i8* %"$msgobj_v_836" to %Int32* - store %Int32 %"$crowdfunding.missed_deadline_code_835", %Int32* %"$msgobj_v_837", align 4 - store i8* %"$msgobj_807", i8** %e2, align 8 - %"$e_839" = load i8*, i8** %e2, align 8 - %"$_literal_cost_call_841" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_839") - %"$gasrem_842" = load i64, i64* @_gasrem, align 8 - %"$gascmp_843" = icmp ugt i64 %"$_literal_cost_call_841", %"$gasrem_842" - br i1 %"$gascmp_843", label %"$out_of_gas_844", label %"$have_gas_845" + %"$gasrem_617" = load i64, i64* @_gasrem, align 8 + %"$gascmp_618" = icmp ugt i64 1, %"$gasrem_617" + br i1 %"$gascmp_618", label %"$out_of_gas_619", label %"$have_gas_620" + +"$out_of_gas_619": ; preds = %"$have_gas_615" + call void @_out_of_gas() + br label %"$have_gas_620" + +"$have_gas_620": ; preds = %"$out_of_gas_619", %"$have_gas_615" + %"$consume_621" = sub i64 %"$gasrem_617", 1 + store i64 %"$consume_621", i64* @_gasrem, align 8 + %"$msgobj_622_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_622_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_622_salloc_load", i64 153) + %"$msgobj_622_salloc" = bitcast i8* %"$msgobj_622_salloc_salloc" to [153 x i8]* + %"$msgobj_622" = bitcast [153 x i8]* %"$msgobj_622_salloc" to i8* + store i8 4, i8* %"$msgobj_622", align 1 + %"$msgobj_fname_624" = getelementptr i8, i8* %"$msgobj_622", i32 1 + %"$msgobj_fname_625" = bitcast i8* %"$msgobj_fname_624" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_623", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_625", align 8 + %"$msgobj_td_626" = getelementptr i8, i8* %"$msgobj_622", i32 17 + %"$msgobj_td_627" = bitcast i8* %"$msgobj_td_626" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_627", align 8 + %"$msgobj_v_629" = getelementptr i8, i8* %"$msgobj_622", i32 25 + %"$msgobj_v_630" = bitcast i8* %"$msgobj_v_629" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_628", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_630", align 8 + %"$msgobj_fname_632" = getelementptr i8, i8* %"$msgobj_622", i32 41 + %"$msgobj_fname_633" = bitcast i8* %"$msgobj_fname_632" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_631", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_633", align 8 + %"$msgobj_td_634" = getelementptr i8, i8* %"$msgobj_622", i32 57 + %"$msgobj_td_635" = bitcast i8* %"$msgobj_td_634" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_635", align 8 + %"$msgobj_v_636" = getelementptr i8, i8* %"$msgobj_622", i32 65 + %"$msgobj_v_637" = bitcast i8* %"$msgobj_v_636" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_637", align 1 + %"$msgobj_fname_639" = getelementptr i8, i8* %"$msgobj_622", i32 85 + %"$msgobj_fname_640" = bitcast i8* %"$msgobj_fname_639" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_638", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_640", align 8 + %"$msgobj_td_641" = getelementptr i8, i8* %"$msgobj_622", i32 101 + %"$msgobj_td_642" = bitcast i8* %"$msgobj_td_641" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_642", align 8 + %"$msgobj_v_643" = getelementptr i8, i8* %"$msgobj_622", i32 109 + %"$msgobj_v_644" = bitcast i8* %"$msgobj_v_643" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_644", align 8 + %"$msgobj_fname_646" = getelementptr i8, i8* %"$msgobj_622", i32 125 + %"$msgobj_fname_647" = bitcast i8* %"$msgobj_fname_646" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_645", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_647", align 8 + %"$msgobj_td_648" = getelementptr i8, i8* %"$msgobj_622", i32 141 + %"$msgobj_td_649" = bitcast i8* %"$msgobj_td_648" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_649", align 8 + %"$crowdfunding.accepted_code_650" = load %Int32, %Int32* @crowdfunding.accepted_code, align 4 + %"$msgobj_v_651" = getelementptr i8, i8* %"$msgobj_622", i32 149 + %"$msgobj_v_652" = bitcast i8* %"$msgobj_v_651" to %Int32* + store %Int32 %"$crowdfunding.accepted_code_650", %Int32* %"$msgobj_v_652", align 4 + store i8* %"$msgobj_622", i8** %e1, align 8 + %"$e_654" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_656" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_654") + %"$gasrem_657" = load i64, i64* @_gasrem, align 8 + %"$gascmp_658" = icmp ugt i64 %"$_literal_cost_call_656", %"$gasrem_657" + br i1 %"$gascmp_658", label %"$out_of_gas_659", label %"$have_gas_660" -"$out_of_gas_844": ; preds = %"$have_gas_805" +"$out_of_gas_659": ; preds = %"$have_gas_620" call void @_out_of_gas() - br label %"$have_gas_845" + br label %"$have_gas_660" -"$have_gas_845": ; preds = %"$out_of_gas_844", %"$have_gas_805" - %"$consume_846" = sub i64 %"$gasrem_842", %"$_literal_cost_call_841" - store i64 %"$consume_846", i64* @_gasrem, align 8 - %"$execptr_load_847" = load i8*, i8** @_execptr, align 8 - %"$e_848" = load i8*, i8** %e2, align 8 - call void @_event(i8* %"$execptr_load_847", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_848") - br label %"$matchsucc_609" +"$have_gas_660": ; preds = %"$out_of_gas_659", %"$have_gas_620" + %"$consume_661" = sub i64 %"$gasrem_657", %"$_literal_cost_call_656" + store i64 %"$consume_661", i64* @_gasrem, align 8 + %"$execptr_load_662" = load i8*, i8** @_execptr, align 8 + %"$e_663" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_662", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_663") + br label %"$matchsucc_531" + +"$empty_default_535": ; preds = %"$have_gas_529" + br label %"$matchsucc_531" -"$empty_default_613": ; preds = %"$have_gas_607" - br label %"$matchsucc_609" +"$matchsucc_531": ; preds = %"$have_gas_660", %"$have_gas_586", %"$empty_default_535" + br label %"$matchsucc_487" + +"$False_664": ; preds = %"$have_gas_485" + %"$in_time_665" = bitcast %TName_Bool* %"$in_time_488" to %CName_False* + %"$gasrem_666" = load i64, i64* @_gasrem, align 8 + %"$gascmp_667" = icmp ugt i64 1, %"$gasrem_666" + br i1 %"$gascmp_667", label %"$out_of_gas_668", label %"$have_gas_669" + +"$out_of_gas_668": ; preds = %"$False_664" + call void @_out_of_gas() + br label %"$have_gas_669" -"$matchsucc_609": ; preds = %"$have_gas_845", %"$matchsucc_662", %"$empty_default_613" +"$have_gas_669": ; preds = %"$out_of_gas_668", %"$False_664" + %"$consume_670" = sub i64 %"$gasrem_666", 1 + store i64 %"$consume_670", i64* @_gasrem, align 8 + %e2 = alloca i8*, align 8 + %"$gasrem_671" = load i64, i64* @_gasrem, align 8 + %"$gascmp_672" = icmp ugt i64 1, %"$gasrem_671" + br i1 %"$gascmp_672", label %"$out_of_gas_673", label %"$have_gas_674" + +"$out_of_gas_673": ; preds = %"$have_gas_669" + call void @_out_of_gas() + br label %"$have_gas_674" + +"$have_gas_674": ; preds = %"$out_of_gas_673", %"$have_gas_669" + %"$consume_675" = sub i64 %"$gasrem_671", 1 + store i64 %"$consume_675", i64* @_gasrem, align 8 + %"$msgobj_676_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_676_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_676_salloc_load", i64 153) + %"$msgobj_676_salloc" = bitcast i8* %"$msgobj_676_salloc_salloc" to [153 x i8]* + %"$msgobj_676" = bitcast [153 x i8]* %"$msgobj_676_salloc" to i8* + store i8 4, i8* %"$msgobj_676", align 1 + %"$msgobj_fname_678" = getelementptr i8, i8* %"$msgobj_676", i32 1 + %"$msgobj_fname_679" = bitcast i8* %"$msgobj_fname_678" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_677", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_679", align 8 + %"$msgobj_td_680" = getelementptr i8, i8* %"$msgobj_676", i32 17 + %"$msgobj_td_681" = bitcast i8* %"$msgobj_td_680" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_681", align 8 + %"$msgobj_v_683" = getelementptr i8, i8* %"$msgobj_676", i32 25 + %"$msgobj_v_684" = bitcast i8* %"$msgobj_v_683" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_682", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_684", align 8 + %"$msgobj_fname_686" = getelementptr i8, i8* %"$msgobj_676", i32 41 + %"$msgobj_fname_687" = bitcast i8* %"$msgobj_fname_686" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_685", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_687", align 8 + %"$msgobj_td_688" = getelementptr i8, i8* %"$msgobj_676", i32 57 + %"$msgobj_td_689" = bitcast i8* %"$msgobj_td_688" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_689", align 8 + %"$msgobj_v_690" = getelementptr i8, i8* %"$msgobj_676", i32 65 + %"$msgobj_v_691" = bitcast i8* %"$msgobj_v_690" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_691", align 1 + %"$msgobj_fname_693" = getelementptr i8, i8* %"$msgobj_676", i32 85 + %"$msgobj_fname_694" = bitcast i8* %"$msgobj_fname_693" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_692", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_694", align 8 + %"$msgobj_td_695" = getelementptr i8, i8* %"$msgobj_676", i32 101 + %"$msgobj_td_696" = bitcast i8* %"$msgobj_td_695" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_696", align 8 + %"$msgobj_v_697" = getelementptr i8, i8* %"$msgobj_676", i32 109 + %"$msgobj_v_698" = bitcast i8* %"$msgobj_v_697" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_698", align 8 + %"$msgobj_fname_700" = getelementptr i8, i8* %"$msgobj_676", i32 125 + %"$msgobj_fname_701" = bitcast i8* %"$msgobj_fname_700" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_699", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_701", align 8 + %"$msgobj_td_702" = getelementptr i8, i8* %"$msgobj_676", i32 141 + %"$msgobj_td_703" = bitcast i8* %"$msgobj_td_702" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_703", align 8 + %"$crowdfunding.missed_deadline_code_704" = load %Int32, %Int32* @crowdfunding.missed_deadline_code, align 4 + %"$msgobj_v_705" = getelementptr i8, i8* %"$msgobj_676", i32 149 + %"$msgobj_v_706" = bitcast i8* %"$msgobj_v_705" to %Int32* + store %Int32 %"$crowdfunding.missed_deadline_code_704", %Int32* %"$msgobj_v_706", align 4 + store i8* %"$msgobj_676", i8** %e2, align 8 + %"$e_708" = load i8*, i8** %e2, align 8 + %"$_literal_cost_call_710" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_708") + %"$gasrem_711" = load i64, i64* @_gasrem, align 8 + %"$gascmp_712" = icmp ugt i64 %"$_literal_cost_call_710", %"$gasrem_711" + br i1 %"$gascmp_712", label %"$out_of_gas_713", label %"$have_gas_714" + +"$out_of_gas_713": ; preds = %"$have_gas_674" + call void @_out_of_gas() + br label %"$have_gas_714" + +"$have_gas_714": ; preds = %"$out_of_gas_713", %"$have_gas_674" + %"$consume_715" = sub i64 %"$gasrem_711", %"$_literal_cost_call_710" + store i64 %"$consume_715", i64* @_gasrem, align 8 + %"$execptr_load_716" = load i8*, i8** @_execptr, align 8 + %"$e_717" = load i8*, i8** %e2, align 8 + call void @_event(i8* %"$execptr_load_716", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_717") + br label %"$matchsucc_487" + +"$empty_default_491": ; preds = %"$have_gas_485" + br label %"$matchsucc_487" + +"$matchsucc_487": ; preds = %"$have_gas_714", %"$matchsucc_531", %"$empty_default_491" ret void } @@ -1674,727 +1463,709 @@ declare void @_accept(i8*) define void @Donate(i8* %0) { entry: - %"$_amount_850" = getelementptr i8, i8* %0, i32 0 - %"$_amount_851" = bitcast i8* %"$_amount_850" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_851", align 8 - %"$_origin_852" = getelementptr i8, i8* %0, i32 16 - %"$_origin_853" = bitcast i8* %"$_origin_852" to [20 x i8]* - %"$_sender_854" = getelementptr i8, i8* %0, i32 36 - %"$_sender_855" = bitcast i8* %"$_sender_854" to [20 x i8]* - call void @"$Donate_571"(%Uint128 %_amount, [20 x i8]* %"$_origin_853", [20 x i8]* %"$_sender_855") + %"$_amount_719" = getelementptr i8, i8* %0, i32 0 + %"$_amount_720" = bitcast i8* %"$_amount_719" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_720", align 8 + %"$_origin_721" = getelementptr i8, i8* %0, i32 16 + %"$_origin_722" = bitcast i8* %"$_origin_721" to [20 x i8]* + %"$_sender_723" = getelementptr i8, i8* %0, i32 36 + %"$_sender_724" = bitcast i8* %"$_sender_723" to [20 x i8]* + call void @"$Donate_454"(%Uint128 %_amount, [20 x i8]* %"$_origin_722", [20 x i8]* %"$_sender_724") ret void } -define internal void @"$GetFunds_856"(%Uint128 %_amount, [20 x i8]* %"$_origin_857", [20 x i8]* %"$_sender_858") { +define internal void @"$GetFunds_725"(%Uint128 %_amount, [20 x i8]* %"$_origin_726", [20 x i8]* %"$_sender_727") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_857", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_858", align 1 - %"$gasrem_859" = load i64, i64* @_gasrem, align 8 - %"$gascmp_860" = icmp ugt i64 1, %"$gasrem_859" - br i1 %"$gascmp_860", label %"$out_of_gas_861", label %"$have_gas_862" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_726", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_727", align 1 + %"$gasrem_728" = load i64, i64* @_gasrem, align 8 + %"$gascmp_729" = icmp ugt i64 1, %"$gasrem_728" + br i1 %"$gascmp_729", label %"$out_of_gas_730", label %"$have_gas_731" -"$out_of_gas_861": ; preds = %entry +"$out_of_gas_730": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_862" + br label %"$have_gas_731" -"$have_gas_862": ; preds = %"$out_of_gas_861", %entry - %"$consume_863" = sub i64 %"$gasrem_859", 1 - store i64 %"$consume_863", i64* @_gasrem, align 8 +"$have_gas_731": ; preds = %"$out_of_gas_730", %entry + %"$consume_732" = sub i64 %"$gasrem_728", 1 + store i64 %"$consume_732", i64* @_gasrem, align 8 %is_owner = alloca %TName_Bool*, align 8 - %"$gasrem_864" = load i64, i64* @_gasrem, align 8 - %"$gascmp_865" = icmp ugt i64 20, %"$gasrem_864" - br i1 %"$gascmp_865", label %"$out_of_gas_866", label %"$have_gas_867" - -"$out_of_gas_866": ; preds = %"$have_gas_862" - call void @_out_of_gas() - br label %"$have_gas_867" - -"$have_gas_867": ; preds = %"$out_of_gas_866", %"$have_gas_862" - %"$consume_868" = sub i64 %"$gasrem_864", 20 - store i64 %"$consume_868", i64* @_gasrem, align 8 - %"$execptr_load_869" = load i8*, i8** @_execptr, align 8 - %"$eq_owner_870" = alloca [20 x i8], align 1 - %"$owner_871" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 - store [20 x i8] %"$owner_871", [20 x i8]* %"$eq_owner_870", align 1 - %"$$eq_owner_870_872" = bitcast [20 x i8]* %"$eq_owner_870" to i8* - %"$eq__sender_873" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_873", align 1 - %"$$eq__sender_873_874" = bitcast [20 x i8]* %"$eq__sender_873" to i8* - %"$eq_call_875" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_869", i32 20, i8* %"$$eq_owner_870_872", i8* %"$$eq__sender_873_874") - store %TName_Bool* %"$eq_call_875", %TName_Bool** %is_owner, align 8 - %"$gasrem_877" = load i64, i64* @_gasrem, align 8 - %"$gascmp_878" = icmp ugt i64 2, %"$gasrem_877" - br i1 %"$gascmp_878", label %"$out_of_gas_879", label %"$have_gas_880" - -"$out_of_gas_879": ; preds = %"$have_gas_867" - call void @_out_of_gas() - br label %"$have_gas_880" - -"$have_gas_880": ; preds = %"$out_of_gas_879", %"$have_gas_867" - %"$consume_881" = sub i64 %"$gasrem_877", 2 - store i64 %"$consume_881", i64* @_gasrem, align 8 - %"$is_owner_883" = load %TName_Bool*, %TName_Bool** %is_owner, align 8 - %"$is_owner_tag_884" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_owner_883", i32 0, i32 0 - %"$is_owner_tag_885" = load i8, i8* %"$is_owner_tag_884", align 1 - switch i8 %"$is_owner_tag_885", label %"$empty_default_886" [ - i8 1, label %"$False_887" - i8 0, label %"$True_941" + %"$gasrem_733" = load i64, i64* @_gasrem, align 8 + %"$gascmp_734" = icmp ugt i64 20, %"$gasrem_733" + br i1 %"$gascmp_734", label %"$out_of_gas_735", label %"$have_gas_736" + +"$out_of_gas_735": ; preds = %"$have_gas_731" + call void @_out_of_gas() + br label %"$have_gas_736" + +"$have_gas_736": ; preds = %"$out_of_gas_735", %"$have_gas_731" + %"$consume_737" = sub i64 %"$gasrem_733", 20 + store i64 %"$consume_737", i64* @_gasrem, align 8 + %"$execptr_load_738" = load i8*, i8** @_execptr, align 8 + %"$eq_owner_739" = alloca [20 x i8], align 1 + %"$owner_740" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 + store [20 x i8] %"$owner_740", [20 x i8]* %"$eq_owner_739", align 1 + %"$$eq_owner_739_741" = bitcast [20 x i8]* %"$eq_owner_739" to i8* + %"$eq__sender_742" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_742", align 1 + %"$$eq__sender_742_743" = bitcast [20 x i8]* %"$eq__sender_742" to i8* + %"$eq_call_744" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_738", i32 20, i8* %"$$eq_owner_739_741", i8* %"$$eq__sender_742_743") + store %TName_Bool* %"$eq_call_744", %TName_Bool** %is_owner, align 8 + %"$gasrem_746" = load i64, i64* @_gasrem, align 8 + %"$gascmp_747" = icmp ugt i64 2, %"$gasrem_746" + br i1 %"$gascmp_747", label %"$out_of_gas_748", label %"$have_gas_749" + +"$out_of_gas_748": ; preds = %"$have_gas_736" + call void @_out_of_gas() + br label %"$have_gas_749" + +"$have_gas_749": ; preds = %"$out_of_gas_748", %"$have_gas_736" + %"$consume_750" = sub i64 %"$gasrem_746", 2 + store i64 %"$consume_750", i64* @_gasrem, align 8 + %"$is_owner_752" = load %TName_Bool*, %TName_Bool** %is_owner, align 8 + %"$is_owner_tag_753" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_owner_752", i32 0, i32 0 + %"$is_owner_tag_754" = load i8, i8* %"$is_owner_tag_753", align 1 + switch i8 %"$is_owner_tag_754", label %"$empty_default_755" [ + i8 1, label %"$False_756" + i8 0, label %"$True_810" ] -"$False_887": ; preds = %"$have_gas_880" - %"$is_owner_888" = bitcast %TName_Bool* %"$is_owner_883" to %CName_False* - %"$gasrem_889" = load i64, i64* @_gasrem, align 8 - %"$gascmp_890" = icmp ugt i64 1, %"$gasrem_889" - br i1 %"$gascmp_890", label %"$out_of_gas_891", label %"$have_gas_892" +"$False_756": ; preds = %"$have_gas_749" + %"$is_owner_757" = bitcast %TName_Bool* %"$is_owner_752" to %CName_False* + %"$gasrem_758" = load i64, i64* @_gasrem, align 8 + %"$gascmp_759" = icmp ugt i64 1, %"$gasrem_758" + br i1 %"$gascmp_759", label %"$out_of_gas_760", label %"$have_gas_761" -"$out_of_gas_891": ; preds = %"$False_887" +"$out_of_gas_760": ; preds = %"$False_756" call void @_out_of_gas() - br label %"$have_gas_892" + br label %"$have_gas_761" -"$have_gas_892": ; preds = %"$out_of_gas_891", %"$False_887" - %"$consume_893" = sub i64 %"$gasrem_889", 1 - store i64 %"$consume_893", i64* @_gasrem, align 8 +"$have_gas_761": ; preds = %"$out_of_gas_760", %"$False_756" + %"$consume_762" = sub i64 %"$gasrem_758", 1 + store i64 %"$consume_762", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_894" = load i64, i64* @_gasrem, align 8 - %"$gascmp_895" = icmp ugt i64 1, %"$gasrem_894" - br i1 %"$gascmp_895", label %"$out_of_gas_896", label %"$have_gas_897" - -"$out_of_gas_896": ; preds = %"$have_gas_892" - call void @_out_of_gas() - br label %"$have_gas_897" - -"$have_gas_897": ; preds = %"$out_of_gas_896", %"$have_gas_892" - %"$consume_898" = sub i64 %"$gasrem_894", 1 - store i64 %"$consume_898", i64* @_gasrem, align 8 - %"$msgobj_899_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_899_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_899_salloc_load", i64 153) - %"$msgobj_899_salloc" = bitcast i8* %"$msgobj_899_salloc_salloc" to [153 x i8]* - %"$msgobj_899" = bitcast [153 x i8]* %"$msgobj_899_salloc" to i8* - store i8 4, i8* %"$msgobj_899", align 1 - %"$msgobj_fname_901" = getelementptr i8, i8* %"$msgobj_899", i32 1 - %"$msgobj_fname_902" = bitcast i8* %"$msgobj_fname_901" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_900", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_902", align 8 - %"$msgobj_td_903" = getelementptr i8, i8* %"$msgobj_899", i32 17 - %"$msgobj_td_904" = bitcast i8* %"$msgobj_td_903" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_904", align 8 - %"$msgobj_v_906" = getelementptr i8, i8* %"$msgobj_899", i32 25 - %"$msgobj_v_907" = bitcast i8* %"$msgobj_v_906" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_905", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_907", align 8 - %"$msgobj_fname_909" = getelementptr i8, i8* %"$msgobj_899", i32 41 - %"$msgobj_fname_910" = bitcast i8* %"$msgobj_fname_909" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_908", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_910", align 8 - %"$msgobj_td_911" = getelementptr i8, i8* %"$msgobj_899", i32 57 - %"$msgobj_td_912" = bitcast i8* %"$msgobj_td_911" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_912", align 8 - %"$msgobj_v_913" = getelementptr i8, i8* %"$msgobj_899", i32 65 - %"$msgobj_v_914" = bitcast i8* %"$msgobj_v_913" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_914", align 1 - %"$msgobj_fname_916" = getelementptr i8, i8* %"$msgobj_899", i32 85 - %"$msgobj_fname_917" = bitcast i8* %"$msgobj_fname_916" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_915", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_917", align 8 - %"$msgobj_td_918" = getelementptr i8, i8* %"$msgobj_899", i32 101 - %"$msgobj_td_919" = bitcast i8* %"$msgobj_td_918" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_919", align 8 - %"$msgobj_v_920" = getelementptr i8, i8* %"$msgobj_899", i32 109 - %"$msgobj_v_921" = bitcast i8* %"$msgobj_v_920" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_921", align 8 - %"$msgobj_fname_923" = getelementptr i8, i8* %"$msgobj_899", i32 125 - %"$msgobj_fname_924" = bitcast i8* %"$msgobj_fname_923" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_922", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_924", align 8 - %"$msgobj_td_925" = getelementptr i8, i8* %"$msgobj_899", i32 141 - %"$msgobj_td_926" = bitcast i8* %"$msgobj_td_925" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_926", align 8 - %"$crowdfunding.not_owner_code_927" = load %Int32, %Int32* @crowdfunding.not_owner_code, align 4 - %"$msgobj_v_928" = getelementptr i8, i8* %"$msgobj_899", i32 149 - %"$msgobj_v_929" = bitcast i8* %"$msgobj_v_928" to %Int32* - store %Int32 %"$crowdfunding.not_owner_code_927", %Int32* %"$msgobj_v_929", align 4 - store i8* %"$msgobj_899", i8** %e, align 8 - %"$e_931" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_933" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_931") - %"$gasrem_934" = load i64, i64* @_gasrem, align 8 - %"$gascmp_935" = icmp ugt i64 %"$_literal_cost_call_933", %"$gasrem_934" - br i1 %"$gascmp_935", label %"$out_of_gas_936", label %"$have_gas_937" - -"$out_of_gas_936": ; preds = %"$have_gas_897" - call void @_out_of_gas() - br label %"$have_gas_937" - -"$have_gas_937": ; preds = %"$out_of_gas_936", %"$have_gas_897" - %"$consume_938" = sub i64 %"$gasrem_934", %"$_literal_cost_call_933" - store i64 %"$consume_938", i64* @_gasrem, align 8 - %"$execptr_load_939" = load i8*, i8** @_execptr, align 8 - %"$e_940" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_939", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_940") - br label %"$matchsucc_882" - -"$True_941": ; preds = %"$have_gas_880" - %"$is_owner_942" = bitcast %TName_Bool* %"$is_owner_883" to %CName_True* - %"$gasrem_943" = load i64, i64* @_gasrem, align 8 - %"$gascmp_944" = icmp ugt i64 1, %"$gasrem_943" - br i1 %"$gascmp_944", label %"$out_of_gas_945", label %"$have_gas_946" - -"$out_of_gas_945": ; preds = %"$True_941" - call void @_out_of_gas() - br label %"$have_gas_946" - -"$have_gas_946": ; preds = %"$out_of_gas_945", %"$True_941" - %"$consume_947" = sub i64 %"$gasrem_943", 1 - store i64 %"$consume_947", i64* @_gasrem, align 8 + %"$gasrem_763" = load i64, i64* @_gasrem, align 8 + %"$gascmp_764" = icmp ugt i64 1, %"$gasrem_763" + br i1 %"$gascmp_764", label %"$out_of_gas_765", label %"$have_gas_766" + +"$out_of_gas_765": ; preds = %"$have_gas_761" + call void @_out_of_gas() + br label %"$have_gas_766" + +"$have_gas_766": ; preds = %"$out_of_gas_765", %"$have_gas_761" + %"$consume_767" = sub i64 %"$gasrem_763", 1 + store i64 %"$consume_767", i64* @_gasrem, align 8 + %"$msgobj_768_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_768_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_768_salloc_load", i64 153) + %"$msgobj_768_salloc" = bitcast i8* %"$msgobj_768_salloc_salloc" to [153 x i8]* + %"$msgobj_768" = bitcast [153 x i8]* %"$msgobj_768_salloc" to i8* + store i8 4, i8* %"$msgobj_768", align 1 + %"$msgobj_fname_770" = getelementptr i8, i8* %"$msgobj_768", i32 1 + %"$msgobj_fname_771" = bitcast i8* %"$msgobj_fname_770" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_769", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_771", align 8 + %"$msgobj_td_772" = getelementptr i8, i8* %"$msgobj_768", i32 17 + %"$msgobj_td_773" = bitcast i8* %"$msgobj_td_772" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_773", align 8 + %"$msgobj_v_775" = getelementptr i8, i8* %"$msgobj_768", i32 25 + %"$msgobj_v_776" = bitcast i8* %"$msgobj_v_775" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_774", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_776", align 8 + %"$msgobj_fname_778" = getelementptr i8, i8* %"$msgobj_768", i32 41 + %"$msgobj_fname_779" = bitcast i8* %"$msgobj_fname_778" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_777", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_779", align 8 + %"$msgobj_td_780" = getelementptr i8, i8* %"$msgobj_768", i32 57 + %"$msgobj_td_781" = bitcast i8* %"$msgobj_td_780" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_781", align 8 + %"$msgobj_v_782" = getelementptr i8, i8* %"$msgobj_768", i32 65 + %"$msgobj_v_783" = bitcast i8* %"$msgobj_v_782" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_783", align 1 + %"$msgobj_fname_785" = getelementptr i8, i8* %"$msgobj_768", i32 85 + %"$msgobj_fname_786" = bitcast i8* %"$msgobj_fname_785" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_784", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_786", align 8 + %"$msgobj_td_787" = getelementptr i8, i8* %"$msgobj_768", i32 101 + %"$msgobj_td_788" = bitcast i8* %"$msgobj_td_787" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_788", align 8 + %"$msgobj_v_789" = getelementptr i8, i8* %"$msgobj_768", i32 109 + %"$msgobj_v_790" = bitcast i8* %"$msgobj_v_789" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_790", align 8 + %"$msgobj_fname_792" = getelementptr i8, i8* %"$msgobj_768", i32 125 + %"$msgobj_fname_793" = bitcast i8* %"$msgobj_fname_792" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_791", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_793", align 8 + %"$msgobj_td_794" = getelementptr i8, i8* %"$msgobj_768", i32 141 + %"$msgobj_td_795" = bitcast i8* %"$msgobj_td_794" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_795", align 8 + %"$crowdfunding.not_owner_code_796" = load %Int32, %Int32* @crowdfunding.not_owner_code, align 4 + %"$msgobj_v_797" = getelementptr i8, i8* %"$msgobj_768", i32 149 + %"$msgobj_v_798" = bitcast i8* %"$msgobj_v_797" to %Int32* + store %Int32 %"$crowdfunding.not_owner_code_796", %Int32* %"$msgobj_v_798", align 4 + store i8* %"$msgobj_768", i8** %e, align 8 + %"$e_800" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_802" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_800") + %"$gasrem_803" = load i64, i64* @_gasrem, align 8 + %"$gascmp_804" = icmp ugt i64 %"$_literal_cost_call_802", %"$gasrem_803" + br i1 %"$gascmp_804", label %"$out_of_gas_805", label %"$have_gas_806" + +"$out_of_gas_805": ; preds = %"$have_gas_766" + call void @_out_of_gas() + br label %"$have_gas_806" + +"$have_gas_806": ; preds = %"$out_of_gas_805", %"$have_gas_766" + %"$consume_807" = sub i64 %"$gasrem_803", %"$_literal_cost_call_802" + store i64 %"$consume_807", i64* @_gasrem, align 8 + %"$execptr_load_808" = load i8*, i8** @_execptr, align 8 + %"$e_809" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_808", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_809") + br label %"$matchsucc_751" + +"$True_810": ; preds = %"$have_gas_749" + %"$is_owner_811" = bitcast %TName_Bool* %"$is_owner_752" to %CName_True* + %"$gasrem_812" = load i64, i64* @_gasrem, align 8 + %"$gascmp_813" = icmp ugt i64 1, %"$gasrem_812" + br i1 %"$gascmp_813", label %"$out_of_gas_814", label %"$have_gas_815" + +"$out_of_gas_814": ; preds = %"$True_810" + call void @_out_of_gas() + br label %"$have_gas_815" + +"$have_gas_815": ; preds = %"$out_of_gas_814", %"$True_810" + %"$consume_816" = sub i64 %"$gasrem_812", 1 + store i64 %"$consume_816", i64* @_gasrem, align 8 %blk = alloca i8*, align 8 - %"$execptr_load_949" = load i8*, i8** @_execptr, align 8 - %"$blk_call_950" = call i8* @_read_blockchain(i8* %"$execptr_load_949", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_948", i32 0, i32 0), i32 11 }) - store i8* %"$blk_call_950", i8** %blk, align 8 - %"$gasrem_952" = load i64, i64* @_gasrem, align 8 - %"$gascmp_953" = icmp ugt i64 1, %"$gasrem_952" - br i1 %"$gascmp_953", label %"$out_of_gas_954", label %"$have_gas_955" + %"$execptr_load_818" = load i8*, i8** @_execptr, align 8 + %"$blk_call_819" = call i8* @_read_blockchain(i8* %"$execptr_load_818", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_817", i32 0, i32 0), i32 11 }) + store i8* %"$blk_call_819", i8** %blk, align 8 + %"$gasrem_821" = load i64, i64* @_gasrem, align 8 + %"$gascmp_822" = icmp ugt i64 1, %"$gasrem_821" + br i1 %"$gascmp_822", label %"$out_of_gas_823", label %"$have_gas_824" -"$out_of_gas_954": ; preds = %"$have_gas_946" +"$out_of_gas_823": ; preds = %"$have_gas_815" call void @_out_of_gas() - br label %"$have_gas_955" + br label %"$have_gas_824" -"$have_gas_955": ; preds = %"$out_of_gas_954", %"$have_gas_946" - %"$consume_956" = sub i64 %"$gasrem_952", 1 - store i64 %"$consume_956", i64* @_gasrem, align 8 +"$have_gas_824": ; preds = %"$out_of_gas_823", %"$have_gas_815" + %"$consume_825" = sub i64 %"$gasrem_821", 1 + store i64 %"$consume_825", i64* @_gasrem, align 8 %in_time = alloca %TName_Bool*, align 8 - %"$gasrem_957" = load i64, i64* @_gasrem, align 8 - %"$gascmp_958" = icmp ugt i64 1, %"$gasrem_957" - br i1 %"$gascmp_958", label %"$out_of_gas_959", label %"$have_gas_960" - -"$out_of_gas_959": ; preds = %"$have_gas_955" - call void @_out_of_gas() - br label %"$have_gas_960" - -"$have_gas_960": ; preds = %"$out_of_gas_959", %"$have_gas_955" - %"$consume_961" = sub i64 %"$gasrem_957", 1 - store i64 %"$consume_961", i64* @_gasrem, align 8 - %"$crowdfunding.blk_leq_12" = alloca { %TName_Bool* (i8*, i8*)*, i8* }, align 8 - %"$crowdfunding.blk_leq_962" = load { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }, { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8 - %"$crowdfunding.blk_leq_fptr_963" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_962", 0 - %"$crowdfunding.blk_leq_envptr_964" = extractvalue { { %TName_Bool* (i8*, i8*)*, i8* } (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_962", 1 - %"$blk_965" = load i8*, i8** %blk, align 8 - %"$crowdfunding.blk_leq_call_966" = call { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_fptr_963"(i8* %"$crowdfunding.blk_leq_envptr_964", i8* %"$blk_965") - store { %TName_Bool* (i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_call_966", { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_12", align 8 - %"$crowdfunding.blk_leq_13" = alloca %TName_Bool*, align 8 - %"$$crowdfunding.blk_leq_12_967" = load { %TName_Bool* (i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*)*, i8* }* %"$crowdfunding.blk_leq_12", align 8 - %"$$crowdfunding.blk_leq_12_fptr_968" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_12_967", 0 - %"$$crowdfunding.blk_leq_12_envptr_969" = extractvalue { %TName_Bool* (i8*, i8*)*, i8* } %"$$crowdfunding.blk_leq_12_967", 1 - %"$max_block_970" = load i8*, i8** @_cparam_max_block, align 8 - %"$$crowdfunding.blk_leq_12_call_971" = call %TName_Bool* %"$$crowdfunding.blk_leq_12_fptr_968"(i8* %"$$crowdfunding.blk_leq_12_envptr_969", i8* %"$max_block_970") - store %TName_Bool* %"$$crowdfunding.blk_leq_12_call_971", %TName_Bool** %"$crowdfunding.blk_leq_13", align 8 - %"$$crowdfunding.blk_leq_13_972" = load %TName_Bool*, %TName_Bool** %"$crowdfunding.blk_leq_13", align 8 - store %TName_Bool* %"$$crowdfunding.blk_leq_13_972", %TName_Bool** %in_time, align 8 - %"$gasrem_973" = load i64, i64* @_gasrem, align 8 - %"$gascmp_974" = icmp ugt i64 1, %"$gasrem_973" - br i1 %"$gascmp_974", label %"$out_of_gas_975", label %"$have_gas_976" + %"$gasrem_826" = load i64, i64* @_gasrem, align 8 + %"$gascmp_827" = icmp ugt i64 1, %"$gasrem_826" + br i1 %"$gascmp_827", label %"$out_of_gas_828", label %"$have_gas_829" + +"$out_of_gas_828": ; preds = %"$have_gas_824" + call void @_out_of_gas() + br label %"$have_gas_829" + +"$have_gas_829": ; preds = %"$out_of_gas_828", %"$have_gas_824" + %"$consume_830" = sub i64 %"$gasrem_826", 1 + store i64 %"$consume_830", i64* @_gasrem, align 8 + %"$crowdfunding.blk_leq_831" = load { %TName_Bool* (i8*, i8*, i8*)*, i8* }, { %TName_Bool* (i8*, i8*, i8*)*, i8* }* @crowdfunding.blk_leq, align 8 + %"$crowdfunding.blk_leq_fptr_832" = extractvalue { %TName_Bool* (i8*, i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_831", 0 + %"$crowdfunding.blk_leq_envptr_833" = extractvalue { %TName_Bool* (i8*, i8*, i8*)*, i8* } %"$crowdfunding.blk_leq_831", 1 + %"$blk_834" = load i8*, i8** %blk, align 8 + %"$max_block_835" = load i8*, i8** @_cparam_max_block, align 8 + %"$crowdfunding.blk_leq_call_836" = call %TName_Bool* %"$crowdfunding.blk_leq_fptr_832"(i8* %"$crowdfunding.blk_leq_envptr_833", i8* %"$blk_834", i8* %"$max_block_835") + store %TName_Bool* %"$crowdfunding.blk_leq_call_836", %TName_Bool** %in_time, align 8 + %"$gasrem_837" = load i64, i64* @_gasrem, align 8 + %"$gascmp_838" = icmp ugt i64 1, %"$gasrem_837" + br i1 %"$gascmp_838", label %"$out_of_gas_839", label %"$have_gas_840" + +"$out_of_gas_839": ; preds = %"$have_gas_829" + call void @_out_of_gas() + br label %"$have_gas_840" + +"$have_gas_840": ; preds = %"$out_of_gas_839", %"$have_gas_829" + %"$consume_841" = sub i64 %"$gasrem_837", 1 + store i64 %"$consume_841", i64* @_gasrem, align 8 + %c1 = alloca %TName_Bool*, align 8 + %"$gasrem_842" = load i64, i64* @_gasrem, align 8 + %"$gascmp_843" = icmp ugt i64 1, %"$gasrem_842" + br i1 %"$gascmp_843", label %"$out_of_gas_844", label %"$have_gas_845" -"$out_of_gas_975": ; preds = %"$have_gas_960" +"$out_of_gas_844": ; preds = %"$have_gas_840" call void @_out_of_gas() - br label %"$have_gas_976" + br label %"$have_gas_845" -"$have_gas_976": ; preds = %"$out_of_gas_975", %"$have_gas_960" - %"$consume_977" = sub i64 %"$gasrem_973", 1 - store i64 %"$consume_977", i64* @_gasrem, align 8 - %c1 = alloca %TName_Bool*, align 8 - %"$gasrem_978" = load i64, i64* @_gasrem, align 8 - %"$gascmp_979" = icmp ugt i64 1, %"$gasrem_978" - br i1 %"$gascmp_979", label %"$out_of_gas_980", label %"$have_gas_981" - -"$out_of_gas_980": ; preds = %"$have_gas_976" - call void @_out_of_gas() - br label %"$have_gas_981" - -"$have_gas_981": ; preds = %"$out_of_gas_980", %"$have_gas_976" - %"$consume_982" = sub i64 %"$gasrem_978", 1 - store i64 %"$consume_982", i64* @_gasrem, align 8 - %"$BoolUtils.negb_11" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_983" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_984" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_983", 0 - %"$BoolUtils.negb_envptr_985" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_983", 1 - %"$in_time_986" = load %TName_Bool*, %TName_Bool** %in_time, align 8 - %"$BoolUtils.negb_call_987" = call %TName_Bool* %"$BoolUtils.negb_fptr_984"(i8* %"$BoolUtils.negb_envptr_985", %TName_Bool* %"$in_time_986") - store %TName_Bool* %"$BoolUtils.negb_call_987", %TName_Bool** %"$BoolUtils.negb_11", align 8 - %"$$BoolUtils.negb_11_988" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_11", align 8 - store %TName_Bool* %"$$BoolUtils.negb_11_988", %TName_Bool** %c1, align 8 +"$have_gas_845": ; preds = %"$out_of_gas_844", %"$have_gas_840" + %"$consume_846" = sub i64 %"$gasrem_842", 1 + store i64 %"$consume_846", i64* @_gasrem, align 8 + %"$BoolUtils.negb_0" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_847" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_848" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_847", 0 + %"$BoolUtils.negb_envptr_849" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_847", 1 + %"$in_time_850" = load %TName_Bool*, %TName_Bool** %in_time, align 8 + %"$BoolUtils.negb_call_851" = call %TName_Bool* %"$BoolUtils.negb_fptr_848"(i8* %"$BoolUtils.negb_envptr_849", %TName_Bool* %"$in_time_850") + store %TName_Bool* %"$BoolUtils.negb_call_851", %TName_Bool** %"$BoolUtils.negb_0", align 8 + %"$$BoolUtils.negb_0_852" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_0", align 8 + store %TName_Bool* %"$$BoolUtils.negb_0_852", %TName_Bool** %c1, align 8 %bal = alloca %Uint128, align 8 - %"$execptr_load_990" = load i8*, i8** @_execptr, align 8 - %"$bal_call_991" = call i8* @_fetch_field(i8* %"$execptr_load_990", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_989", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", i32 0, i8* null, i32 1) - %"$bal_992" = bitcast i8* %"$bal_call_991" to %Uint128* - %"$bal_993" = load %Uint128, %Uint128* %"$bal_992", align 8 - store %Uint128 %"$bal_993", %Uint128* %bal, align 8 - %"$_literal_cost_bal_994" = alloca %Uint128, align 8 - %"$bal_995" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_995", %Uint128* %"$_literal_cost_bal_994", align 8 - %"$$_literal_cost_bal_994_996" = bitcast %Uint128* %"$_literal_cost_bal_994" to i8* - %"$_literal_cost_call_997" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_56", i8* %"$$_literal_cost_bal_994_996") - %"$gasadd_998" = add i64 %"$_literal_cost_call_997", 0 - %"$gasrem_999" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1000" = icmp ugt i64 %"$gasadd_998", %"$gasrem_999" - br i1 %"$gascmp_1000", label %"$out_of_gas_1001", label %"$have_gas_1002" - -"$out_of_gas_1001": ; preds = %"$have_gas_981" - call void @_out_of_gas() - br label %"$have_gas_1002" - -"$have_gas_1002": ; preds = %"$out_of_gas_1001", %"$have_gas_981" - %"$consume_1003" = sub i64 %"$gasrem_999", %"$gasadd_998" - store i64 %"$consume_1003", i64* @_gasrem, align 8 - %"$gasrem_1004" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1005" = icmp ugt i64 1, %"$gasrem_1004" - br i1 %"$gascmp_1005", label %"$out_of_gas_1006", label %"$have_gas_1007" - -"$out_of_gas_1006": ; preds = %"$have_gas_1002" - call void @_out_of_gas() - br label %"$have_gas_1007" - -"$have_gas_1007": ; preds = %"$out_of_gas_1006", %"$have_gas_1002" - %"$consume_1008" = sub i64 %"$gasrem_1004", 1 - store i64 %"$consume_1008", i64* @_gasrem, align 8 + %"$execptr_load_854" = load i8*, i8** @_execptr, align 8 + %"$bal_call_855" = call i8* @_fetch_field(i8* %"$execptr_load_854", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_853", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", i32 0, i8* null, i32 1) + %"$bal_856" = bitcast i8* %"$bal_call_855" to %Uint128* + %"$bal_857" = load %Uint128, %Uint128* %"$bal_856", align 8 + store %Uint128 %"$bal_857", %Uint128* %bal, align 8 + %"$_literal_cost_bal_858" = alloca %Uint128, align 8 + %"$bal_859" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_859", %Uint128* %"$_literal_cost_bal_858", align 8 + %"$$_literal_cost_bal_858_860" = bitcast %Uint128* %"$_literal_cost_bal_858" to i8* + %"$_literal_cost_call_861" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_31", i8* %"$$_literal_cost_bal_858_860") + %"$gasadd_862" = add i64 %"$_literal_cost_call_861", 0 + %"$gasrem_863" = load i64, i64* @_gasrem, align 8 + %"$gascmp_864" = icmp ugt i64 %"$gasadd_862", %"$gasrem_863" + br i1 %"$gascmp_864", label %"$out_of_gas_865", label %"$have_gas_866" + +"$out_of_gas_865": ; preds = %"$have_gas_845" + call void @_out_of_gas() + br label %"$have_gas_866" + +"$have_gas_866": ; preds = %"$out_of_gas_865", %"$have_gas_845" + %"$consume_867" = sub i64 %"$gasrem_863", %"$gasadd_862" + store i64 %"$consume_867", i64* @_gasrem, align 8 + %"$gasrem_868" = load i64, i64* @_gasrem, align 8 + %"$gascmp_869" = icmp ugt i64 1, %"$gasrem_868" + br i1 %"$gascmp_869", label %"$out_of_gas_870", label %"$have_gas_871" + +"$out_of_gas_870": ; preds = %"$have_gas_866" + call void @_out_of_gas() + br label %"$have_gas_871" + +"$have_gas_871": ; preds = %"$out_of_gas_870", %"$have_gas_866" + %"$consume_872" = sub i64 %"$gasrem_868", 1 + store i64 %"$consume_872", i64* @_gasrem, align 8 %c2 = alloca %TName_Bool*, align 8 - %"$gasrem_1010" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1011" = icmp ugt i64 8, %"$gasrem_1010" - br i1 %"$gascmp_1011", label %"$out_of_gas_1012", label %"$have_gas_1013" + %"$gasrem_874" = load i64, i64* @_gasrem, align 8 + %"$gascmp_875" = icmp ugt i64 8, %"$gasrem_874" + br i1 %"$gascmp_875", label %"$out_of_gas_876", label %"$have_gas_877" -"$out_of_gas_1012": ; preds = %"$have_gas_1007" +"$out_of_gas_876": ; preds = %"$have_gas_871" call void @_out_of_gas() - br label %"$have_gas_1013" + br label %"$have_gas_877" -"$have_gas_1013": ; preds = %"$out_of_gas_1012", %"$have_gas_1007" - %"$consume_1014" = sub i64 %"$gasrem_1010", 8 - store i64 %"$consume_1014", i64* @_gasrem, align 8 - %"$execptr_load_1015" = load i8*, i8** @_execptr, align 8 - %"$bal_1016" = load %Uint128, %Uint128* %bal, align 8 - %"$goal_1017" = load %Uint128, %Uint128* @_cparam_goal, align 8 - %"$lt_call_1018" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1015", %Uint128 %"$bal_1016", %Uint128 %"$goal_1017") - store %TName_Bool* %"$lt_call_1018", %TName_Bool** %c2, align 8 - %"$gasrem_1020" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1021" = icmp ugt i64 1, %"$gasrem_1020" - br i1 %"$gascmp_1021", label %"$out_of_gas_1022", label %"$have_gas_1023" +"$have_gas_877": ; preds = %"$out_of_gas_876", %"$have_gas_871" + %"$consume_878" = sub i64 %"$gasrem_874", 8 + store i64 %"$consume_878", i64* @_gasrem, align 8 + %"$execptr_load_879" = load i8*, i8** @_execptr, align 8 + %"$bal_880" = load %Uint128, %Uint128* %bal, align 8 + %"$goal_881" = load %Uint128, %Uint128* @_cparam_goal, align 8 + %"$lt_call_882" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_879", %Uint128 %"$bal_880", %Uint128 %"$goal_881") + store %TName_Bool* %"$lt_call_882", %TName_Bool** %c2, align 8 + %"$gasrem_884" = load i64, i64* @_gasrem, align 8 + %"$gascmp_885" = icmp ugt i64 1, %"$gasrem_884" + br i1 %"$gascmp_885", label %"$out_of_gas_886", label %"$have_gas_887" -"$out_of_gas_1022": ; preds = %"$have_gas_1013" +"$out_of_gas_886": ; preds = %"$have_gas_877" call void @_out_of_gas() - br label %"$have_gas_1023" + br label %"$have_gas_887" -"$have_gas_1023": ; preds = %"$out_of_gas_1022", %"$have_gas_1013" - %"$consume_1024" = sub i64 %"$gasrem_1020", 1 - store i64 %"$consume_1024", i64* @_gasrem, align 8 +"$have_gas_887": ; preds = %"$out_of_gas_886", %"$have_gas_877" + %"$consume_888" = sub i64 %"$gasrem_884", 1 + store i64 %"$consume_888", i64* @_gasrem, align 8 %c3 = alloca %TName_Bool*, align 8 - %"$gasrem_1025" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1026" = icmp ugt i64 1, %"$gasrem_1025" - br i1 %"$gascmp_1026", label %"$out_of_gas_1027", label %"$have_gas_1028" - -"$out_of_gas_1027": ; preds = %"$have_gas_1023" - call void @_out_of_gas() - br label %"$have_gas_1028" - -"$have_gas_1028": ; preds = %"$out_of_gas_1027", %"$have_gas_1023" - %"$consume_1029" = sub i64 %"$gasrem_1025", 1 - store i64 %"$consume_1029", i64* @_gasrem, align 8 - %"$BoolUtils.negb_10" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_1030" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1031" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1030", 0 - %"$BoolUtils.negb_envptr_1032" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1030", 1 - %"$c2_1033" = load %TName_Bool*, %TName_Bool** %c2, align 8 - %"$BoolUtils.negb_call_1034" = call %TName_Bool* %"$BoolUtils.negb_fptr_1031"(i8* %"$BoolUtils.negb_envptr_1032", %TName_Bool* %"$c2_1033") - store %TName_Bool* %"$BoolUtils.negb_call_1034", %TName_Bool** %"$BoolUtils.negb_10", align 8 - %"$$BoolUtils.negb_10_1035" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_10", align 8 - store %TName_Bool* %"$$BoolUtils.negb_10_1035", %TName_Bool** %c3, align 8 - %"$gasrem_1036" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1037" = icmp ugt i64 1, %"$gasrem_1036" - br i1 %"$gascmp_1037", label %"$out_of_gas_1038", label %"$have_gas_1039" - -"$out_of_gas_1038": ; preds = %"$have_gas_1028" - call void @_out_of_gas() - br label %"$have_gas_1039" - -"$have_gas_1039": ; preds = %"$out_of_gas_1038", %"$have_gas_1028" - %"$consume_1040" = sub i64 %"$gasrem_1036", 1 - store i64 %"$consume_1040", i64* @_gasrem, align 8 + %"$gasrem_889" = load i64, i64* @_gasrem, align 8 + %"$gascmp_890" = icmp ugt i64 1, %"$gasrem_889" + br i1 %"$gascmp_890", label %"$out_of_gas_891", label %"$have_gas_892" + +"$out_of_gas_891": ; preds = %"$have_gas_887" + call void @_out_of_gas() + br label %"$have_gas_892" + +"$have_gas_892": ; preds = %"$out_of_gas_891", %"$have_gas_887" + %"$consume_893" = sub i64 %"$gasrem_889", 1 + store i64 %"$consume_893", i64* @_gasrem, align 8 + %"$BoolUtils.negb_1" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_894" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_895" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_894", 0 + %"$BoolUtils.negb_envptr_896" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_894", 1 + %"$c2_897" = load %TName_Bool*, %TName_Bool** %c2, align 8 + %"$BoolUtils.negb_call_898" = call %TName_Bool* %"$BoolUtils.negb_fptr_895"(i8* %"$BoolUtils.negb_envptr_896", %TName_Bool* %"$c2_897") + store %TName_Bool* %"$BoolUtils.negb_call_898", %TName_Bool** %"$BoolUtils.negb_1", align 8 + %"$$BoolUtils.negb_1_899" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_1", align 8 + store %TName_Bool* %"$$BoolUtils.negb_1_899", %TName_Bool** %c3, align 8 + %"$gasrem_900" = load i64, i64* @_gasrem, align 8 + %"$gascmp_901" = icmp ugt i64 1, %"$gasrem_900" + br i1 %"$gascmp_901", label %"$out_of_gas_902", label %"$have_gas_903" + +"$out_of_gas_902": ; preds = %"$have_gas_892" + call void @_out_of_gas() + br label %"$have_gas_903" + +"$have_gas_903": ; preds = %"$out_of_gas_902", %"$have_gas_892" + %"$consume_904" = sub i64 %"$gasrem_900", 1 + store i64 %"$consume_904", i64* @_gasrem, align 8 %c4 = alloca %TName_Bool*, align 8 - %"$gasrem_1041" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1042" = icmp ugt i64 1, %"$gasrem_1041" - br i1 %"$gascmp_1042", label %"$out_of_gas_1043", label %"$have_gas_1044" - -"$out_of_gas_1043": ; preds = %"$have_gas_1039" - call void @_out_of_gas() - br label %"$have_gas_1044" - -"$have_gas_1044": ; preds = %"$out_of_gas_1043", %"$have_gas_1039" - %"$consume_1045" = sub i64 %"$gasrem_1041", 1 - store i64 %"$consume_1045", i64* @_gasrem, align 8 - %"$BoolUtils.andb_8" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1046" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_1047" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1046", 0 - %"$BoolUtils.andb_envptr_1048" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1046", 1 - %"$c1_1049" = load %TName_Bool*, %TName_Bool** %c1, align 8 - %"$BoolUtils.andb_call_1050" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1047"(i8* %"$BoolUtils.andb_envptr_1048", %TName_Bool* %"$c1_1049") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1050", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_8", align 8 - %"$BoolUtils.andb_9" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_8_1051" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_8", align 8 - %"$$BoolUtils.andb_8_fptr_1052" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_8_1051", 0 - %"$$BoolUtils.andb_8_envptr_1053" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_8_1051", 1 - %"$c3_1054" = load %TName_Bool*, %TName_Bool** %c3, align 8 - %"$$BoolUtils.andb_8_call_1055" = call %TName_Bool* %"$$BoolUtils.andb_8_fptr_1052"(i8* %"$$BoolUtils.andb_8_envptr_1053", %TName_Bool* %"$c3_1054") - store %TName_Bool* %"$$BoolUtils.andb_8_call_1055", %TName_Bool** %"$BoolUtils.andb_9", align 8 - %"$$BoolUtils.andb_9_1056" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_9", align 8 - store %TName_Bool* %"$$BoolUtils.andb_9_1056", %TName_Bool** %c4, align 8 - %"$gasrem_1057" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1058" = icmp ugt i64 2, %"$gasrem_1057" - br i1 %"$gascmp_1058", label %"$out_of_gas_1059", label %"$have_gas_1060" - -"$out_of_gas_1059": ; preds = %"$have_gas_1044" - call void @_out_of_gas() - br label %"$have_gas_1060" - -"$have_gas_1060": ; preds = %"$out_of_gas_1059", %"$have_gas_1044" - %"$consume_1061" = sub i64 %"$gasrem_1057", 2 - store i64 %"$consume_1061", i64* @_gasrem, align 8 - %"$c4_1063" = load %TName_Bool*, %TName_Bool** %c4, align 8 - %"$c4_tag_1064" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c4_1063", i32 0, i32 0 - %"$c4_tag_1065" = load i8, i8* %"$c4_tag_1064", align 1 - switch i8 %"$c4_tag_1065", label %"$empty_default_1066" [ - i8 1, label %"$False_1067" - i8 0, label %"$True_1121" + %"$gasrem_905" = load i64, i64* @_gasrem, align 8 + %"$gascmp_906" = icmp ugt i64 1, %"$gasrem_905" + br i1 %"$gascmp_906", label %"$out_of_gas_907", label %"$have_gas_908" + +"$out_of_gas_907": ; preds = %"$have_gas_903" + call void @_out_of_gas() + br label %"$have_gas_908" + +"$have_gas_908": ; preds = %"$out_of_gas_907", %"$have_gas_903" + %"$consume_909" = sub i64 %"$gasrem_905", 1 + store i64 %"$consume_909", i64* @_gasrem, align 8 + %"$BoolUtils.andb_910" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_911" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_910", 0 + %"$BoolUtils.andb_envptr_912" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_910", 1 + %"$c1_913" = load %TName_Bool*, %TName_Bool** %c1, align 8 + %"$c3_914" = load %TName_Bool*, %TName_Bool** %c3, align 8 + %"$BoolUtils.andb_call_915" = call %TName_Bool* %"$BoolUtils.andb_fptr_911"(i8* %"$BoolUtils.andb_envptr_912", %TName_Bool* %"$c1_913", %TName_Bool* %"$c3_914") + store %TName_Bool* %"$BoolUtils.andb_call_915", %TName_Bool** %c4, align 8 + %"$gasrem_916" = load i64, i64* @_gasrem, align 8 + %"$gascmp_917" = icmp ugt i64 2, %"$gasrem_916" + br i1 %"$gascmp_917", label %"$out_of_gas_918", label %"$have_gas_919" + +"$out_of_gas_918": ; preds = %"$have_gas_908" + call void @_out_of_gas() + br label %"$have_gas_919" + +"$have_gas_919": ; preds = %"$out_of_gas_918", %"$have_gas_908" + %"$consume_920" = sub i64 %"$gasrem_916", 2 + store i64 %"$consume_920", i64* @_gasrem, align 8 + %"$c4_922" = load %TName_Bool*, %TName_Bool** %c4, align 8 + %"$c4_tag_923" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c4_922", i32 0, i32 0 + %"$c4_tag_924" = load i8, i8* %"$c4_tag_923", align 1 + switch i8 %"$c4_tag_924", label %"$empty_default_925" [ + i8 1, label %"$False_926" + i8 0, label %"$True_980" ] -"$False_1067": ; preds = %"$have_gas_1060" - %"$c4_1068" = bitcast %TName_Bool* %"$c4_1063" to %CName_False* - %"$gasrem_1069" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1070" = icmp ugt i64 1, %"$gasrem_1069" - br i1 %"$gascmp_1070", label %"$out_of_gas_1071", label %"$have_gas_1072" +"$False_926": ; preds = %"$have_gas_919" + %"$c4_927" = bitcast %TName_Bool* %"$c4_922" to %CName_False* + %"$gasrem_928" = load i64, i64* @_gasrem, align 8 + %"$gascmp_929" = icmp ugt i64 1, %"$gasrem_928" + br i1 %"$gascmp_929", label %"$out_of_gas_930", label %"$have_gas_931" -"$out_of_gas_1071": ; preds = %"$False_1067" +"$out_of_gas_930": ; preds = %"$False_926" call void @_out_of_gas() - br label %"$have_gas_1072" + br label %"$have_gas_931" -"$have_gas_1072": ; preds = %"$out_of_gas_1071", %"$False_1067" - %"$consume_1073" = sub i64 %"$gasrem_1069", 1 - store i64 %"$consume_1073", i64* @_gasrem, align 8 +"$have_gas_931": ; preds = %"$out_of_gas_930", %"$False_926" + %"$consume_932" = sub i64 %"$gasrem_928", 1 + store i64 %"$consume_932", i64* @_gasrem, align 8 %e1 = alloca i8*, align 8 - %"$gasrem_1074" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1075" = icmp ugt i64 1, %"$gasrem_1074" - br i1 %"$gascmp_1075", label %"$out_of_gas_1076", label %"$have_gas_1077" - -"$out_of_gas_1076": ; preds = %"$have_gas_1072" - call void @_out_of_gas() - br label %"$have_gas_1077" - -"$have_gas_1077": ; preds = %"$out_of_gas_1076", %"$have_gas_1072" - %"$consume_1078" = sub i64 %"$gasrem_1074", 1 - store i64 %"$consume_1078", i64* @_gasrem, align 8 - %"$msgobj_1079_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1079_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1079_salloc_load", i64 153) - %"$msgobj_1079_salloc" = bitcast i8* %"$msgobj_1079_salloc_salloc" to [153 x i8]* - %"$msgobj_1079" = bitcast [153 x i8]* %"$msgobj_1079_salloc" to i8* - store i8 4, i8* %"$msgobj_1079", align 1 - %"$msgobj_fname_1081" = getelementptr i8, i8* %"$msgobj_1079", i32 1 - %"$msgobj_fname_1082" = bitcast i8* %"$msgobj_fname_1081" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1080", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1082", align 8 - %"$msgobj_td_1083" = getelementptr i8, i8* %"$msgobj_1079", i32 17 - %"$msgobj_td_1084" = bitcast i8* %"$msgobj_td_1083" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1084", align 8 - %"$msgobj_v_1086" = getelementptr i8, i8* %"$msgobj_1079", i32 25 - %"$msgobj_v_1087" = bitcast i8* %"$msgobj_v_1086" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_1085", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_1087", align 8 - %"$msgobj_fname_1089" = getelementptr i8, i8* %"$msgobj_1079", i32 41 - %"$msgobj_fname_1090" = bitcast i8* %"$msgobj_fname_1089" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1088", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1090", align 8 - %"$msgobj_td_1091" = getelementptr i8, i8* %"$msgobj_1079", i32 57 - %"$msgobj_td_1092" = bitcast i8* %"$msgobj_td_1091" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1092", align 8 - %"$msgobj_v_1093" = getelementptr i8, i8* %"$msgobj_1079", i32 65 - %"$msgobj_v_1094" = bitcast i8* %"$msgobj_v_1093" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1094", align 1 - %"$msgobj_fname_1096" = getelementptr i8, i8* %"$msgobj_1079", i32 85 - %"$msgobj_fname_1097" = bitcast i8* %"$msgobj_fname_1096" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1095", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1097", align 8 - %"$msgobj_td_1098" = getelementptr i8, i8* %"$msgobj_1079", i32 101 - %"$msgobj_td_1099" = bitcast i8* %"$msgobj_td_1098" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1099", align 8 - %"$msgobj_v_1100" = getelementptr i8, i8* %"$msgobj_1079", i32 109 - %"$msgobj_v_1101" = bitcast i8* %"$msgobj_v_1100" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1101", align 8 - %"$msgobj_fname_1103" = getelementptr i8, i8* %"$msgobj_1079", i32 125 - %"$msgobj_fname_1104" = bitcast i8* %"$msgobj_fname_1103" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1102", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1104", align 8 - %"$msgobj_td_1105" = getelementptr i8, i8* %"$msgobj_1079", i32 141 - %"$msgobj_td_1106" = bitcast i8* %"$msgobj_td_1105" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1106", align 8 - %"$crowdfunding.cannot_get_funds_1107" = load %Int32, %Int32* @crowdfunding.cannot_get_funds, align 4 - %"$msgobj_v_1108" = getelementptr i8, i8* %"$msgobj_1079", i32 149 - %"$msgobj_v_1109" = bitcast i8* %"$msgobj_v_1108" to %Int32* - store %Int32 %"$crowdfunding.cannot_get_funds_1107", %Int32* %"$msgobj_v_1109", align 4 - store i8* %"$msgobj_1079", i8** %e1, align 8 - %"$e_1111" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_1113" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1111") - %"$gasrem_1114" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1115" = icmp ugt i64 %"$_literal_cost_call_1113", %"$gasrem_1114" - br i1 %"$gascmp_1115", label %"$out_of_gas_1116", label %"$have_gas_1117" - -"$out_of_gas_1116": ; preds = %"$have_gas_1077" - call void @_out_of_gas() - br label %"$have_gas_1117" - -"$have_gas_1117": ; preds = %"$out_of_gas_1116", %"$have_gas_1077" - %"$consume_1118" = sub i64 %"$gasrem_1114", %"$_literal_cost_call_1113" - store i64 %"$consume_1118", i64* @_gasrem, align 8 - %"$execptr_load_1119" = load i8*, i8** @_execptr, align 8 - %"$e_1120" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_1119", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1120") - br label %"$matchsucc_1062" - -"$True_1121": ; preds = %"$have_gas_1060" - %"$c4_1122" = bitcast %TName_Bool* %"$c4_1063" to %CName_True* - %"$gasrem_1123" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1124" = icmp ugt i64 1, %"$gasrem_1123" - br i1 %"$gascmp_1124", label %"$out_of_gas_1125", label %"$have_gas_1126" - -"$out_of_gas_1125": ; preds = %"$True_1121" - call void @_out_of_gas() - br label %"$have_gas_1126" - -"$have_gas_1126": ; preds = %"$out_of_gas_1125", %"$True_1121" - %"$consume_1127" = sub i64 %"$gasrem_1123", 1 - store i64 %"$consume_1127", i64* @_gasrem, align 8 + %"$gasrem_933" = load i64, i64* @_gasrem, align 8 + %"$gascmp_934" = icmp ugt i64 1, %"$gasrem_933" + br i1 %"$gascmp_934", label %"$out_of_gas_935", label %"$have_gas_936" + +"$out_of_gas_935": ; preds = %"$have_gas_931" + call void @_out_of_gas() + br label %"$have_gas_936" + +"$have_gas_936": ; preds = %"$out_of_gas_935", %"$have_gas_931" + %"$consume_937" = sub i64 %"$gasrem_933", 1 + store i64 %"$consume_937", i64* @_gasrem, align 8 + %"$msgobj_938_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_938_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_938_salloc_load", i64 153) + %"$msgobj_938_salloc" = bitcast i8* %"$msgobj_938_salloc_salloc" to [153 x i8]* + %"$msgobj_938" = bitcast [153 x i8]* %"$msgobj_938_salloc" to i8* + store i8 4, i8* %"$msgobj_938", align 1 + %"$msgobj_fname_940" = getelementptr i8, i8* %"$msgobj_938", i32 1 + %"$msgobj_fname_941" = bitcast i8* %"$msgobj_fname_940" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_939", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_941", align 8 + %"$msgobj_td_942" = getelementptr i8, i8* %"$msgobj_938", i32 17 + %"$msgobj_td_943" = bitcast i8* %"$msgobj_td_942" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_943", align 8 + %"$msgobj_v_945" = getelementptr i8, i8* %"$msgobj_938", i32 25 + %"$msgobj_v_946" = bitcast i8* %"$msgobj_v_945" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_944", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_946", align 8 + %"$msgobj_fname_948" = getelementptr i8, i8* %"$msgobj_938", i32 41 + %"$msgobj_fname_949" = bitcast i8* %"$msgobj_fname_948" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_947", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_949", align 8 + %"$msgobj_td_950" = getelementptr i8, i8* %"$msgobj_938", i32 57 + %"$msgobj_td_951" = bitcast i8* %"$msgobj_td_950" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_951", align 8 + %"$msgobj_v_952" = getelementptr i8, i8* %"$msgobj_938", i32 65 + %"$msgobj_v_953" = bitcast i8* %"$msgobj_v_952" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_953", align 1 + %"$msgobj_fname_955" = getelementptr i8, i8* %"$msgobj_938", i32 85 + %"$msgobj_fname_956" = bitcast i8* %"$msgobj_fname_955" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_954", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_956", align 8 + %"$msgobj_td_957" = getelementptr i8, i8* %"$msgobj_938", i32 101 + %"$msgobj_td_958" = bitcast i8* %"$msgobj_td_957" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_958", align 8 + %"$msgobj_v_959" = getelementptr i8, i8* %"$msgobj_938", i32 109 + %"$msgobj_v_960" = bitcast i8* %"$msgobj_v_959" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_960", align 8 + %"$msgobj_fname_962" = getelementptr i8, i8* %"$msgobj_938", i32 125 + %"$msgobj_fname_963" = bitcast i8* %"$msgobj_fname_962" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_961", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_963", align 8 + %"$msgobj_td_964" = getelementptr i8, i8* %"$msgobj_938", i32 141 + %"$msgobj_td_965" = bitcast i8* %"$msgobj_td_964" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_965", align 8 + %"$crowdfunding.cannot_get_funds_966" = load %Int32, %Int32* @crowdfunding.cannot_get_funds, align 4 + %"$msgobj_v_967" = getelementptr i8, i8* %"$msgobj_938", i32 149 + %"$msgobj_v_968" = bitcast i8* %"$msgobj_v_967" to %Int32* + store %Int32 %"$crowdfunding.cannot_get_funds_966", %Int32* %"$msgobj_v_968", align 4 + store i8* %"$msgobj_938", i8** %e1, align 8 + %"$e_970" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_972" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_970") + %"$gasrem_973" = load i64, i64* @_gasrem, align 8 + %"$gascmp_974" = icmp ugt i64 %"$_literal_cost_call_972", %"$gasrem_973" + br i1 %"$gascmp_974", label %"$out_of_gas_975", label %"$have_gas_976" + +"$out_of_gas_975": ; preds = %"$have_gas_936" + call void @_out_of_gas() + br label %"$have_gas_976" + +"$have_gas_976": ; preds = %"$out_of_gas_975", %"$have_gas_936" + %"$consume_977" = sub i64 %"$gasrem_973", %"$_literal_cost_call_972" + store i64 %"$consume_977", i64* @_gasrem, align 8 + %"$execptr_load_978" = load i8*, i8** @_execptr, align 8 + %"$e_979" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_978", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_979") + br label %"$matchsucc_921" + +"$True_980": ; preds = %"$have_gas_919" + %"$c4_981" = bitcast %TName_Bool* %"$c4_922" to %CName_True* + %"$gasrem_982" = load i64, i64* @_gasrem, align 8 + %"$gascmp_983" = icmp ugt i64 1, %"$gasrem_982" + br i1 %"$gascmp_983", label %"$out_of_gas_984", label %"$have_gas_985" + +"$out_of_gas_984": ; preds = %"$True_980" + call void @_out_of_gas() + br label %"$have_gas_985" + +"$have_gas_985": ; preds = %"$out_of_gas_984", %"$True_980" + %"$consume_986" = sub i64 %"$gasrem_982", 1 + store i64 %"$consume_986", i64* @_gasrem, align 8 %tt = alloca %TName_Bool*, align 8 - %"$gasrem_1128" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1129" = icmp ugt i64 1, %"$gasrem_1128" - br i1 %"$gascmp_1129", label %"$out_of_gas_1130", label %"$have_gas_1131" - -"$out_of_gas_1130": ; preds = %"$have_gas_1126" - call void @_out_of_gas() - br label %"$have_gas_1131" - -"$have_gas_1131": ; preds = %"$out_of_gas_1130", %"$have_gas_1126" - %"$consume_1132" = sub i64 %"$gasrem_1128", 1 - store i64 %"$consume_1132", i64* @_gasrem, align 8 - %"$adtval_1133_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1133_salloc" = call i8* @_salloc(i8* %"$adtval_1133_load", i64 1) - %"$adtval_1133" = bitcast i8* %"$adtval_1133_salloc" to %CName_True* - %"$adtgep_1134" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1133", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1134", align 1 - %"$adtptr_1135" = bitcast %CName_True* %"$adtval_1133" to %TName_Bool* - store %TName_Bool* %"$adtptr_1135", %TName_Bool** %tt, align 8 - %"$tt_1136" = load %TName_Bool*, %TName_Bool** %tt, align 8 - %"$$tt_1136_1137" = bitcast %TName_Bool* %"$tt_1136" to i8* - %"$_literal_cost_call_1138" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", i8* %"$$tt_1136_1137") - %"$gasrem_1139" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1140" = icmp ugt i64 %"$_literal_cost_call_1138", %"$gasrem_1139" - br i1 %"$gascmp_1140", label %"$out_of_gas_1141", label %"$have_gas_1142" - -"$out_of_gas_1141": ; preds = %"$have_gas_1131" - call void @_out_of_gas() - br label %"$have_gas_1142" - -"$have_gas_1142": ; preds = %"$out_of_gas_1141", %"$have_gas_1131" - %"$consume_1143" = sub i64 %"$gasrem_1139", %"$_literal_cost_call_1138" - store i64 %"$consume_1143", i64* @_gasrem, align 8 - %"$execptr_load_1144" = load i8*, i8** @_execptr, align 8 - %"$tt_1146" = load %TName_Bool*, %TName_Bool** %tt, align 8 - %"$update_value_1147" = bitcast %TName_Bool* %"$tt_1146" to i8* - call void @_update_field(i8* %"$execptr_load_1144", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1145", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", i32 0, i8* null, i8* %"$update_value_1147") - %"$gasrem_1148" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1149" = icmp ugt i64 1, %"$gasrem_1148" - br i1 %"$gascmp_1149", label %"$out_of_gas_1150", label %"$have_gas_1151" - -"$out_of_gas_1150": ; preds = %"$have_gas_1142" - call void @_out_of_gas() - br label %"$have_gas_1151" - -"$have_gas_1151": ; preds = %"$out_of_gas_1150", %"$have_gas_1142" - %"$consume_1152" = sub i64 %"$gasrem_1148", 1 - store i64 %"$consume_1152", i64* @_gasrem, align 8 + %"$gasrem_987" = load i64, i64* @_gasrem, align 8 + %"$gascmp_988" = icmp ugt i64 1, %"$gasrem_987" + br i1 %"$gascmp_988", label %"$out_of_gas_989", label %"$have_gas_990" + +"$out_of_gas_989": ; preds = %"$have_gas_985" + call void @_out_of_gas() + br label %"$have_gas_990" + +"$have_gas_990": ; preds = %"$out_of_gas_989", %"$have_gas_985" + %"$consume_991" = sub i64 %"$gasrem_987", 1 + store i64 %"$consume_991", i64* @_gasrem, align 8 + %"$adtval_992_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_992_salloc" = call i8* @_salloc(i8* %"$adtval_992_load", i64 1) + %"$adtval_992" = bitcast i8* %"$adtval_992_salloc" to %CName_True* + %"$adtgep_993" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_992", i32 0, i32 0 + store i8 0, i8* %"$adtgep_993", align 1 + %"$adtptr_994" = bitcast %CName_True* %"$adtval_992" to %TName_Bool* + store %TName_Bool* %"$adtptr_994", %TName_Bool** %tt, align 8 + %"$tt_995" = load %TName_Bool*, %TName_Bool** %tt, align 8 + %"$$tt_995_996" = bitcast %TName_Bool* %"$tt_995" to i8* + %"$_literal_cost_call_997" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", i8* %"$$tt_995_996") + %"$gasrem_998" = load i64, i64* @_gasrem, align 8 + %"$gascmp_999" = icmp ugt i64 %"$_literal_cost_call_997", %"$gasrem_998" + br i1 %"$gascmp_999", label %"$out_of_gas_1000", label %"$have_gas_1001" + +"$out_of_gas_1000": ; preds = %"$have_gas_990" + call void @_out_of_gas() + br label %"$have_gas_1001" + +"$have_gas_1001": ; preds = %"$out_of_gas_1000", %"$have_gas_990" + %"$consume_1002" = sub i64 %"$gasrem_998", %"$_literal_cost_call_997" + store i64 %"$consume_1002", i64* @_gasrem, align 8 + %"$execptr_load_1003" = load i8*, i8** @_execptr, align 8 + %"$tt_1005" = load %TName_Bool*, %TName_Bool** %tt, align 8 + %"$update_value_1006" = bitcast %TName_Bool* %"$tt_1005" to i8* + call void @_update_field(i8* %"$execptr_load_1003", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1004", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", i32 0, i8* null, i8* %"$update_value_1006") + %"$gasrem_1007" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1008" = icmp ugt i64 1, %"$gasrem_1007" + br i1 %"$gascmp_1008", label %"$out_of_gas_1009", label %"$have_gas_1010" + +"$out_of_gas_1009": ; preds = %"$have_gas_1001" + call void @_out_of_gas() + br label %"$have_gas_1010" + +"$have_gas_1010": ; preds = %"$out_of_gas_1009", %"$have_gas_1001" + %"$consume_1011" = sub i64 %"$gasrem_1007", 1 + store i64 %"$consume_1011", i64* @_gasrem, align 8 %msg = alloca i8*, align 8 - %"$gasrem_1153" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1154" = icmp ugt i64 1, %"$gasrem_1153" - br i1 %"$gascmp_1154", label %"$out_of_gas_1155", label %"$have_gas_1156" - -"$out_of_gas_1155": ; preds = %"$have_gas_1151" - call void @_out_of_gas() - br label %"$have_gas_1156" - -"$have_gas_1156": ; preds = %"$out_of_gas_1155", %"$have_gas_1151" - %"$consume_1157" = sub i64 %"$gasrem_1153", 1 - store i64 %"$consume_1157", i64* @_gasrem, align 8 - %"$msgobj_1158_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1158_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1158_salloc_load", i64 125) - %"$msgobj_1158_salloc" = bitcast i8* %"$msgobj_1158_salloc_salloc" to [125 x i8]* - %"$msgobj_1158" = bitcast [125 x i8]* %"$msgobj_1158_salloc" to i8* - store i8 3, i8* %"$msgobj_1158", align 1 - %"$msgobj_fname_1160" = getelementptr i8, i8* %"$msgobj_1158", i32 1 - %"$msgobj_fname_1161" = bitcast i8* %"$msgobj_fname_1160" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1159", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1161", align 8 - %"$msgobj_td_1162" = getelementptr i8, i8* %"$msgobj_1158", i32 17 - %"$msgobj_td_1163" = bitcast i8* %"$msgobj_td_1162" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1163", align 8 - %"$msgobj_v_1165" = getelementptr i8, i8* %"$msgobj_1158", i32 25 - %"$msgobj_v_1166" = bitcast i8* %"$msgobj_v_1165" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1164", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1166", align 8 - %"$msgobj_fname_1168" = getelementptr i8, i8* %"$msgobj_1158", i32 41 - %"$msgobj_fname_1169" = bitcast i8* %"$msgobj_fname_1168" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1167", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1169", align 8 - %"$msgobj_td_1170" = getelementptr i8, i8* %"$msgobj_1158", i32 57 - %"$msgobj_td_1171" = bitcast i8* %"$msgobj_td_1170" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1171", align 8 - %"$owner_1172" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 - %"$msgobj_v_1173" = getelementptr i8, i8* %"$msgobj_1158", i32 65 - %"$msgobj_v_1174" = bitcast i8* %"$msgobj_v_1173" to [20 x i8]* - store [20 x i8] %"$owner_1172", [20 x i8]* %"$msgobj_v_1174", align 1 - %"$msgobj_fname_1176" = getelementptr i8, i8* %"$msgobj_1158", i32 85 - %"$msgobj_fname_1177" = bitcast i8* %"$msgobj_fname_1176" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1175", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1177", align 8 - %"$msgobj_td_1178" = getelementptr i8, i8* %"$msgobj_1158", i32 101 - %"$msgobj_td_1179" = bitcast i8* %"$msgobj_td_1178" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1179", align 8 - %"$bal_1180" = load %Uint128, %Uint128* %bal, align 8 - %"$msgobj_v_1181" = getelementptr i8, i8* %"$msgobj_1158", i32 109 - %"$msgobj_v_1182" = bitcast i8* %"$msgobj_v_1181" to %Uint128* - store %Uint128 %"$bal_1180", %Uint128* %"$msgobj_v_1182", align 8 - store i8* %"$msgobj_1158", i8** %msg, align 8 - %"$gasrem_1184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1185" = icmp ugt i64 1, %"$gasrem_1184" - br i1 %"$gascmp_1185", label %"$out_of_gas_1186", label %"$have_gas_1187" - -"$out_of_gas_1186": ; preds = %"$have_gas_1156" - call void @_out_of_gas() - br label %"$have_gas_1187" - -"$have_gas_1187": ; preds = %"$out_of_gas_1186", %"$have_gas_1156" - %"$consume_1188" = sub i64 %"$gasrem_1184", 1 - store i64 %"$consume_1188", i64* @_gasrem, align 8 + %"$gasrem_1012" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1013" = icmp ugt i64 1, %"$gasrem_1012" + br i1 %"$gascmp_1013", label %"$out_of_gas_1014", label %"$have_gas_1015" + +"$out_of_gas_1014": ; preds = %"$have_gas_1010" + call void @_out_of_gas() + br label %"$have_gas_1015" + +"$have_gas_1015": ; preds = %"$out_of_gas_1014", %"$have_gas_1010" + %"$consume_1016" = sub i64 %"$gasrem_1012", 1 + store i64 %"$consume_1016", i64* @_gasrem, align 8 + %"$msgobj_1017_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1017_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1017_salloc_load", i64 125) + %"$msgobj_1017_salloc" = bitcast i8* %"$msgobj_1017_salloc_salloc" to [125 x i8]* + %"$msgobj_1017" = bitcast [125 x i8]* %"$msgobj_1017_salloc" to i8* + store i8 3, i8* %"$msgobj_1017", align 1 + %"$msgobj_fname_1019" = getelementptr i8, i8* %"$msgobj_1017", i32 1 + %"$msgobj_fname_1020" = bitcast i8* %"$msgobj_fname_1019" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1018", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1020", align 8 + %"$msgobj_td_1021" = getelementptr i8, i8* %"$msgobj_1017", i32 17 + %"$msgobj_td_1022" = bitcast i8* %"$msgobj_td_1021" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1022", align 8 + %"$msgobj_v_1024" = getelementptr i8, i8* %"$msgobj_1017", i32 25 + %"$msgobj_v_1025" = bitcast i8* %"$msgobj_v_1024" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1023", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1025", align 8 + %"$msgobj_fname_1027" = getelementptr i8, i8* %"$msgobj_1017", i32 41 + %"$msgobj_fname_1028" = bitcast i8* %"$msgobj_fname_1027" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1026", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1028", align 8 + %"$msgobj_td_1029" = getelementptr i8, i8* %"$msgobj_1017", i32 57 + %"$msgobj_td_1030" = bitcast i8* %"$msgobj_td_1029" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1030", align 8 + %"$owner_1031" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 + %"$msgobj_v_1032" = getelementptr i8, i8* %"$msgobj_1017", i32 65 + %"$msgobj_v_1033" = bitcast i8* %"$msgobj_v_1032" to [20 x i8]* + store [20 x i8] %"$owner_1031", [20 x i8]* %"$msgobj_v_1033", align 1 + %"$msgobj_fname_1035" = getelementptr i8, i8* %"$msgobj_1017", i32 85 + %"$msgobj_fname_1036" = bitcast i8* %"$msgobj_fname_1035" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1034", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1036", align 8 + %"$msgobj_td_1037" = getelementptr i8, i8* %"$msgobj_1017", i32 101 + %"$msgobj_td_1038" = bitcast i8* %"$msgobj_td_1037" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1038", align 8 + %"$bal_1039" = load %Uint128, %Uint128* %bal, align 8 + %"$msgobj_v_1040" = getelementptr i8, i8* %"$msgobj_1017", i32 109 + %"$msgobj_v_1041" = bitcast i8* %"$msgobj_v_1040" to %Uint128* + store %Uint128 %"$bal_1039", %Uint128* %"$msgobj_v_1041", align 8 + store i8* %"$msgobj_1017", i8** %msg, align 8 + %"$gasrem_1043" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1044" = icmp ugt i64 1, %"$gasrem_1043" + br i1 %"$gascmp_1044", label %"$out_of_gas_1045", label %"$have_gas_1046" + +"$out_of_gas_1045": ; preds = %"$have_gas_1015" + call void @_out_of_gas() + br label %"$have_gas_1046" + +"$have_gas_1046": ; preds = %"$out_of_gas_1045", %"$have_gas_1015" + %"$consume_1047" = sub i64 %"$gasrem_1043", 1 + store i64 %"$consume_1047", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_1189" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1190" = icmp ugt i64 1, %"$gasrem_1189" - br i1 %"$gascmp_1190", label %"$out_of_gas_1191", label %"$have_gas_1192" - -"$out_of_gas_1191": ; preds = %"$have_gas_1187" - call void @_out_of_gas() - br label %"$have_gas_1192" - -"$have_gas_1192": ; preds = %"$out_of_gas_1191", %"$have_gas_1187" - %"$consume_1193" = sub i64 %"$gasrem_1189", 1 - store i64 %"$consume_1193", i64* @_gasrem, align 8 - %"$crowdfunding.one_msg_7" = alloca %TName_List_Message*, align 8 - %"$crowdfunding.one_msg_1194" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 - %"$crowdfunding.one_msg_fptr_1195" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1194", 0 - %"$crowdfunding.one_msg_envptr_1196" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1194", 1 - %"$msg_1197" = load i8*, i8** %msg, align 8 - %"$crowdfunding.one_msg_call_1198" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1195"(i8* %"$crowdfunding.one_msg_envptr_1196", i8* %"$msg_1197") - store %TName_List_Message* %"$crowdfunding.one_msg_call_1198", %TName_List_Message** %"$crowdfunding.one_msg_7", align 8 - %"$$crowdfunding.one_msg_7_1199" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_7", align 8 - store %TName_List_Message* %"$$crowdfunding.one_msg_7_1199", %TName_List_Message** %msgs, align 8 - %"$gasrem_1200" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1201" = icmp ugt i64 1, %"$gasrem_1200" - br i1 %"$gascmp_1201", label %"$out_of_gas_1202", label %"$have_gas_1203" - -"$out_of_gas_1202": ; preds = %"$have_gas_1192" - call void @_out_of_gas() - br label %"$have_gas_1203" - -"$have_gas_1203": ; preds = %"$out_of_gas_1202", %"$have_gas_1192" - %"$consume_1204" = sub i64 %"$gasrem_1200", 1 - store i64 %"$consume_1204", i64* @_gasrem, align 8 + %"$gasrem_1048" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1049" = icmp ugt i64 1, %"$gasrem_1048" + br i1 %"$gascmp_1049", label %"$out_of_gas_1050", label %"$have_gas_1051" + +"$out_of_gas_1050": ; preds = %"$have_gas_1046" + call void @_out_of_gas() + br label %"$have_gas_1051" + +"$have_gas_1051": ; preds = %"$out_of_gas_1050", %"$have_gas_1046" + %"$consume_1052" = sub i64 %"$gasrem_1048", 1 + store i64 %"$consume_1052", i64* @_gasrem, align 8 + %"$crowdfunding.one_msg_2" = alloca %TName_List_Message*, align 8 + %"$crowdfunding.one_msg_1053" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 + %"$crowdfunding.one_msg_fptr_1054" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1053", 0 + %"$crowdfunding.one_msg_envptr_1055" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1053", 1 + %"$msg_1056" = load i8*, i8** %msg, align 8 + %"$crowdfunding.one_msg_call_1057" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1054"(i8* %"$crowdfunding.one_msg_envptr_1055", i8* %"$msg_1056") + store %TName_List_Message* %"$crowdfunding.one_msg_call_1057", %TName_List_Message** %"$crowdfunding.one_msg_2", align 8 + %"$$crowdfunding.one_msg_2_1058" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_2", align 8 + store %TName_List_Message* %"$$crowdfunding.one_msg_2_1058", %TName_List_Message** %msgs, align 8 + %"$gasrem_1059" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1060" = icmp ugt i64 1, %"$gasrem_1059" + br i1 %"$gascmp_1060", label %"$out_of_gas_1061", label %"$have_gas_1062" + +"$out_of_gas_1061": ; preds = %"$have_gas_1051" + call void @_out_of_gas() + br label %"$have_gas_1062" + +"$have_gas_1062": ; preds = %"$out_of_gas_1061", %"$have_gas_1051" + %"$consume_1063" = sub i64 %"$gasrem_1059", 1 + store i64 %"$consume_1063", i64* @_gasrem, align 8 %e2 = alloca i8*, align 8 - %"$gasrem_1205" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1206" = icmp ugt i64 1, %"$gasrem_1205" - br i1 %"$gascmp_1206", label %"$out_of_gas_1207", label %"$have_gas_1208" - -"$out_of_gas_1207": ; preds = %"$have_gas_1203" - call void @_out_of_gas() - br label %"$have_gas_1208" - -"$have_gas_1208": ; preds = %"$out_of_gas_1207", %"$have_gas_1203" - %"$consume_1209" = sub i64 %"$gasrem_1205", 1 - store i64 %"$consume_1209", i64* @_gasrem, align 8 - %"$msgobj_1210_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1210_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1210_salloc_load", i64 153) - %"$msgobj_1210_salloc" = bitcast i8* %"$msgobj_1210_salloc_salloc" to [153 x i8]* - %"$msgobj_1210" = bitcast [153 x i8]* %"$msgobj_1210_salloc" to i8* - store i8 4, i8* %"$msgobj_1210", align 1 - %"$msgobj_fname_1212" = getelementptr i8, i8* %"$msgobj_1210", i32 1 - %"$msgobj_fname_1213" = bitcast i8* %"$msgobj_fname_1212" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1211", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1213", align 8 - %"$msgobj_td_1214" = getelementptr i8, i8* %"$msgobj_1210", i32 17 - %"$msgobj_td_1215" = bitcast i8* %"$msgobj_td_1214" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1215", align 8 - %"$msgobj_v_1217" = getelementptr i8, i8* %"$msgobj_1210", i32 25 - %"$msgobj_v_1218" = bitcast i8* %"$msgobj_v_1217" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_1216", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_1218", align 8 - %"$msgobj_fname_1220" = getelementptr i8, i8* %"$msgobj_1210", i32 41 - %"$msgobj_fname_1221" = bitcast i8* %"$msgobj_fname_1220" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1219", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1221", align 8 - %"$msgobj_td_1222" = getelementptr i8, i8* %"$msgobj_1210", i32 57 - %"$msgobj_td_1223" = bitcast i8* %"$msgobj_td_1222" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1223", align 8 - %"$owner_1224" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 - %"$msgobj_v_1225" = getelementptr i8, i8* %"$msgobj_1210", i32 65 - %"$msgobj_v_1226" = bitcast i8* %"$msgobj_v_1225" to [20 x i8]* - store [20 x i8] %"$owner_1224", [20 x i8]* %"$msgobj_v_1226", align 1 - %"$msgobj_fname_1228" = getelementptr i8, i8* %"$msgobj_1210", i32 85 - %"$msgobj_fname_1229" = bitcast i8* %"$msgobj_fname_1228" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1227", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1229", align 8 - %"$msgobj_td_1230" = getelementptr i8, i8* %"$msgobj_1210", i32 101 - %"$msgobj_td_1231" = bitcast i8* %"$msgobj_td_1230" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1231", align 8 - %"$bal_1232" = load %Uint128, %Uint128* %bal, align 8 - %"$msgobj_v_1233" = getelementptr i8, i8* %"$msgobj_1210", i32 109 - %"$msgobj_v_1234" = bitcast i8* %"$msgobj_v_1233" to %Uint128* - store %Uint128 %"$bal_1232", %Uint128* %"$msgobj_v_1234", align 8 - %"$msgobj_fname_1236" = getelementptr i8, i8* %"$msgobj_1210", i32 125 - %"$msgobj_fname_1237" = bitcast i8* %"$msgobj_fname_1236" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1235", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1237", align 8 - %"$msgobj_td_1238" = getelementptr i8, i8* %"$msgobj_1210", i32 141 - %"$msgobj_td_1239" = bitcast i8* %"$msgobj_td_1238" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1239", align 8 - %"$crowdfunding.got_funds_code_1240" = load %Int32, %Int32* @crowdfunding.got_funds_code, align 4 - %"$msgobj_v_1241" = getelementptr i8, i8* %"$msgobj_1210", i32 149 - %"$msgobj_v_1242" = bitcast i8* %"$msgobj_v_1241" to %Int32* - store %Int32 %"$crowdfunding.got_funds_code_1240", %Int32* %"$msgobj_v_1242", align 4 - store i8* %"$msgobj_1210", i8** %e2, align 8 - %"$e_1244" = load i8*, i8** %e2, align 8 - %"$_literal_cost_call_1246" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1244") - %"$gasrem_1247" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1248" = icmp ugt i64 %"$_literal_cost_call_1246", %"$gasrem_1247" - br i1 %"$gascmp_1248", label %"$out_of_gas_1249", label %"$have_gas_1250" - -"$out_of_gas_1249": ; preds = %"$have_gas_1208" - call void @_out_of_gas() - br label %"$have_gas_1250" - -"$have_gas_1250": ; preds = %"$out_of_gas_1249", %"$have_gas_1208" - %"$consume_1251" = sub i64 %"$gasrem_1247", %"$_literal_cost_call_1246" - store i64 %"$consume_1251", i64* @_gasrem, align 8 - %"$execptr_load_1252" = load i8*, i8** @_execptr, align 8 - %"$e_1253" = load i8*, i8** %e2, align 8 - call void @_event(i8* %"$execptr_load_1252", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1253") - %"$msgs_1254" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_1254_1255" = bitcast %TName_List_Message* %"$msgs_1254" to i8* - %"$_literal_cost_call_1256" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80", i8* %"$$msgs_1254_1255") - %"$gasrem_1257" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1258" = icmp ugt i64 %"$_literal_cost_call_1256", %"$gasrem_1257" - br i1 %"$gascmp_1258", label %"$out_of_gas_1259", label %"$have_gas_1260" - -"$out_of_gas_1259": ; preds = %"$have_gas_1250" - call void @_out_of_gas() - br label %"$have_gas_1260" - -"$have_gas_1260": ; preds = %"$out_of_gas_1259", %"$have_gas_1250" - %"$consume_1261" = sub i64 %"$gasrem_1257", %"$_literal_cost_call_1256" - store i64 %"$consume_1261", i64* @_gasrem, align 8 - %"$execptr_load_1262" = load i8*, i8** @_execptr, align 8 - %"$msgs_1263" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_1262", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80", %TName_List_Message* %"$msgs_1263") - br label %"$matchsucc_1062" - -"$empty_default_1066": ; preds = %"$have_gas_1060" - br label %"$matchsucc_1062" - -"$matchsucc_1062": ; preds = %"$have_gas_1260", %"$have_gas_1117", %"$empty_default_1066" - br label %"$matchsucc_882" - -"$empty_default_886": ; preds = %"$have_gas_880" - br label %"$matchsucc_882" - -"$matchsucc_882": ; preds = %"$matchsucc_1062", %"$have_gas_937", %"$empty_default_886" + %"$gasrem_1064" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1065" = icmp ugt i64 1, %"$gasrem_1064" + br i1 %"$gascmp_1065", label %"$out_of_gas_1066", label %"$have_gas_1067" + +"$out_of_gas_1066": ; preds = %"$have_gas_1062" + call void @_out_of_gas() + br label %"$have_gas_1067" + +"$have_gas_1067": ; preds = %"$out_of_gas_1066", %"$have_gas_1062" + %"$consume_1068" = sub i64 %"$gasrem_1064", 1 + store i64 %"$consume_1068", i64* @_gasrem, align 8 + %"$msgobj_1069_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1069_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1069_salloc_load", i64 153) + %"$msgobj_1069_salloc" = bitcast i8* %"$msgobj_1069_salloc_salloc" to [153 x i8]* + %"$msgobj_1069" = bitcast [153 x i8]* %"$msgobj_1069_salloc" to i8* + store i8 4, i8* %"$msgobj_1069", align 1 + %"$msgobj_fname_1071" = getelementptr i8, i8* %"$msgobj_1069", i32 1 + %"$msgobj_fname_1072" = bitcast i8* %"$msgobj_fname_1071" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1070", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1072", align 8 + %"$msgobj_td_1073" = getelementptr i8, i8* %"$msgobj_1069", i32 17 + %"$msgobj_td_1074" = bitcast i8* %"$msgobj_td_1073" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1074", align 8 + %"$msgobj_v_1076" = getelementptr i8, i8* %"$msgobj_1069", i32 25 + %"$msgobj_v_1077" = bitcast i8* %"$msgobj_v_1076" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_1075", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_1077", align 8 + %"$msgobj_fname_1079" = getelementptr i8, i8* %"$msgobj_1069", i32 41 + %"$msgobj_fname_1080" = bitcast i8* %"$msgobj_fname_1079" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1078", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1080", align 8 + %"$msgobj_td_1081" = getelementptr i8, i8* %"$msgobj_1069", i32 57 + %"$msgobj_td_1082" = bitcast i8* %"$msgobj_td_1081" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1082", align 8 + %"$owner_1083" = load [20 x i8], [20 x i8]* @_cparam_owner, align 1 + %"$msgobj_v_1084" = getelementptr i8, i8* %"$msgobj_1069", i32 65 + %"$msgobj_v_1085" = bitcast i8* %"$msgobj_v_1084" to [20 x i8]* + store [20 x i8] %"$owner_1083", [20 x i8]* %"$msgobj_v_1085", align 1 + %"$msgobj_fname_1087" = getelementptr i8, i8* %"$msgobj_1069", i32 85 + %"$msgobj_fname_1088" = bitcast i8* %"$msgobj_fname_1087" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1086", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1088", align 8 + %"$msgobj_td_1089" = getelementptr i8, i8* %"$msgobj_1069", i32 101 + %"$msgobj_td_1090" = bitcast i8* %"$msgobj_td_1089" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1090", align 8 + %"$bal_1091" = load %Uint128, %Uint128* %bal, align 8 + %"$msgobj_v_1092" = getelementptr i8, i8* %"$msgobj_1069", i32 109 + %"$msgobj_v_1093" = bitcast i8* %"$msgobj_v_1092" to %Uint128* + store %Uint128 %"$bal_1091", %Uint128* %"$msgobj_v_1093", align 8 + %"$msgobj_fname_1095" = getelementptr i8, i8* %"$msgobj_1069", i32 125 + %"$msgobj_fname_1096" = bitcast i8* %"$msgobj_fname_1095" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1094", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1096", align 8 + %"$msgobj_td_1097" = getelementptr i8, i8* %"$msgobj_1069", i32 141 + %"$msgobj_td_1098" = bitcast i8* %"$msgobj_td_1097" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_1098", align 8 + %"$crowdfunding.got_funds_code_1099" = load %Int32, %Int32* @crowdfunding.got_funds_code, align 4 + %"$msgobj_v_1100" = getelementptr i8, i8* %"$msgobj_1069", i32 149 + %"$msgobj_v_1101" = bitcast i8* %"$msgobj_v_1100" to %Int32* + store %Int32 %"$crowdfunding.got_funds_code_1099", %Int32* %"$msgobj_v_1101", align 4 + store i8* %"$msgobj_1069", i8** %e2, align 8 + %"$e_1103" = load i8*, i8** %e2, align 8 + %"$_literal_cost_call_1105" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1103") + %"$gasrem_1106" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1107" = icmp ugt i64 %"$_literal_cost_call_1105", %"$gasrem_1106" + br i1 %"$gascmp_1107", label %"$out_of_gas_1108", label %"$have_gas_1109" + +"$out_of_gas_1108": ; preds = %"$have_gas_1067" + call void @_out_of_gas() + br label %"$have_gas_1109" + +"$have_gas_1109": ; preds = %"$out_of_gas_1108", %"$have_gas_1067" + %"$consume_1110" = sub i64 %"$gasrem_1106", %"$_literal_cost_call_1105" + store i64 %"$consume_1110", i64* @_gasrem, align 8 + %"$execptr_load_1111" = load i8*, i8** @_execptr, align 8 + %"$e_1112" = load i8*, i8** %e2, align 8 + call void @_event(i8* %"$execptr_load_1111", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1112") + %"$msgs_1113" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_1113_1114" = bitcast %TName_List_Message* %"$msgs_1113" to i8* + %"$_literal_cost_call_1115" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55", i8* %"$$msgs_1113_1114") + %"$gasrem_1116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1117" = icmp ugt i64 %"$_literal_cost_call_1115", %"$gasrem_1116" + br i1 %"$gascmp_1117", label %"$out_of_gas_1118", label %"$have_gas_1119" + +"$out_of_gas_1118": ; preds = %"$have_gas_1109" + call void @_out_of_gas() + br label %"$have_gas_1119" + +"$have_gas_1119": ; preds = %"$out_of_gas_1118", %"$have_gas_1109" + %"$consume_1120" = sub i64 %"$gasrem_1116", %"$_literal_cost_call_1115" + store i64 %"$consume_1120", i64* @_gasrem, align 8 + %"$execptr_load_1121" = load i8*, i8** @_execptr, align 8 + %"$msgs_1122" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_1121", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55", %TName_List_Message* %"$msgs_1122") + br label %"$matchsucc_921" + +"$empty_default_925": ; preds = %"$have_gas_919" + br label %"$matchsucc_921" + +"$matchsucc_921": ; preds = %"$have_gas_1119", %"$have_gas_976", %"$empty_default_925" + br label %"$matchsucc_751" + +"$empty_default_755": ; preds = %"$have_gas_749" + br label %"$matchsucc_751" + +"$matchsucc_751": ; preds = %"$matchsucc_921", %"$have_gas_806", %"$empty_default_755" ret void } @@ -2406,50 +2177,279 @@ declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) define void @GetFunds(i8* %0) { entry: - %"$_amount_1265" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1266" = bitcast i8* %"$_amount_1265" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1266", align 8 - %"$_origin_1267" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1268" = bitcast i8* %"$_origin_1267" to [20 x i8]* - %"$_sender_1269" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1270" = bitcast i8* %"$_sender_1269" to [20 x i8]* - call void @"$GetFunds_856"(%Uint128 %_amount, [20 x i8]* %"$_origin_1268", [20 x i8]* %"$_sender_1270") + %"$_amount_1124" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1125" = bitcast i8* %"$_amount_1124" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1125", align 8 + %"$_origin_1126" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1127" = bitcast i8* %"$_origin_1126" to [20 x i8]* + %"$_sender_1128" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1129" = bitcast i8* %"$_sender_1128" to [20 x i8]* + call void @"$GetFunds_725"(%Uint128 %_amount, [20 x i8]* %"$_origin_1127", [20 x i8]* %"$_sender_1129") ret void } -define internal void @"$ClaimBack_1271"(%Uint128 %_amount, [20 x i8]* %"$_origin_1272", [20 x i8]* %"$_sender_1273") { +define internal void @"$ClaimBack_1130"(%Uint128 %_amount, [20 x i8]* %"$_origin_1131", [20 x i8]* %"$_sender_1132") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1272", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1273", align 1 - %"$gasrem_1274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1275" = icmp ugt i64 1, %"$gasrem_1274" - br i1 %"$gascmp_1275", label %"$out_of_gas_1276", label %"$have_gas_1277" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1131", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1132", align 1 + %"$gasrem_1133" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1134" = icmp ugt i64 1, %"$gasrem_1133" + br i1 %"$gascmp_1134", label %"$out_of_gas_1135", label %"$have_gas_1136" -"$out_of_gas_1276": ; preds = %entry +"$out_of_gas_1135": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1277" + br label %"$have_gas_1136" -"$have_gas_1277": ; preds = %"$out_of_gas_1276", %entry - %"$consume_1278" = sub i64 %"$gasrem_1274", 1 - store i64 %"$consume_1278", i64* @_gasrem, align 8 +"$have_gas_1136": ; preds = %"$out_of_gas_1135", %entry + %"$consume_1137" = sub i64 %"$gasrem_1133", 1 + store i64 %"$consume_1137", i64* @_gasrem, align 8 %blk = alloca i8*, align 8 - %"$execptr_load_1280" = load i8*, i8** @_execptr, align 8 - %"$blk_call_1281" = call i8* @_read_blockchain(i8* %"$execptr_load_1280", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_1279", i32 0, i32 0), i32 11 }) - store i8* %"$blk_call_1281", i8** %blk, align 8 + %"$execptr_load_1139" = load i8*, i8** @_execptr, align 8 + %"$blk_call_1140" = call i8* @_read_blockchain(i8* %"$execptr_load_1139", %BCVName { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$read_blockchain_1138", i32 0, i32 0), i32 11 }) + store i8* %"$blk_call_1140", i8** %blk, align 8 + %"$gasrem_1142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1143" = icmp ugt i64 1, %"$gasrem_1142" + br i1 %"$gascmp_1143", label %"$out_of_gas_1144", label %"$have_gas_1145" + +"$out_of_gas_1144": ; preds = %"$have_gas_1136" + call void @_out_of_gas() + br label %"$have_gas_1145" + +"$have_gas_1145": ; preds = %"$out_of_gas_1144", %"$have_gas_1136" + %"$consume_1146" = sub i64 %"$gasrem_1142", 1 + store i64 %"$consume_1146", i64* @_gasrem, align 8 + %after_deadline = alloca %TName_Bool*, align 8 + %"$gasrem_1147" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1148" = icmp ugt i64 32, %"$gasrem_1147" + br i1 %"$gascmp_1148", label %"$out_of_gas_1149", label %"$have_gas_1150" + +"$out_of_gas_1149": ; preds = %"$have_gas_1145" + call void @_out_of_gas() + br label %"$have_gas_1150" + +"$have_gas_1150": ; preds = %"$out_of_gas_1149", %"$have_gas_1145" + %"$consume_1151" = sub i64 %"$gasrem_1147", 32 + store i64 %"$consume_1151", i64* @_gasrem, align 8 + %"$execptr_load_1152" = load i8*, i8** @_execptr, align 8 + %"$max_block_1153" = load i8*, i8** @_cparam_max_block, align 8 + %"$blk_1154" = load i8*, i8** %blk, align 8 + %"$blt_call_1155" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_1152", i8* %"$max_block_1153", i8* %"$blk_1154") + store %TName_Bool* %"$blt_call_1155", %TName_Bool** %after_deadline, align 8 + %"$gasrem_1157" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1158" = icmp ugt i64 2, %"$gasrem_1157" + br i1 %"$gascmp_1158", label %"$out_of_gas_1159", label %"$have_gas_1160" + +"$out_of_gas_1159": ; preds = %"$have_gas_1150" + call void @_out_of_gas() + br label %"$have_gas_1160" + +"$have_gas_1160": ; preds = %"$out_of_gas_1159", %"$have_gas_1150" + %"$consume_1161" = sub i64 %"$gasrem_1157", 2 + store i64 %"$consume_1161", i64* @_gasrem, align 8 + %"$after_deadline_1163" = load %TName_Bool*, %TName_Bool** %after_deadline, align 8 + %"$after_deadline_tag_1164" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$after_deadline_1163", i32 0, i32 0 + %"$after_deadline_tag_1165" = load i8, i8* %"$after_deadline_tag_1164", align 1 + switch i8 %"$after_deadline_tag_1165", label %"$empty_default_1166" [ + i8 1, label %"$False_1167" + i8 0, label %"$True_1221" + ] + +"$False_1167": ; preds = %"$have_gas_1160" + %"$after_deadline_1168" = bitcast %TName_Bool* %"$after_deadline_1163" to %CName_False* + %"$gasrem_1169" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1170" = icmp ugt i64 1, %"$gasrem_1169" + br i1 %"$gascmp_1170", label %"$out_of_gas_1171", label %"$have_gas_1172" + +"$out_of_gas_1171": ; preds = %"$False_1167" + call void @_out_of_gas() + br label %"$have_gas_1172" + +"$have_gas_1172": ; preds = %"$out_of_gas_1171", %"$False_1167" + %"$consume_1173" = sub i64 %"$gasrem_1169", 1 + store i64 %"$consume_1173", i64* @_gasrem, align 8 + %e = alloca i8*, align 8 + %"$gasrem_1174" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1175" = icmp ugt i64 1, %"$gasrem_1174" + br i1 %"$gascmp_1175", label %"$out_of_gas_1176", label %"$have_gas_1177" + +"$out_of_gas_1176": ; preds = %"$have_gas_1172" + call void @_out_of_gas() + br label %"$have_gas_1177" + +"$have_gas_1177": ; preds = %"$out_of_gas_1176", %"$have_gas_1172" + %"$consume_1178" = sub i64 %"$gasrem_1174", 1 + store i64 %"$consume_1178", i64* @_gasrem, align 8 + %"$msgobj_1179_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1179_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1179_salloc_load", i64 153) + %"$msgobj_1179_salloc" = bitcast i8* %"$msgobj_1179_salloc_salloc" to [153 x i8]* + %"$msgobj_1179" = bitcast [153 x i8]* %"$msgobj_1179_salloc" to i8* + store i8 4, i8* %"$msgobj_1179", align 1 + %"$msgobj_fname_1181" = getelementptr i8, i8* %"$msgobj_1179", i32 1 + %"$msgobj_fname_1182" = bitcast i8* %"$msgobj_fname_1181" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1180", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1182", align 8 + %"$msgobj_td_1183" = getelementptr i8, i8* %"$msgobj_1179", i32 17 + %"$msgobj_td_1184" = bitcast i8* %"$msgobj_td_1183" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1184", align 8 + %"$msgobj_v_1186" = getelementptr i8, i8* %"$msgobj_1179", i32 25 + %"$msgobj_v_1187" = bitcast i8* %"$msgobj_v_1186" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1185", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1187", align 8 + %"$msgobj_fname_1189" = getelementptr i8, i8* %"$msgobj_1179", i32 41 + %"$msgobj_fname_1190" = bitcast i8* %"$msgobj_fname_1189" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1188", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1190", align 8 + %"$msgobj_td_1191" = getelementptr i8, i8* %"$msgobj_1179", i32 57 + %"$msgobj_td_1192" = bitcast i8* %"$msgobj_td_1191" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1192", align 8 + %"$msgobj_v_1193" = getelementptr i8, i8* %"$msgobj_1179", i32 65 + %"$msgobj_v_1194" = bitcast i8* %"$msgobj_v_1193" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1194", align 1 + %"$msgobj_fname_1196" = getelementptr i8, i8* %"$msgobj_1179", i32 85 + %"$msgobj_fname_1197" = bitcast i8* %"$msgobj_fname_1196" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1195", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1197", align 8 + %"$msgobj_td_1198" = getelementptr i8, i8* %"$msgobj_1179", i32 101 + %"$msgobj_td_1199" = bitcast i8* %"$msgobj_td_1198" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1199", align 8 + %"$msgobj_v_1200" = getelementptr i8, i8* %"$msgobj_1179", i32 109 + %"$msgobj_v_1201" = bitcast i8* %"$msgobj_v_1200" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1201", align 8 + %"$msgobj_fname_1203" = getelementptr i8, i8* %"$msgobj_1179", i32 125 + %"$msgobj_fname_1204" = bitcast i8* %"$msgobj_fname_1203" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1202", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1204", align 8 + %"$msgobj_td_1205" = getelementptr i8, i8* %"$msgobj_1179", i32 141 + %"$msgobj_td_1206" = bitcast i8* %"$msgobj_td_1205" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_1206", align 8 + %"$crowdfunding.too_early_code_1207" = load %Int32, %Int32* @crowdfunding.too_early_code, align 4 + %"$msgobj_v_1208" = getelementptr i8, i8* %"$msgobj_1179", i32 149 + %"$msgobj_v_1209" = bitcast i8* %"$msgobj_v_1208" to %Int32* + store %Int32 %"$crowdfunding.too_early_code_1207", %Int32* %"$msgobj_v_1209", align 4 + store i8* %"$msgobj_1179", i8** %e, align 8 + %"$e_1211" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_1213" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1211") + %"$gasrem_1214" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1215" = icmp ugt i64 %"$_literal_cost_call_1213", %"$gasrem_1214" + br i1 %"$gascmp_1215", label %"$out_of_gas_1216", label %"$have_gas_1217" + +"$out_of_gas_1216": ; preds = %"$have_gas_1177" + call void @_out_of_gas() + br label %"$have_gas_1217" + +"$have_gas_1217": ; preds = %"$out_of_gas_1216", %"$have_gas_1177" + %"$consume_1218" = sub i64 %"$gasrem_1214", %"$_literal_cost_call_1213" + store i64 %"$consume_1218", i64* @_gasrem, align 8 + %"$execptr_load_1219" = load i8*, i8** @_execptr, align 8 + %"$e_1220" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_1219", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1220") + br label %"$matchsucc_1162" + +"$True_1221": ; preds = %"$have_gas_1160" + %"$after_deadline_1222" = bitcast %TName_Bool* %"$after_deadline_1163" to %CName_True* + %bs = alloca %Map_ByStr20_Uint128*, align 8 + %"$execptr_load_1224" = load i8*, i8** @_execptr, align 8 + %"$bs_call_1225" = call i8* @_fetch_field(i8* %"$execptr_load_1224", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1223", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_58", i32 0, i8* null, i32 1) + %"$bs_1226" = bitcast i8* %"$bs_call_1225" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$bs_1226", %Map_ByStr20_Uint128** %bs, align 8 + %"$bs_1227" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1227_1228" = bitcast %Map_ByStr20_Uint128* %"$bs_1227" to i8* + %"$_literal_cost_call_1229" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_1227_1228") + %"$bs_1230" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1230_1231" = bitcast %Map_ByStr20_Uint128* %"$bs_1230" to i8* + %"$_mapsortcost_call_1232" = call i64 @_mapsortcost(i8* %"$$bs_1230_1231") + %"$gasadd_1233" = add i64 %"$_literal_cost_call_1229", %"$_mapsortcost_call_1232" + %"$gasrem_1234" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1235" = icmp ugt i64 %"$gasadd_1233", %"$gasrem_1234" + br i1 %"$gascmp_1235", label %"$out_of_gas_1236", label %"$have_gas_1237" + +"$out_of_gas_1236": ; preds = %"$True_1221" + call void @_out_of_gas() + br label %"$have_gas_1237" + +"$have_gas_1237": ; preds = %"$out_of_gas_1236", %"$True_1221" + %"$consume_1238" = sub i64 %"$gasrem_1234", %"$gasadd_1233" + store i64 %"$consume_1238", i64* @_gasrem, align 8 + %bal = alloca %Uint128, align 8 + %"$execptr_load_1240" = load i8*, i8** @_execptr, align 8 + %"$bal_call_1241" = call i8* @_fetch_field(i8* %"$execptr_load_1240", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1239", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", i32 0, i8* null, i32 1) + %"$bal_1242" = bitcast i8* %"$bal_call_1241" to %Uint128* + %"$bal_1243" = load %Uint128, %Uint128* %"$bal_1242", align 8 + store %Uint128 %"$bal_1243", %Uint128* %bal, align 8 + %"$_literal_cost_bal_1244" = alloca %Uint128, align 8 + %"$bal_1245" = load %Uint128, %Uint128* %bal, align 8 + store %Uint128 %"$bal_1245", %Uint128* %"$_literal_cost_bal_1244", align 8 + %"$$_literal_cost_bal_1244_1246" = bitcast %Uint128* %"$_literal_cost_bal_1244" to i8* + %"$_literal_cost_call_1247" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_31", i8* %"$$_literal_cost_bal_1244_1246") + %"$gasadd_1248" = add i64 %"$_literal_cost_call_1247", 0 + %"$gasrem_1249" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1250" = icmp ugt i64 %"$gasadd_1248", %"$gasrem_1249" + br i1 %"$gascmp_1250", label %"$out_of_gas_1251", label %"$have_gas_1252" + +"$out_of_gas_1251": ; preds = %"$have_gas_1237" + call void @_out_of_gas() + br label %"$have_gas_1252" + +"$have_gas_1252": ; preds = %"$out_of_gas_1251", %"$have_gas_1237" + %"$consume_1253" = sub i64 %"$gasrem_1249", %"$gasadd_1248" + store i64 %"$consume_1253", i64* @_gasrem, align 8 + %f = alloca %TName_Bool*, align 8 + %"$execptr_load_1255" = load i8*, i8** @_execptr, align 8 + %"$f_call_1256" = call i8* @_fetch_field(i8* %"$execptr_load_1255", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1254", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", i32 0, i8* null, i32 1) + %"$f_1257" = bitcast i8* %"$f_call_1256" to %TName_Bool* + store %TName_Bool* %"$f_1257", %TName_Bool** %f, align 8 + %"$f_1258" = load %TName_Bool*, %TName_Bool** %f, align 8 + %"$$f_1258_1259" = bitcast %TName_Bool* %"$f_1258" to i8* + %"$_literal_cost_call_1260" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_56", i8* %"$$f_1258_1259") + %"$gasadd_1261" = add i64 %"$_literal_cost_call_1260", 0 + %"$gasrem_1262" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1263" = icmp ugt i64 %"$gasadd_1261", %"$gasrem_1262" + br i1 %"$gascmp_1263", label %"$out_of_gas_1264", label %"$have_gas_1265" + +"$out_of_gas_1264": ; preds = %"$have_gas_1252" + call void @_out_of_gas() + br label %"$have_gas_1265" + +"$have_gas_1265": ; preds = %"$out_of_gas_1264", %"$have_gas_1252" + %"$consume_1266" = sub i64 %"$gasrem_1262", %"$gasadd_1261" + store i64 %"$consume_1266", i64* @_gasrem, align 8 + %"$gasrem_1267" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1268" = icmp ugt i64 1, %"$gasrem_1267" + br i1 %"$gascmp_1268", label %"$out_of_gas_1269", label %"$have_gas_1270" + +"$out_of_gas_1269": ; preds = %"$have_gas_1265" + call void @_out_of_gas() + br label %"$have_gas_1270" + +"$have_gas_1270": ; preds = %"$out_of_gas_1269", %"$have_gas_1265" + %"$consume_1271" = sub i64 %"$gasrem_1267", 1 + store i64 %"$consume_1271", i64* @_gasrem, align 8 + %c1 = alloca %TName_Bool*, align 8 + %"$gasrem_1273" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1274" = icmp ugt i64 8, %"$gasrem_1273" + br i1 %"$gascmp_1274", label %"$out_of_gas_1275", label %"$have_gas_1276" + +"$out_of_gas_1275": ; preds = %"$have_gas_1270" + call void @_out_of_gas() + br label %"$have_gas_1276" + +"$have_gas_1276": ; preds = %"$out_of_gas_1275", %"$have_gas_1270" + %"$consume_1277" = sub i64 %"$gasrem_1273", 8 + store i64 %"$consume_1277", i64* @_gasrem, align 8 + %"$execptr_load_1278" = load i8*, i8** @_execptr, align 8 + %"$bal_1279" = load %Uint128, %Uint128* %bal, align 8 + %"$goal_1280" = load %Uint128, %Uint128* @_cparam_goal, align 8 + %"$lt_call_1281" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1278", %Uint128 %"$bal_1279", %Uint128 %"$goal_1280") + store %TName_Bool* %"$lt_call_1281", %TName_Bool** %c1, align 8 %"$gasrem_1283" = load i64, i64* @_gasrem, align 8 %"$gascmp_1284" = icmp ugt i64 1, %"$gasrem_1283" br i1 %"$gascmp_1284", label %"$out_of_gas_1285", label %"$have_gas_1286" -"$out_of_gas_1285": ; preds = %"$have_gas_1277" +"$out_of_gas_1285": ; preds = %"$have_gas_1276" call void @_out_of_gas() br label %"$have_gas_1286" -"$have_gas_1286": ; preds = %"$out_of_gas_1285", %"$have_gas_1277" +"$have_gas_1286": ; preds = %"$out_of_gas_1285", %"$have_gas_1276" %"$consume_1287" = sub i64 %"$gasrem_1283", 1 store i64 %"$consume_1287", i64* @_gasrem, align 8 - %after_deadline = alloca %TName_Bool*, align 8 + %c2 = alloca %TName_Bool*, align 8 %"$gasrem_1288" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1289" = icmp ugt i64 32, %"$gasrem_1288" + %"$gascmp_1289" = icmp ugt i64 1, %"$gasrem_1288" br i1 %"$gascmp_1289", label %"$out_of_gas_1290", label %"$have_gas_1291" "$out_of_gas_1290": ; preds = %"$have_gas_1286" @@ -2457,866 +2457,619 @@ entry: br label %"$have_gas_1291" "$have_gas_1291": ; preds = %"$out_of_gas_1290", %"$have_gas_1286" - %"$consume_1292" = sub i64 %"$gasrem_1288", 32 + %"$consume_1292" = sub i64 %"$gasrem_1288", 1 store i64 %"$consume_1292", i64* @_gasrem, align 8 %"$execptr_load_1293" = load i8*, i8** @_execptr, align 8 - %"$max_block_1294" = load i8*, i8** @_cparam_max_block, align 8 - %"$blk_1295" = load i8*, i8** %blk, align 8 - %"$blt_call_1296" = call %TName_Bool* @_lt_BNum(i8* %"$execptr_load_1293", i8* %"$max_block_1294", i8* %"$blk_1295") - store %TName_Bool* %"$blt_call_1296", %TName_Bool** %after_deadline, align 8 - %"$gasrem_1298" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1299" = icmp ugt i64 2, %"$gasrem_1298" - br i1 %"$gascmp_1299", label %"$out_of_gas_1300", label %"$have_gas_1301" - -"$out_of_gas_1300": ; preds = %"$have_gas_1291" - call void @_out_of_gas() - br label %"$have_gas_1301" - -"$have_gas_1301": ; preds = %"$out_of_gas_1300", %"$have_gas_1291" - %"$consume_1302" = sub i64 %"$gasrem_1298", 2 - store i64 %"$consume_1302", i64* @_gasrem, align 8 - %"$after_deadline_1304" = load %TName_Bool*, %TName_Bool** %after_deadline, align 8 - %"$after_deadline_tag_1305" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$after_deadline_1304", i32 0, i32 0 - %"$after_deadline_tag_1306" = load i8, i8* %"$after_deadline_tag_1305", align 1 - switch i8 %"$after_deadline_tag_1306", label %"$empty_default_1307" [ - i8 1, label %"$False_1308" - i8 0, label %"$True_1362" + %"$bs_1294" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1294_1295" = bitcast %Map_ByStr20_Uint128* %"$bs_1294" to i8* + %"$contains__sender_1296" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$contains__sender_1296", align 1 + %"$$contains__sender_1296_1297" = bitcast [20 x i8]* %"$contains__sender_1296" to i8* + %"$contains_call_1298" = call %TName_Bool* @_contains(i8* %"$execptr_load_1293", %_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_1294_1295", i8* %"$$contains__sender_1296_1297") + store %TName_Bool* %"$contains_call_1298", %TName_Bool** %c2, align 8 + %"$gasrem_1300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1301" = icmp ugt i64 1, %"$gasrem_1300" + br i1 %"$gascmp_1301", label %"$out_of_gas_1302", label %"$have_gas_1303" + +"$out_of_gas_1302": ; preds = %"$have_gas_1291" + call void @_out_of_gas() + br label %"$have_gas_1303" + +"$have_gas_1303": ; preds = %"$out_of_gas_1302", %"$have_gas_1291" + %"$consume_1304" = sub i64 %"$gasrem_1300", 1 + store i64 %"$consume_1304", i64* @_gasrem, align 8 + %c3 = alloca %TName_Bool*, align 8 + %"$gasrem_1305" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1306" = icmp ugt i64 1, %"$gasrem_1305" + br i1 %"$gascmp_1306", label %"$out_of_gas_1307", label %"$have_gas_1308" + +"$out_of_gas_1307": ; preds = %"$have_gas_1303" + call void @_out_of_gas() + br label %"$have_gas_1308" + +"$have_gas_1308": ; preds = %"$out_of_gas_1307", %"$have_gas_1303" + %"$consume_1309" = sub i64 %"$gasrem_1305", 1 + store i64 %"$consume_1309", i64* @_gasrem, align 8 + %"$BoolUtils.negb_3" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_1310" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_1311" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1310", 0 + %"$BoolUtils.negb_envptr_1312" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1310", 1 + %"$f_1313" = load %TName_Bool*, %TName_Bool** %f, align 8 + %"$BoolUtils.negb_call_1314" = call %TName_Bool* %"$BoolUtils.negb_fptr_1311"(i8* %"$BoolUtils.negb_envptr_1312", %TName_Bool* %"$f_1313") + store %TName_Bool* %"$BoolUtils.negb_call_1314", %TName_Bool** %"$BoolUtils.negb_3", align 8 + %"$$BoolUtils.negb_3_1315" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_3", align 8 + store %TName_Bool* %"$$BoolUtils.negb_3_1315", %TName_Bool** %c3, align 8 + %"$gasrem_1316" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1317" = icmp ugt i64 1, %"$gasrem_1316" + br i1 %"$gascmp_1317", label %"$out_of_gas_1318", label %"$have_gas_1319" + +"$out_of_gas_1318": ; preds = %"$have_gas_1308" + call void @_out_of_gas() + br label %"$have_gas_1319" + +"$have_gas_1319": ; preds = %"$out_of_gas_1318", %"$have_gas_1308" + %"$consume_1320" = sub i64 %"$gasrem_1316", 1 + store i64 %"$consume_1320", i64* @_gasrem, align 8 + %c4 = alloca %TName_Bool*, align 8 + %"$gasrem_1321" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1322" = icmp ugt i64 1, %"$gasrem_1321" + br i1 %"$gascmp_1322", label %"$out_of_gas_1323", label %"$have_gas_1324" + +"$out_of_gas_1323": ; preds = %"$have_gas_1319" + call void @_out_of_gas() + br label %"$have_gas_1324" + +"$have_gas_1324": ; preds = %"$out_of_gas_1323", %"$have_gas_1319" + %"$consume_1325" = sub i64 %"$gasrem_1321", 1 + store i64 %"$consume_1325", i64* @_gasrem, align 8 + %"$BoolUtils.andb_1326" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_1327" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1326", 0 + %"$BoolUtils.andb_envptr_1328" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1326", 1 + %"$c1_1329" = load %TName_Bool*, %TName_Bool** %c1, align 8 + %"$c2_1330" = load %TName_Bool*, %TName_Bool** %c2, align 8 + %"$BoolUtils.andb_call_1331" = call %TName_Bool* %"$BoolUtils.andb_fptr_1327"(i8* %"$BoolUtils.andb_envptr_1328", %TName_Bool* %"$c1_1329", %TName_Bool* %"$c2_1330") + store %TName_Bool* %"$BoolUtils.andb_call_1331", %TName_Bool** %c4, align 8 + %"$gasrem_1332" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1333" = icmp ugt i64 1, %"$gasrem_1332" + br i1 %"$gascmp_1333", label %"$out_of_gas_1334", label %"$have_gas_1335" + +"$out_of_gas_1334": ; preds = %"$have_gas_1324" + call void @_out_of_gas() + br label %"$have_gas_1335" + +"$have_gas_1335": ; preds = %"$out_of_gas_1334", %"$have_gas_1324" + %"$consume_1336" = sub i64 %"$gasrem_1332", 1 + store i64 %"$consume_1336", i64* @_gasrem, align 8 + %c5 = alloca %TName_Bool*, align 8 + %"$gasrem_1337" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1338" = icmp ugt i64 1, %"$gasrem_1337" + br i1 %"$gascmp_1338", label %"$out_of_gas_1339", label %"$have_gas_1340" + +"$out_of_gas_1339": ; preds = %"$have_gas_1335" + call void @_out_of_gas() + br label %"$have_gas_1340" + +"$have_gas_1340": ; preds = %"$out_of_gas_1339", %"$have_gas_1335" + %"$consume_1341" = sub i64 %"$gasrem_1337", 1 + store i64 %"$consume_1341", i64* @_gasrem, align 8 + %"$BoolUtils.andb_1342" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_1343" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1342", 0 + %"$BoolUtils.andb_envptr_1344" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1342", 1 + %"$c3_1345" = load %TName_Bool*, %TName_Bool** %c3, align 8 + %"$c4_1346" = load %TName_Bool*, %TName_Bool** %c4, align 8 + %"$BoolUtils.andb_call_1347" = call %TName_Bool* %"$BoolUtils.andb_fptr_1343"(i8* %"$BoolUtils.andb_envptr_1344", %TName_Bool* %"$c3_1345", %TName_Bool* %"$c4_1346") + store %TName_Bool* %"$BoolUtils.andb_call_1347", %TName_Bool** %c5, align 8 + %"$gasrem_1348" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1349" = icmp ugt i64 2, %"$gasrem_1348" + br i1 %"$gascmp_1349", label %"$out_of_gas_1350", label %"$have_gas_1351" + +"$out_of_gas_1350": ; preds = %"$have_gas_1340" + call void @_out_of_gas() + br label %"$have_gas_1351" + +"$have_gas_1351": ; preds = %"$out_of_gas_1350", %"$have_gas_1340" + %"$consume_1352" = sub i64 %"$gasrem_1348", 2 + store i64 %"$consume_1352", i64* @_gasrem, align 8 + %"$c5_1354" = load %TName_Bool*, %TName_Bool** %c5, align 8 + %"$c5_tag_1355" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c5_1354", i32 0, i32 0 + %"$c5_tag_1356" = load i8, i8* %"$c5_tag_1355", align 1 + switch i8 %"$c5_tag_1356", label %"$empty_default_1357" [ + i8 1, label %"$False_1358" + i8 0, label %"$True_1412" ] -"$False_1308": ; preds = %"$have_gas_1301" - %"$after_deadline_1309" = bitcast %TName_Bool* %"$after_deadline_1304" to %CName_False* - %"$gasrem_1310" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1311" = icmp ugt i64 1, %"$gasrem_1310" - br i1 %"$gascmp_1311", label %"$out_of_gas_1312", label %"$have_gas_1313" +"$False_1358": ; preds = %"$have_gas_1351" + %"$c5_1359" = bitcast %TName_Bool* %"$c5_1354" to %CName_False* + %"$gasrem_1360" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1361" = icmp ugt i64 1, %"$gasrem_1360" + br i1 %"$gascmp_1361", label %"$out_of_gas_1362", label %"$have_gas_1363" -"$out_of_gas_1312": ; preds = %"$False_1308" +"$out_of_gas_1362": ; preds = %"$False_1358" call void @_out_of_gas() - br label %"$have_gas_1313" + br label %"$have_gas_1363" -"$have_gas_1313": ; preds = %"$out_of_gas_1312", %"$False_1308" - %"$consume_1314" = sub i64 %"$gasrem_1310", 1 - store i64 %"$consume_1314", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 - %"$gasrem_1315" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1316" = icmp ugt i64 1, %"$gasrem_1315" - br i1 %"$gascmp_1316", label %"$out_of_gas_1317", label %"$have_gas_1318" - -"$out_of_gas_1317": ; preds = %"$have_gas_1313" - call void @_out_of_gas() - br label %"$have_gas_1318" - -"$have_gas_1318": ; preds = %"$out_of_gas_1317", %"$have_gas_1313" - %"$consume_1319" = sub i64 %"$gasrem_1315", 1 - store i64 %"$consume_1319", i64* @_gasrem, align 8 - %"$msgobj_1320_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1320_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1320_salloc_load", i64 153) - %"$msgobj_1320_salloc" = bitcast i8* %"$msgobj_1320_salloc_salloc" to [153 x i8]* - %"$msgobj_1320" = bitcast [153 x i8]* %"$msgobj_1320_salloc" to i8* - store i8 4, i8* %"$msgobj_1320", align 1 - %"$msgobj_fname_1322" = getelementptr i8, i8* %"$msgobj_1320", i32 1 - %"$msgobj_fname_1323" = bitcast i8* %"$msgobj_fname_1322" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1321", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1323", align 8 - %"$msgobj_td_1324" = getelementptr i8, i8* %"$msgobj_1320", i32 17 - %"$msgobj_td_1325" = bitcast i8* %"$msgobj_td_1324" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1325", align 8 - %"$msgobj_v_1327" = getelementptr i8, i8* %"$msgobj_1320", i32 25 - %"$msgobj_v_1328" = bitcast i8* %"$msgobj_v_1327" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1326", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1328", align 8 - %"$msgobj_fname_1330" = getelementptr i8, i8* %"$msgobj_1320", i32 41 - %"$msgobj_fname_1331" = bitcast i8* %"$msgobj_fname_1330" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1329", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1331", align 8 - %"$msgobj_td_1332" = getelementptr i8, i8* %"$msgobj_1320", i32 57 - %"$msgobj_td_1333" = bitcast i8* %"$msgobj_td_1332" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1333", align 8 - %"$msgobj_v_1334" = getelementptr i8, i8* %"$msgobj_1320", i32 65 - %"$msgobj_v_1335" = bitcast i8* %"$msgobj_v_1334" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1335", align 1 - %"$msgobj_fname_1337" = getelementptr i8, i8* %"$msgobj_1320", i32 85 - %"$msgobj_fname_1338" = bitcast i8* %"$msgobj_fname_1337" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1336", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1338", align 8 - %"$msgobj_td_1339" = getelementptr i8, i8* %"$msgobj_1320", i32 101 - %"$msgobj_td_1340" = bitcast i8* %"$msgobj_td_1339" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1340", align 8 - %"$msgobj_v_1341" = getelementptr i8, i8* %"$msgobj_1320", i32 109 - %"$msgobj_v_1342" = bitcast i8* %"$msgobj_v_1341" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1342", align 8 - %"$msgobj_fname_1344" = getelementptr i8, i8* %"$msgobj_1320", i32 125 - %"$msgobj_fname_1345" = bitcast i8* %"$msgobj_fname_1344" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1343", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1345", align 8 - %"$msgobj_td_1346" = getelementptr i8, i8* %"$msgobj_1320", i32 141 - %"$msgobj_td_1347" = bitcast i8* %"$msgobj_td_1346" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1347", align 8 - %"$crowdfunding.too_early_code_1348" = load %Int32, %Int32* @crowdfunding.too_early_code, align 4 - %"$msgobj_v_1349" = getelementptr i8, i8* %"$msgobj_1320", i32 149 - %"$msgobj_v_1350" = bitcast i8* %"$msgobj_v_1349" to %Int32* - store %Int32 %"$crowdfunding.too_early_code_1348", %Int32* %"$msgobj_v_1350", align 4 - store i8* %"$msgobj_1320", i8** %e, align 8 - %"$e_1352" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_1354" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1352") - %"$gasrem_1355" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1356" = icmp ugt i64 %"$_literal_cost_call_1354", %"$gasrem_1355" - br i1 %"$gascmp_1356", label %"$out_of_gas_1357", label %"$have_gas_1358" - -"$out_of_gas_1357": ; preds = %"$have_gas_1318" - call void @_out_of_gas() - br label %"$have_gas_1358" - -"$have_gas_1358": ; preds = %"$out_of_gas_1357", %"$have_gas_1318" - %"$consume_1359" = sub i64 %"$gasrem_1355", %"$_literal_cost_call_1354" - store i64 %"$consume_1359", i64* @_gasrem, align 8 - %"$execptr_load_1360" = load i8*, i8** @_execptr, align 8 - %"$e_1361" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_1360", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1361") - br label %"$matchsucc_1303" - -"$True_1362": ; preds = %"$have_gas_1301" - %"$after_deadline_1363" = bitcast %TName_Bool* %"$after_deadline_1304" to %CName_True* - %bs = alloca %Map_ByStr20_Uint128*, align 8 - %"$execptr_load_1365" = load i8*, i8** @_execptr, align 8 - %"$bs_call_1366" = call i8* @_fetch_field(i8* %"$execptr_load_1365", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1364", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_83", i32 0, i8* null, i32 1) - %"$bs_1367" = bitcast i8* %"$bs_call_1366" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$bs_1367", %Map_ByStr20_Uint128** %bs, align 8 - %"$bs_1368" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1368_1369" = bitcast %Map_ByStr20_Uint128* %"$bs_1368" to i8* - %"$_literal_cost_call_1370" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_1368_1369") - %"$bs_1371" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1371_1372" = bitcast %Map_ByStr20_Uint128* %"$bs_1371" to i8* - %"$_mapsortcost_call_1373" = call i64 @_mapsortcost(i8* %"$$bs_1371_1372") - %"$gasadd_1374" = add i64 %"$_literal_cost_call_1370", %"$_mapsortcost_call_1373" - %"$gasrem_1375" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1376" = icmp ugt i64 %"$gasadd_1374", %"$gasrem_1375" - br i1 %"$gascmp_1376", label %"$out_of_gas_1377", label %"$have_gas_1378" - -"$out_of_gas_1377": ; preds = %"$True_1362" - call void @_out_of_gas() - br label %"$have_gas_1378" - -"$have_gas_1378": ; preds = %"$out_of_gas_1377", %"$True_1362" - %"$consume_1379" = sub i64 %"$gasrem_1375", %"$gasadd_1374" - store i64 %"$consume_1379", i64* @_gasrem, align 8 - %bal = alloca %Uint128, align 8 - %"$execptr_load_1381" = load i8*, i8** @_execptr, align 8 - %"$bal_call_1382" = call i8* @_fetch_field(i8* %"$execptr_load_1381", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$_balance_1380", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", i32 0, i8* null, i32 1) - %"$bal_1383" = bitcast i8* %"$bal_call_1382" to %Uint128* - %"$bal_1384" = load %Uint128, %Uint128* %"$bal_1383", align 8 - store %Uint128 %"$bal_1384", %Uint128* %bal, align 8 - %"$_literal_cost_bal_1385" = alloca %Uint128, align 8 - %"$bal_1386" = load %Uint128, %Uint128* %bal, align 8 - store %Uint128 %"$bal_1386", %Uint128* %"$_literal_cost_bal_1385", align 8 - %"$$_literal_cost_bal_1385_1387" = bitcast %Uint128* %"$_literal_cost_bal_1385" to i8* - %"$_literal_cost_call_1388" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Uint128_56", i8* %"$$_literal_cost_bal_1385_1387") - %"$gasadd_1389" = add i64 %"$_literal_cost_call_1388", 0 - %"$gasrem_1390" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1391" = icmp ugt i64 %"$gasadd_1389", %"$gasrem_1390" - br i1 %"$gascmp_1391", label %"$out_of_gas_1392", label %"$have_gas_1393" - -"$out_of_gas_1392": ; preds = %"$have_gas_1378" - call void @_out_of_gas() - br label %"$have_gas_1393" - -"$have_gas_1393": ; preds = %"$out_of_gas_1392", %"$have_gas_1378" - %"$consume_1394" = sub i64 %"$gasrem_1390", %"$gasadd_1389" - store i64 %"$consume_1394", i64* @_gasrem, align 8 - %f = alloca %TName_Bool*, align 8 - %"$execptr_load_1396" = load i8*, i8** @_execptr, align 8 - %"$f_call_1397" = call i8* @_fetch_field(i8* %"$execptr_load_1396", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$funded_1395", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", i32 0, i8* null, i32 1) - %"$f_1398" = bitcast i8* %"$f_call_1397" to %TName_Bool* - store %TName_Bool* %"$f_1398", %TName_Bool** %f, align 8 - %"$f_1399" = load %TName_Bool*, %TName_Bool** %f, align 8 - %"$$f_1399_1400" = bitcast %TName_Bool* %"$f_1399" to i8* - %"$_literal_cost_call_1401" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_81", i8* %"$$f_1399_1400") - %"$gasadd_1402" = add i64 %"$_literal_cost_call_1401", 0 - %"$gasrem_1403" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1404" = icmp ugt i64 %"$gasadd_1402", %"$gasrem_1403" - br i1 %"$gascmp_1404", label %"$out_of_gas_1405", label %"$have_gas_1406" - -"$out_of_gas_1405": ; preds = %"$have_gas_1393" - call void @_out_of_gas() - br label %"$have_gas_1406" - -"$have_gas_1406": ; preds = %"$out_of_gas_1405", %"$have_gas_1393" - %"$consume_1407" = sub i64 %"$gasrem_1403", %"$gasadd_1402" - store i64 %"$consume_1407", i64* @_gasrem, align 8 - %"$gasrem_1408" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1409" = icmp ugt i64 1, %"$gasrem_1408" - br i1 %"$gascmp_1409", label %"$out_of_gas_1410", label %"$have_gas_1411" - -"$out_of_gas_1410": ; preds = %"$have_gas_1406" - call void @_out_of_gas() - br label %"$have_gas_1411" - -"$have_gas_1411": ; preds = %"$out_of_gas_1410", %"$have_gas_1406" - %"$consume_1412" = sub i64 %"$gasrem_1408", 1 - store i64 %"$consume_1412", i64* @_gasrem, align 8 - %c1 = alloca %TName_Bool*, align 8 +"$have_gas_1363": ; preds = %"$out_of_gas_1362", %"$False_1358" + %"$consume_1364" = sub i64 %"$gasrem_1360", 1 + store i64 %"$consume_1364", i64* @_gasrem, align 8 + %e1 = alloca i8*, align 8 + %"$gasrem_1365" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1366" = icmp ugt i64 1, %"$gasrem_1365" + br i1 %"$gascmp_1366", label %"$out_of_gas_1367", label %"$have_gas_1368" + +"$out_of_gas_1367": ; preds = %"$have_gas_1363" + call void @_out_of_gas() + br label %"$have_gas_1368" + +"$have_gas_1368": ; preds = %"$out_of_gas_1367", %"$have_gas_1363" + %"$consume_1369" = sub i64 %"$gasrem_1365", 1 + store i64 %"$consume_1369", i64* @_gasrem, align 8 + %"$msgobj_1370_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1370_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1370_salloc_load", i64 153) + %"$msgobj_1370_salloc" = bitcast i8* %"$msgobj_1370_salloc_salloc" to [153 x i8]* + %"$msgobj_1370" = bitcast [153 x i8]* %"$msgobj_1370_salloc" to i8* + store i8 4, i8* %"$msgobj_1370", align 1 + %"$msgobj_fname_1372" = getelementptr i8, i8* %"$msgobj_1370", i32 1 + %"$msgobj_fname_1373" = bitcast i8* %"$msgobj_fname_1372" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1371", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1373", align 8 + %"$msgobj_td_1374" = getelementptr i8, i8* %"$msgobj_1370", i32 17 + %"$msgobj_td_1375" = bitcast i8* %"$msgobj_td_1374" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1375", align 8 + %"$msgobj_v_1377" = getelementptr i8, i8* %"$msgobj_1370", i32 25 + %"$msgobj_v_1378" = bitcast i8* %"$msgobj_v_1377" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1376", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1378", align 8 + %"$msgobj_fname_1380" = getelementptr i8, i8* %"$msgobj_1370", i32 41 + %"$msgobj_fname_1381" = bitcast i8* %"$msgobj_fname_1380" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1379", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1381", align 8 + %"$msgobj_td_1382" = getelementptr i8, i8* %"$msgobj_1370", i32 57 + %"$msgobj_td_1383" = bitcast i8* %"$msgobj_td_1382" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1383", align 8 + %"$msgobj_v_1384" = getelementptr i8, i8* %"$msgobj_1370", i32 65 + %"$msgobj_v_1385" = bitcast i8* %"$msgobj_v_1384" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1385", align 1 + %"$msgobj_fname_1387" = getelementptr i8, i8* %"$msgobj_1370", i32 85 + %"$msgobj_fname_1388" = bitcast i8* %"$msgobj_fname_1387" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1386", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1388", align 8 + %"$msgobj_td_1389" = getelementptr i8, i8* %"$msgobj_1370", i32 101 + %"$msgobj_td_1390" = bitcast i8* %"$msgobj_td_1389" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1390", align 8 + %"$msgobj_v_1391" = getelementptr i8, i8* %"$msgobj_1370", i32 109 + %"$msgobj_v_1392" = bitcast i8* %"$msgobj_v_1391" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1392", align 8 + %"$msgobj_fname_1394" = getelementptr i8, i8* %"$msgobj_1370", i32 125 + %"$msgobj_fname_1395" = bitcast i8* %"$msgobj_fname_1394" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1393", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1395", align 8 + %"$msgobj_td_1396" = getelementptr i8, i8* %"$msgobj_1370", i32 141 + %"$msgobj_td_1397" = bitcast i8* %"$msgobj_td_1396" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_1397", align 8 + %"$crowdfunding.cannot_reclaim_code_1398" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 + %"$msgobj_v_1399" = getelementptr i8, i8* %"$msgobj_1370", i32 149 + %"$msgobj_v_1400" = bitcast i8* %"$msgobj_v_1399" to %Int32* + store %Int32 %"$crowdfunding.cannot_reclaim_code_1398", %Int32* %"$msgobj_v_1400", align 4 + store i8* %"$msgobj_1370", i8** %e1, align 8 + %"$e_1402" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_1404" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1402") + %"$gasrem_1405" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1406" = icmp ugt i64 %"$_literal_cost_call_1404", %"$gasrem_1405" + br i1 %"$gascmp_1406", label %"$out_of_gas_1407", label %"$have_gas_1408" + +"$out_of_gas_1407": ; preds = %"$have_gas_1368" + call void @_out_of_gas() + br label %"$have_gas_1408" + +"$have_gas_1408": ; preds = %"$out_of_gas_1407", %"$have_gas_1368" + %"$consume_1409" = sub i64 %"$gasrem_1405", %"$_literal_cost_call_1404" + store i64 %"$consume_1409", i64* @_gasrem, align 8 + %"$execptr_load_1410" = load i8*, i8** @_execptr, align 8 + %"$e_1411" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_1410", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1411") + br label %"$matchsucc_1353" + +"$True_1412": ; preds = %"$have_gas_1351" + %"$c5_1413" = bitcast %TName_Bool* %"$c5_1354" to %CName_True* %"$gasrem_1414" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1415" = icmp ugt i64 8, %"$gasrem_1414" + %"$gascmp_1415" = icmp ugt i64 1, %"$gasrem_1414" br i1 %"$gascmp_1415", label %"$out_of_gas_1416", label %"$have_gas_1417" -"$out_of_gas_1416": ; preds = %"$have_gas_1411" +"$out_of_gas_1416": ; preds = %"$True_1412" call void @_out_of_gas() br label %"$have_gas_1417" -"$have_gas_1417": ; preds = %"$out_of_gas_1416", %"$have_gas_1411" - %"$consume_1418" = sub i64 %"$gasrem_1414", 8 +"$have_gas_1417": ; preds = %"$out_of_gas_1416", %"$True_1412" + %"$consume_1418" = sub i64 %"$gasrem_1414", 1 store i64 %"$consume_1418", i64* @_gasrem, align 8 - %"$execptr_load_1419" = load i8*, i8** @_execptr, align 8 - %"$bal_1420" = load %Uint128, %Uint128* %bal, align 8 - %"$goal_1421" = load %Uint128, %Uint128* @_cparam_goal, align 8 - %"$lt_call_1422" = call %TName_Bool* @_lt_Uint128(i8* %"$execptr_load_1419", %Uint128 %"$bal_1420", %Uint128 %"$goal_1421") - store %TName_Bool* %"$lt_call_1422", %TName_Bool** %c1, align 8 - %"$gasrem_1424" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1425" = icmp ugt i64 1, %"$gasrem_1424" - br i1 %"$gascmp_1425", label %"$out_of_gas_1426", label %"$have_gas_1427" - -"$out_of_gas_1426": ; preds = %"$have_gas_1417" - call void @_out_of_gas() - br label %"$have_gas_1427" - -"$have_gas_1427": ; preds = %"$out_of_gas_1426", %"$have_gas_1417" - %"$consume_1428" = sub i64 %"$gasrem_1424", 1 - store i64 %"$consume_1428", i64* @_gasrem, align 8 - %c2 = alloca %TName_Bool*, align 8 - %"$gasrem_1429" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1430" = icmp ugt i64 1, %"$gasrem_1429" - br i1 %"$gascmp_1430", label %"$out_of_gas_1431", label %"$have_gas_1432" - -"$out_of_gas_1431": ; preds = %"$have_gas_1427" - call void @_out_of_gas() - br label %"$have_gas_1432" - -"$have_gas_1432": ; preds = %"$out_of_gas_1431", %"$have_gas_1427" - %"$consume_1433" = sub i64 %"$gasrem_1429", 1 - store i64 %"$consume_1433", i64* @_gasrem, align 8 - %"$execptr_load_1434" = load i8*, i8** @_execptr, align 8 - %"$bs_1435" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1435_1436" = bitcast %Map_ByStr20_Uint128* %"$bs_1435" to i8* - %"$contains__sender_1437" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$contains__sender_1437", align 1 - %"$$contains__sender_1437_1438" = bitcast [20 x i8]* %"$contains__sender_1437" to i8* - %"$contains_call_1439" = call %TName_Bool* @_contains(i8* %"$execptr_load_1434", %_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_1435_1436", i8* %"$$contains__sender_1437_1438") - store %TName_Bool* %"$contains_call_1439", %TName_Bool** %c2, align 8 - %"$gasrem_1441" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1442" = icmp ugt i64 1, %"$gasrem_1441" - br i1 %"$gascmp_1442", label %"$out_of_gas_1443", label %"$have_gas_1444" - -"$out_of_gas_1443": ; preds = %"$have_gas_1432" - call void @_out_of_gas() - br label %"$have_gas_1444" - -"$have_gas_1444": ; preds = %"$out_of_gas_1443", %"$have_gas_1432" - %"$consume_1445" = sub i64 %"$gasrem_1441", 1 - store i64 %"$consume_1445", i64* @_gasrem, align 8 - %c3 = alloca %TName_Bool*, align 8 - %"$gasrem_1446" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1447" = icmp ugt i64 1, %"$gasrem_1446" - br i1 %"$gascmp_1447", label %"$out_of_gas_1448", label %"$have_gas_1449" - -"$out_of_gas_1448": ; preds = %"$have_gas_1444" - call void @_out_of_gas() - br label %"$have_gas_1449" - -"$have_gas_1449": ; preds = %"$out_of_gas_1448", %"$have_gas_1444" - %"$consume_1450" = sub i64 %"$gasrem_1446", 1 - store i64 %"$consume_1450", i64* @_gasrem, align 8 - %"$BoolUtils.negb_19" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_1451" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1452" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1451", 0 - %"$BoolUtils.negb_envptr_1453" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1451", 1 - %"$f_1454" = load %TName_Bool*, %TName_Bool** %f, align 8 - %"$BoolUtils.negb_call_1455" = call %TName_Bool* %"$BoolUtils.negb_fptr_1452"(i8* %"$BoolUtils.negb_envptr_1453", %TName_Bool* %"$f_1454") - store %TName_Bool* %"$BoolUtils.negb_call_1455", %TName_Bool** %"$BoolUtils.negb_19", align 8 - %"$$BoolUtils.negb_19_1456" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_19", align 8 - store %TName_Bool* %"$$BoolUtils.negb_19_1456", %TName_Bool** %c3, align 8 - %"$gasrem_1457" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1458" = icmp ugt i64 1, %"$gasrem_1457" - br i1 %"$gascmp_1458", label %"$out_of_gas_1459", label %"$have_gas_1460" - -"$out_of_gas_1459": ; preds = %"$have_gas_1449" - call void @_out_of_gas() - br label %"$have_gas_1460" - -"$have_gas_1460": ; preds = %"$out_of_gas_1459", %"$have_gas_1449" - %"$consume_1461" = sub i64 %"$gasrem_1457", 1 - store i64 %"$consume_1461", i64* @_gasrem, align 8 - %c4 = alloca %TName_Bool*, align 8 - %"$gasrem_1462" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1463" = icmp ugt i64 1, %"$gasrem_1462" - br i1 %"$gascmp_1463", label %"$out_of_gas_1464", label %"$have_gas_1465" - -"$out_of_gas_1464": ; preds = %"$have_gas_1460" - call void @_out_of_gas() - br label %"$have_gas_1465" - -"$have_gas_1465": ; preds = %"$out_of_gas_1464", %"$have_gas_1460" - %"$consume_1466" = sub i64 %"$gasrem_1462", 1 - store i64 %"$consume_1466", i64* @_gasrem, align 8 - %"$BoolUtils.andb_17" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1467" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_1468" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1467", 0 - %"$BoolUtils.andb_envptr_1469" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1467", 1 - %"$c1_1470" = load %TName_Bool*, %TName_Bool** %c1, align 8 - %"$BoolUtils.andb_call_1471" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1468"(i8* %"$BoolUtils.andb_envptr_1469", %TName_Bool* %"$c1_1470") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1471", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 - %"$BoolUtils.andb_18" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_17_1472" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 - %"$$BoolUtils.andb_17_fptr_1473" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_1472", 0 - %"$$BoolUtils.andb_17_envptr_1474" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_1472", 1 - %"$c2_1475" = load %TName_Bool*, %TName_Bool** %c2, align 8 - %"$$BoolUtils.andb_17_call_1476" = call %TName_Bool* %"$$BoolUtils.andb_17_fptr_1473"(i8* %"$$BoolUtils.andb_17_envptr_1474", %TName_Bool* %"$c2_1475") - store %TName_Bool* %"$$BoolUtils.andb_17_call_1476", %TName_Bool** %"$BoolUtils.andb_18", align 8 - %"$$BoolUtils.andb_18_1477" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_18", align 8 - store %TName_Bool* %"$$BoolUtils.andb_18_1477", %TName_Bool** %c4, align 8 - %"$gasrem_1478" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1479" = icmp ugt i64 1, %"$gasrem_1478" - br i1 %"$gascmp_1479", label %"$out_of_gas_1480", label %"$have_gas_1481" - -"$out_of_gas_1480": ; preds = %"$have_gas_1465" - call void @_out_of_gas() - br label %"$have_gas_1481" - -"$have_gas_1481": ; preds = %"$out_of_gas_1480", %"$have_gas_1465" - %"$consume_1482" = sub i64 %"$gasrem_1478", 1 - store i64 %"$consume_1482", i64* @_gasrem, align 8 - %c5 = alloca %TName_Bool*, align 8 - %"$gasrem_1483" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1484" = icmp ugt i64 1, %"$gasrem_1483" - br i1 %"$gascmp_1484", label %"$out_of_gas_1485", label %"$have_gas_1486" - -"$out_of_gas_1485": ; preds = %"$have_gas_1481" - call void @_out_of_gas() - br label %"$have_gas_1486" - -"$have_gas_1486": ; preds = %"$out_of_gas_1485", %"$have_gas_1481" - %"$consume_1487" = sub i64 %"$gasrem_1483", 1 - store i64 %"$consume_1487", i64* @_gasrem, align 8 - %"$BoolUtils.andb_15" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_1488" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_1489" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1488", 0 - %"$BoolUtils.andb_envptr_1490" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_1488", 1 - %"$c3_1491" = load %TName_Bool*, %TName_Bool** %c3, align 8 - %"$BoolUtils.andb_call_1492" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_1489"(i8* %"$BoolUtils.andb_envptr_1490", %TName_Bool* %"$c3_1491") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_1492", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_15", align 8 - %"$BoolUtils.andb_16" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_15_1493" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_15", align 8 - %"$$BoolUtils.andb_15_fptr_1494" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_15_1493", 0 - %"$$BoolUtils.andb_15_envptr_1495" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_15_1493", 1 - %"$c4_1496" = load %TName_Bool*, %TName_Bool** %c4, align 8 - %"$$BoolUtils.andb_15_call_1497" = call %TName_Bool* %"$$BoolUtils.andb_15_fptr_1494"(i8* %"$$BoolUtils.andb_15_envptr_1495", %TName_Bool* %"$c4_1496") - store %TName_Bool* %"$$BoolUtils.andb_15_call_1497", %TName_Bool** %"$BoolUtils.andb_16", align 8 - %"$$BoolUtils.andb_16_1498" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_16", align 8 - store %TName_Bool* %"$$BoolUtils.andb_16_1498", %TName_Bool** %c5, align 8 - %"$gasrem_1499" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1500" = icmp ugt i64 2, %"$gasrem_1499" - br i1 %"$gascmp_1500", label %"$out_of_gas_1501", label %"$have_gas_1502" - -"$out_of_gas_1501": ; preds = %"$have_gas_1486" - call void @_out_of_gas() - br label %"$have_gas_1502" - -"$have_gas_1502": ; preds = %"$out_of_gas_1501", %"$have_gas_1486" - %"$consume_1503" = sub i64 %"$gasrem_1499", 2 - store i64 %"$consume_1503", i64* @_gasrem, align 8 - %"$c5_1505" = load %TName_Bool*, %TName_Bool** %c5, align 8 - %"$c5_tag_1506" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$c5_1505", i32 0, i32 0 - %"$c5_tag_1507" = load i8, i8* %"$c5_tag_1506", align 1 - switch i8 %"$c5_tag_1507", label %"$empty_default_1508" [ - i8 1, label %"$False_1509" - i8 0, label %"$True_1563" + %res = alloca %TName_Option_Uint128*, align 8 + %"$gasrem_1419" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1420" = icmp ugt i64 1, %"$gasrem_1419" + br i1 %"$gascmp_1420", label %"$out_of_gas_1421", label %"$have_gas_1422" + +"$out_of_gas_1421": ; preds = %"$have_gas_1417" + call void @_out_of_gas() + br label %"$have_gas_1422" + +"$have_gas_1422": ; preds = %"$out_of_gas_1421", %"$have_gas_1417" + %"$consume_1423" = sub i64 %"$gasrem_1419", 1 + store i64 %"$consume_1423", i64* @_gasrem, align 8 + %"$execptr_load_1424" = load i8*, i8** @_execptr, align 8 + %"$bs_1425" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1425_1426" = bitcast %Map_ByStr20_Uint128* %"$bs_1425" to i8* + %"$get__sender_1427" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$get__sender_1427", align 1 + %"$$get__sender_1427_1428" = bitcast [20 x i8]* %"$get__sender_1427" to i8* + %"$get_call_1429" = call i8* @_get(i8* %"$execptr_load_1424", %_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_1425_1426", i8* %"$$get__sender_1427_1428") + %"$get_1430" = bitcast i8* %"$get_call_1429" to %TName_Option_Uint128* + store %TName_Option_Uint128* %"$get_1430", %TName_Option_Uint128** %res, align 8 + %"$gasrem_1431" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1432" = icmp ugt i64 2, %"$gasrem_1431" + br i1 %"$gascmp_1432", label %"$out_of_gas_1433", label %"$have_gas_1434" + +"$out_of_gas_1433": ; preds = %"$have_gas_1422" + call void @_out_of_gas() + br label %"$have_gas_1434" + +"$have_gas_1434": ; preds = %"$out_of_gas_1433", %"$have_gas_1422" + %"$consume_1435" = sub i64 %"$gasrem_1431", 2 + store i64 %"$consume_1435", i64* @_gasrem, align 8 + %"$res_1437" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 + %"$res_tag_1438" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$res_1437", i32 0, i32 0 + %"$res_tag_1439" = load i8, i8* %"$res_tag_1438", align 1 + switch i8 %"$res_tag_1439", label %"$empty_default_1440" [ + i8 1, label %"$None_1441" + i8 0, label %"$Some_1495" ] -"$False_1509": ; preds = %"$have_gas_1502" - %"$c5_1510" = bitcast %TName_Bool* %"$c5_1505" to %CName_False* - %"$gasrem_1511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1512" = icmp ugt i64 1, %"$gasrem_1511" - br i1 %"$gascmp_1512", label %"$out_of_gas_1513", label %"$have_gas_1514" +"$None_1441": ; preds = %"$have_gas_1434" + %"$res_1442" = bitcast %TName_Option_Uint128* %"$res_1437" to %CName_None_Uint128* + %"$gasrem_1443" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1444" = icmp ugt i64 1, %"$gasrem_1443" + br i1 %"$gascmp_1444", label %"$out_of_gas_1445", label %"$have_gas_1446" -"$out_of_gas_1513": ; preds = %"$False_1509" +"$out_of_gas_1445": ; preds = %"$None_1441" call void @_out_of_gas() - br label %"$have_gas_1514" + br label %"$have_gas_1446" -"$have_gas_1514": ; preds = %"$out_of_gas_1513", %"$False_1509" - %"$consume_1515" = sub i64 %"$gasrem_1511", 1 - store i64 %"$consume_1515", i64* @_gasrem, align 8 - %e1 = alloca i8*, align 8 - %"$gasrem_1516" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1517" = icmp ugt i64 1, %"$gasrem_1516" - br i1 %"$gascmp_1517", label %"$out_of_gas_1518", label %"$have_gas_1519" - -"$out_of_gas_1518": ; preds = %"$have_gas_1514" - call void @_out_of_gas() - br label %"$have_gas_1519" - -"$have_gas_1519": ; preds = %"$out_of_gas_1518", %"$have_gas_1514" - %"$consume_1520" = sub i64 %"$gasrem_1516", 1 - store i64 %"$consume_1520", i64* @_gasrem, align 8 - %"$msgobj_1521_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1521_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1521_salloc_load", i64 153) - %"$msgobj_1521_salloc" = bitcast i8* %"$msgobj_1521_salloc_salloc" to [153 x i8]* - %"$msgobj_1521" = bitcast [153 x i8]* %"$msgobj_1521_salloc" to i8* - store i8 4, i8* %"$msgobj_1521", align 1 - %"$msgobj_fname_1523" = getelementptr i8, i8* %"$msgobj_1521", i32 1 - %"$msgobj_fname_1524" = bitcast i8* %"$msgobj_fname_1523" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1522", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1524", align 8 - %"$msgobj_td_1525" = getelementptr i8, i8* %"$msgobj_1521", i32 17 - %"$msgobj_td_1526" = bitcast i8* %"$msgobj_td_1525" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1526", align 8 - %"$msgobj_v_1528" = getelementptr i8, i8* %"$msgobj_1521", i32 25 - %"$msgobj_v_1529" = bitcast i8* %"$msgobj_v_1528" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1527", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1529", align 8 - %"$msgobj_fname_1531" = getelementptr i8, i8* %"$msgobj_1521", i32 41 - %"$msgobj_fname_1532" = bitcast i8* %"$msgobj_fname_1531" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1530", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1532", align 8 - %"$msgobj_td_1533" = getelementptr i8, i8* %"$msgobj_1521", i32 57 - %"$msgobj_td_1534" = bitcast i8* %"$msgobj_td_1533" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1534", align 8 - %"$msgobj_v_1535" = getelementptr i8, i8* %"$msgobj_1521", i32 65 - %"$msgobj_v_1536" = bitcast i8* %"$msgobj_v_1535" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1536", align 1 - %"$msgobj_fname_1538" = getelementptr i8, i8* %"$msgobj_1521", i32 85 - %"$msgobj_fname_1539" = bitcast i8* %"$msgobj_fname_1538" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1537", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1539", align 8 - %"$msgobj_td_1540" = getelementptr i8, i8* %"$msgobj_1521", i32 101 - %"$msgobj_td_1541" = bitcast i8* %"$msgobj_td_1540" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1541", align 8 - %"$msgobj_v_1542" = getelementptr i8, i8* %"$msgobj_1521", i32 109 - %"$msgobj_v_1543" = bitcast i8* %"$msgobj_v_1542" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1543", align 8 - %"$msgobj_fname_1545" = getelementptr i8, i8* %"$msgobj_1521", i32 125 - %"$msgobj_fname_1546" = bitcast i8* %"$msgobj_fname_1545" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1544", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1546", align 8 - %"$msgobj_td_1547" = getelementptr i8, i8* %"$msgobj_1521", i32 141 - %"$msgobj_td_1548" = bitcast i8* %"$msgobj_td_1547" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1548", align 8 - %"$crowdfunding.cannot_reclaim_code_1549" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 - %"$msgobj_v_1550" = getelementptr i8, i8* %"$msgobj_1521", i32 149 - %"$msgobj_v_1551" = bitcast i8* %"$msgobj_v_1550" to %Int32* - store %Int32 %"$crowdfunding.cannot_reclaim_code_1549", %Int32* %"$msgobj_v_1551", align 4 - store i8* %"$msgobj_1521", i8** %e1, align 8 - %"$e_1553" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_1555" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1553") - %"$gasrem_1556" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1557" = icmp ugt i64 %"$_literal_cost_call_1555", %"$gasrem_1556" - br i1 %"$gascmp_1557", label %"$out_of_gas_1558", label %"$have_gas_1559" - -"$out_of_gas_1558": ; preds = %"$have_gas_1519" - call void @_out_of_gas() - br label %"$have_gas_1559" - -"$have_gas_1559": ; preds = %"$out_of_gas_1558", %"$have_gas_1519" - %"$consume_1560" = sub i64 %"$gasrem_1556", %"$_literal_cost_call_1555" - store i64 %"$consume_1560", i64* @_gasrem, align 8 - %"$execptr_load_1561" = load i8*, i8** @_execptr, align 8 - %"$e_1562" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_1561", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1562") - br label %"$matchsucc_1504" - -"$True_1563": ; preds = %"$have_gas_1502" - %"$c5_1564" = bitcast %TName_Bool* %"$c5_1505" to %CName_True* - %"$gasrem_1565" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1566" = icmp ugt i64 1, %"$gasrem_1565" - br i1 %"$gascmp_1566", label %"$out_of_gas_1567", label %"$have_gas_1568" - -"$out_of_gas_1567": ; preds = %"$True_1563" - call void @_out_of_gas() - br label %"$have_gas_1568" - -"$have_gas_1568": ; preds = %"$out_of_gas_1567", %"$True_1563" - %"$consume_1569" = sub i64 %"$gasrem_1565", 1 - store i64 %"$consume_1569", i64* @_gasrem, align 8 - %res = alloca %TName_Option_Uint128*, align 8 - %"$gasrem_1570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1571" = icmp ugt i64 1, %"$gasrem_1570" - br i1 %"$gascmp_1571", label %"$out_of_gas_1572", label %"$have_gas_1573" - -"$out_of_gas_1572": ; preds = %"$have_gas_1568" - call void @_out_of_gas() - br label %"$have_gas_1573" - -"$have_gas_1573": ; preds = %"$out_of_gas_1572", %"$have_gas_1568" - %"$consume_1574" = sub i64 %"$gasrem_1570", 1 - store i64 %"$consume_1574", i64* @_gasrem, align 8 - %"$execptr_load_1575" = load i8*, i8** @_execptr, align 8 - %"$bs_1576" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1576_1577" = bitcast %Map_ByStr20_Uint128* %"$bs_1576" to i8* - %"$get__sender_1578" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$get__sender_1578", align 1 - %"$$get__sender_1578_1579" = bitcast [20 x i8]* %"$get__sender_1578" to i8* - %"$get_call_1580" = call i8* @_get(i8* %"$execptr_load_1575", %_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_1576_1577", i8* %"$$get__sender_1578_1579") - %"$get_1581" = bitcast i8* %"$get_call_1580" to %TName_Option_Uint128* - store %TName_Option_Uint128* %"$get_1581", %TName_Option_Uint128** %res, align 8 - %"$gasrem_1582" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1583" = icmp ugt i64 2, %"$gasrem_1582" - br i1 %"$gascmp_1583", label %"$out_of_gas_1584", label %"$have_gas_1585" - -"$out_of_gas_1584": ; preds = %"$have_gas_1573" - call void @_out_of_gas() - br label %"$have_gas_1585" - -"$have_gas_1585": ; preds = %"$out_of_gas_1584", %"$have_gas_1573" - %"$consume_1586" = sub i64 %"$gasrem_1582", 2 - store i64 %"$consume_1586", i64* @_gasrem, align 8 - %"$res_1588" = load %TName_Option_Uint128*, %TName_Option_Uint128** %res, align 8 - %"$res_tag_1589" = getelementptr inbounds %TName_Option_Uint128, %TName_Option_Uint128* %"$res_1588", i32 0, i32 0 - %"$res_tag_1590" = load i8, i8* %"$res_tag_1589", align 1 - switch i8 %"$res_tag_1590", label %"$empty_default_1591" [ - i8 1, label %"$None_1592" - i8 0, label %"$Some_1646" - ] - -"$None_1592": ; preds = %"$have_gas_1585" - %"$res_1593" = bitcast %TName_Option_Uint128* %"$res_1588" to %CName_None_Uint128* - %"$gasrem_1594" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1595" = icmp ugt i64 1, %"$gasrem_1594" - br i1 %"$gascmp_1595", label %"$out_of_gas_1596", label %"$have_gas_1597" +"$have_gas_1446": ; preds = %"$out_of_gas_1445", %"$None_1441" + %"$consume_1447" = sub i64 %"$gasrem_1443", 1 + store i64 %"$consume_1447", i64* @_gasrem, align 8 + %e2 = alloca i8*, align 8 + %"$gasrem_1448" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1449" = icmp ugt i64 1, %"$gasrem_1448" + br i1 %"$gascmp_1449", label %"$out_of_gas_1450", label %"$have_gas_1451" + +"$out_of_gas_1450": ; preds = %"$have_gas_1446" + call void @_out_of_gas() + br label %"$have_gas_1451" + +"$have_gas_1451": ; preds = %"$out_of_gas_1450", %"$have_gas_1446" + %"$consume_1452" = sub i64 %"$gasrem_1448", 1 + store i64 %"$consume_1452", i64* @_gasrem, align 8 + %"$msgobj_1453_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1453_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1453_salloc_load", i64 153) + %"$msgobj_1453_salloc" = bitcast i8* %"$msgobj_1453_salloc_salloc" to [153 x i8]* + %"$msgobj_1453" = bitcast [153 x i8]* %"$msgobj_1453_salloc" to i8* + store i8 4, i8* %"$msgobj_1453", align 1 + %"$msgobj_fname_1455" = getelementptr i8, i8* %"$msgobj_1453", i32 1 + %"$msgobj_fname_1456" = bitcast i8* %"$msgobj_fname_1455" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1454", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1456", align 8 + %"$msgobj_td_1457" = getelementptr i8, i8* %"$msgobj_1453", i32 17 + %"$msgobj_td_1458" = bitcast i8* %"$msgobj_td_1457" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1458", align 8 + %"$msgobj_v_1460" = getelementptr i8, i8* %"$msgobj_1453", i32 25 + %"$msgobj_v_1461" = bitcast i8* %"$msgobj_v_1460" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1459", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1461", align 8 + %"$msgobj_fname_1463" = getelementptr i8, i8* %"$msgobj_1453", i32 41 + %"$msgobj_fname_1464" = bitcast i8* %"$msgobj_fname_1463" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1462", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1464", align 8 + %"$msgobj_td_1465" = getelementptr i8, i8* %"$msgobj_1453", i32 57 + %"$msgobj_td_1466" = bitcast i8* %"$msgobj_td_1465" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1466", align 8 + %"$msgobj_v_1467" = getelementptr i8, i8* %"$msgobj_1453", i32 65 + %"$msgobj_v_1468" = bitcast i8* %"$msgobj_v_1467" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1468", align 1 + %"$msgobj_fname_1470" = getelementptr i8, i8* %"$msgobj_1453", i32 85 + %"$msgobj_fname_1471" = bitcast i8* %"$msgobj_fname_1470" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1469", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1471", align 8 + %"$msgobj_td_1472" = getelementptr i8, i8* %"$msgobj_1453", i32 101 + %"$msgobj_td_1473" = bitcast i8* %"$msgobj_td_1472" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1473", align 8 + %"$msgobj_v_1474" = getelementptr i8, i8* %"$msgobj_1453", i32 109 + %"$msgobj_v_1475" = bitcast i8* %"$msgobj_v_1474" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1475", align 8 + %"$msgobj_fname_1477" = getelementptr i8, i8* %"$msgobj_1453", i32 125 + %"$msgobj_fname_1478" = bitcast i8* %"$msgobj_fname_1477" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1476", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1478", align 8 + %"$msgobj_td_1479" = getelementptr i8, i8* %"$msgobj_1453", i32 141 + %"$msgobj_td_1480" = bitcast i8* %"$msgobj_td_1479" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_1480", align 8 + %"$crowdfunding.cannot_reclaim_code_1481" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 + %"$msgobj_v_1482" = getelementptr i8, i8* %"$msgobj_1453", i32 149 + %"$msgobj_v_1483" = bitcast i8* %"$msgobj_v_1482" to %Int32* + store %Int32 %"$crowdfunding.cannot_reclaim_code_1481", %Int32* %"$msgobj_v_1483", align 4 + store i8* %"$msgobj_1453", i8** %e2, align 8 + %"$e_1485" = load i8*, i8** %e2, align 8 + %"$_literal_cost_call_1487" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1485") + %"$gasrem_1488" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1489" = icmp ugt i64 %"$_literal_cost_call_1487", %"$gasrem_1488" + br i1 %"$gascmp_1489", label %"$out_of_gas_1490", label %"$have_gas_1491" + +"$out_of_gas_1490": ; preds = %"$have_gas_1451" + call void @_out_of_gas() + br label %"$have_gas_1491" + +"$have_gas_1491": ; preds = %"$out_of_gas_1490", %"$have_gas_1451" + %"$consume_1492" = sub i64 %"$gasrem_1488", %"$_literal_cost_call_1487" + store i64 %"$consume_1492", i64* @_gasrem, align 8 + %"$execptr_load_1493" = load i8*, i8** @_execptr, align 8 + %"$e_1494" = load i8*, i8** %e2, align 8 + call void @_event(i8* %"$execptr_load_1493", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1494") + br label %"$matchsucc_1436" + +"$Some_1495": ; preds = %"$have_gas_1434" + %"$res_1496" = bitcast %TName_Option_Uint128* %"$res_1437" to %CName_Some_Uint128* + %"$v_gep_1497" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$res_1496", i32 0, i32 1 + %"$v_load_1498" = load %Uint128, %Uint128* %"$v_gep_1497", align 8 + %v = alloca %Uint128, align 8 + store %Uint128 %"$v_load_1498", %Uint128* %v, align 8 + %"$gasrem_1499" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1500" = icmp ugt i64 1, %"$gasrem_1499" + br i1 %"$gascmp_1500", label %"$out_of_gas_1501", label %"$have_gas_1502" -"$out_of_gas_1596": ; preds = %"$None_1592" +"$out_of_gas_1501": ; preds = %"$Some_1495" call void @_out_of_gas() - br label %"$have_gas_1597" + br label %"$have_gas_1502" -"$have_gas_1597": ; preds = %"$out_of_gas_1596", %"$None_1592" - %"$consume_1598" = sub i64 %"$gasrem_1594", 1 - store i64 %"$consume_1598", i64* @_gasrem, align 8 - %e2 = alloca i8*, align 8 - %"$gasrem_1599" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1600" = icmp ugt i64 1, %"$gasrem_1599" - br i1 %"$gascmp_1600", label %"$out_of_gas_1601", label %"$have_gas_1602" - -"$out_of_gas_1601": ; preds = %"$have_gas_1597" - call void @_out_of_gas() - br label %"$have_gas_1602" - -"$have_gas_1602": ; preds = %"$out_of_gas_1601", %"$have_gas_1597" - %"$consume_1603" = sub i64 %"$gasrem_1599", 1 - store i64 %"$consume_1603", i64* @_gasrem, align 8 - %"$msgobj_1604_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1604_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1604_salloc_load", i64 153) - %"$msgobj_1604_salloc" = bitcast i8* %"$msgobj_1604_salloc_salloc" to [153 x i8]* - %"$msgobj_1604" = bitcast [153 x i8]* %"$msgobj_1604_salloc" to i8* - store i8 4, i8* %"$msgobj_1604", align 1 - %"$msgobj_fname_1606" = getelementptr i8, i8* %"$msgobj_1604", i32 1 - %"$msgobj_fname_1607" = bitcast i8* %"$msgobj_fname_1606" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1605", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1607", align 8 - %"$msgobj_td_1608" = getelementptr i8, i8* %"$msgobj_1604", i32 17 - %"$msgobj_td_1609" = bitcast i8* %"$msgobj_td_1608" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1609", align 8 - %"$msgobj_v_1611" = getelementptr i8, i8* %"$msgobj_1604", i32 25 - %"$msgobj_v_1612" = bitcast i8* %"$msgobj_v_1611" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1610", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1612", align 8 - %"$msgobj_fname_1614" = getelementptr i8, i8* %"$msgobj_1604", i32 41 - %"$msgobj_fname_1615" = bitcast i8* %"$msgobj_fname_1614" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1613", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1615", align 8 - %"$msgobj_td_1616" = getelementptr i8, i8* %"$msgobj_1604", i32 57 - %"$msgobj_td_1617" = bitcast i8* %"$msgobj_td_1616" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1617", align 8 - %"$msgobj_v_1618" = getelementptr i8, i8* %"$msgobj_1604", i32 65 - %"$msgobj_v_1619" = bitcast i8* %"$msgobj_v_1618" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1619", align 1 - %"$msgobj_fname_1621" = getelementptr i8, i8* %"$msgobj_1604", i32 85 - %"$msgobj_fname_1622" = bitcast i8* %"$msgobj_fname_1621" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1620", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1622", align 8 - %"$msgobj_td_1623" = getelementptr i8, i8* %"$msgobj_1604", i32 101 - %"$msgobj_td_1624" = bitcast i8* %"$msgobj_td_1623" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1624", align 8 - %"$msgobj_v_1625" = getelementptr i8, i8* %"$msgobj_1604", i32 109 - %"$msgobj_v_1626" = bitcast i8* %"$msgobj_v_1625" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_1626", align 8 - %"$msgobj_fname_1628" = getelementptr i8, i8* %"$msgobj_1604", i32 125 - %"$msgobj_fname_1629" = bitcast i8* %"$msgobj_fname_1628" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1627", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1629", align 8 - %"$msgobj_td_1630" = getelementptr i8, i8* %"$msgobj_1604", i32 141 - %"$msgobj_td_1631" = bitcast i8* %"$msgobj_td_1630" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1631", align 8 - %"$crowdfunding.cannot_reclaim_code_1632" = load %Int32, %Int32* @crowdfunding.cannot_reclaim_code, align 4 - %"$msgobj_v_1633" = getelementptr i8, i8* %"$msgobj_1604", i32 149 - %"$msgobj_v_1634" = bitcast i8* %"$msgobj_v_1633" to %Int32* - store %Int32 %"$crowdfunding.cannot_reclaim_code_1632", %Int32* %"$msgobj_v_1634", align 4 - store i8* %"$msgobj_1604", i8** %e2, align 8 - %"$e_1636" = load i8*, i8** %e2, align 8 - %"$_literal_cost_call_1638" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1636") +"$have_gas_1502": ; preds = %"$out_of_gas_1501", %"$Some_1495" + %"$consume_1503" = sub i64 %"$gasrem_1499", 1 + store i64 %"$consume_1503", i64* @_gasrem, align 8 + %bs1 = alloca %Map_ByStr20_Uint128*, align 8 + %"$bs_1504" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1504_1505" = bitcast %Map_ByStr20_Uint128* %"$bs_1504" to i8* + %"$_lengthof_call_1506" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_1504_1505") + %"$gasadd_1507" = add i64 1, %"$_lengthof_call_1506" + %"$gasrem_1508" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1509" = icmp ugt i64 %"$gasadd_1507", %"$gasrem_1508" + br i1 %"$gascmp_1509", label %"$out_of_gas_1510", label %"$have_gas_1511" + +"$out_of_gas_1510": ; preds = %"$have_gas_1502" + call void @_out_of_gas() + br label %"$have_gas_1511" + +"$have_gas_1511": ; preds = %"$out_of_gas_1510", %"$have_gas_1502" + %"$consume_1512" = sub i64 %"$gasrem_1508", %"$gasadd_1507" + store i64 %"$consume_1512", i64* @_gasrem, align 8 + %"$execptr_load_1513" = load i8*, i8** @_execptr, align 8 + %"$bs_1514" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 + %"$$bs_1514_1515" = bitcast %Map_ByStr20_Uint128* %"$bs_1514" to i8* + %"$remove__sender_1516" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$remove__sender_1516", align 1 + %"$$remove__sender_1516_1517" = bitcast [20 x i8]* %"$remove__sender_1516" to i8* + %"$remove_call_1518" = call i8* @_remove(i8* %"$execptr_load_1513", %_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs_1514_1515", i8* %"$$remove__sender_1516_1517") + %"$remove_1519" = bitcast i8* %"$remove_call_1518" to %Map_ByStr20_Uint128* + store %Map_ByStr20_Uint128* %"$remove_1519", %Map_ByStr20_Uint128** %bs1, align 8 + %"$bs1_1520" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$$bs1_1520_1521" = bitcast %Map_ByStr20_Uint128* %"$bs1_1520" to i8* + %"$_literal_cost_call_1522" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_58", i8* %"$$bs1_1520_1521") + %"$gasrem_1523" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1524" = icmp ugt i64 %"$_literal_cost_call_1522", %"$gasrem_1523" + br i1 %"$gascmp_1524", label %"$out_of_gas_1525", label %"$have_gas_1526" + +"$out_of_gas_1525": ; preds = %"$have_gas_1511" + call void @_out_of_gas() + br label %"$have_gas_1526" + +"$have_gas_1526": ; preds = %"$out_of_gas_1525", %"$have_gas_1511" + %"$consume_1527" = sub i64 %"$gasrem_1523", %"$_literal_cost_call_1522" + store i64 %"$consume_1527", i64* @_gasrem, align 8 + %"$execptr_load_1528" = load i8*, i8** @_execptr, align 8 + %"$bs1_1530" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 + %"$update_value_1531" = bitcast %Map_ByStr20_Uint128* %"$bs1_1530" to i8* + call void @_update_field(i8* %"$execptr_load_1528", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1529", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_58", i32 0, i8* null, i8* %"$update_value_1531") + %"$gasrem_1532" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1533" = icmp ugt i64 1, %"$gasrem_1532" + br i1 %"$gascmp_1533", label %"$out_of_gas_1534", label %"$have_gas_1535" + +"$out_of_gas_1534": ; preds = %"$have_gas_1526" + call void @_out_of_gas() + br label %"$have_gas_1535" + +"$have_gas_1535": ; preds = %"$out_of_gas_1534", %"$have_gas_1526" + %"$consume_1536" = sub i64 %"$gasrem_1532", 1 + store i64 %"$consume_1536", i64* @_gasrem, align 8 + %msg = alloca i8*, align 8 + %"$gasrem_1537" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1538" = icmp ugt i64 1, %"$gasrem_1537" + br i1 %"$gascmp_1538", label %"$out_of_gas_1539", label %"$have_gas_1540" + +"$out_of_gas_1539": ; preds = %"$have_gas_1535" + call void @_out_of_gas() + br label %"$have_gas_1540" + +"$have_gas_1540": ; preds = %"$out_of_gas_1539", %"$have_gas_1535" + %"$consume_1541" = sub i64 %"$gasrem_1537", 1 + store i64 %"$consume_1541", i64* @_gasrem, align 8 + %"$msgobj_1542_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1542_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1542_salloc_load", i64 125) + %"$msgobj_1542_salloc" = bitcast i8* %"$msgobj_1542_salloc_salloc" to [125 x i8]* + %"$msgobj_1542" = bitcast [125 x i8]* %"$msgobj_1542_salloc" to i8* + store i8 3, i8* %"$msgobj_1542", align 1 + %"$msgobj_fname_1544" = getelementptr i8, i8* %"$msgobj_1542", i32 1 + %"$msgobj_fname_1545" = bitcast i8* %"$msgobj_fname_1544" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1543", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1545", align 8 + %"$msgobj_td_1546" = getelementptr i8, i8* %"$msgobj_1542", i32 17 + %"$msgobj_td_1547" = bitcast i8* %"$msgobj_td_1546" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1547", align 8 + %"$msgobj_v_1549" = getelementptr i8, i8* %"$msgobj_1542", i32 25 + %"$msgobj_v_1550" = bitcast i8* %"$msgobj_v_1549" to %String* + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1548", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1550", align 8 + %"$msgobj_fname_1552" = getelementptr i8, i8* %"$msgobj_1542", i32 41 + %"$msgobj_fname_1553" = bitcast i8* %"$msgobj_fname_1552" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1551", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1553", align 8 + %"$msgobj_td_1554" = getelementptr i8, i8* %"$msgobj_1542", i32 57 + %"$msgobj_td_1555" = bitcast i8* %"$msgobj_td_1554" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1555", align 8 + %"$msgobj_v_1556" = getelementptr i8, i8* %"$msgobj_1542", i32 65 + %"$msgobj_v_1557" = bitcast i8* %"$msgobj_v_1556" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1557", align 1 + %"$msgobj_fname_1559" = getelementptr i8, i8* %"$msgobj_1542", i32 85 + %"$msgobj_fname_1560" = bitcast i8* %"$msgobj_fname_1559" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1558", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1560", align 8 + %"$msgobj_td_1561" = getelementptr i8, i8* %"$msgobj_1542", i32 101 + %"$msgobj_td_1562" = bitcast i8* %"$msgobj_td_1561" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1562", align 8 + %"$v_1563" = load %Uint128, %Uint128* %v, align 8 + %"$msgobj_v_1564" = getelementptr i8, i8* %"$msgobj_1542", i32 109 + %"$msgobj_v_1565" = bitcast i8* %"$msgobj_v_1564" to %Uint128* + store %Uint128 %"$v_1563", %Uint128* %"$msgobj_v_1565", align 8 + store i8* %"$msgobj_1542", i8** %msg, align 8 + %"$gasrem_1567" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1568" = icmp ugt i64 1, %"$gasrem_1567" + br i1 %"$gascmp_1568", label %"$out_of_gas_1569", label %"$have_gas_1570" + +"$out_of_gas_1569": ; preds = %"$have_gas_1540" + call void @_out_of_gas() + br label %"$have_gas_1570" + +"$have_gas_1570": ; preds = %"$out_of_gas_1569", %"$have_gas_1540" + %"$consume_1571" = sub i64 %"$gasrem_1567", 1 + store i64 %"$consume_1571", i64* @_gasrem, align 8 + %msgs = alloca %TName_List_Message*, align 8 + %"$gasrem_1572" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1573" = icmp ugt i64 1, %"$gasrem_1572" + br i1 %"$gascmp_1573", label %"$out_of_gas_1574", label %"$have_gas_1575" + +"$out_of_gas_1574": ; preds = %"$have_gas_1570" + call void @_out_of_gas() + br label %"$have_gas_1575" + +"$have_gas_1575": ; preds = %"$out_of_gas_1574", %"$have_gas_1570" + %"$consume_1576" = sub i64 %"$gasrem_1572", 1 + store i64 %"$consume_1576", i64* @_gasrem, align 8 + %"$crowdfunding.one_msg_4" = alloca %TName_List_Message*, align 8 + %"$crowdfunding.one_msg_1577" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 + %"$crowdfunding.one_msg_fptr_1578" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1577", 0 + %"$crowdfunding.one_msg_envptr_1579" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1577", 1 + %"$msg_1580" = load i8*, i8** %msg, align 8 + %"$crowdfunding.one_msg_call_1581" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1578"(i8* %"$crowdfunding.one_msg_envptr_1579", i8* %"$msg_1580") + store %TName_List_Message* %"$crowdfunding.one_msg_call_1581", %TName_List_Message** %"$crowdfunding.one_msg_4", align 8 + %"$$crowdfunding.one_msg_4_1582" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_4", align 8 + store %TName_List_Message* %"$$crowdfunding.one_msg_4_1582", %TName_List_Message** %msgs, align 8 + %"$gasrem_1583" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1584" = icmp ugt i64 1, %"$gasrem_1583" + br i1 %"$gascmp_1584", label %"$out_of_gas_1585", label %"$have_gas_1586" + +"$out_of_gas_1585": ; preds = %"$have_gas_1575" + call void @_out_of_gas() + br label %"$have_gas_1586" + +"$have_gas_1586": ; preds = %"$out_of_gas_1585", %"$have_gas_1575" + %"$consume_1587" = sub i64 %"$gasrem_1583", 1 + store i64 %"$consume_1587", i64* @_gasrem, align 8 + %e3 = alloca i8*, align 8 + %"$gasrem_1588" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1589" = icmp ugt i64 1, %"$gasrem_1588" + br i1 %"$gascmp_1589", label %"$out_of_gas_1590", label %"$have_gas_1591" + +"$out_of_gas_1590": ; preds = %"$have_gas_1586" + call void @_out_of_gas() + br label %"$have_gas_1591" + +"$have_gas_1591": ; preds = %"$out_of_gas_1590", %"$have_gas_1586" + %"$consume_1592" = sub i64 %"$gasrem_1588", 1 + store i64 %"$consume_1592", i64* @_gasrem, align 8 + %"$msgobj_1593_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1593_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1593_salloc_load", i64 153) + %"$msgobj_1593_salloc" = bitcast i8* %"$msgobj_1593_salloc_salloc" to [153 x i8]* + %"$msgobj_1593" = bitcast [153 x i8]* %"$msgobj_1593_salloc" to i8* + store i8 4, i8* %"$msgobj_1593", align 1 + %"$msgobj_fname_1595" = getelementptr i8, i8* %"$msgobj_1593", i32 1 + %"$msgobj_fname_1596" = bitcast i8* %"$msgobj_fname_1595" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1594", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1596", align 8 + %"$msgobj_td_1597" = getelementptr i8, i8* %"$msgobj_1593", i32 17 + %"$msgobj_td_1598" = bitcast i8* %"$msgobj_td_1597" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_37", %_TyDescrTy_Typ** %"$msgobj_td_1598", align 8 + %"$msgobj_v_1600" = getelementptr i8, i8* %"$msgobj_1593", i32 25 + %"$msgobj_v_1601" = bitcast i8* %"$msgobj_v_1600" to %String* + store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1599", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1601", align 8 + %"$msgobj_fname_1603" = getelementptr i8, i8* %"$msgobj_1593", i32 41 + %"$msgobj_fname_1604" = bitcast i8* %"$msgobj_fname_1603" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1602", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1604", align 8 + %"$msgobj_td_1605" = getelementptr i8, i8* %"$msgobj_1593", i32 57 + %"$msgobj_td_1606" = bitcast i8* %"$msgobj_td_1605" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_49", %_TyDescrTy_Typ** %"$msgobj_td_1606", align 8 + %"$msgobj_v_1607" = getelementptr i8, i8* %"$msgobj_1593", i32 65 + %"$msgobj_v_1608" = bitcast i8* %"$msgobj_v_1607" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1608", align 1 + %"$msgobj_fname_1610" = getelementptr i8, i8* %"$msgobj_1593", i32 85 + %"$msgobj_fname_1611" = bitcast i8* %"$msgobj_fname_1610" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1609", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1611", align 8 + %"$msgobj_td_1612" = getelementptr i8, i8* %"$msgobj_1593", i32 101 + %"$msgobj_td_1613" = bitcast i8* %"$msgobj_td_1612" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_31", %_TyDescrTy_Typ** %"$msgobj_td_1613", align 8 + %"$v_1614" = load %Uint128, %Uint128* %v, align 8 + %"$msgobj_v_1615" = getelementptr i8, i8* %"$msgobj_1593", i32 109 + %"$msgobj_v_1616" = bitcast i8* %"$msgobj_v_1615" to %Uint128* + store %Uint128 %"$v_1614", %Uint128* %"$msgobj_v_1616", align 8 + %"$msgobj_fname_1618" = getelementptr i8, i8* %"$msgobj_1593", i32 125 + %"$msgobj_fname_1619" = bitcast i8* %"$msgobj_fname_1618" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1617", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1619", align 8 + %"$msgobj_td_1620" = getelementptr i8, i8* %"$msgobj_1593", i32 141 + %"$msgobj_td_1621" = bitcast i8* %"$msgobj_td_1620" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Int32_21", %_TyDescrTy_Typ** %"$msgobj_td_1621", align 8 + %"$crowdfunding.reclaimed_code_1622" = load %Int32, %Int32* @crowdfunding.reclaimed_code, align 4 + %"$msgobj_v_1623" = getelementptr i8, i8* %"$msgobj_1593", i32 149 + %"$msgobj_v_1624" = bitcast i8* %"$msgobj_v_1623" to %Int32* + store %Int32 %"$crowdfunding.reclaimed_code_1622", %Int32* %"$msgobj_v_1624", align 4 + store i8* %"$msgobj_1593", i8** %e3, align 8 + %"$e_1626" = load i8*, i8** %e3, align 8 + %"$_literal_cost_call_1628" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1626") + %"$gasrem_1629" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1630" = icmp ugt i64 %"$_literal_cost_call_1628", %"$gasrem_1629" + br i1 %"$gascmp_1630", label %"$out_of_gas_1631", label %"$have_gas_1632" + +"$out_of_gas_1631": ; preds = %"$have_gas_1591" + call void @_out_of_gas() + br label %"$have_gas_1632" + +"$have_gas_1632": ; preds = %"$out_of_gas_1631", %"$have_gas_1591" + %"$consume_1633" = sub i64 %"$gasrem_1629", %"$_literal_cost_call_1628" + store i64 %"$consume_1633", i64* @_gasrem, align 8 + %"$execptr_load_1634" = load i8*, i8** @_execptr, align 8 + %"$e_1635" = load i8*, i8** %e3, align 8 + call void @_event(i8* %"$execptr_load_1634", %_TyDescrTy_Typ* @"$TyDescr_Event_43", i8* %"$e_1635") + %"$msgs_1636" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_1636_1637" = bitcast %TName_List_Message* %"$msgs_1636" to i8* + %"$_literal_cost_call_1638" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55", i8* %"$$msgs_1636_1637") %"$gasrem_1639" = load i64, i64* @_gasrem, align 8 %"$gascmp_1640" = icmp ugt i64 %"$_literal_cost_call_1638", %"$gasrem_1639" br i1 %"$gascmp_1640", label %"$out_of_gas_1641", label %"$have_gas_1642" -"$out_of_gas_1641": ; preds = %"$have_gas_1602" +"$out_of_gas_1641": ; preds = %"$have_gas_1632" call void @_out_of_gas() br label %"$have_gas_1642" -"$have_gas_1642": ; preds = %"$out_of_gas_1641", %"$have_gas_1602" +"$have_gas_1642": ; preds = %"$out_of_gas_1641", %"$have_gas_1632" %"$consume_1643" = sub i64 %"$gasrem_1639", %"$_literal_cost_call_1638" store i64 %"$consume_1643", i64* @_gasrem, align 8 %"$execptr_load_1644" = load i8*, i8** @_execptr, align 8 - %"$e_1645" = load i8*, i8** %e2, align 8 - call void @_event(i8* %"$execptr_load_1644", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1645") - br label %"$matchsucc_1587" - -"$Some_1646": ; preds = %"$have_gas_1585" - %"$res_1647" = bitcast %TName_Option_Uint128* %"$res_1588" to %CName_Some_Uint128* - %"$v_gep_1648" = getelementptr inbounds %CName_Some_Uint128, %CName_Some_Uint128* %"$res_1647", i32 0, i32 1 - %"$v_load_1649" = load %Uint128, %Uint128* %"$v_gep_1648", align 8 - %v = alloca %Uint128, align 8 - store %Uint128 %"$v_load_1649", %Uint128* %v, align 8 - %"$gasrem_1650" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1651" = icmp ugt i64 1, %"$gasrem_1650" - br i1 %"$gascmp_1651", label %"$out_of_gas_1652", label %"$have_gas_1653" + %"$msgs_1645" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_1644", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_55", %TName_List_Message* %"$msgs_1645") + br label %"$matchsucc_1436" -"$out_of_gas_1652": ; preds = %"$Some_1646" - call void @_out_of_gas() - br label %"$have_gas_1653" +"$empty_default_1440": ; preds = %"$have_gas_1434" + br label %"$matchsucc_1436" -"$have_gas_1653": ; preds = %"$out_of_gas_1652", %"$Some_1646" - %"$consume_1654" = sub i64 %"$gasrem_1650", 1 - store i64 %"$consume_1654", i64* @_gasrem, align 8 - %bs1 = alloca %Map_ByStr20_Uint128*, align 8 - %"$bs_1655" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1655_1656" = bitcast %Map_ByStr20_Uint128* %"$bs_1655" to i8* - %"$_lengthof_call_1657" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_1655_1656") - %"$gasadd_1658" = add i64 1, %"$_lengthof_call_1657" - %"$gasrem_1659" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1660" = icmp ugt i64 %"$gasadd_1658", %"$gasrem_1659" - br i1 %"$gascmp_1660", label %"$out_of_gas_1661", label %"$have_gas_1662" - -"$out_of_gas_1661": ; preds = %"$have_gas_1653" - call void @_out_of_gas() - br label %"$have_gas_1662" - -"$have_gas_1662": ; preds = %"$out_of_gas_1661", %"$have_gas_1653" - %"$consume_1663" = sub i64 %"$gasrem_1659", %"$gasadd_1658" - store i64 %"$consume_1663", i64* @_gasrem, align 8 - %"$execptr_load_1664" = load i8*, i8** @_execptr, align 8 - %"$bs_1665" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs, align 8 - %"$$bs_1665_1666" = bitcast %Map_ByStr20_Uint128* %"$bs_1665" to i8* - %"$remove__sender_1667" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$remove__sender_1667", align 1 - %"$$remove__sender_1667_1668" = bitcast [20 x i8]* %"$remove__sender_1667" to i8* - %"$remove_call_1669" = call i8* @_remove(i8* %"$execptr_load_1664", %_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs_1665_1666", i8* %"$$remove__sender_1667_1668") - %"$remove_1670" = bitcast i8* %"$remove_call_1669" to %Map_ByStr20_Uint128* - store %Map_ByStr20_Uint128* %"$remove_1670", %Map_ByStr20_Uint128** %bs1, align 8 - %"$bs1_1671" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$$bs1_1671_1672" = bitcast %Map_ByStr20_Uint128* %"$bs1_1671" to i8* - %"$_literal_cost_call_1673" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_83", i8* %"$$bs1_1671_1672") - %"$gasrem_1674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1675" = icmp ugt i64 %"$_literal_cost_call_1673", %"$gasrem_1674" - br i1 %"$gascmp_1675", label %"$out_of_gas_1676", label %"$have_gas_1677" - -"$out_of_gas_1676": ; preds = %"$have_gas_1662" - call void @_out_of_gas() - br label %"$have_gas_1677" - -"$have_gas_1677": ; preds = %"$out_of_gas_1676", %"$have_gas_1662" - %"$consume_1678" = sub i64 %"$gasrem_1674", %"$_literal_cost_call_1673" - store i64 %"$consume_1678", i64* @_gasrem, align 8 - %"$execptr_load_1679" = load i8*, i8** @_execptr, align 8 - %"$bs1_1681" = load %Map_ByStr20_Uint128*, %Map_ByStr20_Uint128** %bs1, align 8 - %"$update_value_1682" = bitcast %Map_ByStr20_Uint128* %"$bs1_1681" to i8* - call void @_update_field(i8* %"$execptr_load_1679", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$backers_1680", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_83", i32 0, i8* null, i8* %"$update_value_1682") - %"$gasrem_1683" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1684" = icmp ugt i64 1, %"$gasrem_1683" - br i1 %"$gascmp_1684", label %"$out_of_gas_1685", label %"$have_gas_1686" - -"$out_of_gas_1685": ; preds = %"$have_gas_1677" - call void @_out_of_gas() - br label %"$have_gas_1686" - -"$have_gas_1686": ; preds = %"$out_of_gas_1685", %"$have_gas_1677" - %"$consume_1687" = sub i64 %"$gasrem_1683", 1 - store i64 %"$consume_1687", i64* @_gasrem, align 8 - %msg = alloca i8*, align 8 - %"$gasrem_1688" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1689" = icmp ugt i64 1, %"$gasrem_1688" - br i1 %"$gascmp_1689", label %"$out_of_gas_1690", label %"$have_gas_1691" - -"$out_of_gas_1690": ; preds = %"$have_gas_1686" - call void @_out_of_gas() - br label %"$have_gas_1691" - -"$have_gas_1691": ; preds = %"$out_of_gas_1690", %"$have_gas_1686" - %"$consume_1692" = sub i64 %"$gasrem_1688", 1 - store i64 %"$consume_1692", i64* @_gasrem, align 8 - %"$msgobj_1693_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1693_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1693_salloc_load", i64 125) - %"$msgobj_1693_salloc" = bitcast i8* %"$msgobj_1693_salloc_salloc" to [125 x i8]* - %"$msgobj_1693" = bitcast [125 x i8]* %"$msgobj_1693_salloc" to i8* - store i8 3, i8* %"$msgobj_1693", align 1 - %"$msgobj_fname_1695" = getelementptr i8, i8* %"$msgobj_1693", i32 1 - %"$msgobj_fname_1696" = bitcast i8* %"$msgobj_fname_1695" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1694", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1696", align 8 - %"$msgobj_td_1697" = getelementptr i8, i8* %"$msgobj_1693", i32 17 - %"$msgobj_td_1698" = bitcast i8* %"$msgobj_td_1697" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1698", align 8 - %"$msgobj_v_1700" = getelementptr i8, i8* %"$msgobj_1693", i32 25 - %"$msgobj_v_1701" = bitcast i8* %"$msgobj_v_1700" to %String* - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_1699", i32 0, i32 0), i32 0 }, %String* %"$msgobj_v_1701", align 8 - %"$msgobj_fname_1703" = getelementptr i8, i8* %"$msgobj_1693", i32 41 - %"$msgobj_fname_1704" = bitcast i8* %"$msgobj_fname_1703" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1702", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1704", align 8 - %"$msgobj_td_1705" = getelementptr i8, i8* %"$msgobj_1693", i32 57 - %"$msgobj_td_1706" = bitcast i8* %"$msgobj_td_1705" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1706", align 8 - %"$msgobj_v_1707" = getelementptr i8, i8* %"$msgobj_1693", i32 65 - %"$msgobj_v_1708" = bitcast i8* %"$msgobj_v_1707" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1708", align 1 - %"$msgobj_fname_1710" = getelementptr i8, i8* %"$msgobj_1693", i32 85 - %"$msgobj_fname_1711" = bitcast i8* %"$msgobj_fname_1710" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1709", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1711", align 8 - %"$msgobj_td_1712" = getelementptr i8, i8* %"$msgobj_1693", i32 101 - %"$msgobj_td_1713" = bitcast i8* %"$msgobj_td_1712" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1713", align 8 - %"$v_1714" = load %Uint128, %Uint128* %v, align 8 - %"$msgobj_v_1715" = getelementptr i8, i8* %"$msgobj_1693", i32 109 - %"$msgobj_v_1716" = bitcast i8* %"$msgobj_v_1715" to %Uint128* - store %Uint128 %"$v_1714", %Uint128* %"$msgobj_v_1716", align 8 - store i8* %"$msgobj_1693", i8** %msg, align 8 - %"$gasrem_1718" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1719" = icmp ugt i64 1, %"$gasrem_1718" - br i1 %"$gascmp_1719", label %"$out_of_gas_1720", label %"$have_gas_1721" - -"$out_of_gas_1720": ; preds = %"$have_gas_1691" - call void @_out_of_gas() - br label %"$have_gas_1721" - -"$have_gas_1721": ; preds = %"$out_of_gas_1720", %"$have_gas_1691" - %"$consume_1722" = sub i64 %"$gasrem_1718", 1 - store i64 %"$consume_1722", i64* @_gasrem, align 8 - %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_1723" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1724" = icmp ugt i64 1, %"$gasrem_1723" - br i1 %"$gascmp_1724", label %"$out_of_gas_1725", label %"$have_gas_1726" - -"$out_of_gas_1725": ; preds = %"$have_gas_1721" - call void @_out_of_gas() - br label %"$have_gas_1726" - -"$have_gas_1726": ; preds = %"$out_of_gas_1725", %"$have_gas_1721" - %"$consume_1727" = sub i64 %"$gasrem_1723", 1 - store i64 %"$consume_1727", i64* @_gasrem, align 8 - %"$crowdfunding.one_msg_14" = alloca %TName_List_Message*, align 8 - %"$crowdfunding.one_msg_1728" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @crowdfunding.one_msg, align 8 - %"$crowdfunding.one_msg_fptr_1729" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1728", 0 - %"$crowdfunding.one_msg_envptr_1730" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$crowdfunding.one_msg_1728", 1 - %"$msg_1731" = load i8*, i8** %msg, align 8 - %"$crowdfunding.one_msg_call_1732" = call %TName_List_Message* %"$crowdfunding.one_msg_fptr_1729"(i8* %"$crowdfunding.one_msg_envptr_1730", i8* %"$msg_1731") - store %TName_List_Message* %"$crowdfunding.one_msg_call_1732", %TName_List_Message** %"$crowdfunding.one_msg_14", align 8 - %"$$crowdfunding.one_msg_14_1733" = load %TName_List_Message*, %TName_List_Message** %"$crowdfunding.one_msg_14", align 8 - store %TName_List_Message* %"$$crowdfunding.one_msg_14_1733", %TName_List_Message** %msgs, align 8 - %"$gasrem_1734" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1735" = icmp ugt i64 1, %"$gasrem_1734" - br i1 %"$gascmp_1735", label %"$out_of_gas_1736", label %"$have_gas_1737" - -"$out_of_gas_1736": ; preds = %"$have_gas_1726" - call void @_out_of_gas() - br label %"$have_gas_1737" - -"$have_gas_1737": ; preds = %"$out_of_gas_1736", %"$have_gas_1726" - %"$consume_1738" = sub i64 %"$gasrem_1734", 1 - store i64 %"$consume_1738", i64* @_gasrem, align 8 - %e3 = alloca i8*, align 8 - %"$gasrem_1739" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1740" = icmp ugt i64 1, %"$gasrem_1739" - br i1 %"$gascmp_1740", label %"$out_of_gas_1741", label %"$have_gas_1742" - -"$out_of_gas_1741": ; preds = %"$have_gas_1737" - call void @_out_of_gas() - br label %"$have_gas_1742" - -"$have_gas_1742": ; preds = %"$out_of_gas_1741", %"$have_gas_1737" - %"$consume_1743" = sub i64 %"$gasrem_1739", 1 - store i64 %"$consume_1743", i64* @_gasrem, align 8 - %"$msgobj_1744_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1744_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1744_salloc_load", i64 153) - %"$msgobj_1744_salloc" = bitcast i8* %"$msgobj_1744_salloc_salloc" to [153 x i8]* - %"$msgobj_1744" = bitcast [153 x i8]* %"$msgobj_1744_salloc" to i8* - store i8 4, i8* %"$msgobj_1744", align 1 - %"$msgobj_fname_1746" = getelementptr i8, i8* %"$msgobj_1744", i32 1 - %"$msgobj_fname_1747" = bitcast i8* %"$msgobj_fname_1746" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1745", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1747", align 8 - %"$msgobj_td_1748" = getelementptr i8, i8* %"$msgobj_1744", i32 17 - %"$msgobj_td_1749" = bitcast i8* %"$msgobj_td_1748" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_62", %_TyDescrTy_Typ** %"$msgobj_td_1749", align 8 - %"$msgobj_v_1751" = getelementptr i8, i8* %"$msgobj_1744", i32 25 - %"$msgobj_v_1752" = bitcast i8* %"$msgobj_v_1751" to %String* - store %String { i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"$stringlit_1750", i32 0, i32 0), i32 16 }, %String* %"$msgobj_v_1752", align 8 - %"$msgobj_fname_1754" = getelementptr i8, i8* %"$msgobj_1744", i32 41 - %"$msgobj_fname_1755" = bitcast i8* %"$msgobj_fname_1754" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1753", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1755", align 8 - %"$msgobj_td_1756" = getelementptr i8, i8* %"$msgobj_1744", i32 57 - %"$msgobj_td_1757" = bitcast i8* %"$msgobj_td_1756" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_74", %_TyDescrTy_Typ** %"$msgobj_td_1757", align 8 - %"$msgobj_v_1758" = getelementptr i8, i8* %"$msgobj_1744", i32 65 - %"$msgobj_v_1759" = bitcast i8* %"$msgobj_v_1758" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_1759", align 1 - %"$msgobj_fname_1761" = getelementptr i8, i8* %"$msgobj_1744", i32 85 - %"$msgobj_fname_1762" = bitcast i8* %"$msgobj_fname_1761" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1760", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1762", align 8 - %"$msgobj_td_1763" = getelementptr i8, i8* %"$msgobj_1744", i32 101 - %"$msgobj_td_1764" = bitcast i8* %"$msgobj_td_1763" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_56", %_TyDescrTy_Typ** %"$msgobj_td_1764", align 8 - %"$v_1765" = load %Uint128, %Uint128* %v, align 8 - %"$msgobj_v_1766" = getelementptr i8, i8* %"$msgobj_1744", i32 109 - %"$msgobj_v_1767" = bitcast i8* %"$msgobj_v_1766" to %Uint128* - store %Uint128 %"$v_1765", %Uint128* %"$msgobj_v_1767", align 8 - %"$msgobj_fname_1769" = getelementptr i8, i8* %"$msgobj_1744", i32 125 - %"$msgobj_fname_1770" = bitcast i8* %"$msgobj_fname_1769" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1768", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1770", align 8 - %"$msgobj_td_1771" = getelementptr i8, i8* %"$msgobj_1744", i32 141 - %"$msgobj_td_1772" = bitcast i8* %"$msgobj_td_1771" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Int32_46", %_TyDescrTy_Typ** %"$msgobj_td_1772", align 8 - %"$crowdfunding.reclaimed_code_1773" = load %Int32, %Int32* @crowdfunding.reclaimed_code, align 4 - %"$msgobj_v_1774" = getelementptr i8, i8* %"$msgobj_1744", i32 149 - %"$msgobj_v_1775" = bitcast i8* %"$msgobj_v_1774" to %Int32* - store %Int32 %"$crowdfunding.reclaimed_code_1773", %Int32* %"$msgobj_v_1775", align 4 - store i8* %"$msgobj_1744", i8** %e3, align 8 - %"$e_1777" = load i8*, i8** %e3, align 8 - %"$_literal_cost_call_1779" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1777") - %"$gasrem_1780" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1781" = icmp ugt i64 %"$_literal_cost_call_1779", %"$gasrem_1780" - br i1 %"$gascmp_1781", label %"$out_of_gas_1782", label %"$have_gas_1783" - -"$out_of_gas_1782": ; preds = %"$have_gas_1742" - call void @_out_of_gas() - br label %"$have_gas_1783" - -"$have_gas_1783": ; preds = %"$out_of_gas_1782", %"$have_gas_1742" - %"$consume_1784" = sub i64 %"$gasrem_1780", %"$_literal_cost_call_1779" - store i64 %"$consume_1784", i64* @_gasrem, align 8 - %"$execptr_load_1785" = load i8*, i8** @_execptr, align 8 - %"$e_1786" = load i8*, i8** %e3, align 8 - call void @_event(i8* %"$execptr_load_1785", %_TyDescrTy_Typ* @"$TyDescr_Event_68", i8* %"$e_1786") - %"$msgs_1787" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_1787_1788" = bitcast %TName_List_Message* %"$msgs_1787" to i8* - %"$_literal_cost_call_1789" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80", i8* %"$$msgs_1787_1788") - %"$gasrem_1790" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1791" = icmp ugt i64 %"$_literal_cost_call_1789", %"$gasrem_1790" - br i1 %"$gascmp_1791", label %"$out_of_gas_1792", label %"$have_gas_1793" - -"$out_of_gas_1792": ; preds = %"$have_gas_1783" - call void @_out_of_gas() - br label %"$have_gas_1793" - -"$have_gas_1793": ; preds = %"$out_of_gas_1792", %"$have_gas_1783" - %"$consume_1794" = sub i64 %"$gasrem_1790", %"$_literal_cost_call_1789" - store i64 %"$consume_1794", i64* @_gasrem, align 8 - %"$execptr_load_1795" = load i8*, i8** @_execptr, align 8 - %"$msgs_1796" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_1795", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_80", %TName_List_Message* %"$msgs_1796") - br label %"$matchsucc_1587" - -"$empty_default_1591": ; preds = %"$have_gas_1585" - br label %"$matchsucc_1587" - -"$matchsucc_1587": ; preds = %"$have_gas_1793", %"$have_gas_1642", %"$empty_default_1591" - br label %"$matchsucc_1504" - -"$empty_default_1508": ; preds = %"$have_gas_1502" - br label %"$matchsucc_1504" - -"$matchsucc_1504": ; preds = %"$matchsucc_1587", %"$have_gas_1559", %"$empty_default_1508" - br label %"$matchsucc_1303" - -"$empty_default_1307": ; preds = %"$have_gas_1301" - br label %"$matchsucc_1303" - -"$matchsucc_1303": ; preds = %"$matchsucc_1504", %"$have_gas_1358", %"$empty_default_1307" +"$matchsucc_1436": ; preds = %"$have_gas_1642", %"$have_gas_1491", %"$empty_default_1440" + br label %"$matchsucc_1353" + +"$empty_default_1357": ; preds = %"$have_gas_1351" + br label %"$matchsucc_1353" + +"$matchsucc_1353": ; preds = %"$matchsucc_1436", %"$have_gas_1408", %"$empty_default_1357" + br label %"$matchsucc_1162" + +"$empty_default_1166": ; preds = %"$have_gas_1160" + br label %"$matchsucc_1162" + +"$matchsucc_1162": ; preds = %"$matchsucc_1353", %"$have_gas_1217", %"$empty_default_1166" ret void } @@ -3326,13 +3079,13 @@ declare i8* @_remove(i8*, %_TyDescrTy_Typ*, i8*, i8*) define void @ClaimBack(i8* %0) { entry: - %"$_amount_1798" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1799" = bitcast i8* %"$_amount_1798" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1799", align 8 - %"$_origin_1800" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1801" = bitcast i8* %"$_origin_1800" to [20 x i8]* - %"$_sender_1802" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1803" = bitcast i8* %"$_sender_1802" to [20 x i8]* - call void @"$ClaimBack_1271"(%Uint128 %_amount, [20 x i8]* %"$_origin_1801", [20 x i8]* %"$_sender_1803") + %"$_amount_1647" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1648" = bitcast i8* %"$_amount_1647" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1648", align 8 + %"$_origin_1649" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1650" = bitcast i8* %"$_origin_1649" to [20 x i8]* + %"$_sender_1651" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1652" = bitcast i8* %"$_sender_1651" to [20 x i8]* + call void @"$ClaimBack_1130"(%Uint128 %_amount, [20 x i8]* %"$_origin_1650", [20 x i8]* %"$_sender_1652") ret void } diff --git a/tests/codegen/contr/gold/event.scilla.gold b/tests/codegen/contr/gold/event.scilla.gold index bf55075e..8b494995 100644 --- a/tests/codegen/contr/gold/event.scilla.gold +++ b/tests/codegen/contr/gold/event.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'Event' source_filename = "Event" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_0" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/helloWorld.scilla.gold b/tests/codegen/contr/gold/helloWorld.scilla.gold index 9795eb75..fc862538 100644 --- a/tests/codegen/contr/gold/helloWorld.scilla.gold +++ b/tests/codegen/contr/gold/helloWorld.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001918 ; ModuleID = 'HelloWorld' source_filename = "HelloWorld" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/map_corners_test.scilla.gold b/tests/codegen/contr/gold/map_corners_test.scilla.gold index e7bf26d7..6e1ed4b6 100644 --- a/tests/codegen/contr/gold/map_corners_test.scilla.gold +++ b/tests/codegen/contr/gold/map_corners_test.scilla.gold @@ -3,27 +3,26 @@ ; gas_remaining: 4001999 ; ModuleID = 'MapCornersTest' source_filename = "MapCornersTest" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_32" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_24" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_64" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_63"** } +%"$TyDescrTy_ADTTyp_56" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_55"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_63" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_65"**, %"$TyDescrTy_ADTTyp_64"* } -%"$TyDescrTy_ADTTyp_Constr_65" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$TyDescr_MapTyp_70" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } -%"$TyDescr_AddrTyp_75" = type { i32, %"$TyDescr_AddrFieldTyp_74"* } -%"$TyDescr_AddrFieldTyp_74" = type { %TyDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_55" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_57"**, %"$TyDescrTy_ADTTyp_56"* } +%"$TyDescrTy_ADTTyp_Constr_57" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$TyDescr_MapTyp_62" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } +%"$TyDescr_AddrTyp_67" = type { i32, %"$TyDescr_AddrFieldTyp_66"* } +%"$TyDescr_AddrFieldTyp_66" = type { %TyDescrString, %_TyDescrTy_Typ* } %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_4876" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_4838" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_4877" = type { %ParamDescrString, i32, %"$ParamDescr_4876"* } -%"$$fundef_25_env_123" = type { %TName_Bool* } -%"$$fundef_23_env_124" = type {} +%"$TransDescr_4839" = type { %ParamDescrString, i32, %"$ParamDescr_4838"* } +%"$$fundef_17_env_115" = type {} %String = type { i8*, i32 } %Map_String_String = type { %String, %String } %"Map_String_Map_(String)_(String)" = type { %String, %Map_String_String* } @@ -41,473 +40,442 @@ target triple = "x86_64-unknown-linux-gnu" @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_33" = global %"$TyDescrTy_PrimTyp_32" zeroinitializer -@"$TyDescr_Int32_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Int32_Prim_33" to i8*) } -@"$TyDescr_Uint32_Prim_35" = global %"$TyDescrTy_PrimTyp_32" { i32 1, i32 0 } -@"$TyDescr_Uint32_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Uint32_Prim_35" to i8*) } -@"$TyDescr_Int64_Prim_37" = global %"$TyDescrTy_PrimTyp_32" { i32 0, i32 1 } -@"$TyDescr_Int64_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Int64_Prim_37" to i8*) } -@"$TyDescr_Uint64_Prim_39" = global %"$TyDescrTy_PrimTyp_32" { i32 1, i32 1 } -@"$TyDescr_Uint64_40" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Uint64_Prim_39" to i8*) } -@"$TyDescr_Int128_Prim_41" = global %"$TyDescrTy_PrimTyp_32" { i32 0, i32 2 } -@"$TyDescr_Int128_42" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Int128_Prim_41" to i8*) } -@"$TyDescr_Uint128_Prim_43" = global %"$TyDescrTy_PrimTyp_32" { i32 1, i32 2 } -@"$TyDescr_Uint128_44" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Uint128_Prim_43" to i8*) } -@"$TyDescr_Int256_Prim_45" = global %"$TyDescrTy_PrimTyp_32" { i32 0, i32 3 } -@"$TyDescr_Int256_46" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Int256_Prim_45" to i8*) } -@"$TyDescr_Uint256_Prim_47" = global %"$TyDescrTy_PrimTyp_32" { i32 1, i32 3 } -@"$TyDescr_Uint256_48" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Uint256_Prim_47" to i8*) } -@"$TyDescr_String_Prim_49" = global %"$TyDescrTy_PrimTyp_32" { i32 2, i32 0 } -@"$TyDescr_String_50" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_String_Prim_49" to i8*) } -@"$TyDescr_Bnum_Prim_51" = global %"$TyDescrTy_PrimTyp_32" { i32 3, i32 0 } -@"$TyDescr_Bnum_52" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Bnum_Prim_51" to i8*) } -@"$TyDescr_Message_Prim_53" = global %"$TyDescrTy_PrimTyp_32" { i32 4, i32 0 } -@"$TyDescr_Message_54" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Message_Prim_53" to i8*) } -@"$TyDescr_Event_Prim_55" = global %"$TyDescrTy_PrimTyp_32" { i32 5, i32 0 } -@"$TyDescr_Event_56" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Event_Prim_55" to i8*) } -@"$TyDescr_Exception_Prim_57" = global %"$TyDescrTy_PrimTyp_32" { i32 6, i32 0 } -@"$TyDescr_Exception_58" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Exception_Prim_57" to i8*) } -@"$TyDescr_Bystr_Prim_59" = global %"$TyDescrTy_PrimTyp_32" { i32 7, i32 0 } -@"$TyDescr_Bystr_60" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Bystr_Prim_59" to i8*) } -@"$TyDescr_Bystr20_Prim_61" = global %"$TyDescrTy_PrimTyp_32" { i32 8, i32 20 } -@"$TyDescr_Bystr20_62" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_32"* @"$TyDescr_Bystr20_Prim_61" to i8*) } -@"$TyDescr_ADT_Option_Map_(String)_(Map_(String)_(String))_66" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_86" to i8*) } -@"$TyDescr_ADT_Option_Map_(String)_(String)_67" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_95" to i8*) } -@"$TyDescr_ADT_Option_String_68" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_String_ADTTyp_Specl_104" to i8*) } -@"$TyDescr_ADT_Bool_69" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Bool_ADTTyp_Specl_116" to i8*) } -@"$TyDescr_Map_71" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_70"* @"$TyDescr_MapTyp_119" to i8*) } -@"$TyDescr_Map_72" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_70"* @"$TyDescr_MapTyp_120" to i8*) } -@"$TyDescr_Map_73" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_70"* @"$TyDescr_MapTyp_121" to i8*) } -@"$TyDescr_Addr_76" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_75"* @"$TyDescr_AddrFields_122" to i8*) } -@"$TyDescr_Option_ADTTyp_77" = unnamed_addr constant %"$TyDescrTy_ADTTyp_64" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_106", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 3, %"$TyDescrTy_ADTTyp_Specl_63"** getelementptr inbounds ([3 x %"$TyDescrTy_ADTTyp_Specl_63"*], [3 x %"$TyDescrTy_ADTTyp_Specl_63"*]* @"$TyDescr_Option_ADTTyp_m_specls_105", i32 0, i32 0) } -@"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_Constr_m_args_78" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_72"] -@"$TyDescr_ADT_Some_79" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_80" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_79", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_Constr_m_args_78", i32 0, i32 0) } -@"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_Constr_m_args_81" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_82" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_83" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_82", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_Constr_m_args_81", i32 0, i32 0) } -@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_constrs_84" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_65"*] [%"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_80", %"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_83"] -@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_TArgs_85" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_72"] -@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_86" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_63" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_TArgs_85", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_65"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_65"*], [2 x %"$TyDescrTy_ADTTyp_Constr_65"*]* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_constrs_84", i32 0, i32 0), %"$TyDescrTy_ADTTyp_64"* @"$TyDescr_Option_ADTTyp_77" } -@"$TyDescr_Option_Some_Map_(String)_(String)_Constr_m_args_87" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_73"] -@"$TyDescr_ADT_Some_88" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_Map_(String)_(String)_ADTTyp_Constr_89" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_88", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(String)_(String)_Constr_m_args_87", i32 0, i32 0) } -@"$TyDescr_Option_None_Map_(String)_(String)_Constr_m_args_90" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_91" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_Map_(String)_(String)_ADTTyp_Constr_92" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_91", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(String)_(String)_Constr_m_args_90", i32 0, i32 0) } -@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_constrs_93" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_65"*] [%"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_Some_Map_(String)_(String)_ADTTyp_Constr_89", %"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_None_Map_(String)_(String)_ADTTyp_Constr_92"] -@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_TArgs_94" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_73"] -@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_95" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_63" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_TArgs_94", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_65"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_65"*], [2 x %"$TyDescrTy_ADTTyp_Constr_65"*]* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_constrs_93", i32 0, i32 0), %"$TyDescrTy_ADTTyp_64"* @"$TyDescr_Option_ADTTyp_77" } -@"$TyDescr_Option_Some_String_Constr_m_args_96" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_50"] -@"$TyDescr_ADT_Some_97" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_String_ADTTyp_Constr_98" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_97", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_String_Constr_m_args_96", i32 0, i32 0) } -@"$TyDescr_Option_None_String_Constr_m_args_99" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_100" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_String_ADTTyp_Constr_101" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_100", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_String_Constr_m_args_99", i32 0, i32 0) } -@"$TyDescr_Option_String_ADTTyp_Specl_m_constrs_102" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_65"*] [%"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_Some_String_ADTTyp_Constr_98", %"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Option_None_String_ADTTyp_Constr_101"] -@"$TyDescr_Option_String_ADTTyp_Specl_m_TArgs_103" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_50"] -@"$TyDescr_Option_String_ADTTyp_Specl_104" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_63" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_String_ADTTyp_Specl_m_TArgs_103", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_65"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_65"*], [2 x %"$TyDescrTy_ADTTyp_Constr_65"*]* @"$TyDescr_Option_String_ADTTyp_Specl_m_constrs_102", i32 0, i32 0), %"$TyDescrTy_ADTTyp_64"* @"$TyDescr_Option_ADTTyp_77" } -@"$TyDescr_Option_ADTTyp_m_specls_105" = unnamed_addr constant [3 x %"$TyDescrTy_ADTTyp_Specl_63"*] [%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_86", %"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_95", %"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Option_String_ADTTyp_Specl_104"] -@"$TyDescr_ADT_Option_106" = unnamed_addr constant [6 x i8] c"Option" -@"$TyDescr_Bool_ADTTyp_107" = unnamed_addr constant %"$TyDescrTy_ADTTyp_64" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_118", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_63"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_63"*], [1 x %"$TyDescrTy_ADTTyp_Specl_63"*]* @"$TyDescr_Bool_ADTTyp_m_specls_117", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_108" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_109" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_110" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_109", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_108", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_111" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_112" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_113" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_65" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_112", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_111", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_114" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_65"*] [%"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Bool_True_ADTTyp_Constr_110", %"$TyDescrTy_ADTTyp_Constr_65"* @"$TyDescr_Bool_False_ADTTyp_Constr_113"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_115" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_116" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_63" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_115", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_65"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_65"*], [2 x %"$TyDescrTy_ADTTyp_Constr_65"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_114", i32 0, i32 0), %"$TyDescrTy_ADTTyp_64"* @"$TyDescr_Bool_ADTTyp_107" } -@"$TyDescr_Bool_ADTTyp_m_specls_117" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_63"*] [%"$TyDescrTy_ADTTyp_Specl_63"* @"$TyDescr_Bool_ADTTyp_Specl_116"] -@"$TyDescr_ADT_Bool_118" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_MapTyp_119" = unnamed_addr constant %"$TyDescr_MapTyp_70" { %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ* @"$TyDescr_Map_72" } -@"$TyDescr_MapTyp_120" = unnamed_addr constant %"$TyDescr_MapTyp_70" { %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ* @"$TyDescr_Map_73" } -@"$TyDescr_MapTyp_121" = unnamed_addr constant %"$TyDescr_MapTyp_70" { %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ* @"$TyDescr_String_50" } -@"$TyDescr_AddrFields_122" = unnamed_addr constant %"$TyDescr_AddrTyp_75" { i32 -1, %"$TyDescr_AddrFieldTyp_74"* null } -@BoolUtils.andb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer +@"$TyDescr_Int32_Prim_25" = global %"$TyDescrTy_PrimTyp_24" zeroinitializer +@"$TyDescr_Int32_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int32_Prim_25" to i8*) } +@"$TyDescr_Uint32_Prim_27" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 0 } +@"$TyDescr_Uint32_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint32_Prim_27" to i8*) } +@"$TyDescr_Int64_Prim_29" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 1 } +@"$TyDescr_Int64_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int64_Prim_29" to i8*) } +@"$TyDescr_Uint64_Prim_31" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 1 } +@"$TyDescr_Uint64_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint64_Prim_31" to i8*) } +@"$TyDescr_Int128_Prim_33" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 2 } +@"$TyDescr_Int128_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int128_Prim_33" to i8*) } +@"$TyDescr_Uint128_Prim_35" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 2 } +@"$TyDescr_Uint128_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint128_Prim_35" to i8*) } +@"$TyDescr_Int256_Prim_37" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 3 } +@"$TyDescr_Int256_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int256_Prim_37" to i8*) } +@"$TyDescr_Uint256_Prim_39" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 3 } +@"$TyDescr_Uint256_40" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint256_Prim_39" to i8*) } +@"$TyDescr_String_Prim_41" = global %"$TyDescrTy_PrimTyp_24" { i32 2, i32 0 } +@"$TyDescr_String_42" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_String_Prim_41" to i8*) } +@"$TyDescr_Bnum_Prim_43" = global %"$TyDescrTy_PrimTyp_24" { i32 3, i32 0 } +@"$TyDescr_Bnum_44" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bnum_Prim_43" to i8*) } +@"$TyDescr_Message_Prim_45" = global %"$TyDescrTy_PrimTyp_24" { i32 4, i32 0 } +@"$TyDescr_Message_46" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Message_Prim_45" to i8*) } +@"$TyDescr_Event_Prim_47" = global %"$TyDescrTy_PrimTyp_24" { i32 5, i32 0 } +@"$TyDescr_Event_48" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Event_Prim_47" to i8*) } +@"$TyDescr_Exception_Prim_49" = global %"$TyDescrTy_PrimTyp_24" { i32 6, i32 0 } +@"$TyDescr_Exception_50" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Exception_Prim_49" to i8*) } +@"$TyDescr_Bystr_Prim_51" = global %"$TyDescrTy_PrimTyp_24" { i32 7, i32 0 } +@"$TyDescr_Bystr_52" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bystr_Prim_51" to i8*) } +@"$TyDescr_Bystr20_Prim_53" = global %"$TyDescrTy_PrimTyp_24" { i32 8, i32 20 } +@"$TyDescr_Bystr20_54" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bystr20_Prim_53" to i8*) } +@"$TyDescr_ADT_Option_Map_(String)_(Map_(String)_(String))_58" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_78" to i8*) } +@"$TyDescr_ADT_Option_Map_(String)_(String)_59" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_87" to i8*) } +@"$TyDescr_ADT_Option_String_60" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_String_ADTTyp_Specl_96" to i8*) } +@"$TyDescr_ADT_Bool_61" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Bool_ADTTyp_Specl_108" to i8*) } +@"$TyDescr_Map_63" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_62"* @"$TyDescr_MapTyp_111" to i8*) } +@"$TyDescr_Map_64" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_62"* @"$TyDescr_MapTyp_112" to i8*) } +@"$TyDescr_Map_65" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_62"* @"$TyDescr_MapTyp_113" to i8*) } +@"$TyDescr_Addr_68" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_67"* @"$TyDescr_AddrFields_114" to i8*) } +@"$TyDescr_Option_ADTTyp_69" = unnamed_addr constant %"$TyDescrTy_ADTTyp_56" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_98", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 3, %"$TyDescrTy_ADTTyp_Specl_55"** getelementptr inbounds ([3 x %"$TyDescrTy_ADTTyp_Specl_55"*], [3 x %"$TyDescrTy_ADTTyp_Specl_55"*]* @"$TyDescr_Option_ADTTyp_m_specls_97", i32 0, i32 0) } +@"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_Constr_m_args_70" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_64"] +@"$TyDescr_ADT_Some_71" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_72" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_71", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_Constr_m_args_70", i32 0, i32 0) } +@"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_Constr_m_args_73" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_74" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_75" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_74", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_Constr_m_args_73", i32 0, i32 0) } +@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_constrs_76" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_57"*] [%"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_Some_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_72", %"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_None_Map_(String)_(Map_(String)_(String))_ADTTyp_Constr_75"] +@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_TArgs_77" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_64"] +@"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_78" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_55" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_TArgs_77", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_57"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_57"*], [2 x %"$TyDescrTy_ADTTyp_Constr_57"*]* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_m_constrs_76", i32 0, i32 0), %"$TyDescrTy_ADTTyp_56"* @"$TyDescr_Option_ADTTyp_69" } +@"$TyDescr_Option_Some_Map_(String)_(String)_Constr_m_args_79" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_65"] +@"$TyDescr_ADT_Some_80" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_Map_(String)_(String)_ADTTyp_Constr_81" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_80", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Map_(String)_(String)_Constr_m_args_79", i32 0, i32 0) } +@"$TyDescr_Option_None_Map_(String)_(String)_Constr_m_args_82" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_83" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_Map_(String)_(String)_ADTTyp_Constr_84" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_83", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Map_(String)_(String)_Constr_m_args_82", i32 0, i32 0) } +@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_constrs_85" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_57"*] [%"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_Some_Map_(String)_(String)_ADTTyp_Constr_81", %"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_None_Map_(String)_(String)_ADTTyp_Constr_84"] +@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_TArgs_86" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_65"] +@"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_87" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_55" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_TArgs_86", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_57"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_57"*], [2 x %"$TyDescrTy_ADTTyp_Constr_57"*]* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_m_constrs_85", i32 0, i32 0), %"$TyDescrTy_ADTTyp_56"* @"$TyDescr_Option_ADTTyp_69" } +@"$TyDescr_Option_Some_String_Constr_m_args_88" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_42"] +@"$TyDescr_ADT_Some_89" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_String_ADTTyp_Constr_90" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_89", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_String_Constr_m_args_88", i32 0, i32 0) } +@"$TyDescr_Option_None_String_Constr_m_args_91" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_92" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_String_ADTTyp_Constr_93" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_92", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_String_Constr_m_args_91", i32 0, i32 0) } +@"$TyDescr_Option_String_ADTTyp_Specl_m_constrs_94" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_57"*] [%"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_Some_String_ADTTyp_Constr_90", %"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Option_None_String_ADTTyp_Constr_93"] +@"$TyDescr_Option_String_ADTTyp_Specl_m_TArgs_95" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_42"] +@"$TyDescr_Option_String_ADTTyp_Specl_96" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_55" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_String_ADTTyp_Specl_m_TArgs_95", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_57"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_57"*], [2 x %"$TyDescrTy_ADTTyp_Constr_57"*]* @"$TyDescr_Option_String_ADTTyp_Specl_m_constrs_94", i32 0, i32 0), %"$TyDescrTy_ADTTyp_56"* @"$TyDescr_Option_ADTTyp_69" } +@"$TyDescr_Option_ADTTyp_m_specls_97" = unnamed_addr constant [3 x %"$TyDescrTy_ADTTyp_Specl_55"*] [%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_Map_(String)_(Map_(String)_(String))_ADTTyp_Specl_78", %"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_Map_(String)_(String)_ADTTyp_Specl_87", %"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Option_String_ADTTyp_Specl_96"] +@"$TyDescr_ADT_Option_98" = unnamed_addr constant [6 x i8] c"Option" +@"$TyDescr_Bool_ADTTyp_99" = unnamed_addr constant %"$TyDescrTy_ADTTyp_56" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_110", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_55"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_55"*], [1 x %"$TyDescrTy_ADTTyp_Specl_55"*]* @"$TyDescr_Bool_ADTTyp_m_specls_109", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_100" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_101" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_102" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_101", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_100", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_103" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_104" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_105" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_104", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_103", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_106" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_57"*] [%"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Bool_True_ADTTyp_Constr_102", %"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Bool_False_ADTTyp_Constr_105"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_107" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_108" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_55" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_107", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_57"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_57"*], [2 x %"$TyDescrTy_ADTTyp_Constr_57"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_106", i32 0, i32 0), %"$TyDescrTy_ADTTyp_56"* @"$TyDescr_Bool_ADTTyp_99" } +@"$TyDescr_Bool_ADTTyp_m_specls_109" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_55"*] [%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Bool_ADTTyp_Specl_108"] +@"$TyDescr_ADT_Bool_110" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_MapTyp_111" = unnamed_addr constant %"$TyDescr_MapTyp_62" { %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ* @"$TyDescr_Map_64" } +@"$TyDescr_MapTyp_112" = unnamed_addr constant %"$TyDescr_MapTyp_62" { %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ* @"$TyDescr_Map_65" } +@"$TyDescr_MapTyp_113" = unnamed_addr constant %"$TyDescr_MapTyp_62" { %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ* @"$TyDescr_String_42" } +@"$TyDescr_AddrFields_114" = unnamed_addr constant %"$TyDescr_AddrTyp_67" { i32 -1, %"$TyDescr_AddrFieldTyp_66"* null } +@BoolUtils.andb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null -@"$stringlit_179" = unnamed_addr constant [3 x i8] c"420" -@"$f_s1_181" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$f_m1_194" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$f_m2_206" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m3_218" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$f_m_230" = unnamed_addr constant [4 x i8] c"f_m\00" -@"$stringlit_247" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_252" = unnamed_addr constant [11 x i8] c"Test Failed" -@"$stringlit_255" = unnamed_addr constant [9 x i8] c"test_name" -@"$stringlit_287" = unnamed_addr constant [10 x i8] c"_exception" -@"$stringlit_292" = unnamed_addr constant [11 x i8] c"Test Failed" -@"$stringlit_295" = unnamed_addr constant [9 x i8] c"test_name" -@"$stringlit_302" = unnamed_addr constant [7 x i8] c"message" -@"$stringlit_333" = unnamed_addr constant [2 x i8] c"t1" -@"$f_s1_334" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$stringlit_359" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_416" = unnamed_addr constant [3 x i8] c"421" -@"$f_s1_427" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$stringlit_451" = unnamed_addr constant [2 x i8] c"t2" -@"$f_s1_452" = unnamed_addr constant [5 x i8] c"f_s1\00" -@"$stringlit_477" = unnamed_addr constant [3 x i8] c"421" -@"$stringlit_534" = unnamed_addr constant [4 x i8] c"key1" -@"$stringlit_545" = unnamed_addr constant [3 x i8] c"420" -@"$f_m1_560" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_584" = unnamed_addr constant [2 x i8] c"t3" -@"$stringlit_595" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_606" = unnamed_addr constant [4 x i8] c"key1" -@"$f_m1_610" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_684" = unnamed_addr constant [23 x i8] c"Incorrect value for key" -@"$stringlit_716" = unnamed_addr constant [4 x i8] c"key2" -@"$f_m1_720" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_758" = unnamed_addr constant [25 x i8] c"Rogue value found for key" -@"$f_m1_779" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_800" = unnamed_addr constant [2 x i8] c"t4" -@"$stringlit_811" = unnamed_addr constant [4 x i8] c"key1" -@"$f_m1_815" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_861" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_872" = unnamed_addr constant [5 x i8] c"key2a" -@"$stringlit_883" = unnamed_addr constant [3 x i8] c"420" -@"$f_m2_900" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_924" = unnamed_addr constant [2 x i8] c"t5" -@"$stringlit_935" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_946" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_957" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_963" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1039" = unnamed_addr constant [23 x i8] c"Incorrect value fetched" -@"$stringlit_1087" = unnamed_addr constant [5 x i8] c"key2b" -@"$stringlit_1098" = unnamed_addr constant [3 x i8] c"840" -@"$stringlit_1134" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_1145" = unnamed_addr constant [3 x i8] c"841" -@"$stringlit_1176" = unnamed_addr constant [5 x i8] c"key1b" -@"$f_m2_1190" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1213" = unnamed_addr constant [2 x i8] c"t6" -@"$stringlit_1224" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_1235" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_1241" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1279" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_1328" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" -@"$stringlit_1350" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" -@"$stringlit_1370" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_1381" = unnamed_addr constant [5 x i8] c"key2b" -@"$f_m2_1387" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1425" = unnamed_addr constant [3 x i8] c"840" -@"$stringlit_1474" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2b" -@"$stringlit_1496" = unnamed_addr constant [21 x i8] c"key1b,key2b not found" -@"$stringlit_1516" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_1527" = unnamed_addr constant [5 x i8] c"key2c" -@"$f_m2_1533" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1571" = unnamed_addr constant [3 x i8] c"841" -@"$stringlit_1620" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" -@"$stringlit_1642" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" -@"$f_m2_1661" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1682" = unnamed_addr constant [2 x i8] c"t7" -@"$stringlit_1693" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_1704" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_1710" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1748" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_1797" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" -@"$stringlit_1819" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" -@"$stringlit_1839" = unnamed_addr constant [5 x i8] c"key1b" -@"$f_m2_1843" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1881" = unnamed_addr constant [36 x i8] c"Fail: deleted value for key1b found!" -@"$stringlit_1903" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_1914" = unnamed_addr constant [5 x i8] c"key2b" -@"$f_m2_1920" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_1958" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2b found!" -@"$stringlit_1980" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_1991" = unnamed_addr constant [5 x i8] c"key2d" -@"$f_m2_1997" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2035" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2d found!" -@"$stringlit_2057" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_2068" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_2079" = unnamed_addr constant [3 x i8] c"121" -@"$f_m2_2096" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2120" = unnamed_addr constant [2 x i8] c"t8" -@"$stringlit_2131" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_2142" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m2_2148" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2186" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_2235" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" -@"$stringlit_2257" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" -@"$stringlit_2277" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_2288" = unnamed_addr constant [5 x i8] c"key2c" -@"$f_m2_2294" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2332" = unnamed_addr constant [3 x i8] c"121" -@"$stringlit_2381" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" -@"$stringlit_2403" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" -@"$f_m1_2435" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2458" = unnamed_addr constant [2 x i8] c"t9" -@"$f_m1_2459" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2545" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_2556" = unnamed_addr constant [3 x i8] c"420" -@"$f_m1_2591" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2614" = unnamed_addr constant [3 x i8] c"t10" -@"$stringlit_2625" = unnamed_addr constant [5 x i8] c"key1a" -@"$f_m1_2626" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2684" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_2733" = unnamed_addr constant [25 x i8] c"Incorrect value for key1a" -@"$stringlit_2755" = unnamed_addr constant [15 x i8] c"key1a not found" -@"$f_m1_2774" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_2795" = unnamed_addr constant [3 x i8] c"t11" -@"$f_m1_2796" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$f_m2_2894" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_2917" = unnamed_addr constant [3 x i8] c"t12" -@"$f_m2_2918" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_3017" = unnamed_addr constant [5 x i8] c"key1a" -@"$f_m2_3031" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_3054" = unnamed_addr constant [3 x i8] c"t13" -@"$stringlit_3065" = unnamed_addr constant [5 x i8] c"key1a" -@"$f_m2_3069" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_3159" = unnamed_addr constant [29 x i8] c"Submap should have been empty" -@"$stringlit_3207" = unnamed_addr constant [5 x i8] c"key2a" -@"$f_m3_3286" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$stringlit_3309" = unnamed_addr constant [3 x i8] c"t14" -@"$f_m3_3310" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$f_m_3408" = unnamed_addr constant [4 x i8] c"f_m\00" -@"$stringlit_3431" = unnamed_addr constant [3 x i8] c"t15" -@"$f_m3_3432" = unnamed_addr constant [5 x i8] c"f_m3\00" -@"$stringlit_3510" = unnamed_addr constant [22 x i8] c"Incorrect size of f_m3" -@"$stringlit_3530" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_3541" = unnamed_addr constant [5 x i8] c"key2a" -@"$stringlit_3708" = unnamed_addr constant [36 x i8] c"Incorrect size of f_m3[key1a][key2a]" -@"$stringlit_3730" = unnamed_addr constant [19 x i8] c"Unexpected empty m1" -@"$stringlit_3752" = unnamed_addr constant [28 x i8] c"Incorrect size of f_m3[key1]" -@"$stringlit_3774" = unnamed_addr constant [19 x i8] c"Unexpected empty m2" -@"$stringlit_3794" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_3805" = unnamed_addr constant [5 x i8] c"key2b" -@"$stringlit_3816" = unnamed_addr constant [5 x i8] c"key1c" -@"$stringlit_3827" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_3838" = unnamed_addr constant [5 x i8] c"key1d" -@"$stringlit_3849" = unnamed_addr constant [5 x i8] c"key2d" -@"$stringlit_3860" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_3871" = unnamed_addr constant [3 x i8] c"421" -@"$stringlit_3882" = unnamed_addr constant [3 x i8] c"422" -@"$stringlit_3893" = unnamed_addr constant [3 x i8] c"423" -@"$f_m2_4136" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_4159" = unnamed_addr constant [3 x i8] c"t16" -@"$stringlit_4170" = unnamed_addr constant [5 x i8] c"key1a" -@"$stringlit_4181" = unnamed_addr constant [5 x i8] c"key2a" -@"$stringlit_4192" = unnamed_addr constant [5 x i8] c"key1b" -@"$stringlit_4203" = unnamed_addr constant [5 x i8] c"key2b" -@"$stringlit_4214" = unnamed_addr constant [5 x i8] c"key1c" -@"$stringlit_4225" = unnamed_addr constant [5 x i8] c"key2c" -@"$stringlit_4236" = unnamed_addr constant [5 x i8] c"key1d" -@"$stringlit_4247" = unnamed_addr constant [5 x i8] c"key2d" -@"$f_m2_4253" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m2_4272" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m2_4291" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$f_m2_4310" = unnamed_addr constant [5 x i8] c"f_m2\00" -@"$stringlit_4334" = unnamed_addr constant [3 x i8] c"420" -@"$stringlit_4345" = unnamed_addr constant [3 x i8] c"421" -@"$stringlit_4356" = unnamed_addr constant [3 x i8] c"422" -@"$stringlit_4367" = unnamed_addr constant [3 x i8] c"423" -@"$stringlit_4660" = unnamed_addr constant [0 x i8] zeroinitializer -@"$stringlit_4671" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_156" = unnamed_addr constant [3 x i8] c"420" +@"$f_s1_158" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$f_m1_171" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$f_m2_183" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m3_195" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$f_m_207" = unnamed_addr constant [4 x i8] c"f_m\00" +@"$stringlit_224" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_229" = unnamed_addr constant [11 x i8] c"Test Failed" +@"$stringlit_232" = unnamed_addr constant [9 x i8] c"test_name" +@"$stringlit_264" = unnamed_addr constant [10 x i8] c"_exception" +@"$stringlit_269" = unnamed_addr constant [11 x i8] c"Test Failed" +@"$stringlit_272" = unnamed_addr constant [9 x i8] c"test_name" +@"$stringlit_279" = unnamed_addr constant [7 x i8] c"message" +@"$stringlit_310" = unnamed_addr constant [2 x i8] c"t1" +@"$f_s1_311" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$stringlit_336" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_393" = unnamed_addr constant [3 x i8] c"421" +@"$f_s1_404" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$stringlit_428" = unnamed_addr constant [2 x i8] c"t2" +@"$f_s1_429" = unnamed_addr constant [5 x i8] c"f_s1\00" +@"$stringlit_454" = unnamed_addr constant [3 x i8] c"421" +@"$stringlit_511" = unnamed_addr constant [4 x i8] c"key1" +@"$stringlit_522" = unnamed_addr constant [3 x i8] c"420" +@"$f_m1_537" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_561" = unnamed_addr constant [2 x i8] c"t3" +@"$stringlit_572" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_583" = unnamed_addr constant [4 x i8] c"key1" +@"$f_m1_587" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_661" = unnamed_addr constant [23 x i8] c"Incorrect value for key" +@"$stringlit_693" = unnamed_addr constant [4 x i8] c"key2" +@"$f_m1_697" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_735" = unnamed_addr constant [25 x i8] c"Rogue value found for key" +@"$f_m1_756" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_777" = unnamed_addr constant [2 x i8] c"t4" +@"$stringlit_788" = unnamed_addr constant [4 x i8] c"key1" +@"$f_m1_792" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_838" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_849" = unnamed_addr constant [5 x i8] c"key2a" +@"$stringlit_860" = unnamed_addr constant [3 x i8] c"420" +@"$f_m2_877" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_901" = unnamed_addr constant [2 x i8] c"t5" +@"$stringlit_912" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_923" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_934" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_940" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1016" = unnamed_addr constant [23 x i8] c"Incorrect value fetched" +@"$stringlit_1064" = unnamed_addr constant [5 x i8] c"key2b" +@"$stringlit_1075" = unnamed_addr constant [3 x i8] c"840" +@"$stringlit_1111" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_1122" = unnamed_addr constant [3 x i8] c"841" +@"$stringlit_1153" = unnamed_addr constant [5 x i8] c"key1b" +@"$f_m2_1167" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1190" = unnamed_addr constant [2 x i8] c"t6" +@"$stringlit_1201" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_1212" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_1218" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1256" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_1305" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" +@"$stringlit_1327" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" +@"$stringlit_1347" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_1358" = unnamed_addr constant [5 x i8] c"key2b" +@"$f_m2_1364" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1402" = unnamed_addr constant [3 x i8] c"840" +@"$stringlit_1451" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2b" +@"$stringlit_1473" = unnamed_addr constant [21 x i8] c"key1b,key2b not found" +@"$stringlit_1493" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_1504" = unnamed_addr constant [5 x i8] c"key2c" +@"$f_m2_1510" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1548" = unnamed_addr constant [3 x i8] c"841" +@"$stringlit_1597" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" +@"$stringlit_1619" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" +@"$f_m2_1638" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1659" = unnamed_addr constant [2 x i8] c"t7" +@"$stringlit_1670" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_1681" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_1687" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1725" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_1774" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" +@"$stringlit_1796" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" +@"$stringlit_1816" = unnamed_addr constant [5 x i8] c"key1b" +@"$f_m2_1820" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1858" = unnamed_addr constant [36 x i8] c"Fail: deleted value for key1b found!" +@"$stringlit_1880" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_1891" = unnamed_addr constant [5 x i8] c"key2b" +@"$f_m2_1897" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_1935" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2b found!" +@"$stringlit_1957" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_1968" = unnamed_addr constant [5 x i8] c"key2d" +@"$f_m2_1974" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2012" = unnamed_addr constant [42 x i8] c"Fail: deleted value for key1b,key2d found!" +@"$stringlit_2034" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_2045" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_2056" = unnamed_addr constant [3 x i8] c"121" +@"$f_m2_2073" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2097" = unnamed_addr constant [2 x i8] c"t8" +@"$stringlit_2108" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_2119" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m2_2125" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2163" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_2212" = unnamed_addr constant [31 x i8] c"Incorrect value for key1a,key2a" +@"$stringlit_2234" = unnamed_addr constant [21 x i8] c"key1a,key2a not found" +@"$stringlit_2254" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_2265" = unnamed_addr constant [5 x i8] c"key2c" +@"$f_m2_2271" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2309" = unnamed_addr constant [3 x i8] c"121" +@"$stringlit_2358" = unnamed_addr constant [31 x i8] c"Incorrect value for key1b,key2c" +@"$stringlit_2380" = unnamed_addr constant [21 x i8] c"key1b,key2c not found" +@"$f_m1_2412" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2435" = unnamed_addr constant [2 x i8] c"t9" +@"$f_m1_2436" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2522" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_2533" = unnamed_addr constant [3 x i8] c"420" +@"$f_m1_2568" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2591" = unnamed_addr constant [3 x i8] c"t10" +@"$stringlit_2602" = unnamed_addr constant [5 x i8] c"key1a" +@"$f_m1_2603" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2661" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_2710" = unnamed_addr constant [25 x i8] c"Incorrect value for key1a" +@"$stringlit_2732" = unnamed_addr constant [15 x i8] c"key1a not found" +@"$f_m1_2751" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_2772" = unnamed_addr constant [3 x i8] c"t11" +@"$f_m1_2773" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$f_m2_2871" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2894" = unnamed_addr constant [3 x i8] c"t12" +@"$f_m2_2895" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_2994" = unnamed_addr constant [5 x i8] c"key1a" +@"$f_m2_3008" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_3031" = unnamed_addr constant [3 x i8] c"t13" +@"$stringlit_3042" = unnamed_addr constant [5 x i8] c"key1a" +@"$f_m2_3046" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_3136" = unnamed_addr constant [29 x i8] c"Submap should have been empty" +@"$stringlit_3184" = unnamed_addr constant [5 x i8] c"key2a" +@"$f_m3_3263" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$stringlit_3286" = unnamed_addr constant [3 x i8] c"t14" +@"$f_m3_3287" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$f_m_3385" = unnamed_addr constant [4 x i8] c"f_m\00" +@"$stringlit_3408" = unnamed_addr constant [3 x i8] c"t15" +@"$f_m3_3409" = unnamed_addr constant [5 x i8] c"f_m3\00" +@"$stringlit_3487" = unnamed_addr constant [22 x i8] c"Incorrect size of f_m3" +@"$stringlit_3507" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_3518" = unnamed_addr constant [5 x i8] c"key2a" +@"$stringlit_3685" = unnamed_addr constant [36 x i8] c"Incorrect size of f_m3[key1a][key2a]" +@"$stringlit_3707" = unnamed_addr constant [19 x i8] c"Unexpected empty m1" +@"$stringlit_3729" = unnamed_addr constant [28 x i8] c"Incorrect size of f_m3[key1]" +@"$stringlit_3751" = unnamed_addr constant [19 x i8] c"Unexpected empty m2" +@"$stringlit_3771" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_3782" = unnamed_addr constant [5 x i8] c"key2b" +@"$stringlit_3793" = unnamed_addr constant [5 x i8] c"key1c" +@"$stringlit_3804" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_3815" = unnamed_addr constant [5 x i8] c"key1d" +@"$stringlit_3826" = unnamed_addr constant [5 x i8] c"key2d" +@"$stringlit_3837" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_3848" = unnamed_addr constant [3 x i8] c"421" +@"$stringlit_3859" = unnamed_addr constant [3 x i8] c"422" +@"$stringlit_3870" = unnamed_addr constant [3 x i8] c"423" +@"$f_m2_4113" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_4136" = unnamed_addr constant [3 x i8] c"t16" +@"$stringlit_4147" = unnamed_addr constant [5 x i8] c"key1a" +@"$stringlit_4158" = unnamed_addr constant [5 x i8] c"key2a" +@"$stringlit_4169" = unnamed_addr constant [5 x i8] c"key1b" +@"$stringlit_4180" = unnamed_addr constant [5 x i8] c"key2b" +@"$stringlit_4191" = unnamed_addr constant [5 x i8] c"key1c" +@"$stringlit_4202" = unnamed_addr constant [5 x i8] c"key2c" +@"$stringlit_4213" = unnamed_addr constant [5 x i8] c"key1d" +@"$stringlit_4224" = unnamed_addr constant [5 x i8] c"key2d" +@"$f_m2_4230" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m2_4249" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m2_4268" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$f_m2_4287" = unnamed_addr constant [5 x i8] c"f_m2\00" +@"$stringlit_4311" = unnamed_addr constant [3 x i8] c"420" +@"$stringlit_4322" = unnamed_addr constant [3 x i8] c"421" +@"$stringlit_4333" = unnamed_addr constant [3 x i8] c"422" +@"$stringlit_4344" = unnamed_addr constant [3 x i8] c"423" +@"$stringlit_4622" = unnamed_addr constant [0 x i8] zeroinitializer +@"$stringlit_4633" = unnamed_addr constant [3 x i8] c"420" +@"$f_m1_4676" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_4699" = unnamed_addr constant [3 x i8] c"t17" +@"$stringlit_4710" = unnamed_addr constant [0 x i8] zeroinitializer @"$f_m1_4714" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_4737" = unnamed_addr constant [3 x i8] c"t17" -@"$stringlit_4748" = unnamed_addr constant [0 x i8] zeroinitializer -@"$f_m1_4752" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$f_m1_4797" = unnamed_addr constant [5 x i8] c"f_m1\00" -@"$stringlit_4818" = unnamed_addr constant [3 x i8] c"t18" -@"$stringlit_4829" = unnamed_addr constant [0 x i8] zeroinitializer -@"$f_m1_4833" = unnamed_addr constant [5 x i8] c"f_m1\00" -@_tydescr_table = constant [23 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_73", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_67", %_TyDescrTy_Typ* @"$TyDescr_Event_56", %_TyDescrTy_Typ* @"$TyDescr_Int64_38", %_TyDescrTy_Typ* @"$TyDescr_Addr_76", %_TyDescrTy_Typ* @"$TyDescr_Map_71", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_69", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_62", %_TyDescrTy_Typ* @"$TyDescr_Uint256_48", %_TyDescrTy_Typ* @"$TyDescr_Uint32_36", %_TyDescrTy_Typ* @"$TyDescr_Map_72", %_TyDescrTy_Typ* @"$TyDescr_Uint64_40", %_TyDescrTy_Typ* @"$TyDescr_Bnum_52", %_TyDescrTy_Typ* @"$TyDescr_Uint128_44", %_TyDescrTy_Typ* @"$TyDescr_Exception_58", %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(Map_(String)_(String))_66", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", %_TyDescrTy_Typ* @"$TyDescr_Int256_46", %_TyDescrTy_Typ* @"$TyDescr_Int128_42", %_TyDescrTy_Typ* @"$TyDescr_Bystr_60", %_TyDescrTy_Typ* @"$TyDescr_Message_54", %_TyDescrTy_Typ* @"$TyDescr_Int32_34"] +@"$f_m1_4759" = unnamed_addr constant [5 x i8] c"f_m1\00" +@"$stringlit_4780" = unnamed_addr constant [3 x i8] c"t18" +@"$stringlit_4791" = unnamed_addr constant [0 x i8] zeroinitializer +@"$f_m1_4795" = unnamed_addr constant [5 x i8] c"f_m1\00" +@_tydescr_table = constant [23 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Map_65", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_59", %_TyDescrTy_Typ* @"$TyDescr_Event_48", %_TyDescrTy_Typ* @"$TyDescr_Int64_30", %_TyDescrTy_Typ* @"$TyDescr_Addr_68", %_TyDescrTy_Typ* @"$TyDescr_Map_63", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_61", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54", %_TyDescrTy_Typ* @"$TyDescr_Uint256_40", %_TyDescrTy_Typ* @"$TyDescr_Uint32_28", %_TyDescrTy_Typ* @"$TyDescr_Map_64", %_TyDescrTy_Typ* @"$TyDescr_Uint64_32", %_TyDescrTy_Typ* @"$TyDescr_Bnum_44", %_TyDescrTy_Typ* @"$TyDescr_Uint128_36", %_TyDescrTy_Typ* @"$TyDescr_Exception_50", %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(Map_(String)_(String))_58", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", %_TyDescrTy_Typ* @"$TyDescr_Int256_38", %_TyDescrTy_Typ* @"$TyDescr_Int128_34", %_TyDescrTy_Typ* @"$TyDescr_Bystr_52", %_TyDescrTy_Typ* @"$TyDescr_Message_46", %_TyDescrTy_Typ* @"$TyDescr_Int32_26"] @_tydescr_table_length = constant i32 23 -@"$pname__scilla_version_4878" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_4879" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_4880" = unnamed_addr constant [15 x i8] c"_creation_block" -@_contract_parameters = constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_4878", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_36" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_4879", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_62" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_4880", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_52" }] +@"$pname__scilla_version_4840" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_4841" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_4842" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_4840", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_28" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_4841", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_4842", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_44" }] @_contract_parameters_length = constant i32 3 -@"$tpname__amount_4881" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4882" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4883" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t1_4884" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4881", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4882", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4883", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t1_4885" = unnamed_addr constant [2 x i8] c"t1" -@"$tpname__amount_4886" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4887" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4888" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t2_4889" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4886", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4887", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4888", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t2_4890" = unnamed_addr constant [2 x i8] c"t2" -@"$tpname__amount_4891" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4892" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4893" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t3_4894" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4891", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4892", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4893", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t3_4895" = unnamed_addr constant [2 x i8] c"t3" -@"$tpname__amount_4896" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4897" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4898" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t4_4899" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4896", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4897", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4898", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t4_4900" = unnamed_addr constant [2 x i8] c"t4" -@"$tpname__amount_4901" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4902" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4903" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t5_4904" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4901", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4902", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4903", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t5_4905" = unnamed_addr constant [2 x i8] c"t5" -@"$tpname__amount_4906" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4907" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4908" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t6_4909" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4906", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4907", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4908", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t6_4910" = unnamed_addr constant [2 x i8] c"t6" -@"$tpname__amount_4911" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4912" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4913" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t7_4914" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4911", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4912", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4913", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t7_4915" = unnamed_addr constant [2 x i8] c"t7" -@"$tpname__amount_4916" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4917" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4918" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t8_4919" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4916", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4917", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4918", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t8_4920" = unnamed_addr constant [2 x i8] c"t8" -@"$tpname__amount_4921" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4922" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4923" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t9_4924" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4921", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4922", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4923", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t9_4925" = unnamed_addr constant [2 x i8] c"t9" -@"$tpname__amount_4926" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4927" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4928" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t10_4929" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4926", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4927", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4928", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t10_4930" = unnamed_addr constant [3 x i8] c"t10" -@"$tpname__amount_4931" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4932" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4933" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t11_4934" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4931", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4932", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4933", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t11_4935" = unnamed_addr constant [3 x i8] c"t11" -@"$tpname__amount_4936" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4937" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4938" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t12_4939" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4936", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4937", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4938", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t12_4940" = unnamed_addr constant [3 x i8] c"t12" -@"$tpname__amount_4941" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4942" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4943" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t13_4944" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4941", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4942", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4943", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t13_4945" = unnamed_addr constant [3 x i8] c"t13" -@"$tpname__amount_4946" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4947" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4948" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t14_4949" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4946", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4947", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4948", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t14_4950" = unnamed_addr constant [3 x i8] c"t14" -@"$tpname__amount_4951" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4952" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4953" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t15_4954" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4951", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4952", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4953", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t15_4955" = unnamed_addr constant [3 x i8] c"t15" -@"$tpname__amount_4956" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4957" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4958" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t16_4959" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4956", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4957", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4958", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t16_4960" = unnamed_addr constant [3 x i8] c"t16" -@"$tpname__amount_4961" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4962" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4963" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t17_4964" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4961", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4962", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4963", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t17_4965" = unnamed_addr constant [3 x i8] c"t17" -@"$tpname__amount_4966" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_4967" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_4968" = unnamed_addr constant [7 x i8] c"_sender" -@"$tparams_t18_4969" = unnamed_addr constant [3 x %"$ParamDescr_4876"] [%"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4966", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_44" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4967", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }, %"$ParamDescr_4876" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4968", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_76" }] -@"$tname_t18_4970" = unnamed_addr constant [3 x i8] c"t18" -@_transition_parameters = constant [18 x %"$TransDescr_4877"] [%"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_4885", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t1_4884", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t2_4890", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t2_4889", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t3_4895", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t3_4894", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t4_4900", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t4_4899", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t5_4905", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t5_4904", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t6_4910", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t6_4909", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t7_4915", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t7_4914", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t8_4920", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t8_4919", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t9_4925", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t9_4924", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t10_4930", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t10_4929", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t11_4935", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t11_4934", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t12_4940", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t12_4939", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t13_4945", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t13_4944", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t14_4950", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t14_4949", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t15_4955", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t15_4954", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t16_4960", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t16_4959", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t17_4965", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t17_4964", i32 0, i32 0) }, %"$TransDescr_4877" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t18_4970", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4876"* getelementptr inbounds ([3 x %"$ParamDescr_4876"], [3 x %"$ParamDescr_4876"]* @"$tparams_t18_4969", i32 0, i32 0) }] +@"$tpname__amount_4843" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4844" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4845" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t1_4846" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4843", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4844", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4845", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t1_4847" = unnamed_addr constant [2 x i8] c"t1" +@"$tpname__amount_4848" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4849" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4850" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t2_4851" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4848", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4849", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4850", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t2_4852" = unnamed_addr constant [2 x i8] c"t2" +@"$tpname__amount_4853" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4854" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4855" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t3_4856" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4853", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4854", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4855", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t3_4857" = unnamed_addr constant [2 x i8] c"t3" +@"$tpname__amount_4858" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4859" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4860" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t4_4861" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4858", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4859", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4860", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t4_4862" = unnamed_addr constant [2 x i8] c"t4" +@"$tpname__amount_4863" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4864" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4865" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t5_4866" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4863", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4864", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4865", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t5_4867" = unnamed_addr constant [2 x i8] c"t5" +@"$tpname__amount_4868" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4869" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4870" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t6_4871" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4868", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4869", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4870", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t6_4872" = unnamed_addr constant [2 x i8] c"t6" +@"$tpname__amount_4873" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4874" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4875" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t7_4876" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4873", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4874", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4875", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t7_4877" = unnamed_addr constant [2 x i8] c"t7" +@"$tpname__amount_4878" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4879" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4880" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t8_4881" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4878", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4879", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4880", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t8_4882" = unnamed_addr constant [2 x i8] c"t8" +@"$tpname__amount_4883" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4884" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4885" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t9_4886" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4883", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4884", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4885", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t9_4887" = unnamed_addr constant [2 x i8] c"t9" +@"$tpname__amount_4888" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4889" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4890" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t10_4891" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4888", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4889", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4890", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t10_4892" = unnamed_addr constant [3 x i8] c"t10" +@"$tpname__amount_4893" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4894" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4895" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t11_4896" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4893", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4894", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4895", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t11_4897" = unnamed_addr constant [3 x i8] c"t11" +@"$tpname__amount_4898" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4899" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4900" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t12_4901" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4898", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4899", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4900", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t12_4902" = unnamed_addr constant [3 x i8] c"t12" +@"$tpname__amount_4903" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4904" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4905" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t13_4906" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4903", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4904", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4905", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t13_4907" = unnamed_addr constant [3 x i8] c"t13" +@"$tpname__amount_4908" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4909" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4910" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t14_4911" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4908", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4909", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4910", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t14_4912" = unnamed_addr constant [3 x i8] c"t14" +@"$tpname__amount_4913" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4914" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4915" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t15_4916" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4913", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4914", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4915", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t15_4917" = unnamed_addr constant [3 x i8] c"t15" +@"$tpname__amount_4918" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4919" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4920" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t16_4921" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4918", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4919", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4920", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t16_4922" = unnamed_addr constant [3 x i8] c"t16" +@"$tpname__amount_4923" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4924" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4925" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t17_4926" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4923", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4924", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4925", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t17_4927" = unnamed_addr constant [3 x i8] c"t17" +@"$tpname__amount_4928" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_4929" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_4930" = unnamed_addr constant [7 x i8] c"_sender" +@"$tparams_t18_4931" = unnamed_addr constant [3 x %"$ParamDescr_4838"] [%"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_4928", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_4929", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }, %"$ParamDescr_4838" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_4930", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_68" }] +@"$tname_t18_4932" = unnamed_addr constant [3 x i8] c"t18" +@_transition_parameters = constant [18 x %"$TransDescr_4839"] [%"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t1_4847", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t1_4846", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t2_4852", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t2_4851", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t3_4857", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t3_4856", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t4_4862", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t4_4861", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t5_4867", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t5_4866", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t6_4872", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t6_4871", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t7_4877", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t7_4876", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t8_4882", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t8_4881", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tname_t9_4887", i32 0, i32 0), i32 2 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t9_4886", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t10_4892", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t10_4891", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t11_4897", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t11_4896", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t12_4902", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t12_4901", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t13_4907", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t13_4906", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t14_4912", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t14_4911", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t15_4917", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t15_4916", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t16_4922", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t16_4921", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t17_4927", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t17_4926", i32 0, i32 0) }, %"$TransDescr_4839" { %ParamDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$tname_t18_4932", i32 0, i32 0), i32 3 }, i32 3, %"$ParamDescr_4838"* getelementptr inbounds ([3 x %"$ParamDescr_4838"], [3 x %"$ParamDescr_4838"]* @"$tparams_t18_4931", i32 0, i32 0) }] @_transition_parameters_length = constant i32 18 -define internal %TName_Bool* @"$fundef_25"(%"$$fundef_25_env_123"* %0, %TName_Bool* %1) { +define internal %TName_Bool* @"$fundef_17"(%"$$fundef_17_env_115"* %0, %TName_Bool* %1, %TName_Bool* %2) { entry: - %"$$fundef_25_env_b_136" = getelementptr inbounds %"$$fundef_25_env_123", %"$$fundef_25_env_123"* %0, i32 0, i32 0 - %"$b_envload_137" = load %TName_Bool*, %TName_Bool** %"$$fundef_25_env_b_136", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_137", %TName_Bool** %b, align 8 - %"$retval_26" = alloca %TName_Bool*, align 8 - %"$gasrem_138" = load i64, i64* @_gasrem, align 8 - %"$gascmp_139" = icmp ugt i64 2, %"$gasrem_138" - br i1 %"$gascmp_139", label %"$out_of_gas_140", label %"$have_gas_141" - -"$out_of_gas_140": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_141" - -"$have_gas_141": ; preds = %"$out_of_gas_140", %entry - %"$consume_142" = sub i64 %"$gasrem_138", 2 - store i64 %"$consume_142", i64* @_gasrem, align 8 - %"$b_144" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_145" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_144", i32 0, i32 0 - %"$b_tag_146" = load i8, i8* %"$b_tag_145", align 1 - switch i8 %"$b_tag_146", label %"$empty_default_147" [ - i8 1, label %"$False_148" - i8 0, label %"$True_158" + %"$retval_18" = alloca %TName_Bool*, align 8 + %"$gasrem_116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_117" = icmp ugt i64 2, %"$gasrem_116" + br i1 %"$gascmp_117", label %"$out_of_gas_118", label %"$have_gas_119" + +"$out_of_gas_118": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_119" + +"$have_gas_119": ; preds = %"$out_of_gas_118", %entry + %"$consume_120" = sub i64 %"$gasrem_116", 2 + store i64 %"$consume_120", i64* @_gasrem, align 8 + %"$b_tag_122" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_123" = load i8, i8* %"$b_tag_122", align 1 + switch i8 %"$b_tag_123", label %"$empty_default_124" [ + i8 1, label %"$False_125" + i8 0, label %"$True_135" ] -"$False_148": ; preds = %"$have_gas_141" - %"$b_149" = bitcast %TName_Bool* %"$b_144" to %CName_False* - %"$gasrem_150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_151" = icmp ugt i64 1, %"$gasrem_150" - br i1 %"$gascmp_151", label %"$out_of_gas_152", label %"$have_gas_153" - -"$out_of_gas_152": ; preds = %"$False_148" - call void @_out_of_gas() - br label %"$have_gas_153" - -"$have_gas_153": ; preds = %"$out_of_gas_152", %"$False_148" - %"$consume_154" = sub i64 %"$gasrem_150", 1 - store i64 %"$consume_154", i64* @_gasrem, align 8 - %"$adtval_155_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_155_salloc" = call i8* @_salloc(i8* %"$adtval_155_load", i64 1) - %"$adtval_155" = bitcast i8* %"$adtval_155_salloc" to %CName_False* - %"$adtgep_156" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_155", i32 0, i32 0 - store i8 1, i8* %"$adtgep_156", align 1 - %"$adtptr_157" = bitcast %CName_False* %"$adtval_155" to %TName_Bool* - store %TName_Bool* %"$adtptr_157", %TName_Bool** %"$retval_26", align 8 - br label %"$matchsucc_143" - -"$True_158": ; preds = %"$have_gas_141" - %"$b_159" = bitcast %TName_Bool* %"$b_144" to %CName_True* - %"$gasrem_160" = load i64, i64* @_gasrem, align 8 - %"$gascmp_161" = icmp ugt i64 1, %"$gasrem_160" - br i1 %"$gascmp_161", label %"$out_of_gas_162", label %"$have_gas_163" - -"$out_of_gas_162": ; preds = %"$True_158" - call void @_out_of_gas() - br label %"$have_gas_163" - -"$have_gas_163": ; preds = %"$out_of_gas_162", %"$True_158" - %"$consume_164" = sub i64 %"$gasrem_160", 1 - store i64 %"$consume_164", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_26", align 8 - br label %"$matchsucc_143" - -"$empty_default_147": ; preds = %"$have_gas_141" - br label %"$matchsucc_143" - -"$matchsucc_143": ; preds = %"$have_gas_163", %"$have_gas_153", %"$empty_default_147" - %"$$retval_26_165" = load %TName_Bool*, %TName_Bool** %"$retval_26", align 8 - ret %TName_Bool* %"$$retval_26_165" -} - -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_23"(%"$$fundef_23_env_124"* %0, %TName_Bool* %1) { -entry: - %"$retval_24" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_125" = load i64, i64* @_gasrem, align 8 - %"$gascmp_126" = icmp ugt i64 1, %"$gasrem_125" - br i1 %"$gascmp_126", label %"$out_of_gas_127", label %"$have_gas_128" - -"$out_of_gas_127": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_128" - -"$have_gas_128": ; preds = %"$out_of_gas_127", %entry - %"$consume_129" = sub i64 %"$gasrem_125", 1 - store i64 %"$consume_129", i64* @_gasrem, align 8 - %"$$fundef_25_envp_130_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_25_envp_130_salloc" = call i8* @_salloc(i8* %"$$fundef_25_envp_130_load", i64 8) - %"$$fundef_25_envp_130" = bitcast i8* %"$$fundef_25_envp_130_salloc" to %"$$fundef_25_env_123"* - %"$$fundef_25_env_voidp_132" = bitcast %"$$fundef_25_env_123"* %"$$fundef_25_envp_130" to i8* - %"$$fundef_25_cloval_133" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_25_env_123"*, %TName_Bool*)* @"$fundef_25" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_25_env_voidp_132", 1 - %"$$fundef_25_env_b_134" = getelementptr inbounds %"$$fundef_25_env_123", %"$$fundef_25_env_123"* %"$$fundef_25_envp_130", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_25_env_b_134", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_25_cloval_133", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_24", align 8 - %"$$retval_24_135" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_24", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_24_135" +"$False_125": ; preds = %"$have_gas_119" + %"$b_126" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_127" = load i64, i64* @_gasrem, align 8 + %"$gascmp_128" = icmp ugt i64 1, %"$gasrem_127" + br i1 %"$gascmp_128", label %"$out_of_gas_129", label %"$have_gas_130" + +"$out_of_gas_129": ; preds = %"$False_125" + call void @_out_of_gas() + br label %"$have_gas_130" + +"$have_gas_130": ; preds = %"$out_of_gas_129", %"$False_125" + %"$consume_131" = sub i64 %"$gasrem_127", 1 + store i64 %"$consume_131", i64* @_gasrem, align 8 + %"$adtval_132_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_132_salloc" = call i8* @_salloc(i8* %"$adtval_132_load", i64 1) + %"$adtval_132" = bitcast i8* %"$adtval_132_salloc" to %CName_False* + %"$adtgep_133" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_132", i32 0, i32 0 + store i8 1, i8* %"$adtgep_133", align 1 + %"$adtptr_134" = bitcast %CName_False* %"$adtval_132" to %TName_Bool* + store %TName_Bool* %"$adtptr_134", %TName_Bool** %"$retval_18", align 8 + br label %"$matchsucc_121" + +"$True_135": ; preds = %"$have_gas_119" + %"$b_136" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_137" = load i64, i64* @_gasrem, align 8 + %"$gascmp_138" = icmp ugt i64 1, %"$gasrem_137" + br i1 %"$gascmp_138", label %"$out_of_gas_139", label %"$have_gas_140" + +"$out_of_gas_139": ; preds = %"$True_135" + call void @_out_of_gas() + br label %"$have_gas_140" + +"$have_gas_140": ; preds = %"$out_of_gas_139", %"$True_135" + %"$consume_141" = sub i64 %"$gasrem_137", 1 + store i64 %"$consume_141", i64* @_gasrem, align 8 + store %TName_Bool* %2, %TName_Bool** %"$retval_18", align 8 + br label %"$matchsucc_121" + +"$empty_default_124": ; preds = %"$have_gas_119" + br label %"$matchsucc_121" + +"$matchsucc_121": ; preds = %"$have_gas_140", %"$have_gas_130", %"$empty_default_124" + %"$$retval_18_142" = load %TName_Bool*, %TName_Bool** %"$retval_18", align 8 + ret %TName_Bool* %"$$retval_18_142" } declare void @_out_of_gas() @@ -516,122 +484,122 @@ declare i8* @_salloc(i8*, i64) define void @_init_libs() { entry: - %"$gasrem_166" = load i64, i64* @_gasrem, align 8 - %"$gascmp_167" = icmp ugt i64 1, %"$gasrem_166" - br i1 %"$gascmp_167", label %"$out_of_gas_168", label %"$have_gas_169" + %"$gasrem_143" = load i64, i64* @_gasrem, align 8 + %"$gascmp_144" = icmp ugt i64 2, %"$gasrem_143" + br i1 %"$gascmp_144", label %"$out_of_gas_145", label %"$have_gas_146" -"$out_of_gas_168": ; preds = %entry +"$out_of_gas_145": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_169" + br label %"$have_gas_146" -"$have_gas_169": ; preds = %"$out_of_gas_168", %entry - %"$consume_170" = sub i64 %"$gasrem_166", 1 - store i64 %"$consume_170", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_23_env_124"*, %TName_Bool*)* @"$fundef_23" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 +"$have_gas_146": ; preds = %"$out_of_gas_145", %entry + %"$consume_147" = sub i64 %"$gasrem_143", 2 + store i64 %"$consume_147", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_17_env_115"*, %TName_Bool*, %TName_Bool*)* @"$fundef_17" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 ret void } define void @_init_state() { entry: - %"$f_s1_27" = alloca %String, align 8 + %"$f_s1_19" = alloca %String, align 8 + %"$gasrem_151" = load i64, i64* @_gasrem, align 8 + %"$gascmp_152" = icmp ugt i64 1, %"$gasrem_151" + br i1 %"$gascmp_152", label %"$out_of_gas_153", label %"$have_gas_154" + +"$out_of_gas_153": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_154" + +"$have_gas_154": ; preds = %"$out_of_gas_153", %entry + %"$consume_155" = sub i64 %"$gasrem_151", 1 + store i64 %"$consume_155", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_156", i32 0, i32 0), i32 3 }, %String* %"$f_s1_19", align 8 + %"$execptr_load_157" = load i8*, i8** @_execptr, align 8 + %"$$f_s1_19_159" = load %String, %String* %"$f_s1_19", align 8 + %"$update_value_160" = alloca %String, align 8 + store %String %"$$f_s1_19_159", %String* %"$update_value_160", align 8 + %"$update_value_161" = bitcast %String* %"$update_value_160" to i8* + call void @_update_field(i8* %"$execptr_load_157", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_158", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_42", i32 0, i8* null, i8* %"$update_value_161") + %"$f_m1_20" = alloca %Map_String_String*, align 8 + %"$gasrem_162" = load i64, i64* @_gasrem, align 8 + %"$gascmp_163" = icmp ugt i64 1, %"$gasrem_162" + br i1 %"$gascmp_163", label %"$out_of_gas_164", label %"$have_gas_165" + +"$out_of_gas_164": ; preds = %"$have_gas_154" + call void @_out_of_gas() + br label %"$have_gas_165" + +"$have_gas_165": ; preds = %"$out_of_gas_164", %"$have_gas_154" + %"$consume_166" = sub i64 %"$gasrem_162", 1 + store i64 %"$consume_166", i64* @_gasrem, align 8 + %"$execptr_load_167" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_168" = call i8* @_new_empty_map(i8* %"$execptr_load_167") + %"$_new_empty_map_169" = bitcast i8* %"$_new_empty_map_call_168" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_169", %Map_String_String** %"$f_m1_20", align 8 + %"$execptr_load_170" = load i8*, i8** @_execptr, align 8 + %"$$f_m1_20_172" = load %Map_String_String*, %Map_String_String** %"$f_m1_20", align 8 + %"$update_value_173" = bitcast %Map_String_String* %"$$f_m1_20_172" to i8* + call void @_update_field(i8* %"$execptr_load_170", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_171", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i8* %"$update_value_173") + %"$f_m2_21" = alloca %"Map_String_Map_(String)_(String)"*, align 8 %"$gasrem_174" = load i64, i64* @_gasrem, align 8 %"$gascmp_175" = icmp ugt i64 1, %"$gasrem_174" br i1 %"$gascmp_175", label %"$out_of_gas_176", label %"$have_gas_177" -"$out_of_gas_176": ; preds = %entry +"$out_of_gas_176": ; preds = %"$have_gas_165" call void @_out_of_gas() br label %"$have_gas_177" -"$have_gas_177": ; preds = %"$out_of_gas_176", %entry +"$have_gas_177": ; preds = %"$out_of_gas_176", %"$have_gas_165" %"$consume_178" = sub i64 %"$gasrem_174", 1 store i64 %"$consume_178", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_179", i32 0, i32 0), i32 3 }, %String* %"$f_s1_27", align 8 - %"$execptr_load_180" = load i8*, i8** @_execptr, align 8 - %"$$f_s1_27_182" = load %String, %String* %"$f_s1_27", align 8 - %"$update_value_183" = alloca %String, align 8 - store %String %"$$f_s1_27_182", %String* %"$update_value_183", align 8 - %"$update_value_184" = bitcast %String* %"$update_value_183" to i8* - call void @_update_field(i8* %"$execptr_load_180", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_181", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_50", i32 0, i8* null, i8* %"$update_value_184") - %"$f_m1_28" = alloca %Map_String_String*, align 8 - %"$gasrem_185" = load i64, i64* @_gasrem, align 8 - %"$gascmp_186" = icmp ugt i64 1, %"$gasrem_185" - br i1 %"$gascmp_186", label %"$out_of_gas_187", label %"$have_gas_188" - -"$out_of_gas_187": ; preds = %"$have_gas_177" - call void @_out_of_gas() - br label %"$have_gas_188" - -"$have_gas_188": ; preds = %"$out_of_gas_187", %"$have_gas_177" - %"$consume_189" = sub i64 %"$gasrem_185", 1 - store i64 %"$consume_189", i64* @_gasrem, align 8 - %"$execptr_load_190" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_191" = call i8* @_new_empty_map(i8* %"$execptr_load_190") - %"$_new_empty_map_192" = bitcast i8* %"$_new_empty_map_call_191" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_192", %Map_String_String** %"$f_m1_28", align 8 - %"$execptr_load_193" = load i8*, i8** @_execptr, align 8 - %"$$f_m1_28_195" = load %Map_String_String*, %Map_String_String** %"$f_m1_28", align 8 - %"$update_value_196" = bitcast %Map_String_String* %"$$f_m1_28_195" to i8* - call void @_update_field(i8* %"$execptr_load_193", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_194", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i8* %"$update_value_196") - %"$f_m2_29" = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_197" = load i64, i64* @_gasrem, align 8 - %"$gascmp_198" = icmp ugt i64 1, %"$gasrem_197" - br i1 %"$gascmp_198", label %"$out_of_gas_199", label %"$have_gas_200" - -"$out_of_gas_199": ; preds = %"$have_gas_188" - call void @_out_of_gas() - br label %"$have_gas_200" - -"$have_gas_200": ; preds = %"$out_of_gas_199", %"$have_gas_188" - %"$consume_201" = sub i64 %"$gasrem_197", 1 - store i64 %"$consume_201", i64* @_gasrem, align 8 - %"$execptr_load_202" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_203" = call i8* @_new_empty_map(i8* %"$execptr_load_202") - %"$_new_empty_map_204" = bitcast i8* %"$_new_empty_map_call_203" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_204", %"Map_String_Map_(String)_(String)"** %"$f_m2_29", align 8 - %"$execptr_load_205" = load i8*, i8** @_execptr, align 8 - %"$$f_m2_29_207" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m2_29", align 8 - %"$update_value_208" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m2_29_207" to i8* - call void @_update_field(i8* %"$execptr_load_205", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_206", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i8* %"$update_value_208") - %"$f_m3_30" = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$gasrem_209" = load i64, i64* @_gasrem, align 8 - %"$gascmp_210" = icmp ugt i64 1, %"$gasrem_209" - br i1 %"$gascmp_210", label %"$out_of_gas_211", label %"$have_gas_212" - -"$out_of_gas_211": ; preds = %"$have_gas_200" - call void @_out_of_gas() - br label %"$have_gas_212" - -"$have_gas_212": ; preds = %"$out_of_gas_211", %"$have_gas_200" - %"$consume_213" = sub i64 %"$gasrem_209", 1 - store i64 %"$consume_213", i64* @_gasrem, align 8 - %"$execptr_load_214" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_215" = call i8* @_new_empty_map(i8* %"$execptr_load_214") - %"$_new_empty_map_216" = bitcast i8* %"$_new_empty_map_call_215" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_216", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_30", align 8 - %"$execptr_load_217" = load i8*, i8** @_execptr, align 8 - %"$$f_m3_30_219" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_30", align 8 - %"$update_value_220" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$f_m3_30_219" to i8* - call void @_update_field(i8* %"$execptr_load_217", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_218", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_71", i32 0, i8* null, i8* %"$update_value_220") - %"$f_m_31" = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_221" = load i64, i64* @_gasrem, align 8 - %"$gascmp_222" = icmp ugt i64 1, %"$gasrem_221" - br i1 %"$gascmp_222", label %"$out_of_gas_223", label %"$have_gas_224" - -"$out_of_gas_223": ; preds = %"$have_gas_212" - call void @_out_of_gas() - br label %"$have_gas_224" - -"$have_gas_224": ; preds = %"$out_of_gas_223", %"$have_gas_212" - %"$consume_225" = sub i64 %"$gasrem_221", 1 - store i64 %"$consume_225", i64* @_gasrem, align 8 - %"$execptr_load_226" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_227" = call i8* @_new_empty_map(i8* %"$execptr_load_226") - %"$_new_empty_map_228" = bitcast i8* %"$_new_empty_map_call_227" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_228", %"Map_String_Map_(String)_(String)"** %"$f_m_31", align 8 - %"$execptr_load_229" = load i8*, i8** @_execptr, align 8 - %"$$f_m_31_231" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m_31", align 8 - %"$update_value_232" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m_31_231" to i8* - call void @_update_field(i8* %"$execptr_load_229", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_230", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i8* %"$update_value_232") + %"$execptr_load_179" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_180" = call i8* @_new_empty_map(i8* %"$execptr_load_179") + %"$_new_empty_map_181" = bitcast i8* %"$_new_empty_map_call_180" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_181", %"Map_String_Map_(String)_(String)"** %"$f_m2_21", align 8 + %"$execptr_load_182" = load i8*, i8** @_execptr, align 8 + %"$$f_m2_21_184" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m2_21", align 8 + %"$update_value_185" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m2_21_184" to i8* + call void @_update_field(i8* %"$execptr_load_182", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_183", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i8* %"$update_value_185") + %"$f_m3_22" = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 + %"$gasrem_186" = load i64, i64* @_gasrem, align 8 + %"$gascmp_187" = icmp ugt i64 1, %"$gasrem_186" + br i1 %"$gascmp_187", label %"$out_of_gas_188", label %"$have_gas_189" + +"$out_of_gas_188": ; preds = %"$have_gas_177" + call void @_out_of_gas() + br label %"$have_gas_189" + +"$have_gas_189": ; preds = %"$out_of_gas_188", %"$have_gas_177" + %"$consume_190" = sub i64 %"$gasrem_186", 1 + store i64 %"$consume_190", i64* @_gasrem, align 8 + %"$execptr_load_191" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_192" = call i8* @_new_empty_map(i8* %"$execptr_load_191") + %"$_new_empty_map_193" = bitcast i8* %"$_new_empty_map_call_192" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_193", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_22", align 8 + %"$execptr_load_194" = load i8*, i8** @_execptr, align 8 + %"$$f_m3_22_196" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$f_m3_22", align 8 + %"$update_value_197" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$f_m3_22_196" to i8* + call void @_update_field(i8* %"$execptr_load_194", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_195", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_63", i32 0, i8* null, i8* %"$update_value_197") + %"$f_m_23" = alloca %"Map_String_Map_(String)_(String)"*, align 8 + %"$gasrem_198" = load i64, i64* @_gasrem, align 8 + %"$gascmp_199" = icmp ugt i64 1, %"$gasrem_198" + br i1 %"$gascmp_199", label %"$out_of_gas_200", label %"$have_gas_201" + +"$out_of_gas_200": ; preds = %"$have_gas_189" + call void @_out_of_gas() + br label %"$have_gas_201" + +"$have_gas_201": ; preds = %"$out_of_gas_200", %"$have_gas_189" + %"$consume_202" = sub i64 %"$gasrem_198", 1 + store i64 %"$consume_202", i64* @_gasrem, align 8 + %"$execptr_load_203" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_204" = call i8* @_new_empty_map(i8* %"$execptr_load_203") + %"$_new_empty_map_205" = bitcast i8* %"$_new_empty_map_call_204" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_205", %"Map_String_Map_(String)_(String)"** %"$f_m_23", align 8 + %"$execptr_load_206" = load i8*, i8** @_execptr, align 8 + %"$$f_m_23_208" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$f_m_23", align 8 + %"$update_value_209" = bitcast %"Map_String_Map_(String)_(String)"* %"$$f_m_23_208" to i8* + call void @_update_field(i8* %"$execptr_load_206", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_207", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i8* %"$update_value_209") ret void } @@ -639,73 +607,73 @@ declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) declare i8* @_new_empty_map(i8*) -define internal void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$_origin_234", [20 x i8]* %"$_sender_235", %String %tname) { +define internal void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$_origin_211", [20 x i8]* %"$_sender_212", %String %tname) { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_234", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_235", align 1 - %"$gasrem_236" = load i64, i64* @_gasrem, align 8 - %"$gascmp_237" = icmp ugt i64 1, %"$gasrem_236" - br i1 %"$gascmp_237", label %"$out_of_gas_238", label %"$have_gas_239" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_211", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_212", align 1 + %"$gasrem_213" = load i64, i64* @_gasrem, align 8 + %"$gascmp_214" = icmp ugt i64 1, %"$gasrem_213" + br i1 %"$gascmp_214", label %"$out_of_gas_215", label %"$have_gas_216" -"$out_of_gas_238": ; preds = %entry +"$out_of_gas_215": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_239" + br label %"$have_gas_216" -"$have_gas_239": ; preds = %"$out_of_gas_238", %entry - %"$consume_240" = sub i64 %"$gasrem_236", 1 - store i64 %"$consume_240", i64* @_gasrem, align 8 +"$have_gas_216": ; preds = %"$out_of_gas_215", %entry + %"$consume_217" = sub i64 %"$gasrem_213", 1 + store i64 %"$consume_217", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_241" = load i64, i64* @_gasrem, align 8 - %"$gascmp_242" = icmp ugt i64 1, %"$gasrem_241" - br i1 %"$gascmp_242", label %"$out_of_gas_243", label %"$have_gas_244" - -"$out_of_gas_243": ; preds = %"$have_gas_239" - call void @_out_of_gas() - br label %"$have_gas_244" - -"$have_gas_244": ; preds = %"$out_of_gas_243", %"$have_gas_239" - %"$consume_245" = sub i64 %"$gasrem_241", 1 - store i64 %"$consume_245", i64* @_gasrem, align 8 - %"$msgobj_246_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_246_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_246_salloc_load", i64 81) - %"$msgobj_246_salloc" = bitcast i8* %"$msgobj_246_salloc_salloc" to [81 x i8]* - %"$msgobj_246" = bitcast [81 x i8]* %"$msgobj_246_salloc" to i8* - store i8 2, i8* %"$msgobj_246", align 1 - %"$msgobj_fname_248" = getelementptr i8, i8* %"$msgobj_246", i32 1 - %"$msgobj_fname_249" = bitcast i8* %"$msgobj_fname_248" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_247", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_249", align 8 - %"$msgobj_td_250" = getelementptr i8, i8* %"$msgobj_246", i32 17 - %"$msgobj_td_251" = bitcast i8* %"$msgobj_td_250" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ** %"$msgobj_td_251", align 8 - %"$msgobj_v_253" = getelementptr i8, i8* %"$msgobj_246", i32 25 - %"$msgobj_v_254" = bitcast i8* %"$msgobj_v_253" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_252", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_254", align 8 - %"$msgobj_fname_256" = getelementptr i8, i8* %"$msgobj_246", i32 41 - %"$msgobj_fname_257" = bitcast i8* %"$msgobj_fname_256" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_255", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_257", align 8 - %"$msgobj_td_258" = getelementptr i8, i8* %"$msgobj_246", i32 57 - %"$msgobj_td_259" = bitcast i8* %"$msgobj_td_258" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ** %"$msgobj_td_259", align 8 - %"$msgobj_v_260" = getelementptr i8, i8* %"$msgobj_246", i32 65 - %"$msgobj_v_261" = bitcast i8* %"$msgobj_v_260" to %String* - store %String %tname, %String* %"$msgobj_v_261", align 8 - store i8* %"$msgobj_246", i8** %e, align 8 - %"$e_263" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_265" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_58", i8* %"$e_263") - %"$gasrem_266" = load i64, i64* @_gasrem, align 8 - %"$gascmp_267" = icmp ugt i64 %"$_literal_cost_call_265", %"$gasrem_266" - br i1 %"$gascmp_267", label %"$out_of_gas_268", label %"$have_gas_269" - -"$out_of_gas_268": ; preds = %"$have_gas_244" - call void @_out_of_gas() - br label %"$have_gas_269" - -"$have_gas_269": ; preds = %"$out_of_gas_268", %"$have_gas_244" - %"$consume_270" = sub i64 %"$gasrem_266", %"$_literal_cost_call_265" - store i64 %"$consume_270", i64* @_gasrem, align 8 - %"$execptr_load_271" = load i8*, i8** @_execptr, align 8 - %"$e_272" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_271", %_TyDescrTy_Typ* @"$TyDescr_Exception_58", i8* %"$e_272") + %"$gasrem_218" = load i64, i64* @_gasrem, align 8 + %"$gascmp_219" = icmp ugt i64 1, %"$gasrem_218" + br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" + +"$out_of_gas_220": ; preds = %"$have_gas_216" + call void @_out_of_gas() + br label %"$have_gas_221" + +"$have_gas_221": ; preds = %"$out_of_gas_220", %"$have_gas_216" + %"$consume_222" = sub i64 %"$gasrem_218", 1 + store i64 %"$consume_222", i64* @_gasrem, align 8 + %"$msgobj_223_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_223_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_223_salloc_load", i64 81) + %"$msgobj_223_salloc" = bitcast i8* %"$msgobj_223_salloc_salloc" to [81 x i8]* + %"$msgobj_223" = bitcast [81 x i8]* %"$msgobj_223_salloc" to i8* + store i8 2, i8* %"$msgobj_223", align 1 + %"$msgobj_fname_225" = getelementptr i8, i8* %"$msgobj_223", i32 1 + %"$msgobj_fname_226" = bitcast i8* %"$msgobj_fname_225" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_224", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_226", align 8 + %"$msgobj_td_227" = getelementptr i8, i8* %"$msgobj_223", i32 17 + %"$msgobj_td_228" = bitcast i8* %"$msgobj_td_227" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ** %"$msgobj_td_228", align 8 + %"$msgobj_v_230" = getelementptr i8, i8* %"$msgobj_223", i32 25 + %"$msgobj_v_231" = bitcast i8* %"$msgobj_v_230" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_229", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_231", align 8 + %"$msgobj_fname_233" = getelementptr i8, i8* %"$msgobj_223", i32 41 + %"$msgobj_fname_234" = bitcast i8* %"$msgobj_fname_233" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_232", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_234", align 8 + %"$msgobj_td_235" = getelementptr i8, i8* %"$msgobj_223", i32 57 + %"$msgobj_td_236" = bitcast i8* %"$msgobj_td_235" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ** %"$msgobj_td_236", align 8 + %"$msgobj_v_237" = getelementptr i8, i8* %"$msgobj_223", i32 65 + %"$msgobj_v_238" = bitcast i8* %"$msgobj_v_237" to %String* + store %String %tname, %String* %"$msgobj_v_238", align 8 + store i8* %"$msgobj_223", i8** %e, align 8 + %"$e_240" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_242" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_50", i8* %"$e_240") + %"$gasrem_243" = load i64, i64* @_gasrem, align 8 + %"$gascmp_244" = icmp ugt i64 %"$_literal_cost_call_242", %"$gasrem_243" + br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" + +"$out_of_gas_245": ; preds = %"$have_gas_221" + call void @_out_of_gas() + br label %"$have_gas_246" + +"$have_gas_246": ; preds = %"$out_of_gas_245", %"$have_gas_221" + %"$consume_247" = sub i64 %"$gasrem_243", %"$_literal_cost_call_242" + store i64 %"$consume_247", i64* @_gasrem, align 8 + %"$execptr_load_248" = load i8*, i8** @_execptr, align 8 + %"$e_249" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_248", %_TyDescrTy_Typ* @"$TyDescr_Exception_50", i8* %"$e_249") ret void } @@ -713,293 +681,293 @@ declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare void @_throw(i8*, %_TyDescrTy_Typ*, i8*) -define internal void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$_origin_274", [20 x i8]* %"$_sender_275", %String %tname, %String %msg) { +define internal void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$_origin_251", [20 x i8]* %"$_sender_252", %String %tname, %String %msg) { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_274", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_275", align 1 - %"$gasrem_276" = load i64, i64* @_gasrem, align 8 - %"$gascmp_277" = icmp ugt i64 1, %"$gasrem_276" - br i1 %"$gascmp_277", label %"$out_of_gas_278", label %"$have_gas_279" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_251", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_252", align 1 + %"$gasrem_253" = load i64, i64* @_gasrem, align 8 + %"$gascmp_254" = icmp ugt i64 1, %"$gasrem_253" + br i1 %"$gascmp_254", label %"$out_of_gas_255", label %"$have_gas_256" -"$out_of_gas_278": ; preds = %entry +"$out_of_gas_255": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_279" + br label %"$have_gas_256" -"$have_gas_279": ; preds = %"$out_of_gas_278", %entry - %"$consume_280" = sub i64 %"$gasrem_276", 1 - store i64 %"$consume_280", i64* @_gasrem, align 8 +"$have_gas_256": ; preds = %"$out_of_gas_255", %entry + %"$consume_257" = sub i64 %"$gasrem_253", 1 + store i64 %"$consume_257", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_281" = load i64, i64* @_gasrem, align 8 - %"$gascmp_282" = icmp ugt i64 1, %"$gasrem_281" - br i1 %"$gascmp_282", label %"$out_of_gas_283", label %"$have_gas_284" - -"$out_of_gas_283": ; preds = %"$have_gas_279" - call void @_out_of_gas() - br label %"$have_gas_284" - -"$have_gas_284": ; preds = %"$out_of_gas_283", %"$have_gas_279" - %"$consume_285" = sub i64 %"$gasrem_281", 1 - store i64 %"$consume_285", i64* @_gasrem, align 8 - %"$msgobj_286_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_286_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_286_salloc_load", i64 121) - %"$msgobj_286_salloc" = bitcast i8* %"$msgobj_286_salloc_salloc" to [121 x i8]* - %"$msgobj_286" = bitcast [121 x i8]* %"$msgobj_286_salloc" to i8* - store i8 3, i8* %"$msgobj_286", align 1 - %"$msgobj_fname_288" = getelementptr i8, i8* %"$msgobj_286", i32 1 - %"$msgobj_fname_289" = bitcast i8* %"$msgobj_fname_288" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_287", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_289", align 8 - %"$msgobj_td_290" = getelementptr i8, i8* %"$msgobj_286", i32 17 - %"$msgobj_td_291" = bitcast i8* %"$msgobj_td_290" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ** %"$msgobj_td_291", align 8 - %"$msgobj_v_293" = getelementptr i8, i8* %"$msgobj_286", i32 25 - %"$msgobj_v_294" = bitcast i8* %"$msgobj_v_293" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_292", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_294", align 8 - %"$msgobj_fname_296" = getelementptr i8, i8* %"$msgobj_286", i32 41 - %"$msgobj_fname_297" = bitcast i8* %"$msgobj_fname_296" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_295", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_297", align 8 - %"$msgobj_td_298" = getelementptr i8, i8* %"$msgobj_286", i32 57 - %"$msgobj_td_299" = bitcast i8* %"$msgobj_td_298" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ** %"$msgobj_td_299", align 8 - %"$msgobj_v_300" = getelementptr i8, i8* %"$msgobj_286", i32 65 - %"$msgobj_v_301" = bitcast i8* %"$msgobj_v_300" to %String* - store %String %tname, %String* %"$msgobj_v_301", align 8 - %"$msgobj_fname_303" = getelementptr i8, i8* %"$msgobj_286", i32 81 - %"$msgobj_fname_304" = bitcast i8* %"$msgobj_fname_303" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_302", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_304", align 8 - %"$msgobj_td_305" = getelementptr i8, i8* %"$msgobj_286", i32 97 - %"$msgobj_td_306" = bitcast i8* %"$msgobj_td_305" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_50", %_TyDescrTy_Typ** %"$msgobj_td_306", align 8 - %"$msgobj_v_307" = getelementptr i8, i8* %"$msgobj_286", i32 105 - %"$msgobj_v_308" = bitcast i8* %"$msgobj_v_307" to %String* - store %String %msg, %String* %"$msgobj_v_308", align 8 - store i8* %"$msgobj_286", i8** %e, align 8 - %"$e_310" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_312" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_58", i8* %"$e_310") - %"$gasrem_313" = load i64, i64* @_gasrem, align 8 - %"$gascmp_314" = icmp ugt i64 %"$_literal_cost_call_312", %"$gasrem_313" - br i1 %"$gascmp_314", label %"$out_of_gas_315", label %"$have_gas_316" - -"$out_of_gas_315": ; preds = %"$have_gas_284" - call void @_out_of_gas() - br label %"$have_gas_316" - -"$have_gas_316": ; preds = %"$out_of_gas_315", %"$have_gas_284" - %"$consume_317" = sub i64 %"$gasrem_313", %"$_literal_cost_call_312" - store i64 %"$consume_317", i64* @_gasrem, align 8 - %"$execptr_load_318" = load i8*, i8** @_execptr, align 8 - %"$e_319" = load i8*, i8** %e, align 8 - call void @_throw(i8* %"$execptr_load_318", %_TyDescrTy_Typ* @"$TyDescr_Exception_58", i8* %"$e_319") + %"$gasrem_258" = load i64, i64* @_gasrem, align 8 + %"$gascmp_259" = icmp ugt i64 1, %"$gasrem_258" + br i1 %"$gascmp_259", label %"$out_of_gas_260", label %"$have_gas_261" + +"$out_of_gas_260": ; preds = %"$have_gas_256" + call void @_out_of_gas() + br label %"$have_gas_261" + +"$have_gas_261": ; preds = %"$out_of_gas_260", %"$have_gas_256" + %"$consume_262" = sub i64 %"$gasrem_258", 1 + store i64 %"$consume_262", i64* @_gasrem, align 8 + %"$msgobj_263_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_263_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_263_salloc_load", i64 121) + %"$msgobj_263_salloc" = bitcast i8* %"$msgobj_263_salloc_salloc" to [121 x i8]* + %"$msgobj_263" = bitcast [121 x i8]* %"$msgobj_263_salloc" to i8* + store i8 3, i8* %"$msgobj_263", align 1 + %"$msgobj_fname_265" = getelementptr i8, i8* %"$msgobj_263", i32 1 + %"$msgobj_fname_266" = bitcast i8* %"$msgobj_fname_265" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_264", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_266", align 8 + %"$msgobj_td_267" = getelementptr i8, i8* %"$msgobj_263", i32 17 + %"$msgobj_td_268" = bitcast i8* %"$msgobj_td_267" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ** %"$msgobj_td_268", align 8 + %"$msgobj_v_270" = getelementptr i8, i8* %"$msgobj_263", i32 25 + %"$msgobj_v_271" = bitcast i8* %"$msgobj_v_270" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_269", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_271", align 8 + %"$msgobj_fname_273" = getelementptr i8, i8* %"$msgobj_263", i32 41 + %"$msgobj_fname_274" = bitcast i8* %"$msgobj_fname_273" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_272", i32 0, i32 0), i32 9 }, %String* %"$msgobj_fname_274", align 8 + %"$msgobj_td_275" = getelementptr i8, i8* %"$msgobj_263", i32 57 + %"$msgobj_td_276" = bitcast i8* %"$msgobj_td_275" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ** %"$msgobj_td_276", align 8 + %"$msgobj_v_277" = getelementptr i8, i8* %"$msgobj_263", i32 65 + %"$msgobj_v_278" = bitcast i8* %"$msgobj_v_277" to %String* + store %String %tname, %String* %"$msgobj_v_278", align 8 + %"$msgobj_fname_280" = getelementptr i8, i8* %"$msgobj_263", i32 81 + %"$msgobj_fname_281" = bitcast i8* %"$msgobj_fname_280" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_279", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_281", align 8 + %"$msgobj_td_282" = getelementptr i8, i8* %"$msgobj_263", i32 97 + %"$msgobj_td_283" = bitcast i8* %"$msgobj_td_282" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ** %"$msgobj_td_283", align 8 + %"$msgobj_v_284" = getelementptr i8, i8* %"$msgobj_263", i32 105 + %"$msgobj_v_285" = bitcast i8* %"$msgobj_v_284" to %String* + store %String %msg, %String* %"$msgobj_v_285", align 8 + store i8* %"$msgobj_263", i8** %e, align 8 + %"$e_287" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_289" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Exception_50", i8* %"$e_287") + %"$gasrem_290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_291" = icmp ugt i64 %"$_literal_cost_call_289", %"$gasrem_290" + br i1 %"$gascmp_291", label %"$out_of_gas_292", label %"$have_gas_293" + +"$out_of_gas_292": ; preds = %"$have_gas_261" + call void @_out_of_gas() + br label %"$have_gas_293" + +"$have_gas_293": ; preds = %"$out_of_gas_292", %"$have_gas_261" + %"$consume_294" = sub i64 %"$gasrem_290", %"$_literal_cost_call_289" + store i64 %"$consume_294", i64* @_gasrem, align 8 + %"$execptr_load_295" = load i8*, i8** @_execptr, align 8 + %"$e_296" = load i8*, i8** %e, align 8 + call void @_throw(i8* %"$execptr_load_295", %_TyDescrTy_Typ* @"$TyDescr_Exception_50", i8* %"$e_296") ret void } -define internal void @"$t1_320"(%Uint128 %_amount, [20 x i8]* %"$_origin_321", [20 x i8]* %"$_sender_322") { +define internal void @"$t1_297"(%Uint128 %_amount, [20 x i8]* %"$_origin_298", [20 x i8]* %"$_sender_299") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_321", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_322", align 1 - %"$gasrem_323" = load i64, i64* @_gasrem, align 8 - %"$gascmp_324" = icmp ugt i64 1, %"$gasrem_323" - br i1 %"$gascmp_324", label %"$out_of_gas_325", label %"$have_gas_326" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_298", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_299", align 1 + %"$gasrem_300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_301" = icmp ugt i64 1, %"$gasrem_300" + br i1 %"$gascmp_301", label %"$out_of_gas_302", label %"$have_gas_303" -"$out_of_gas_325": ; preds = %entry +"$out_of_gas_302": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_326" + br label %"$have_gas_303" -"$have_gas_326": ; preds = %"$out_of_gas_325", %entry - %"$consume_327" = sub i64 %"$gasrem_323", 1 - store i64 %"$consume_327", i64* @_gasrem, align 8 +"$have_gas_303": ; preds = %"$out_of_gas_302", %entry + %"$consume_304" = sub i64 %"$gasrem_300", 1 + store i64 %"$consume_304", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_328" = load i64, i64* @_gasrem, align 8 - %"$gascmp_329" = icmp ugt i64 1, %"$gasrem_328" - br i1 %"$gascmp_329", label %"$out_of_gas_330", label %"$have_gas_331" + %"$gasrem_305" = load i64, i64* @_gasrem, align 8 + %"$gascmp_306" = icmp ugt i64 1, %"$gasrem_305" + br i1 %"$gascmp_306", label %"$out_of_gas_307", label %"$have_gas_308" -"$out_of_gas_330": ; preds = %"$have_gas_326" +"$out_of_gas_307": ; preds = %"$have_gas_303" call void @_out_of_gas() - br label %"$have_gas_331" + br label %"$have_gas_308" -"$have_gas_331": ; preds = %"$out_of_gas_330", %"$have_gas_326" - %"$consume_332" = sub i64 %"$gasrem_328", 1 - store i64 %"$consume_332", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_333", i32 0, i32 0), i32 2 }, %String* %tname, align 8 +"$have_gas_308": ; preds = %"$out_of_gas_307", %"$have_gas_303" + %"$consume_309" = sub i64 %"$gasrem_305", 1 + store i64 %"$consume_309", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_310", i32 0, i32 0), i32 2 }, %String* %tname, align 8 %f = alloca %String, align 8 - %"$execptr_load_335" = load i8*, i8** @_execptr, align 8 - %"$f_call_336" = call i8* @_fetch_field(i8* %"$execptr_load_335", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_334", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_50", i32 0, i8* null, i32 1) - %"$f_337" = bitcast i8* %"$f_call_336" to %String* - %"$f_338" = load %String, %String* %"$f_337", align 8 - store %String %"$f_338", %String* %f, align 8 - %"$_literal_cost_f_339" = alloca %String, align 8 - %"$f_340" = load %String, %String* %f, align 8 - store %String %"$f_340", %String* %"$_literal_cost_f_339", align 8 - %"$$_literal_cost_f_339_341" = bitcast %String* %"$_literal_cost_f_339" to i8* - %"$_literal_cost_call_342" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_f_339_341") - %"$gasadd_343" = add i64 %"$_literal_cost_call_342", 0 - %"$gasrem_344" = load i64, i64* @_gasrem, align 8 - %"$gascmp_345" = icmp ugt i64 %"$gasadd_343", %"$gasrem_344" - br i1 %"$gascmp_345", label %"$out_of_gas_346", label %"$have_gas_347" - -"$out_of_gas_346": ; preds = %"$have_gas_331" - call void @_out_of_gas() - br label %"$have_gas_347" - -"$have_gas_347": ; preds = %"$out_of_gas_346", %"$have_gas_331" - %"$consume_348" = sub i64 %"$gasrem_344", %"$gasadd_343" - store i64 %"$consume_348", i64* @_gasrem, align 8 - %"$gasrem_349" = load i64, i64* @_gasrem, align 8 - %"$gascmp_350" = icmp ugt i64 1, %"$gasrem_349" - br i1 %"$gascmp_350", label %"$out_of_gas_351", label %"$have_gas_352" - -"$out_of_gas_351": ; preds = %"$have_gas_347" - call void @_out_of_gas() - br label %"$have_gas_352" - -"$have_gas_352": ; preds = %"$out_of_gas_351", %"$have_gas_347" - %"$consume_353" = sub i64 %"$gasrem_349", 1 - store i64 %"$consume_353", i64* @_gasrem, align 8 + %"$execptr_load_312" = load i8*, i8** @_execptr, align 8 + %"$f_call_313" = call i8* @_fetch_field(i8* %"$execptr_load_312", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_311", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_42", i32 0, i8* null, i32 1) + %"$f_314" = bitcast i8* %"$f_call_313" to %String* + %"$f_315" = load %String, %String* %"$f_314", align 8 + store %String %"$f_315", %String* %f, align 8 + %"$_literal_cost_f_316" = alloca %String, align 8 + %"$f_317" = load %String, %String* %f, align 8 + store %String %"$f_317", %String* %"$_literal_cost_f_316", align 8 + %"$$_literal_cost_f_316_318" = bitcast %String* %"$_literal_cost_f_316" to i8* + %"$_literal_cost_call_319" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_f_316_318") + %"$gasadd_320" = add i64 %"$_literal_cost_call_319", 0 + %"$gasrem_321" = load i64, i64* @_gasrem, align 8 + %"$gascmp_322" = icmp ugt i64 %"$gasadd_320", %"$gasrem_321" + br i1 %"$gascmp_322", label %"$out_of_gas_323", label %"$have_gas_324" + +"$out_of_gas_323": ; preds = %"$have_gas_308" + call void @_out_of_gas() + br label %"$have_gas_324" + +"$have_gas_324": ; preds = %"$out_of_gas_323", %"$have_gas_308" + %"$consume_325" = sub i64 %"$gasrem_321", %"$gasadd_320" + store i64 %"$consume_325", i64* @_gasrem, align 8 + %"$gasrem_326" = load i64, i64* @_gasrem, align 8 + %"$gascmp_327" = icmp ugt i64 1, %"$gasrem_326" + br i1 %"$gascmp_327", label %"$out_of_gas_328", label %"$have_gas_329" + +"$out_of_gas_328": ; preds = %"$have_gas_324" + call void @_out_of_gas() + br label %"$have_gas_329" + +"$have_gas_329": ; preds = %"$out_of_gas_328", %"$have_gas_324" + %"$consume_330" = sub i64 %"$gasrem_326", 1 + store i64 %"$consume_330", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_354" = load i64, i64* @_gasrem, align 8 - %"$gascmp_355" = icmp ugt i64 1, %"$gasrem_354" - br i1 %"$gascmp_355", label %"$out_of_gas_356", label %"$have_gas_357" + %"$gasrem_331" = load i64, i64* @_gasrem, align 8 + %"$gascmp_332" = icmp ugt i64 1, %"$gasrem_331" + br i1 %"$gascmp_332", label %"$out_of_gas_333", label %"$have_gas_334" -"$out_of_gas_356": ; preds = %"$have_gas_352" +"$out_of_gas_333": ; preds = %"$have_gas_329" call void @_out_of_gas() - br label %"$have_gas_357" + br label %"$have_gas_334" -"$have_gas_357": ; preds = %"$out_of_gas_356", %"$have_gas_352" - %"$consume_358" = sub i64 %"$gasrem_354", 1 - store i64 %"$consume_358", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_359", i32 0, i32 0), i32 3 }, %String* %s, align 8 - %"$gasrem_360" = load i64, i64* @_gasrem, align 8 - %"$gascmp_361" = icmp ugt i64 1, %"$gasrem_360" - br i1 %"$gascmp_361", label %"$out_of_gas_362", label %"$have_gas_363" +"$have_gas_334": ; preds = %"$out_of_gas_333", %"$have_gas_329" + %"$consume_335" = sub i64 %"$gasrem_331", 1 + store i64 %"$consume_335", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_336", i32 0, i32 0), i32 3 }, %String* %s, align 8 + %"$gasrem_337" = load i64, i64* @_gasrem, align 8 + %"$gascmp_338" = icmp ugt i64 1, %"$gasrem_337" + br i1 %"$gascmp_338", label %"$out_of_gas_339", label %"$have_gas_340" -"$out_of_gas_362": ; preds = %"$have_gas_357" +"$out_of_gas_339": ; preds = %"$have_gas_334" call void @_out_of_gas() - br label %"$have_gas_363" + br label %"$have_gas_340" -"$have_gas_363": ; preds = %"$out_of_gas_362", %"$have_gas_357" - %"$consume_364" = sub i64 %"$gasrem_360", 1 - store i64 %"$consume_364", i64* @_gasrem, align 8 +"$have_gas_340": ; preds = %"$out_of_gas_339", %"$have_gas_334" + %"$consume_341" = sub i64 %"$gasrem_337", 1 + store i64 %"$consume_341", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_f_365" = alloca %String, align 8 - %"$f_366" = load %String, %String* %f, align 8 - store %String %"$f_366", %String* %"$_literal_cost_f_365", align 8 - %"$$_literal_cost_f_365_367" = bitcast %String* %"$_literal_cost_f_365" to i8* - %"$_literal_cost_call_368" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_f_365_367") - %"$_literal_cost_s_369" = alloca %String, align 8 - %"$s_370" = load %String, %String* %s, align 8 - store %String %"$s_370", %String* %"$_literal_cost_s_369", align 8 - %"$$_literal_cost_s_369_371" = bitcast %String* %"$_literal_cost_s_369" to i8* - %"$_literal_cost_call_372" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_369_371") - %"$gasmin_373" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_368", i64 %"$_literal_cost_call_372") - %"$gasrem_374" = load i64, i64* @_gasrem, align 8 - %"$gascmp_375" = icmp ugt i64 %"$gasmin_373", %"$gasrem_374" - br i1 %"$gascmp_375", label %"$out_of_gas_376", label %"$have_gas_377" - -"$out_of_gas_376": ; preds = %"$have_gas_363" - call void @_out_of_gas() - br label %"$have_gas_377" - -"$have_gas_377": ; preds = %"$out_of_gas_376", %"$have_gas_363" - %"$consume_378" = sub i64 %"$gasrem_374", %"$gasmin_373" - store i64 %"$consume_378", i64* @_gasrem, align 8 - %"$execptr_load_379" = load i8*, i8** @_execptr, align 8 - %"$f_380" = load %String, %String* %f, align 8 - %"$s_381" = load %String, %String* %s, align 8 - %"$eq_call_382" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_379", %String %"$f_380", %String %"$s_381") - store %TName_Bool* %"$eq_call_382", %TName_Bool** %t, align 8 - %"$gasrem_384" = load i64, i64* @_gasrem, align 8 - %"$gascmp_385" = icmp ugt i64 2, %"$gasrem_384" - br i1 %"$gascmp_385", label %"$out_of_gas_386", label %"$have_gas_387" - -"$out_of_gas_386": ; preds = %"$have_gas_377" - call void @_out_of_gas() - br label %"$have_gas_387" - -"$have_gas_387": ; preds = %"$out_of_gas_386", %"$have_gas_377" - %"$consume_388" = sub i64 %"$gasrem_384", 2 - store i64 %"$consume_388", i64* @_gasrem, align 8 - %"$t_390" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_391" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_390", i32 0, i32 0 - %"$t_tag_392" = load i8, i8* %"$t_tag_391", align 1 - switch i8 %"$t_tag_392", label %"$empty_default_393" [ - i8 1, label %"$False_394" - i8 0, label %"$True_404" + %"$_literal_cost_f_342" = alloca %String, align 8 + %"$f_343" = load %String, %String* %f, align 8 + store %String %"$f_343", %String* %"$_literal_cost_f_342", align 8 + %"$$_literal_cost_f_342_344" = bitcast %String* %"$_literal_cost_f_342" to i8* + %"$_literal_cost_call_345" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_f_342_344") + %"$_literal_cost_s_346" = alloca %String, align 8 + %"$s_347" = load %String, %String* %s, align 8 + store %String %"$s_347", %String* %"$_literal_cost_s_346", align 8 + %"$$_literal_cost_s_346_348" = bitcast %String* %"$_literal_cost_s_346" to i8* + %"$_literal_cost_call_349" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_346_348") + %"$gasmin_350" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_345", i64 %"$_literal_cost_call_349") + %"$gasrem_351" = load i64, i64* @_gasrem, align 8 + %"$gascmp_352" = icmp ugt i64 %"$gasmin_350", %"$gasrem_351" + br i1 %"$gascmp_352", label %"$out_of_gas_353", label %"$have_gas_354" + +"$out_of_gas_353": ; preds = %"$have_gas_340" + call void @_out_of_gas() + br label %"$have_gas_354" + +"$have_gas_354": ; preds = %"$out_of_gas_353", %"$have_gas_340" + %"$consume_355" = sub i64 %"$gasrem_351", %"$gasmin_350" + store i64 %"$consume_355", i64* @_gasrem, align 8 + %"$execptr_load_356" = load i8*, i8** @_execptr, align 8 + %"$f_357" = load %String, %String* %f, align 8 + %"$s_358" = load %String, %String* %s, align 8 + %"$eq_call_359" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_356", %String %"$f_357", %String %"$s_358") + store %TName_Bool* %"$eq_call_359", %TName_Bool** %t, align 8 + %"$gasrem_361" = load i64, i64* @_gasrem, align 8 + %"$gascmp_362" = icmp ugt i64 2, %"$gasrem_361" + br i1 %"$gascmp_362", label %"$out_of_gas_363", label %"$have_gas_364" + +"$out_of_gas_363": ; preds = %"$have_gas_354" + call void @_out_of_gas() + br label %"$have_gas_364" + +"$have_gas_364": ; preds = %"$out_of_gas_363", %"$have_gas_354" + %"$consume_365" = sub i64 %"$gasrem_361", 2 + store i64 %"$consume_365", i64* @_gasrem, align 8 + %"$t_367" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_368" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_367", i32 0, i32 0 + %"$t_tag_369" = load i8, i8* %"$t_tag_368", align 1 + switch i8 %"$t_tag_369", label %"$empty_default_370" [ + i8 1, label %"$False_371" + i8 0, label %"$True_381" ] -"$False_394": ; preds = %"$have_gas_387" - %"$t_395" = bitcast %TName_Bool* %"$t_390" to %CName_False* - %"$gasrem_396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_397" = icmp ugt i64 1, %"$gasrem_396" - br i1 %"$gascmp_397", label %"$out_of_gas_398", label %"$have_gas_399" +"$False_371": ; preds = %"$have_gas_364" + %"$t_372" = bitcast %TName_Bool* %"$t_367" to %CName_False* + %"$gasrem_373" = load i64, i64* @_gasrem, align 8 + %"$gascmp_374" = icmp ugt i64 1, %"$gasrem_373" + br i1 %"$gascmp_374", label %"$out_of_gas_375", label %"$have_gas_376" -"$out_of_gas_398": ; preds = %"$False_394" +"$out_of_gas_375": ; preds = %"$False_371" call void @_out_of_gas() - br label %"$have_gas_399" + br label %"$have_gas_376" -"$have_gas_399": ; preds = %"$out_of_gas_398", %"$False_394" - %"$consume_400" = sub i64 %"$gasrem_396", 1 - store i64 %"$consume_400", i64* @_gasrem, align 8 - %"$fail__origin_401" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_401", align 1 - %"$fail__sender_402" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_402", align 1 - %"$tname_403" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_401", [20 x i8]* %"$fail__sender_402", %String %"$tname_403") - br label %"$matchsucc_389" +"$have_gas_376": ; preds = %"$out_of_gas_375", %"$False_371" + %"$consume_377" = sub i64 %"$gasrem_373", 1 + store i64 %"$consume_377", i64* @_gasrem, align 8 + %"$fail__origin_378" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_378", align 1 + %"$fail__sender_379" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_379", align 1 + %"$tname_380" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_378", [20 x i8]* %"$fail__sender_379", %String %"$tname_380") + br label %"$matchsucc_366" -"$True_404": ; preds = %"$have_gas_387" - %"$t_405" = bitcast %TName_Bool* %"$t_390" to %CName_True* - br label %"$matchsucc_389" +"$True_381": ; preds = %"$have_gas_364" + %"$t_382" = bitcast %TName_Bool* %"$t_367" to %CName_True* + br label %"$matchsucc_366" -"$empty_default_393": ; preds = %"$have_gas_387" - br label %"$matchsucc_389" +"$empty_default_370": ; preds = %"$have_gas_364" + br label %"$matchsucc_366" -"$matchsucc_389": ; preds = %"$True_404", %"$have_gas_399", %"$empty_default_393" - %"$gasrem_406" = load i64, i64* @_gasrem, align 8 - %"$gascmp_407" = icmp ugt i64 1, %"$gasrem_406" - br i1 %"$gascmp_407", label %"$out_of_gas_408", label %"$have_gas_409" +"$matchsucc_366": ; preds = %"$True_381", %"$have_gas_376", %"$empty_default_370" + %"$gasrem_383" = load i64, i64* @_gasrem, align 8 + %"$gascmp_384" = icmp ugt i64 1, %"$gasrem_383" + br i1 %"$gascmp_384", label %"$out_of_gas_385", label %"$have_gas_386" -"$out_of_gas_408": ; preds = %"$matchsucc_389" +"$out_of_gas_385": ; preds = %"$matchsucc_366" call void @_out_of_gas() - br label %"$have_gas_409" + br label %"$have_gas_386" -"$have_gas_409": ; preds = %"$out_of_gas_408", %"$matchsucc_389" - %"$consume_410" = sub i64 %"$gasrem_406", 1 - store i64 %"$consume_410", i64* @_gasrem, align 8 +"$have_gas_386": ; preds = %"$out_of_gas_385", %"$matchsucc_366" + %"$consume_387" = sub i64 %"$gasrem_383", 1 + store i64 %"$consume_387", i64* @_gasrem, align 8 %s2 = alloca %String, align 8 - %"$gasrem_411" = load i64, i64* @_gasrem, align 8 - %"$gascmp_412" = icmp ugt i64 1, %"$gasrem_411" - br i1 %"$gascmp_412", label %"$out_of_gas_413", label %"$have_gas_414" - -"$out_of_gas_413": ; preds = %"$have_gas_409" - call void @_out_of_gas() - br label %"$have_gas_414" - -"$have_gas_414": ; preds = %"$out_of_gas_413", %"$have_gas_409" - %"$consume_415" = sub i64 %"$gasrem_411", 1 - store i64 %"$consume_415", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_416", i32 0, i32 0), i32 3 }, %String* %s2, align 8 - %"$_literal_cost_s2_417" = alloca %String, align 8 - %"$s2_418" = load %String, %String* %s2, align 8 - store %String %"$s2_418", %String* %"$_literal_cost_s2_417", align 8 - %"$$_literal_cost_s2_417_419" = bitcast %String* %"$_literal_cost_s2_417" to i8* - %"$_literal_cost_call_420" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s2_417_419") - %"$gasrem_421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_422" = icmp ugt i64 %"$_literal_cost_call_420", %"$gasrem_421" - br i1 %"$gascmp_422", label %"$out_of_gas_423", label %"$have_gas_424" - -"$out_of_gas_423": ; preds = %"$have_gas_414" - call void @_out_of_gas() - br label %"$have_gas_424" - -"$have_gas_424": ; preds = %"$out_of_gas_423", %"$have_gas_414" - %"$consume_425" = sub i64 %"$gasrem_421", %"$_literal_cost_call_420" - store i64 %"$consume_425", i64* @_gasrem, align 8 - %"$execptr_load_426" = load i8*, i8** @_execptr, align 8 - %"$s2_428" = load %String, %String* %s2, align 8 - %"$update_value_429" = alloca %String, align 8 - store %String %"$s2_428", %String* %"$update_value_429", align 8 - %"$update_value_430" = bitcast %String* %"$update_value_429" to i8* - call void @_update_field(i8* %"$execptr_load_426", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_427", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_50", i32 0, i8* null, i8* %"$update_value_430") + %"$gasrem_388" = load i64, i64* @_gasrem, align 8 + %"$gascmp_389" = icmp ugt i64 1, %"$gasrem_388" + br i1 %"$gascmp_389", label %"$out_of_gas_390", label %"$have_gas_391" + +"$out_of_gas_390": ; preds = %"$have_gas_386" + call void @_out_of_gas() + br label %"$have_gas_391" + +"$have_gas_391": ; preds = %"$out_of_gas_390", %"$have_gas_386" + %"$consume_392" = sub i64 %"$gasrem_388", 1 + store i64 %"$consume_392", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_393", i32 0, i32 0), i32 3 }, %String* %s2, align 8 + %"$_literal_cost_s2_394" = alloca %String, align 8 + %"$s2_395" = load %String, %String* %s2, align 8 + store %String %"$s2_395", %String* %"$_literal_cost_s2_394", align 8 + %"$$_literal_cost_s2_394_396" = bitcast %String* %"$_literal_cost_s2_394" to i8* + %"$_literal_cost_call_397" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s2_394_396") + %"$gasrem_398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_399" = icmp ugt i64 %"$_literal_cost_call_397", %"$gasrem_398" + br i1 %"$gascmp_399", label %"$out_of_gas_400", label %"$have_gas_401" + +"$out_of_gas_400": ; preds = %"$have_gas_391" + call void @_out_of_gas() + br label %"$have_gas_401" + +"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_391" + %"$consume_402" = sub i64 %"$gasrem_398", %"$_literal_cost_call_397" + store i64 %"$consume_402", i64* @_gasrem, align 8 + %"$execptr_load_403" = load i8*, i8** @_execptr, align 8 + %"$s2_405" = load %String, %String* %s2, align 8 + %"$update_value_406" = alloca %String, align 8 + store %String %"$s2_405", %String* %"$update_value_406", align 8 + %"$update_value_407" = bitcast %String* %"$update_value_406" to i8* + call void @_update_field(i8* %"$execptr_load_403", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_404", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_42", i32 0, i8* null, i8* %"$update_value_407") ret void } @@ -1012,340 +980,381 @@ declare %TName_Bool* @_eq_String(i8*, %String, %String) define void @t1(i8* %0) { entry: - %"$_amount_432" = getelementptr i8, i8* %0, i32 0 - %"$_amount_433" = bitcast i8* %"$_amount_432" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_433", align 8 - %"$_origin_434" = getelementptr i8, i8* %0, i32 16 - %"$_origin_435" = bitcast i8* %"$_origin_434" to [20 x i8]* - %"$_sender_436" = getelementptr i8, i8* %0, i32 36 - %"$_sender_437" = bitcast i8* %"$_sender_436" to [20 x i8]* - call void @"$t1_320"(%Uint128 %_amount, [20 x i8]* %"$_origin_435", [20 x i8]* %"$_sender_437") + %"$_amount_409" = getelementptr i8, i8* %0, i32 0 + %"$_amount_410" = bitcast i8* %"$_amount_409" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_410", align 8 + %"$_origin_411" = getelementptr i8, i8* %0, i32 16 + %"$_origin_412" = bitcast i8* %"$_origin_411" to [20 x i8]* + %"$_sender_413" = getelementptr i8, i8* %0, i32 36 + %"$_sender_414" = bitcast i8* %"$_sender_413" to [20 x i8]* + call void @"$t1_297"(%Uint128 %_amount, [20 x i8]* %"$_origin_412", [20 x i8]* %"$_sender_414") ret void } -define internal void @"$t2_438"(%Uint128 %_amount, [20 x i8]* %"$_origin_439", [20 x i8]* %"$_sender_440") { +define internal void @"$t2_415"(%Uint128 %_amount, [20 x i8]* %"$_origin_416", [20 x i8]* %"$_sender_417") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_439", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_440", align 1 - %"$gasrem_441" = load i64, i64* @_gasrem, align 8 - %"$gascmp_442" = icmp ugt i64 1, %"$gasrem_441" - br i1 %"$gascmp_442", label %"$out_of_gas_443", label %"$have_gas_444" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_416", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_417", align 1 + %"$gasrem_418" = load i64, i64* @_gasrem, align 8 + %"$gascmp_419" = icmp ugt i64 1, %"$gasrem_418" + br i1 %"$gascmp_419", label %"$out_of_gas_420", label %"$have_gas_421" -"$out_of_gas_443": ; preds = %entry +"$out_of_gas_420": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_444" + br label %"$have_gas_421" -"$have_gas_444": ; preds = %"$out_of_gas_443", %entry - %"$consume_445" = sub i64 %"$gasrem_441", 1 - store i64 %"$consume_445", i64* @_gasrem, align 8 +"$have_gas_421": ; preds = %"$out_of_gas_420", %entry + %"$consume_422" = sub i64 %"$gasrem_418", 1 + store i64 %"$consume_422", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_446" = load i64, i64* @_gasrem, align 8 - %"$gascmp_447" = icmp ugt i64 1, %"$gasrem_446" - br i1 %"$gascmp_447", label %"$out_of_gas_448", label %"$have_gas_449" + %"$gasrem_423" = load i64, i64* @_gasrem, align 8 + %"$gascmp_424" = icmp ugt i64 1, %"$gasrem_423" + br i1 %"$gascmp_424", label %"$out_of_gas_425", label %"$have_gas_426" -"$out_of_gas_448": ; preds = %"$have_gas_444" +"$out_of_gas_425": ; preds = %"$have_gas_421" call void @_out_of_gas() - br label %"$have_gas_449" + br label %"$have_gas_426" -"$have_gas_449": ; preds = %"$out_of_gas_448", %"$have_gas_444" - %"$consume_450" = sub i64 %"$gasrem_446", 1 - store i64 %"$consume_450", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_451", i32 0, i32 0), i32 2 }, %String* %tname, align 8 +"$have_gas_426": ; preds = %"$out_of_gas_425", %"$have_gas_421" + %"$consume_427" = sub i64 %"$gasrem_423", 1 + store i64 %"$consume_427", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_428", i32 0, i32 0), i32 2 }, %String* %tname, align 8 %f = alloca %String, align 8 - %"$execptr_load_453" = load i8*, i8** @_execptr, align 8 - %"$f_call_454" = call i8* @_fetch_field(i8* %"$execptr_load_453", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_452", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_50", i32 0, i8* null, i32 1) - %"$f_455" = bitcast i8* %"$f_call_454" to %String* - %"$f_456" = load %String, %String* %"$f_455", align 8 - store %String %"$f_456", %String* %f, align 8 - %"$_literal_cost_f_457" = alloca %String, align 8 - %"$f_458" = load %String, %String* %f, align 8 - store %String %"$f_458", %String* %"$_literal_cost_f_457", align 8 - %"$$_literal_cost_f_457_459" = bitcast %String* %"$_literal_cost_f_457" to i8* - %"$_literal_cost_call_460" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_f_457_459") - %"$gasadd_461" = add i64 %"$_literal_cost_call_460", 0 - %"$gasrem_462" = load i64, i64* @_gasrem, align 8 - %"$gascmp_463" = icmp ugt i64 %"$gasadd_461", %"$gasrem_462" - br i1 %"$gascmp_463", label %"$out_of_gas_464", label %"$have_gas_465" - -"$out_of_gas_464": ; preds = %"$have_gas_449" - call void @_out_of_gas() - br label %"$have_gas_465" - -"$have_gas_465": ; preds = %"$out_of_gas_464", %"$have_gas_449" - %"$consume_466" = sub i64 %"$gasrem_462", %"$gasadd_461" - store i64 %"$consume_466", i64* @_gasrem, align 8 - %"$gasrem_467" = load i64, i64* @_gasrem, align 8 - %"$gascmp_468" = icmp ugt i64 1, %"$gasrem_467" - br i1 %"$gascmp_468", label %"$out_of_gas_469", label %"$have_gas_470" - -"$out_of_gas_469": ; preds = %"$have_gas_465" - call void @_out_of_gas() - br label %"$have_gas_470" - -"$have_gas_470": ; preds = %"$out_of_gas_469", %"$have_gas_465" - %"$consume_471" = sub i64 %"$gasrem_467", 1 - store i64 %"$consume_471", i64* @_gasrem, align 8 + %"$execptr_load_430" = load i8*, i8** @_execptr, align 8 + %"$f_call_431" = call i8* @_fetch_field(i8* %"$execptr_load_430", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_s1_429", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_String_42", i32 0, i8* null, i32 1) + %"$f_432" = bitcast i8* %"$f_call_431" to %String* + %"$f_433" = load %String, %String* %"$f_432", align 8 + store %String %"$f_433", %String* %f, align 8 + %"$_literal_cost_f_434" = alloca %String, align 8 + %"$f_435" = load %String, %String* %f, align 8 + store %String %"$f_435", %String* %"$_literal_cost_f_434", align 8 + %"$$_literal_cost_f_434_436" = bitcast %String* %"$_literal_cost_f_434" to i8* + %"$_literal_cost_call_437" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_f_434_436") + %"$gasadd_438" = add i64 %"$_literal_cost_call_437", 0 + %"$gasrem_439" = load i64, i64* @_gasrem, align 8 + %"$gascmp_440" = icmp ugt i64 %"$gasadd_438", %"$gasrem_439" + br i1 %"$gascmp_440", label %"$out_of_gas_441", label %"$have_gas_442" + +"$out_of_gas_441": ; preds = %"$have_gas_426" + call void @_out_of_gas() + br label %"$have_gas_442" + +"$have_gas_442": ; preds = %"$out_of_gas_441", %"$have_gas_426" + %"$consume_443" = sub i64 %"$gasrem_439", %"$gasadd_438" + store i64 %"$consume_443", i64* @_gasrem, align 8 + %"$gasrem_444" = load i64, i64* @_gasrem, align 8 + %"$gascmp_445" = icmp ugt i64 1, %"$gasrem_444" + br i1 %"$gascmp_445", label %"$out_of_gas_446", label %"$have_gas_447" + +"$out_of_gas_446": ; preds = %"$have_gas_442" + call void @_out_of_gas() + br label %"$have_gas_447" + +"$have_gas_447": ; preds = %"$out_of_gas_446", %"$have_gas_442" + %"$consume_448" = sub i64 %"$gasrem_444", 1 + store i64 %"$consume_448", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_472" = load i64, i64* @_gasrem, align 8 - %"$gascmp_473" = icmp ugt i64 1, %"$gasrem_472" - br i1 %"$gascmp_473", label %"$out_of_gas_474", label %"$have_gas_475" + %"$gasrem_449" = load i64, i64* @_gasrem, align 8 + %"$gascmp_450" = icmp ugt i64 1, %"$gasrem_449" + br i1 %"$gascmp_450", label %"$out_of_gas_451", label %"$have_gas_452" -"$out_of_gas_474": ; preds = %"$have_gas_470" +"$out_of_gas_451": ; preds = %"$have_gas_447" call void @_out_of_gas() - br label %"$have_gas_475" + br label %"$have_gas_452" -"$have_gas_475": ; preds = %"$out_of_gas_474", %"$have_gas_470" - %"$consume_476" = sub i64 %"$gasrem_472", 1 - store i64 %"$consume_476", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_477", i32 0, i32 0), i32 3 }, %String* %s, align 8 - %"$gasrem_478" = load i64, i64* @_gasrem, align 8 - %"$gascmp_479" = icmp ugt i64 1, %"$gasrem_478" - br i1 %"$gascmp_479", label %"$out_of_gas_480", label %"$have_gas_481" +"$have_gas_452": ; preds = %"$out_of_gas_451", %"$have_gas_447" + %"$consume_453" = sub i64 %"$gasrem_449", 1 + store i64 %"$consume_453", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_454", i32 0, i32 0), i32 3 }, %String* %s, align 8 + %"$gasrem_455" = load i64, i64* @_gasrem, align 8 + %"$gascmp_456" = icmp ugt i64 1, %"$gasrem_455" + br i1 %"$gascmp_456", label %"$out_of_gas_457", label %"$have_gas_458" -"$out_of_gas_480": ; preds = %"$have_gas_475" +"$out_of_gas_457": ; preds = %"$have_gas_452" call void @_out_of_gas() - br label %"$have_gas_481" + br label %"$have_gas_458" -"$have_gas_481": ; preds = %"$out_of_gas_480", %"$have_gas_475" - %"$consume_482" = sub i64 %"$gasrem_478", 1 - store i64 %"$consume_482", i64* @_gasrem, align 8 +"$have_gas_458": ; preds = %"$out_of_gas_457", %"$have_gas_452" + %"$consume_459" = sub i64 %"$gasrem_455", 1 + store i64 %"$consume_459", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_f_483" = alloca %String, align 8 - %"$f_484" = load %String, %String* %f, align 8 - store %String %"$f_484", %String* %"$_literal_cost_f_483", align 8 - %"$$_literal_cost_f_483_485" = bitcast %String* %"$_literal_cost_f_483" to i8* - %"$_literal_cost_call_486" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_f_483_485") - %"$_literal_cost_s_487" = alloca %String, align 8 - %"$s_488" = load %String, %String* %s, align 8 - store %String %"$s_488", %String* %"$_literal_cost_s_487", align 8 - %"$$_literal_cost_s_487_489" = bitcast %String* %"$_literal_cost_s_487" to i8* - %"$_literal_cost_call_490" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_487_489") - %"$gasmin_491" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_486", i64 %"$_literal_cost_call_490") - %"$gasrem_492" = load i64, i64* @_gasrem, align 8 - %"$gascmp_493" = icmp ugt i64 %"$gasmin_491", %"$gasrem_492" - br i1 %"$gascmp_493", label %"$out_of_gas_494", label %"$have_gas_495" - -"$out_of_gas_494": ; preds = %"$have_gas_481" - call void @_out_of_gas() - br label %"$have_gas_495" - -"$have_gas_495": ; preds = %"$out_of_gas_494", %"$have_gas_481" - %"$consume_496" = sub i64 %"$gasrem_492", %"$gasmin_491" - store i64 %"$consume_496", i64* @_gasrem, align 8 - %"$execptr_load_497" = load i8*, i8** @_execptr, align 8 - %"$f_498" = load %String, %String* %f, align 8 - %"$s_499" = load %String, %String* %s, align 8 - %"$eq_call_500" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_497", %String %"$f_498", %String %"$s_499") - store %TName_Bool* %"$eq_call_500", %TName_Bool** %t, align 8 - %"$gasrem_502" = load i64, i64* @_gasrem, align 8 - %"$gascmp_503" = icmp ugt i64 2, %"$gasrem_502" - br i1 %"$gascmp_503", label %"$out_of_gas_504", label %"$have_gas_505" - -"$out_of_gas_504": ; preds = %"$have_gas_495" - call void @_out_of_gas() - br label %"$have_gas_505" - -"$have_gas_505": ; preds = %"$out_of_gas_504", %"$have_gas_495" - %"$consume_506" = sub i64 %"$gasrem_502", 2 - store i64 %"$consume_506", i64* @_gasrem, align 8 - %"$t_508" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_509" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_508", i32 0, i32 0 - %"$t_tag_510" = load i8, i8* %"$t_tag_509", align 1 - switch i8 %"$t_tag_510", label %"$empty_default_511" [ - i8 1, label %"$False_512" - i8 0, label %"$True_522" + %"$_literal_cost_f_460" = alloca %String, align 8 + %"$f_461" = load %String, %String* %f, align 8 + store %String %"$f_461", %String* %"$_literal_cost_f_460", align 8 + %"$$_literal_cost_f_460_462" = bitcast %String* %"$_literal_cost_f_460" to i8* + %"$_literal_cost_call_463" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_f_460_462") + %"$_literal_cost_s_464" = alloca %String, align 8 + %"$s_465" = load %String, %String* %s, align 8 + store %String %"$s_465", %String* %"$_literal_cost_s_464", align 8 + %"$$_literal_cost_s_464_466" = bitcast %String* %"$_literal_cost_s_464" to i8* + %"$_literal_cost_call_467" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_464_466") + %"$gasmin_468" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_463", i64 %"$_literal_cost_call_467") + %"$gasrem_469" = load i64, i64* @_gasrem, align 8 + %"$gascmp_470" = icmp ugt i64 %"$gasmin_468", %"$gasrem_469" + br i1 %"$gascmp_470", label %"$out_of_gas_471", label %"$have_gas_472" + +"$out_of_gas_471": ; preds = %"$have_gas_458" + call void @_out_of_gas() + br label %"$have_gas_472" + +"$have_gas_472": ; preds = %"$out_of_gas_471", %"$have_gas_458" + %"$consume_473" = sub i64 %"$gasrem_469", %"$gasmin_468" + store i64 %"$consume_473", i64* @_gasrem, align 8 + %"$execptr_load_474" = load i8*, i8** @_execptr, align 8 + %"$f_475" = load %String, %String* %f, align 8 + %"$s_476" = load %String, %String* %s, align 8 + %"$eq_call_477" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_474", %String %"$f_475", %String %"$s_476") + store %TName_Bool* %"$eq_call_477", %TName_Bool** %t, align 8 + %"$gasrem_479" = load i64, i64* @_gasrem, align 8 + %"$gascmp_480" = icmp ugt i64 2, %"$gasrem_479" + br i1 %"$gascmp_480", label %"$out_of_gas_481", label %"$have_gas_482" + +"$out_of_gas_481": ; preds = %"$have_gas_472" + call void @_out_of_gas() + br label %"$have_gas_482" + +"$have_gas_482": ; preds = %"$out_of_gas_481", %"$have_gas_472" + %"$consume_483" = sub i64 %"$gasrem_479", 2 + store i64 %"$consume_483", i64* @_gasrem, align 8 + %"$t_485" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_486" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_485", i32 0, i32 0 + %"$t_tag_487" = load i8, i8* %"$t_tag_486", align 1 + switch i8 %"$t_tag_487", label %"$empty_default_488" [ + i8 1, label %"$False_489" + i8 0, label %"$True_499" ] -"$False_512": ; preds = %"$have_gas_505" - %"$t_513" = bitcast %TName_Bool* %"$t_508" to %CName_False* - %"$gasrem_514" = load i64, i64* @_gasrem, align 8 - %"$gascmp_515" = icmp ugt i64 1, %"$gasrem_514" - br i1 %"$gascmp_515", label %"$out_of_gas_516", label %"$have_gas_517" +"$False_489": ; preds = %"$have_gas_482" + %"$t_490" = bitcast %TName_Bool* %"$t_485" to %CName_False* + %"$gasrem_491" = load i64, i64* @_gasrem, align 8 + %"$gascmp_492" = icmp ugt i64 1, %"$gasrem_491" + br i1 %"$gascmp_492", label %"$out_of_gas_493", label %"$have_gas_494" -"$out_of_gas_516": ; preds = %"$False_512" +"$out_of_gas_493": ; preds = %"$False_489" call void @_out_of_gas() - br label %"$have_gas_517" + br label %"$have_gas_494" -"$have_gas_517": ; preds = %"$out_of_gas_516", %"$False_512" - %"$consume_518" = sub i64 %"$gasrem_514", 1 - store i64 %"$consume_518", i64* @_gasrem, align 8 - %"$fail__origin_519" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_519", align 1 - %"$fail__sender_520" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_520", align 1 - %"$tname_521" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_519", [20 x i8]* %"$fail__sender_520", %String %"$tname_521") - br label %"$matchsucc_507" +"$have_gas_494": ; preds = %"$out_of_gas_493", %"$False_489" + %"$consume_495" = sub i64 %"$gasrem_491", 1 + store i64 %"$consume_495", i64* @_gasrem, align 8 + %"$fail__origin_496" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_496", align 1 + %"$fail__sender_497" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_497", align 1 + %"$tname_498" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_496", [20 x i8]* %"$fail__sender_497", %String %"$tname_498") + br label %"$matchsucc_484" -"$True_522": ; preds = %"$have_gas_505" - %"$t_523" = bitcast %TName_Bool* %"$t_508" to %CName_True* - br label %"$matchsucc_507" +"$True_499": ; preds = %"$have_gas_482" + %"$t_500" = bitcast %TName_Bool* %"$t_485" to %CName_True* + br label %"$matchsucc_484" -"$empty_default_511": ; preds = %"$have_gas_505" - br label %"$matchsucc_507" +"$empty_default_488": ; preds = %"$have_gas_482" + br label %"$matchsucc_484" -"$matchsucc_507": ; preds = %"$True_522", %"$have_gas_517", %"$empty_default_511" - %"$gasrem_524" = load i64, i64* @_gasrem, align 8 - %"$gascmp_525" = icmp ugt i64 1, %"$gasrem_524" - br i1 %"$gascmp_525", label %"$out_of_gas_526", label %"$have_gas_527" +"$matchsucc_484": ; preds = %"$True_499", %"$have_gas_494", %"$empty_default_488" + %"$gasrem_501" = load i64, i64* @_gasrem, align 8 + %"$gascmp_502" = icmp ugt i64 1, %"$gasrem_501" + br i1 %"$gascmp_502", label %"$out_of_gas_503", label %"$have_gas_504" -"$out_of_gas_526": ; preds = %"$matchsucc_507" +"$out_of_gas_503": ; preds = %"$matchsucc_484" call void @_out_of_gas() - br label %"$have_gas_527" + br label %"$have_gas_504" -"$have_gas_527": ; preds = %"$out_of_gas_526", %"$matchsucc_507" - %"$consume_528" = sub i64 %"$gasrem_524", 1 - store i64 %"$consume_528", i64* @_gasrem, align 8 +"$have_gas_504": ; preds = %"$out_of_gas_503", %"$matchsucc_484" + %"$consume_505" = sub i64 %"$gasrem_501", 1 + store i64 %"$consume_505", i64* @_gasrem, align 8 %key1 = alloca %String, align 8 - %"$gasrem_529" = load i64, i64* @_gasrem, align 8 - %"$gascmp_530" = icmp ugt i64 1, %"$gasrem_529" - br i1 %"$gascmp_530", label %"$out_of_gas_531", label %"$have_gas_532" + %"$gasrem_506" = load i64, i64* @_gasrem, align 8 + %"$gascmp_507" = icmp ugt i64 1, %"$gasrem_506" + br i1 %"$gascmp_507", label %"$out_of_gas_508", label %"$have_gas_509" -"$out_of_gas_531": ; preds = %"$have_gas_527" +"$out_of_gas_508": ; preds = %"$have_gas_504" call void @_out_of_gas() - br label %"$have_gas_532" + br label %"$have_gas_509" -"$have_gas_532": ; preds = %"$out_of_gas_531", %"$have_gas_527" - %"$consume_533" = sub i64 %"$gasrem_529", 1 - store i64 %"$consume_533", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_534", i32 0, i32 0), i32 4 }, %String* %key1, align 8 - %"$gasrem_535" = load i64, i64* @_gasrem, align 8 - %"$gascmp_536" = icmp ugt i64 1, %"$gasrem_535" - br i1 %"$gascmp_536", label %"$out_of_gas_537", label %"$have_gas_538" +"$have_gas_509": ; preds = %"$out_of_gas_508", %"$have_gas_504" + %"$consume_510" = sub i64 %"$gasrem_506", 1 + store i64 %"$consume_510", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_511", i32 0, i32 0), i32 4 }, %String* %key1, align 8 + %"$gasrem_512" = load i64, i64* @_gasrem, align 8 + %"$gascmp_513" = icmp ugt i64 1, %"$gasrem_512" + br i1 %"$gascmp_513", label %"$out_of_gas_514", label %"$have_gas_515" -"$out_of_gas_537": ; preds = %"$have_gas_532" +"$out_of_gas_514": ; preds = %"$have_gas_509" call void @_out_of_gas() - br label %"$have_gas_538" + br label %"$have_gas_515" -"$have_gas_538": ; preds = %"$out_of_gas_537", %"$have_gas_532" - %"$consume_539" = sub i64 %"$gasrem_535", 1 - store i64 %"$consume_539", i64* @_gasrem, align 8 +"$have_gas_515": ; preds = %"$out_of_gas_514", %"$have_gas_509" + %"$consume_516" = sub i64 %"$gasrem_512", 1 + store i64 %"$consume_516", i64* @_gasrem, align 8 %val1 = alloca %String, align 8 - %"$gasrem_540" = load i64, i64* @_gasrem, align 8 - %"$gascmp_541" = icmp ugt i64 1, %"$gasrem_540" - br i1 %"$gascmp_541", label %"$out_of_gas_542", label %"$have_gas_543" - -"$out_of_gas_542": ; preds = %"$have_gas_538" - call void @_out_of_gas() - br label %"$have_gas_543" - -"$have_gas_543": ; preds = %"$out_of_gas_542", %"$have_gas_538" - %"$consume_544" = sub i64 %"$gasrem_540", 1 - store i64 %"$consume_544", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_545", i32 0, i32 0), i32 3 }, %String* %val1, align 8 - %"$_literal_cost_val1_546" = alloca %String, align 8 - %"$val1_547" = load %String, %String* %val1, align 8 - store %String %"$val1_547", %String* %"$_literal_cost_val1_546", align 8 - %"$$_literal_cost_val1_546_548" = bitcast %String* %"$_literal_cost_val1_546" to i8* - %"$_literal_cost_call_549" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_val1_546_548") - %"$gasadd_550" = add i64 %"$_literal_cost_call_549", 1 - %"$gasrem_551" = load i64, i64* @_gasrem, align 8 - %"$gascmp_552" = icmp ugt i64 %"$gasadd_550", %"$gasrem_551" - br i1 %"$gascmp_552", label %"$out_of_gas_553", label %"$have_gas_554" - -"$out_of_gas_553": ; preds = %"$have_gas_543" - call void @_out_of_gas() - br label %"$have_gas_554" - -"$have_gas_554": ; preds = %"$out_of_gas_553", %"$have_gas_543" - %"$consume_555" = sub i64 %"$gasrem_551", %"$gasadd_550" - store i64 %"$consume_555", i64* @_gasrem, align 8 - %"$indices_buf_556_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_556_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_556_salloc_load", i64 16) - %"$indices_buf_556_salloc" = bitcast i8* %"$indices_buf_556_salloc_salloc" to [16 x i8]* - %"$indices_buf_556" = bitcast [16 x i8]* %"$indices_buf_556_salloc" to i8* - %"$key1_557" = load %String, %String* %key1, align 8 - %"$indices_gep_558" = getelementptr i8, i8* %"$indices_buf_556", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_558" to %String* - store %String %"$key1_557", %String* %indices_cast, align 8 - %"$execptr_load_559" = load i8*, i8** @_execptr, align 8 - %"$val1_561" = load %String, %String* %val1, align 8 - %"$update_value_562" = alloca %String, align 8 - store %String %"$val1_561", %String* %"$update_value_562", align 8 - %"$update_value_563" = bitcast %String* %"$update_value_562" to i8* - call void @_update_field(i8* %"$execptr_load_559", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_560", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_556", i8* %"$update_value_563") + %"$gasrem_517" = load i64, i64* @_gasrem, align 8 + %"$gascmp_518" = icmp ugt i64 1, %"$gasrem_517" + br i1 %"$gascmp_518", label %"$out_of_gas_519", label %"$have_gas_520" + +"$out_of_gas_519": ; preds = %"$have_gas_515" + call void @_out_of_gas() + br label %"$have_gas_520" + +"$have_gas_520": ; preds = %"$out_of_gas_519", %"$have_gas_515" + %"$consume_521" = sub i64 %"$gasrem_517", 1 + store i64 %"$consume_521", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_522", i32 0, i32 0), i32 3 }, %String* %val1, align 8 + %"$_literal_cost_val1_523" = alloca %String, align 8 + %"$val1_524" = load %String, %String* %val1, align 8 + store %String %"$val1_524", %String* %"$_literal_cost_val1_523", align 8 + %"$$_literal_cost_val1_523_525" = bitcast %String* %"$_literal_cost_val1_523" to i8* + %"$_literal_cost_call_526" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_val1_523_525") + %"$gasadd_527" = add i64 %"$_literal_cost_call_526", 1 + %"$gasrem_528" = load i64, i64* @_gasrem, align 8 + %"$gascmp_529" = icmp ugt i64 %"$gasadd_527", %"$gasrem_528" + br i1 %"$gascmp_529", label %"$out_of_gas_530", label %"$have_gas_531" + +"$out_of_gas_530": ; preds = %"$have_gas_520" + call void @_out_of_gas() + br label %"$have_gas_531" + +"$have_gas_531": ; preds = %"$out_of_gas_530", %"$have_gas_520" + %"$consume_532" = sub i64 %"$gasrem_528", %"$gasadd_527" + store i64 %"$consume_532", i64* @_gasrem, align 8 + %"$indices_buf_533_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_533_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_533_salloc_load", i64 16) + %"$indices_buf_533_salloc" = bitcast i8* %"$indices_buf_533_salloc_salloc" to [16 x i8]* + %"$indices_buf_533" = bitcast [16 x i8]* %"$indices_buf_533_salloc" to i8* + %"$key1_534" = load %String, %String* %key1, align 8 + %"$indices_gep_535" = getelementptr i8, i8* %"$indices_buf_533", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_535" to %String* + store %String %"$key1_534", %String* %indices_cast, align 8 + %"$execptr_load_536" = load i8*, i8** @_execptr, align 8 + %"$val1_538" = load %String, %String* %val1, align 8 + %"$update_value_539" = alloca %String, align 8 + store %String %"$val1_538", %String* %"$update_value_539", align 8 + %"$update_value_540" = bitcast %String* %"$update_value_539" to i8* + call void @_update_field(i8* %"$execptr_load_536", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_537", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_533", i8* %"$update_value_540") ret void } define void @t2(i8* %0) { entry: - %"$_amount_565" = getelementptr i8, i8* %0, i32 0 - %"$_amount_566" = bitcast i8* %"$_amount_565" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_566", align 8 - %"$_origin_567" = getelementptr i8, i8* %0, i32 16 - %"$_origin_568" = bitcast i8* %"$_origin_567" to [20 x i8]* - %"$_sender_569" = getelementptr i8, i8* %0, i32 36 - %"$_sender_570" = bitcast i8* %"$_sender_569" to [20 x i8]* - call void @"$t2_438"(%Uint128 %_amount, [20 x i8]* %"$_origin_568", [20 x i8]* %"$_sender_570") + %"$_amount_542" = getelementptr i8, i8* %0, i32 0 + %"$_amount_543" = bitcast i8* %"$_amount_542" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_543", align 8 + %"$_origin_544" = getelementptr i8, i8* %0, i32 16 + %"$_origin_545" = bitcast i8* %"$_origin_544" to [20 x i8]* + %"$_sender_546" = getelementptr i8, i8* %0, i32 36 + %"$_sender_547" = bitcast i8* %"$_sender_546" to [20 x i8]* + call void @"$t2_415"(%Uint128 %_amount, [20 x i8]* %"$_origin_545", [20 x i8]* %"$_sender_547") ret void } -define internal void @"$t3_571"(%Uint128 %_amount, [20 x i8]* %"$_origin_572", [20 x i8]* %"$_sender_573") { +define internal void @"$t3_548"(%Uint128 %_amount, [20 x i8]* %"$_origin_549", [20 x i8]* %"$_sender_550") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_572", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_573", align 1 - %"$gasrem_574" = load i64, i64* @_gasrem, align 8 - %"$gascmp_575" = icmp ugt i64 1, %"$gasrem_574" - br i1 %"$gascmp_575", label %"$out_of_gas_576", label %"$have_gas_577" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_549", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_550", align 1 + %"$gasrem_551" = load i64, i64* @_gasrem, align 8 + %"$gascmp_552" = icmp ugt i64 1, %"$gasrem_551" + br i1 %"$gascmp_552", label %"$out_of_gas_553", label %"$have_gas_554" -"$out_of_gas_576": ; preds = %entry +"$out_of_gas_553": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_577" + br label %"$have_gas_554" -"$have_gas_577": ; preds = %"$out_of_gas_576", %entry - %"$consume_578" = sub i64 %"$gasrem_574", 1 - store i64 %"$consume_578", i64* @_gasrem, align 8 +"$have_gas_554": ; preds = %"$out_of_gas_553", %entry + %"$consume_555" = sub i64 %"$gasrem_551", 1 + store i64 %"$consume_555", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_579" = load i64, i64* @_gasrem, align 8 - %"$gascmp_580" = icmp ugt i64 1, %"$gasrem_579" - br i1 %"$gascmp_580", label %"$out_of_gas_581", label %"$have_gas_582" + %"$gasrem_556" = load i64, i64* @_gasrem, align 8 + %"$gascmp_557" = icmp ugt i64 1, %"$gasrem_556" + br i1 %"$gascmp_557", label %"$out_of_gas_558", label %"$have_gas_559" -"$out_of_gas_581": ; preds = %"$have_gas_577" +"$out_of_gas_558": ; preds = %"$have_gas_554" call void @_out_of_gas() - br label %"$have_gas_582" + br label %"$have_gas_559" -"$have_gas_582": ; preds = %"$out_of_gas_581", %"$have_gas_577" - %"$consume_583" = sub i64 %"$gasrem_579", 1 - store i64 %"$consume_583", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_584", i32 0, i32 0), i32 2 }, %String* %tname, align 8 - %"$gasrem_585" = load i64, i64* @_gasrem, align 8 - %"$gascmp_586" = icmp ugt i64 1, %"$gasrem_585" - br i1 %"$gascmp_586", label %"$out_of_gas_587", label %"$have_gas_588" +"$have_gas_559": ; preds = %"$out_of_gas_558", %"$have_gas_554" + %"$consume_560" = sub i64 %"$gasrem_556", 1 + store i64 %"$consume_560", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_561", i32 0, i32 0), i32 2 }, %String* %tname, align 8 + %"$gasrem_562" = load i64, i64* @_gasrem, align 8 + %"$gascmp_563" = icmp ugt i64 1, %"$gasrem_562" + br i1 %"$gascmp_563", label %"$out_of_gas_564", label %"$have_gas_565" -"$out_of_gas_587": ; preds = %"$have_gas_582" +"$out_of_gas_564": ; preds = %"$have_gas_559" call void @_out_of_gas() - br label %"$have_gas_588" + br label %"$have_gas_565" -"$have_gas_588": ; preds = %"$out_of_gas_587", %"$have_gas_582" - %"$consume_589" = sub i64 %"$gasrem_585", 1 - store i64 %"$consume_589", i64* @_gasrem, align 8 +"$have_gas_565": ; preds = %"$out_of_gas_564", %"$have_gas_559" + %"$consume_566" = sub i64 %"$gasrem_562", 1 + store i64 %"$consume_566", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_590" = load i64, i64* @_gasrem, align 8 - %"$gascmp_591" = icmp ugt i64 1, %"$gasrem_590" - br i1 %"$gascmp_591", label %"$out_of_gas_592", label %"$have_gas_593" + %"$gasrem_567" = load i64, i64* @_gasrem, align 8 + %"$gascmp_568" = icmp ugt i64 1, %"$gasrem_567" + br i1 %"$gascmp_568", label %"$out_of_gas_569", label %"$have_gas_570" + +"$out_of_gas_569": ; preds = %"$have_gas_565" + call void @_out_of_gas() + br label %"$have_gas_570" + +"$have_gas_570": ; preds = %"$out_of_gas_569", %"$have_gas_565" + %"$consume_571" = sub i64 %"$gasrem_567", 1 + store i64 %"$consume_571", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_572", i32 0, i32 0), i32 3 }, %String* %s, align 8 + %"$gasrem_573" = load i64, i64* @_gasrem, align 8 + %"$gascmp_574" = icmp ugt i64 1, %"$gasrem_573" + br i1 %"$gascmp_574", label %"$out_of_gas_575", label %"$have_gas_576" -"$out_of_gas_592": ; preds = %"$have_gas_588" +"$out_of_gas_575": ; preds = %"$have_gas_570" call void @_out_of_gas() - br label %"$have_gas_593" + br label %"$have_gas_576" -"$have_gas_593": ; preds = %"$out_of_gas_592", %"$have_gas_588" - %"$consume_594" = sub i64 %"$gasrem_590", 1 - store i64 %"$consume_594", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_595", i32 0, i32 0), i32 3 }, %String* %s, align 8 +"$have_gas_576": ; preds = %"$out_of_gas_575", %"$have_gas_570" + %"$consume_577" = sub i64 %"$gasrem_573", 1 + store i64 %"$consume_577", i64* @_gasrem, align 8 + %key1 = alloca %String, align 8 + %"$gasrem_578" = load i64, i64* @_gasrem, align 8 + %"$gascmp_579" = icmp ugt i64 1, %"$gasrem_578" + br i1 %"$gascmp_579", label %"$out_of_gas_580", label %"$have_gas_581" + +"$out_of_gas_580": ; preds = %"$have_gas_576" + call void @_out_of_gas() + br label %"$have_gas_581" + +"$have_gas_581": ; preds = %"$out_of_gas_580", %"$have_gas_576" + %"$consume_582" = sub i64 %"$gasrem_578", 1 + store i64 %"$consume_582", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_583", i32 0, i32 0), i32 4 }, %String* %key1, align 8 + %val1 = alloca %TName_Option_String*, align 8 + %"$indices_buf_584_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_584_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_584_salloc_load", i64 16) + %"$indices_buf_584_salloc" = bitcast i8* %"$indices_buf_584_salloc_salloc" to [16 x i8]* + %"$indices_buf_584" = bitcast [16 x i8]* %"$indices_buf_584_salloc" to i8* + %"$key1_585" = load %String, %String* %key1, align 8 + %"$indices_gep_586" = getelementptr i8, i8* %"$indices_buf_584", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_586" to %String* + store %String %"$key1_585", %String* %indices_cast, align 8 + %"$execptr_load_588" = load i8*, i8** @_execptr, align 8 + %"$val1_call_589" = call i8* @_fetch_field(i8* %"$execptr_load_588", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_587", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_584", i32 1) + %"$val1_590" = bitcast i8* %"$val1_call_589" to %TName_Option_String* + store %TName_Option_String* %"$val1_590", %TName_Option_String** %val1, align 8 + %"$val1_591" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 + %"$$val1_591_592" = bitcast %TName_Option_String* %"$val1_591" to i8* + %"$_literal_cost_call_593" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$val1_591_592") + %"$gasadd_594" = add i64 %"$_literal_cost_call_593", 0 + %"$gasadd_595" = add i64 %"$gasadd_594", 1 %"$gasrem_596" = load i64, i64* @_gasrem, align 8 - %"$gascmp_597" = icmp ugt i64 1, %"$gasrem_596" + %"$gascmp_597" = icmp ugt i64 %"$gasadd_595", %"$gasrem_596" br i1 %"$gascmp_597", label %"$out_of_gas_598", label %"$have_gas_599" -"$out_of_gas_598": ; preds = %"$have_gas_593" +"$out_of_gas_598": ; preds = %"$have_gas_581" call void @_out_of_gas() br label %"$have_gas_599" -"$have_gas_599": ; preds = %"$out_of_gas_598", %"$have_gas_593" - %"$consume_600" = sub i64 %"$gasrem_596", 1 +"$have_gas_599": ; preds = %"$out_of_gas_598", %"$have_gas_581" + %"$consume_600" = sub i64 %"$gasrem_596", %"$gasadd_595" store i64 %"$consume_600", i64* @_gasrem, align 8 - %key1 = alloca %String, align 8 %"$gasrem_601" = load i64, i64* @_gasrem, align 8 - %"$gascmp_602" = icmp ugt i64 1, %"$gasrem_601" + %"$gascmp_602" = icmp ugt i64 2, %"$gasrem_601" br i1 %"$gascmp_602", label %"$out_of_gas_603", label %"$have_gas_604" "$out_of_gas_603": ; preds = %"$have_gas_599" @@ -1353,216 +1362,216 @@ entry: br label %"$have_gas_604" "$have_gas_604": ; preds = %"$out_of_gas_603", %"$have_gas_599" - %"$consume_605" = sub i64 %"$gasrem_601", 1 + %"$consume_605" = sub i64 %"$gasrem_601", 2 store i64 %"$consume_605", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_606", i32 0, i32 0), i32 4 }, %String* %key1, align 8 - %val1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_607_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_607_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_607_salloc_load", i64 16) - %"$indices_buf_607_salloc" = bitcast i8* %"$indices_buf_607_salloc_salloc" to [16 x i8]* - %"$indices_buf_607" = bitcast [16 x i8]* %"$indices_buf_607_salloc" to i8* - %"$key1_608" = load %String, %String* %key1, align 8 - %"$indices_gep_609" = getelementptr i8, i8* %"$indices_buf_607", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_609" to %String* - store %String %"$key1_608", %String* %indices_cast, align 8 - %"$execptr_load_611" = load i8*, i8** @_execptr, align 8 - %"$val1_call_612" = call i8* @_fetch_field(i8* %"$execptr_load_611", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_610", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_607", i32 1) - %"$val1_613" = bitcast i8* %"$val1_call_612" to %TName_Option_String* - store %TName_Option_String* %"$val1_613", %TName_Option_String** %val1, align 8 - %"$val1_614" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 - %"$$val1_614_615" = bitcast %TName_Option_String* %"$val1_614" to i8* - %"$_literal_cost_call_616" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$val1_614_615") - %"$gasadd_617" = add i64 %"$_literal_cost_call_616", 0 - %"$gasadd_618" = add i64 %"$gasadd_617", 1 - %"$gasrem_619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_620" = icmp ugt i64 %"$gasadd_618", %"$gasrem_619" - br i1 %"$gascmp_620", label %"$out_of_gas_621", label %"$have_gas_622" - -"$out_of_gas_621": ; preds = %"$have_gas_604" - call void @_out_of_gas() - br label %"$have_gas_622" - -"$have_gas_622": ; preds = %"$out_of_gas_621", %"$have_gas_604" - %"$consume_623" = sub i64 %"$gasrem_619", %"$gasadd_618" - store i64 %"$consume_623", i64* @_gasrem, align 8 - %"$gasrem_624" = load i64, i64* @_gasrem, align 8 - %"$gascmp_625" = icmp ugt i64 2, %"$gasrem_624" - br i1 %"$gascmp_625", label %"$out_of_gas_626", label %"$have_gas_627" - -"$out_of_gas_626": ; preds = %"$have_gas_622" - call void @_out_of_gas() - br label %"$have_gas_627" - -"$have_gas_627": ; preds = %"$out_of_gas_626", %"$have_gas_622" - %"$consume_628" = sub i64 %"$gasrem_624", 2 - store i64 %"$consume_628", i64* @_gasrem, align 8 - %"$val1_630" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 - %"$val1_tag_631" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val1_630", i32 0, i32 0 - %"$val1_tag_632" = load i8, i8* %"$val1_tag_631", align 1 - switch i8 %"$val1_tag_632", label %"$empty_default_633" [ - i8 0, label %"$Some_634" - i8 1, label %"$None_696" + %"$val1_607" = load %TName_Option_String*, %TName_Option_String** %val1, align 8 + %"$val1_tag_608" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val1_607", i32 0, i32 0 + %"$val1_tag_609" = load i8, i8* %"$val1_tag_608", align 1 + switch i8 %"$val1_tag_609", label %"$empty_default_610" [ + i8 0, label %"$Some_611" + i8 1, label %"$None_673" ] -"$Some_634": ; preds = %"$have_gas_627" - %"$val1_635" = bitcast %TName_Option_String* %"$val1_630" to %CName_Some_String* - %"$val_gep_636" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val1_635", i32 0, i32 1 - %"$val_load_637" = load %String, %String* %"$val_gep_636", align 8 +"$Some_611": ; preds = %"$have_gas_604" + %"$val1_612" = bitcast %TName_Option_String* %"$val1_607" to %CName_Some_String* + %"$val_gep_613" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val1_612", i32 0, i32 1 + %"$val_load_614" = load %String, %String* %"$val_gep_613", align 8 %val = alloca %String, align 8 - store %String %"$val_load_637", %String* %val, align 8 - %"$gasrem_638" = load i64, i64* @_gasrem, align 8 - %"$gascmp_639" = icmp ugt i64 1, %"$gasrem_638" - br i1 %"$gascmp_639", label %"$out_of_gas_640", label %"$have_gas_641" + store %String %"$val_load_614", %String* %val, align 8 + %"$gasrem_615" = load i64, i64* @_gasrem, align 8 + %"$gascmp_616" = icmp ugt i64 1, %"$gasrem_615" + br i1 %"$gascmp_616", label %"$out_of_gas_617", label %"$have_gas_618" -"$out_of_gas_640": ; preds = %"$Some_634" +"$out_of_gas_617": ; preds = %"$Some_611" call void @_out_of_gas() - br label %"$have_gas_641" + br label %"$have_gas_618" -"$have_gas_641": ; preds = %"$out_of_gas_640", %"$Some_634" - %"$consume_642" = sub i64 %"$gasrem_638", 1 - store i64 %"$consume_642", i64* @_gasrem, align 8 +"$have_gas_618": ; preds = %"$out_of_gas_617", %"$Some_611" + %"$consume_619" = sub i64 %"$gasrem_615", 1 + store i64 %"$consume_619", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_val_643" = alloca %String, align 8 - %"$val_644" = load %String, %String* %val, align 8 - store %String %"$val_644", %String* %"$_literal_cost_val_643", align 8 - %"$$_literal_cost_val_643_645" = bitcast %String* %"$_literal_cost_val_643" to i8* - %"$_literal_cost_call_646" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_val_643_645") - %"$_literal_cost_s_647" = alloca %String, align 8 - %"$s_648" = load %String, %String* %s, align 8 - store %String %"$s_648", %String* %"$_literal_cost_s_647", align 8 - %"$$_literal_cost_s_647_649" = bitcast %String* %"$_literal_cost_s_647" to i8* - %"$_literal_cost_call_650" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_647_649") - %"$gasmin_651" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_646", i64 %"$_literal_cost_call_650") - %"$gasrem_652" = load i64, i64* @_gasrem, align 8 - %"$gascmp_653" = icmp ugt i64 %"$gasmin_651", %"$gasrem_652" - br i1 %"$gascmp_653", label %"$out_of_gas_654", label %"$have_gas_655" - -"$out_of_gas_654": ; preds = %"$have_gas_641" - call void @_out_of_gas() - br label %"$have_gas_655" - -"$have_gas_655": ; preds = %"$out_of_gas_654", %"$have_gas_641" - %"$consume_656" = sub i64 %"$gasrem_652", %"$gasmin_651" - store i64 %"$consume_656", i64* @_gasrem, align 8 - %"$execptr_load_657" = load i8*, i8** @_execptr, align 8 - %"$val_658" = load %String, %String* %val, align 8 - %"$s_659" = load %String, %String* %s, align 8 - %"$eq_call_660" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_657", %String %"$val_658", %String %"$s_659") - store %TName_Bool* %"$eq_call_660", %TName_Bool** %t, align 8 + %"$_literal_cost_val_620" = alloca %String, align 8 + %"$val_621" = load %String, %String* %val, align 8 + store %String %"$val_621", %String* %"$_literal_cost_val_620", align 8 + %"$$_literal_cost_val_620_622" = bitcast %String* %"$_literal_cost_val_620" to i8* + %"$_literal_cost_call_623" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_val_620_622") + %"$_literal_cost_s_624" = alloca %String, align 8 + %"$s_625" = load %String, %String* %s, align 8 + store %String %"$s_625", %String* %"$_literal_cost_s_624", align 8 + %"$$_literal_cost_s_624_626" = bitcast %String* %"$_literal_cost_s_624" to i8* + %"$_literal_cost_call_627" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_624_626") + %"$gasmin_628" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_623", i64 %"$_literal_cost_call_627") + %"$gasrem_629" = load i64, i64* @_gasrem, align 8 + %"$gascmp_630" = icmp ugt i64 %"$gasmin_628", %"$gasrem_629" + br i1 %"$gascmp_630", label %"$out_of_gas_631", label %"$have_gas_632" + +"$out_of_gas_631": ; preds = %"$have_gas_618" + call void @_out_of_gas() + br label %"$have_gas_632" + +"$have_gas_632": ; preds = %"$out_of_gas_631", %"$have_gas_618" + %"$consume_633" = sub i64 %"$gasrem_629", %"$gasmin_628" + store i64 %"$consume_633", i64* @_gasrem, align 8 + %"$execptr_load_634" = load i8*, i8** @_execptr, align 8 + %"$val_635" = load %String, %String* %val, align 8 + %"$s_636" = load %String, %String* %s, align 8 + %"$eq_call_637" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_634", %String %"$val_635", %String %"$s_636") + store %TName_Bool* %"$eq_call_637", %TName_Bool** %t, align 8 + %"$gasrem_639" = load i64, i64* @_gasrem, align 8 + %"$gascmp_640" = icmp ugt i64 2, %"$gasrem_639" + br i1 %"$gascmp_640", label %"$out_of_gas_641", label %"$have_gas_642" + +"$out_of_gas_641": ; preds = %"$have_gas_632" + call void @_out_of_gas() + br label %"$have_gas_642" + +"$have_gas_642": ; preds = %"$out_of_gas_641", %"$have_gas_632" + %"$consume_643" = sub i64 %"$gasrem_639", 2 + store i64 %"$consume_643", i64* @_gasrem, align 8 + %"$t_645" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_646" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_645", i32 0, i32 0 + %"$t_tag_647" = load i8, i8* %"$t_tag_646", align 1 + switch i8 %"$t_tag_647", label %"$empty_default_648" [ + i8 1, label %"$False_649" + i8 0, label %"$True_671" + ] + +"$False_649": ; preds = %"$have_gas_642" + %"$t_650" = bitcast %TName_Bool* %"$t_645" to %CName_False* + %"$gasrem_651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_652" = icmp ugt i64 1, %"$gasrem_651" + br i1 %"$gascmp_652", label %"$out_of_gas_653", label %"$have_gas_654" + +"$out_of_gas_653": ; preds = %"$False_649" + call void @_out_of_gas() + br label %"$have_gas_654" + +"$have_gas_654": ; preds = %"$out_of_gas_653", %"$False_649" + %"$consume_655" = sub i64 %"$gasrem_651", 1 + store i64 %"$consume_655", i64* @_gasrem, align 8 + %m = alloca %String, align 8 + %"$gasrem_656" = load i64, i64* @_gasrem, align 8 + %"$gascmp_657" = icmp ugt i64 1, %"$gasrem_656" + br i1 %"$gascmp_657", label %"$out_of_gas_658", label %"$have_gas_659" + +"$out_of_gas_658": ; preds = %"$have_gas_654" + call void @_out_of_gas() + br label %"$have_gas_659" + +"$have_gas_659": ; preds = %"$out_of_gas_658", %"$have_gas_654" + %"$consume_660" = sub i64 %"$gasrem_656", 1 + store i64 %"$consume_660", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_661", i32 0, i32 0), i32 23 }, %String* %m, align 8 %"$gasrem_662" = load i64, i64* @_gasrem, align 8 - %"$gascmp_663" = icmp ugt i64 2, %"$gasrem_662" + %"$gascmp_663" = icmp ugt i64 1, %"$gasrem_662" br i1 %"$gascmp_663", label %"$out_of_gas_664", label %"$have_gas_665" -"$out_of_gas_664": ; preds = %"$have_gas_655" +"$out_of_gas_664": ; preds = %"$have_gas_659" call void @_out_of_gas() br label %"$have_gas_665" -"$have_gas_665": ; preds = %"$out_of_gas_664", %"$have_gas_655" - %"$consume_666" = sub i64 %"$gasrem_662", 2 +"$have_gas_665": ; preds = %"$out_of_gas_664", %"$have_gas_659" + %"$consume_666" = sub i64 %"$gasrem_662", 1 store i64 %"$consume_666", i64* @_gasrem, align 8 - %"$t_668" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_669" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_668", i32 0, i32 0 - %"$t_tag_670" = load i8, i8* %"$t_tag_669", align 1 - switch i8 %"$t_tag_670", label %"$empty_default_671" [ - i8 1, label %"$False_672" - i8 0, label %"$True_694" - ] - -"$False_672": ; preds = %"$have_gas_665" - %"$t_673" = bitcast %TName_Bool* %"$t_668" to %CName_False* - %"$gasrem_674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_675" = icmp ugt i64 1, %"$gasrem_674" - br i1 %"$gascmp_675", label %"$out_of_gas_676", label %"$have_gas_677" + %"$fail_msg__origin_667" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_667", align 1 + %"$fail_msg__sender_668" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_668", align 1 + %"$tname_669" = load %String, %String* %tname, align 8 + %"$m_670" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_667", [20 x i8]* %"$fail_msg__sender_668", %String %"$tname_669", %String %"$m_670") + br label %"$matchsucc_644" + +"$True_671": ; preds = %"$have_gas_642" + %"$t_672" = bitcast %TName_Bool* %"$t_645" to %CName_True* + br label %"$matchsucc_644" + +"$empty_default_648": ; preds = %"$have_gas_642" + br label %"$matchsucc_644" + +"$matchsucc_644": ; preds = %"$True_671", %"$have_gas_665", %"$empty_default_648" + br label %"$matchsucc_606" + +"$None_673": ; preds = %"$have_gas_604" + %"$val1_674" = bitcast %TName_Option_String* %"$val1_607" to %CName_None_String* + %"$gasrem_675" = load i64, i64* @_gasrem, align 8 + %"$gascmp_676" = icmp ugt i64 1, %"$gasrem_675" + br i1 %"$gascmp_676", label %"$out_of_gas_677", label %"$have_gas_678" + +"$out_of_gas_677": ; preds = %"$None_673" + call void @_out_of_gas() + br label %"$have_gas_678" + +"$have_gas_678": ; preds = %"$out_of_gas_677", %"$None_673" + %"$consume_679" = sub i64 %"$gasrem_675", 1 + store i64 %"$consume_679", i64* @_gasrem, align 8 + %"$fail__origin_680" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_680", align 1 + %"$fail__sender_681" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_681", align 1 + %"$tname_682" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_680", [20 x i8]* %"$fail__sender_681", %String %"$tname_682") + br label %"$matchsucc_606" + +"$empty_default_610": ; preds = %"$have_gas_604" + br label %"$matchsucc_606" + +"$matchsucc_606": ; preds = %"$have_gas_678", %"$matchsucc_644", %"$empty_default_610" + %"$gasrem_683" = load i64, i64* @_gasrem, align 8 + %"$gascmp_684" = icmp ugt i64 1, %"$gasrem_683" + br i1 %"$gascmp_684", label %"$out_of_gas_685", label %"$have_gas_686" + +"$out_of_gas_685": ; preds = %"$matchsucc_606" + call void @_out_of_gas() + br label %"$have_gas_686" + +"$have_gas_686": ; preds = %"$out_of_gas_685", %"$matchsucc_606" + %"$consume_687" = sub i64 %"$gasrem_683", 1 + store i64 %"$consume_687", i64* @_gasrem, align 8 + %key2 = alloca %String, align 8 + %"$gasrem_688" = load i64, i64* @_gasrem, align 8 + %"$gascmp_689" = icmp ugt i64 1, %"$gasrem_688" + br i1 %"$gascmp_689", label %"$out_of_gas_690", label %"$have_gas_691" -"$out_of_gas_676": ; preds = %"$False_672" +"$out_of_gas_690": ; preds = %"$have_gas_686" call void @_out_of_gas() - br label %"$have_gas_677" + br label %"$have_gas_691" -"$have_gas_677": ; preds = %"$out_of_gas_676", %"$False_672" - %"$consume_678" = sub i64 %"$gasrem_674", 1 - store i64 %"$consume_678", i64* @_gasrem, align 8 - %m = alloca %String, align 8 - %"$gasrem_679" = load i64, i64* @_gasrem, align 8 - %"$gascmp_680" = icmp ugt i64 1, %"$gasrem_679" - br i1 %"$gascmp_680", label %"$out_of_gas_681", label %"$have_gas_682" - -"$out_of_gas_681": ; preds = %"$have_gas_677" - call void @_out_of_gas() - br label %"$have_gas_682" - -"$have_gas_682": ; preds = %"$out_of_gas_681", %"$have_gas_677" - %"$consume_683" = sub i64 %"$gasrem_679", 1 - store i64 %"$consume_683", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_684", i32 0, i32 0), i32 23 }, %String* %m, align 8 - %"$gasrem_685" = load i64, i64* @_gasrem, align 8 - %"$gascmp_686" = icmp ugt i64 1, %"$gasrem_685" - br i1 %"$gascmp_686", label %"$out_of_gas_687", label %"$have_gas_688" - -"$out_of_gas_687": ; preds = %"$have_gas_682" - call void @_out_of_gas() - br label %"$have_gas_688" - -"$have_gas_688": ; preds = %"$out_of_gas_687", %"$have_gas_682" - %"$consume_689" = sub i64 %"$gasrem_685", 1 - store i64 %"$consume_689", i64* @_gasrem, align 8 - %"$fail_msg__origin_690" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_690", align 1 - %"$fail_msg__sender_691" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_691", align 1 - %"$tname_692" = load %String, %String* %tname, align 8 - %"$m_693" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_690", [20 x i8]* %"$fail_msg__sender_691", %String %"$tname_692", %String %"$m_693") - br label %"$matchsucc_667" - -"$True_694": ; preds = %"$have_gas_665" - %"$t_695" = bitcast %TName_Bool* %"$t_668" to %CName_True* - br label %"$matchsucc_667" - -"$empty_default_671": ; preds = %"$have_gas_665" - br label %"$matchsucc_667" - -"$matchsucc_667": ; preds = %"$True_694", %"$have_gas_688", %"$empty_default_671" - br label %"$matchsucc_629" - -"$None_696": ; preds = %"$have_gas_627" - %"$val1_697" = bitcast %TName_Option_String* %"$val1_630" to %CName_None_String* - %"$gasrem_698" = load i64, i64* @_gasrem, align 8 - %"$gascmp_699" = icmp ugt i64 1, %"$gasrem_698" - br i1 %"$gascmp_699", label %"$out_of_gas_700", label %"$have_gas_701" - -"$out_of_gas_700": ; preds = %"$None_696" - call void @_out_of_gas() - br label %"$have_gas_701" - -"$have_gas_701": ; preds = %"$out_of_gas_700", %"$None_696" - %"$consume_702" = sub i64 %"$gasrem_698", 1 - store i64 %"$consume_702", i64* @_gasrem, align 8 - %"$fail__origin_703" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_703", align 1 - %"$fail__sender_704" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_704", align 1 - %"$tname_705" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_703", [20 x i8]* %"$fail__sender_704", %String %"$tname_705") - br label %"$matchsucc_629" - -"$empty_default_633": ; preds = %"$have_gas_627" - br label %"$matchsucc_629" - -"$matchsucc_629": ; preds = %"$have_gas_701", %"$matchsucc_667", %"$empty_default_633" +"$have_gas_691": ; preds = %"$out_of_gas_690", %"$have_gas_686" + %"$consume_692" = sub i64 %"$gasrem_688", 1 + store i64 %"$consume_692", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_693", i32 0, i32 0), i32 4 }, %String* %key2, align 8 + %val2 = alloca %TName_Option_String*, align 8 + %"$indices_buf_694_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_694_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_694_salloc_load", i64 16) + %"$indices_buf_694_salloc" = bitcast i8* %"$indices_buf_694_salloc_salloc" to [16 x i8]* + %"$indices_buf_694" = bitcast [16 x i8]* %"$indices_buf_694_salloc" to i8* + %"$key2_695" = load %String, %String* %key2, align 8 + %"$indices_gep_696" = getelementptr i8, i8* %"$indices_buf_694", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_696" to %String* + store %String %"$key2_695", %String* %indices_cast1, align 8 + %"$execptr_load_698" = load i8*, i8** @_execptr, align 8 + %"$val2_call_699" = call i8* @_fetch_field(i8* %"$execptr_load_698", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_697", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_694", i32 1) + %"$val2_700" = bitcast i8* %"$val2_call_699" to %TName_Option_String* + store %TName_Option_String* %"$val2_700", %TName_Option_String** %val2, align 8 + %"$val2_701" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 + %"$$val2_701_702" = bitcast %TName_Option_String* %"$val2_701" to i8* + %"$_literal_cost_call_703" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$val2_701_702") + %"$gasadd_704" = add i64 %"$_literal_cost_call_703", 0 + %"$gasadd_705" = add i64 %"$gasadd_704", 1 %"$gasrem_706" = load i64, i64* @_gasrem, align 8 - %"$gascmp_707" = icmp ugt i64 1, %"$gasrem_706" + %"$gascmp_707" = icmp ugt i64 %"$gasadd_705", %"$gasrem_706" br i1 %"$gascmp_707", label %"$out_of_gas_708", label %"$have_gas_709" -"$out_of_gas_708": ; preds = %"$matchsucc_629" +"$out_of_gas_708": ; preds = %"$have_gas_691" call void @_out_of_gas() br label %"$have_gas_709" -"$have_gas_709": ; preds = %"$out_of_gas_708", %"$matchsucc_629" - %"$consume_710" = sub i64 %"$gasrem_706", 1 +"$have_gas_709": ; preds = %"$out_of_gas_708", %"$have_gas_691" + %"$consume_710" = sub i64 %"$gasrem_706", %"$gasadd_705" store i64 %"$consume_710", i64* @_gasrem, align 8 - %key2 = alloca %String, align 8 %"$gasrem_711" = load i64, i64* @_gasrem, align 8 - %"$gascmp_712" = icmp ugt i64 1, %"$gasrem_711" + %"$gascmp_712" = icmp ugt i64 2, %"$gasrem_711" br i1 %"$gascmp_712", label %"$out_of_gas_713", label %"$have_gas_714" "$out_of_gas_713": ; preds = %"$have_gas_709" @@ -1570,194 +1579,194 @@ entry: br label %"$have_gas_714" "$have_gas_714": ; preds = %"$out_of_gas_713", %"$have_gas_709" - %"$consume_715" = sub i64 %"$gasrem_711", 1 + %"$consume_715" = sub i64 %"$gasrem_711", 2 store i64 %"$consume_715", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_716", i32 0, i32 0), i32 4 }, %String* %key2, align 8 - %val2 = alloca %TName_Option_String*, align 8 - %"$indices_buf_717_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_717_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_717_salloc_load", i64 16) - %"$indices_buf_717_salloc" = bitcast i8* %"$indices_buf_717_salloc_salloc" to [16 x i8]* - %"$indices_buf_717" = bitcast [16 x i8]* %"$indices_buf_717_salloc" to i8* - %"$key2_718" = load %String, %String* %key2, align 8 - %"$indices_gep_719" = getelementptr i8, i8* %"$indices_buf_717", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_719" to %String* - store %String %"$key2_718", %String* %indices_cast1, align 8 - %"$execptr_load_721" = load i8*, i8** @_execptr, align 8 - %"$val2_call_722" = call i8* @_fetch_field(i8* %"$execptr_load_721", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_720", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_717", i32 1) - %"$val2_723" = bitcast i8* %"$val2_call_722" to %TName_Option_String* - store %TName_Option_String* %"$val2_723", %TName_Option_String** %val2, align 8 - %"$val2_724" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 - %"$$val2_724_725" = bitcast %TName_Option_String* %"$val2_724" to i8* - %"$_literal_cost_call_726" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$val2_724_725") - %"$gasadd_727" = add i64 %"$_literal_cost_call_726", 0 - %"$gasadd_728" = add i64 %"$gasadd_727", 1 - %"$gasrem_729" = load i64, i64* @_gasrem, align 8 - %"$gascmp_730" = icmp ugt i64 %"$gasadd_728", %"$gasrem_729" - br i1 %"$gascmp_730", label %"$out_of_gas_731", label %"$have_gas_732" - -"$out_of_gas_731": ; preds = %"$have_gas_714" - call void @_out_of_gas() - br label %"$have_gas_732" - -"$have_gas_732": ; preds = %"$out_of_gas_731", %"$have_gas_714" - %"$consume_733" = sub i64 %"$gasrem_729", %"$gasadd_728" - store i64 %"$consume_733", i64* @_gasrem, align 8 - %"$gasrem_734" = load i64, i64* @_gasrem, align 8 - %"$gascmp_735" = icmp ugt i64 2, %"$gasrem_734" - br i1 %"$gascmp_735", label %"$out_of_gas_736", label %"$have_gas_737" - -"$out_of_gas_736": ; preds = %"$have_gas_732" - call void @_out_of_gas() - br label %"$have_gas_737" - -"$have_gas_737": ; preds = %"$out_of_gas_736", %"$have_gas_732" - %"$consume_738" = sub i64 %"$gasrem_734", 2 - store i64 %"$consume_738", i64* @_gasrem, align 8 - %"$val2_740" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 - %"$val2_tag_741" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val2_740", i32 0, i32 0 - %"$val2_tag_742" = load i8, i8* %"$val2_tag_741", align 1 - switch i8 %"$val2_tag_742", label %"$empty_default_743" [ - i8 0, label %"$Some_744" - i8 1, label %"$None_768" + %"$val2_717" = load %TName_Option_String*, %TName_Option_String** %val2, align 8 + %"$val2_tag_718" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val2_717", i32 0, i32 0 + %"$val2_tag_719" = load i8, i8* %"$val2_tag_718", align 1 + switch i8 %"$val2_tag_719", label %"$empty_default_720" [ + i8 0, label %"$Some_721" + i8 1, label %"$None_745" ] -"$Some_744": ; preds = %"$have_gas_737" - %"$val2_745" = bitcast %TName_Option_String* %"$val2_740" to %CName_Some_String* - %"$$val2_13_gep_746" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val2_745", i32 0, i32 1 - %"$$val2_13_load_747" = load %String, %String* %"$$val2_13_gep_746", align 8 +"$Some_721": ; preds = %"$have_gas_714" + %"$val2_722" = bitcast %TName_Option_String* %"$val2_717" to %CName_Some_String* + %"$$val2_13_gep_723" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val2_722", i32 0, i32 1 + %"$$val2_13_load_724" = load %String, %String* %"$$val2_13_gep_723", align 8 %"$val2_13" = alloca %String, align 8 - store %String %"$$val2_13_load_747", %String* %"$val2_13", align 8 - %"$gasrem_748" = load i64, i64* @_gasrem, align 8 - %"$gascmp_749" = icmp ugt i64 1, %"$gasrem_748" - br i1 %"$gascmp_749", label %"$out_of_gas_750", label %"$have_gas_751" + store %String %"$$val2_13_load_724", %String* %"$val2_13", align 8 + %"$gasrem_725" = load i64, i64* @_gasrem, align 8 + %"$gascmp_726" = icmp ugt i64 1, %"$gasrem_725" + br i1 %"$gascmp_726", label %"$out_of_gas_727", label %"$have_gas_728" -"$out_of_gas_750": ; preds = %"$Some_744" +"$out_of_gas_727": ; preds = %"$Some_721" call void @_out_of_gas() - br label %"$have_gas_751" + br label %"$have_gas_728" -"$have_gas_751": ; preds = %"$out_of_gas_750", %"$Some_744" - %"$consume_752" = sub i64 %"$gasrem_748", 1 - store i64 %"$consume_752", i64* @_gasrem, align 8 +"$have_gas_728": ; preds = %"$out_of_gas_727", %"$Some_721" + %"$consume_729" = sub i64 %"$gasrem_725", 1 + store i64 %"$consume_729", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_753" = load i64, i64* @_gasrem, align 8 - %"$gascmp_754" = icmp ugt i64 1, %"$gasrem_753" - br i1 %"$gascmp_754", label %"$out_of_gas_755", label %"$have_gas_756" - -"$out_of_gas_755": ; preds = %"$have_gas_751" - call void @_out_of_gas() - br label %"$have_gas_756" - -"$have_gas_756": ; preds = %"$out_of_gas_755", %"$have_gas_751" - %"$consume_757" = sub i64 %"$gasrem_753", 1 - store i64 %"$consume_757", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$stringlit_758", i32 0, i32 0), i32 25 }, %String* %m2, align 8 - %"$gasrem_759" = load i64, i64* @_gasrem, align 8 - %"$gascmp_760" = icmp ugt i64 1, %"$gasrem_759" - br i1 %"$gascmp_760", label %"$out_of_gas_761", label %"$have_gas_762" - -"$out_of_gas_761": ; preds = %"$have_gas_756" - call void @_out_of_gas() - br label %"$have_gas_762" - -"$have_gas_762": ; preds = %"$out_of_gas_761", %"$have_gas_756" - %"$consume_763" = sub i64 %"$gasrem_759", 1 - store i64 %"$consume_763", i64* @_gasrem, align 8 - %"$fail_msg__origin_764" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_764", align 1 - %"$fail_msg__sender_765" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_765", align 1 - %"$tname_766" = load %String, %String* %tname, align 8 - %"$m_767" = load %String, %String* %m2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_764", [20 x i8]* %"$fail_msg__sender_765", %String %"$tname_766", %String %"$m_767") - br label %"$matchsucc_739" - -"$None_768": ; preds = %"$have_gas_737" - %"$val2_769" = bitcast %TName_Option_String* %"$val2_740" to %CName_None_String* - br label %"$matchsucc_739" - -"$empty_default_743": ; preds = %"$have_gas_737" - br label %"$matchsucc_739" - -"$matchsucc_739": ; preds = %"$None_768", %"$have_gas_762", %"$empty_default_743" - %"$gasrem_770" = load i64, i64* @_gasrem, align 8 - %"$gascmp_771" = icmp ugt i64 1, %"$gasrem_770" - br i1 %"$gascmp_771", label %"$out_of_gas_772", label %"$have_gas_773" - -"$out_of_gas_772": ; preds = %"$matchsucc_739" - call void @_out_of_gas() - br label %"$have_gas_773" - -"$have_gas_773": ; preds = %"$out_of_gas_772", %"$matchsucc_739" - %"$consume_774" = sub i64 %"$gasrem_770", 1 - store i64 %"$consume_774", i64* @_gasrem, align 8 - %"$indices_buf_775_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_775_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_775_salloc_load", i64 16) - %"$indices_buf_775_salloc" = bitcast i8* %"$indices_buf_775_salloc_salloc" to [16 x i8]* - %"$indices_buf_775" = bitcast [16 x i8]* %"$indices_buf_775_salloc" to i8* - %"$key1_776" = load %String, %String* %key1, align 8 - %"$indices_gep_777" = getelementptr i8, i8* %"$indices_buf_775", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_777" to %String* - store %String %"$key1_776", %String* %indices_cast3, align 8 - %"$execptr_load_778" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_778", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_779", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_775", i8* null) + %"$gasrem_730" = load i64, i64* @_gasrem, align 8 + %"$gascmp_731" = icmp ugt i64 1, %"$gasrem_730" + br i1 %"$gascmp_731", label %"$out_of_gas_732", label %"$have_gas_733" + +"$out_of_gas_732": ; preds = %"$have_gas_728" + call void @_out_of_gas() + br label %"$have_gas_733" + +"$have_gas_733": ; preds = %"$out_of_gas_732", %"$have_gas_728" + %"$consume_734" = sub i64 %"$gasrem_730", 1 + store i64 %"$consume_734", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$stringlit_735", i32 0, i32 0), i32 25 }, %String* %m2, align 8 + %"$gasrem_736" = load i64, i64* @_gasrem, align 8 + %"$gascmp_737" = icmp ugt i64 1, %"$gasrem_736" + br i1 %"$gascmp_737", label %"$out_of_gas_738", label %"$have_gas_739" + +"$out_of_gas_738": ; preds = %"$have_gas_733" + call void @_out_of_gas() + br label %"$have_gas_739" + +"$have_gas_739": ; preds = %"$out_of_gas_738", %"$have_gas_733" + %"$consume_740" = sub i64 %"$gasrem_736", 1 + store i64 %"$consume_740", i64* @_gasrem, align 8 + %"$fail_msg__origin_741" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_741", align 1 + %"$fail_msg__sender_742" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_742", align 1 + %"$tname_743" = load %String, %String* %tname, align 8 + %"$m_744" = load %String, %String* %m2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_741", [20 x i8]* %"$fail_msg__sender_742", %String %"$tname_743", %String %"$m_744") + br label %"$matchsucc_716" + +"$None_745": ; preds = %"$have_gas_714" + %"$val2_746" = bitcast %TName_Option_String* %"$val2_717" to %CName_None_String* + br label %"$matchsucc_716" + +"$empty_default_720": ; preds = %"$have_gas_714" + br label %"$matchsucc_716" + +"$matchsucc_716": ; preds = %"$None_745", %"$have_gas_739", %"$empty_default_720" + %"$gasrem_747" = load i64, i64* @_gasrem, align 8 + %"$gascmp_748" = icmp ugt i64 1, %"$gasrem_747" + br i1 %"$gascmp_748", label %"$out_of_gas_749", label %"$have_gas_750" + +"$out_of_gas_749": ; preds = %"$matchsucc_716" + call void @_out_of_gas() + br label %"$have_gas_750" + +"$have_gas_750": ; preds = %"$out_of_gas_749", %"$matchsucc_716" + %"$consume_751" = sub i64 %"$gasrem_747", 1 + store i64 %"$consume_751", i64* @_gasrem, align 8 + %"$indices_buf_752_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_752_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_752_salloc_load", i64 16) + %"$indices_buf_752_salloc" = bitcast i8* %"$indices_buf_752_salloc_salloc" to [16 x i8]* + %"$indices_buf_752" = bitcast [16 x i8]* %"$indices_buf_752_salloc" to i8* + %"$key1_753" = load %String, %String* %key1, align 8 + %"$indices_gep_754" = getelementptr i8, i8* %"$indices_buf_752", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_754" to %String* + store %String %"$key1_753", %String* %indices_cast3, align 8 + %"$execptr_load_755" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_755", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_756", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_752", i8* null) ret void } define void @t3(i8* %0) { entry: - %"$_amount_781" = getelementptr i8, i8* %0, i32 0 - %"$_amount_782" = bitcast i8* %"$_amount_781" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_782", align 8 - %"$_origin_783" = getelementptr i8, i8* %0, i32 16 - %"$_origin_784" = bitcast i8* %"$_origin_783" to [20 x i8]* - %"$_sender_785" = getelementptr i8, i8* %0, i32 36 - %"$_sender_786" = bitcast i8* %"$_sender_785" to [20 x i8]* - call void @"$t3_571"(%Uint128 %_amount, [20 x i8]* %"$_origin_784", [20 x i8]* %"$_sender_786") + %"$_amount_758" = getelementptr i8, i8* %0, i32 0 + %"$_amount_759" = bitcast i8* %"$_amount_758" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_759", align 8 + %"$_origin_760" = getelementptr i8, i8* %0, i32 16 + %"$_origin_761" = bitcast i8* %"$_origin_760" to [20 x i8]* + %"$_sender_762" = getelementptr i8, i8* %0, i32 36 + %"$_sender_763" = bitcast i8* %"$_sender_762" to [20 x i8]* + call void @"$t3_548"(%Uint128 %_amount, [20 x i8]* %"$_origin_761", [20 x i8]* %"$_sender_763") ret void } -define internal void @"$t4_787"(%Uint128 %_amount, [20 x i8]* %"$_origin_788", [20 x i8]* %"$_sender_789") { +define internal void @"$t4_764"(%Uint128 %_amount, [20 x i8]* %"$_origin_765", [20 x i8]* %"$_sender_766") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_788", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_789", align 1 - %"$gasrem_790" = load i64, i64* @_gasrem, align 8 - %"$gascmp_791" = icmp ugt i64 1, %"$gasrem_790" - br i1 %"$gascmp_791", label %"$out_of_gas_792", label %"$have_gas_793" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_765", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_766", align 1 + %"$gasrem_767" = load i64, i64* @_gasrem, align 8 + %"$gascmp_768" = icmp ugt i64 1, %"$gasrem_767" + br i1 %"$gascmp_768", label %"$out_of_gas_769", label %"$have_gas_770" -"$out_of_gas_792": ; preds = %entry +"$out_of_gas_769": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_793" + br label %"$have_gas_770" -"$have_gas_793": ; preds = %"$out_of_gas_792", %entry - %"$consume_794" = sub i64 %"$gasrem_790", 1 - store i64 %"$consume_794", i64* @_gasrem, align 8 +"$have_gas_770": ; preds = %"$out_of_gas_769", %entry + %"$consume_771" = sub i64 %"$gasrem_767", 1 + store i64 %"$consume_771", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_795" = load i64, i64* @_gasrem, align 8 - %"$gascmp_796" = icmp ugt i64 1, %"$gasrem_795" - br i1 %"$gascmp_796", label %"$out_of_gas_797", label %"$have_gas_798" + %"$gasrem_772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_773" = icmp ugt i64 1, %"$gasrem_772" + br i1 %"$gascmp_773", label %"$out_of_gas_774", label %"$have_gas_775" + +"$out_of_gas_774": ; preds = %"$have_gas_770" + call void @_out_of_gas() + br label %"$have_gas_775" + +"$have_gas_775": ; preds = %"$out_of_gas_774", %"$have_gas_770" + %"$consume_776" = sub i64 %"$gasrem_772", 1 + store i64 %"$consume_776", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_777", i32 0, i32 0), i32 2 }, %String* %tname, align 8 + %"$gasrem_778" = load i64, i64* @_gasrem, align 8 + %"$gascmp_779" = icmp ugt i64 1, %"$gasrem_778" + br i1 %"$gascmp_779", label %"$out_of_gas_780", label %"$have_gas_781" + +"$out_of_gas_780": ; preds = %"$have_gas_775" + call void @_out_of_gas() + br label %"$have_gas_781" + +"$have_gas_781": ; preds = %"$out_of_gas_780", %"$have_gas_775" + %"$consume_782" = sub i64 %"$gasrem_778", 1 + store i64 %"$consume_782", i64* @_gasrem, align 8 + %key1 = alloca %String, align 8 + %"$gasrem_783" = load i64, i64* @_gasrem, align 8 + %"$gascmp_784" = icmp ugt i64 1, %"$gasrem_783" + br i1 %"$gascmp_784", label %"$out_of_gas_785", label %"$have_gas_786" -"$out_of_gas_797": ; preds = %"$have_gas_793" +"$out_of_gas_785": ; preds = %"$have_gas_781" call void @_out_of_gas() - br label %"$have_gas_798" + br label %"$have_gas_786" -"$have_gas_798": ; preds = %"$out_of_gas_797", %"$have_gas_793" - %"$consume_799" = sub i64 %"$gasrem_795", 1 - store i64 %"$consume_799", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_800", i32 0, i32 0), i32 2 }, %String* %tname, align 8 +"$have_gas_786": ; preds = %"$out_of_gas_785", %"$have_gas_781" + %"$consume_787" = sub i64 %"$gasrem_783", 1 + store i64 %"$consume_787", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_788", i32 0, i32 0), i32 4 }, %String* %key1, align 8 + %key1_found = alloca %TName_Bool*, align 8 + %"$indices_buf_789_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_789_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_789_salloc_load", i64 16) + %"$indices_buf_789_salloc" = bitcast i8* %"$indices_buf_789_salloc_salloc" to [16 x i8]* + %"$indices_buf_789" = bitcast [16 x i8]* %"$indices_buf_789_salloc" to i8* + %"$key1_790" = load %String, %String* %key1, align 8 + %"$indices_gep_791" = getelementptr i8, i8* %"$indices_buf_789", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_791" to %String* + store %String %"$key1_790", %String* %indices_cast, align 8 + %"$execptr_load_793" = load i8*, i8** @_execptr, align 8 + %"$key1_found_call_794" = call i8* @_fetch_field(i8* %"$execptr_load_793", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_792", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_789", i32 0) + %"$key1_found_795" = bitcast i8* %"$key1_found_call_794" to %TName_Bool* + store %TName_Bool* %"$key1_found_795", %TName_Bool** %key1_found, align 8 + %"$key1_found_796" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 + %"$$key1_found_796_797" = bitcast %TName_Bool* %"$key1_found_796" to i8* + %"$_literal_cost_call_798" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_61", i8* %"$$key1_found_796_797") + %"$gasadd_799" = add i64 %"$_literal_cost_call_798", 0 + %"$gasadd_800" = add i64 %"$gasadd_799", 1 %"$gasrem_801" = load i64, i64* @_gasrem, align 8 - %"$gascmp_802" = icmp ugt i64 1, %"$gasrem_801" + %"$gascmp_802" = icmp ugt i64 %"$gasadd_800", %"$gasrem_801" br i1 %"$gascmp_802", label %"$out_of_gas_803", label %"$have_gas_804" -"$out_of_gas_803": ; preds = %"$have_gas_798" +"$out_of_gas_803": ; preds = %"$have_gas_786" call void @_out_of_gas() br label %"$have_gas_804" -"$have_gas_804": ; preds = %"$out_of_gas_803", %"$have_gas_798" - %"$consume_805" = sub i64 %"$gasrem_801", 1 +"$have_gas_804": ; preds = %"$out_of_gas_803", %"$have_gas_786" + %"$consume_805" = sub i64 %"$gasrem_801", %"$gasadd_800" store i64 %"$consume_805", i64* @_gasrem, align 8 - %key1 = alloca %String, align 8 %"$gasrem_806" = load i64, i64* @_gasrem, align 8 - %"$gascmp_807" = icmp ugt i64 1, %"$gasrem_806" + %"$gascmp_807" = icmp ugt i64 2, %"$gasrem_806" br i1 %"$gascmp_807", label %"$out_of_gas_808", label %"$have_gas_809" "$out_of_gas_808": ; preds = %"$have_gas_804" @@ -1765,762 +1774,721 @@ entry: br label %"$have_gas_809" "$have_gas_809": ; preds = %"$out_of_gas_808", %"$have_gas_804" - %"$consume_810" = sub i64 %"$gasrem_806", 1 + %"$consume_810" = sub i64 %"$gasrem_806", 2 store i64 %"$consume_810", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_811", i32 0, i32 0), i32 4 }, %String* %key1, align 8 - %key1_found = alloca %TName_Bool*, align 8 - %"$indices_buf_812_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_812_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_812_salloc_load", i64 16) - %"$indices_buf_812_salloc" = bitcast i8* %"$indices_buf_812_salloc_salloc" to [16 x i8]* - %"$indices_buf_812" = bitcast [16 x i8]* %"$indices_buf_812_salloc" to i8* - %"$key1_813" = load %String, %String* %key1, align 8 - %"$indices_gep_814" = getelementptr i8, i8* %"$indices_buf_812", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_814" to %String* - store %String %"$key1_813", %String* %indices_cast, align 8 - %"$execptr_load_816" = load i8*, i8** @_execptr, align 8 - %"$key1_found_call_817" = call i8* @_fetch_field(i8* %"$execptr_load_816", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_815", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_812", i32 0) - %"$key1_found_818" = bitcast i8* %"$key1_found_call_817" to %TName_Bool* - store %TName_Bool* %"$key1_found_818", %TName_Bool** %key1_found, align 8 - %"$key1_found_819" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 - %"$$key1_found_819_820" = bitcast %TName_Bool* %"$key1_found_819" to i8* - %"$_literal_cost_call_821" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_69", i8* %"$$key1_found_819_820") - %"$gasadd_822" = add i64 %"$_literal_cost_call_821", 0 - %"$gasadd_823" = add i64 %"$gasadd_822", 1 - %"$gasrem_824" = load i64, i64* @_gasrem, align 8 - %"$gascmp_825" = icmp ugt i64 %"$gasadd_823", %"$gasrem_824" - br i1 %"$gascmp_825", label %"$out_of_gas_826", label %"$have_gas_827" - -"$out_of_gas_826": ; preds = %"$have_gas_809" - call void @_out_of_gas() - br label %"$have_gas_827" - -"$have_gas_827": ; preds = %"$out_of_gas_826", %"$have_gas_809" - %"$consume_828" = sub i64 %"$gasrem_824", %"$gasadd_823" - store i64 %"$consume_828", i64* @_gasrem, align 8 - %"$gasrem_829" = load i64, i64* @_gasrem, align 8 - %"$gascmp_830" = icmp ugt i64 2, %"$gasrem_829" - br i1 %"$gascmp_830", label %"$out_of_gas_831", label %"$have_gas_832" - -"$out_of_gas_831": ; preds = %"$have_gas_827" - call void @_out_of_gas() - br label %"$have_gas_832" - -"$have_gas_832": ; preds = %"$out_of_gas_831", %"$have_gas_827" - %"$consume_833" = sub i64 %"$gasrem_829", 2 - store i64 %"$consume_833", i64* @_gasrem, align 8 - %"$key1_found_835" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 - %"$key1_found_tag_836" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$key1_found_835", i32 0, i32 0 - %"$key1_found_tag_837" = load i8, i8* %"$key1_found_tag_836", align 1 - switch i8 %"$key1_found_tag_837", label %"$empty_default_838" [ - i8 0, label %"$True_839" - i8 1, label %"$False_849" + %"$key1_found_812" = load %TName_Bool*, %TName_Bool** %key1_found, align 8 + %"$key1_found_tag_813" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$key1_found_812", i32 0, i32 0 + %"$key1_found_tag_814" = load i8, i8* %"$key1_found_tag_813", align 1 + switch i8 %"$key1_found_tag_814", label %"$empty_default_815" [ + i8 0, label %"$True_816" + i8 1, label %"$False_826" ] -"$True_839": ; preds = %"$have_gas_832" - %"$key1_found_840" = bitcast %TName_Bool* %"$key1_found_835" to %CName_True* - %"$gasrem_841" = load i64, i64* @_gasrem, align 8 - %"$gascmp_842" = icmp ugt i64 1, %"$gasrem_841" - br i1 %"$gascmp_842", label %"$out_of_gas_843", label %"$have_gas_844" +"$True_816": ; preds = %"$have_gas_809" + %"$key1_found_817" = bitcast %TName_Bool* %"$key1_found_812" to %CName_True* + %"$gasrem_818" = load i64, i64* @_gasrem, align 8 + %"$gascmp_819" = icmp ugt i64 1, %"$gasrem_818" + br i1 %"$gascmp_819", label %"$out_of_gas_820", label %"$have_gas_821" -"$out_of_gas_843": ; preds = %"$True_839" +"$out_of_gas_820": ; preds = %"$True_816" call void @_out_of_gas() - br label %"$have_gas_844" + br label %"$have_gas_821" -"$have_gas_844": ; preds = %"$out_of_gas_843", %"$True_839" - %"$consume_845" = sub i64 %"$gasrem_841", 1 - store i64 %"$consume_845", i64* @_gasrem, align 8 - %"$fail__origin_846" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_846", align 1 - %"$fail__sender_847" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_847", align 1 - %"$tname_848" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_846", [20 x i8]* %"$fail__sender_847", %String %"$tname_848") - br label %"$matchsucc_834" +"$have_gas_821": ; preds = %"$out_of_gas_820", %"$True_816" + %"$consume_822" = sub i64 %"$gasrem_818", 1 + store i64 %"$consume_822", i64* @_gasrem, align 8 + %"$fail__origin_823" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_823", align 1 + %"$fail__sender_824" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_824", align 1 + %"$tname_825" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_823", [20 x i8]* %"$fail__sender_824", %String %"$tname_825") + br label %"$matchsucc_811" -"$False_849": ; preds = %"$have_gas_832" - %"$key1_found_850" = bitcast %TName_Bool* %"$key1_found_835" to %CName_False* - br label %"$matchsucc_834" +"$False_826": ; preds = %"$have_gas_809" + %"$key1_found_827" = bitcast %TName_Bool* %"$key1_found_812" to %CName_False* + br label %"$matchsucc_811" -"$empty_default_838": ; preds = %"$have_gas_832" - br label %"$matchsucc_834" +"$empty_default_815": ; preds = %"$have_gas_809" + br label %"$matchsucc_811" -"$matchsucc_834": ; preds = %"$False_849", %"$have_gas_844", %"$empty_default_838" - %"$gasrem_851" = load i64, i64* @_gasrem, align 8 - %"$gascmp_852" = icmp ugt i64 1, %"$gasrem_851" - br i1 %"$gascmp_852", label %"$out_of_gas_853", label %"$have_gas_854" +"$matchsucc_811": ; preds = %"$False_826", %"$have_gas_821", %"$empty_default_815" + %"$gasrem_828" = load i64, i64* @_gasrem, align 8 + %"$gascmp_829" = icmp ugt i64 1, %"$gasrem_828" + br i1 %"$gascmp_829", label %"$out_of_gas_830", label %"$have_gas_831" -"$out_of_gas_853": ; preds = %"$matchsucc_834" +"$out_of_gas_830": ; preds = %"$matchsucc_811" call void @_out_of_gas() - br label %"$have_gas_854" + br label %"$have_gas_831" -"$have_gas_854": ; preds = %"$out_of_gas_853", %"$matchsucc_834" - %"$consume_855" = sub i64 %"$gasrem_851", 1 - store i64 %"$consume_855", i64* @_gasrem, align 8 +"$have_gas_831": ; preds = %"$out_of_gas_830", %"$matchsucc_811" + %"$consume_832" = sub i64 %"$gasrem_828", 1 + store i64 %"$consume_832", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_856" = load i64, i64* @_gasrem, align 8 - %"$gascmp_857" = icmp ugt i64 1, %"$gasrem_856" - br i1 %"$gascmp_857", label %"$out_of_gas_858", label %"$have_gas_859" + %"$gasrem_833" = load i64, i64* @_gasrem, align 8 + %"$gascmp_834" = icmp ugt i64 1, %"$gasrem_833" + br i1 %"$gascmp_834", label %"$out_of_gas_835", label %"$have_gas_836" -"$out_of_gas_858": ; preds = %"$have_gas_854" +"$out_of_gas_835": ; preds = %"$have_gas_831" call void @_out_of_gas() - br label %"$have_gas_859" + br label %"$have_gas_836" -"$have_gas_859": ; preds = %"$out_of_gas_858", %"$have_gas_854" - %"$consume_860" = sub i64 %"$gasrem_856", 1 - store i64 %"$consume_860", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_861", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 - %"$gasrem_862" = load i64, i64* @_gasrem, align 8 - %"$gascmp_863" = icmp ugt i64 1, %"$gasrem_862" - br i1 %"$gascmp_863", label %"$out_of_gas_864", label %"$have_gas_865" +"$have_gas_836": ; preds = %"$out_of_gas_835", %"$have_gas_831" + %"$consume_837" = sub i64 %"$gasrem_833", 1 + store i64 %"$consume_837", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_838", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 + %"$gasrem_839" = load i64, i64* @_gasrem, align 8 + %"$gascmp_840" = icmp ugt i64 1, %"$gasrem_839" + br i1 %"$gascmp_840", label %"$out_of_gas_841", label %"$have_gas_842" -"$out_of_gas_864": ; preds = %"$have_gas_859" +"$out_of_gas_841": ; preds = %"$have_gas_836" call void @_out_of_gas() - br label %"$have_gas_865" + br label %"$have_gas_842" -"$have_gas_865": ; preds = %"$out_of_gas_864", %"$have_gas_859" - %"$consume_866" = sub i64 %"$gasrem_862", 1 - store i64 %"$consume_866", i64* @_gasrem, align 8 +"$have_gas_842": ; preds = %"$out_of_gas_841", %"$have_gas_836" + %"$consume_843" = sub i64 %"$gasrem_839", 1 + store i64 %"$consume_843", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_867" = load i64, i64* @_gasrem, align 8 - %"$gascmp_868" = icmp ugt i64 1, %"$gasrem_867" - br i1 %"$gascmp_868", label %"$out_of_gas_869", label %"$have_gas_870" + %"$gasrem_844" = load i64, i64* @_gasrem, align 8 + %"$gascmp_845" = icmp ugt i64 1, %"$gasrem_844" + br i1 %"$gascmp_845", label %"$out_of_gas_846", label %"$have_gas_847" -"$out_of_gas_869": ; preds = %"$have_gas_865" +"$out_of_gas_846": ; preds = %"$have_gas_842" call void @_out_of_gas() - br label %"$have_gas_870" + br label %"$have_gas_847" -"$have_gas_870": ; preds = %"$out_of_gas_869", %"$have_gas_865" - %"$consume_871" = sub i64 %"$gasrem_867", 1 - store i64 %"$consume_871", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_872", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 - %"$gasrem_873" = load i64, i64* @_gasrem, align 8 - %"$gascmp_874" = icmp ugt i64 1, %"$gasrem_873" - br i1 %"$gascmp_874", label %"$out_of_gas_875", label %"$have_gas_876" +"$have_gas_847": ; preds = %"$out_of_gas_846", %"$have_gas_842" + %"$consume_848" = sub i64 %"$gasrem_844", 1 + store i64 %"$consume_848", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_849", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 + %"$gasrem_850" = load i64, i64* @_gasrem, align 8 + %"$gascmp_851" = icmp ugt i64 1, %"$gasrem_850" + br i1 %"$gascmp_851", label %"$out_of_gas_852", label %"$have_gas_853" -"$out_of_gas_875": ; preds = %"$have_gas_870" +"$out_of_gas_852": ; preds = %"$have_gas_847" call void @_out_of_gas() - br label %"$have_gas_876" + br label %"$have_gas_853" -"$have_gas_876": ; preds = %"$out_of_gas_875", %"$have_gas_870" - %"$consume_877" = sub i64 %"$gasrem_873", 1 - store i64 %"$consume_877", i64* @_gasrem, align 8 +"$have_gas_853": ; preds = %"$out_of_gas_852", %"$have_gas_847" + %"$consume_854" = sub i64 %"$gasrem_850", 1 + store i64 %"$consume_854", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_878" = load i64, i64* @_gasrem, align 8 - %"$gascmp_879" = icmp ugt i64 1, %"$gasrem_878" - br i1 %"$gascmp_879", label %"$out_of_gas_880", label %"$have_gas_881" - -"$out_of_gas_880": ; preds = %"$have_gas_876" - call void @_out_of_gas() - br label %"$have_gas_881" - -"$have_gas_881": ; preds = %"$out_of_gas_880", %"$have_gas_876" - %"$consume_882" = sub i64 %"$gasrem_878", 1 - store i64 %"$consume_882", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_883", i32 0, i32 0), i32 3 }, %String* %s, align 8 - %"$_literal_cost_s_884" = alloca %String, align 8 - %"$s_885" = load %String, %String* %s, align 8 - store %String %"$s_885", %String* %"$_literal_cost_s_884", align 8 - %"$$_literal_cost_s_884_886" = bitcast %String* %"$_literal_cost_s_884" to i8* - %"$_literal_cost_call_887" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_884_886") - %"$gasadd_888" = add i64 %"$_literal_cost_call_887", 2 - %"$gasrem_889" = load i64, i64* @_gasrem, align 8 - %"$gascmp_890" = icmp ugt i64 %"$gasadd_888", %"$gasrem_889" - br i1 %"$gascmp_890", label %"$out_of_gas_891", label %"$have_gas_892" - -"$out_of_gas_891": ; preds = %"$have_gas_881" - call void @_out_of_gas() - br label %"$have_gas_892" - -"$have_gas_892": ; preds = %"$out_of_gas_891", %"$have_gas_881" - %"$consume_893" = sub i64 %"$gasrem_889", %"$gasadd_888" - store i64 %"$consume_893", i64* @_gasrem, align 8 - %"$indices_buf_894_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_894_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_894_salloc_load", i64 32) - %"$indices_buf_894_salloc" = bitcast i8* %"$indices_buf_894_salloc_salloc" to [32 x i8]* - %"$indices_buf_894" = bitcast [32 x i8]* %"$indices_buf_894_salloc" to i8* - %"$key1a_895" = load %String, %String* %key1a, align 8 - %"$indices_gep_896" = getelementptr i8, i8* %"$indices_buf_894", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_896" to %String* - store %String %"$key1a_895", %String* %indices_cast1, align 8 - %"$key2a_897" = load %String, %String* %key2a, align 8 - %"$indices_gep_898" = getelementptr i8, i8* %"$indices_buf_894", i32 16 - %indices_cast2 = bitcast i8* %"$indices_gep_898" to %String* - store %String %"$key2a_897", %String* %indices_cast2, align 8 - %"$execptr_load_899" = load i8*, i8** @_execptr, align 8 - %"$s_901" = load %String, %String* %s, align 8 - %"$update_value_902" = alloca %String, align 8 - store %String %"$s_901", %String* %"$update_value_902", align 8 - %"$update_value_903" = bitcast %String* %"$update_value_902" to i8* - call void @_update_field(i8* %"$execptr_load_899", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_900", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_894", i8* %"$update_value_903") + %"$gasrem_855" = load i64, i64* @_gasrem, align 8 + %"$gascmp_856" = icmp ugt i64 1, %"$gasrem_855" + br i1 %"$gascmp_856", label %"$out_of_gas_857", label %"$have_gas_858" + +"$out_of_gas_857": ; preds = %"$have_gas_853" + call void @_out_of_gas() + br label %"$have_gas_858" + +"$have_gas_858": ; preds = %"$out_of_gas_857", %"$have_gas_853" + %"$consume_859" = sub i64 %"$gasrem_855", 1 + store i64 %"$consume_859", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_860", i32 0, i32 0), i32 3 }, %String* %s, align 8 + %"$_literal_cost_s_861" = alloca %String, align 8 + %"$s_862" = load %String, %String* %s, align 8 + store %String %"$s_862", %String* %"$_literal_cost_s_861", align 8 + %"$$_literal_cost_s_861_863" = bitcast %String* %"$_literal_cost_s_861" to i8* + %"$_literal_cost_call_864" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_861_863") + %"$gasadd_865" = add i64 %"$_literal_cost_call_864", 2 + %"$gasrem_866" = load i64, i64* @_gasrem, align 8 + %"$gascmp_867" = icmp ugt i64 %"$gasadd_865", %"$gasrem_866" + br i1 %"$gascmp_867", label %"$out_of_gas_868", label %"$have_gas_869" + +"$out_of_gas_868": ; preds = %"$have_gas_858" + call void @_out_of_gas() + br label %"$have_gas_869" + +"$have_gas_869": ; preds = %"$out_of_gas_868", %"$have_gas_858" + %"$consume_870" = sub i64 %"$gasrem_866", %"$gasadd_865" + store i64 %"$consume_870", i64* @_gasrem, align 8 + %"$indices_buf_871_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_871_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_871_salloc_load", i64 32) + %"$indices_buf_871_salloc" = bitcast i8* %"$indices_buf_871_salloc_salloc" to [32 x i8]* + %"$indices_buf_871" = bitcast [32 x i8]* %"$indices_buf_871_salloc" to i8* + %"$key1a_872" = load %String, %String* %key1a, align 8 + %"$indices_gep_873" = getelementptr i8, i8* %"$indices_buf_871", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_873" to %String* + store %String %"$key1a_872", %String* %indices_cast1, align 8 + %"$key2a_874" = load %String, %String* %key2a, align 8 + %"$indices_gep_875" = getelementptr i8, i8* %"$indices_buf_871", i32 16 + %indices_cast2 = bitcast i8* %"$indices_gep_875" to %String* + store %String %"$key2a_874", %String* %indices_cast2, align 8 + %"$execptr_load_876" = load i8*, i8** @_execptr, align 8 + %"$s_878" = load %String, %String* %s, align 8 + %"$update_value_879" = alloca %String, align 8 + store %String %"$s_878", %String* %"$update_value_879", align 8 + %"$update_value_880" = bitcast %String* %"$update_value_879" to i8* + call void @_update_field(i8* %"$execptr_load_876", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_877", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_871", i8* %"$update_value_880") ret void } define void @t4(i8* %0) { entry: - %"$_amount_905" = getelementptr i8, i8* %0, i32 0 - %"$_amount_906" = bitcast i8* %"$_amount_905" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_906", align 8 - %"$_origin_907" = getelementptr i8, i8* %0, i32 16 - %"$_origin_908" = bitcast i8* %"$_origin_907" to [20 x i8]* - %"$_sender_909" = getelementptr i8, i8* %0, i32 36 - %"$_sender_910" = bitcast i8* %"$_sender_909" to [20 x i8]* - call void @"$t4_787"(%Uint128 %_amount, [20 x i8]* %"$_origin_908", [20 x i8]* %"$_sender_910") + %"$_amount_882" = getelementptr i8, i8* %0, i32 0 + %"$_amount_883" = bitcast i8* %"$_amount_882" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_883", align 8 + %"$_origin_884" = getelementptr i8, i8* %0, i32 16 + %"$_origin_885" = bitcast i8* %"$_origin_884" to [20 x i8]* + %"$_sender_886" = getelementptr i8, i8* %0, i32 36 + %"$_sender_887" = bitcast i8* %"$_sender_886" to [20 x i8]* + call void @"$t4_764"(%Uint128 %_amount, [20 x i8]* %"$_origin_885", [20 x i8]* %"$_sender_887") ret void } -define internal void @"$t5_911"(%Uint128 %_amount, [20 x i8]* %"$_origin_912", [20 x i8]* %"$_sender_913") { +define internal void @"$t5_888"(%Uint128 %_amount, [20 x i8]* %"$_origin_889", [20 x i8]* %"$_sender_890") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_912", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_913", align 1 - %"$gasrem_914" = load i64, i64* @_gasrem, align 8 - %"$gascmp_915" = icmp ugt i64 1, %"$gasrem_914" - br i1 %"$gascmp_915", label %"$out_of_gas_916", label %"$have_gas_917" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_889", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_890", align 1 + %"$gasrem_891" = load i64, i64* @_gasrem, align 8 + %"$gascmp_892" = icmp ugt i64 1, %"$gasrem_891" + br i1 %"$gascmp_892", label %"$out_of_gas_893", label %"$have_gas_894" -"$out_of_gas_916": ; preds = %entry +"$out_of_gas_893": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_917" + br label %"$have_gas_894" -"$have_gas_917": ; preds = %"$out_of_gas_916", %entry - %"$consume_918" = sub i64 %"$gasrem_914", 1 - store i64 %"$consume_918", i64* @_gasrem, align 8 +"$have_gas_894": ; preds = %"$out_of_gas_893", %entry + %"$consume_895" = sub i64 %"$gasrem_891", 1 + store i64 %"$consume_895", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_919" = load i64, i64* @_gasrem, align 8 - %"$gascmp_920" = icmp ugt i64 1, %"$gasrem_919" - br i1 %"$gascmp_920", label %"$out_of_gas_921", label %"$have_gas_922" + %"$gasrem_896" = load i64, i64* @_gasrem, align 8 + %"$gascmp_897" = icmp ugt i64 1, %"$gasrem_896" + br i1 %"$gascmp_897", label %"$out_of_gas_898", label %"$have_gas_899" -"$out_of_gas_921": ; preds = %"$have_gas_917" +"$out_of_gas_898": ; preds = %"$have_gas_894" call void @_out_of_gas() - br label %"$have_gas_922" + br label %"$have_gas_899" -"$have_gas_922": ; preds = %"$out_of_gas_921", %"$have_gas_917" - %"$consume_923" = sub i64 %"$gasrem_919", 1 - store i64 %"$consume_923", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_924", i32 0, i32 0), i32 2 }, %String* %tname, align 8 - %"$gasrem_925" = load i64, i64* @_gasrem, align 8 - %"$gascmp_926" = icmp ugt i64 1, %"$gasrem_925" - br i1 %"$gascmp_926", label %"$out_of_gas_927", label %"$have_gas_928" +"$have_gas_899": ; preds = %"$out_of_gas_898", %"$have_gas_894" + %"$consume_900" = sub i64 %"$gasrem_896", 1 + store i64 %"$consume_900", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_901", i32 0, i32 0), i32 2 }, %String* %tname, align 8 + %"$gasrem_902" = load i64, i64* @_gasrem, align 8 + %"$gascmp_903" = icmp ugt i64 1, %"$gasrem_902" + br i1 %"$gascmp_903", label %"$out_of_gas_904", label %"$have_gas_905" -"$out_of_gas_927": ; preds = %"$have_gas_922" +"$out_of_gas_904": ; preds = %"$have_gas_899" call void @_out_of_gas() - br label %"$have_gas_928" + br label %"$have_gas_905" -"$have_gas_928": ; preds = %"$out_of_gas_927", %"$have_gas_922" - %"$consume_929" = sub i64 %"$gasrem_925", 1 - store i64 %"$consume_929", i64* @_gasrem, align 8 +"$have_gas_905": ; preds = %"$out_of_gas_904", %"$have_gas_899" + %"$consume_906" = sub i64 %"$gasrem_902", 1 + store i64 %"$consume_906", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_930" = load i64, i64* @_gasrem, align 8 - %"$gascmp_931" = icmp ugt i64 1, %"$gasrem_930" - br i1 %"$gascmp_931", label %"$out_of_gas_932", label %"$have_gas_933" + %"$gasrem_907" = load i64, i64* @_gasrem, align 8 + %"$gascmp_908" = icmp ugt i64 1, %"$gasrem_907" + br i1 %"$gascmp_908", label %"$out_of_gas_909", label %"$have_gas_910" -"$out_of_gas_932": ; preds = %"$have_gas_928" +"$out_of_gas_909": ; preds = %"$have_gas_905" call void @_out_of_gas() - br label %"$have_gas_933" + br label %"$have_gas_910" -"$have_gas_933": ; preds = %"$out_of_gas_932", %"$have_gas_928" - %"$consume_934" = sub i64 %"$gasrem_930", 1 - store i64 %"$consume_934", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_935", i32 0, i32 0), i32 3 }, %String* %s, align 8 - %"$gasrem_936" = load i64, i64* @_gasrem, align 8 - %"$gascmp_937" = icmp ugt i64 1, %"$gasrem_936" - br i1 %"$gascmp_937", label %"$out_of_gas_938", label %"$have_gas_939" +"$have_gas_910": ; preds = %"$out_of_gas_909", %"$have_gas_905" + %"$consume_911" = sub i64 %"$gasrem_907", 1 + store i64 %"$consume_911", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_912", i32 0, i32 0), i32 3 }, %String* %s, align 8 + %"$gasrem_913" = load i64, i64* @_gasrem, align 8 + %"$gascmp_914" = icmp ugt i64 1, %"$gasrem_913" + br i1 %"$gascmp_914", label %"$out_of_gas_915", label %"$have_gas_916" -"$out_of_gas_938": ; preds = %"$have_gas_933" +"$out_of_gas_915": ; preds = %"$have_gas_910" call void @_out_of_gas() - br label %"$have_gas_939" + br label %"$have_gas_916" -"$have_gas_939": ; preds = %"$out_of_gas_938", %"$have_gas_933" - %"$consume_940" = sub i64 %"$gasrem_936", 1 - store i64 %"$consume_940", i64* @_gasrem, align 8 +"$have_gas_916": ; preds = %"$out_of_gas_915", %"$have_gas_910" + %"$consume_917" = sub i64 %"$gasrem_913", 1 + store i64 %"$consume_917", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_941" = load i64, i64* @_gasrem, align 8 - %"$gascmp_942" = icmp ugt i64 1, %"$gasrem_941" - br i1 %"$gascmp_942", label %"$out_of_gas_943", label %"$have_gas_944" + %"$gasrem_918" = load i64, i64* @_gasrem, align 8 + %"$gascmp_919" = icmp ugt i64 1, %"$gasrem_918" + br i1 %"$gascmp_919", label %"$out_of_gas_920", label %"$have_gas_921" -"$out_of_gas_943": ; preds = %"$have_gas_939" +"$out_of_gas_920": ; preds = %"$have_gas_916" call void @_out_of_gas() - br label %"$have_gas_944" + br label %"$have_gas_921" -"$have_gas_944": ; preds = %"$out_of_gas_943", %"$have_gas_939" - %"$consume_945" = sub i64 %"$gasrem_941", 1 - store i64 %"$consume_945", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_946", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 - %"$gasrem_947" = load i64, i64* @_gasrem, align 8 - %"$gascmp_948" = icmp ugt i64 1, %"$gasrem_947" - br i1 %"$gascmp_948", label %"$out_of_gas_949", label %"$have_gas_950" +"$have_gas_921": ; preds = %"$out_of_gas_920", %"$have_gas_916" + %"$consume_922" = sub i64 %"$gasrem_918", 1 + store i64 %"$consume_922", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_923", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 + %"$gasrem_924" = load i64, i64* @_gasrem, align 8 + %"$gascmp_925" = icmp ugt i64 1, %"$gasrem_924" + br i1 %"$gascmp_925", label %"$out_of_gas_926", label %"$have_gas_927" -"$out_of_gas_949": ; preds = %"$have_gas_944" +"$out_of_gas_926": ; preds = %"$have_gas_921" call void @_out_of_gas() - br label %"$have_gas_950" + br label %"$have_gas_927" -"$have_gas_950": ; preds = %"$out_of_gas_949", %"$have_gas_944" - %"$consume_951" = sub i64 %"$gasrem_947", 1 - store i64 %"$consume_951", i64* @_gasrem, align 8 +"$have_gas_927": ; preds = %"$out_of_gas_926", %"$have_gas_921" + %"$consume_928" = sub i64 %"$gasrem_924", 1 + store i64 %"$consume_928", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_952" = load i64, i64* @_gasrem, align 8 - %"$gascmp_953" = icmp ugt i64 1, %"$gasrem_952" - br i1 %"$gascmp_953", label %"$out_of_gas_954", label %"$have_gas_955" + %"$gasrem_929" = load i64, i64* @_gasrem, align 8 + %"$gascmp_930" = icmp ugt i64 1, %"$gasrem_929" + br i1 %"$gascmp_930", label %"$out_of_gas_931", label %"$have_gas_932" -"$out_of_gas_954": ; preds = %"$have_gas_950" +"$out_of_gas_931": ; preds = %"$have_gas_927" call void @_out_of_gas() - br label %"$have_gas_955" + br label %"$have_gas_932" -"$have_gas_955": ; preds = %"$out_of_gas_954", %"$have_gas_950" - %"$consume_956" = sub i64 %"$gasrem_952", 1 - store i64 %"$consume_956", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_957", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 +"$have_gas_932": ; preds = %"$out_of_gas_931", %"$have_gas_927" + %"$consume_933" = sub i64 %"$gasrem_929", 1 + store i64 %"$consume_933", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_934", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 %val = alloca %TName_Option_String*, align 8 - %"$indices_buf_958_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_958_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_958_salloc_load", i64 32) - %"$indices_buf_958_salloc" = bitcast i8* %"$indices_buf_958_salloc_salloc" to [32 x i8]* - %"$indices_buf_958" = bitcast [32 x i8]* %"$indices_buf_958_salloc" to i8* - %"$key1a_959" = load %String, %String* %key1a, align 8 - %"$indices_gep_960" = getelementptr i8, i8* %"$indices_buf_958", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_960" to %String* - store %String %"$key1a_959", %String* %indices_cast, align 8 - %"$key2a_961" = load %String, %String* %key2a, align 8 - %"$indices_gep_962" = getelementptr i8, i8* %"$indices_buf_958", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_962" to %String* - store %String %"$key2a_961", %String* %indices_cast1, align 8 - %"$execptr_load_964" = load i8*, i8** @_execptr, align 8 - %"$val_call_965" = call i8* @_fetch_field(i8* %"$execptr_load_964", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_963", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_958", i32 1) - %"$val_966" = bitcast i8* %"$val_call_965" to %TName_Option_String* - store %TName_Option_String* %"$val_966", %TName_Option_String** %val, align 8 - %"$val_967" = load %TName_Option_String*, %TName_Option_String** %val, align 8 - %"$$val_967_968" = bitcast %TName_Option_String* %"$val_967" to i8* - %"$_literal_cost_call_969" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$val_967_968") - %"$gasadd_970" = add i64 %"$_literal_cost_call_969", 0 - %"$gasadd_971" = add i64 %"$gasadd_970", 2 - %"$gasrem_972" = load i64, i64* @_gasrem, align 8 - %"$gascmp_973" = icmp ugt i64 %"$gasadd_971", %"$gasrem_972" - br i1 %"$gascmp_973", label %"$out_of_gas_974", label %"$have_gas_975" - -"$out_of_gas_974": ; preds = %"$have_gas_955" - call void @_out_of_gas() - br label %"$have_gas_975" - -"$have_gas_975": ; preds = %"$out_of_gas_974", %"$have_gas_955" - %"$consume_976" = sub i64 %"$gasrem_972", %"$gasadd_971" - store i64 %"$consume_976", i64* @_gasrem, align 8 - %"$gasrem_977" = load i64, i64* @_gasrem, align 8 - %"$gascmp_978" = icmp ugt i64 2, %"$gasrem_977" - br i1 %"$gascmp_978", label %"$out_of_gas_979", label %"$have_gas_980" - -"$out_of_gas_979": ; preds = %"$have_gas_975" - call void @_out_of_gas() - br label %"$have_gas_980" - -"$have_gas_980": ; preds = %"$out_of_gas_979", %"$have_gas_975" - %"$consume_981" = sub i64 %"$gasrem_977", 2 - store i64 %"$consume_981", i64* @_gasrem, align 8 - %"$val_983" = load %TName_Option_String*, %TName_Option_String** %val, align 8 - %"$val_tag_984" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val_983", i32 0, i32 0 - %"$val_tag_985" = load i8, i8* %"$val_tag_984", align 1 - switch i8 %"$val_tag_985", label %"$empty_default_986" [ - i8 0, label %"$Some_987" - i8 1, label %"$None_1049" + %"$indices_buf_935_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_935_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_935_salloc_load", i64 32) + %"$indices_buf_935_salloc" = bitcast i8* %"$indices_buf_935_salloc_salloc" to [32 x i8]* + %"$indices_buf_935" = bitcast [32 x i8]* %"$indices_buf_935_salloc" to i8* + %"$key1a_936" = load %String, %String* %key1a, align 8 + %"$indices_gep_937" = getelementptr i8, i8* %"$indices_buf_935", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_937" to %String* + store %String %"$key1a_936", %String* %indices_cast, align 8 + %"$key2a_938" = load %String, %String* %key2a, align 8 + %"$indices_gep_939" = getelementptr i8, i8* %"$indices_buf_935", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_939" to %String* + store %String %"$key2a_938", %String* %indices_cast1, align 8 + %"$execptr_load_941" = load i8*, i8** @_execptr, align 8 + %"$val_call_942" = call i8* @_fetch_field(i8* %"$execptr_load_941", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_940", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_935", i32 1) + %"$val_943" = bitcast i8* %"$val_call_942" to %TName_Option_String* + store %TName_Option_String* %"$val_943", %TName_Option_String** %val, align 8 + %"$val_944" = load %TName_Option_String*, %TName_Option_String** %val, align 8 + %"$$val_944_945" = bitcast %TName_Option_String* %"$val_944" to i8* + %"$_literal_cost_call_946" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$val_944_945") + %"$gasadd_947" = add i64 %"$_literal_cost_call_946", 0 + %"$gasadd_948" = add i64 %"$gasadd_947", 2 + %"$gasrem_949" = load i64, i64* @_gasrem, align 8 + %"$gascmp_950" = icmp ugt i64 %"$gasadd_948", %"$gasrem_949" + br i1 %"$gascmp_950", label %"$out_of_gas_951", label %"$have_gas_952" + +"$out_of_gas_951": ; preds = %"$have_gas_932" + call void @_out_of_gas() + br label %"$have_gas_952" + +"$have_gas_952": ; preds = %"$out_of_gas_951", %"$have_gas_932" + %"$consume_953" = sub i64 %"$gasrem_949", %"$gasadd_948" + store i64 %"$consume_953", i64* @_gasrem, align 8 + %"$gasrem_954" = load i64, i64* @_gasrem, align 8 + %"$gascmp_955" = icmp ugt i64 2, %"$gasrem_954" + br i1 %"$gascmp_955", label %"$out_of_gas_956", label %"$have_gas_957" + +"$out_of_gas_956": ; preds = %"$have_gas_952" + call void @_out_of_gas() + br label %"$have_gas_957" + +"$have_gas_957": ; preds = %"$out_of_gas_956", %"$have_gas_952" + %"$consume_958" = sub i64 %"$gasrem_954", 2 + store i64 %"$consume_958", i64* @_gasrem, align 8 + %"$val_960" = load %TName_Option_String*, %TName_Option_String** %val, align 8 + %"$val_tag_961" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$val_960", i32 0, i32 0 + %"$val_tag_962" = load i8, i8* %"$val_tag_961", align 1 + switch i8 %"$val_tag_962", label %"$empty_default_963" [ + i8 0, label %"$Some_964" + i8 1, label %"$None_1026" ] -"$Some_987": ; preds = %"$have_gas_980" - %"$val_988" = bitcast %TName_Option_String* %"$val_983" to %CName_Some_String* - %"$v_gep_989" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val_988", i32 0, i32 1 - %"$v_load_990" = load %String, %String* %"$v_gep_989", align 8 +"$Some_964": ; preds = %"$have_gas_957" + %"$val_965" = bitcast %TName_Option_String* %"$val_960" to %CName_Some_String* + %"$v_gep_966" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$val_965", i32 0, i32 1 + %"$v_load_967" = load %String, %String* %"$v_gep_966", align 8 %v = alloca %String, align 8 - store %String %"$v_load_990", %String* %v, align 8 - %"$gasrem_991" = load i64, i64* @_gasrem, align 8 - %"$gascmp_992" = icmp ugt i64 1, %"$gasrem_991" - br i1 %"$gascmp_992", label %"$out_of_gas_993", label %"$have_gas_994" + store %String %"$v_load_967", %String* %v, align 8 + %"$gasrem_968" = load i64, i64* @_gasrem, align 8 + %"$gascmp_969" = icmp ugt i64 1, %"$gasrem_968" + br i1 %"$gascmp_969", label %"$out_of_gas_970", label %"$have_gas_971" -"$out_of_gas_993": ; preds = %"$Some_987" +"$out_of_gas_970": ; preds = %"$Some_964" call void @_out_of_gas() - br label %"$have_gas_994" + br label %"$have_gas_971" -"$have_gas_994": ; preds = %"$out_of_gas_993", %"$Some_987" - %"$consume_995" = sub i64 %"$gasrem_991", 1 - store i64 %"$consume_995", i64* @_gasrem, align 8 +"$have_gas_971": ; preds = %"$out_of_gas_970", %"$Some_964" + %"$consume_972" = sub i64 %"$gasrem_968", 1 + store i64 %"$consume_972", i64* @_gasrem, align 8 %t = alloca %TName_Bool*, align 8 - %"$_literal_cost_v_996" = alloca %String, align 8 - %"$v_997" = load %String, %String* %v, align 8 - store %String %"$v_997", %String* %"$_literal_cost_v_996", align 8 - %"$$_literal_cost_v_996_998" = bitcast %String* %"$_literal_cost_v_996" to i8* - %"$_literal_cost_call_999" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_996_998") - %"$_literal_cost_s_1000" = alloca %String, align 8 - %"$s_1001" = load %String, %String* %s, align 8 - store %String %"$s_1001", %String* %"$_literal_cost_s_1000", align 8 - %"$$_literal_cost_s_1000_1002" = bitcast %String* %"$_literal_cost_s_1000" to i8* - %"$_literal_cost_call_1003" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_1000_1002") - %"$gasmin_1004" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_999", i64 %"$_literal_cost_call_1003") - %"$gasrem_1005" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1006" = icmp ugt i64 %"$gasmin_1004", %"$gasrem_1005" - br i1 %"$gascmp_1006", label %"$out_of_gas_1007", label %"$have_gas_1008" - -"$out_of_gas_1007": ; preds = %"$have_gas_994" - call void @_out_of_gas() - br label %"$have_gas_1008" - -"$have_gas_1008": ; preds = %"$out_of_gas_1007", %"$have_gas_994" - %"$consume_1009" = sub i64 %"$gasrem_1005", %"$gasmin_1004" - store i64 %"$consume_1009", i64* @_gasrem, align 8 - %"$execptr_load_1010" = load i8*, i8** @_execptr, align 8 - %"$v_1011" = load %String, %String* %v, align 8 - %"$s_1012" = load %String, %String* %s, align 8 - %"$eq_call_1013" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1010", %String %"$v_1011", %String %"$s_1012") - store %TName_Bool* %"$eq_call_1013", %TName_Bool** %t, align 8 - %"$gasrem_1015" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1016" = icmp ugt i64 2, %"$gasrem_1015" - br i1 %"$gascmp_1016", label %"$out_of_gas_1017", label %"$have_gas_1018" - -"$out_of_gas_1017": ; preds = %"$have_gas_1008" - call void @_out_of_gas() - br label %"$have_gas_1018" - -"$have_gas_1018": ; preds = %"$out_of_gas_1017", %"$have_gas_1008" - %"$consume_1019" = sub i64 %"$gasrem_1015", 2 - store i64 %"$consume_1019", i64* @_gasrem, align 8 - %"$t_1021" = load %TName_Bool*, %TName_Bool** %t, align 8 - %"$t_tag_1022" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_1021", i32 0, i32 0 - %"$t_tag_1023" = load i8, i8* %"$t_tag_1022", align 1 - switch i8 %"$t_tag_1023", label %"$empty_default_1024" [ - i8 0, label %"$True_1025" - i8 1, label %"$False_1027" + %"$_literal_cost_v_973" = alloca %String, align 8 + %"$v_974" = load %String, %String* %v, align 8 + store %String %"$v_974", %String* %"$_literal_cost_v_973", align 8 + %"$$_literal_cost_v_973_975" = bitcast %String* %"$_literal_cost_v_973" to i8* + %"$_literal_cost_call_976" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_973_975") + %"$_literal_cost_s_977" = alloca %String, align 8 + %"$s_978" = load %String, %String* %s, align 8 + store %String %"$s_978", %String* %"$_literal_cost_s_977", align 8 + %"$$_literal_cost_s_977_979" = bitcast %String* %"$_literal_cost_s_977" to i8* + %"$_literal_cost_call_980" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_977_979") + %"$gasmin_981" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_976", i64 %"$_literal_cost_call_980") + %"$gasrem_982" = load i64, i64* @_gasrem, align 8 + %"$gascmp_983" = icmp ugt i64 %"$gasmin_981", %"$gasrem_982" + br i1 %"$gascmp_983", label %"$out_of_gas_984", label %"$have_gas_985" + +"$out_of_gas_984": ; preds = %"$have_gas_971" + call void @_out_of_gas() + br label %"$have_gas_985" + +"$have_gas_985": ; preds = %"$out_of_gas_984", %"$have_gas_971" + %"$consume_986" = sub i64 %"$gasrem_982", %"$gasmin_981" + store i64 %"$consume_986", i64* @_gasrem, align 8 + %"$execptr_load_987" = load i8*, i8** @_execptr, align 8 + %"$v_988" = load %String, %String* %v, align 8 + %"$s_989" = load %String, %String* %s, align 8 + %"$eq_call_990" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_987", %String %"$v_988", %String %"$s_989") + store %TName_Bool* %"$eq_call_990", %TName_Bool** %t, align 8 + %"$gasrem_992" = load i64, i64* @_gasrem, align 8 + %"$gascmp_993" = icmp ugt i64 2, %"$gasrem_992" + br i1 %"$gascmp_993", label %"$out_of_gas_994", label %"$have_gas_995" + +"$out_of_gas_994": ; preds = %"$have_gas_985" + call void @_out_of_gas() + br label %"$have_gas_995" + +"$have_gas_995": ; preds = %"$out_of_gas_994", %"$have_gas_985" + %"$consume_996" = sub i64 %"$gasrem_992", 2 + store i64 %"$consume_996", i64* @_gasrem, align 8 + %"$t_998" = load %TName_Bool*, %TName_Bool** %t, align 8 + %"$t_tag_999" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$t_998", i32 0, i32 0 + %"$t_tag_1000" = load i8, i8* %"$t_tag_999", align 1 + switch i8 %"$t_tag_1000", label %"$empty_default_1001" [ + i8 0, label %"$True_1002" + i8 1, label %"$False_1004" ] -"$True_1025": ; preds = %"$have_gas_1018" - %"$t_1026" = bitcast %TName_Bool* %"$t_1021" to %CName_True* - br label %"$matchsucc_1020" +"$True_1002": ; preds = %"$have_gas_995" + %"$t_1003" = bitcast %TName_Bool* %"$t_998" to %CName_True* + br label %"$matchsucc_997" -"$False_1027": ; preds = %"$have_gas_1018" - %"$t_1028" = bitcast %TName_Bool* %"$t_1021" to %CName_False* - %"$gasrem_1029" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1030" = icmp ugt i64 1, %"$gasrem_1029" - br i1 %"$gascmp_1030", label %"$out_of_gas_1031", label %"$have_gas_1032" +"$False_1004": ; preds = %"$have_gas_995" + %"$t_1005" = bitcast %TName_Bool* %"$t_998" to %CName_False* + %"$gasrem_1006" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1007" = icmp ugt i64 1, %"$gasrem_1006" + br i1 %"$gascmp_1007", label %"$out_of_gas_1008", label %"$have_gas_1009" -"$out_of_gas_1031": ; preds = %"$False_1027" +"$out_of_gas_1008": ; preds = %"$False_1004" call void @_out_of_gas() - br label %"$have_gas_1032" + br label %"$have_gas_1009" -"$have_gas_1032": ; preds = %"$out_of_gas_1031", %"$False_1027" - %"$consume_1033" = sub i64 %"$gasrem_1029", 1 - store i64 %"$consume_1033", i64* @_gasrem, align 8 +"$have_gas_1009": ; preds = %"$out_of_gas_1008", %"$False_1004" + %"$consume_1010" = sub i64 %"$gasrem_1006", 1 + store i64 %"$consume_1010", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_1034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1035" = icmp ugt i64 1, %"$gasrem_1034" - br i1 %"$gascmp_1035", label %"$out_of_gas_1036", label %"$have_gas_1037" - -"$out_of_gas_1036": ; preds = %"$have_gas_1032" - call void @_out_of_gas() - br label %"$have_gas_1037" - -"$have_gas_1037": ; preds = %"$out_of_gas_1036", %"$have_gas_1032" - %"$consume_1038" = sub i64 %"$gasrem_1034", 1 - store i64 %"$consume_1038", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_1039", i32 0, i32 0), i32 23 }, %String* %m, align 8 - %"$gasrem_1040" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1041" = icmp ugt i64 1, %"$gasrem_1040" - br i1 %"$gascmp_1041", label %"$out_of_gas_1042", label %"$have_gas_1043" - -"$out_of_gas_1042": ; preds = %"$have_gas_1037" - call void @_out_of_gas() - br label %"$have_gas_1043" - -"$have_gas_1043": ; preds = %"$out_of_gas_1042", %"$have_gas_1037" - %"$consume_1044" = sub i64 %"$gasrem_1040", 1 - store i64 %"$consume_1044", i64* @_gasrem, align 8 - %"$fail_msg__origin_1045" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1045", align 1 - %"$fail_msg__sender_1046" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1046", align 1 - %"$tname_1047" = load %String, %String* %tname, align 8 - %"$m_1048" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1045", [20 x i8]* %"$fail_msg__sender_1046", %String %"$tname_1047", %String %"$m_1048") - br label %"$matchsucc_1020" - -"$empty_default_1024": ; preds = %"$have_gas_1018" - br label %"$matchsucc_1020" - -"$matchsucc_1020": ; preds = %"$have_gas_1043", %"$True_1025", %"$empty_default_1024" - br label %"$matchsucc_982" - -"$None_1049": ; preds = %"$have_gas_980" - %"$val_1050" = bitcast %TName_Option_String* %"$val_983" to %CName_None_String* - %"$gasrem_1051" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1052" = icmp ugt i64 1, %"$gasrem_1051" - br i1 %"$gascmp_1052", label %"$out_of_gas_1053", label %"$have_gas_1054" - -"$out_of_gas_1053": ; preds = %"$None_1049" - call void @_out_of_gas() - br label %"$have_gas_1054" - -"$have_gas_1054": ; preds = %"$out_of_gas_1053", %"$None_1049" - %"$consume_1055" = sub i64 %"$gasrem_1051", 1 - store i64 %"$consume_1055", i64* @_gasrem, align 8 - %"$fail__origin_1056" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_1056", align 1 - %"$fail__sender_1057" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_1057", align 1 - %"$tname_1058" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_1056", [20 x i8]* %"$fail__sender_1057", %String %"$tname_1058") - br label %"$matchsucc_982" - -"$empty_default_986": ; preds = %"$have_gas_980" - br label %"$matchsucc_982" - -"$matchsucc_982": ; preds = %"$have_gas_1054", %"$matchsucc_1020", %"$empty_default_986" - %"$gasrem_1059" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1060" = icmp ugt i64 1, %"$gasrem_1059" - br i1 %"$gascmp_1060", label %"$out_of_gas_1061", label %"$have_gas_1062" - -"$out_of_gas_1061": ; preds = %"$matchsucc_982" - call void @_out_of_gas() - br label %"$have_gas_1062" - -"$have_gas_1062": ; preds = %"$out_of_gas_1061", %"$matchsucc_982" - %"$consume_1063" = sub i64 %"$gasrem_1059", 1 - store i64 %"$consume_1063", i64* @_gasrem, align 8 + %"$gasrem_1011" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1012" = icmp ugt i64 1, %"$gasrem_1011" + br i1 %"$gascmp_1012", label %"$out_of_gas_1013", label %"$have_gas_1014" + +"$out_of_gas_1013": ; preds = %"$have_gas_1009" + call void @_out_of_gas() + br label %"$have_gas_1014" + +"$have_gas_1014": ; preds = %"$out_of_gas_1013", %"$have_gas_1009" + %"$consume_1015" = sub i64 %"$gasrem_1011", 1 + store i64 %"$consume_1015", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"$stringlit_1016", i32 0, i32 0), i32 23 }, %String* %m, align 8 + %"$gasrem_1017" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1018" = icmp ugt i64 1, %"$gasrem_1017" + br i1 %"$gascmp_1018", label %"$out_of_gas_1019", label %"$have_gas_1020" + +"$out_of_gas_1019": ; preds = %"$have_gas_1014" + call void @_out_of_gas() + br label %"$have_gas_1020" + +"$have_gas_1020": ; preds = %"$out_of_gas_1019", %"$have_gas_1014" + %"$consume_1021" = sub i64 %"$gasrem_1017", 1 + store i64 %"$consume_1021", i64* @_gasrem, align 8 + %"$fail_msg__origin_1022" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1022", align 1 + %"$fail_msg__sender_1023" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1023", align 1 + %"$tname_1024" = load %String, %String* %tname, align 8 + %"$m_1025" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1022", [20 x i8]* %"$fail_msg__sender_1023", %String %"$tname_1024", %String %"$m_1025") + br label %"$matchsucc_997" + +"$empty_default_1001": ; preds = %"$have_gas_995" + br label %"$matchsucc_997" + +"$matchsucc_997": ; preds = %"$have_gas_1020", %"$True_1002", %"$empty_default_1001" + br label %"$matchsucc_959" + +"$None_1026": ; preds = %"$have_gas_957" + %"$val_1027" = bitcast %TName_Option_String* %"$val_960" to %CName_None_String* + %"$gasrem_1028" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1029" = icmp ugt i64 1, %"$gasrem_1028" + br i1 %"$gascmp_1029", label %"$out_of_gas_1030", label %"$have_gas_1031" + +"$out_of_gas_1030": ; preds = %"$None_1026" + call void @_out_of_gas() + br label %"$have_gas_1031" + +"$have_gas_1031": ; preds = %"$out_of_gas_1030", %"$None_1026" + %"$consume_1032" = sub i64 %"$gasrem_1028", 1 + store i64 %"$consume_1032", i64* @_gasrem, align 8 + %"$fail__origin_1033" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_1033", align 1 + %"$fail__sender_1034" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_1034", align 1 + %"$tname_1035" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_1033", [20 x i8]* %"$fail__sender_1034", %String %"$tname_1035") + br label %"$matchsucc_959" + +"$empty_default_963": ; preds = %"$have_gas_957" + br label %"$matchsucc_959" + +"$matchsucc_959": ; preds = %"$have_gas_1031", %"$matchsucc_997", %"$empty_default_963" + %"$gasrem_1036" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1037" = icmp ugt i64 1, %"$gasrem_1036" + br i1 %"$gascmp_1037", label %"$out_of_gas_1038", label %"$have_gas_1039" + +"$out_of_gas_1038": ; preds = %"$matchsucc_959" + call void @_out_of_gas() + br label %"$have_gas_1039" + +"$have_gas_1039": ; preds = %"$out_of_gas_1038", %"$matchsucc_959" + %"$consume_1040" = sub i64 %"$gasrem_1036", 1 + store i64 %"$consume_1040", i64* @_gasrem, align 8 %l_m2 = alloca %Map_String_String*, align 8 - %"$gasrem_1064" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1065" = icmp ugt i64 1, %"$gasrem_1064" - br i1 %"$gascmp_1065", label %"$out_of_gas_1066", label %"$have_gas_1067" + %"$gasrem_1041" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1042" = icmp ugt i64 1, %"$gasrem_1041" + br i1 %"$gascmp_1042", label %"$out_of_gas_1043", label %"$have_gas_1044" -"$out_of_gas_1066": ; preds = %"$have_gas_1062" +"$out_of_gas_1043": ; preds = %"$have_gas_1039" call void @_out_of_gas() - br label %"$have_gas_1067" + br label %"$have_gas_1044" -"$have_gas_1067": ; preds = %"$out_of_gas_1066", %"$have_gas_1062" - %"$consume_1068" = sub i64 %"$gasrem_1064", 1 - store i64 %"$consume_1068", i64* @_gasrem, align 8 +"$have_gas_1044": ; preds = %"$out_of_gas_1043", %"$have_gas_1039" + %"$consume_1045" = sub i64 %"$gasrem_1041", 1 + store i64 %"$consume_1045", i64* @_gasrem, align 8 %e = alloca %Map_String_String*, align 8 - %"$gasrem_1069" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1070" = icmp ugt i64 1, %"$gasrem_1069" - br i1 %"$gascmp_1070", label %"$out_of_gas_1071", label %"$have_gas_1072" + %"$gasrem_1046" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1047" = icmp ugt i64 1, %"$gasrem_1046" + br i1 %"$gascmp_1047", label %"$out_of_gas_1048", label %"$have_gas_1049" -"$out_of_gas_1071": ; preds = %"$have_gas_1067" +"$out_of_gas_1048": ; preds = %"$have_gas_1044" call void @_out_of_gas() - br label %"$have_gas_1072" + br label %"$have_gas_1049" -"$have_gas_1072": ; preds = %"$out_of_gas_1071", %"$have_gas_1067" - %"$consume_1073" = sub i64 %"$gasrem_1069", 1 - store i64 %"$consume_1073", i64* @_gasrem, align 8 - %"$execptr_load_1074" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_1075" = call i8* @_new_empty_map(i8* %"$execptr_load_1074") - %"$_new_empty_map_1076" = bitcast i8* %"$_new_empty_map_call_1075" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_1076", %Map_String_String** %e, align 8 - %"$gasrem_1077" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1078" = icmp ugt i64 1, %"$gasrem_1077" - br i1 %"$gascmp_1078", label %"$out_of_gas_1079", label %"$have_gas_1080" +"$have_gas_1049": ; preds = %"$out_of_gas_1048", %"$have_gas_1044" + %"$consume_1050" = sub i64 %"$gasrem_1046", 1 + store i64 %"$consume_1050", i64* @_gasrem, align 8 + %"$execptr_load_1051" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_1052" = call i8* @_new_empty_map(i8* %"$execptr_load_1051") + %"$_new_empty_map_1053" = bitcast i8* %"$_new_empty_map_call_1052" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_1053", %Map_String_String** %e, align 8 + %"$gasrem_1054" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1055" = icmp ugt i64 1, %"$gasrem_1054" + br i1 %"$gascmp_1055", label %"$out_of_gas_1056", label %"$have_gas_1057" -"$out_of_gas_1079": ; preds = %"$have_gas_1072" +"$out_of_gas_1056": ; preds = %"$have_gas_1049" call void @_out_of_gas() - br label %"$have_gas_1080" + br label %"$have_gas_1057" -"$have_gas_1080": ; preds = %"$out_of_gas_1079", %"$have_gas_1072" - %"$consume_1081" = sub i64 %"$gasrem_1077", 1 - store i64 %"$consume_1081", i64* @_gasrem, align 8 +"$have_gas_1057": ; preds = %"$out_of_gas_1056", %"$have_gas_1049" + %"$consume_1058" = sub i64 %"$gasrem_1054", 1 + store i64 %"$consume_1058", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_1082" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1083" = icmp ugt i64 1, %"$gasrem_1082" - br i1 %"$gascmp_1083", label %"$out_of_gas_1084", label %"$have_gas_1085" + %"$gasrem_1059" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1060" = icmp ugt i64 1, %"$gasrem_1059" + br i1 %"$gascmp_1060", label %"$out_of_gas_1061", label %"$have_gas_1062" -"$out_of_gas_1084": ; preds = %"$have_gas_1080" +"$out_of_gas_1061": ; preds = %"$have_gas_1057" call void @_out_of_gas() - br label %"$have_gas_1085" + br label %"$have_gas_1062" -"$have_gas_1085": ; preds = %"$out_of_gas_1084", %"$have_gas_1080" - %"$consume_1086" = sub i64 %"$gasrem_1082", 1 - store i64 %"$consume_1086", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1087", i32 0, i32 0), i32 5 }, %String* %key2b, align 8 - %"$gasrem_1088" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1089" = icmp ugt i64 1, %"$gasrem_1088" - br i1 %"$gascmp_1089", label %"$out_of_gas_1090", label %"$have_gas_1091" +"$have_gas_1062": ; preds = %"$out_of_gas_1061", %"$have_gas_1057" + %"$consume_1063" = sub i64 %"$gasrem_1059", 1 + store i64 %"$consume_1063", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1064", i32 0, i32 0), i32 5 }, %String* %key2b, align 8 + %"$gasrem_1065" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1066" = icmp ugt i64 1, %"$gasrem_1065" + br i1 %"$gascmp_1066", label %"$out_of_gas_1067", label %"$have_gas_1068" -"$out_of_gas_1090": ; preds = %"$have_gas_1085" +"$out_of_gas_1067": ; preds = %"$have_gas_1062" call void @_out_of_gas() - br label %"$have_gas_1091" + br label %"$have_gas_1068" -"$have_gas_1091": ; preds = %"$out_of_gas_1090", %"$have_gas_1085" - %"$consume_1092" = sub i64 %"$gasrem_1088", 1 - store i64 %"$consume_1092", i64* @_gasrem, align 8 +"$have_gas_1068": ; preds = %"$out_of_gas_1067", %"$have_gas_1062" + %"$consume_1069" = sub i64 %"$gasrem_1065", 1 + store i64 %"$consume_1069", i64* @_gasrem, align 8 %s1 = alloca %String, align 8 - %"$gasrem_1093" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1094" = icmp ugt i64 1, %"$gasrem_1093" - br i1 %"$gascmp_1094", label %"$out_of_gas_1095", label %"$have_gas_1096" + %"$gasrem_1070" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1071" = icmp ugt i64 1, %"$gasrem_1070" + br i1 %"$gascmp_1071", label %"$out_of_gas_1072", label %"$have_gas_1073" -"$out_of_gas_1095": ; preds = %"$have_gas_1091" +"$out_of_gas_1072": ; preds = %"$have_gas_1068" call void @_out_of_gas() - br label %"$have_gas_1096" + br label %"$have_gas_1073" -"$have_gas_1096": ; preds = %"$out_of_gas_1095", %"$have_gas_1091" - %"$consume_1097" = sub i64 %"$gasrem_1093", 1 - store i64 %"$consume_1097", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1098", i32 0, i32 0), i32 3 }, %String* %s1, align 8 - %"$gasrem_1099" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1100" = icmp ugt i64 1, %"$gasrem_1099" - br i1 %"$gascmp_1100", label %"$out_of_gas_1101", label %"$have_gas_1102" +"$have_gas_1073": ; preds = %"$out_of_gas_1072", %"$have_gas_1068" + %"$consume_1074" = sub i64 %"$gasrem_1070", 1 + store i64 %"$consume_1074", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1075", i32 0, i32 0), i32 3 }, %String* %s1, align 8 + %"$gasrem_1076" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1077" = icmp ugt i64 1, %"$gasrem_1076" + br i1 %"$gascmp_1077", label %"$out_of_gas_1078", label %"$have_gas_1079" -"$out_of_gas_1101": ; preds = %"$have_gas_1096" +"$out_of_gas_1078": ; preds = %"$have_gas_1073" call void @_out_of_gas() - br label %"$have_gas_1102" + br label %"$have_gas_1079" -"$have_gas_1102": ; preds = %"$out_of_gas_1101", %"$have_gas_1096" - %"$consume_1103" = sub i64 %"$gasrem_1099", 1 - store i64 %"$consume_1103", i64* @_gasrem, align 8 +"$have_gas_1079": ; preds = %"$out_of_gas_1078", %"$have_gas_1073" + %"$consume_1080" = sub i64 %"$gasrem_1076", 1 + store i64 %"$consume_1080", i64* @_gasrem, align 8 %m1 = alloca %Map_String_String*, align 8 - %"$e_1104" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_1104_1105" = bitcast %Map_String_String* %"$e_1104" to i8* - %"$_lengthof_call_1106" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$e_1104_1105") - %"$gasadd_1107" = add i64 1, %"$_lengthof_call_1106" - %"$gasrem_1108" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1109" = icmp ugt i64 %"$gasadd_1107", %"$gasrem_1108" - br i1 %"$gascmp_1109", label %"$out_of_gas_1110", label %"$have_gas_1111" - -"$out_of_gas_1110": ; preds = %"$have_gas_1102" - call void @_out_of_gas() - br label %"$have_gas_1111" - -"$have_gas_1111": ; preds = %"$out_of_gas_1110", %"$have_gas_1102" - %"$consume_1112" = sub i64 %"$gasrem_1108", %"$gasadd_1107" - store i64 %"$consume_1112", i64* @_gasrem, align 8 - %"$execptr_load_1113" = load i8*, i8** @_execptr, align 8 - %"$e_1114" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_1114_1115" = bitcast %Map_String_String* %"$e_1114" to i8* - %"$put_key2b_1116" = alloca %String, align 8 - %"$key2b_1117" = load %String, %String* %key2b, align 8 - store %String %"$key2b_1117", %String* %"$put_key2b_1116", align 8 - %"$$put_key2b_1116_1118" = bitcast %String* %"$put_key2b_1116" to i8* - %"$put_s1_1119" = alloca %String, align 8 - %"$s1_1120" = load %String, %String* %s1, align 8 - store %String %"$s1_1120", %String* %"$put_s1_1119", align 8 - %"$$put_s1_1119_1121" = bitcast %String* %"$put_s1_1119" to i8* - %"$put_call_1122" = call i8* @_put(i8* %"$execptr_load_1113", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$e_1114_1115", i8* %"$$put_key2b_1116_1118", i8* %"$$put_s1_1119_1121") - %"$put_1123" = bitcast i8* %"$put_call_1122" to %Map_String_String* - store %Map_String_String* %"$put_1123", %Map_String_String** %m1, align 8 - %"$gasrem_1124" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1125" = icmp ugt i64 1, %"$gasrem_1124" - br i1 %"$gascmp_1125", label %"$out_of_gas_1126", label %"$have_gas_1127" - -"$out_of_gas_1126": ; preds = %"$have_gas_1111" - call void @_out_of_gas() - br label %"$have_gas_1127" - -"$have_gas_1127": ; preds = %"$out_of_gas_1126", %"$have_gas_1111" - %"$consume_1128" = sub i64 %"$gasrem_1124", 1 - store i64 %"$consume_1128", i64* @_gasrem, align 8 + %"$e_1081" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_1081_1082" = bitcast %Map_String_String* %"$e_1081" to i8* + %"$_lengthof_call_1083" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$e_1081_1082") + %"$gasadd_1084" = add i64 1, %"$_lengthof_call_1083" + %"$gasrem_1085" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1086" = icmp ugt i64 %"$gasadd_1084", %"$gasrem_1085" + br i1 %"$gascmp_1086", label %"$out_of_gas_1087", label %"$have_gas_1088" + +"$out_of_gas_1087": ; preds = %"$have_gas_1079" + call void @_out_of_gas() + br label %"$have_gas_1088" + +"$have_gas_1088": ; preds = %"$out_of_gas_1087", %"$have_gas_1079" + %"$consume_1089" = sub i64 %"$gasrem_1085", %"$gasadd_1084" + store i64 %"$consume_1089", i64* @_gasrem, align 8 + %"$execptr_load_1090" = load i8*, i8** @_execptr, align 8 + %"$e_1091" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_1091_1092" = bitcast %Map_String_String* %"$e_1091" to i8* + %"$put_key2b_1093" = alloca %String, align 8 + %"$key2b_1094" = load %String, %String* %key2b, align 8 + store %String %"$key2b_1094", %String* %"$put_key2b_1093", align 8 + %"$$put_key2b_1093_1095" = bitcast %String* %"$put_key2b_1093" to i8* + %"$put_s1_1096" = alloca %String, align 8 + %"$s1_1097" = load %String, %String* %s1, align 8 + store %String %"$s1_1097", %String* %"$put_s1_1096", align 8 + %"$$put_s1_1096_1098" = bitcast %String* %"$put_s1_1096" to i8* + %"$put_call_1099" = call i8* @_put(i8* %"$execptr_load_1090", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$e_1091_1092", i8* %"$$put_key2b_1093_1095", i8* %"$$put_s1_1096_1098") + %"$put_1100" = bitcast i8* %"$put_call_1099" to %Map_String_String* + store %Map_String_String* %"$put_1100", %Map_String_String** %m1, align 8 + %"$gasrem_1101" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1102" = icmp ugt i64 1, %"$gasrem_1101" + br i1 %"$gascmp_1102", label %"$out_of_gas_1103", label %"$have_gas_1104" + +"$out_of_gas_1103": ; preds = %"$have_gas_1088" + call void @_out_of_gas() + br label %"$have_gas_1104" + +"$have_gas_1104": ; preds = %"$out_of_gas_1103", %"$have_gas_1088" + %"$consume_1105" = sub i64 %"$gasrem_1101", 1 + store i64 %"$consume_1105", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_1129" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1130" = icmp ugt i64 1, %"$gasrem_1129" - br i1 %"$gascmp_1130", label %"$out_of_gas_1131", label %"$have_gas_1132" + %"$gasrem_1106" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1107" = icmp ugt i64 1, %"$gasrem_1106" + br i1 %"$gascmp_1107", label %"$out_of_gas_1108", label %"$have_gas_1109" -"$out_of_gas_1131": ; preds = %"$have_gas_1127" +"$out_of_gas_1108": ; preds = %"$have_gas_1104" call void @_out_of_gas() - br label %"$have_gas_1132" + br label %"$have_gas_1109" -"$have_gas_1132": ; preds = %"$out_of_gas_1131", %"$have_gas_1127" - %"$consume_1133" = sub i64 %"$gasrem_1129", 1 - store i64 %"$consume_1133", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1134", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 - %"$gasrem_1135" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1136" = icmp ugt i64 1, %"$gasrem_1135" - br i1 %"$gascmp_1136", label %"$out_of_gas_1137", label %"$have_gas_1138" +"$have_gas_1109": ; preds = %"$out_of_gas_1108", %"$have_gas_1104" + %"$consume_1110" = sub i64 %"$gasrem_1106", 1 + store i64 %"$consume_1110", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1111", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 + %"$gasrem_1112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1113" = icmp ugt i64 1, %"$gasrem_1112" + br i1 %"$gascmp_1113", label %"$out_of_gas_1114", label %"$have_gas_1115" -"$out_of_gas_1137": ; preds = %"$have_gas_1132" +"$out_of_gas_1114": ; preds = %"$have_gas_1109" call void @_out_of_gas() - br label %"$have_gas_1138" + br label %"$have_gas_1115" -"$have_gas_1138": ; preds = %"$out_of_gas_1137", %"$have_gas_1132" - %"$consume_1139" = sub i64 %"$gasrem_1135", 1 - store i64 %"$consume_1139", i64* @_gasrem, align 8 +"$have_gas_1115": ; preds = %"$out_of_gas_1114", %"$have_gas_1109" + %"$consume_1116" = sub i64 %"$gasrem_1112", 1 + store i64 %"$consume_1116", i64* @_gasrem, align 8 %s2 = alloca %String, align 8 - %"$gasrem_1140" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1141" = icmp ugt i64 1, %"$gasrem_1140" - br i1 %"$gascmp_1141", label %"$out_of_gas_1142", label %"$have_gas_1143" - -"$out_of_gas_1142": ; preds = %"$have_gas_1138" - call void @_out_of_gas() - br label %"$have_gas_1143" - -"$have_gas_1143": ; preds = %"$out_of_gas_1142", %"$have_gas_1138" - %"$consume_1144" = sub i64 %"$gasrem_1140", 1 - store i64 %"$consume_1144", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1145", i32 0, i32 0), i32 3 }, %String* %s2, align 8 - %"$m1_1146" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_1146_1147" = bitcast %Map_String_String* %"$m1_1146" to i8* - %"$_lengthof_call_1148" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_1146_1147") - %"$gasadd_1149" = add i64 1, %"$_lengthof_call_1148" - %"$gasrem_1150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1151" = icmp ugt i64 %"$gasadd_1149", %"$gasrem_1150" - br i1 %"$gascmp_1151", label %"$out_of_gas_1152", label %"$have_gas_1153" - -"$out_of_gas_1152": ; preds = %"$have_gas_1143" - call void @_out_of_gas() - br label %"$have_gas_1153" - -"$have_gas_1153": ; preds = %"$out_of_gas_1152", %"$have_gas_1143" - %"$consume_1154" = sub i64 %"$gasrem_1150", %"$gasadd_1149" - store i64 %"$consume_1154", i64* @_gasrem, align 8 - %"$execptr_load_1155" = load i8*, i8** @_execptr, align 8 - %"$m1_1156" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_1156_1157" = bitcast %Map_String_String* %"$m1_1156" to i8* - %"$put_key2c_1158" = alloca %String, align 8 - %"$key2c_1159" = load %String, %String* %key2c, align 8 - store %String %"$key2c_1159", %String* %"$put_key2c_1158", align 8 - %"$$put_key2c_1158_1160" = bitcast %String* %"$put_key2c_1158" to i8* - %"$put_s2_1161" = alloca %String, align 8 - %"$s2_1162" = load %String, %String* %s2, align 8 - store %String %"$s2_1162", %String* %"$put_s2_1161", align 8 - %"$$put_s2_1161_1163" = bitcast %String* %"$put_s2_1161" to i8* - %"$put_call_1164" = call i8* @_put(i8* %"$execptr_load_1155", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_1156_1157", i8* %"$$put_key2c_1158_1160", i8* %"$$put_s2_1161_1163") - %"$put_1165" = bitcast i8* %"$put_call_1164" to %Map_String_String* - store %Map_String_String* %"$put_1165", %Map_String_String** %l_m2, align 8 - %"$gasrem_1166" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1167" = icmp ugt i64 1, %"$gasrem_1166" - br i1 %"$gascmp_1167", label %"$out_of_gas_1168", label %"$have_gas_1169" - -"$out_of_gas_1168": ; preds = %"$have_gas_1153" - call void @_out_of_gas() - br label %"$have_gas_1169" - -"$have_gas_1169": ; preds = %"$out_of_gas_1168", %"$have_gas_1153" - %"$consume_1170" = sub i64 %"$gasrem_1166", 1 - store i64 %"$consume_1170", i64* @_gasrem, align 8 + %"$gasrem_1117" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1118" = icmp ugt i64 1, %"$gasrem_1117" + br i1 %"$gascmp_1118", label %"$out_of_gas_1119", label %"$have_gas_1120" + +"$out_of_gas_1119": ; preds = %"$have_gas_1115" + call void @_out_of_gas() + br label %"$have_gas_1120" + +"$have_gas_1120": ; preds = %"$out_of_gas_1119", %"$have_gas_1115" + %"$consume_1121" = sub i64 %"$gasrem_1117", 1 + store i64 %"$consume_1121", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1122", i32 0, i32 0), i32 3 }, %String* %s2, align 8 + %"$m1_1123" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_1123_1124" = bitcast %Map_String_String* %"$m1_1123" to i8* + %"$_lengthof_call_1125" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_1123_1124") + %"$gasadd_1126" = add i64 1, %"$_lengthof_call_1125" + %"$gasrem_1127" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1128" = icmp ugt i64 %"$gasadd_1126", %"$gasrem_1127" + br i1 %"$gascmp_1128", label %"$out_of_gas_1129", label %"$have_gas_1130" + +"$out_of_gas_1129": ; preds = %"$have_gas_1120" + call void @_out_of_gas() + br label %"$have_gas_1130" + +"$have_gas_1130": ; preds = %"$out_of_gas_1129", %"$have_gas_1120" + %"$consume_1131" = sub i64 %"$gasrem_1127", %"$gasadd_1126" + store i64 %"$consume_1131", i64* @_gasrem, align 8 + %"$execptr_load_1132" = load i8*, i8** @_execptr, align 8 + %"$m1_1133" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_1133_1134" = bitcast %Map_String_String* %"$m1_1133" to i8* + %"$put_key2c_1135" = alloca %String, align 8 + %"$key2c_1136" = load %String, %String* %key2c, align 8 + store %String %"$key2c_1136", %String* %"$put_key2c_1135", align 8 + %"$$put_key2c_1135_1137" = bitcast %String* %"$put_key2c_1135" to i8* + %"$put_s2_1138" = alloca %String, align 8 + %"$s2_1139" = load %String, %String* %s2, align 8 + store %String %"$s2_1139", %String* %"$put_s2_1138", align 8 + %"$$put_s2_1138_1140" = bitcast %String* %"$put_s2_1138" to i8* + %"$put_call_1141" = call i8* @_put(i8* %"$execptr_load_1132", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_1133_1134", i8* %"$$put_key2c_1135_1137", i8* %"$$put_s2_1138_1140") + %"$put_1142" = bitcast i8* %"$put_call_1141" to %Map_String_String* + store %Map_String_String* %"$put_1142", %Map_String_String** %l_m2, align 8 + %"$gasrem_1143" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1144" = icmp ugt i64 1, %"$gasrem_1143" + br i1 %"$gascmp_1144", label %"$out_of_gas_1145", label %"$have_gas_1146" + +"$out_of_gas_1145": ; preds = %"$have_gas_1130" + call void @_out_of_gas() + br label %"$have_gas_1146" + +"$have_gas_1146": ; preds = %"$out_of_gas_1145", %"$have_gas_1130" + %"$consume_1147" = sub i64 %"$gasrem_1143", 1 + store i64 %"$consume_1147", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_1171" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1172" = icmp ugt i64 1, %"$gasrem_1171" - br i1 %"$gascmp_1172", label %"$out_of_gas_1173", label %"$have_gas_1174" - -"$out_of_gas_1173": ; preds = %"$have_gas_1169" - call void @_out_of_gas() - br label %"$have_gas_1174" - -"$have_gas_1174": ; preds = %"$out_of_gas_1173", %"$have_gas_1169" - %"$consume_1175" = sub i64 %"$gasrem_1171", 1 - store i64 %"$consume_1175", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1176", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 - %"$l_m2_1177" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 - %"$$l_m2_1177_1178" = bitcast %Map_String_String* %"$l_m2_1177" to i8* - %"$_literal_cost_call_1179" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$l_m2_1177_1178") - %"$gasadd_1180" = add i64 %"$_literal_cost_call_1179", 1 - %"$gasrem_1181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1182" = icmp ugt i64 %"$gasadd_1180", %"$gasrem_1181" - br i1 %"$gascmp_1182", label %"$out_of_gas_1183", label %"$have_gas_1184" - -"$out_of_gas_1183": ; preds = %"$have_gas_1174" - call void @_out_of_gas() - br label %"$have_gas_1184" - -"$have_gas_1184": ; preds = %"$out_of_gas_1183", %"$have_gas_1174" - %"$consume_1185" = sub i64 %"$gasrem_1181", %"$gasadd_1180" - store i64 %"$consume_1185", i64* @_gasrem, align 8 - %"$indices_buf_1186_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1186_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1186_salloc_load", i64 16) - %"$indices_buf_1186_salloc" = bitcast i8* %"$indices_buf_1186_salloc_salloc" to [16 x i8]* - %"$indices_buf_1186" = bitcast [16 x i8]* %"$indices_buf_1186_salloc" to i8* - %"$key1b_1187" = load %String, %String* %key1b, align 8 - %"$indices_gep_1188" = getelementptr i8, i8* %"$indices_buf_1186", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_1188" to %String* - store %String %"$key1b_1187", %String* %indices_cast2, align 8 - %"$execptr_load_1189" = load i8*, i8** @_execptr, align 8 - %"$l_m2_1191" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 - %"$update_value_1192" = bitcast %Map_String_String* %"$l_m2_1191" to i8* - call void @_update_field(i8* %"$execptr_load_1189", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1190", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 1, i8* %"$indices_buf_1186", i8* %"$update_value_1192") + %"$gasrem_1148" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1149" = icmp ugt i64 1, %"$gasrem_1148" + br i1 %"$gascmp_1149", label %"$out_of_gas_1150", label %"$have_gas_1151" + +"$out_of_gas_1150": ; preds = %"$have_gas_1146" + call void @_out_of_gas() + br label %"$have_gas_1151" + +"$have_gas_1151": ; preds = %"$out_of_gas_1150", %"$have_gas_1146" + %"$consume_1152" = sub i64 %"$gasrem_1148", 1 + store i64 %"$consume_1152", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1153", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 + %"$l_m2_1154" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 + %"$$l_m2_1154_1155" = bitcast %Map_String_String* %"$l_m2_1154" to i8* + %"$_literal_cost_call_1156" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$l_m2_1154_1155") + %"$gasadd_1157" = add i64 %"$_literal_cost_call_1156", 1 + %"$gasrem_1158" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1159" = icmp ugt i64 %"$gasadd_1157", %"$gasrem_1158" + br i1 %"$gascmp_1159", label %"$out_of_gas_1160", label %"$have_gas_1161" + +"$out_of_gas_1160": ; preds = %"$have_gas_1151" + call void @_out_of_gas() + br label %"$have_gas_1161" + +"$have_gas_1161": ; preds = %"$out_of_gas_1160", %"$have_gas_1151" + %"$consume_1162" = sub i64 %"$gasrem_1158", %"$gasadd_1157" + store i64 %"$consume_1162", i64* @_gasrem, align 8 + %"$indices_buf_1163_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1163_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1163_salloc_load", i64 16) + %"$indices_buf_1163_salloc" = bitcast i8* %"$indices_buf_1163_salloc_salloc" to [16 x i8]* + %"$indices_buf_1163" = bitcast [16 x i8]* %"$indices_buf_1163_salloc" to i8* + %"$key1b_1164" = load %String, %String* %key1b, align 8 + %"$indices_gep_1165" = getelementptr i8, i8* %"$indices_buf_1163", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_1165" to %String* + store %String %"$key1b_1164", %String* %indices_cast2, align 8 + %"$execptr_load_1166" = load i8*, i8** @_execptr, align 8 + %"$l_m2_1168" = load %Map_String_String*, %Map_String_String** %l_m2, align 8 + %"$update_value_1169" = bitcast %Map_String_String* %"$l_m2_1168" to i8* + call void @_update_field(i8* %"$execptr_load_1166", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1167", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 1, i8* %"$indices_buf_1163", i8* %"$update_value_1169") ret void } @@ -2530,1300 +2498,1341 @@ declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) define void @t5(i8* %0) { entry: - %"$_amount_1194" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1195" = bitcast i8* %"$_amount_1194" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1195", align 8 - %"$_origin_1196" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1197" = bitcast i8* %"$_origin_1196" to [20 x i8]* - %"$_sender_1198" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1199" = bitcast i8* %"$_sender_1198" to [20 x i8]* - call void @"$t5_911"(%Uint128 %_amount, [20 x i8]* %"$_origin_1197", [20 x i8]* %"$_sender_1199") + %"$_amount_1171" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1172" = bitcast i8* %"$_amount_1171" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1172", align 8 + %"$_origin_1173" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1174" = bitcast i8* %"$_origin_1173" to [20 x i8]* + %"$_sender_1175" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1176" = bitcast i8* %"$_sender_1175" to [20 x i8]* + call void @"$t5_888"(%Uint128 %_amount, [20 x i8]* %"$_origin_1174", [20 x i8]* %"$_sender_1176") ret void } -define internal void @"$t6_1200"(%Uint128 %_amount, [20 x i8]* %"$_origin_1201", [20 x i8]* %"$_sender_1202") { +define internal void @"$t6_1177"(%Uint128 %_amount, [20 x i8]* %"$_origin_1178", [20 x i8]* %"$_sender_1179") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1201", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1202", align 1 - %"$gasrem_1203" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1204" = icmp ugt i64 1, %"$gasrem_1203" - br i1 %"$gascmp_1204", label %"$out_of_gas_1205", label %"$have_gas_1206" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1178", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1179", align 1 + %"$gasrem_1180" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1181" = icmp ugt i64 1, %"$gasrem_1180" + br i1 %"$gascmp_1181", label %"$out_of_gas_1182", label %"$have_gas_1183" -"$out_of_gas_1205": ; preds = %entry +"$out_of_gas_1182": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1206" + br label %"$have_gas_1183" -"$have_gas_1206": ; preds = %"$out_of_gas_1205", %entry - %"$consume_1207" = sub i64 %"$gasrem_1203", 1 - store i64 %"$consume_1207", i64* @_gasrem, align 8 +"$have_gas_1183": ; preds = %"$out_of_gas_1182", %entry + %"$consume_1184" = sub i64 %"$gasrem_1180", 1 + store i64 %"$consume_1184", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_1208" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1209" = icmp ugt i64 1, %"$gasrem_1208" - br i1 %"$gascmp_1209", label %"$out_of_gas_1210", label %"$have_gas_1211" + %"$gasrem_1185" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1186" = icmp ugt i64 1, %"$gasrem_1185" + br i1 %"$gascmp_1186", label %"$out_of_gas_1187", label %"$have_gas_1188" -"$out_of_gas_1210": ; preds = %"$have_gas_1206" +"$out_of_gas_1187": ; preds = %"$have_gas_1183" call void @_out_of_gas() - br label %"$have_gas_1211" + br label %"$have_gas_1188" -"$have_gas_1211": ; preds = %"$out_of_gas_1210", %"$have_gas_1206" - %"$consume_1212" = sub i64 %"$gasrem_1208", 1 - store i64 %"$consume_1212", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1213", i32 0, i32 0), i32 2 }, %String* %tname, align 8 - %"$gasrem_1214" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1215" = icmp ugt i64 1, %"$gasrem_1214" - br i1 %"$gascmp_1215", label %"$out_of_gas_1216", label %"$have_gas_1217" +"$have_gas_1188": ; preds = %"$out_of_gas_1187", %"$have_gas_1183" + %"$consume_1189" = sub i64 %"$gasrem_1185", 1 + store i64 %"$consume_1189", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1190", i32 0, i32 0), i32 2 }, %String* %tname, align 8 + %"$gasrem_1191" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1192" = icmp ugt i64 1, %"$gasrem_1191" + br i1 %"$gascmp_1192", label %"$out_of_gas_1193", label %"$have_gas_1194" -"$out_of_gas_1216": ; preds = %"$have_gas_1211" +"$out_of_gas_1193": ; preds = %"$have_gas_1188" call void @_out_of_gas() - br label %"$have_gas_1217" + br label %"$have_gas_1194" -"$have_gas_1217": ; preds = %"$out_of_gas_1216", %"$have_gas_1211" - %"$consume_1218" = sub i64 %"$gasrem_1214", 1 - store i64 %"$consume_1218", i64* @_gasrem, align 8 +"$have_gas_1194": ; preds = %"$out_of_gas_1193", %"$have_gas_1188" + %"$consume_1195" = sub i64 %"$gasrem_1191", 1 + store i64 %"$consume_1195", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_1219" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1220" = icmp ugt i64 1, %"$gasrem_1219" - br i1 %"$gascmp_1220", label %"$out_of_gas_1221", label %"$have_gas_1222" + %"$gasrem_1196" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1197" = icmp ugt i64 1, %"$gasrem_1196" + br i1 %"$gascmp_1197", label %"$out_of_gas_1198", label %"$have_gas_1199" -"$out_of_gas_1221": ; preds = %"$have_gas_1217" +"$out_of_gas_1198": ; preds = %"$have_gas_1194" call void @_out_of_gas() - br label %"$have_gas_1222" + br label %"$have_gas_1199" -"$have_gas_1222": ; preds = %"$out_of_gas_1221", %"$have_gas_1217" - %"$consume_1223" = sub i64 %"$gasrem_1219", 1 - store i64 %"$consume_1223", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1224", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 - %"$gasrem_1225" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1226" = icmp ugt i64 1, %"$gasrem_1225" - br i1 %"$gascmp_1226", label %"$out_of_gas_1227", label %"$have_gas_1228" +"$have_gas_1199": ; preds = %"$out_of_gas_1198", %"$have_gas_1194" + %"$consume_1200" = sub i64 %"$gasrem_1196", 1 + store i64 %"$consume_1200", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1201", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 + %"$gasrem_1202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1203" = icmp ugt i64 1, %"$gasrem_1202" + br i1 %"$gascmp_1203", label %"$out_of_gas_1204", label %"$have_gas_1205" -"$out_of_gas_1227": ; preds = %"$have_gas_1222" +"$out_of_gas_1204": ; preds = %"$have_gas_1199" call void @_out_of_gas() - br label %"$have_gas_1228" + br label %"$have_gas_1205" -"$have_gas_1228": ; preds = %"$out_of_gas_1227", %"$have_gas_1222" - %"$consume_1229" = sub i64 %"$gasrem_1225", 1 - store i64 %"$consume_1229", i64* @_gasrem, align 8 +"$have_gas_1205": ; preds = %"$out_of_gas_1204", %"$have_gas_1199" + %"$consume_1206" = sub i64 %"$gasrem_1202", 1 + store i64 %"$consume_1206", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_1230" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1231" = icmp ugt i64 1, %"$gasrem_1230" - br i1 %"$gascmp_1231", label %"$out_of_gas_1232", label %"$have_gas_1233" + %"$gasrem_1207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1208" = icmp ugt i64 1, %"$gasrem_1207" + br i1 %"$gascmp_1208", label %"$out_of_gas_1209", label %"$have_gas_1210" -"$out_of_gas_1232": ; preds = %"$have_gas_1228" +"$out_of_gas_1209": ; preds = %"$have_gas_1205" call void @_out_of_gas() - br label %"$have_gas_1233" + br label %"$have_gas_1210" -"$have_gas_1233": ; preds = %"$out_of_gas_1232", %"$have_gas_1228" - %"$consume_1234" = sub i64 %"$gasrem_1230", 1 - store i64 %"$consume_1234", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1235", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 +"$have_gas_1210": ; preds = %"$out_of_gas_1209", %"$have_gas_1205" + %"$consume_1211" = sub i64 %"$gasrem_1207", 1 + store i64 %"$consume_1211", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1212", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 %c1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_1236_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1236_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1236_salloc_load", i64 32) - %"$indices_buf_1236_salloc" = bitcast i8* %"$indices_buf_1236_salloc_salloc" to [32 x i8]* - %"$indices_buf_1236" = bitcast [32 x i8]* %"$indices_buf_1236_salloc" to i8* - %"$key1a_1237" = load %String, %String* %key1a, align 8 - %"$indices_gep_1238" = getelementptr i8, i8* %"$indices_buf_1236", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_1238" to %String* - store %String %"$key1a_1237", %String* %indices_cast, align 8 - %"$key2a_1239" = load %String, %String* %key2a, align 8 - %"$indices_gep_1240" = getelementptr i8, i8* %"$indices_buf_1236", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_1240" to %String* - store %String %"$key2a_1239", %String* %indices_cast1, align 8 - %"$execptr_load_1242" = load i8*, i8** @_execptr, align 8 - %"$c1_call_1243" = call i8* @_fetch_field(i8* %"$execptr_load_1242", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1241", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1236", i32 1) - %"$c1_1244" = bitcast i8* %"$c1_call_1243" to %TName_Option_String* - store %TName_Option_String* %"$c1_1244", %TName_Option_String** %c1, align 8 - %"$c1_1245" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$$c1_1245_1246" = bitcast %TName_Option_String* %"$c1_1245" to i8* - %"$_literal_cost_call_1247" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$c1_1245_1246") - %"$gasadd_1248" = add i64 %"$_literal_cost_call_1247", 0 - %"$gasadd_1249" = add i64 %"$gasadd_1248", 2 - %"$gasrem_1250" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1251" = icmp ugt i64 %"$gasadd_1249", %"$gasrem_1250" - br i1 %"$gascmp_1251", label %"$out_of_gas_1252", label %"$have_gas_1253" - -"$out_of_gas_1252": ; preds = %"$have_gas_1233" - call void @_out_of_gas() - br label %"$have_gas_1253" - -"$have_gas_1253": ; preds = %"$out_of_gas_1252", %"$have_gas_1233" - %"$consume_1254" = sub i64 %"$gasrem_1250", %"$gasadd_1249" - store i64 %"$consume_1254", i64* @_gasrem, align 8 - %"$gasrem_1255" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1256" = icmp ugt i64 2, %"$gasrem_1255" - br i1 %"$gascmp_1256", label %"$out_of_gas_1257", label %"$have_gas_1258" - -"$out_of_gas_1257": ; preds = %"$have_gas_1253" - call void @_out_of_gas() - br label %"$have_gas_1258" - -"$have_gas_1258": ; preds = %"$out_of_gas_1257", %"$have_gas_1253" - %"$consume_1259" = sub i64 %"$gasrem_1255", 2 - store i64 %"$consume_1259", i64* @_gasrem, align 8 - %"$c1_1261" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_1262" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1261", i32 0, i32 0 - %"$c1_tag_1263" = load i8, i8* %"$c1_tag_1262", align 1 - switch i8 %"$c1_tag_1263", label %"$empty_default_1264" [ - i8 0, label %"$Some_1265" - i8 1, label %"$None_1338" + %"$indices_buf_1213_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1213_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1213_salloc_load", i64 32) + %"$indices_buf_1213_salloc" = bitcast i8* %"$indices_buf_1213_salloc_salloc" to [32 x i8]* + %"$indices_buf_1213" = bitcast [32 x i8]* %"$indices_buf_1213_salloc" to i8* + %"$key1a_1214" = load %String, %String* %key1a, align 8 + %"$indices_gep_1215" = getelementptr i8, i8* %"$indices_buf_1213", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_1215" to %String* + store %String %"$key1a_1214", %String* %indices_cast, align 8 + %"$key2a_1216" = load %String, %String* %key2a, align 8 + %"$indices_gep_1217" = getelementptr i8, i8* %"$indices_buf_1213", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_1217" to %String* + store %String %"$key2a_1216", %String* %indices_cast1, align 8 + %"$execptr_load_1219" = load i8*, i8** @_execptr, align 8 + %"$c1_call_1220" = call i8* @_fetch_field(i8* %"$execptr_load_1219", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1218", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1213", i32 1) + %"$c1_1221" = bitcast i8* %"$c1_call_1220" to %TName_Option_String* + store %TName_Option_String* %"$c1_1221", %TName_Option_String** %c1, align 8 + %"$c1_1222" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$$c1_1222_1223" = bitcast %TName_Option_String* %"$c1_1222" to i8* + %"$_literal_cost_call_1224" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$c1_1222_1223") + %"$gasadd_1225" = add i64 %"$_literal_cost_call_1224", 0 + %"$gasadd_1226" = add i64 %"$gasadd_1225", 2 + %"$gasrem_1227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1228" = icmp ugt i64 %"$gasadd_1226", %"$gasrem_1227" + br i1 %"$gascmp_1228", label %"$out_of_gas_1229", label %"$have_gas_1230" + +"$out_of_gas_1229": ; preds = %"$have_gas_1210" + call void @_out_of_gas() + br label %"$have_gas_1230" + +"$have_gas_1230": ; preds = %"$out_of_gas_1229", %"$have_gas_1210" + %"$consume_1231" = sub i64 %"$gasrem_1227", %"$gasadd_1226" + store i64 %"$consume_1231", i64* @_gasrem, align 8 + %"$gasrem_1232" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1233" = icmp ugt i64 2, %"$gasrem_1232" + br i1 %"$gascmp_1233", label %"$out_of_gas_1234", label %"$have_gas_1235" + +"$out_of_gas_1234": ; preds = %"$have_gas_1230" + call void @_out_of_gas() + br label %"$have_gas_1235" + +"$have_gas_1235": ; preds = %"$out_of_gas_1234", %"$have_gas_1230" + %"$consume_1236" = sub i64 %"$gasrem_1232", 2 + store i64 %"$consume_1236", i64* @_gasrem, align 8 + %"$c1_1238" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_1239" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1238", i32 0, i32 0 + %"$c1_tag_1240" = load i8, i8* %"$c1_tag_1239", align 1 + switch i8 %"$c1_tag_1240", label %"$empty_default_1241" [ + i8 0, label %"$Some_1242" + i8 1, label %"$None_1315" ] -"$Some_1265": ; preds = %"$have_gas_1258" - %"$c1_1266" = bitcast %TName_Option_String* %"$c1_1261" to %CName_Some_String* - %"$c_gep_1267" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1266", i32 0, i32 1 - %"$c_load_1268" = load %String, %String* %"$c_gep_1267", align 8 +"$Some_1242": ; preds = %"$have_gas_1235" + %"$c1_1243" = bitcast %TName_Option_String* %"$c1_1238" to %CName_Some_String* + %"$c_gep_1244" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1243", i32 0, i32 1 + %"$c_load_1245" = load %String, %String* %"$c_gep_1244", align 8 %c = alloca %String, align 8 - store %String %"$c_load_1268", %String* %c, align 8 - %"$gasrem_1269" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1270" = icmp ugt i64 1, %"$gasrem_1269" - br i1 %"$gascmp_1270", label %"$out_of_gas_1271", label %"$have_gas_1272" + store %String %"$c_load_1245", %String* %c, align 8 + %"$gasrem_1246" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1247" = icmp ugt i64 1, %"$gasrem_1246" + br i1 %"$gascmp_1247", label %"$out_of_gas_1248", label %"$have_gas_1249" -"$out_of_gas_1271": ; preds = %"$Some_1265" +"$out_of_gas_1248": ; preds = %"$Some_1242" call void @_out_of_gas() - br label %"$have_gas_1272" + br label %"$have_gas_1249" -"$have_gas_1272": ; preds = %"$out_of_gas_1271", %"$Some_1265" - %"$consume_1273" = sub i64 %"$gasrem_1269", 1 - store i64 %"$consume_1273", i64* @_gasrem, align 8 +"$have_gas_1249": ; preds = %"$out_of_gas_1248", %"$Some_1242" + %"$consume_1250" = sub i64 %"$gasrem_1246", 1 + store i64 %"$consume_1250", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_1274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1275" = icmp ugt i64 1, %"$gasrem_1274" - br i1 %"$gascmp_1275", label %"$out_of_gas_1276", label %"$have_gas_1277" + %"$gasrem_1251" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1252" = icmp ugt i64 1, %"$gasrem_1251" + br i1 %"$gascmp_1252", label %"$out_of_gas_1253", label %"$have_gas_1254" -"$out_of_gas_1276": ; preds = %"$have_gas_1272" +"$out_of_gas_1253": ; preds = %"$have_gas_1249" call void @_out_of_gas() - br label %"$have_gas_1277" + br label %"$have_gas_1254" -"$have_gas_1277": ; preds = %"$out_of_gas_1276", %"$have_gas_1272" - %"$consume_1278" = sub i64 %"$gasrem_1274", 1 - store i64 %"$consume_1278", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1279", i32 0, i32 0), i32 3 }, %String* %v, align 8 - %"$gasrem_1280" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1281" = icmp ugt i64 1, %"$gasrem_1280" - br i1 %"$gascmp_1281", label %"$out_of_gas_1282", label %"$have_gas_1283" +"$have_gas_1254": ; preds = %"$out_of_gas_1253", %"$have_gas_1249" + %"$consume_1255" = sub i64 %"$gasrem_1251", 1 + store i64 %"$consume_1255", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1256", i32 0, i32 0), i32 3 }, %String* %v, align 8 + %"$gasrem_1257" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1258" = icmp ugt i64 1, %"$gasrem_1257" + br i1 %"$gascmp_1258", label %"$out_of_gas_1259", label %"$have_gas_1260" -"$out_of_gas_1282": ; preds = %"$have_gas_1277" +"$out_of_gas_1259": ; preds = %"$have_gas_1254" call void @_out_of_gas() - br label %"$have_gas_1283" + br label %"$have_gas_1260" -"$have_gas_1283": ; preds = %"$out_of_gas_1282", %"$have_gas_1277" - %"$consume_1284" = sub i64 %"$gasrem_1280", 1 - store i64 %"$consume_1284", i64* @_gasrem, align 8 +"$have_gas_1260": ; preds = %"$out_of_gas_1259", %"$have_gas_1254" + %"$consume_1261" = sub i64 %"$gasrem_1257", 1 + store i64 %"$consume_1261", i64* @_gasrem, align 8 %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1285" = alloca %String, align 8 - %"$c_1286" = load %String, %String* %c, align 8 - store %String %"$c_1286", %String* %"$_literal_cost_c_1285", align 8 - %"$$_literal_cost_c_1285_1287" = bitcast %String* %"$_literal_cost_c_1285" to i8* - %"$_literal_cost_call_1288" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_1285_1287") - %"$_literal_cost_v_1289" = alloca %String, align 8 - %"$v_1290" = load %String, %String* %v, align 8 - store %String %"$v_1290", %String* %"$_literal_cost_v_1289", align 8 - %"$$_literal_cost_v_1289_1291" = bitcast %String* %"$_literal_cost_v_1289" to i8* - %"$_literal_cost_call_1292" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_1289_1291") - %"$gasmin_1293" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1288", i64 %"$_literal_cost_call_1292") - %"$gasrem_1294" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1295" = icmp ugt i64 %"$gasmin_1293", %"$gasrem_1294" - br i1 %"$gascmp_1295", label %"$out_of_gas_1296", label %"$have_gas_1297" - -"$out_of_gas_1296": ; preds = %"$have_gas_1283" - call void @_out_of_gas() - br label %"$have_gas_1297" - -"$have_gas_1297": ; preds = %"$out_of_gas_1296", %"$have_gas_1283" - %"$consume_1298" = sub i64 %"$gasrem_1294", %"$gasmin_1293" - store i64 %"$consume_1298", i64* @_gasrem, align 8 - %"$execptr_load_1299" = load i8*, i8** @_execptr, align 8 - %"$c_1300" = load %String, %String* %c, align 8 - %"$v_1301" = load %String, %String* %v, align 8 - %"$eq_call_1302" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1299", %String %"$c_1300", %String %"$v_1301") - store %TName_Bool* %"$eq_call_1302", %TName_Bool** %eq, align 8 - %"$gasrem_1304" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1305" = icmp ugt i64 2, %"$gasrem_1304" - br i1 %"$gascmp_1305", label %"$out_of_gas_1306", label %"$have_gas_1307" - -"$out_of_gas_1306": ; preds = %"$have_gas_1297" - call void @_out_of_gas() - br label %"$have_gas_1307" - -"$have_gas_1307": ; preds = %"$out_of_gas_1306", %"$have_gas_1297" - %"$consume_1308" = sub i64 %"$gasrem_1304", 2 - store i64 %"$consume_1308", i64* @_gasrem, align 8 - %"$eq_1310" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_1311" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1310", i32 0, i32 0 - %"$eq_tag_1312" = load i8, i8* %"$eq_tag_1311", align 1 - switch i8 %"$eq_tag_1312", label %"$empty_default_1313" [ - i8 0, label %"$True_1314" - i8 1, label %"$False_1316" + %"$_literal_cost_c_1262" = alloca %String, align 8 + %"$c_1263" = load %String, %String* %c, align 8 + store %String %"$c_1263", %String* %"$_literal_cost_c_1262", align 8 + %"$$_literal_cost_c_1262_1264" = bitcast %String* %"$_literal_cost_c_1262" to i8* + %"$_literal_cost_call_1265" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_1262_1264") + %"$_literal_cost_v_1266" = alloca %String, align 8 + %"$v_1267" = load %String, %String* %v, align 8 + store %String %"$v_1267", %String* %"$_literal_cost_v_1266", align 8 + %"$$_literal_cost_v_1266_1268" = bitcast %String* %"$_literal_cost_v_1266" to i8* + %"$_literal_cost_call_1269" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_1266_1268") + %"$gasmin_1270" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1265", i64 %"$_literal_cost_call_1269") + %"$gasrem_1271" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1272" = icmp ugt i64 %"$gasmin_1270", %"$gasrem_1271" + br i1 %"$gascmp_1272", label %"$out_of_gas_1273", label %"$have_gas_1274" + +"$out_of_gas_1273": ; preds = %"$have_gas_1260" + call void @_out_of_gas() + br label %"$have_gas_1274" + +"$have_gas_1274": ; preds = %"$out_of_gas_1273", %"$have_gas_1260" + %"$consume_1275" = sub i64 %"$gasrem_1271", %"$gasmin_1270" + store i64 %"$consume_1275", i64* @_gasrem, align 8 + %"$execptr_load_1276" = load i8*, i8** @_execptr, align 8 + %"$c_1277" = load %String, %String* %c, align 8 + %"$v_1278" = load %String, %String* %v, align 8 + %"$eq_call_1279" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1276", %String %"$c_1277", %String %"$v_1278") + store %TName_Bool* %"$eq_call_1279", %TName_Bool** %eq, align 8 + %"$gasrem_1281" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1282" = icmp ugt i64 2, %"$gasrem_1281" + br i1 %"$gascmp_1282", label %"$out_of_gas_1283", label %"$have_gas_1284" + +"$out_of_gas_1283": ; preds = %"$have_gas_1274" + call void @_out_of_gas() + br label %"$have_gas_1284" + +"$have_gas_1284": ; preds = %"$out_of_gas_1283", %"$have_gas_1274" + %"$consume_1285" = sub i64 %"$gasrem_1281", 2 + store i64 %"$consume_1285", i64* @_gasrem, align 8 + %"$eq_1287" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_1288" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1287", i32 0, i32 0 + %"$eq_tag_1289" = load i8, i8* %"$eq_tag_1288", align 1 + switch i8 %"$eq_tag_1289", label %"$empty_default_1290" [ + i8 0, label %"$True_1291" + i8 1, label %"$False_1293" ] -"$True_1314": ; preds = %"$have_gas_1307" - %"$eq_1315" = bitcast %TName_Bool* %"$eq_1310" to %CName_True* - br label %"$matchsucc_1309" +"$True_1291": ; preds = %"$have_gas_1284" + %"$eq_1292" = bitcast %TName_Bool* %"$eq_1287" to %CName_True* + br label %"$matchsucc_1286" -"$False_1316": ; preds = %"$have_gas_1307" - %"$eq_1317" = bitcast %TName_Bool* %"$eq_1310" to %CName_False* - %"$gasrem_1318" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1319" = icmp ugt i64 1, %"$gasrem_1318" - br i1 %"$gascmp_1319", label %"$out_of_gas_1320", label %"$have_gas_1321" +"$False_1293": ; preds = %"$have_gas_1284" + %"$eq_1294" = bitcast %TName_Bool* %"$eq_1287" to %CName_False* + %"$gasrem_1295" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1296" = icmp ugt i64 1, %"$gasrem_1295" + br i1 %"$gascmp_1296", label %"$out_of_gas_1297", label %"$have_gas_1298" -"$out_of_gas_1320": ; preds = %"$False_1316" +"$out_of_gas_1297": ; preds = %"$False_1293" call void @_out_of_gas() - br label %"$have_gas_1321" + br label %"$have_gas_1298" -"$have_gas_1321": ; preds = %"$out_of_gas_1320", %"$False_1316" - %"$consume_1322" = sub i64 %"$gasrem_1318", 1 - store i64 %"$consume_1322", i64* @_gasrem, align 8 +"$have_gas_1298": ; preds = %"$out_of_gas_1297", %"$False_1293" + %"$consume_1299" = sub i64 %"$gasrem_1295", 1 + store i64 %"$consume_1299", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_1323" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1324" = icmp ugt i64 1, %"$gasrem_1323" - br i1 %"$gascmp_1324", label %"$out_of_gas_1325", label %"$have_gas_1326" + %"$gasrem_1300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1301" = icmp ugt i64 1, %"$gasrem_1300" + br i1 %"$gascmp_1301", label %"$out_of_gas_1302", label %"$have_gas_1303" -"$out_of_gas_1325": ; preds = %"$have_gas_1321" +"$out_of_gas_1302": ; preds = %"$have_gas_1298" call void @_out_of_gas() - br label %"$have_gas_1326" + br label %"$have_gas_1303" -"$have_gas_1326": ; preds = %"$out_of_gas_1325", %"$have_gas_1321" - %"$consume_1327" = sub i64 %"$gasrem_1323", 1 - store i64 %"$consume_1327", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1328", i32 0, i32 0), i32 31 }, %String* %m, align 8 - %"$gasrem_1329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1330" = icmp ugt i64 1, %"$gasrem_1329" - br i1 %"$gascmp_1330", label %"$out_of_gas_1331", label %"$have_gas_1332" +"$have_gas_1303": ; preds = %"$out_of_gas_1302", %"$have_gas_1298" + %"$consume_1304" = sub i64 %"$gasrem_1300", 1 + store i64 %"$consume_1304", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1305", i32 0, i32 0), i32 31 }, %String* %m, align 8 + %"$gasrem_1306" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1307" = icmp ugt i64 1, %"$gasrem_1306" + br i1 %"$gascmp_1307", label %"$out_of_gas_1308", label %"$have_gas_1309" -"$out_of_gas_1331": ; preds = %"$have_gas_1326" +"$out_of_gas_1308": ; preds = %"$have_gas_1303" call void @_out_of_gas() - br label %"$have_gas_1332" + br label %"$have_gas_1309" -"$have_gas_1332": ; preds = %"$out_of_gas_1331", %"$have_gas_1326" - %"$consume_1333" = sub i64 %"$gasrem_1329", 1 - store i64 %"$consume_1333", i64* @_gasrem, align 8 - %"$fail_msg__origin_1334" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1334", align 1 - %"$fail_msg__sender_1335" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1335", align 1 - %"$tname_1336" = load %String, %String* %tname, align 8 - %"$m_1337" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1334", [20 x i8]* %"$fail_msg__sender_1335", %String %"$tname_1336", %String %"$m_1337") - br label %"$matchsucc_1309" +"$have_gas_1309": ; preds = %"$out_of_gas_1308", %"$have_gas_1303" + %"$consume_1310" = sub i64 %"$gasrem_1306", 1 + store i64 %"$consume_1310", i64* @_gasrem, align 8 + %"$fail_msg__origin_1311" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1311", align 1 + %"$fail_msg__sender_1312" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1312", align 1 + %"$tname_1313" = load %String, %String* %tname, align 8 + %"$m_1314" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1311", [20 x i8]* %"$fail_msg__sender_1312", %String %"$tname_1313", %String %"$m_1314") + br label %"$matchsucc_1286" -"$empty_default_1313": ; preds = %"$have_gas_1307" - br label %"$matchsucc_1309" +"$empty_default_1290": ; preds = %"$have_gas_1284" + br label %"$matchsucc_1286" -"$matchsucc_1309": ; preds = %"$have_gas_1332", %"$True_1314", %"$empty_default_1313" - br label %"$matchsucc_1260" +"$matchsucc_1286": ; preds = %"$have_gas_1309", %"$True_1291", %"$empty_default_1290" + br label %"$matchsucc_1237" -"$None_1338": ; preds = %"$have_gas_1258" - %"$c1_1339" = bitcast %TName_Option_String* %"$c1_1261" to %CName_None_String* - %"$gasrem_1340" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1341" = icmp ugt i64 1, %"$gasrem_1340" - br i1 %"$gascmp_1341", label %"$out_of_gas_1342", label %"$have_gas_1343" +"$None_1315": ; preds = %"$have_gas_1235" + %"$c1_1316" = bitcast %TName_Option_String* %"$c1_1238" to %CName_None_String* + %"$gasrem_1317" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1318" = icmp ugt i64 1, %"$gasrem_1317" + br i1 %"$gascmp_1318", label %"$out_of_gas_1319", label %"$have_gas_1320" -"$out_of_gas_1342": ; preds = %"$None_1338" +"$out_of_gas_1319": ; preds = %"$None_1315" call void @_out_of_gas() - br label %"$have_gas_1343" + br label %"$have_gas_1320" -"$have_gas_1343": ; preds = %"$out_of_gas_1342", %"$None_1338" - %"$consume_1344" = sub i64 %"$gasrem_1340", 1 - store i64 %"$consume_1344", i64* @_gasrem, align 8 +"$have_gas_1320": ; preds = %"$out_of_gas_1319", %"$None_1315" + %"$consume_1321" = sub i64 %"$gasrem_1317", 1 + store i64 %"$consume_1321", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_1345" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1346" = icmp ugt i64 1, %"$gasrem_1345" - br i1 %"$gascmp_1346", label %"$out_of_gas_1347", label %"$have_gas_1348" + %"$gasrem_1322" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1323" = icmp ugt i64 1, %"$gasrem_1322" + br i1 %"$gascmp_1323", label %"$out_of_gas_1324", label %"$have_gas_1325" -"$out_of_gas_1347": ; preds = %"$have_gas_1343" +"$out_of_gas_1324": ; preds = %"$have_gas_1320" call void @_out_of_gas() - br label %"$have_gas_1348" + br label %"$have_gas_1325" -"$have_gas_1348": ; preds = %"$out_of_gas_1347", %"$have_gas_1343" - %"$consume_1349" = sub i64 %"$gasrem_1345", 1 - store i64 %"$consume_1349", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1350", i32 0, i32 0), i32 21 }, %String* %m2, align 8 - %"$gasrem_1351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1352" = icmp ugt i64 1, %"$gasrem_1351" - br i1 %"$gascmp_1352", label %"$out_of_gas_1353", label %"$have_gas_1354" +"$have_gas_1325": ; preds = %"$out_of_gas_1324", %"$have_gas_1320" + %"$consume_1326" = sub i64 %"$gasrem_1322", 1 + store i64 %"$consume_1326", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1327", i32 0, i32 0), i32 21 }, %String* %m2, align 8 + %"$gasrem_1328" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1329" = icmp ugt i64 1, %"$gasrem_1328" + br i1 %"$gascmp_1329", label %"$out_of_gas_1330", label %"$have_gas_1331" -"$out_of_gas_1353": ; preds = %"$have_gas_1348" +"$out_of_gas_1330": ; preds = %"$have_gas_1325" call void @_out_of_gas() - br label %"$have_gas_1354" + br label %"$have_gas_1331" -"$have_gas_1354": ; preds = %"$out_of_gas_1353", %"$have_gas_1348" - %"$consume_1355" = sub i64 %"$gasrem_1351", 1 - store i64 %"$consume_1355", i64* @_gasrem, align 8 - %"$fail_msg__origin_1356" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1356", align 1 - %"$fail_msg__sender_1357" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1357", align 1 - %"$tname_1358" = load %String, %String* %tname, align 8 - %"$m_1359" = load %String, %String* %m2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1356", [20 x i8]* %"$fail_msg__sender_1357", %String %"$tname_1358", %String %"$m_1359") - br label %"$matchsucc_1260" +"$have_gas_1331": ; preds = %"$out_of_gas_1330", %"$have_gas_1325" + %"$consume_1332" = sub i64 %"$gasrem_1328", 1 + store i64 %"$consume_1332", i64* @_gasrem, align 8 + %"$fail_msg__origin_1333" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1333", align 1 + %"$fail_msg__sender_1334" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1334", align 1 + %"$tname_1335" = load %String, %String* %tname, align 8 + %"$m_1336" = load %String, %String* %m2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1333", [20 x i8]* %"$fail_msg__sender_1334", %String %"$tname_1335", %String %"$m_1336") + br label %"$matchsucc_1237" -"$empty_default_1264": ; preds = %"$have_gas_1258" - br label %"$matchsucc_1260" +"$empty_default_1241": ; preds = %"$have_gas_1235" + br label %"$matchsucc_1237" -"$matchsucc_1260": ; preds = %"$have_gas_1354", %"$matchsucc_1309", %"$empty_default_1264" - %"$gasrem_1360" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1361" = icmp ugt i64 1, %"$gasrem_1360" - br i1 %"$gascmp_1361", label %"$out_of_gas_1362", label %"$have_gas_1363" +"$matchsucc_1237": ; preds = %"$have_gas_1331", %"$matchsucc_1286", %"$empty_default_1241" + %"$gasrem_1337" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1338" = icmp ugt i64 1, %"$gasrem_1337" + br i1 %"$gascmp_1338", label %"$out_of_gas_1339", label %"$have_gas_1340" -"$out_of_gas_1362": ; preds = %"$matchsucc_1260" +"$out_of_gas_1339": ; preds = %"$matchsucc_1237" call void @_out_of_gas() - br label %"$have_gas_1363" + br label %"$have_gas_1340" -"$have_gas_1363": ; preds = %"$out_of_gas_1362", %"$matchsucc_1260" - %"$consume_1364" = sub i64 %"$gasrem_1360", 1 - store i64 %"$consume_1364", i64* @_gasrem, align 8 +"$have_gas_1340": ; preds = %"$out_of_gas_1339", %"$matchsucc_1237" + %"$consume_1341" = sub i64 %"$gasrem_1337", 1 + store i64 %"$consume_1341", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_1365" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1366" = icmp ugt i64 1, %"$gasrem_1365" - br i1 %"$gascmp_1366", label %"$out_of_gas_1367", label %"$have_gas_1368" + %"$gasrem_1342" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1343" = icmp ugt i64 1, %"$gasrem_1342" + br i1 %"$gascmp_1343", label %"$out_of_gas_1344", label %"$have_gas_1345" -"$out_of_gas_1367": ; preds = %"$have_gas_1363" +"$out_of_gas_1344": ; preds = %"$have_gas_1340" call void @_out_of_gas() - br label %"$have_gas_1368" + br label %"$have_gas_1345" -"$have_gas_1368": ; preds = %"$out_of_gas_1367", %"$have_gas_1363" - %"$consume_1369" = sub i64 %"$gasrem_1365", 1 - store i64 %"$consume_1369", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1370", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 - %"$gasrem_1371" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1372" = icmp ugt i64 1, %"$gasrem_1371" - br i1 %"$gascmp_1372", label %"$out_of_gas_1373", label %"$have_gas_1374" +"$have_gas_1345": ; preds = %"$out_of_gas_1344", %"$have_gas_1340" + %"$consume_1346" = sub i64 %"$gasrem_1342", 1 + store i64 %"$consume_1346", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1347", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 + %"$gasrem_1348" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1349" = icmp ugt i64 1, %"$gasrem_1348" + br i1 %"$gascmp_1349", label %"$out_of_gas_1350", label %"$have_gas_1351" -"$out_of_gas_1373": ; preds = %"$have_gas_1368" +"$out_of_gas_1350": ; preds = %"$have_gas_1345" call void @_out_of_gas() - br label %"$have_gas_1374" + br label %"$have_gas_1351" -"$have_gas_1374": ; preds = %"$out_of_gas_1373", %"$have_gas_1368" - %"$consume_1375" = sub i64 %"$gasrem_1371", 1 - store i64 %"$consume_1375", i64* @_gasrem, align 8 +"$have_gas_1351": ; preds = %"$out_of_gas_1350", %"$have_gas_1345" + %"$consume_1352" = sub i64 %"$gasrem_1348", 1 + store i64 %"$consume_1352", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_1376" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1377" = icmp ugt i64 1, %"$gasrem_1376" - br i1 %"$gascmp_1377", label %"$out_of_gas_1378", label %"$have_gas_1379" + %"$gasrem_1353" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1354" = icmp ugt i64 1, %"$gasrem_1353" + br i1 %"$gascmp_1354", label %"$out_of_gas_1355", label %"$have_gas_1356" -"$out_of_gas_1378": ; preds = %"$have_gas_1374" +"$out_of_gas_1355": ; preds = %"$have_gas_1351" call void @_out_of_gas() - br label %"$have_gas_1379" + br label %"$have_gas_1356" -"$have_gas_1379": ; preds = %"$out_of_gas_1378", %"$have_gas_1374" - %"$consume_1380" = sub i64 %"$gasrem_1376", 1 - store i64 %"$consume_1380", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1381", i32 0, i32 0), i32 5 }, %String* %key2b, align 8 +"$have_gas_1356": ; preds = %"$out_of_gas_1355", %"$have_gas_1351" + %"$consume_1357" = sub i64 %"$gasrem_1353", 1 + store i64 %"$consume_1357", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1358", i32 0, i32 0), i32 5 }, %String* %key2b, align 8 %"$c1_0" = alloca %TName_Option_String*, align 8 - %"$indices_buf_1382_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1382_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1382_salloc_load", i64 32) - %"$indices_buf_1382_salloc" = bitcast i8* %"$indices_buf_1382_salloc_salloc" to [32 x i8]* - %"$indices_buf_1382" = bitcast [32 x i8]* %"$indices_buf_1382_salloc" to i8* - %"$key1b_1383" = load %String, %String* %key1b, align 8 - %"$indices_gep_1384" = getelementptr i8, i8* %"$indices_buf_1382", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_1384" to %String* - store %String %"$key1b_1383", %String* %indices_cast3, align 8 - %"$key2b_1385" = load %String, %String* %key2b, align 8 - %"$indices_gep_1386" = getelementptr i8, i8* %"$indices_buf_1382", i32 16 - %indices_cast4 = bitcast i8* %"$indices_gep_1386" to %String* - store %String %"$key2b_1385", %String* %indices_cast4, align 8 - %"$execptr_load_1388" = load i8*, i8** @_execptr, align 8 - %"$$c1_0_call_1389" = call i8* @_fetch_field(i8* %"$execptr_load_1388", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1387", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1382", i32 1) - %"$$c1_0_1390" = bitcast i8* %"$$c1_0_call_1389" to %TName_Option_String* - store %TName_Option_String* %"$$c1_0_1390", %TName_Option_String** %"$c1_0", align 8 - %"$$c1_0_1391" = load %TName_Option_String*, %TName_Option_String** %"$c1_0", align 8 - %"$$$c1_0_1391_1392" = bitcast %TName_Option_String* %"$$c1_0_1391" to i8* - %"$_literal_cost_call_1393" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$$c1_0_1391_1392") - %"$gasadd_1394" = add i64 %"$_literal_cost_call_1393", 0 - %"$gasadd_1395" = add i64 %"$gasadd_1394", 2 - %"$gasrem_1396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1397" = icmp ugt i64 %"$gasadd_1395", %"$gasrem_1396" - br i1 %"$gascmp_1397", label %"$out_of_gas_1398", label %"$have_gas_1399" - -"$out_of_gas_1398": ; preds = %"$have_gas_1379" - call void @_out_of_gas() - br label %"$have_gas_1399" - -"$have_gas_1399": ; preds = %"$out_of_gas_1398", %"$have_gas_1379" - %"$consume_1400" = sub i64 %"$gasrem_1396", %"$gasadd_1395" - store i64 %"$consume_1400", i64* @_gasrem, align 8 - %"$gasrem_1401" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1402" = icmp ugt i64 2, %"$gasrem_1401" - br i1 %"$gascmp_1402", label %"$out_of_gas_1403", label %"$have_gas_1404" - -"$out_of_gas_1403": ; preds = %"$have_gas_1399" - call void @_out_of_gas() - br label %"$have_gas_1404" - -"$have_gas_1404": ; preds = %"$out_of_gas_1403", %"$have_gas_1399" - %"$consume_1405" = sub i64 %"$gasrem_1401", 2 - store i64 %"$consume_1405", i64* @_gasrem, align 8 - %"$$c1_0_1407" = load %TName_Option_String*, %TName_Option_String** %"$c1_0", align 8 - %"$$c1_0_tag_1408" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_0_1407", i32 0, i32 0 - %"$$c1_0_tag_1409" = load i8, i8* %"$$c1_0_tag_1408", align 1 - switch i8 %"$$c1_0_tag_1409", label %"$empty_default_1410" [ - i8 0, label %"$Some_1411" - i8 1, label %"$None_1484" + %"$indices_buf_1359_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1359_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1359_salloc_load", i64 32) + %"$indices_buf_1359_salloc" = bitcast i8* %"$indices_buf_1359_salloc_salloc" to [32 x i8]* + %"$indices_buf_1359" = bitcast [32 x i8]* %"$indices_buf_1359_salloc" to i8* + %"$key1b_1360" = load %String, %String* %key1b, align 8 + %"$indices_gep_1361" = getelementptr i8, i8* %"$indices_buf_1359", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_1361" to %String* + store %String %"$key1b_1360", %String* %indices_cast3, align 8 + %"$key2b_1362" = load %String, %String* %key2b, align 8 + %"$indices_gep_1363" = getelementptr i8, i8* %"$indices_buf_1359", i32 16 + %indices_cast4 = bitcast i8* %"$indices_gep_1363" to %String* + store %String %"$key2b_1362", %String* %indices_cast4, align 8 + %"$execptr_load_1365" = load i8*, i8** @_execptr, align 8 + %"$$c1_0_call_1366" = call i8* @_fetch_field(i8* %"$execptr_load_1365", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1364", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1359", i32 1) + %"$$c1_0_1367" = bitcast i8* %"$$c1_0_call_1366" to %TName_Option_String* + store %TName_Option_String* %"$$c1_0_1367", %TName_Option_String** %"$c1_0", align 8 + %"$$c1_0_1368" = load %TName_Option_String*, %TName_Option_String** %"$c1_0", align 8 + %"$$$c1_0_1368_1369" = bitcast %TName_Option_String* %"$$c1_0_1368" to i8* + %"$_literal_cost_call_1370" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$$c1_0_1368_1369") + %"$gasadd_1371" = add i64 %"$_literal_cost_call_1370", 0 + %"$gasadd_1372" = add i64 %"$gasadd_1371", 2 + %"$gasrem_1373" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1374" = icmp ugt i64 %"$gasadd_1372", %"$gasrem_1373" + br i1 %"$gascmp_1374", label %"$out_of_gas_1375", label %"$have_gas_1376" + +"$out_of_gas_1375": ; preds = %"$have_gas_1356" + call void @_out_of_gas() + br label %"$have_gas_1376" + +"$have_gas_1376": ; preds = %"$out_of_gas_1375", %"$have_gas_1356" + %"$consume_1377" = sub i64 %"$gasrem_1373", %"$gasadd_1372" + store i64 %"$consume_1377", i64* @_gasrem, align 8 + %"$gasrem_1378" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1379" = icmp ugt i64 2, %"$gasrem_1378" + br i1 %"$gascmp_1379", label %"$out_of_gas_1380", label %"$have_gas_1381" + +"$out_of_gas_1380": ; preds = %"$have_gas_1376" + call void @_out_of_gas() + br label %"$have_gas_1381" + +"$have_gas_1381": ; preds = %"$out_of_gas_1380", %"$have_gas_1376" + %"$consume_1382" = sub i64 %"$gasrem_1378", 2 + store i64 %"$consume_1382", i64* @_gasrem, align 8 + %"$$c1_0_1384" = load %TName_Option_String*, %TName_Option_String** %"$c1_0", align 8 + %"$$c1_0_tag_1385" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_0_1384", i32 0, i32 0 + %"$$c1_0_tag_1386" = load i8, i8* %"$$c1_0_tag_1385", align 1 + switch i8 %"$$c1_0_tag_1386", label %"$empty_default_1387" [ + i8 0, label %"$Some_1388" + i8 1, label %"$None_1461" ] -"$Some_1411": ; preds = %"$have_gas_1404" - %"$$c1_0_1412" = bitcast %TName_Option_String* %"$$c1_0_1407" to %CName_Some_String* - %"$c_gep_1413" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_0_1412", i32 0, i32 1 - %"$c_load_1414" = load %String, %String* %"$c_gep_1413", align 8 +"$Some_1388": ; preds = %"$have_gas_1381" + %"$$c1_0_1389" = bitcast %TName_Option_String* %"$$c1_0_1384" to %CName_Some_String* + %"$c_gep_1390" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_0_1389", i32 0, i32 1 + %"$c_load_1391" = load %String, %String* %"$c_gep_1390", align 8 %c5 = alloca %String, align 8 - store %String %"$c_load_1414", %String* %c5, align 8 - %"$gasrem_1415" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1416" = icmp ugt i64 1, %"$gasrem_1415" - br i1 %"$gascmp_1416", label %"$out_of_gas_1417", label %"$have_gas_1418" + store %String %"$c_load_1391", %String* %c5, align 8 + %"$gasrem_1392" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1393" = icmp ugt i64 1, %"$gasrem_1392" + br i1 %"$gascmp_1393", label %"$out_of_gas_1394", label %"$have_gas_1395" -"$out_of_gas_1417": ; preds = %"$Some_1411" +"$out_of_gas_1394": ; preds = %"$Some_1388" call void @_out_of_gas() - br label %"$have_gas_1418" + br label %"$have_gas_1395" -"$have_gas_1418": ; preds = %"$out_of_gas_1417", %"$Some_1411" - %"$consume_1419" = sub i64 %"$gasrem_1415", 1 - store i64 %"$consume_1419", i64* @_gasrem, align 8 +"$have_gas_1395": ; preds = %"$out_of_gas_1394", %"$Some_1388" + %"$consume_1396" = sub i64 %"$gasrem_1392", 1 + store i64 %"$consume_1396", i64* @_gasrem, align 8 %v6 = alloca %String, align 8 - %"$gasrem_1420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1421" = icmp ugt i64 1, %"$gasrem_1420" - br i1 %"$gascmp_1421", label %"$out_of_gas_1422", label %"$have_gas_1423" + %"$gasrem_1397" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1398" = icmp ugt i64 1, %"$gasrem_1397" + br i1 %"$gascmp_1398", label %"$out_of_gas_1399", label %"$have_gas_1400" -"$out_of_gas_1422": ; preds = %"$have_gas_1418" +"$out_of_gas_1399": ; preds = %"$have_gas_1395" call void @_out_of_gas() - br label %"$have_gas_1423" + br label %"$have_gas_1400" -"$have_gas_1423": ; preds = %"$out_of_gas_1422", %"$have_gas_1418" - %"$consume_1424" = sub i64 %"$gasrem_1420", 1 - store i64 %"$consume_1424", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1425", i32 0, i32 0), i32 3 }, %String* %v6, align 8 - %"$gasrem_1426" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1427" = icmp ugt i64 1, %"$gasrem_1426" - br i1 %"$gascmp_1427", label %"$out_of_gas_1428", label %"$have_gas_1429" +"$have_gas_1400": ; preds = %"$out_of_gas_1399", %"$have_gas_1395" + %"$consume_1401" = sub i64 %"$gasrem_1397", 1 + store i64 %"$consume_1401", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1402", i32 0, i32 0), i32 3 }, %String* %v6, align 8 + %"$gasrem_1403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1404" = icmp ugt i64 1, %"$gasrem_1403" + br i1 %"$gascmp_1404", label %"$out_of_gas_1405", label %"$have_gas_1406" -"$out_of_gas_1428": ; preds = %"$have_gas_1423" +"$out_of_gas_1405": ; preds = %"$have_gas_1400" call void @_out_of_gas() - br label %"$have_gas_1429" + br label %"$have_gas_1406" -"$have_gas_1429": ; preds = %"$out_of_gas_1428", %"$have_gas_1423" - %"$consume_1430" = sub i64 %"$gasrem_1426", 1 - store i64 %"$consume_1430", i64* @_gasrem, align 8 +"$have_gas_1406": ; preds = %"$out_of_gas_1405", %"$have_gas_1400" + %"$consume_1407" = sub i64 %"$gasrem_1403", 1 + store i64 %"$consume_1407", i64* @_gasrem, align 8 %eq7 = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1431" = alloca %String, align 8 - %"$c_1432" = load %String, %String* %c5, align 8 - store %String %"$c_1432", %String* %"$_literal_cost_c_1431", align 8 - %"$$_literal_cost_c_1431_1433" = bitcast %String* %"$_literal_cost_c_1431" to i8* - %"$_literal_cost_call_1434" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_1431_1433") - %"$_literal_cost_v_1435" = alloca %String, align 8 - %"$v_1436" = load %String, %String* %v6, align 8 - store %String %"$v_1436", %String* %"$_literal_cost_v_1435", align 8 - %"$$_literal_cost_v_1435_1437" = bitcast %String* %"$_literal_cost_v_1435" to i8* - %"$_literal_cost_call_1438" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_1435_1437") - %"$gasmin_1439" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1434", i64 %"$_literal_cost_call_1438") - %"$gasrem_1440" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1441" = icmp ugt i64 %"$gasmin_1439", %"$gasrem_1440" - br i1 %"$gascmp_1441", label %"$out_of_gas_1442", label %"$have_gas_1443" - -"$out_of_gas_1442": ; preds = %"$have_gas_1429" - call void @_out_of_gas() - br label %"$have_gas_1443" - -"$have_gas_1443": ; preds = %"$out_of_gas_1442", %"$have_gas_1429" - %"$consume_1444" = sub i64 %"$gasrem_1440", %"$gasmin_1439" - store i64 %"$consume_1444", i64* @_gasrem, align 8 - %"$execptr_load_1445" = load i8*, i8** @_execptr, align 8 - %"$c_1446" = load %String, %String* %c5, align 8 - %"$v_1447" = load %String, %String* %v6, align 8 - %"$eq_call_1448" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1445", %String %"$c_1446", %String %"$v_1447") - store %TName_Bool* %"$eq_call_1448", %TName_Bool** %eq7, align 8 - %"$gasrem_1450" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1451" = icmp ugt i64 2, %"$gasrem_1450" - br i1 %"$gascmp_1451", label %"$out_of_gas_1452", label %"$have_gas_1453" - -"$out_of_gas_1452": ; preds = %"$have_gas_1443" - call void @_out_of_gas() - br label %"$have_gas_1453" - -"$have_gas_1453": ; preds = %"$out_of_gas_1452", %"$have_gas_1443" - %"$consume_1454" = sub i64 %"$gasrem_1450", 2 - store i64 %"$consume_1454", i64* @_gasrem, align 8 - %"$eq_1456" = load %TName_Bool*, %TName_Bool** %eq7, align 8 - %"$eq_tag_1457" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1456", i32 0, i32 0 - %"$eq_tag_1458" = load i8, i8* %"$eq_tag_1457", align 1 - switch i8 %"$eq_tag_1458", label %"$empty_default_1459" [ - i8 0, label %"$True_1460" - i8 1, label %"$False_1462" + %"$_literal_cost_c_1408" = alloca %String, align 8 + %"$c_1409" = load %String, %String* %c5, align 8 + store %String %"$c_1409", %String* %"$_literal_cost_c_1408", align 8 + %"$$_literal_cost_c_1408_1410" = bitcast %String* %"$_literal_cost_c_1408" to i8* + %"$_literal_cost_call_1411" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_1408_1410") + %"$_literal_cost_v_1412" = alloca %String, align 8 + %"$v_1413" = load %String, %String* %v6, align 8 + store %String %"$v_1413", %String* %"$_literal_cost_v_1412", align 8 + %"$$_literal_cost_v_1412_1414" = bitcast %String* %"$_literal_cost_v_1412" to i8* + %"$_literal_cost_call_1415" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_1412_1414") + %"$gasmin_1416" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1411", i64 %"$_literal_cost_call_1415") + %"$gasrem_1417" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1418" = icmp ugt i64 %"$gasmin_1416", %"$gasrem_1417" + br i1 %"$gascmp_1418", label %"$out_of_gas_1419", label %"$have_gas_1420" + +"$out_of_gas_1419": ; preds = %"$have_gas_1406" + call void @_out_of_gas() + br label %"$have_gas_1420" + +"$have_gas_1420": ; preds = %"$out_of_gas_1419", %"$have_gas_1406" + %"$consume_1421" = sub i64 %"$gasrem_1417", %"$gasmin_1416" + store i64 %"$consume_1421", i64* @_gasrem, align 8 + %"$execptr_load_1422" = load i8*, i8** @_execptr, align 8 + %"$c_1423" = load %String, %String* %c5, align 8 + %"$v_1424" = load %String, %String* %v6, align 8 + %"$eq_call_1425" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1422", %String %"$c_1423", %String %"$v_1424") + store %TName_Bool* %"$eq_call_1425", %TName_Bool** %eq7, align 8 + %"$gasrem_1427" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1428" = icmp ugt i64 2, %"$gasrem_1427" + br i1 %"$gascmp_1428", label %"$out_of_gas_1429", label %"$have_gas_1430" + +"$out_of_gas_1429": ; preds = %"$have_gas_1420" + call void @_out_of_gas() + br label %"$have_gas_1430" + +"$have_gas_1430": ; preds = %"$out_of_gas_1429", %"$have_gas_1420" + %"$consume_1431" = sub i64 %"$gasrem_1427", 2 + store i64 %"$consume_1431", i64* @_gasrem, align 8 + %"$eq_1433" = load %TName_Bool*, %TName_Bool** %eq7, align 8 + %"$eq_tag_1434" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1433", i32 0, i32 0 + %"$eq_tag_1435" = load i8, i8* %"$eq_tag_1434", align 1 + switch i8 %"$eq_tag_1435", label %"$empty_default_1436" [ + i8 0, label %"$True_1437" + i8 1, label %"$False_1439" ] -"$True_1460": ; preds = %"$have_gas_1453" - %"$eq_1461" = bitcast %TName_Bool* %"$eq_1456" to %CName_True* - br label %"$matchsucc_1455" +"$True_1437": ; preds = %"$have_gas_1430" + %"$eq_1438" = bitcast %TName_Bool* %"$eq_1433" to %CName_True* + br label %"$matchsucc_1432" -"$False_1462": ; preds = %"$have_gas_1453" - %"$eq_1463" = bitcast %TName_Bool* %"$eq_1456" to %CName_False* - %"$gasrem_1464" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1465" = icmp ugt i64 1, %"$gasrem_1464" - br i1 %"$gascmp_1465", label %"$out_of_gas_1466", label %"$have_gas_1467" +"$False_1439": ; preds = %"$have_gas_1430" + %"$eq_1440" = bitcast %TName_Bool* %"$eq_1433" to %CName_False* + %"$gasrem_1441" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1442" = icmp ugt i64 1, %"$gasrem_1441" + br i1 %"$gascmp_1442", label %"$out_of_gas_1443", label %"$have_gas_1444" -"$out_of_gas_1466": ; preds = %"$False_1462" +"$out_of_gas_1443": ; preds = %"$False_1439" call void @_out_of_gas() - br label %"$have_gas_1467" + br label %"$have_gas_1444" -"$have_gas_1467": ; preds = %"$out_of_gas_1466", %"$False_1462" - %"$consume_1468" = sub i64 %"$gasrem_1464", 1 - store i64 %"$consume_1468", i64* @_gasrem, align 8 +"$have_gas_1444": ; preds = %"$out_of_gas_1443", %"$False_1439" + %"$consume_1445" = sub i64 %"$gasrem_1441", 1 + store i64 %"$consume_1445", i64* @_gasrem, align 8 %m8 = alloca %String, align 8 - %"$gasrem_1469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1470" = icmp ugt i64 1, %"$gasrem_1469" - br i1 %"$gascmp_1470", label %"$out_of_gas_1471", label %"$have_gas_1472" + %"$gasrem_1446" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1447" = icmp ugt i64 1, %"$gasrem_1446" + br i1 %"$gascmp_1447", label %"$out_of_gas_1448", label %"$have_gas_1449" -"$out_of_gas_1471": ; preds = %"$have_gas_1467" +"$out_of_gas_1448": ; preds = %"$have_gas_1444" call void @_out_of_gas() - br label %"$have_gas_1472" + br label %"$have_gas_1449" -"$have_gas_1472": ; preds = %"$out_of_gas_1471", %"$have_gas_1467" - %"$consume_1473" = sub i64 %"$gasrem_1469", 1 - store i64 %"$consume_1473", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1474", i32 0, i32 0), i32 31 }, %String* %m8, align 8 - %"$gasrem_1475" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1476" = icmp ugt i64 1, %"$gasrem_1475" - br i1 %"$gascmp_1476", label %"$out_of_gas_1477", label %"$have_gas_1478" +"$have_gas_1449": ; preds = %"$out_of_gas_1448", %"$have_gas_1444" + %"$consume_1450" = sub i64 %"$gasrem_1446", 1 + store i64 %"$consume_1450", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1451", i32 0, i32 0), i32 31 }, %String* %m8, align 8 + %"$gasrem_1452" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1453" = icmp ugt i64 1, %"$gasrem_1452" + br i1 %"$gascmp_1453", label %"$out_of_gas_1454", label %"$have_gas_1455" -"$out_of_gas_1477": ; preds = %"$have_gas_1472" +"$out_of_gas_1454": ; preds = %"$have_gas_1449" call void @_out_of_gas() - br label %"$have_gas_1478" + br label %"$have_gas_1455" -"$have_gas_1478": ; preds = %"$out_of_gas_1477", %"$have_gas_1472" - %"$consume_1479" = sub i64 %"$gasrem_1475", 1 - store i64 %"$consume_1479", i64* @_gasrem, align 8 - %"$fail_msg__origin_1480" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1480", align 1 - %"$fail_msg__sender_1481" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1481", align 1 - %"$tname_1482" = load %String, %String* %tname, align 8 - %"$m_1483" = load %String, %String* %m8, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1480", [20 x i8]* %"$fail_msg__sender_1481", %String %"$tname_1482", %String %"$m_1483") - br label %"$matchsucc_1455" +"$have_gas_1455": ; preds = %"$out_of_gas_1454", %"$have_gas_1449" + %"$consume_1456" = sub i64 %"$gasrem_1452", 1 + store i64 %"$consume_1456", i64* @_gasrem, align 8 + %"$fail_msg__origin_1457" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1457", align 1 + %"$fail_msg__sender_1458" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1458", align 1 + %"$tname_1459" = load %String, %String* %tname, align 8 + %"$m_1460" = load %String, %String* %m8, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1457", [20 x i8]* %"$fail_msg__sender_1458", %String %"$tname_1459", %String %"$m_1460") + br label %"$matchsucc_1432" -"$empty_default_1459": ; preds = %"$have_gas_1453" - br label %"$matchsucc_1455" +"$empty_default_1436": ; preds = %"$have_gas_1430" + br label %"$matchsucc_1432" -"$matchsucc_1455": ; preds = %"$have_gas_1478", %"$True_1460", %"$empty_default_1459" - br label %"$matchsucc_1406" +"$matchsucc_1432": ; preds = %"$have_gas_1455", %"$True_1437", %"$empty_default_1436" + br label %"$matchsucc_1383" -"$None_1484": ; preds = %"$have_gas_1404" - %"$$c1_0_1485" = bitcast %TName_Option_String* %"$$c1_0_1407" to %CName_None_String* - %"$gasrem_1486" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1487" = icmp ugt i64 1, %"$gasrem_1486" - br i1 %"$gascmp_1487", label %"$out_of_gas_1488", label %"$have_gas_1489" +"$None_1461": ; preds = %"$have_gas_1381" + %"$$c1_0_1462" = bitcast %TName_Option_String* %"$$c1_0_1384" to %CName_None_String* + %"$gasrem_1463" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1464" = icmp ugt i64 1, %"$gasrem_1463" + br i1 %"$gascmp_1464", label %"$out_of_gas_1465", label %"$have_gas_1466" -"$out_of_gas_1488": ; preds = %"$None_1484" +"$out_of_gas_1465": ; preds = %"$None_1461" call void @_out_of_gas() - br label %"$have_gas_1489" + br label %"$have_gas_1466" -"$have_gas_1489": ; preds = %"$out_of_gas_1488", %"$None_1484" - %"$consume_1490" = sub i64 %"$gasrem_1486", 1 - store i64 %"$consume_1490", i64* @_gasrem, align 8 +"$have_gas_1466": ; preds = %"$out_of_gas_1465", %"$None_1461" + %"$consume_1467" = sub i64 %"$gasrem_1463", 1 + store i64 %"$consume_1467", i64* @_gasrem, align 8 %m9 = alloca %String, align 8 - %"$gasrem_1491" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1492" = icmp ugt i64 1, %"$gasrem_1491" - br i1 %"$gascmp_1492", label %"$out_of_gas_1493", label %"$have_gas_1494" + %"$gasrem_1468" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1469" = icmp ugt i64 1, %"$gasrem_1468" + br i1 %"$gascmp_1469", label %"$out_of_gas_1470", label %"$have_gas_1471" -"$out_of_gas_1493": ; preds = %"$have_gas_1489" +"$out_of_gas_1470": ; preds = %"$have_gas_1466" call void @_out_of_gas() - br label %"$have_gas_1494" + br label %"$have_gas_1471" -"$have_gas_1494": ; preds = %"$out_of_gas_1493", %"$have_gas_1489" - %"$consume_1495" = sub i64 %"$gasrem_1491", 1 - store i64 %"$consume_1495", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1496", i32 0, i32 0), i32 21 }, %String* %m9, align 8 - %"$gasrem_1497" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1498" = icmp ugt i64 1, %"$gasrem_1497" - br i1 %"$gascmp_1498", label %"$out_of_gas_1499", label %"$have_gas_1500" +"$have_gas_1471": ; preds = %"$out_of_gas_1470", %"$have_gas_1466" + %"$consume_1472" = sub i64 %"$gasrem_1468", 1 + store i64 %"$consume_1472", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1473", i32 0, i32 0), i32 21 }, %String* %m9, align 8 + %"$gasrem_1474" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1475" = icmp ugt i64 1, %"$gasrem_1474" + br i1 %"$gascmp_1475", label %"$out_of_gas_1476", label %"$have_gas_1477" -"$out_of_gas_1499": ; preds = %"$have_gas_1494" +"$out_of_gas_1476": ; preds = %"$have_gas_1471" call void @_out_of_gas() - br label %"$have_gas_1500" + br label %"$have_gas_1477" -"$have_gas_1500": ; preds = %"$out_of_gas_1499", %"$have_gas_1494" - %"$consume_1501" = sub i64 %"$gasrem_1497", 1 - store i64 %"$consume_1501", i64* @_gasrem, align 8 - %"$fail_msg__origin_1502" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1502", align 1 - %"$fail_msg__sender_1503" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1503", align 1 - %"$tname_1504" = load %String, %String* %tname, align 8 - %"$m_1505" = load %String, %String* %m9, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1502", [20 x i8]* %"$fail_msg__sender_1503", %String %"$tname_1504", %String %"$m_1505") - br label %"$matchsucc_1406" +"$have_gas_1477": ; preds = %"$out_of_gas_1476", %"$have_gas_1471" + %"$consume_1478" = sub i64 %"$gasrem_1474", 1 + store i64 %"$consume_1478", i64* @_gasrem, align 8 + %"$fail_msg__origin_1479" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1479", align 1 + %"$fail_msg__sender_1480" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1480", align 1 + %"$tname_1481" = load %String, %String* %tname, align 8 + %"$m_1482" = load %String, %String* %m9, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1479", [20 x i8]* %"$fail_msg__sender_1480", %String %"$tname_1481", %String %"$m_1482") + br label %"$matchsucc_1383" -"$empty_default_1410": ; preds = %"$have_gas_1404" - br label %"$matchsucc_1406" +"$empty_default_1387": ; preds = %"$have_gas_1381" + br label %"$matchsucc_1383" -"$matchsucc_1406": ; preds = %"$have_gas_1500", %"$matchsucc_1455", %"$empty_default_1410" - %"$gasrem_1506" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1507" = icmp ugt i64 1, %"$gasrem_1506" - br i1 %"$gascmp_1507", label %"$out_of_gas_1508", label %"$have_gas_1509" +"$matchsucc_1383": ; preds = %"$have_gas_1477", %"$matchsucc_1432", %"$empty_default_1387" + %"$gasrem_1483" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1484" = icmp ugt i64 1, %"$gasrem_1483" + br i1 %"$gascmp_1484", label %"$out_of_gas_1485", label %"$have_gas_1486" -"$out_of_gas_1508": ; preds = %"$matchsucc_1406" +"$out_of_gas_1485": ; preds = %"$matchsucc_1383" call void @_out_of_gas() - br label %"$have_gas_1509" + br label %"$have_gas_1486" -"$have_gas_1509": ; preds = %"$out_of_gas_1508", %"$matchsucc_1406" - %"$consume_1510" = sub i64 %"$gasrem_1506", 1 - store i64 %"$consume_1510", i64* @_gasrem, align 8 +"$have_gas_1486": ; preds = %"$out_of_gas_1485", %"$matchsucc_1383" + %"$consume_1487" = sub i64 %"$gasrem_1483", 1 + store i64 %"$consume_1487", i64* @_gasrem, align 8 %"$key1b_1" = alloca %String, align 8 - %"$gasrem_1511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1512" = icmp ugt i64 1, %"$gasrem_1511" - br i1 %"$gascmp_1512", label %"$out_of_gas_1513", label %"$have_gas_1514" + %"$gasrem_1488" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1489" = icmp ugt i64 1, %"$gasrem_1488" + br i1 %"$gascmp_1489", label %"$out_of_gas_1490", label %"$have_gas_1491" -"$out_of_gas_1513": ; preds = %"$have_gas_1509" +"$out_of_gas_1490": ; preds = %"$have_gas_1486" call void @_out_of_gas() - br label %"$have_gas_1514" + br label %"$have_gas_1491" -"$have_gas_1514": ; preds = %"$out_of_gas_1513", %"$have_gas_1509" - %"$consume_1515" = sub i64 %"$gasrem_1511", 1 - store i64 %"$consume_1515", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1516", i32 0, i32 0), i32 5 }, %String* %"$key1b_1", align 8 - %"$gasrem_1517" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1518" = icmp ugt i64 1, %"$gasrem_1517" - br i1 %"$gascmp_1518", label %"$out_of_gas_1519", label %"$have_gas_1520" +"$have_gas_1491": ; preds = %"$out_of_gas_1490", %"$have_gas_1486" + %"$consume_1492" = sub i64 %"$gasrem_1488", 1 + store i64 %"$consume_1492", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1493", i32 0, i32 0), i32 5 }, %String* %"$key1b_1", align 8 + %"$gasrem_1494" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1495" = icmp ugt i64 1, %"$gasrem_1494" + br i1 %"$gascmp_1495", label %"$out_of_gas_1496", label %"$have_gas_1497" -"$out_of_gas_1519": ; preds = %"$have_gas_1514" +"$out_of_gas_1496": ; preds = %"$have_gas_1491" call void @_out_of_gas() - br label %"$have_gas_1520" + br label %"$have_gas_1497" -"$have_gas_1520": ; preds = %"$out_of_gas_1519", %"$have_gas_1514" - %"$consume_1521" = sub i64 %"$gasrem_1517", 1 - store i64 %"$consume_1521", i64* @_gasrem, align 8 +"$have_gas_1497": ; preds = %"$out_of_gas_1496", %"$have_gas_1491" + %"$consume_1498" = sub i64 %"$gasrem_1494", 1 + store i64 %"$consume_1498", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_1522" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1523" = icmp ugt i64 1, %"$gasrem_1522" - br i1 %"$gascmp_1523", label %"$out_of_gas_1524", label %"$have_gas_1525" + %"$gasrem_1499" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1500" = icmp ugt i64 1, %"$gasrem_1499" + br i1 %"$gascmp_1500", label %"$out_of_gas_1501", label %"$have_gas_1502" -"$out_of_gas_1524": ; preds = %"$have_gas_1520" +"$out_of_gas_1501": ; preds = %"$have_gas_1497" call void @_out_of_gas() - br label %"$have_gas_1525" + br label %"$have_gas_1502" -"$have_gas_1525": ; preds = %"$out_of_gas_1524", %"$have_gas_1520" - %"$consume_1526" = sub i64 %"$gasrem_1522", 1 - store i64 %"$consume_1526", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1527", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 +"$have_gas_1502": ; preds = %"$out_of_gas_1501", %"$have_gas_1497" + %"$consume_1503" = sub i64 %"$gasrem_1499", 1 + store i64 %"$consume_1503", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1504", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 %"$c1_2" = alloca %TName_Option_String*, align 8 - %"$indices_buf_1528_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1528_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1528_salloc_load", i64 32) - %"$indices_buf_1528_salloc" = bitcast i8* %"$indices_buf_1528_salloc_salloc" to [32 x i8]* - %"$indices_buf_1528" = bitcast [32 x i8]* %"$indices_buf_1528_salloc" to i8* - %"$$key1b_1_1529" = load %String, %String* %"$key1b_1", align 8 - %"$indices_gep_1530" = getelementptr i8, i8* %"$indices_buf_1528", i32 0 - %indices_cast10 = bitcast i8* %"$indices_gep_1530" to %String* - store %String %"$$key1b_1_1529", %String* %indices_cast10, align 8 - %"$key2c_1531" = load %String, %String* %key2c, align 8 - %"$indices_gep_1532" = getelementptr i8, i8* %"$indices_buf_1528", i32 16 - %indices_cast11 = bitcast i8* %"$indices_gep_1532" to %String* - store %String %"$key2c_1531", %String* %indices_cast11, align 8 - %"$execptr_load_1534" = load i8*, i8** @_execptr, align 8 - %"$$c1_2_call_1535" = call i8* @_fetch_field(i8* %"$execptr_load_1534", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1533", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1528", i32 1) - %"$$c1_2_1536" = bitcast i8* %"$$c1_2_call_1535" to %TName_Option_String* - store %TName_Option_String* %"$$c1_2_1536", %TName_Option_String** %"$c1_2", align 8 - %"$$c1_2_1537" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 - %"$$$c1_2_1537_1538" = bitcast %TName_Option_String* %"$$c1_2_1537" to i8* - %"$_literal_cost_call_1539" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$$c1_2_1537_1538") - %"$gasadd_1540" = add i64 %"$_literal_cost_call_1539", 0 - %"$gasadd_1541" = add i64 %"$gasadd_1540", 2 - %"$gasrem_1542" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1543" = icmp ugt i64 %"$gasadd_1541", %"$gasrem_1542" - br i1 %"$gascmp_1543", label %"$out_of_gas_1544", label %"$have_gas_1545" - -"$out_of_gas_1544": ; preds = %"$have_gas_1525" - call void @_out_of_gas() - br label %"$have_gas_1545" - -"$have_gas_1545": ; preds = %"$out_of_gas_1544", %"$have_gas_1525" - %"$consume_1546" = sub i64 %"$gasrem_1542", %"$gasadd_1541" - store i64 %"$consume_1546", i64* @_gasrem, align 8 - %"$gasrem_1547" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1548" = icmp ugt i64 2, %"$gasrem_1547" - br i1 %"$gascmp_1548", label %"$out_of_gas_1549", label %"$have_gas_1550" - -"$out_of_gas_1549": ; preds = %"$have_gas_1545" - call void @_out_of_gas() - br label %"$have_gas_1550" - -"$have_gas_1550": ; preds = %"$out_of_gas_1549", %"$have_gas_1545" - %"$consume_1551" = sub i64 %"$gasrem_1547", 2 - store i64 %"$consume_1551", i64* @_gasrem, align 8 - %"$$c1_2_1553" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 - %"$$c1_2_tag_1554" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_2_1553", i32 0, i32 0 - %"$$c1_2_tag_1555" = load i8, i8* %"$$c1_2_tag_1554", align 1 - switch i8 %"$$c1_2_tag_1555", label %"$empty_default_1556" [ - i8 0, label %"$Some_1557" - i8 1, label %"$None_1630" + %"$indices_buf_1505_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1505_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1505_salloc_load", i64 32) + %"$indices_buf_1505_salloc" = bitcast i8* %"$indices_buf_1505_salloc_salloc" to [32 x i8]* + %"$indices_buf_1505" = bitcast [32 x i8]* %"$indices_buf_1505_salloc" to i8* + %"$$key1b_1_1506" = load %String, %String* %"$key1b_1", align 8 + %"$indices_gep_1507" = getelementptr i8, i8* %"$indices_buf_1505", i32 0 + %indices_cast10 = bitcast i8* %"$indices_gep_1507" to %String* + store %String %"$$key1b_1_1506", %String* %indices_cast10, align 8 + %"$key2c_1508" = load %String, %String* %key2c, align 8 + %"$indices_gep_1509" = getelementptr i8, i8* %"$indices_buf_1505", i32 16 + %indices_cast11 = bitcast i8* %"$indices_gep_1509" to %String* + store %String %"$key2c_1508", %String* %indices_cast11, align 8 + %"$execptr_load_1511" = load i8*, i8** @_execptr, align 8 + %"$$c1_2_call_1512" = call i8* @_fetch_field(i8* %"$execptr_load_1511", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1510", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1505", i32 1) + %"$$c1_2_1513" = bitcast i8* %"$$c1_2_call_1512" to %TName_Option_String* + store %TName_Option_String* %"$$c1_2_1513", %TName_Option_String** %"$c1_2", align 8 + %"$$c1_2_1514" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 + %"$$$c1_2_1514_1515" = bitcast %TName_Option_String* %"$$c1_2_1514" to i8* + %"$_literal_cost_call_1516" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$$c1_2_1514_1515") + %"$gasadd_1517" = add i64 %"$_literal_cost_call_1516", 0 + %"$gasadd_1518" = add i64 %"$gasadd_1517", 2 + %"$gasrem_1519" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1520" = icmp ugt i64 %"$gasadd_1518", %"$gasrem_1519" + br i1 %"$gascmp_1520", label %"$out_of_gas_1521", label %"$have_gas_1522" + +"$out_of_gas_1521": ; preds = %"$have_gas_1502" + call void @_out_of_gas() + br label %"$have_gas_1522" + +"$have_gas_1522": ; preds = %"$out_of_gas_1521", %"$have_gas_1502" + %"$consume_1523" = sub i64 %"$gasrem_1519", %"$gasadd_1518" + store i64 %"$consume_1523", i64* @_gasrem, align 8 + %"$gasrem_1524" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1525" = icmp ugt i64 2, %"$gasrem_1524" + br i1 %"$gascmp_1525", label %"$out_of_gas_1526", label %"$have_gas_1527" + +"$out_of_gas_1526": ; preds = %"$have_gas_1522" + call void @_out_of_gas() + br label %"$have_gas_1527" + +"$have_gas_1527": ; preds = %"$out_of_gas_1526", %"$have_gas_1522" + %"$consume_1528" = sub i64 %"$gasrem_1524", 2 + store i64 %"$consume_1528", i64* @_gasrem, align 8 + %"$$c1_2_1530" = load %TName_Option_String*, %TName_Option_String** %"$c1_2", align 8 + %"$$c1_2_tag_1531" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_2_1530", i32 0, i32 0 + %"$$c1_2_tag_1532" = load i8, i8* %"$$c1_2_tag_1531", align 1 + switch i8 %"$$c1_2_tag_1532", label %"$empty_default_1533" [ + i8 0, label %"$Some_1534" + i8 1, label %"$None_1607" ] -"$Some_1557": ; preds = %"$have_gas_1550" - %"$$c1_2_1558" = bitcast %TName_Option_String* %"$$c1_2_1553" to %CName_Some_String* - %"$c_gep_1559" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_2_1558", i32 0, i32 1 - %"$c_load_1560" = load %String, %String* %"$c_gep_1559", align 8 +"$Some_1534": ; preds = %"$have_gas_1527" + %"$$c1_2_1535" = bitcast %TName_Option_String* %"$$c1_2_1530" to %CName_Some_String* + %"$c_gep_1536" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_2_1535", i32 0, i32 1 + %"$c_load_1537" = load %String, %String* %"$c_gep_1536", align 8 %c12 = alloca %String, align 8 - store %String %"$c_load_1560", %String* %c12, align 8 - %"$gasrem_1561" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1562" = icmp ugt i64 1, %"$gasrem_1561" - br i1 %"$gascmp_1562", label %"$out_of_gas_1563", label %"$have_gas_1564" + store %String %"$c_load_1537", %String* %c12, align 8 + %"$gasrem_1538" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1539" = icmp ugt i64 1, %"$gasrem_1538" + br i1 %"$gascmp_1539", label %"$out_of_gas_1540", label %"$have_gas_1541" -"$out_of_gas_1563": ; preds = %"$Some_1557" +"$out_of_gas_1540": ; preds = %"$Some_1534" call void @_out_of_gas() - br label %"$have_gas_1564" + br label %"$have_gas_1541" -"$have_gas_1564": ; preds = %"$out_of_gas_1563", %"$Some_1557" - %"$consume_1565" = sub i64 %"$gasrem_1561", 1 - store i64 %"$consume_1565", i64* @_gasrem, align 8 +"$have_gas_1541": ; preds = %"$out_of_gas_1540", %"$Some_1534" + %"$consume_1542" = sub i64 %"$gasrem_1538", 1 + store i64 %"$consume_1542", i64* @_gasrem, align 8 %v13 = alloca %String, align 8 - %"$gasrem_1566" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1567" = icmp ugt i64 1, %"$gasrem_1566" - br i1 %"$gascmp_1567", label %"$out_of_gas_1568", label %"$have_gas_1569" + %"$gasrem_1543" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1544" = icmp ugt i64 1, %"$gasrem_1543" + br i1 %"$gascmp_1544", label %"$out_of_gas_1545", label %"$have_gas_1546" -"$out_of_gas_1568": ; preds = %"$have_gas_1564" +"$out_of_gas_1545": ; preds = %"$have_gas_1541" call void @_out_of_gas() - br label %"$have_gas_1569" + br label %"$have_gas_1546" -"$have_gas_1569": ; preds = %"$out_of_gas_1568", %"$have_gas_1564" - %"$consume_1570" = sub i64 %"$gasrem_1566", 1 - store i64 %"$consume_1570", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1571", i32 0, i32 0), i32 3 }, %String* %v13, align 8 - %"$gasrem_1572" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1573" = icmp ugt i64 1, %"$gasrem_1572" - br i1 %"$gascmp_1573", label %"$out_of_gas_1574", label %"$have_gas_1575" +"$have_gas_1546": ; preds = %"$out_of_gas_1545", %"$have_gas_1541" + %"$consume_1547" = sub i64 %"$gasrem_1543", 1 + store i64 %"$consume_1547", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1548", i32 0, i32 0), i32 3 }, %String* %v13, align 8 + %"$gasrem_1549" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1550" = icmp ugt i64 1, %"$gasrem_1549" + br i1 %"$gascmp_1550", label %"$out_of_gas_1551", label %"$have_gas_1552" -"$out_of_gas_1574": ; preds = %"$have_gas_1569" +"$out_of_gas_1551": ; preds = %"$have_gas_1546" call void @_out_of_gas() - br label %"$have_gas_1575" + br label %"$have_gas_1552" -"$have_gas_1575": ; preds = %"$out_of_gas_1574", %"$have_gas_1569" - %"$consume_1576" = sub i64 %"$gasrem_1572", 1 - store i64 %"$consume_1576", i64* @_gasrem, align 8 +"$have_gas_1552": ; preds = %"$out_of_gas_1551", %"$have_gas_1546" + %"$consume_1553" = sub i64 %"$gasrem_1549", 1 + store i64 %"$consume_1553", i64* @_gasrem, align 8 %eq14 = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1577" = alloca %String, align 8 - %"$c_1578" = load %String, %String* %c12, align 8 - store %String %"$c_1578", %String* %"$_literal_cost_c_1577", align 8 - %"$$_literal_cost_c_1577_1579" = bitcast %String* %"$_literal_cost_c_1577" to i8* - %"$_literal_cost_call_1580" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_1577_1579") - %"$_literal_cost_v_1581" = alloca %String, align 8 - %"$v_1582" = load %String, %String* %v13, align 8 - store %String %"$v_1582", %String* %"$_literal_cost_v_1581", align 8 - %"$$_literal_cost_v_1581_1583" = bitcast %String* %"$_literal_cost_v_1581" to i8* - %"$_literal_cost_call_1584" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_1581_1583") - %"$gasmin_1585" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1580", i64 %"$_literal_cost_call_1584") - %"$gasrem_1586" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1587" = icmp ugt i64 %"$gasmin_1585", %"$gasrem_1586" - br i1 %"$gascmp_1587", label %"$out_of_gas_1588", label %"$have_gas_1589" - -"$out_of_gas_1588": ; preds = %"$have_gas_1575" - call void @_out_of_gas() - br label %"$have_gas_1589" - -"$have_gas_1589": ; preds = %"$out_of_gas_1588", %"$have_gas_1575" - %"$consume_1590" = sub i64 %"$gasrem_1586", %"$gasmin_1585" - store i64 %"$consume_1590", i64* @_gasrem, align 8 - %"$execptr_load_1591" = load i8*, i8** @_execptr, align 8 - %"$c_1592" = load %String, %String* %c12, align 8 - %"$v_1593" = load %String, %String* %v13, align 8 - %"$eq_call_1594" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1591", %String %"$c_1592", %String %"$v_1593") - store %TName_Bool* %"$eq_call_1594", %TName_Bool** %eq14, align 8 - %"$gasrem_1596" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1597" = icmp ugt i64 2, %"$gasrem_1596" - br i1 %"$gascmp_1597", label %"$out_of_gas_1598", label %"$have_gas_1599" - -"$out_of_gas_1598": ; preds = %"$have_gas_1589" - call void @_out_of_gas() - br label %"$have_gas_1599" - -"$have_gas_1599": ; preds = %"$out_of_gas_1598", %"$have_gas_1589" - %"$consume_1600" = sub i64 %"$gasrem_1596", 2 - store i64 %"$consume_1600", i64* @_gasrem, align 8 - %"$eq_1602" = load %TName_Bool*, %TName_Bool** %eq14, align 8 - %"$eq_tag_1603" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1602", i32 0, i32 0 - %"$eq_tag_1604" = load i8, i8* %"$eq_tag_1603", align 1 - switch i8 %"$eq_tag_1604", label %"$empty_default_1605" [ - i8 0, label %"$True_1606" - i8 1, label %"$False_1608" + %"$_literal_cost_c_1554" = alloca %String, align 8 + %"$c_1555" = load %String, %String* %c12, align 8 + store %String %"$c_1555", %String* %"$_literal_cost_c_1554", align 8 + %"$$_literal_cost_c_1554_1556" = bitcast %String* %"$_literal_cost_c_1554" to i8* + %"$_literal_cost_call_1557" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_1554_1556") + %"$_literal_cost_v_1558" = alloca %String, align 8 + %"$v_1559" = load %String, %String* %v13, align 8 + store %String %"$v_1559", %String* %"$_literal_cost_v_1558", align 8 + %"$$_literal_cost_v_1558_1560" = bitcast %String* %"$_literal_cost_v_1558" to i8* + %"$_literal_cost_call_1561" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_1558_1560") + %"$gasmin_1562" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1557", i64 %"$_literal_cost_call_1561") + %"$gasrem_1563" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1564" = icmp ugt i64 %"$gasmin_1562", %"$gasrem_1563" + br i1 %"$gascmp_1564", label %"$out_of_gas_1565", label %"$have_gas_1566" + +"$out_of_gas_1565": ; preds = %"$have_gas_1552" + call void @_out_of_gas() + br label %"$have_gas_1566" + +"$have_gas_1566": ; preds = %"$out_of_gas_1565", %"$have_gas_1552" + %"$consume_1567" = sub i64 %"$gasrem_1563", %"$gasmin_1562" + store i64 %"$consume_1567", i64* @_gasrem, align 8 + %"$execptr_load_1568" = load i8*, i8** @_execptr, align 8 + %"$c_1569" = load %String, %String* %c12, align 8 + %"$v_1570" = load %String, %String* %v13, align 8 + %"$eq_call_1571" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1568", %String %"$c_1569", %String %"$v_1570") + store %TName_Bool* %"$eq_call_1571", %TName_Bool** %eq14, align 8 + %"$gasrem_1573" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1574" = icmp ugt i64 2, %"$gasrem_1573" + br i1 %"$gascmp_1574", label %"$out_of_gas_1575", label %"$have_gas_1576" + +"$out_of_gas_1575": ; preds = %"$have_gas_1566" + call void @_out_of_gas() + br label %"$have_gas_1576" + +"$have_gas_1576": ; preds = %"$out_of_gas_1575", %"$have_gas_1566" + %"$consume_1577" = sub i64 %"$gasrem_1573", 2 + store i64 %"$consume_1577", i64* @_gasrem, align 8 + %"$eq_1579" = load %TName_Bool*, %TName_Bool** %eq14, align 8 + %"$eq_tag_1580" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1579", i32 0, i32 0 + %"$eq_tag_1581" = load i8, i8* %"$eq_tag_1580", align 1 + switch i8 %"$eq_tag_1581", label %"$empty_default_1582" [ + i8 0, label %"$True_1583" + i8 1, label %"$False_1585" ] -"$True_1606": ; preds = %"$have_gas_1599" - %"$eq_1607" = bitcast %TName_Bool* %"$eq_1602" to %CName_True* - br label %"$matchsucc_1601" +"$True_1583": ; preds = %"$have_gas_1576" + %"$eq_1584" = bitcast %TName_Bool* %"$eq_1579" to %CName_True* + br label %"$matchsucc_1578" -"$False_1608": ; preds = %"$have_gas_1599" - %"$eq_1609" = bitcast %TName_Bool* %"$eq_1602" to %CName_False* - %"$gasrem_1610" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1611" = icmp ugt i64 1, %"$gasrem_1610" - br i1 %"$gascmp_1611", label %"$out_of_gas_1612", label %"$have_gas_1613" +"$False_1585": ; preds = %"$have_gas_1576" + %"$eq_1586" = bitcast %TName_Bool* %"$eq_1579" to %CName_False* + %"$gasrem_1587" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1588" = icmp ugt i64 1, %"$gasrem_1587" + br i1 %"$gascmp_1588", label %"$out_of_gas_1589", label %"$have_gas_1590" -"$out_of_gas_1612": ; preds = %"$False_1608" +"$out_of_gas_1589": ; preds = %"$False_1585" call void @_out_of_gas() - br label %"$have_gas_1613" + br label %"$have_gas_1590" -"$have_gas_1613": ; preds = %"$out_of_gas_1612", %"$False_1608" - %"$consume_1614" = sub i64 %"$gasrem_1610", 1 - store i64 %"$consume_1614", i64* @_gasrem, align 8 +"$have_gas_1590": ; preds = %"$out_of_gas_1589", %"$False_1585" + %"$consume_1591" = sub i64 %"$gasrem_1587", 1 + store i64 %"$consume_1591", i64* @_gasrem, align 8 %m15 = alloca %String, align 8 - %"$gasrem_1615" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1616" = icmp ugt i64 1, %"$gasrem_1615" - br i1 %"$gascmp_1616", label %"$out_of_gas_1617", label %"$have_gas_1618" + %"$gasrem_1592" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1593" = icmp ugt i64 1, %"$gasrem_1592" + br i1 %"$gascmp_1593", label %"$out_of_gas_1594", label %"$have_gas_1595" -"$out_of_gas_1617": ; preds = %"$have_gas_1613" +"$out_of_gas_1594": ; preds = %"$have_gas_1590" call void @_out_of_gas() - br label %"$have_gas_1618" + br label %"$have_gas_1595" -"$have_gas_1618": ; preds = %"$out_of_gas_1617", %"$have_gas_1613" - %"$consume_1619" = sub i64 %"$gasrem_1615", 1 - store i64 %"$consume_1619", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1620", i32 0, i32 0), i32 31 }, %String* %m15, align 8 - %"$gasrem_1621" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1622" = icmp ugt i64 1, %"$gasrem_1621" - br i1 %"$gascmp_1622", label %"$out_of_gas_1623", label %"$have_gas_1624" +"$have_gas_1595": ; preds = %"$out_of_gas_1594", %"$have_gas_1590" + %"$consume_1596" = sub i64 %"$gasrem_1592", 1 + store i64 %"$consume_1596", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1597", i32 0, i32 0), i32 31 }, %String* %m15, align 8 + %"$gasrem_1598" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1599" = icmp ugt i64 1, %"$gasrem_1598" + br i1 %"$gascmp_1599", label %"$out_of_gas_1600", label %"$have_gas_1601" -"$out_of_gas_1623": ; preds = %"$have_gas_1618" +"$out_of_gas_1600": ; preds = %"$have_gas_1595" call void @_out_of_gas() - br label %"$have_gas_1624" + br label %"$have_gas_1601" -"$have_gas_1624": ; preds = %"$out_of_gas_1623", %"$have_gas_1618" - %"$consume_1625" = sub i64 %"$gasrem_1621", 1 - store i64 %"$consume_1625", i64* @_gasrem, align 8 - %"$fail_msg__origin_1626" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1626", align 1 - %"$fail_msg__sender_1627" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1627", align 1 - %"$tname_1628" = load %String, %String* %tname, align 8 - %"$m_1629" = load %String, %String* %m15, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1626", [20 x i8]* %"$fail_msg__sender_1627", %String %"$tname_1628", %String %"$m_1629") - br label %"$matchsucc_1601" +"$have_gas_1601": ; preds = %"$out_of_gas_1600", %"$have_gas_1595" + %"$consume_1602" = sub i64 %"$gasrem_1598", 1 + store i64 %"$consume_1602", i64* @_gasrem, align 8 + %"$fail_msg__origin_1603" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1603", align 1 + %"$fail_msg__sender_1604" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1604", align 1 + %"$tname_1605" = load %String, %String* %tname, align 8 + %"$m_1606" = load %String, %String* %m15, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1603", [20 x i8]* %"$fail_msg__sender_1604", %String %"$tname_1605", %String %"$m_1606") + br label %"$matchsucc_1578" -"$empty_default_1605": ; preds = %"$have_gas_1599" - br label %"$matchsucc_1601" +"$empty_default_1582": ; preds = %"$have_gas_1576" + br label %"$matchsucc_1578" -"$matchsucc_1601": ; preds = %"$have_gas_1624", %"$True_1606", %"$empty_default_1605" - br label %"$matchsucc_1552" +"$matchsucc_1578": ; preds = %"$have_gas_1601", %"$True_1583", %"$empty_default_1582" + br label %"$matchsucc_1529" -"$None_1630": ; preds = %"$have_gas_1550" - %"$$c1_2_1631" = bitcast %TName_Option_String* %"$$c1_2_1553" to %CName_None_String* - %"$gasrem_1632" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1633" = icmp ugt i64 1, %"$gasrem_1632" - br i1 %"$gascmp_1633", label %"$out_of_gas_1634", label %"$have_gas_1635" +"$None_1607": ; preds = %"$have_gas_1527" + %"$$c1_2_1608" = bitcast %TName_Option_String* %"$$c1_2_1530" to %CName_None_String* + %"$gasrem_1609" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1610" = icmp ugt i64 1, %"$gasrem_1609" + br i1 %"$gascmp_1610", label %"$out_of_gas_1611", label %"$have_gas_1612" -"$out_of_gas_1634": ; preds = %"$None_1630" +"$out_of_gas_1611": ; preds = %"$None_1607" call void @_out_of_gas() - br label %"$have_gas_1635" + br label %"$have_gas_1612" -"$have_gas_1635": ; preds = %"$out_of_gas_1634", %"$None_1630" - %"$consume_1636" = sub i64 %"$gasrem_1632", 1 - store i64 %"$consume_1636", i64* @_gasrem, align 8 +"$have_gas_1612": ; preds = %"$out_of_gas_1611", %"$None_1607" + %"$consume_1613" = sub i64 %"$gasrem_1609", 1 + store i64 %"$consume_1613", i64* @_gasrem, align 8 %m16 = alloca %String, align 8 - %"$gasrem_1637" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1638" = icmp ugt i64 1, %"$gasrem_1637" - br i1 %"$gascmp_1638", label %"$out_of_gas_1639", label %"$have_gas_1640" - -"$out_of_gas_1639": ; preds = %"$have_gas_1635" - call void @_out_of_gas() - br label %"$have_gas_1640" - -"$have_gas_1640": ; preds = %"$out_of_gas_1639", %"$have_gas_1635" - %"$consume_1641" = sub i64 %"$gasrem_1637", 1 - store i64 %"$consume_1641", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1642", i32 0, i32 0), i32 21 }, %String* %m16, align 8 - %"$gasrem_1643" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1644" = icmp ugt i64 1, %"$gasrem_1643" - br i1 %"$gascmp_1644", label %"$out_of_gas_1645", label %"$have_gas_1646" - -"$out_of_gas_1645": ; preds = %"$have_gas_1640" - call void @_out_of_gas() - br label %"$have_gas_1646" - -"$have_gas_1646": ; preds = %"$out_of_gas_1645", %"$have_gas_1640" - %"$consume_1647" = sub i64 %"$gasrem_1643", 1 - store i64 %"$consume_1647", i64* @_gasrem, align 8 - %"$fail_msg__origin_1648" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1648", align 1 - %"$fail_msg__sender_1649" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1649", align 1 - %"$tname_1650" = load %String, %String* %tname, align 8 - %"$m_1651" = load %String, %String* %m16, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1648", [20 x i8]* %"$fail_msg__sender_1649", %String %"$tname_1650", %String %"$m_1651") - br label %"$matchsucc_1552" - -"$empty_default_1556": ; preds = %"$have_gas_1550" - br label %"$matchsucc_1552" - -"$matchsucc_1552": ; preds = %"$have_gas_1646", %"$matchsucc_1601", %"$empty_default_1556" - %"$gasrem_1652" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1653" = icmp ugt i64 1, %"$gasrem_1652" - br i1 %"$gascmp_1653", label %"$out_of_gas_1654", label %"$have_gas_1655" - -"$out_of_gas_1654": ; preds = %"$matchsucc_1552" - call void @_out_of_gas() - br label %"$have_gas_1655" - -"$have_gas_1655": ; preds = %"$out_of_gas_1654", %"$matchsucc_1552" - %"$consume_1656" = sub i64 %"$gasrem_1652", 1 - store i64 %"$consume_1656", i64* @_gasrem, align 8 - %"$indices_buf_1657_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1657_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1657_salloc_load", i64 16) - %"$indices_buf_1657_salloc" = bitcast i8* %"$indices_buf_1657_salloc_salloc" to [16 x i8]* - %"$indices_buf_1657" = bitcast [16 x i8]* %"$indices_buf_1657_salloc" to i8* - %"$$key1b_1_1658" = load %String, %String* %"$key1b_1", align 8 - %"$indices_gep_1659" = getelementptr i8, i8* %"$indices_buf_1657", i32 0 - %indices_cast17 = bitcast i8* %"$indices_gep_1659" to %String* - store %String %"$$key1b_1_1658", %String* %indices_cast17, align 8 - %"$execptr_load_1660" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_1660", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1661", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 1, i8* %"$indices_buf_1657", i8* null) + %"$gasrem_1614" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1615" = icmp ugt i64 1, %"$gasrem_1614" + br i1 %"$gascmp_1615", label %"$out_of_gas_1616", label %"$have_gas_1617" + +"$out_of_gas_1616": ; preds = %"$have_gas_1612" + call void @_out_of_gas() + br label %"$have_gas_1617" + +"$have_gas_1617": ; preds = %"$out_of_gas_1616", %"$have_gas_1612" + %"$consume_1618" = sub i64 %"$gasrem_1614", 1 + store i64 %"$consume_1618", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1619", i32 0, i32 0), i32 21 }, %String* %m16, align 8 + %"$gasrem_1620" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1621" = icmp ugt i64 1, %"$gasrem_1620" + br i1 %"$gascmp_1621", label %"$out_of_gas_1622", label %"$have_gas_1623" + +"$out_of_gas_1622": ; preds = %"$have_gas_1617" + call void @_out_of_gas() + br label %"$have_gas_1623" + +"$have_gas_1623": ; preds = %"$out_of_gas_1622", %"$have_gas_1617" + %"$consume_1624" = sub i64 %"$gasrem_1620", 1 + store i64 %"$consume_1624", i64* @_gasrem, align 8 + %"$fail_msg__origin_1625" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1625", align 1 + %"$fail_msg__sender_1626" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1626", align 1 + %"$tname_1627" = load %String, %String* %tname, align 8 + %"$m_1628" = load %String, %String* %m16, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1625", [20 x i8]* %"$fail_msg__sender_1626", %String %"$tname_1627", %String %"$m_1628") + br label %"$matchsucc_1529" + +"$empty_default_1533": ; preds = %"$have_gas_1527" + br label %"$matchsucc_1529" + +"$matchsucc_1529": ; preds = %"$have_gas_1623", %"$matchsucc_1578", %"$empty_default_1533" + %"$gasrem_1629" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1630" = icmp ugt i64 1, %"$gasrem_1629" + br i1 %"$gascmp_1630", label %"$out_of_gas_1631", label %"$have_gas_1632" + +"$out_of_gas_1631": ; preds = %"$matchsucc_1529" + call void @_out_of_gas() + br label %"$have_gas_1632" + +"$have_gas_1632": ; preds = %"$out_of_gas_1631", %"$matchsucc_1529" + %"$consume_1633" = sub i64 %"$gasrem_1629", 1 + store i64 %"$consume_1633", i64* @_gasrem, align 8 + %"$indices_buf_1634_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1634_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1634_salloc_load", i64 16) + %"$indices_buf_1634_salloc" = bitcast i8* %"$indices_buf_1634_salloc_salloc" to [16 x i8]* + %"$indices_buf_1634" = bitcast [16 x i8]* %"$indices_buf_1634_salloc" to i8* + %"$$key1b_1_1635" = load %String, %String* %"$key1b_1", align 8 + %"$indices_gep_1636" = getelementptr i8, i8* %"$indices_buf_1634", i32 0 + %indices_cast17 = bitcast i8* %"$indices_gep_1636" to %String* + store %String %"$$key1b_1_1635", %String* %indices_cast17, align 8 + %"$execptr_load_1637" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_1637", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1638", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 1, i8* %"$indices_buf_1634", i8* null) ret void } define void @t6(i8* %0) { entry: - %"$_amount_1663" = getelementptr i8, i8* %0, i32 0 - %"$_amount_1664" = bitcast i8* %"$_amount_1663" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_1664", align 8 - %"$_origin_1665" = getelementptr i8, i8* %0, i32 16 - %"$_origin_1666" = bitcast i8* %"$_origin_1665" to [20 x i8]* - %"$_sender_1667" = getelementptr i8, i8* %0, i32 36 - %"$_sender_1668" = bitcast i8* %"$_sender_1667" to [20 x i8]* - call void @"$t6_1200"(%Uint128 %_amount, [20 x i8]* %"$_origin_1666", [20 x i8]* %"$_sender_1668") + %"$_amount_1640" = getelementptr i8, i8* %0, i32 0 + %"$_amount_1641" = bitcast i8* %"$_amount_1640" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_1641", align 8 + %"$_origin_1642" = getelementptr i8, i8* %0, i32 16 + %"$_origin_1643" = bitcast i8* %"$_origin_1642" to [20 x i8]* + %"$_sender_1644" = getelementptr i8, i8* %0, i32 36 + %"$_sender_1645" = bitcast i8* %"$_sender_1644" to [20 x i8]* + call void @"$t6_1177"(%Uint128 %_amount, [20 x i8]* %"$_origin_1643", [20 x i8]* %"$_sender_1645") ret void } -define internal void @"$t7_1669"(%Uint128 %_amount, [20 x i8]* %"$_origin_1670", [20 x i8]* %"$_sender_1671") { +define internal void @"$t7_1646"(%Uint128 %_amount, [20 x i8]* %"$_origin_1647", [20 x i8]* %"$_sender_1648") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_1670", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_1671", align 1 - %"$gasrem_1672" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1673" = icmp ugt i64 1, %"$gasrem_1672" - br i1 %"$gascmp_1673", label %"$out_of_gas_1674", label %"$have_gas_1675" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_1647", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_1648", align 1 + %"$gasrem_1649" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1650" = icmp ugt i64 1, %"$gasrem_1649" + br i1 %"$gascmp_1650", label %"$out_of_gas_1651", label %"$have_gas_1652" -"$out_of_gas_1674": ; preds = %entry +"$out_of_gas_1651": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1675" + br label %"$have_gas_1652" -"$have_gas_1675": ; preds = %"$out_of_gas_1674", %entry - %"$consume_1676" = sub i64 %"$gasrem_1672", 1 - store i64 %"$consume_1676", i64* @_gasrem, align 8 +"$have_gas_1652": ; preds = %"$out_of_gas_1651", %entry + %"$consume_1653" = sub i64 %"$gasrem_1649", 1 + store i64 %"$consume_1653", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_1677" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1678" = icmp ugt i64 1, %"$gasrem_1677" - br i1 %"$gascmp_1678", label %"$out_of_gas_1679", label %"$have_gas_1680" + %"$gasrem_1654" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1655" = icmp ugt i64 1, %"$gasrem_1654" + br i1 %"$gascmp_1655", label %"$out_of_gas_1656", label %"$have_gas_1657" -"$out_of_gas_1679": ; preds = %"$have_gas_1675" +"$out_of_gas_1656": ; preds = %"$have_gas_1652" call void @_out_of_gas() - br label %"$have_gas_1680" + br label %"$have_gas_1657" -"$have_gas_1680": ; preds = %"$out_of_gas_1679", %"$have_gas_1675" - %"$consume_1681" = sub i64 %"$gasrem_1677", 1 - store i64 %"$consume_1681", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1682", i32 0, i32 0), i32 2 }, %String* %tname, align 8 - %"$gasrem_1683" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1684" = icmp ugt i64 1, %"$gasrem_1683" - br i1 %"$gascmp_1684", label %"$out_of_gas_1685", label %"$have_gas_1686" +"$have_gas_1657": ; preds = %"$out_of_gas_1656", %"$have_gas_1652" + %"$consume_1658" = sub i64 %"$gasrem_1654", 1 + store i64 %"$consume_1658", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_1659", i32 0, i32 0), i32 2 }, %String* %tname, align 8 + %"$gasrem_1660" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1661" = icmp ugt i64 1, %"$gasrem_1660" + br i1 %"$gascmp_1661", label %"$out_of_gas_1662", label %"$have_gas_1663" -"$out_of_gas_1685": ; preds = %"$have_gas_1680" +"$out_of_gas_1662": ; preds = %"$have_gas_1657" call void @_out_of_gas() - br label %"$have_gas_1686" + br label %"$have_gas_1663" -"$have_gas_1686": ; preds = %"$out_of_gas_1685", %"$have_gas_1680" - %"$consume_1687" = sub i64 %"$gasrem_1683", 1 - store i64 %"$consume_1687", i64* @_gasrem, align 8 +"$have_gas_1663": ; preds = %"$out_of_gas_1662", %"$have_gas_1657" + %"$consume_1664" = sub i64 %"$gasrem_1660", 1 + store i64 %"$consume_1664", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_1688" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1689" = icmp ugt i64 1, %"$gasrem_1688" - br i1 %"$gascmp_1689", label %"$out_of_gas_1690", label %"$have_gas_1691" + %"$gasrem_1665" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1666" = icmp ugt i64 1, %"$gasrem_1665" + br i1 %"$gascmp_1666", label %"$out_of_gas_1667", label %"$have_gas_1668" -"$out_of_gas_1690": ; preds = %"$have_gas_1686" +"$out_of_gas_1667": ; preds = %"$have_gas_1663" call void @_out_of_gas() - br label %"$have_gas_1691" + br label %"$have_gas_1668" -"$have_gas_1691": ; preds = %"$out_of_gas_1690", %"$have_gas_1686" - %"$consume_1692" = sub i64 %"$gasrem_1688", 1 - store i64 %"$consume_1692", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1693", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 - %"$gasrem_1694" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1695" = icmp ugt i64 1, %"$gasrem_1694" - br i1 %"$gascmp_1695", label %"$out_of_gas_1696", label %"$have_gas_1697" +"$have_gas_1668": ; preds = %"$out_of_gas_1667", %"$have_gas_1663" + %"$consume_1669" = sub i64 %"$gasrem_1665", 1 + store i64 %"$consume_1669", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1670", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 + %"$gasrem_1671" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1672" = icmp ugt i64 1, %"$gasrem_1671" + br i1 %"$gascmp_1672", label %"$out_of_gas_1673", label %"$have_gas_1674" -"$out_of_gas_1696": ; preds = %"$have_gas_1691" +"$out_of_gas_1673": ; preds = %"$have_gas_1668" call void @_out_of_gas() - br label %"$have_gas_1697" + br label %"$have_gas_1674" -"$have_gas_1697": ; preds = %"$out_of_gas_1696", %"$have_gas_1691" - %"$consume_1698" = sub i64 %"$gasrem_1694", 1 - store i64 %"$consume_1698", i64* @_gasrem, align 8 +"$have_gas_1674": ; preds = %"$out_of_gas_1673", %"$have_gas_1668" + %"$consume_1675" = sub i64 %"$gasrem_1671", 1 + store i64 %"$consume_1675", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_1699" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1700" = icmp ugt i64 1, %"$gasrem_1699" - br i1 %"$gascmp_1700", label %"$out_of_gas_1701", label %"$have_gas_1702" + %"$gasrem_1676" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1677" = icmp ugt i64 1, %"$gasrem_1676" + br i1 %"$gascmp_1677", label %"$out_of_gas_1678", label %"$have_gas_1679" -"$out_of_gas_1701": ; preds = %"$have_gas_1697" +"$out_of_gas_1678": ; preds = %"$have_gas_1674" call void @_out_of_gas() - br label %"$have_gas_1702" + br label %"$have_gas_1679" -"$have_gas_1702": ; preds = %"$out_of_gas_1701", %"$have_gas_1697" - %"$consume_1703" = sub i64 %"$gasrem_1699", 1 - store i64 %"$consume_1703", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1704", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 +"$have_gas_1679": ; preds = %"$out_of_gas_1678", %"$have_gas_1674" + %"$consume_1680" = sub i64 %"$gasrem_1676", 1 + store i64 %"$consume_1680", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1681", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 %c1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_1705_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1705_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1705_salloc_load", i64 32) - %"$indices_buf_1705_salloc" = bitcast i8* %"$indices_buf_1705_salloc_salloc" to [32 x i8]* - %"$indices_buf_1705" = bitcast [32 x i8]* %"$indices_buf_1705_salloc" to i8* - %"$key1a_1706" = load %String, %String* %key1a, align 8 - %"$indices_gep_1707" = getelementptr i8, i8* %"$indices_buf_1705", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_1707" to %String* - store %String %"$key1a_1706", %String* %indices_cast, align 8 - %"$key2a_1708" = load %String, %String* %key2a, align 8 - %"$indices_gep_1709" = getelementptr i8, i8* %"$indices_buf_1705", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_1709" to %String* - store %String %"$key2a_1708", %String* %indices_cast1, align 8 - %"$execptr_load_1711" = load i8*, i8** @_execptr, align 8 - %"$c1_call_1712" = call i8* @_fetch_field(i8* %"$execptr_load_1711", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1710", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1705", i32 1) - %"$c1_1713" = bitcast i8* %"$c1_call_1712" to %TName_Option_String* - store %TName_Option_String* %"$c1_1713", %TName_Option_String** %c1, align 8 - %"$c1_1714" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$$c1_1714_1715" = bitcast %TName_Option_String* %"$c1_1714" to i8* - %"$_literal_cost_call_1716" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$c1_1714_1715") - %"$gasadd_1717" = add i64 %"$_literal_cost_call_1716", 0 - %"$gasadd_1718" = add i64 %"$gasadd_1717", 2 - %"$gasrem_1719" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1720" = icmp ugt i64 %"$gasadd_1718", %"$gasrem_1719" - br i1 %"$gascmp_1720", label %"$out_of_gas_1721", label %"$have_gas_1722" - -"$out_of_gas_1721": ; preds = %"$have_gas_1702" - call void @_out_of_gas() - br label %"$have_gas_1722" - -"$have_gas_1722": ; preds = %"$out_of_gas_1721", %"$have_gas_1702" - %"$consume_1723" = sub i64 %"$gasrem_1719", %"$gasadd_1718" - store i64 %"$consume_1723", i64* @_gasrem, align 8 - %"$gasrem_1724" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1725" = icmp ugt i64 2, %"$gasrem_1724" - br i1 %"$gascmp_1725", label %"$out_of_gas_1726", label %"$have_gas_1727" - -"$out_of_gas_1726": ; preds = %"$have_gas_1722" - call void @_out_of_gas() - br label %"$have_gas_1727" - -"$have_gas_1727": ; preds = %"$out_of_gas_1726", %"$have_gas_1722" - %"$consume_1728" = sub i64 %"$gasrem_1724", 2 - store i64 %"$consume_1728", i64* @_gasrem, align 8 - %"$c1_1730" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_1731" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1730", i32 0, i32 0 - %"$c1_tag_1732" = load i8, i8* %"$c1_tag_1731", align 1 - switch i8 %"$c1_tag_1732", label %"$empty_default_1733" [ - i8 0, label %"$Some_1734" - i8 1, label %"$None_1807" + %"$indices_buf_1682_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1682_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1682_salloc_load", i64 32) + %"$indices_buf_1682_salloc" = bitcast i8* %"$indices_buf_1682_salloc_salloc" to [32 x i8]* + %"$indices_buf_1682" = bitcast [32 x i8]* %"$indices_buf_1682_salloc" to i8* + %"$key1a_1683" = load %String, %String* %key1a, align 8 + %"$indices_gep_1684" = getelementptr i8, i8* %"$indices_buf_1682", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_1684" to %String* + store %String %"$key1a_1683", %String* %indices_cast, align 8 + %"$key2a_1685" = load %String, %String* %key2a, align 8 + %"$indices_gep_1686" = getelementptr i8, i8* %"$indices_buf_1682", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_1686" to %String* + store %String %"$key2a_1685", %String* %indices_cast1, align 8 + %"$execptr_load_1688" = load i8*, i8** @_execptr, align 8 + %"$c1_call_1689" = call i8* @_fetch_field(i8* %"$execptr_load_1688", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1687", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1682", i32 1) + %"$c1_1690" = bitcast i8* %"$c1_call_1689" to %TName_Option_String* + store %TName_Option_String* %"$c1_1690", %TName_Option_String** %c1, align 8 + %"$c1_1691" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$$c1_1691_1692" = bitcast %TName_Option_String* %"$c1_1691" to i8* + %"$_literal_cost_call_1693" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$c1_1691_1692") + %"$gasadd_1694" = add i64 %"$_literal_cost_call_1693", 0 + %"$gasadd_1695" = add i64 %"$gasadd_1694", 2 + %"$gasrem_1696" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1697" = icmp ugt i64 %"$gasadd_1695", %"$gasrem_1696" + br i1 %"$gascmp_1697", label %"$out_of_gas_1698", label %"$have_gas_1699" + +"$out_of_gas_1698": ; preds = %"$have_gas_1679" + call void @_out_of_gas() + br label %"$have_gas_1699" + +"$have_gas_1699": ; preds = %"$out_of_gas_1698", %"$have_gas_1679" + %"$consume_1700" = sub i64 %"$gasrem_1696", %"$gasadd_1695" + store i64 %"$consume_1700", i64* @_gasrem, align 8 + %"$gasrem_1701" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1702" = icmp ugt i64 2, %"$gasrem_1701" + br i1 %"$gascmp_1702", label %"$out_of_gas_1703", label %"$have_gas_1704" + +"$out_of_gas_1703": ; preds = %"$have_gas_1699" + call void @_out_of_gas() + br label %"$have_gas_1704" + +"$have_gas_1704": ; preds = %"$out_of_gas_1703", %"$have_gas_1699" + %"$consume_1705" = sub i64 %"$gasrem_1701", 2 + store i64 %"$consume_1705", i64* @_gasrem, align 8 + %"$c1_1707" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_1708" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_1707", i32 0, i32 0 + %"$c1_tag_1709" = load i8, i8* %"$c1_tag_1708", align 1 + switch i8 %"$c1_tag_1709", label %"$empty_default_1710" [ + i8 0, label %"$Some_1711" + i8 1, label %"$None_1784" ] -"$Some_1734": ; preds = %"$have_gas_1727" - %"$c1_1735" = bitcast %TName_Option_String* %"$c1_1730" to %CName_Some_String* - %"$c_gep_1736" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1735", i32 0, i32 1 - %"$c_load_1737" = load %String, %String* %"$c_gep_1736", align 8 +"$Some_1711": ; preds = %"$have_gas_1704" + %"$c1_1712" = bitcast %TName_Option_String* %"$c1_1707" to %CName_Some_String* + %"$c_gep_1713" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_1712", i32 0, i32 1 + %"$c_load_1714" = load %String, %String* %"$c_gep_1713", align 8 %c = alloca %String, align 8 - store %String %"$c_load_1737", %String* %c, align 8 - %"$gasrem_1738" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1739" = icmp ugt i64 1, %"$gasrem_1738" - br i1 %"$gascmp_1739", label %"$out_of_gas_1740", label %"$have_gas_1741" + store %String %"$c_load_1714", %String* %c, align 8 + %"$gasrem_1715" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1716" = icmp ugt i64 1, %"$gasrem_1715" + br i1 %"$gascmp_1716", label %"$out_of_gas_1717", label %"$have_gas_1718" -"$out_of_gas_1740": ; preds = %"$Some_1734" +"$out_of_gas_1717": ; preds = %"$Some_1711" call void @_out_of_gas() - br label %"$have_gas_1741" + br label %"$have_gas_1718" -"$have_gas_1741": ; preds = %"$out_of_gas_1740", %"$Some_1734" - %"$consume_1742" = sub i64 %"$gasrem_1738", 1 - store i64 %"$consume_1742", i64* @_gasrem, align 8 +"$have_gas_1718": ; preds = %"$out_of_gas_1717", %"$Some_1711" + %"$consume_1719" = sub i64 %"$gasrem_1715", 1 + store i64 %"$consume_1719", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_1743" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1744" = icmp ugt i64 1, %"$gasrem_1743" - br i1 %"$gascmp_1744", label %"$out_of_gas_1745", label %"$have_gas_1746" + %"$gasrem_1720" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1721" = icmp ugt i64 1, %"$gasrem_1720" + br i1 %"$gascmp_1721", label %"$out_of_gas_1722", label %"$have_gas_1723" -"$out_of_gas_1745": ; preds = %"$have_gas_1741" +"$out_of_gas_1722": ; preds = %"$have_gas_1718" call void @_out_of_gas() - br label %"$have_gas_1746" + br label %"$have_gas_1723" -"$have_gas_1746": ; preds = %"$out_of_gas_1745", %"$have_gas_1741" - %"$consume_1747" = sub i64 %"$gasrem_1743", 1 - store i64 %"$consume_1747", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1748", i32 0, i32 0), i32 3 }, %String* %v, align 8 - %"$gasrem_1749" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1750" = icmp ugt i64 1, %"$gasrem_1749" - br i1 %"$gascmp_1750", label %"$out_of_gas_1751", label %"$have_gas_1752" +"$have_gas_1723": ; preds = %"$out_of_gas_1722", %"$have_gas_1718" + %"$consume_1724" = sub i64 %"$gasrem_1720", 1 + store i64 %"$consume_1724", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1725", i32 0, i32 0), i32 3 }, %String* %v, align 8 + %"$gasrem_1726" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1727" = icmp ugt i64 1, %"$gasrem_1726" + br i1 %"$gascmp_1727", label %"$out_of_gas_1728", label %"$have_gas_1729" -"$out_of_gas_1751": ; preds = %"$have_gas_1746" +"$out_of_gas_1728": ; preds = %"$have_gas_1723" call void @_out_of_gas() - br label %"$have_gas_1752" + br label %"$have_gas_1729" -"$have_gas_1752": ; preds = %"$out_of_gas_1751", %"$have_gas_1746" - %"$consume_1753" = sub i64 %"$gasrem_1749", 1 - store i64 %"$consume_1753", i64* @_gasrem, align 8 +"$have_gas_1729": ; preds = %"$out_of_gas_1728", %"$have_gas_1723" + %"$consume_1730" = sub i64 %"$gasrem_1726", 1 + store i64 %"$consume_1730", i64* @_gasrem, align 8 %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_1754" = alloca %String, align 8 - %"$c_1755" = load %String, %String* %c, align 8 - store %String %"$c_1755", %String* %"$_literal_cost_c_1754", align 8 - %"$$_literal_cost_c_1754_1756" = bitcast %String* %"$_literal_cost_c_1754" to i8* - %"$_literal_cost_call_1757" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_1754_1756") - %"$_literal_cost_v_1758" = alloca %String, align 8 - %"$v_1759" = load %String, %String* %v, align 8 - store %String %"$v_1759", %String* %"$_literal_cost_v_1758", align 8 - %"$$_literal_cost_v_1758_1760" = bitcast %String* %"$_literal_cost_v_1758" to i8* - %"$_literal_cost_call_1761" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_1758_1760") - %"$gasmin_1762" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1757", i64 %"$_literal_cost_call_1761") - %"$gasrem_1763" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1764" = icmp ugt i64 %"$gasmin_1762", %"$gasrem_1763" - br i1 %"$gascmp_1764", label %"$out_of_gas_1765", label %"$have_gas_1766" - -"$out_of_gas_1765": ; preds = %"$have_gas_1752" - call void @_out_of_gas() - br label %"$have_gas_1766" - -"$have_gas_1766": ; preds = %"$out_of_gas_1765", %"$have_gas_1752" - %"$consume_1767" = sub i64 %"$gasrem_1763", %"$gasmin_1762" - store i64 %"$consume_1767", i64* @_gasrem, align 8 - %"$execptr_load_1768" = load i8*, i8** @_execptr, align 8 - %"$c_1769" = load %String, %String* %c, align 8 - %"$v_1770" = load %String, %String* %v, align 8 - %"$eq_call_1771" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1768", %String %"$c_1769", %String %"$v_1770") - store %TName_Bool* %"$eq_call_1771", %TName_Bool** %eq, align 8 - %"$gasrem_1773" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1774" = icmp ugt i64 2, %"$gasrem_1773" - br i1 %"$gascmp_1774", label %"$out_of_gas_1775", label %"$have_gas_1776" - -"$out_of_gas_1775": ; preds = %"$have_gas_1766" - call void @_out_of_gas() - br label %"$have_gas_1776" - -"$have_gas_1776": ; preds = %"$out_of_gas_1775", %"$have_gas_1766" - %"$consume_1777" = sub i64 %"$gasrem_1773", 2 - store i64 %"$consume_1777", i64* @_gasrem, align 8 - %"$eq_1779" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_1780" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1779", i32 0, i32 0 - %"$eq_tag_1781" = load i8, i8* %"$eq_tag_1780", align 1 - switch i8 %"$eq_tag_1781", label %"$empty_default_1782" [ - i8 0, label %"$True_1783" - i8 1, label %"$False_1785" + %"$_literal_cost_c_1731" = alloca %String, align 8 + %"$c_1732" = load %String, %String* %c, align 8 + store %String %"$c_1732", %String* %"$_literal_cost_c_1731", align 8 + %"$$_literal_cost_c_1731_1733" = bitcast %String* %"$_literal_cost_c_1731" to i8* + %"$_literal_cost_call_1734" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_1731_1733") + %"$_literal_cost_v_1735" = alloca %String, align 8 + %"$v_1736" = load %String, %String* %v, align 8 + store %String %"$v_1736", %String* %"$_literal_cost_v_1735", align 8 + %"$$_literal_cost_v_1735_1737" = bitcast %String* %"$_literal_cost_v_1735" to i8* + %"$_literal_cost_call_1738" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_1735_1737") + %"$gasmin_1739" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_1734", i64 %"$_literal_cost_call_1738") + %"$gasrem_1740" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1741" = icmp ugt i64 %"$gasmin_1739", %"$gasrem_1740" + br i1 %"$gascmp_1741", label %"$out_of_gas_1742", label %"$have_gas_1743" + +"$out_of_gas_1742": ; preds = %"$have_gas_1729" + call void @_out_of_gas() + br label %"$have_gas_1743" + +"$have_gas_1743": ; preds = %"$out_of_gas_1742", %"$have_gas_1729" + %"$consume_1744" = sub i64 %"$gasrem_1740", %"$gasmin_1739" + store i64 %"$consume_1744", i64* @_gasrem, align 8 + %"$execptr_load_1745" = load i8*, i8** @_execptr, align 8 + %"$c_1746" = load %String, %String* %c, align 8 + %"$v_1747" = load %String, %String* %v, align 8 + %"$eq_call_1748" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_1745", %String %"$c_1746", %String %"$v_1747") + store %TName_Bool* %"$eq_call_1748", %TName_Bool** %eq, align 8 + %"$gasrem_1750" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1751" = icmp ugt i64 2, %"$gasrem_1750" + br i1 %"$gascmp_1751", label %"$out_of_gas_1752", label %"$have_gas_1753" + +"$out_of_gas_1752": ; preds = %"$have_gas_1743" + call void @_out_of_gas() + br label %"$have_gas_1753" + +"$have_gas_1753": ; preds = %"$out_of_gas_1752", %"$have_gas_1743" + %"$consume_1754" = sub i64 %"$gasrem_1750", 2 + store i64 %"$consume_1754", i64* @_gasrem, align 8 + %"$eq_1756" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_1757" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_1756", i32 0, i32 0 + %"$eq_tag_1758" = load i8, i8* %"$eq_tag_1757", align 1 + switch i8 %"$eq_tag_1758", label %"$empty_default_1759" [ + i8 0, label %"$True_1760" + i8 1, label %"$False_1762" ] -"$True_1783": ; preds = %"$have_gas_1776" - %"$eq_1784" = bitcast %TName_Bool* %"$eq_1779" to %CName_True* - br label %"$matchsucc_1778" +"$True_1760": ; preds = %"$have_gas_1753" + %"$eq_1761" = bitcast %TName_Bool* %"$eq_1756" to %CName_True* + br label %"$matchsucc_1755" -"$False_1785": ; preds = %"$have_gas_1776" - %"$eq_1786" = bitcast %TName_Bool* %"$eq_1779" to %CName_False* - %"$gasrem_1787" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1788" = icmp ugt i64 1, %"$gasrem_1787" - br i1 %"$gascmp_1788", label %"$out_of_gas_1789", label %"$have_gas_1790" +"$False_1762": ; preds = %"$have_gas_1753" + %"$eq_1763" = bitcast %TName_Bool* %"$eq_1756" to %CName_False* + %"$gasrem_1764" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1765" = icmp ugt i64 1, %"$gasrem_1764" + br i1 %"$gascmp_1765", label %"$out_of_gas_1766", label %"$have_gas_1767" -"$out_of_gas_1789": ; preds = %"$False_1785" +"$out_of_gas_1766": ; preds = %"$False_1762" call void @_out_of_gas() - br label %"$have_gas_1790" + br label %"$have_gas_1767" -"$have_gas_1790": ; preds = %"$out_of_gas_1789", %"$False_1785" - %"$consume_1791" = sub i64 %"$gasrem_1787", 1 - store i64 %"$consume_1791", i64* @_gasrem, align 8 +"$have_gas_1767": ; preds = %"$out_of_gas_1766", %"$False_1762" + %"$consume_1768" = sub i64 %"$gasrem_1764", 1 + store i64 %"$consume_1768", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_1792" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1793" = icmp ugt i64 1, %"$gasrem_1792" - br i1 %"$gascmp_1793", label %"$out_of_gas_1794", label %"$have_gas_1795" + %"$gasrem_1769" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1770" = icmp ugt i64 1, %"$gasrem_1769" + br i1 %"$gascmp_1770", label %"$out_of_gas_1771", label %"$have_gas_1772" -"$out_of_gas_1794": ; preds = %"$have_gas_1790" +"$out_of_gas_1771": ; preds = %"$have_gas_1767" call void @_out_of_gas() - br label %"$have_gas_1795" + br label %"$have_gas_1772" -"$have_gas_1795": ; preds = %"$out_of_gas_1794", %"$have_gas_1790" - %"$consume_1796" = sub i64 %"$gasrem_1792", 1 - store i64 %"$consume_1796", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1797", i32 0, i32 0), i32 31 }, %String* %m, align 8 - %"$gasrem_1798" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1799" = icmp ugt i64 1, %"$gasrem_1798" - br i1 %"$gascmp_1799", label %"$out_of_gas_1800", label %"$have_gas_1801" +"$have_gas_1772": ; preds = %"$out_of_gas_1771", %"$have_gas_1767" + %"$consume_1773" = sub i64 %"$gasrem_1769", 1 + store i64 %"$consume_1773", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_1774", i32 0, i32 0), i32 31 }, %String* %m, align 8 + %"$gasrem_1775" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1776" = icmp ugt i64 1, %"$gasrem_1775" + br i1 %"$gascmp_1776", label %"$out_of_gas_1777", label %"$have_gas_1778" -"$out_of_gas_1800": ; preds = %"$have_gas_1795" +"$out_of_gas_1777": ; preds = %"$have_gas_1772" call void @_out_of_gas() - br label %"$have_gas_1801" + br label %"$have_gas_1778" -"$have_gas_1801": ; preds = %"$out_of_gas_1800", %"$have_gas_1795" - %"$consume_1802" = sub i64 %"$gasrem_1798", 1 - store i64 %"$consume_1802", i64* @_gasrem, align 8 - %"$fail_msg__origin_1803" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1803", align 1 - %"$fail_msg__sender_1804" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1804", align 1 - %"$tname_1805" = load %String, %String* %tname, align 8 - %"$m_1806" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1803", [20 x i8]* %"$fail_msg__sender_1804", %String %"$tname_1805", %String %"$m_1806") - br label %"$matchsucc_1778" +"$have_gas_1778": ; preds = %"$out_of_gas_1777", %"$have_gas_1772" + %"$consume_1779" = sub i64 %"$gasrem_1775", 1 + store i64 %"$consume_1779", i64* @_gasrem, align 8 + %"$fail_msg__origin_1780" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1780", align 1 + %"$fail_msg__sender_1781" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1781", align 1 + %"$tname_1782" = load %String, %String* %tname, align 8 + %"$m_1783" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1780", [20 x i8]* %"$fail_msg__sender_1781", %String %"$tname_1782", %String %"$m_1783") + br label %"$matchsucc_1755" -"$empty_default_1782": ; preds = %"$have_gas_1776" - br label %"$matchsucc_1778" +"$empty_default_1759": ; preds = %"$have_gas_1753" + br label %"$matchsucc_1755" -"$matchsucc_1778": ; preds = %"$have_gas_1801", %"$True_1783", %"$empty_default_1782" - br label %"$matchsucc_1729" +"$matchsucc_1755": ; preds = %"$have_gas_1778", %"$True_1760", %"$empty_default_1759" + br label %"$matchsucc_1706" -"$None_1807": ; preds = %"$have_gas_1727" - %"$c1_1808" = bitcast %TName_Option_String* %"$c1_1730" to %CName_None_String* - %"$gasrem_1809" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1810" = icmp ugt i64 1, %"$gasrem_1809" - br i1 %"$gascmp_1810", label %"$out_of_gas_1811", label %"$have_gas_1812" +"$None_1784": ; preds = %"$have_gas_1704" + %"$c1_1785" = bitcast %TName_Option_String* %"$c1_1707" to %CName_None_String* + %"$gasrem_1786" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1787" = icmp ugt i64 1, %"$gasrem_1786" + br i1 %"$gascmp_1787", label %"$out_of_gas_1788", label %"$have_gas_1789" -"$out_of_gas_1811": ; preds = %"$None_1807" +"$out_of_gas_1788": ; preds = %"$None_1784" call void @_out_of_gas() - br label %"$have_gas_1812" + br label %"$have_gas_1789" -"$have_gas_1812": ; preds = %"$out_of_gas_1811", %"$None_1807" - %"$consume_1813" = sub i64 %"$gasrem_1809", 1 - store i64 %"$consume_1813", i64* @_gasrem, align 8 +"$have_gas_1789": ; preds = %"$out_of_gas_1788", %"$None_1784" + %"$consume_1790" = sub i64 %"$gasrem_1786", 1 + store i64 %"$consume_1790", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_1814" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1815" = icmp ugt i64 1, %"$gasrem_1814" - br i1 %"$gascmp_1815", label %"$out_of_gas_1816", label %"$have_gas_1817" - -"$out_of_gas_1816": ; preds = %"$have_gas_1812" - call void @_out_of_gas() - br label %"$have_gas_1817" - -"$have_gas_1817": ; preds = %"$out_of_gas_1816", %"$have_gas_1812" - %"$consume_1818" = sub i64 %"$gasrem_1814", 1 - store i64 %"$consume_1818", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1819", i32 0, i32 0), i32 21 }, %String* %m2, align 8 - %"$gasrem_1820" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1821" = icmp ugt i64 1, %"$gasrem_1820" - br i1 %"$gascmp_1821", label %"$out_of_gas_1822", label %"$have_gas_1823" - -"$out_of_gas_1822": ; preds = %"$have_gas_1817" - call void @_out_of_gas() - br label %"$have_gas_1823" - -"$have_gas_1823": ; preds = %"$out_of_gas_1822", %"$have_gas_1817" - %"$consume_1824" = sub i64 %"$gasrem_1820", 1 - store i64 %"$consume_1824", i64* @_gasrem, align 8 - %"$fail_msg__origin_1825" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1825", align 1 - %"$fail_msg__sender_1826" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1826", align 1 - %"$tname_1827" = load %String, %String* %tname, align 8 - %"$m_1828" = load %String, %String* %m2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1825", [20 x i8]* %"$fail_msg__sender_1826", %String %"$tname_1827", %String %"$m_1828") - br label %"$matchsucc_1729" - -"$empty_default_1733": ; preds = %"$have_gas_1727" - br label %"$matchsucc_1729" - -"$matchsucc_1729": ; preds = %"$have_gas_1823", %"$matchsucc_1778", %"$empty_default_1733" + %"$gasrem_1791" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1792" = icmp ugt i64 1, %"$gasrem_1791" + br i1 %"$gascmp_1792", label %"$out_of_gas_1793", label %"$have_gas_1794" + +"$out_of_gas_1793": ; preds = %"$have_gas_1789" + call void @_out_of_gas() + br label %"$have_gas_1794" + +"$have_gas_1794": ; preds = %"$out_of_gas_1793", %"$have_gas_1789" + %"$consume_1795" = sub i64 %"$gasrem_1791", 1 + store i64 %"$consume_1795", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_1796", i32 0, i32 0), i32 21 }, %String* %m2, align 8 + %"$gasrem_1797" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1798" = icmp ugt i64 1, %"$gasrem_1797" + br i1 %"$gascmp_1798", label %"$out_of_gas_1799", label %"$have_gas_1800" + +"$out_of_gas_1799": ; preds = %"$have_gas_1794" + call void @_out_of_gas() + br label %"$have_gas_1800" + +"$have_gas_1800": ; preds = %"$out_of_gas_1799", %"$have_gas_1794" + %"$consume_1801" = sub i64 %"$gasrem_1797", 1 + store i64 %"$consume_1801", i64* @_gasrem, align 8 + %"$fail_msg__origin_1802" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1802", align 1 + %"$fail_msg__sender_1803" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1803", align 1 + %"$tname_1804" = load %String, %String* %tname, align 8 + %"$m_1805" = load %String, %String* %m2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1802", [20 x i8]* %"$fail_msg__sender_1803", %String %"$tname_1804", %String %"$m_1805") + br label %"$matchsucc_1706" + +"$empty_default_1710": ; preds = %"$have_gas_1704" + br label %"$matchsucc_1706" + +"$matchsucc_1706": ; preds = %"$have_gas_1800", %"$matchsucc_1755", %"$empty_default_1710" + %"$gasrem_1806" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1807" = icmp ugt i64 1, %"$gasrem_1806" + br i1 %"$gascmp_1807", label %"$out_of_gas_1808", label %"$have_gas_1809" + +"$out_of_gas_1808": ; preds = %"$matchsucc_1706" + call void @_out_of_gas() + br label %"$have_gas_1809" + +"$have_gas_1809": ; preds = %"$out_of_gas_1808", %"$matchsucc_1706" + %"$consume_1810" = sub i64 %"$gasrem_1806", 1 + store i64 %"$consume_1810", i64* @_gasrem, align 8 + %key1b = alloca %String, align 8 + %"$gasrem_1811" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1812" = icmp ugt i64 1, %"$gasrem_1811" + br i1 %"$gascmp_1812", label %"$out_of_gas_1813", label %"$have_gas_1814" + +"$out_of_gas_1813": ; preds = %"$have_gas_1809" + call void @_out_of_gas() + br label %"$have_gas_1814" + +"$have_gas_1814": ; preds = %"$out_of_gas_1813", %"$have_gas_1809" + %"$consume_1815" = sub i64 %"$gasrem_1811", 1 + store i64 %"$consume_1815", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1816", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 + %"$c1_3" = alloca %"TName_Option_Map_(String)_(String)"*, align 8 + %"$indices_buf_1817_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1817_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1817_salloc_load", i64 16) + %"$indices_buf_1817_salloc" = bitcast i8* %"$indices_buf_1817_salloc_salloc" to [16 x i8]* + %"$indices_buf_1817" = bitcast [16 x i8]* %"$indices_buf_1817_salloc" to i8* + %"$key1b_1818" = load %String, %String* %key1b, align 8 + %"$indices_gep_1819" = getelementptr i8, i8* %"$indices_buf_1817", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_1819" to %String* + store %String %"$key1b_1818", %String* %indices_cast3, align 8 + %"$execptr_load_1821" = load i8*, i8** @_execptr, align 8 + %"$$c1_3_call_1822" = call i8* @_fetch_field(i8* %"$execptr_load_1821", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1820", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 1, i8* %"$indices_buf_1817", i32 1) + %"$$c1_3_1823" = bitcast i8* %"$$c1_3_call_1822" to %"TName_Option_Map_(String)_(String)"* + store %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1823", %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 + %"$$c1_3_1824" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 + %"$$$c1_3_1824_1825" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1824" to i8* + %"$_literal_cost_call_1826" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_59", i8* %"$$$c1_3_1824_1825") + %"$gasadd_1827" = add i64 %"$_literal_cost_call_1826", 0 + %"$gasadd_1828" = add i64 %"$gasadd_1827", 1 %"$gasrem_1829" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1830" = icmp ugt i64 1, %"$gasrem_1829" + %"$gascmp_1830" = icmp ugt i64 %"$gasadd_1828", %"$gasrem_1829" br i1 %"$gascmp_1830", label %"$out_of_gas_1831", label %"$have_gas_1832" -"$out_of_gas_1831": ; preds = %"$matchsucc_1729" +"$out_of_gas_1831": ; preds = %"$have_gas_1814" call void @_out_of_gas() br label %"$have_gas_1832" -"$have_gas_1832": ; preds = %"$out_of_gas_1831", %"$matchsucc_1729" - %"$consume_1833" = sub i64 %"$gasrem_1829", 1 +"$have_gas_1832": ; preds = %"$out_of_gas_1831", %"$have_gas_1814" + %"$consume_1833" = sub i64 %"$gasrem_1829", %"$gasadd_1828" store i64 %"$consume_1833", i64* @_gasrem, align 8 - %key1b = alloca %String, align 8 %"$gasrem_1834" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1835" = icmp ugt i64 1, %"$gasrem_1834" + %"$gascmp_1835" = icmp ugt i64 2, %"$gasrem_1834" br i1 %"$gascmp_1835", label %"$out_of_gas_1836", label %"$have_gas_1837" "$out_of_gas_1836": ; preds = %"$have_gas_1832" @@ -3831,1282 +3840,1292 @@ entry: br label %"$have_gas_1837" "$have_gas_1837": ; preds = %"$out_of_gas_1836", %"$have_gas_1832" - %"$consume_1838" = sub i64 %"$gasrem_1834", 1 + %"$consume_1838" = sub i64 %"$gasrem_1834", 2 store i64 %"$consume_1838", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1839", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 - %"$c1_3" = alloca %"TName_Option_Map_(String)_(String)"*, align 8 - %"$indices_buf_1840_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1840_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1840_salloc_load", i64 16) - %"$indices_buf_1840_salloc" = bitcast i8* %"$indices_buf_1840_salloc_salloc" to [16 x i8]* - %"$indices_buf_1840" = bitcast [16 x i8]* %"$indices_buf_1840_salloc" to i8* - %"$key1b_1841" = load %String, %String* %key1b, align 8 - %"$indices_gep_1842" = getelementptr i8, i8* %"$indices_buf_1840", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_1842" to %String* - store %String %"$key1b_1841", %String* %indices_cast3, align 8 - %"$execptr_load_1844" = load i8*, i8** @_execptr, align 8 - %"$$c1_3_call_1845" = call i8* @_fetch_field(i8* %"$execptr_load_1844", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1843", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 1, i8* %"$indices_buf_1840", i32 1) - %"$$c1_3_1846" = bitcast i8* %"$$c1_3_call_1845" to %"TName_Option_Map_(String)_(String)"* - store %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1846", %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 - %"$$c1_3_1847" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 - %"$$$c1_3_1847_1848" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1847" to i8* - %"$_literal_cost_call_1849" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_67", i8* %"$$$c1_3_1847_1848") - %"$gasadd_1850" = add i64 %"$_literal_cost_call_1849", 0 - %"$gasadd_1851" = add i64 %"$gasadd_1850", 1 - %"$gasrem_1852" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1853" = icmp ugt i64 %"$gasadd_1851", %"$gasrem_1852" - br i1 %"$gascmp_1853", label %"$out_of_gas_1854", label %"$have_gas_1855" - -"$out_of_gas_1854": ; preds = %"$have_gas_1837" - call void @_out_of_gas() - br label %"$have_gas_1855" - -"$have_gas_1855": ; preds = %"$out_of_gas_1854", %"$have_gas_1837" - %"$consume_1856" = sub i64 %"$gasrem_1852", %"$gasadd_1851" - store i64 %"$consume_1856", i64* @_gasrem, align 8 - %"$gasrem_1857" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1858" = icmp ugt i64 2, %"$gasrem_1857" - br i1 %"$gascmp_1858", label %"$out_of_gas_1859", label %"$have_gas_1860" - -"$out_of_gas_1859": ; preds = %"$have_gas_1855" - call void @_out_of_gas() - br label %"$have_gas_1860" - -"$have_gas_1860": ; preds = %"$out_of_gas_1859", %"$have_gas_1855" - %"$consume_1861" = sub i64 %"$gasrem_1857", 2 - store i64 %"$consume_1861", i64* @_gasrem, align 8 - %"$$c1_3_1863" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 - %"$$c1_3_tag_1864" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1863", i32 0, i32 0 - %"$$c1_3_tag_1865" = load i8, i8* %"$$c1_3_tag_1864", align 1 - switch i8 %"$$c1_3_tag_1865", label %"$empty_default_1866" [ - i8 0, label %"$Some_1867" - i8 1, label %"$None_1891" + %"$$c1_3_1840" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %"$c1_3", align 8 + %"$$c1_3_tag_1841" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1840", i32 0, i32 0 + %"$$c1_3_tag_1842" = load i8, i8* %"$$c1_3_tag_1841", align 1 + switch i8 %"$$c1_3_tag_1842", label %"$empty_default_1843" [ + i8 0, label %"$Some_1844" + i8 1, label %"$None_1868" ] -"$Some_1867": ; preds = %"$have_gas_1860" - %"$$c1_3_1868" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1863" to %"CName_Some_Map_(String)_(String)"* - %"$$$c1_3_16_gep_1869" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$$c1_3_1868", i32 0, i32 1 - %"$$$c1_3_16_load_1870" = load %Map_String_String*, %Map_String_String** %"$$$c1_3_16_gep_1869", align 8 +"$Some_1844": ; preds = %"$have_gas_1837" + %"$$c1_3_1845" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1840" to %"CName_Some_Map_(String)_(String)"* + %"$$$c1_3_16_gep_1846" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$$c1_3_1845", i32 0, i32 1 + %"$$$c1_3_16_load_1847" = load %Map_String_String*, %Map_String_String** %"$$$c1_3_16_gep_1846", align 8 %"$$c1_3_16" = alloca %Map_String_String*, align 8 - store %Map_String_String* %"$$$c1_3_16_load_1870", %Map_String_String** %"$$c1_3_16", align 8 - %"$gasrem_1871" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1872" = icmp ugt i64 1, %"$gasrem_1871" - br i1 %"$gascmp_1872", label %"$out_of_gas_1873", label %"$have_gas_1874" + store %Map_String_String* %"$$$c1_3_16_load_1847", %Map_String_String** %"$$c1_3_16", align 8 + %"$gasrem_1848" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1849" = icmp ugt i64 1, %"$gasrem_1848" + br i1 %"$gascmp_1849", label %"$out_of_gas_1850", label %"$have_gas_1851" -"$out_of_gas_1873": ; preds = %"$Some_1867" +"$out_of_gas_1850": ; preds = %"$Some_1844" call void @_out_of_gas() - br label %"$have_gas_1874" + br label %"$have_gas_1851" -"$have_gas_1874": ; preds = %"$out_of_gas_1873", %"$Some_1867" - %"$consume_1875" = sub i64 %"$gasrem_1871", 1 - store i64 %"$consume_1875", i64* @_gasrem, align 8 +"$have_gas_1851": ; preds = %"$out_of_gas_1850", %"$Some_1844" + %"$consume_1852" = sub i64 %"$gasrem_1848", 1 + store i64 %"$consume_1852", i64* @_gasrem, align 8 %m4 = alloca %String, align 8 - %"$gasrem_1876" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1877" = icmp ugt i64 1, %"$gasrem_1876" - br i1 %"$gascmp_1877", label %"$out_of_gas_1878", label %"$have_gas_1879" + %"$gasrem_1853" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1854" = icmp ugt i64 1, %"$gasrem_1853" + br i1 %"$gascmp_1854", label %"$out_of_gas_1855", label %"$have_gas_1856" -"$out_of_gas_1878": ; preds = %"$have_gas_1874" +"$out_of_gas_1855": ; preds = %"$have_gas_1851" call void @_out_of_gas() - br label %"$have_gas_1879" + br label %"$have_gas_1856" -"$have_gas_1879": ; preds = %"$out_of_gas_1878", %"$have_gas_1874" - %"$consume_1880" = sub i64 %"$gasrem_1876", 1 - store i64 %"$consume_1880", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @"$stringlit_1881", i32 0, i32 0), i32 36 }, %String* %m4, align 8 - %"$gasrem_1882" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1883" = icmp ugt i64 1, %"$gasrem_1882" - br i1 %"$gascmp_1883", label %"$out_of_gas_1884", label %"$have_gas_1885" +"$have_gas_1856": ; preds = %"$out_of_gas_1855", %"$have_gas_1851" + %"$consume_1857" = sub i64 %"$gasrem_1853", 1 + store i64 %"$consume_1857", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @"$stringlit_1858", i32 0, i32 0), i32 36 }, %String* %m4, align 8 + %"$gasrem_1859" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1860" = icmp ugt i64 1, %"$gasrem_1859" + br i1 %"$gascmp_1860", label %"$out_of_gas_1861", label %"$have_gas_1862" -"$out_of_gas_1884": ; preds = %"$have_gas_1879" +"$out_of_gas_1861": ; preds = %"$have_gas_1856" call void @_out_of_gas() - br label %"$have_gas_1885" + br label %"$have_gas_1862" -"$have_gas_1885": ; preds = %"$out_of_gas_1884", %"$have_gas_1879" - %"$consume_1886" = sub i64 %"$gasrem_1882", 1 - store i64 %"$consume_1886", i64* @_gasrem, align 8 - %"$fail_msg__origin_1887" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1887", align 1 - %"$fail_msg__sender_1888" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1888", align 1 - %"$tname_1889" = load %String, %String* %tname, align 8 - %"$m_1890" = load %String, %String* %m4, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1887", [20 x i8]* %"$fail_msg__sender_1888", %String %"$tname_1889", %String %"$m_1890") - br label %"$matchsucc_1862" +"$have_gas_1862": ; preds = %"$out_of_gas_1861", %"$have_gas_1856" + %"$consume_1863" = sub i64 %"$gasrem_1859", 1 + store i64 %"$consume_1863", i64* @_gasrem, align 8 + %"$fail_msg__origin_1864" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1864", align 1 + %"$fail_msg__sender_1865" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1865", align 1 + %"$tname_1866" = load %String, %String* %tname, align 8 + %"$m_1867" = load %String, %String* %m4, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1864", [20 x i8]* %"$fail_msg__sender_1865", %String %"$tname_1866", %String %"$m_1867") + br label %"$matchsucc_1839" -"$None_1891": ; preds = %"$have_gas_1860" - %"$$c1_3_1892" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1863" to %"CName_None_Map_(String)_(String)"* - br label %"$matchsucc_1862" +"$None_1868": ; preds = %"$have_gas_1837" + %"$$c1_3_1869" = bitcast %"TName_Option_Map_(String)_(String)"* %"$$c1_3_1840" to %"CName_None_Map_(String)_(String)"* + br label %"$matchsucc_1839" -"$empty_default_1866": ; preds = %"$have_gas_1860" - br label %"$matchsucc_1862" +"$empty_default_1843": ; preds = %"$have_gas_1837" + br label %"$matchsucc_1839" -"$matchsucc_1862": ; preds = %"$None_1891", %"$have_gas_1885", %"$empty_default_1866" - %"$gasrem_1893" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1894" = icmp ugt i64 1, %"$gasrem_1893" - br i1 %"$gascmp_1894", label %"$out_of_gas_1895", label %"$have_gas_1896" +"$matchsucc_1839": ; preds = %"$None_1868", %"$have_gas_1862", %"$empty_default_1843" + %"$gasrem_1870" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1871" = icmp ugt i64 1, %"$gasrem_1870" + br i1 %"$gascmp_1871", label %"$out_of_gas_1872", label %"$have_gas_1873" -"$out_of_gas_1895": ; preds = %"$matchsucc_1862" +"$out_of_gas_1872": ; preds = %"$matchsucc_1839" call void @_out_of_gas() - br label %"$have_gas_1896" + br label %"$have_gas_1873" -"$have_gas_1896": ; preds = %"$out_of_gas_1895", %"$matchsucc_1862" - %"$consume_1897" = sub i64 %"$gasrem_1893", 1 - store i64 %"$consume_1897", i64* @_gasrem, align 8 +"$have_gas_1873": ; preds = %"$out_of_gas_1872", %"$matchsucc_1839" + %"$consume_1874" = sub i64 %"$gasrem_1870", 1 + store i64 %"$consume_1874", i64* @_gasrem, align 8 %"$key1b_4" = alloca %String, align 8 - %"$gasrem_1898" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1899" = icmp ugt i64 1, %"$gasrem_1898" - br i1 %"$gascmp_1899", label %"$out_of_gas_1900", label %"$have_gas_1901" + %"$gasrem_1875" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1876" = icmp ugt i64 1, %"$gasrem_1875" + br i1 %"$gascmp_1876", label %"$out_of_gas_1877", label %"$have_gas_1878" -"$out_of_gas_1900": ; preds = %"$have_gas_1896" +"$out_of_gas_1877": ; preds = %"$have_gas_1873" call void @_out_of_gas() - br label %"$have_gas_1901" + br label %"$have_gas_1878" -"$have_gas_1901": ; preds = %"$out_of_gas_1900", %"$have_gas_1896" - %"$consume_1902" = sub i64 %"$gasrem_1898", 1 - store i64 %"$consume_1902", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1903", i32 0, i32 0), i32 5 }, %String* %"$key1b_4", align 8 - %"$gasrem_1904" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1905" = icmp ugt i64 1, %"$gasrem_1904" - br i1 %"$gascmp_1905", label %"$out_of_gas_1906", label %"$have_gas_1907" +"$have_gas_1878": ; preds = %"$out_of_gas_1877", %"$have_gas_1873" + %"$consume_1879" = sub i64 %"$gasrem_1875", 1 + store i64 %"$consume_1879", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1880", i32 0, i32 0), i32 5 }, %String* %"$key1b_4", align 8 + %"$gasrem_1881" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1882" = icmp ugt i64 1, %"$gasrem_1881" + br i1 %"$gascmp_1882", label %"$out_of_gas_1883", label %"$have_gas_1884" -"$out_of_gas_1906": ; preds = %"$have_gas_1901" +"$out_of_gas_1883": ; preds = %"$have_gas_1878" call void @_out_of_gas() - br label %"$have_gas_1907" + br label %"$have_gas_1884" -"$have_gas_1907": ; preds = %"$out_of_gas_1906", %"$have_gas_1901" - %"$consume_1908" = sub i64 %"$gasrem_1904", 1 - store i64 %"$consume_1908", i64* @_gasrem, align 8 +"$have_gas_1884": ; preds = %"$out_of_gas_1883", %"$have_gas_1878" + %"$consume_1885" = sub i64 %"$gasrem_1881", 1 + store i64 %"$consume_1885", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_1909" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1910" = icmp ugt i64 1, %"$gasrem_1909" - br i1 %"$gascmp_1910", label %"$out_of_gas_1911", label %"$have_gas_1912" + %"$gasrem_1886" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1887" = icmp ugt i64 1, %"$gasrem_1886" + br i1 %"$gascmp_1887", label %"$out_of_gas_1888", label %"$have_gas_1889" -"$out_of_gas_1911": ; preds = %"$have_gas_1907" +"$out_of_gas_1888": ; preds = %"$have_gas_1884" call void @_out_of_gas() - br label %"$have_gas_1912" + br label %"$have_gas_1889" -"$have_gas_1912": ; preds = %"$out_of_gas_1911", %"$have_gas_1907" - %"$consume_1913" = sub i64 %"$gasrem_1909", 1 - store i64 %"$consume_1913", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1914", i32 0, i32 0), i32 5 }, %String* %key2b, align 8 +"$have_gas_1889": ; preds = %"$out_of_gas_1888", %"$have_gas_1884" + %"$consume_1890" = sub i64 %"$gasrem_1886", 1 + store i64 %"$consume_1890", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1891", i32 0, i32 0), i32 5 }, %String* %key2b, align 8 %"$c1_5" = alloca %TName_Option_String*, align 8 - %"$indices_buf_1915_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1915_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1915_salloc_load", i64 32) - %"$indices_buf_1915_salloc" = bitcast i8* %"$indices_buf_1915_salloc_salloc" to [32 x i8]* - %"$indices_buf_1915" = bitcast [32 x i8]* %"$indices_buf_1915_salloc" to i8* - %"$$key1b_4_1916" = load %String, %String* %"$key1b_4", align 8 - %"$indices_gep_1917" = getelementptr i8, i8* %"$indices_buf_1915", i32 0 - %indices_cast5 = bitcast i8* %"$indices_gep_1917" to %String* - store %String %"$$key1b_4_1916", %String* %indices_cast5, align 8 - %"$key2b_1918" = load %String, %String* %key2b, align 8 - %"$indices_gep_1919" = getelementptr i8, i8* %"$indices_buf_1915", i32 16 - %indices_cast6 = bitcast i8* %"$indices_gep_1919" to %String* - store %String %"$key2b_1918", %String* %indices_cast6, align 8 - %"$execptr_load_1921" = load i8*, i8** @_execptr, align 8 - %"$$c1_5_call_1922" = call i8* @_fetch_field(i8* %"$execptr_load_1921", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1920", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1915", i32 1) - %"$$c1_5_1923" = bitcast i8* %"$$c1_5_call_1922" to %TName_Option_String* - store %TName_Option_String* %"$$c1_5_1923", %TName_Option_String** %"$c1_5", align 8 - %"$$c1_5_1924" = load %TName_Option_String*, %TName_Option_String** %"$c1_5", align 8 - %"$$$c1_5_1924_1925" = bitcast %TName_Option_String* %"$$c1_5_1924" to i8* - %"$_literal_cost_call_1926" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$$c1_5_1924_1925") - %"$gasadd_1927" = add i64 %"$_literal_cost_call_1926", 0 - %"$gasadd_1928" = add i64 %"$gasadd_1927", 2 - %"$gasrem_1929" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1930" = icmp ugt i64 %"$gasadd_1928", %"$gasrem_1929" - br i1 %"$gascmp_1930", label %"$out_of_gas_1931", label %"$have_gas_1932" - -"$out_of_gas_1931": ; preds = %"$have_gas_1912" - call void @_out_of_gas() - br label %"$have_gas_1932" - -"$have_gas_1932": ; preds = %"$out_of_gas_1931", %"$have_gas_1912" - %"$consume_1933" = sub i64 %"$gasrem_1929", %"$gasadd_1928" - store i64 %"$consume_1933", i64* @_gasrem, align 8 - %"$gasrem_1934" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1935" = icmp ugt i64 2, %"$gasrem_1934" - br i1 %"$gascmp_1935", label %"$out_of_gas_1936", label %"$have_gas_1937" - -"$out_of_gas_1936": ; preds = %"$have_gas_1932" - call void @_out_of_gas() - br label %"$have_gas_1937" - -"$have_gas_1937": ; preds = %"$out_of_gas_1936", %"$have_gas_1932" - %"$consume_1938" = sub i64 %"$gasrem_1934", 2 - store i64 %"$consume_1938", i64* @_gasrem, align 8 - %"$$c1_5_1940" = load %TName_Option_String*, %TName_Option_String** %"$c1_5", align 8 - %"$$c1_5_tag_1941" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_5_1940", i32 0, i32 0 - %"$$c1_5_tag_1942" = load i8, i8* %"$$c1_5_tag_1941", align 1 - switch i8 %"$$c1_5_tag_1942", label %"$empty_default_1943" [ - i8 0, label %"$Some_1944" - i8 1, label %"$None_1968" + %"$indices_buf_1892_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1892_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1892_salloc_load", i64 32) + %"$indices_buf_1892_salloc" = bitcast i8* %"$indices_buf_1892_salloc_salloc" to [32 x i8]* + %"$indices_buf_1892" = bitcast [32 x i8]* %"$indices_buf_1892_salloc" to i8* + %"$$key1b_4_1893" = load %String, %String* %"$key1b_4", align 8 + %"$indices_gep_1894" = getelementptr i8, i8* %"$indices_buf_1892", i32 0 + %indices_cast5 = bitcast i8* %"$indices_gep_1894" to %String* + store %String %"$$key1b_4_1893", %String* %indices_cast5, align 8 + %"$key2b_1895" = load %String, %String* %key2b, align 8 + %"$indices_gep_1896" = getelementptr i8, i8* %"$indices_buf_1892", i32 16 + %indices_cast6 = bitcast i8* %"$indices_gep_1896" to %String* + store %String %"$key2b_1895", %String* %indices_cast6, align 8 + %"$execptr_load_1898" = load i8*, i8** @_execptr, align 8 + %"$$c1_5_call_1899" = call i8* @_fetch_field(i8* %"$execptr_load_1898", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1897", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1892", i32 1) + %"$$c1_5_1900" = bitcast i8* %"$$c1_5_call_1899" to %TName_Option_String* + store %TName_Option_String* %"$$c1_5_1900", %TName_Option_String** %"$c1_5", align 8 + %"$$c1_5_1901" = load %TName_Option_String*, %TName_Option_String** %"$c1_5", align 8 + %"$$$c1_5_1901_1902" = bitcast %TName_Option_String* %"$$c1_5_1901" to i8* + %"$_literal_cost_call_1903" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$$c1_5_1901_1902") + %"$gasadd_1904" = add i64 %"$_literal_cost_call_1903", 0 + %"$gasadd_1905" = add i64 %"$gasadd_1904", 2 + %"$gasrem_1906" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1907" = icmp ugt i64 %"$gasadd_1905", %"$gasrem_1906" + br i1 %"$gascmp_1907", label %"$out_of_gas_1908", label %"$have_gas_1909" + +"$out_of_gas_1908": ; preds = %"$have_gas_1889" + call void @_out_of_gas() + br label %"$have_gas_1909" + +"$have_gas_1909": ; preds = %"$out_of_gas_1908", %"$have_gas_1889" + %"$consume_1910" = sub i64 %"$gasrem_1906", %"$gasadd_1905" + store i64 %"$consume_1910", i64* @_gasrem, align 8 + %"$gasrem_1911" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1912" = icmp ugt i64 2, %"$gasrem_1911" + br i1 %"$gascmp_1912", label %"$out_of_gas_1913", label %"$have_gas_1914" + +"$out_of_gas_1913": ; preds = %"$have_gas_1909" + call void @_out_of_gas() + br label %"$have_gas_1914" + +"$have_gas_1914": ; preds = %"$out_of_gas_1913", %"$have_gas_1909" + %"$consume_1915" = sub i64 %"$gasrem_1911", 2 + store i64 %"$consume_1915", i64* @_gasrem, align 8 + %"$$c1_5_1917" = load %TName_Option_String*, %TName_Option_String** %"$c1_5", align 8 + %"$$c1_5_tag_1918" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_5_1917", i32 0, i32 0 + %"$$c1_5_tag_1919" = load i8, i8* %"$$c1_5_tag_1918", align 1 + switch i8 %"$$c1_5_tag_1919", label %"$empty_default_1920" [ + i8 0, label %"$Some_1921" + i8 1, label %"$None_1945" ] -"$Some_1944": ; preds = %"$have_gas_1937" - %"$$c1_5_1945" = bitcast %TName_Option_String* %"$$c1_5_1940" to %CName_Some_String* - %"$$$c1_5_15_gep_1946" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_5_1945", i32 0, i32 1 - %"$$$c1_5_15_load_1947" = load %String, %String* %"$$$c1_5_15_gep_1946", align 8 +"$Some_1921": ; preds = %"$have_gas_1914" + %"$$c1_5_1922" = bitcast %TName_Option_String* %"$$c1_5_1917" to %CName_Some_String* + %"$$$c1_5_15_gep_1923" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_5_1922", i32 0, i32 1 + %"$$$c1_5_15_load_1924" = load %String, %String* %"$$$c1_5_15_gep_1923", align 8 %"$$c1_5_15" = alloca %String, align 8 - store %String %"$$$c1_5_15_load_1947", %String* %"$$c1_5_15", align 8 - %"$gasrem_1948" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1949" = icmp ugt i64 1, %"$gasrem_1948" - br i1 %"$gascmp_1949", label %"$out_of_gas_1950", label %"$have_gas_1951" + store %String %"$$$c1_5_15_load_1924", %String* %"$$c1_5_15", align 8 + %"$gasrem_1925" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1926" = icmp ugt i64 1, %"$gasrem_1925" + br i1 %"$gascmp_1926", label %"$out_of_gas_1927", label %"$have_gas_1928" -"$out_of_gas_1950": ; preds = %"$Some_1944" +"$out_of_gas_1927": ; preds = %"$Some_1921" call void @_out_of_gas() - br label %"$have_gas_1951" + br label %"$have_gas_1928" -"$have_gas_1951": ; preds = %"$out_of_gas_1950", %"$Some_1944" - %"$consume_1952" = sub i64 %"$gasrem_1948", 1 - store i64 %"$consume_1952", i64* @_gasrem, align 8 +"$have_gas_1928": ; preds = %"$out_of_gas_1927", %"$Some_1921" + %"$consume_1929" = sub i64 %"$gasrem_1925", 1 + store i64 %"$consume_1929", i64* @_gasrem, align 8 %m7 = alloca %String, align 8 - %"$gasrem_1953" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1954" = icmp ugt i64 1, %"$gasrem_1953" - br i1 %"$gascmp_1954", label %"$out_of_gas_1955", label %"$have_gas_1956" + %"$gasrem_1930" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1931" = icmp ugt i64 1, %"$gasrem_1930" + br i1 %"$gascmp_1931", label %"$out_of_gas_1932", label %"$have_gas_1933" -"$out_of_gas_1955": ; preds = %"$have_gas_1951" +"$out_of_gas_1932": ; preds = %"$have_gas_1928" call void @_out_of_gas() - br label %"$have_gas_1956" + br label %"$have_gas_1933" -"$have_gas_1956": ; preds = %"$out_of_gas_1955", %"$have_gas_1951" - %"$consume_1957" = sub i64 %"$gasrem_1953", 1 - store i64 %"$consume_1957", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_1958", i32 0, i32 0), i32 42 }, %String* %m7, align 8 - %"$gasrem_1959" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1960" = icmp ugt i64 1, %"$gasrem_1959" - br i1 %"$gascmp_1960", label %"$out_of_gas_1961", label %"$have_gas_1962" +"$have_gas_1933": ; preds = %"$out_of_gas_1932", %"$have_gas_1928" + %"$consume_1934" = sub i64 %"$gasrem_1930", 1 + store i64 %"$consume_1934", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_1935", i32 0, i32 0), i32 42 }, %String* %m7, align 8 + %"$gasrem_1936" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1937" = icmp ugt i64 1, %"$gasrem_1936" + br i1 %"$gascmp_1937", label %"$out_of_gas_1938", label %"$have_gas_1939" -"$out_of_gas_1961": ; preds = %"$have_gas_1956" +"$out_of_gas_1938": ; preds = %"$have_gas_1933" call void @_out_of_gas() - br label %"$have_gas_1962" + br label %"$have_gas_1939" -"$have_gas_1962": ; preds = %"$out_of_gas_1961", %"$have_gas_1956" - %"$consume_1963" = sub i64 %"$gasrem_1959", 1 - store i64 %"$consume_1963", i64* @_gasrem, align 8 - %"$fail_msg__origin_1964" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1964", align 1 - %"$fail_msg__sender_1965" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1965", align 1 - %"$tname_1966" = load %String, %String* %tname, align 8 - %"$m_1967" = load %String, %String* %m7, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1964", [20 x i8]* %"$fail_msg__sender_1965", %String %"$tname_1966", %String %"$m_1967") - br label %"$matchsucc_1939" +"$have_gas_1939": ; preds = %"$out_of_gas_1938", %"$have_gas_1933" + %"$consume_1940" = sub i64 %"$gasrem_1936", 1 + store i64 %"$consume_1940", i64* @_gasrem, align 8 + %"$fail_msg__origin_1941" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_1941", align 1 + %"$fail_msg__sender_1942" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_1942", align 1 + %"$tname_1943" = load %String, %String* %tname, align 8 + %"$m_1944" = load %String, %String* %m7, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_1941", [20 x i8]* %"$fail_msg__sender_1942", %String %"$tname_1943", %String %"$m_1944") + br label %"$matchsucc_1916" -"$None_1968": ; preds = %"$have_gas_1937" - %"$$c1_5_1969" = bitcast %TName_Option_String* %"$$c1_5_1940" to %CName_None_String* - br label %"$matchsucc_1939" +"$None_1945": ; preds = %"$have_gas_1914" + %"$$c1_5_1946" = bitcast %TName_Option_String* %"$$c1_5_1917" to %CName_None_String* + br label %"$matchsucc_1916" -"$empty_default_1943": ; preds = %"$have_gas_1937" - br label %"$matchsucc_1939" +"$empty_default_1920": ; preds = %"$have_gas_1914" + br label %"$matchsucc_1916" -"$matchsucc_1939": ; preds = %"$None_1968", %"$have_gas_1962", %"$empty_default_1943" - %"$gasrem_1970" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1971" = icmp ugt i64 1, %"$gasrem_1970" - br i1 %"$gascmp_1971", label %"$out_of_gas_1972", label %"$have_gas_1973" +"$matchsucc_1916": ; preds = %"$None_1945", %"$have_gas_1939", %"$empty_default_1920" + %"$gasrem_1947" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1948" = icmp ugt i64 1, %"$gasrem_1947" + br i1 %"$gascmp_1948", label %"$out_of_gas_1949", label %"$have_gas_1950" -"$out_of_gas_1972": ; preds = %"$matchsucc_1939" +"$out_of_gas_1949": ; preds = %"$matchsucc_1916" call void @_out_of_gas() - br label %"$have_gas_1973" + br label %"$have_gas_1950" -"$have_gas_1973": ; preds = %"$out_of_gas_1972", %"$matchsucc_1939" - %"$consume_1974" = sub i64 %"$gasrem_1970", 1 - store i64 %"$consume_1974", i64* @_gasrem, align 8 +"$have_gas_1950": ; preds = %"$out_of_gas_1949", %"$matchsucc_1916" + %"$consume_1951" = sub i64 %"$gasrem_1947", 1 + store i64 %"$consume_1951", i64* @_gasrem, align 8 %"$key1b_6" = alloca %String, align 8 - %"$gasrem_1975" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1976" = icmp ugt i64 1, %"$gasrem_1975" - br i1 %"$gascmp_1976", label %"$out_of_gas_1977", label %"$have_gas_1978" + %"$gasrem_1952" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1953" = icmp ugt i64 1, %"$gasrem_1952" + br i1 %"$gascmp_1953", label %"$out_of_gas_1954", label %"$have_gas_1955" -"$out_of_gas_1977": ; preds = %"$have_gas_1973" +"$out_of_gas_1954": ; preds = %"$have_gas_1950" call void @_out_of_gas() - br label %"$have_gas_1978" + br label %"$have_gas_1955" -"$have_gas_1978": ; preds = %"$out_of_gas_1977", %"$have_gas_1973" - %"$consume_1979" = sub i64 %"$gasrem_1975", 1 - store i64 %"$consume_1979", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1980", i32 0, i32 0), i32 5 }, %String* %"$key1b_6", align 8 - %"$gasrem_1981" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1982" = icmp ugt i64 1, %"$gasrem_1981" - br i1 %"$gascmp_1982", label %"$out_of_gas_1983", label %"$have_gas_1984" +"$have_gas_1955": ; preds = %"$out_of_gas_1954", %"$have_gas_1950" + %"$consume_1956" = sub i64 %"$gasrem_1952", 1 + store i64 %"$consume_1956", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1957", i32 0, i32 0), i32 5 }, %String* %"$key1b_6", align 8 + %"$gasrem_1958" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1959" = icmp ugt i64 1, %"$gasrem_1958" + br i1 %"$gascmp_1959", label %"$out_of_gas_1960", label %"$have_gas_1961" -"$out_of_gas_1983": ; preds = %"$have_gas_1978" +"$out_of_gas_1960": ; preds = %"$have_gas_1955" call void @_out_of_gas() - br label %"$have_gas_1984" + br label %"$have_gas_1961" -"$have_gas_1984": ; preds = %"$out_of_gas_1983", %"$have_gas_1978" - %"$consume_1985" = sub i64 %"$gasrem_1981", 1 - store i64 %"$consume_1985", i64* @_gasrem, align 8 +"$have_gas_1961": ; preds = %"$out_of_gas_1960", %"$have_gas_1955" + %"$consume_1962" = sub i64 %"$gasrem_1958", 1 + store i64 %"$consume_1962", i64* @_gasrem, align 8 %key2d = alloca %String, align 8 - %"$gasrem_1986" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1987" = icmp ugt i64 1, %"$gasrem_1986" - br i1 %"$gascmp_1987", label %"$out_of_gas_1988", label %"$have_gas_1989" + %"$gasrem_1963" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1964" = icmp ugt i64 1, %"$gasrem_1963" + br i1 %"$gascmp_1964", label %"$out_of_gas_1965", label %"$have_gas_1966" -"$out_of_gas_1988": ; preds = %"$have_gas_1984" +"$out_of_gas_1965": ; preds = %"$have_gas_1961" call void @_out_of_gas() - br label %"$have_gas_1989" + br label %"$have_gas_1966" -"$have_gas_1989": ; preds = %"$out_of_gas_1988", %"$have_gas_1984" - %"$consume_1990" = sub i64 %"$gasrem_1986", 1 - store i64 %"$consume_1990", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1991", i32 0, i32 0), i32 5 }, %String* %key2d, align 8 +"$have_gas_1966": ; preds = %"$out_of_gas_1965", %"$have_gas_1961" + %"$consume_1967" = sub i64 %"$gasrem_1963", 1 + store i64 %"$consume_1967", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1968", i32 0, i32 0), i32 5 }, %String* %key2d, align 8 %"$c1_7" = alloca %TName_Option_String*, align 8 - %"$indices_buf_1992_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_1992_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1992_salloc_load", i64 32) - %"$indices_buf_1992_salloc" = bitcast i8* %"$indices_buf_1992_salloc_salloc" to [32 x i8]* - %"$indices_buf_1992" = bitcast [32 x i8]* %"$indices_buf_1992_salloc" to i8* - %"$$key1b_6_1993" = load %String, %String* %"$key1b_6", align 8 - %"$indices_gep_1994" = getelementptr i8, i8* %"$indices_buf_1992", i32 0 - %indices_cast8 = bitcast i8* %"$indices_gep_1994" to %String* - store %String %"$$key1b_6_1993", %String* %indices_cast8, align 8 - %"$key2d_1995" = load %String, %String* %key2d, align 8 - %"$indices_gep_1996" = getelementptr i8, i8* %"$indices_buf_1992", i32 16 - %indices_cast9 = bitcast i8* %"$indices_gep_1996" to %String* - store %String %"$key2d_1995", %String* %indices_cast9, align 8 - %"$execptr_load_1998" = load i8*, i8** @_execptr, align 8 - %"$$c1_7_call_1999" = call i8* @_fetch_field(i8* %"$execptr_load_1998", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1997", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_1992", i32 1) - %"$$c1_7_2000" = bitcast i8* %"$$c1_7_call_1999" to %TName_Option_String* - store %TName_Option_String* %"$$c1_7_2000", %TName_Option_String** %"$c1_7", align 8 - %"$$c1_7_2001" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 - %"$$$c1_7_2001_2002" = bitcast %TName_Option_String* %"$$c1_7_2001" to i8* - %"$_literal_cost_call_2003" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$$c1_7_2001_2002") - %"$gasadd_2004" = add i64 %"$_literal_cost_call_2003", 0 - %"$gasadd_2005" = add i64 %"$gasadd_2004", 2 - %"$gasrem_2006" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2007" = icmp ugt i64 %"$gasadd_2005", %"$gasrem_2006" - br i1 %"$gascmp_2007", label %"$out_of_gas_2008", label %"$have_gas_2009" - -"$out_of_gas_2008": ; preds = %"$have_gas_1989" - call void @_out_of_gas() - br label %"$have_gas_2009" - -"$have_gas_2009": ; preds = %"$out_of_gas_2008", %"$have_gas_1989" - %"$consume_2010" = sub i64 %"$gasrem_2006", %"$gasadd_2005" - store i64 %"$consume_2010", i64* @_gasrem, align 8 - %"$gasrem_2011" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2012" = icmp ugt i64 2, %"$gasrem_2011" - br i1 %"$gascmp_2012", label %"$out_of_gas_2013", label %"$have_gas_2014" - -"$out_of_gas_2013": ; preds = %"$have_gas_2009" - call void @_out_of_gas() - br label %"$have_gas_2014" - -"$have_gas_2014": ; preds = %"$out_of_gas_2013", %"$have_gas_2009" - %"$consume_2015" = sub i64 %"$gasrem_2011", 2 - store i64 %"$consume_2015", i64* @_gasrem, align 8 - %"$$c1_7_2017" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 - %"$$c1_7_tag_2018" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_7_2017", i32 0, i32 0 - %"$$c1_7_tag_2019" = load i8, i8* %"$$c1_7_tag_2018", align 1 - switch i8 %"$$c1_7_tag_2019", label %"$empty_default_2020" [ - i8 0, label %"$Some_2021" - i8 1, label %"$None_2045" + %"$indices_buf_1969_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_1969_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_1969_salloc_load", i64 32) + %"$indices_buf_1969_salloc" = bitcast i8* %"$indices_buf_1969_salloc_salloc" to [32 x i8]* + %"$indices_buf_1969" = bitcast [32 x i8]* %"$indices_buf_1969_salloc" to i8* + %"$$key1b_6_1970" = load %String, %String* %"$key1b_6", align 8 + %"$indices_gep_1971" = getelementptr i8, i8* %"$indices_buf_1969", i32 0 + %indices_cast8 = bitcast i8* %"$indices_gep_1971" to %String* + store %String %"$$key1b_6_1970", %String* %indices_cast8, align 8 + %"$key2d_1972" = load %String, %String* %key2d, align 8 + %"$indices_gep_1973" = getelementptr i8, i8* %"$indices_buf_1969", i32 16 + %indices_cast9 = bitcast i8* %"$indices_gep_1973" to %String* + store %String %"$key2d_1972", %String* %indices_cast9, align 8 + %"$execptr_load_1975" = load i8*, i8** @_execptr, align 8 + %"$$c1_7_call_1976" = call i8* @_fetch_field(i8* %"$execptr_load_1975", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_1974", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_1969", i32 1) + %"$$c1_7_1977" = bitcast i8* %"$$c1_7_call_1976" to %TName_Option_String* + store %TName_Option_String* %"$$c1_7_1977", %TName_Option_String** %"$c1_7", align 8 + %"$$c1_7_1978" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 + %"$$$c1_7_1978_1979" = bitcast %TName_Option_String* %"$$c1_7_1978" to i8* + %"$_literal_cost_call_1980" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$$c1_7_1978_1979") + %"$gasadd_1981" = add i64 %"$_literal_cost_call_1980", 0 + %"$gasadd_1982" = add i64 %"$gasadd_1981", 2 + %"$gasrem_1983" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1984" = icmp ugt i64 %"$gasadd_1982", %"$gasrem_1983" + br i1 %"$gascmp_1984", label %"$out_of_gas_1985", label %"$have_gas_1986" + +"$out_of_gas_1985": ; preds = %"$have_gas_1966" + call void @_out_of_gas() + br label %"$have_gas_1986" + +"$have_gas_1986": ; preds = %"$out_of_gas_1985", %"$have_gas_1966" + %"$consume_1987" = sub i64 %"$gasrem_1983", %"$gasadd_1982" + store i64 %"$consume_1987", i64* @_gasrem, align 8 + %"$gasrem_1988" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1989" = icmp ugt i64 2, %"$gasrem_1988" + br i1 %"$gascmp_1989", label %"$out_of_gas_1990", label %"$have_gas_1991" + +"$out_of_gas_1990": ; preds = %"$have_gas_1986" + call void @_out_of_gas() + br label %"$have_gas_1991" + +"$have_gas_1991": ; preds = %"$out_of_gas_1990", %"$have_gas_1986" + %"$consume_1992" = sub i64 %"$gasrem_1988", 2 + store i64 %"$consume_1992", i64* @_gasrem, align 8 + %"$$c1_7_1994" = load %TName_Option_String*, %TName_Option_String** %"$c1_7", align 8 + %"$$c1_7_tag_1995" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_7_1994", i32 0, i32 0 + %"$$c1_7_tag_1996" = load i8, i8* %"$$c1_7_tag_1995", align 1 + switch i8 %"$$c1_7_tag_1996", label %"$empty_default_1997" [ + i8 0, label %"$Some_1998" + i8 1, label %"$None_2022" ] -"$Some_2021": ; preds = %"$have_gas_2014" - %"$$c1_7_2022" = bitcast %TName_Option_String* %"$$c1_7_2017" to %CName_Some_String* - %"$$$c1_7_14_gep_2023" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_7_2022", i32 0, i32 1 - %"$$$c1_7_14_load_2024" = load %String, %String* %"$$$c1_7_14_gep_2023", align 8 +"$Some_1998": ; preds = %"$have_gas_1991" + %"$$c1_7_1999" = bitcast %TName_Option_String* %"$$c1_7_1994" to %CName_Some_String* + %"$$$c1_7_14_gep_2000" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_7_1999", i32 0, i32 1 + %"$$$c1_7_14_load_2001" = load %String, %String* %"$$$c1_7_14_gep_2000", align 8 %"$$c1_7_14" = alloca %String, align 8 - store %String %"$$$c1_7_14_load_2024", %String* %"$$c1_7_14", align 8 - %"$gasrem_2025" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2026" = icmp ugt i64 1, %"$gasrem_2025" - br i1 %"$gascmp_2026", label %"$out_of_gas_2027", label %"$have_gas_2028" + store %String %"$$$c1_7_14_load_2001", %String* %"$$c1_7_14", align 8 + %"$gasrem_2002" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2003" = icmp ugt i64 1, %"$gasrem_2002" + br i1 %"$gascmp_2003", label %"$out_of_gas_2004", label %"$have_gas_2005" -"$out_of_gas_2027": ; preds = %"$Some_2021" +"$out_of_gas_2004": ; preds = %"$Some_1998" call void @_out_of_gas() - br label %"$have_gas_2028" + br label %"$have_gas_2005" -"$have_gas_2028": ; preds = %"$out_of_gas_2027", %"$Some_2021" - %"$consume_2029" = sub i64 %"$gasrem_2025", 1 - store i64 %"$consume_2029", i64* @_gasrem, align 8 +"$have_gas_2005": ; preds = %"$out_of_gas_2004", %"$Some_1998" + %"$consume_2006" = sub i64 %"$gasrem_2002", 1 + store i64 %"$consume_2006", i64* @_gasrem, align 8 %m10 = alloca %String, align 8 - %"$gasrem_2030" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2031" = icmp ugt i64 1, %"$gasrem_2030" - br i1 %"$gascmp_2031", label %"$out_of_gas_2032", label %"$have_gas_2033" + %"$gasrem_2007" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2008" = icmp ugt i64 1, %"$gasrem_2007" + br i1 %"$gascmp_2008", label %"$out_of_gas_2009", label %"$have_gas_2010" -"$out_of_gas_2032": ; preds = %"$have_gas_2028" +"$out_of_gas_2009": ; preds = %"$have_gas_2005" call void @_out_of_gas() - br label %"$have_gas_2033" + br label %"$have_gas_2010" -"$have_gas_2033": ; preds = %"$out_of_gas_2032", %"$have_gas_2028" - %"$consume_2034" = sub i64 %"$gasrem_2030", 1 - store i64 %"$consume_2034", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_2035", i32 0, i32 0), i32 42 }, %String* %m10, align 8 - %"$gasrem_2036" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2037" = icmp ugt i64 1, %"$gasrem_2036" - br i1 %"$gascmp_2037", label %"$out_of_gas_2038", label %"$have_gas_2039" +"$have_gas_2010": ; preds = %"$out_of_gas_2009", %"$have_gas_2005" + %"$consume_2011" = sub i64 %"$gasrem_2007", 1 + store i64 %"$consume_2011", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([42 x i8], [42 x i8]* @"$stringlit_2012", i32 0, i32 0), i32 42 }, %String* %m10, align 8 + %"$gasrem_2013" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2014" = icmp ugt i64 1, %"$gasrem_2013" + br i1 %"$gascmp_2014", label %"$out_of_gas_2015", label %"$have_gas_2016" -"$out_of_gas_2038": ; preds = %"$have_gas_2033" +"$out_of_gas_2015": ; preds = %"$have_gas_2010" call void @_out_of_gas() - br label %"$have_gas_2039" + br label %"$have_gas_2016" -"$have_gas_2039": ; preds = %"$out_of_gas_2038", %"$have_gas_2033" - %"$consume_2040" = sub i64 %"$gasrem_2036", 1 - store i64 %"$consume_2040", i64* @_gasrem, align 8 - %"$fail_msg__origin_2041" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2041", align 1 - %"$fail_msg__sender_2042" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2042", align 1 - %"$tname_2043" = load %String, %String* %tname, align 8 - %"$m_2044" = load %String, %String* %m10, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2041", [20 x i8]* %"$fail_msg__sender_2042", %String %"$tname_2043", %String %"$m_2044") - br label %"$matchsucc_2016" +"$have_gas_2016": ; preds = %"$out_of_gas_2015", %"$have_gas_2010" + %"$consume_2017" = sub i64 %"$gasrem_2013", 1 + store i64 %"$consume_2017", i64* @_gasrem, align 8 + %"$fail_msg__origin_2018" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2018", align 1 + %"$fail_msg__sender_2019" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2019", align 1 + %"$tname_2020" = load %String, %String* %tname, align 8 + %"$m_2021" = load %String, %String* %m10, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2018", [20 x i8]* %"$fail_msg__sender_2019", %String %"$tname_2020", %String %"$m_2021") + br label %"$matchsucc_1993" -"$None_2045": ; preds = %"$have_gas_2014" - %"$$c1_7_2046" = bitcast %TName_Option_String* %"$$c1_7_2017" to %CName_None_String* - br label %"$matchsucc_2016" +"$None_2022": ; preds = %"$have_gas_1991" + %"$$c1_7_2023" = bitcast %TName_Option_String* %"$$c1_7_1994" to %CName_None_String* + br label %"$matchsucc_1993" -"$empty_default_2020": ; preds = %"$have_gas_2014" - br label %"$matchsucc_2016" +"$empty_default_1997": ; preds = %"$have_gas_1991" + br label %"$matchsucc_1993" -"$matchsucc_2016": ; preds = %"$None_2045", %"$have_gas_2039", %"$empty_default_2020" - %"$gasrem_2047" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2048" = icmp ugt i64 1, %"$gasrem_2047" - br i1 %"$gascmp_2048", label %"$out_of_gas_2049", label %"$have_gas_2050" +"$matchsucc_1993": ; preds = %"$None_2022", %"$have_gas_2016", %"$empty_default_1997" + %"$gasrem_2024" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2025" = icmp ugt i64 1, %"$gasrem_2024" + br i1 %"$gascmp_2025", label %"$out_of_gas_2026", label %"$have_gas_2027" -"$out_of_gas_2049": ; preds = %"$matchsucc_2016" +"$out_of_gas_2026": ; preds = %"$matchsucc_1993" call void @_out_of_gas() - br label %"$have_gas_2050" + br label %"$have_gas_2027" -"$have_gas_2050": ; preds = %"$out_of_gas_2049", %"$matchsucc_2016" - %"$consume_2051" = sub i64 %"$gasrem_2047", 1 - store i64 %"$consume_2051", i64* @_gasrem, align 8 +"$have_gas_2027": ; preds = %"$out_of_gas_2026", %"$matchsucc_1993" + %"$consume_2028" = sub i64 %"$gasrem_2024", 1 + store i64 %"$consume_2028", i64* @_gasrem, align 8 %"$key1b_8" = alloca %String, align 8 - %"$gasrem_2052" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2053" = icmp ugt i64 1, %"$gasrem_2052" - br i1 %"$gascmp_2053", label %"$out_of_gas_2054", label %"$have_gas_2055" + %"$gasrem_2029" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2030" = icmp ugt i64 1, %"$gasrem_2029" + br i1 %"$gascmp_2030", label %"$out_of_gas_2031", label %"$have_gas_2032" -"$out_of_gas_2054": ; preds = %"$have_gas_2050" +"$out_of_gas_2031": ; preds = %"$have_gas_2027" call void @_out_of_gas() - br label %"$have_gas_2055" + br label %"$have_gas_2032" -"$have_gas_2055": ; preds = %"$out_of_gas_2054", %"$have_gas_2050" - %"$consume_2056" = sub i64 %"$gasrem_2052", 1 - store i64 %"$consume_2056", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2057", i32 0, i32 0), i32 5 }, %String* %"$key1b_8", align 8 - %"$gasrem_2058" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2059" = icmp ugt i64 1, %"$gasrem_2058" - br i1 %"$gascmp_2059", label %"$out_of_gas_2060", label %"$have_gas_2061" +"$have_gas_2032": ; preds = %"$out_of_gas_2031", %"$have_gas_2027" + %"$consume_2033" = sub i64 %"$gasrem_2029", 1 + store i64 %"$consume_2033", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2034", i32 0, i32 0), i32 5 }, %String* %"$key1b_8", align 8 + %"$gasrem_2035" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2036" = icmp ugt i64 1, %"$gasrem_2035" + br i1 %"$gascmp_2036", label %"$out_of_gas_2037", label %"$have_gas_2038" -"$out_of_gas_2060": ; preds = %"$have_gas_2055" +"$out_of_gas_2037": ; preds = %"$have_gas_2032" call void @_out_of_gas() - br label %"$have_gas_2061" + br label %"$have_gas_2038" -"$have_gas_2061": ; preds = %"$out_of_gas_2060", %"$have_gas_2055" - %"$consume_2062" = sub i64 %"$gasrem_2058", 1 - store i64 %"$consume_2062", i64* @_gasrem, align 8 +"$have_gas_2038": ; preds = %"$out_of_gas_2037", %"$have_gas_2032" + %"$consume_2039" = sub i64 %"$gasrem_2035", 1 + store i64 %"$consume_2039", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_2063" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2064" = icmp ugt i64 1, %"$gasrem_2063" - br i1 %"$gascmp_2064", label %"$out_of_gas_2065", label %"$have_gas_2066" + %"$gasrem_2040" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2041" = icmp ugt i64 1, %"$gasrem_2040" + br i1 %"$gascmp_2041", label %"$out_of_gas_2042", label %"$have_gas_2043" -"$out_of_gas_2065": ; preds = %"$have_gas_2061" +"$out_of_gas_2042": ; preds = %"$have_gas_2038" call void @_out_of_gas() - br label %"$have_gas_2066" + br label %"$have_gas_2043" -"$have_gas_2066": ; preds = %"$out_of_gas_2065", %"$have_gas_2061" - %"$consume_2067" = sub i64 %"$gasrem_2063", 1 - store i64 %"$consume_2067", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2068", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 - %"$gasrem_2069" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2070" = icmp ugt i64 1, %"$gasrem_2069" - br i1 %"$gascmp_2070", label %"$out_of_gas_2071", label %"$have_gas_2072" +"$have_gas_2043": ; preds = %"$out_of_gas_2042", %"$have_gas_2038" + %"$consume_2044" = sub i64 %"$gasrem_2040", 1 + store i64 %"$consume_2044", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2045", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 + %"$gasrem_2046" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2047" = icmp ugt i64 1, %"$gasrem_2046" + br i1 %"$gascmp_2047", label %"$out_of_gas_2048", label %"$have_gas_2049" -"$out_of_gas_2071": ; preds = %"$have_gas_2066" +"$out_of_gas_2048": ; preds = %"$have_gas_2043" call void @_out_of_gas() - br label %"$have_gas_2072" + br label %"$have_gas_2049" -"$have_gas_2072": ; preds = %"$out_of_gas_2071", %"$have_gas_2066" - %"$consume_2073" = sub i64 %"$gasrem_2069", 1 - store i64 %"$consume_2073", i64* @_gasrem, align 8 +"$have_gas_2049": ; preds = %"$out_of_gas_2048", %"$have_gas_2043" + %"$consume_2050" = sub i64 %"$gasrem_2046", 1 + store i64 %"$consume_2050", i64* @_gasrem, align 8 %s = alloca %String, align 8 - %"$gasrem_2074" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2075" = icmp ugt i64 1, %"$gasrem_2074" - br i1 %"$gascmp_2075", label %"$out_of_gas_2076", label %"$have_gas_2077" - -"$out_of_gas_2076": ; preds = %"$have_gas_2072" - call void @_out_of_gas() - br label %"$have_gas_2077" - -"$have_gas_2077": ; preds = %"$out_of_gas_2076", %"$have_gas_2072" - %"$consume_2078" = sub i64 %"$gasrem_2074", 1 - store i64 %"$consume_2078", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2079", i32 0, i32 0), i32 3 }, %String* %s, align 8 - %"$_literal_cost_s_2080" = alloca %String, align 8 - %"$s_2081" = load %String, %String* %s, align 8 - store %String %"$s_2081", %String* %"$_literal_cost_s_2080", align 8 - %"$$_literal_cost_s_2080_2082" = bitcast %String* %"$_literal_cost_s_2080" to i8* - %"$_literal_cost_call_2083" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_s_2080_2082") - %"$gasadd_2084" = add i64 %"$_literal_cost_call_2083", 2 - %"$gasrem_2085" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2086" = icmp ugt i64 %"$gasadd_2084", %"$gasrem_2085" - br i1 %"$gascmp_2086", label %"$out_of_gas_2087", label %"$have_gas_2088" - -"$out_of_gas_2087": ; preds = %"$have_gas_2077" - call void @_out_of_gas() - br label %"$have_gas_2088" - -"$have_gas_2088": ; preds = %"$out_of_gas_2087", %"$have_gas_2077" - %"$consume_2089" = sub i64 %"$gasrem_2085", %"$gasadd_2084" - store i64 %"$consume_2089", i64* @_gasrem, align 8 - %"$indices_buf_2090_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2090_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2090_salloc_load", i64 32) - %"$indices_buf_2090_salloc" = bitcast i8* %"$indices_buf_2090_salloc_salloc" to [32 x i8]* - %"$indices_buf_2090" = bitcast [32 x i8]* %"$indices_buf_2090_salloc" to i8* - %"$$key1b_8_2091" = load %String, %String* %"$key1b_8", align 8 - %"$indices_gep_2092" = getelementptr i8, i8* %"$indices_buf_2090", i32 0 - %indices_cast11 = bitcast i8* %"$indices_gep_2092" to %String* - store %String %"$$key1b_8_2091", %String* %indices_cast11, align 8 - %"$key2c_2093" = load %String, %String* %key2c, align 8 - %"$indices_gep_2094" = getelementptr i8, i8* %"$indices_buf_2090", i32 16 - %indices_cast12 = bitcast i8* %"$indices_gep_2094" to %String* - store %String %"$key2c_2093", %String* %indices_cast12, align 8 - %"$execptr_load_2095" = load i8*, i8** @_execptr, align 8 - %"$s_2097" = load %String, %String* %s, align 8 - %"$update_value_2098" = alloca %String, align 8 - store %String %"$s_2097", %String* %"$update_value_2098", align 8 - %"$update_value_2099" = bitcast %String* %"$update_value_2098" to i8* - call void @_update_field(i8* %"$execptr_load_2095", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2096", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_2090", i8* %"$update_value_2099") + %"$gasrem_2051" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2052" = icmp ugt i64 1, %"$gasrem_2051" + br i1 %"$gascmp_2052", label %"$out_of_gas_2053", label %"$have_gas_2054" + +"$out_of_gas_2053": ; preds = %"$have_gas_2049" + call void @_out_of_gas() + br label %"$have_gas_2054" + +"$have_gas_2054": ; preds = %"$out_of_gas_2053", %"$have_gas_2049" + %"$consume_2055" = sub i64 %"$gasrem_2051", 1 + store i64 %"$consume_2055", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2056", i32 0, i32 0), i32 3 }, %String* %s, align 8 + %"$_literal_cost_s_2057" = alloca %String, align 8 + %"$s_2058" = load %String, %String* %s, align 8 + store %String %"$s_2058", %String* %"$_literal_cost_s_2057", align 8 + %"$$_literal_cost_s_2057_2059" = bitcast %String* %"$_literal_cost_s_2057" to i8* + %"$_literal_cost_call_2060" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_s_2057_2059") + %"$gasadd_2061" = add i64 %"$_literal_cost_call_2060", 2 + %"$gasrem_2062" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2063" = icmp ugt i64 %"$gasadd_2061", %"$gasrem_2062" + br i1 %"$gascmp_2063", label %"$out_of_gas_2064", label %"$have_gas_2065" + +"$out_of_gas_2064": ; preds = %"$have_gas_2054" + call void @_out_of_gas() + br label %"$have_gas_2065" + +"$have_gas_2065": ; preds = %"$out_of_gas_2064", %"$have_gas_2054" + %"$consume_2066" = sub i64 %"$gasrem_2062", %"$gasadd_2061" + store i64 %"$consume_2066", i64* @_gasrem, align 8 + %"$indices_buf_2067_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2067_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2067_salloc_load", i64 32) + %"$indices_buf_2067_salloc" = bitcast i8* %"$indices_buf_2067_salloc_salloc" to [32 x i8]* + %"$indices_buf_2067" = bitcast [32 x i8]* %"$indices_buf_2067_salloc" to i8* + %"$$key1b_8_2068" = load %String, %String* %"$key1b_8", align 8 + %"$indices_gep_2069" = getelementptr i8, i8* %"$indices_buf_2067", i32 0 + %indices_cast11 = bitcast i8* %"$indices_gep_2069" to %String* + store %String %"$$key1b_8_2068", %String* %indices_cast11, align 8 + %"$key2c_2070" = load %String, %String* %key2c, align 8 + %"$indices_gep_2071" = getelementptr i8, i8* %"$indices_buf_2067", i32 16 + %indices_cast12 = bitcast i8* %"$indices_gep_2071" to %String* + store %String %"$key2c_2070", %String* %indices_cast12, align 8 + %"$execptr_load_2072" = load i8*, i8** @_execptr, align 8 + %"$s_2074" = load %String, %String* %s, align 8 + %"$update_value_2075" = alloca %String, align 8 + store %String %"$s_2074", %String* %"$update_value_2075", align 8 + %"$update_value_2076" = bitcast %String* %"$update_value_2075" to i8* + call void @_update_field(i8* %"$execptr_load_2072", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2073", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_2067", i8* %"$update_value_2076") ret void } define void @t7(i8* %0) { entry: - %"$_amount_2101" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2102" = bitcast i8* %"$_amount_2101" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2102", align 8 - %"$_origin_2103" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2104" = bitcast i8* %"$_origin_2103" to [20 x i8]* - %"$_sender_2105" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2106" = bitcast i8* %"$_sender_2105" to [20 x i8]* - call void @"$t7_1669"(%Uint128 %_amount, [20 x i8]* %"$_origin_2104", [20 x i8]* %"$_sender_2106") + %"$_amount_2078" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2079" = bitcast i8* %"$_amount_2078" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2079", align 8 + %"$_origin_2080" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2081" = bitcast i8* %"$_origin_2080" to [20 x i8]* + %"$_sender_2082" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2083" = bitcast i8* %"$_sender_2082" to [20 x i8]* + call void @"$t7_1646"(%Uint128 %_amount, [20 x i8]* %"$_origin_2081", [20 x i8]* %"$_sender_2083") ret void } -define internal void @"$t8_2107"(%Uint128 %_amount, [20 x i8]* %"$_origin_2108", [20 x i8]* %"$_sender_2109") { +define internal void @"$t8_2084"(%Uint128 %_amount, [20 x i8]* %"$_origin_2085", [20 x i8]* %"$_sender_2086") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2108", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2109", align 1 - %"$gasrem_2110" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2111" = icmp ugt i64 1, %"$gasrem_2110" - br i1 %"$gascmp_2111", label %"$out_of_gas_2112", label %"$have_gas_2113" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2085", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2086", align 1 + %"$gasrem_2087" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2088" = icmp ugt i64 1, %"$gasrem_2087" + br i1 %"$gascmp_2088", label %"$out_of_gas_2089", label %"$have_gas_2090" -"$out_of_gas_2112": ; preds = %entry +"$out_of_gas_2089": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2113" + br label %"$have_gas_2090" -"$have_gas_2113": ; preds = %"$out_of_gas_2112", %entry - %"$consume_2114" = sub i64 %"$gasrem_2110", 1 - store i64 %"$consume_2114", i64* @_gasrem, align 8 +"$have_gas_2090": ; preds = %"$out_of_gas_2089", %entry + %"$consume_2091" = sub i64 %"$gasrem_2087", 1 + store i64 %"$consume_2091", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_2115" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2116" = icmp ugt i64 1, %"$gasrem_2115" - br i1 %"$gascmp_2116", label %"$out_of_gas_2117", label %"$have_gas_2118" + %"$gasrem_2092" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2093" = icmp ugt i64 1, %"$gasrem_2092" + br i1 %"$gascmp_2093", label %"$out_of_gas_2094", label %"$have_gas_2095" -"$out_of_gas_2117": ; preds = %"$have_gas_2113" +"$out_of_gas_2094": ; preds = %"$have_gas_2090" call void @_out_of_gas() - br label %"$have_gas_2118" + br label %"$have_gas_2095" -"$have_gas_2118": ; preds = %"$out_of_gas_2117", %"$have_gas_2113" - %"$consume_2119" = sub i64 %"$gasrem_2115", 1 - store i64 %"$consume_2119", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_2120", i32 0, i32 0), i32 2 }, %String* %tname, align 8 - %"$gasrem_2121" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2122" = icmp ugt i64 1, %"$gasrem_2121" - br i1 %"$gascmp_2122", label %"$out_of_gas_2123", label %"$have_gas_2124" +"$have_gas_2095": ; preds = %"$out_of_gas_2094", %"$have_gas_2090" + %"$consume_2096" = sub i64 %"$gasrem_2092", 1 + store i64 %"$consume_2096", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_2097", i32 0, i32 0), i32 2 }, %String* %tname, align 8 + %"$gasrem_2098" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2099" = icmp ugt i64 1, %"$gasrem_2098" + br i1 %"$gascmp_2099", label %"$out_of_gas_2100", label %"$have_gas_2101" -"$out_of_gas_2123": ; preds = %"$have_gas_2118" +"$out_of_gas_2100": ; preds = %"$have_gas_2095" call void @_out_of_gas() - br label %"$have_gas_2124" + br label %"$have_gas_2101" -"$have_gas_2124": ; preds = %"$out_of_gas_2123", %"$have_gas_2118" - %"$consume_2125" = sub i64 %"$gasrem_2121", 1 - store i64 %"$consume_2125", i64* @_gasrem, align 8 +"$have_gas_2101": ; preds = %"$out_of_gas_2100", %"$have_gas_2095" + %"$consume_2102" = sub i64 %"$gasrem_2098", 1 + store i64 %"$consume_2102", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_2126" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2127" = icmp ugt i64 1, %"$gasrem_2126" - br i1 %"$gascmp_2127", label %"$out_of_gas_2128", label %"$have_gas_2129" + %"$gasrem_2103" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2104" = icmp ugt i64 1, %"$gasrem_2103" + br i1 %"$gascmp_2104", label %"$out_of_gas_2105", label %"$have_gas_2106" -"$out_of_gas_2128": ; preds = %"$have_gas_2124" +"$out_of_gas_2105": ; preds = %"$have_gas_2101" call void @_out_of_gas() - br label %"$have_gas_2129" + br label %"$have_gas_2106" -"$have_gas_2129": ; preds = %"$out_of_gas_2128", %"$have_gas_2124" - %"$consume_2130" = sub i64 %"$gasrem_2126", 1 - store i64 %"$consume_2130", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2131", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 - %"$gasrem_2132" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2133" = icmp ugt i64 1, %"$gasrem_2132" - br i1 %"$gascmp_2133", label %"$out_of_gas_2134", label %"$have_gas_2135" +"$have_gas_2106": ; preds = %"$out_of_gas_2105", %"$have_gas_2101" + %"$consume_2107" = sub i64 %"$gasrem_2103", 1 + store i64 %"$consume_2107", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2108", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 + %"$gasrem_2109" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2110" = icmp ugt i64 1, %"$gasrem_2109" + br i1 %"$gascmp_2110", label %"$out_of_gas_2111", label %"$have_gas_2112" -"$out_of_gas_2134": ; preds = %"$have_gas_2129" +"$out_of_gas_2111": ; preds = %"$have_gas_2106" call void @_out_of_gas() - br label %"$have_gas_2135" + br label %"$have_gas_2112" -"$have_gas_2135": ; preds = %"$out_of_gas_2134", %"$have_gas_2129" - %"$consume_2136" = sub i64 %"$gasrem_2132", 1 - store i64 %"$consume_2136", i64* @_gasrem, align 8 +"$have_gas_2112": ; preds = %"$out_of_gas_2111", %"$have_gas_2106" + %"$consume_2113" = sub i64 %"$gasrem_2109", 1 + store i64 %"$consume_2113", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_2137" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2138" = icmp ugt i64 1, %"$gasrem_2137" - br i1 %"$gascmp_2138", label %"$out_of_gas_2139", label %"$have_gas_2140" + %"$gasrem_2114" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2115" = icmp ugt i64 1, %"$gasrem_2114" + br i1 %"$gascmp_2115", label %"$out_of_gas_2116", label %"$have_gas_2117" -"$out_of_gas_2139": ; preds = %"$have_gas_2135" +"$out_of_gas_2116": ; preds = %"$have_gas_2112" call void @_out_of_gas() - br label %"$have_gas_2140" + br label %"$have_gas_2117" -"$have_gas_2140": ; preds = %"$out_of_gas_2139", %"$have_gas_2135" - %"$consume_2141" = sub i64 %"$gasrem_2137", 1 - store i64 %"$consume_2141", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2142", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 +"$have_gas_2117": ; preds = %"$out_of_gas_2116", %"$have_gas_2112" + %"$consume_2118" = sub i64 %"$gasrem_2114", 1 + store i64 %"$consume_2118", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2119", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 %c1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_2143_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2143_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2143_salloc_load", i64 32) - %"$indices_buf_2143_salloc" = bitcast i8* %"$indices_buf_2143_salloc_salloc" to [32 x i8]* - %"$indices_buf_2143" = bitcast [32 x i8]* %"$indices_buf_2143_salloc" to i8* - %"$key1a_2144" = load %String, %String* %key1a, align 8 - %"$indices_gep_2145" = getelementptr i8, i8* %"$indices_buf_2143", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_2145" to %String* - store %String %"$key1a_2144", %String* %indices_cast, align 8 - %"$key2a_2146" = load %String, %String* %key2a, align 8 - %"$indices_gep_2147" = getelementptr i8, i8* %"$indices_buf_2143", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_2147" to %String* - store %String %"$key2a_2146", %String* %indices_cast1, align 8 - %"$execptr_load_2149" = load i8*, i8** @_execptr, align 8 - %"$c1_call_2150" = call i8* @_fetch_field(i8* %"$execptr_load_2149", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2148", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_2143", i32 1) - %"$c1_2151" = bitcast i8* %"$c1_call_2150" to %TName_Option_String* - store %TName_Option_String* %"$c1_2151", %TName_Option_String** %c1, align 8 - %"$c1_2152" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$$c1_2152_2153" = bitcast %TName_Option_String* %"$c1_2152" to i8* - %"$_literal_cost_call_2154" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$c1_2152_2153") - %"$gasadd_2155" = add i64 %"$_literal_cost_call_2154", 0 - %"$gasadd_2156" = add i64 %"$gasadd_2155", 2 - %"$gasrem_2157" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2158" = icmp ugt i64 %"$gasadd_2156", %"$gasrem_2157" - br i1 %"$gascmp_2158", label %"$out_of_gas_2159", label %"$have_gas_2160" - -"$out_of_gas_2159": ; preds = %"$have_gas_2140" - call void @_out_of_gas() - br label %"$have_gas_2160" - -"$have_gas_2160": ; preds = %"$out_of_gas_2159", %"$have_gas_2140" - %"$consume_2161" = sub i64 %"$gasrem_2157", %"$gasadd_2156" - store i64 %"$consume_2161", i64* @_gasrem, align 8 - %"$gasrem_2162" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2163" = icmp ugt i64 2, %"$gasrem_2162" - br i1 %"$gascmp_2163", label %"$out_of_gas_2164", label %"$have_gas_2165" - -"$out_of_gas_2164": ; preds = %"$have_gas_2160" - call void @_out_of_gas() - br label %"$have_gas_2165" - -"$have_gas_2165": ; preds = %"$out_of_gas_2164", %"$have_gas_2160" - %"$consume_2166" = sub i64 %"$gasrem_2162", 2 - store i64 %"$consume_2166", i64* @_gasrem, align 8 - %"$c1_2168" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_2169" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2168", i32 0, i32 0 - %"$c1_tag_2170" = load i8, i8* %"$c1_tag_2169", align 1 - switch i8 %"$c1_tag_2170", label %"$empty_default_2171" [ - i8 0, label %"$Some_2172" - i8 1, label %"$None_2245" + %"$indices_buf_2120_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2120_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2120_salloc_load", i64 32) + %"$indices_buf_2120_salloc" = bitcast i8* %"$indices_buf_2120_salloc_salloc" to [32 x i8]* + %"$indices_buf_2120" = bitcast [32 x i8]* %"$indices_buf_2120_salloc" to i8* + %"$key1a_2121" = load %String, %String* %key1a, align 8 + %"$indices_gep_2122" = getelementptr i8, i8* %"$indices_buf_2120", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2122" to %String* + store %String %"$key1a_2121", %String* %indices_cast, align 8 + %"$key2a_2123" = load %String, %String* %key2a, align 8 + %"$indices_gep_2124" = getelementptr i8, i8* %"$indices_buf_2120", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_2124" to %String* + store %String %"$key2a_2123", %String* %indices_cast1, align 8 + %"$execptr_load_2126" = load i8*, i8** @_execptr, align 8 + %"$c1_call_2127" = call i8* @_fetch_field(i8* %"$execptr_load_2126", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2125", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_2120", i32 1) + %"$c1_2128" = bitcast i8* %"$c1_call_2127" to %TName_Option_String* + store %TName_Option_String* %"$c1_2128", %TName_Option_String** %c1, align 8 + %"$c1_2129" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$$c1_2129_2130" = bitcast %TName_Option_String* %"$c1_2129" to i8* + %"$_literal_cost_call_2131" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$c1_2129_2130") + %"$gasadd_2132" = add i64 %"$_literal_cost_call_2131", 0 + %"$gasadd_2133" = add i64 %"$gasadd_2132", 2 + %"$gasrem_2134" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2135" = icmp ugt i64 %"$gasadd_2133", %"$gasrem_2134" + br i1 %"$gascmp_2135", label %"$out_of_gas_2136", label %"$have_gas_2137" + +"$out_of_gas_2136": ; preds = %"$have_gas_2117" + call void @_out_of_gas() + br label %"$have_gas_2137" + +"$have_gas_2137": ; preds = %"$out_of_gas_2136", %"$have_gas_2117" + %"$consume_2138" = sub i64 %"$gasrem_2134", %"$gasadd_2133" + store i64 %"$consume_2138", i64* @_gasrem, align 8 + %"$gasrem_2139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2140" = icmp ugt i64 2, %"$gasrem_2139" + br i1 %"$gascmp_2140", label %"$out_of_gas_2141", label %"$have_gas_2142" + +"$out_of_gas_2141": ; preds = %"$have_gas_2137" + call void @_out_of_gas() + br label %"$have_gas_2142" + +"$have_gas_2142": ; preds = %"$out_of_gas_2141", %"$have_gas_2137" + %"$consume_2143" = sub i64 %"$gasrem_2139", 2 + store i64 %"$consume_2143", i64* @_gasrem, align 8 + %"$c1_2145" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_2146" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2145", i32 0, i32 0 + %"$c1_tag_2147" = load i8, i8* %"$c1_tag_2146", align 1 + switch i8 %"$c1_tag_2147", label %"$empty_default_2148" [ + i8 0, label %"$Some_2149" + i8 1, label %"$None_2222" ] -"$Some_2172": ; preds = %"$have_gas_2165" - %"$c1_2173" = bitcast %TName_Option_String* %"$c1_2168" to %CName_Some_String* - %"$c_gep_2174" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2173", i32 0, i32 1 - %"$c_load_2175" = load %String, %String* %"$c_gep_2174", align 8 +"$Some_2149": ; preds = %"$have_gas_2142" + %"$c1_2150" = bitcast %TName_Option_String* %"$c1_2145" to %CName_Some_String* + %"$c_gep_2151" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2150", i32 0, i32 1 + %"$c_load_2152" = load %String, %String* %"$c_gep_2151", align 8 %c = alloca %String, align 8 - store %String %"$c_load_2175", %String* %c, align 8 - %"$gasrem_2176" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2177" = icmp ugt i64 1, %"$gasrem_2176" - br i1 %"$gascmp_2177", label %"$out_of_gas_2178", label %"$have_gas_2179" + store %String %"$c_load_2152", %String* %c, align 8 + %"$gasrem_2153" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2154" = icmp ugt i64 1, %"$gasrem_2153" + br i1 %"$gascmp_2154", label %"$out_of_gas_2155", label %"$have_gas_2156" -"$out_of_gas_2178": ; preds = %"$Some_2172" +"$out_of_gas_2155": ; preds = %"$Some_2149" call void @_out_of_gas() - br label %"$have_gas_2179" + br label %"$have_gas_2156" -"$have_gas_2179": ; preds = %"$out_of_gas_2178", %"$Some_2172" - %"$consume_2180" = sub i64 %"$gasrem_2176", 1 - store i64 %"$consume_2180", i64* @_gasrem, align 8 +"$have_gas_2156": ; preds = %"$out_of_gas_2155", %"$Some_2149" + %"$consume_2157" = sub i64 %"$gasrem_2153", 1 + store i64 %"$consume_2157", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_2181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2182" = icmp ugt i64 1, %"$gasrem_2181" - br i1 %"$gascmp_2182", label %"$out_of_gas_2183", label %"$have_gas_2184" + %"$gasrem_2158" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2159" = icmp ugt i64 1, %"$gasrem_2158" + br i1 %"$gascmp_2159", label %"$out_of_gas_2160", label %"$have_gas_2161" -"$out_of_gas_2183": ; preds = %"$have_gas_2179" +"$out_of_gas_2160": ; preds = %"$have_gas_2156" call void @_out_of_gas() - br label %"$have_gas_2184" + br label %"$have_gas_2161" -"$have_gas_2184": ; preds = %"$out_of_gas_2183", %"$have_gas_2179" - %"$consume_2185" = sub i64 %"$gasrem_2181", 1 - store i64 %"$consume_2185", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2186", i32 0, i32 0), i32 3 }, %String* %v, align 8 - %"$gasrem_2187" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2188" = icmp ugt i64 1, %"$gasrem_2187" - br i1 %"$gascmp_2188", label %"$out_of_gas_2189", label %"$have_gas_2190" +"$have_gas_2161": ; preds = %"$out_of_gas_2160", %"$have_gas_2156" + %"$consume_2162" = sub i64 %"$gasrem_2158", 1 + store i64 %"$consume_2162", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2163", i32 0, i32 0), i32 3 }, %String* %v, align 8 + %"$gasrem_2164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2165" = icmp ugt i64 1, %"$gasrem_2164" + br i1 %"$gascmp_2165", label %"$out_of_gas_2166", label %"$have_gas_2167" -"$out_of_gas_2189": ; preds = %"$have_gas_2184" +"$out_of_gas_2166": ; preds = %"$have_gas_2161" call void @_out_of_gas() - br label %"$have_gas_2190" + br label %"$have_gas_2167" -"$have_gas_2190": ; preds = %"$out_of_gas_2189", %"$have_gas_2184" - %"$consume_2191" = sub i64 %"$gasrem_2187", 1 - store i64 %"$consume_2191", i64* @_gasrem, align 8 +"$have_gas_2167": ; preds = %"$out_of_gas_2166", %"$have_gas_2161" + %"$consume_2168" = sub i64 %"$gasrem_2164", 1 + store i64 %"$consume_2168", i64* @_gasrem, align 8 %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_2192" = alloca %String, align 8 - %"$c_2193" = load %String, %String* %c, align 8 - store %String %"$c_2193", %String* %"$_literal_cost_c_2192", align 8 - %"$$_literal_cost_c_2192_2194" = bitcast %String* %"$_literal_cost_c_2192" to i8* - %"$_literal_cost_call_2195" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_2192_2194") - %"$_literal_cost_v_2196" = alloca %String, align 8 - %"$v_2197" = load %String, %String* %v, align 8 - store %String %"$v_2197", %String* %"$_literal_cost_v_2196", align 8 - %"$$_literal_cost_v_2196_2198" = bitcast %String* %"$_literal_cost_v_2196" to i8* - %"$_literal_cost_call_2199" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_2196_2198") - %"$gasmin_2200" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2195", i64 %"$_literal_cost_call_2199") - %"$gasrem_2201" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2202" = icmp ugt i64 %"$gasmin_2200", %"$gasrem_2201" - br i1 %"$gascmp_2202", label %"$out_of_gas_2203", label %"$have_gas_2204" - -"$out_of_gas_2203": ; preds = %"$have_gas_2190" - call void @_out_of_gas() - br label %"$have_gas_2204" - -"$have_gas_2204": ; preds = %"$out_of_gas_2203", %"$have_gas_2190" - %"$consume_2205" = sub i64 %"$gasrem_2201", %"$gasmin_2200" - store i64 %"$consume_2205", i64* @_gasrem, align 8 - %"$execptr_load_2206" = load i8*, i8** @_execptr, align 8 - %"$c_2207" = load %String, %String* %c, align 8 - %"$v_2208" = load %String, %String* %v, align 8 - %"$eq_call_2209" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2206", %String %"$c_2207", %String %"$v_2208") - store %TName_Bool* %"$eq_call_2209", %TName_Bool** %eq, align 8 - %"$gasrem_2211" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2212" = icmp ugt i64 2, %"$gasrem_2211" - br i1 %"$gascmp_2212", label %"$out_of_gas_2213", label %"$have_gas_2214" - -"$out_of_gas_2213": ; preds = %"$have_gas_2204" - call void @_out_of_gas() - br label %"$have_gas_2214" - -"$have_gas_2214": ; preds = %"$out_of_gas_2213", %"$have_gas_2204" - %"$consume_2215" = sub i64 %"$gasrem_2211", 2 - store i64 %"$consume_2215", i64* @_gasrem, align 8 - %"$eq_2217" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_2218" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2217", i32 0, i32 0 - %"$eq_tag_2219" = load i8, i8* %"$eq_tag_2218", align 1 - switch i8 %"$eq_tag_2219", label %"$empty_default_2220" [ - i8 0, label %"$True_2221" - i8 1, label %"$False_2223" + %"$_literal_cost_c_2169" = alloca %String, align 8 + %"$c_2170" = load %String, %String* %c, align 8 + store %String %"$c_2170", %String* %"$_literal_cost_c_2169", align 8 + %"$$_literal_cost_c_2169_2171" = bitcast %String* %"$_literal_cost_c_2169" to i8* + %"$_literal_cost_call_2172" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_2169_2171") + %"$_literal_cost_v_2173" = alloca %String, align 8 + %"$v_2174" = load %String, %String* %v, align 8 + store %String %"$v_2174", %String* %"$_literal_cost_v_2173", align 8 + %"$$_literal_cost_v_2173_2175" = bitcast %String* %"$_literal_cost_v_2173" to i8* + %"$_literal_cost_call_2176" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_2173_2175") + %"$gasmin_2177" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2172", i64 %"$_literal_cost_call_2176") + %"$gasrem_2178" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2179" = icmp ugt i64 %"$gasmin_2177", %"$gasrem_2178" + br i1 %"$gascmp_2179", label %"$out_of_gas_2180", label %"$have_gas_2181" + +"$out_of_gas_2180": ; preds = %"$have_gas_2167" + call void @_out_of_gas() + br label %"$have_gas_2181" + +"$have_gas_2181": ; preds = %"$out_of_gas_2180", %"$have_gas_2167" + %"$consume_2182" = sub i64 %"$gasrem_2178", %"$gasmin_2177" + store i64 %"$consume_2182", i64* @_gasrem, align 8 + %"$execptr_load_2183" = load i8*, i8** @_execptr, align 8 + %"$c_2184" = load %String, %String* %c, align 8 + %"$v_2185" = load %String, %String* %v, align 8 + %"$eq_call_2186" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2183", %String %"$c_2184", %String %"$v_2185") + store %TName_Bool* %"$eq_call_2186", %TName_Bool** %eq, align 8 + %"$gasrem_2188" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2189" = icmp ugt i64 2, %"$gasrem_2188" + br i1 %"$gascmp_2189", label %"$out_of_gas_2190", label %"$have_gas_2191" + +"$out_of_gas_2190": ; preds = %"$have_gas_2181" + call void @_out_of_gas() + br label %"$have_gas_2191" + +"$have_gas_2191": ; preds = %"$out_of_gas_2190", %"$have_gas_2181" + %"$consume_2192" = sub i64 %"$gasrem_2188", 2 + store i64 %"$consume_2192", i64* @_gasrem, align 8 + %"$eq_2194" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_2195" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2194", i32 0, i32 0 + %"$eq_tag_2196" = load i8, i8* %"$eq_tag_2195", align 1 + switch i8 %"$eq_tag_2196", label %"$empty_default_2197" [ + i8 0, label %"$True_2198" + i8 1, label %"$False_2200" ] -"$True_2221": ; preds = %"$have_gas_2214" - %"$eq_2222" = bitcast %TName_Bool* %"$eq_2217" to %CName_True* - br label %"$matchsucc_2216" +"$True_2198": ; preds = %"$have_gas_2191" + %"$eq_2199" = bitcast %TName_Bool* %"$eq_2194" to %CName_True* + br label %"$matchsucc_2193" -"$False_2223": ; preds = %"$have_gas_2214" - %"$eq_2224" = bitcast %TName_Bool* %"$eq_2217" to %CName_False* - %"$gasrem_2225" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2226" = icmp ugt i64 1, %"$gasrem_2225" - br i1 %"$gascmp_2226", label %"$out_of_gas_2227", label %"$have_gas_2228" +"$False_2200": ; preds = %"$have_gas_2191" + %"$eq_2201" = bitcast %TName_Bool* %"$eq_2194" to %CName_False* + %"$gasrem_2202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2203" = icmp ugt i64 1, %"$gasrem_2202" + br i1 %"$gascmp_2203", label %"$out_of_gas_2204", label %"$have_gas_2205" -"$out_of_gas_2227": ; preds = %"$False_2223" +"$out_of_gas_2204": ; preds = %"$False_2200" call void @_out_of_gas() - br label %"$have_gas_2228" + br label %"$have_gas_2205" -"$have_gas_2228": ; preds = %"$out_of_gas_2227", %"$False_2223" - %"$consume_2229" = sub i64 %"$gasrem_2225", 1 - store i64 %"$consume_2229", i64* @_gasrem, align 8 +"$have_gas_2205": ; preds = %"$out_of_gas_2204", %"$False_2200" + %"$consume_2206" = sub i64 %"$gasrem_2202", 1 + store i64 %"$consume_2206", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_2230" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2231" = icmp ugt i64 1, %"$gasrem_2230" - br i1 %"$gascmp_2231", label %"$out_of_gas_2232", label %"$have_gas_2233" + %"$gasrem_2207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2208" = icmp ugt i64 1, %"$gasrem_2207" + br i1 %"$gascmp_2208", label %"$out_of_gas_2209", label %"$have_gas_2210" -"$out_of_gas_2232": ; preds = %"$have_gas_2228" +"$out_of_gas_2209": ; preds = %"$have_gas_2205" call void @_out_of_gas() - br label %"$have_gas_2233" + br label %"$have_gas_2210" -"$have_gas_2233": ; preds = %"$out_of_gas_2232", %"$have_gas_2228" - %"$consume_2234" = sub i64 %"$gasrem_2230", 1 - store i64 %"$consume_2234", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_2235", i32 0, i32 0), i32 31 }, %String* %m, align 8 - %"$gasrem_2236" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2237" = icmp ugt i64 1, %"$gasrem_2236" - br i1 %"$gascmp_2237", label %"$out_of_gas_2238", label %"$have_gas_2239" +"$have_gas_2210": ; preds = %"$out_of_gas_2209", %"$have_gas_2205" + %"$consume_2211" = sub i64 %"$gasrem_2207", 1 + store i64 %"$consume_2211", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_2212", i32 0, i32 0), i32 31 }, %String* %m, align 8 + %"$gasrem_2213" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2214" = icmp ugt i64 1, %"$gasrem_2213" + br i1 %"$gascmp_2214", label %"$out_of_gas_2215", label %"$have_gas_2216" -"$out_of_gas_2238": ; preds = %"$have_gas_2233" +"$out_of_gas_2215": ; preds = %"$have_gas_2210" call void @_out_of_gas() - br label %"$have_gas_2239" + br label %"$have_gas_2216" -"$have_gas_2239": ; preds = %"$out_of_gas_2238", %"$have_gas_2233" - %"$consume_2240" = sub i64 %"$gasrem_2236", 1 - store i64 %"$consume_2240", i64* @_gasrem, align 8 - %"$fail_msg__origin_2241" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2241", align 1 - %"$fail_msg__sender_2242" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2242", align 1 - %"$tname_2243" = load %String, %String* %tname, align 8 - %"$m_2244" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2241", [20 x i8]* %"$fail_msg__sender_2242", %String %"$tname_2243", %String %"$m_2244") - br label %"$matchsucc_2216" +"$have_gas_2216": ; preds = %"$out_of_gas_2215", %"$have_gas_2210" + %"$consume_2217" = sub i64 %"$gasrem_2213", 1 + store i64 %"$consume_2217", i64* @_gasrem, align 8 + %"$fail_msg__origin_2218" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2218", align 1 + %"$fail_msg__sender_2219" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2219", align 1 + %"$tname_2220" = load %String, %String* %tname, align 8 + %"$m_2221" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2218", [20 x i8]* %"$fail_msg__sender_2219", %String %"$tname_2220", %String %"$m_2221") + br label %"$matchsucc_2193" -"$empty_default_2220": ; preds = %"$have_gas_2214" - br label %"$matchsucc_2216" +"$empty_default_2197": ; preds = %"$have_gas_2191" + br label %"$matchsucc_2193" -"$matchsucc_2216": ; preds = %"$have_gas_2239", %"$True_2221", %"$empty_default_2220" - br label %"$matchsucc_2167" +"$matchsucc_2193": ; preds = %"$have_gas_2216", %"$True_2198", %"$empty_default_2197" + br label %"$matchsucc_2144" -"$None_2245": ; preds = %"$have_gas_2165" - %"$c1_2246" = bitcast %TName_Option_String* %"$c1_2168" to %CName_None_String* - %"$gasrem_2247" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2248" = icmp ugt i64 1, %"$gasrem_2247" - br i1 %"$gascmp_2248", label %"$out_of_gas_2249", label %"$have_gas_2250" +"$None_2222": ; preds = %"$have_gas_2142" + %"$c1_2223" = bitcast %TName_Option_String* %"$c1_2145" to %CName_None_String* + %"$gasrem_2224" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2225" = icmp ugt i64 1, %"$gasrem_2224" + br i1 %"$gascmp_2225", label %"$out_of_gas_2226", label %"$have_gas_2227" -"$out_of_gas_2249": ; preds = %"$None_2245" +"$out_of_gas_2226": ; preds = %"$None_2222" call void @_out_of_gas() - br label %"$have_gas_2250" + br label %"$have_gas_2227" -"$have_gas_2250": ; preds = %"$out_of_gas_2249", %"$None_2245" - %"$consume_2251" = sub i64 %"$gasrem_2247", 1 - store i64 %"$consume_2251", i64* @_gasrem, align 8 +"$have_gas_2227": ; preds = %"$out_of_gas_2226", %"$None_2222" + %"$consume_2228" = sub i64 %"$gasrem_2224", 1 + store i64 %"$consume_2228", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_2252" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2253" = icmp ugt i64 1, %"$gasrem_2252" - br i1 %"$gascmp_2253", label %"$out_of_gas_2254", label %"$have_gas_2255" + %"$gasrem_2229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2230" = icmp ugt i64 1, %"$gasrem_2229" + br i1 %"$gascmp_2230", label %"$out_of_gas_2231", label %"$have_gas_2232" -"$out_of_gas_2254": ; preds = %"$have_gas_2250" +"$out_of_gas_2231": ; preds = %"$have_gas_2227" call void @_out_of_gas() - br label %"$have_gas_2255" + br label %"$have_gas_2232" -"$have_gas_2255": ; preds = %"$out_of_gas_2254", %"$have_gas_2250" - %"$consume_2256" = sub i64 %"$gasrem_2252", 1 - store i64 %"$consume_2256", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2257", i32 0, i32 0), i32 21 }, %String* %m2, align 8 - %"$gasrem_2258" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2259" = icmp ugt i64 1, %"$gasrem_2258" - br i1 %"$gascmp_2259", label %"$out_of_gas_2260", label %"$have_gas_2261" +"$have_gas_2232": ; preds = %"$out_of_gas_2231", %"$have_gas_2227" + %"$consume_2233" = sub i64 %"$gasrem_2229", 1 + store i64 %"$consume_2233", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2234", i32 0, i32 0), i32 21 }, %String* %m2, align 8 + %"$gasrem_2235" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2236" = icmp ugt i64 1, %"$gasrem_2235" + br i1 %"$gascmp_2236", label %"$out_of_gas_2237", label %"$have_gas_2238" -"$out_of_gas_2260": ; preds = %"$have_gas_2255" +"$out_of_gas_2237": ; preds = %"$have_gas_2232" call void @_out_of_gas() - br label %"$have_gas_2261" + br label %"$have_gas_2238" -"$have_gas_2261": ; preds = %"$out_of_gas_2260", %"$have_gas_2255" - %"$consume_2262" = sub i64 %"$gasrem_2258", 1 - store i64 %"$consume_2262", i64* @_gasrem, align 8 - %"$fail_msg__origin_2263" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2263", align 1 - %"$fail_msg__sender_2264" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2264", align 1 - %"$tname_2265" = load %String, %String* %tname, align 8 - %"$m_2266" = load %String, %String* %m2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2263", [20 x i8]* %"$fail_msg__sender_2264", %String %"$tname_2265", %String %"$m_2266") - br label %"$matchsucc_2167" +"$have_gas_2238": ; preds = %"$out_of_gas_2237", %"$have_gas_2232" + %"$consume_2239" = sub i64 %"$gasrem_2235", 1 + store i64 %"$consume_2239", i64* @_gasrem, align 8 + %"$fail_msg__origin_2240" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2240", align 1 + %"$fail_msg__sender_2241" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2241", align 1 + %"$tname_2242" = load %String, %String* %tname, align 8 + %"$m_2243" = load %String, %String* %m2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2240", [20 x i8]* %"$fail_msg__sender_2241", %String %"$tname_2242", %String %"$m_2243") + br label %"$matchsucc_2144" -"$empty_default_2171": ; preds = %"$have_gas_2165" - br label %"$matchsucc_2167" +"$empty_default_2148": ; preds = %"$have_gas_2142" + br label %"$matchsucc_2144" -"$matchsucc_2167": ; preds = %"$have_gas_2261", %"$matchsucc_2216", %"$empty_default_2171" - %"$gasrem_2267" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2268" = icmp ugt i64 1, %"$gasrem_2267" - br i1 %"$gascmp_2268", label %"$out_of_gas_2269", label %"$have_gas_2270" +"$matchsucc_2144": ; preds = %"$have_gas_2238", %"$matchsucc_2193", %"$empty_default_2148" + %"$gasrem_2244" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2245" = icmp ugt i64 1, %"$gasrem_2244" + br i1 %"$gascmp_2245", label %"$out_of_gas_2246", label %"$have_gas_2247" -"$out_of_gas_2269": ; preds = %"$matchsucc_2167" +"$out_of_gas_2246": ; preds = %"$matchsucc_2144" call void @_out_of_gas() - br label %"$have_gas_2270" + br label %"$have_gas_2247" -"$have_gas_2270": ; preds = %"$out_of_gas_2269", %"$matchsucc_2167" - %"$consume_2271" = sub i64 %"$gasrem_2267", 1 - store i64 %"$consume_2271", i64* @_gasrem, align 8 +"$have_gas_2247": ; preds = %"$out_of_gas_2246", %"$matchsucc_2144" + %"$consume_2248" = sub i64 %"$gasrem_2244", 1 + store i64 %"$consume_2248", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_2272" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2273" = icmp ugt i64 1, %"$gasrem_2272" - br i1 %"$gascmp_2273", label %"$out_of_gas_2274", label %"$have_gas_2275" + %"$gasrem_2249" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2250" = icmp ugt i64 1, %"$gasrem_2249" + br i1 %"$gascmp_2250", label %"$out_of_gas_2251", label %"$have_gas_2252" -"$out_of_gas_2274": ; preds = %"$have_gas_2270" +"$out_of_gas_2251": ; preds = %"$have_gas_2247" call void @_out_of_gas() - br label %"$have_gas_2275" + br label %"$have_gas_2252" -"$have_gas_2275": ; preds = %"$out_of_gas_2274", %"$have_gas_2270" - %"$consume_2276" = sub i64 %"$gasrem_2272", 1 - store i64 %"$consume_2276", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2277", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 - %"$gasrem_2278" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2279" = icmp ugt i64 1, %"$gasrem_2278" - br i1 %"$gascmp_2279", label %"$out_of_gas_2280", label %"$have_gas_2281" +"$have_gas_2252": ; preds = %"$out_of_gas_2251", %"$have_gas_2247" + %"$consume_2253" = sub i64 %"$gasrem_2249", 1 + store i64 %"$consume_2253", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2254", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 + %"$gasrem_2255" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2256" = icmp ugt i64 1, %"$gasrem_2255" + br i1 %"$gascmp_2256", label %"$out_of_gas_2257", label %"$have_gas_2258" -"$out_of_gas_2280": ; preds = %"$have_gas_2275" +"$out_of_gas_2257": ; preds = %"$have_gas_2252" call void @_out_of_gas() - br label %"$have_gas_2281" + br label %"$have_gas_2258" -"$have_gas_2281": ; preds = %"$out_of_gas_2280", %"$have_gas_2275" - %"$consume_2282" = sub i64 %"$gasrem_2278", 1 - store i64 %"$consume_2282", i64* @_gasrem, align 8 +"$have_gas_2258": ; preds = %"$out_of_gas_2257", %"$have_gas_2252" + %"$consume_2259" = sub i64 %"$gasrem_2255", 1 + store i64 %"$consume_2259", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_2283" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2284" = icmp ugt i64 1, %"$gasrem_2283" - br i1 %"$gascmp_2284", label %"$out_of_gas_2285", label %"$have_gas_2286" + %"$gasrem_2260" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2261" = icmp ugt i64 1, %"$gasrem_2260" + br i1 %"$gascmp_2261", label %"$out_of_gas_2262", label %"$have_gas_2263" -"$out_of_gas_2285": ; preds = %"$have_gas_2281" +"$out_of_gas_2262": ; preds = %"$have_gas_2258" call void @_out_of_gas() - br label %"$have_gas_2286" + br label %"$have_gas_2263" -"$have_gas_2286": ; preds = %"$out_of_gas_2285", %"$have_gas_2281" - %"$consume_2287" = sub i64 %"$gasrem_2283", 1 - store i64 %"$consume_2287", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2288", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 +"$have_gas_2263": ; preds = %"$out_of_gas_2262", %"$have_gas_2258" + %"$consume_2264" = sub i64 %"$gasrem_2260", 1 + store i64 %"$consume_2264", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2265", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 %"$c1_9" = alloca %TName_Option_String*, align 8 - %"$indices_buf_2289_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2289_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2289_salloc_load", i64 32) - %"$indices_buf_2289_salloc" = bitcast i8* %"$indices_buf_2289_salloc_salloc" to [32 x i8]* - %"$indices_buf_2289" = bitcast [32 x i8]* %"$indices_buf_2289_salloc" to i8* - %"$key1b_2290" = load %String, %String* %key1b, align 8 - %"$indices_gep_2291" = getelementptr i8, i8* %"$indices_buf_2289", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_2291" to %String* - store %String %"$key1b_2290", %String* %indices_cast3, align 8 - %"$key2c_2292" = load %String, %String* %key2c, align 8 - %"$indices_gep_2293" = getelementptr i8, i8* %"$indices_buf_2289", i32 16 - %indices_cast4 = bitcast i8* %"$indices_gep_2293" to %String* - store %String %"$key2c_2292", %String* %indices_cast4, align 8 - %"$execptr_load_2295" = load i8*, i8** @_execptr, align 8 - %"$$c1_9_call_2296" = call i8* @_fetch_field(i8* %"$execptr_load_2295", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2294", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_2289", i32 1) - %"$$c1_9_2297" = bitcast i8* %"$$c1_9_call_2296" to %TName_Option_String* - store %TName_Option_String* %"$$c1_9_2297", %TName_Option_String** %"$c1_9", align 8 - %"$$c1_9_2298" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 - %"$$$c1_9_2298_2299" = bitcast %TName_Option_String* %"$$c1_9_2298" to i8* - %"$_literal_cost_call_2300" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$$c1_9_2298_2299") - %"$gasadd_2301" = add i64 %"$_literal_cost_call_2300", 0 - %"$gasadd_2302" = add i64 %"$gasadd_2301", 2 - %"$gasrem_2303" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2304" = icmp ugt i64 %"$gasadd_2302", %"$gasrem_2303" - br i1 %"$gascmp_2304", label %"$out_of_gas_2305", label %"$have_gas_2306" - -"$out_of_gas_2305": ; preds = %"$have_gas_2286" - call void @_out_of_gas() - br label %"$have_gas_2306" - -"$have_gas_2306": ; preds = %"$out_of_gas_2305", %"$have_gas_2286" - %"$consume_2307" = sub i64 %"$gasrem_2303", %"$gasadd_2302" - store i64 %"$consume_2307", i64* @_gasrem, align 8 - %"$gasrem_2308" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2309" = icmp ugt i64 2, %"$gasrem_2308" - br i1 %"$gascmp_2309", label %"$out_of_gas_2310", label %"$have_gas_2311" - -"$out_of_gas_2310": ; preds = %"$have_gas_2306" - call void @_out_of_gas() - br label %"$have_gas_2311" - -"$have_gas_2311": ; preds = %"$out_of_gas_2310", %"$have_gas_2306" - %"$consume_2312" = sub i64 %"$gasrem_2308", 2 - store i64 %"$consume_2312", i64* @_gasrem, align 8 - %"$$c1_9_2314" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 - %"$$c1_9_tag_2315" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_9_2314", i32 0, i32 0 - %"$$c1_9_tag_2316" = load i8, i8* %"$$c1_9_tag_2315", align 1 - switch i8 %"$$c1_9_tag_2316", label %"$empty_default_2317" [ - i8 0, label %"$Some_2318" - i8 1, label %"$None_2391" + %"$indices_buf_2266_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2266_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2266_salloc_load", i64 32) + %"$indices_buf_2266_salloc" = bitcast i8* %"$indices_buf_2266_salloc_salloc" to [32 x i8]* + %"$indices_buf_2266" = bitcast [32 x i8]* %"$indices_buf_2266_salloc" to i8* + %"$key1b_2267" = load %String, %String* %key1b, align 8 + %"$indices_gep_2268" = getelementptr i8, i8* %"$indices_buf_2266", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_2268" to %String* + store %String %"$key1b_2267", %String* %indices_cast3, align 8 + %"$key2c_2269" = load %String, %String* %key2c, align 8 + %"$indices_gep_2270" = getelementptr i8, i8* %"$indices_buf_2266", i32 16 + %indices_cast4 = bitcast i8* %"$indices_gep_2270" to %String* + store %String %"$key2c_2269", %String* %indices_cast4, align 8 + %"$execptr_load_2272" = load i8*, i8** @_execptr, align 8 + %"$$c1_9_call_2273" = call i8* @_fetch_field(i8* %"$execptr_load_2272", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2271", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_2266", i32 1) + %"$$c1_9_2274" = bitcast i8* %"$$c1_9_call_2273" to %TName_Option_String* + store %TName_Option_String* %"$$c1_9_2274", %TName_Option_String** %"$c1_9", align 8 + %"$$c1_9_2275" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 + %"$$$c1_9_2275_2276" = bitcast %TName_Option_String* %"$$c1_9_2275" to i8* + %"$_literal_cost_call_2277" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$$c1_9_2275_2276") + %"$gasadd_2278" = add i64 %"$_literal_cost_call_2277", 0 + %"$gasadd_2279" = add i64 %"$gasadd_2278", 2 + %"$gasrem_2280" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2281" = icmp ugt i64 %"$gasadd_2279", %"$gasrem_2280" + br i1 %"$gascmp_2281", label %"$out_of_gas_2282", label %"$have_gas_2283" + +"$out_of_gas_2282": ; preds = %"$have_gas_2263" + call void @_out_of_gas() + br label %"$have_gas_2283" + +"$have_gas_2283": ; preds = %"$out_of_gas_2282", %"$have_gas_2263" + %"$consume_2284" = sub i64 %"$gasrem_2280", %"$gasadd_2279" + store i64 %"$consume_2284", i64* @_gasrem, align 8 + %"$gasrem_2285" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2286" = icmp ugt i64 2, %"$gasrem_2285" + br i1 %"$gascmp_2286", label %"$out_of_gas_2287", label %"$have_gas_2288" + +"$out_of_gas_2287": ; preds = %"$have_gas_2283" + call void @_out_of_gas() + br label %"$have_gas_2288" + +"$have_gas_2288": ; preds = %"$out_of_gas_2287", %"$have_gas_2283" + %"$consume_2289" = sub i64 %"$gasrem_2285", 2 + store i64 %"$consume_2289", i64* @_gasrem, align 8 + %"$$c1_9_2291" = load %TName_Option_String*, %TName_Option_String** %"$c1_9", align 8 + %"$$c1_9_tag_2292" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$$c1_9_2291", i32 0, i32 0 + %"$$c1_9_tag_2293" = load i8, i8* %"$$c1_9_tag_2292", align 1 + switch i8 %"$$c1_9_tag_2293", label %"$empty_default_2294" [ + i8 0, label %"$Some_2295" + i8 1, label %"$None_2368" ] -"$Some_2318": ; preds = %"$have_gas_2311" - %"$$c1_9_2319" = bitcast %TName_Option_String* %"$$c1_9_2314" to %CName_Some_String* - %"$c_gep_2320" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_9_2319", i32 0, i32 1 - %"$c_load_2321" = load %String, %String* %"$c_gep_2320", align 8 +"$Some_2295": ; preds = %"$have_gas_2288" + %"$$c1_9_2296" = bitcast %TName_Option_String* %"$$c1_9_2291" to %CName_Some_String* + %"$c_gep_2297" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$$c1_9_2296", i32 0, i32 1 + %"$c_load_2298" = load %String, %String* %"$c_gep_2297", align 8 %c5 = alloca %String, align 8 - store %String %"$c_load_2321", %String* %c5, align 8 - %"$gasrem_2322" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2323" = icmp ugt i64 1, %"$gasrem_2322" - br i1 %"$gascmp_2323", label %"$out_of_gas_2324", label %"$have_gas_2325" + store %String %"$c_load_2298", %String* %c5, align 8 + %"$gasrem_2299" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2300" = icmp ugt i64 1, %"$gasrem_2299" + br i1 %"$gascmp_2300", label %"$out_of_gas_2301", label %"$have_gas_2302" -"$out_of_gas_2324": ; preds = %"$Some_2318" +"$out_of_gas_2301": ; preds = %"$Some_2295" call void @_out_of_gas() - br label %"$have_gas_2325" + br label %"$have_gas_2302" -"$have_gas_2325": ; preds = %"$out_of_gas_2324", %"$Some_2318" - %"$consume_2326" = sub i64 %"$gasrem_2322", 1 - store i64 %"$consume_2326", i64* @_gasrem, align 8 +"$have_gas_2302": ; preds = %"$out_of_gas_2301", %"$Some_2295" + %"$consume_2303" = sub i64 %"$gasrem_2299", 1 + store i64 %"$consume_2303", i64* @_gasrem, align 8 %v6 = alloca %String, align 8 - %"$gasrem_2327" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2328" = icmp ugt i64 1, %"$gasrem_2327" - br i1 %"$gascmp_2328", label %"$out_of_gas_2329", label %"$have_gas_2330" + %"$gasrem_2304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2305" = icmp ugt i64 1, %"$gasrem_2304" + br i1 %"$gascmp_2305", label %"$out_of_gas_2306", label %"$have_gas_2307" -"$out_of_gas_2329": ; preds = %"$have_gas_2325" +"$out_of_gas_2306": ; preds = %"$have_gas_2302" call void @_out_of_gas() - br label %"$have_gas_2330" + br label %"$have_gas_2307" -"$have_gas_2330": ; preds = %"$out_of_gas_2329", %"$have_gas_2325" - %"$consume_2331" = sub i64 %"$gasrem_2327", 1 - store i64 %"$consume_2331", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2332", i32 0, i32 0), i32 3 }, %String* %v6, align 8 - %"$gasrem_2333" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2334" = icmp ugt i64 1, %"$gasrem_2333" - br i1 %"$gascmp_2334", label %"$out_of_gas_2335", label %"$have_gas_2336" +"$have_gas_2307": ; preds = %"$out_of_gas_2306", %"$have_gas_2302" + %"$consume_2308" = sub i64 %"$gasrem_2304", 1 + store i64 %"$consume_2308", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2309", i32 0, i32 0), i32 3 }, %String* %v6, align 8 + %"$gasrem_2310" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2311" = icmp ugt i64 1, %"$gasrem_2310" + br i1 %"$gascmp_2311", label %"$out_of_gas_2312", label %"$have_gas_2313" -"$out_of_gas_2335": ; preds = %"$have_gas_2330" +"$out_of_gas_2312": ; preds = %"$have_gas_2307" call void @_out_of_gas() - br label %"$have_gas_2336" + br label %"$have_gas_2313" -"$have_gas_2336": ; preds = %"$out_of_gas_2335", %"$have_gas_2330" - %"$consume_2337" = sub i64 %"$gasrem_2333", 1 - store i64 %"$consume_2337", i64* @_gasrem, align 8 +"$have_gas_2313": ; preds = %"$out_of_gas_2312", %"$have_gas_2307" + %"$consume_2314" = sub i64 %"$gasrem_2310", 1 + store i64 %"$consume_2314", i64* @_gasrem, align 8 %eq7 = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_2338" = alloca %String, align 8 - %"$c_2339" = load %String, %String* %c5, align 8 - store %String %"$c_2339", %String* %"$_literal_cost_c_2338", align 8 - %"$$_literal_cost_c_2338_2340" = bitcast %String* %"$_literal_cost_c_2338" to i8* - %"$_literal_cost_call_2341" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_2338_2340") - %"$_literal_cost_v_2342" = alloca %String, align 8 - %"$v_2343" = load %String, %String* %v6, align 8 - store %String %"$v_2343", %String* %"$_literal_cost_v_2342", align 8 - %"$$_literal_cost_v_2342_2344" = bitcast %String* %"$_literal_cost_v_2342" to i8* - %"$_literal_cost_call_2345" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_2342_2344") - %"$gasmin_2346" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2341", i64 %"$_literal_cost_call_2345") - %"$gasrem_2347" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2348" = icmp ugt i64 %"$gasmin_2346", %"$gasrem_2347" - br i1 %"$gascmp_2348", label %"$out_of_gas_2349", label %"$have_gas_2350" - -"$out_of_gas_2349": ; preds = %"$have_gas_2336" - call void @_out_of_gas() - br label %"$have_gas_2350" - -"$have_gas_2350": ; preds = %"$out_of_gas_2349", %"$have_gas_2336" - %"$consume_2351" = sub i64 %"$gasrem_2347", %"$gasmin_2346" - store i64 %"$consume_2351", i64* @_gasrem, align 8 - %"$execptr_load_2352" = load i8*, i8** @_execptr, align 8 - %"$c_2353" = load %String, %String* %c5, align 8 - %"$v_2354" = load %String, %String* %v6, align 8 - %"$eq_call_2355" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2352", %String %"$c_2353", %String %"$v_2354") - store %TName_Bool* %"$eq_call_2355", %TName_Bool** %eq7, align 8 - %"$gasrem_2357" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2358" = icmp ugt i64 2, %"$gasrem_2357" - br i1 %"$gascmp_2358", label %"$out_of_gas_2359", label %"$have_gas_2360" - -"$out_of_gas_2359": ; preds = %"$have_gas_2350" - call void @_out_of_gas() - br label %"$have_gas_2360" - -"$have_gas_2360": ; preds = %"$out_of_gas_2359", %"$have_gas_2350" - %"$consume_2361" = sub i64 %"$gasrem_2357", 2 - store i64 %"$consume_2361", i64* @_gasrem, align 8 - %"$eq_2363" = load %TName_Bool*, %TName_Bool** %eq7, align 8 - %"$eq_tag_2364" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2363", i32 0, i32 0 - %"$eq_tag_2365" = load i8, i8* %"$eq_tag_2364", align 1 - switch i8 %"$eq_tag_2365", label %"$empty_default_2366" [ - i8 0, label %"$True_2367" - i8 1, label %"$False_2369" + %"$_literal_cost_c_2315" = alloca %String, align 8 + %"$c_2316" = load %String, %String* %c5, align 8 + store %String %"$c_2316", %String* %"$_literal_cost_c_2315", align 8 + %"$$_literal_cost_c_2315_2317" = bitcast %String* %"$_literal_cost_c_2315" to i8* + %"$_literal_cost_call_2318" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_2315_2317") + %"$_literal_cost_v_2319" = alloca %String, align 8 + %"$v_2320" = load %String, %String* %v6, align 8 + store %String %"$v_2320", %String* %"$_literal_cost_v_2319", align 8 + %"$$_literal_cost_v_2319_2321" = bitcast %String* %"$_literal_cost_v_2319" to i8* + %"$_literal_cost_call_2322" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_2319_2321") + %"$gasmin_2323" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2318", i64 %"$_literal_cost_call_2322") + %"$gasrem_2324" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2325" = icmp ugt i64 %"$gasmin_2323", %"$gasrem_2324" + br i1 %"$gascmp_2325", label %"$out_of_gas_2326", label %"$have_gas_2327" + +"$out_of_gas_2326": ; preds = %"$have_gas_2313" + call void @_out_of_gas() + br label %"$have_gas_2327" + +"$have_gas_2327": ; preds = %"$out_of_gas_2326", %"$have_gas_2313" + %"$consume_2328" = sub i64 %"$gasrem_2324", %"$gasmin_2323" + store i64 %"$consume_2328", i64* @_gasrem, align 8 + %"$execptr_load_2329" = load i8*, i8** @_execptr, align 8 + %"$c_2330" = load %String, %String* %c5, align 8 + %"$v_2331" = load %String, %String* %v6, align 8 + %"$eq_call_2332" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2329", %String %"$c_2330", %String %"$v_2331") + store %TName_Bool* %"$eq_call_2332", %TName_Bool** %eq7, align 8 + %"$gasrem_2334" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2335" = icmp ugt i64 2, %"$gasrem_2334" + br i1 %"$gascmp_2335", label %"$out_of_gas_2336", label %"$have_gas_2337" + +"$out_of_gas_2336": ; preds = %"$have_gas_2327" + call void @_out_of_gas() + br label %"$have_gas_2337" + +"$have_gas_2337": ; preds = %"$out_of_gas_2336", %"$have_gas_2327" + %"$consume_2338" = sub i64 %"$gasrem_2334", 2 + store i64 %"$consume_2338", i64* @_gasrem, align 8 + %"$eq_2340" = load %TName_Bool*, %TName_Bool** %eq7, align 8 + %"$eq_tag_2341" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2340", i32 0, i32 0 + %"$eq_tag_2342" = load i8, i8* %"$eq_tag_2341", align 1 + switch i8 %"$eq_tag_2342", label %"$empty_default_2343" [ + i8 0, label %"$True_2344" + i8 1, label %"$False_2346" ] -"$True_2367": ; preds = %"$have_gas_2360" - %"$eq_2368" = bitcast %TName_Bool* %"$eq_2363" to %CName_True* - br label %"$matchsucc_2362" +"$True_2344": ; preds = %"$have_gas_2337" + %"$eq_2345" = bitcast %TName_Bool* %"$eq_2340" to %CName_True* + br label %"$matchsucc_2339" -"$False_2369": ; preds = %"$have_gas_2360" - %"$eq_2370" = bitcast %TName_Bool* %"$eq_2363" to %CName_False* - %"$gasrem_2371" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2372" = icmp ugt i64 1, %"$gasrem_2371" - br i1 %"$gascmp_2372", label %"$out_of_gas_2373", label %"$have_gas_2374" +"$False_2346": ; preds = %"$have_gas_2337" + %"$eq_2347" = bitcast %TName_Bool* %"$eq_2340" to %CName_False* + %"$gasrem_2348" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2349" = icmp ugt i64 1, %"$gasrem_2348" + br i1 %"$gascmp_2349", label %"$out_of_gas_2350", label %"$have_gas_2351" -"$out_of_gas_2373": ; preds = %"$False_2369" +"$out_of_gas_2350": ; preds = %"$False_2346" call void @_out_of_gas() - br label %"$have_gas_2374" + br label %"$have_gas_2351" -"$have_gas_2374": ; preds = %"$out_of_gas_2373", %"$False_2369" - %"$consume_2375" = sub i64 %"$gasrem_2371", 1 - store i64 %"$consume_2375", i64* @_gasrem, align 8 +"$have_gas_2351": ; preds = %"$out_of_gas_2350", %"$False_2346" + %"$consume_2352" = sub i64 %"$gasrem_2348", 1 + store i64 %"$consume_2352", i64* @_gasrem, align 8 %m8 = alloca %String, align 8 - %"$gasrem_2376" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2377" = icmp ugt i64 1, %"$gasrem_2376" - br i1 %"$gascmp_2377", label %"$out_of_gas_2378", label %"$have_gas_2379" + %"$gasrem_2353" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2354" = icmp ugt i64 1, %"$gasrem_2353" + br i1 %"$gascmp_2354", label %"$out_of_gas_2355", label %"$have_gas_2356" -"$out_of_gas_2378": ; preds = %"$have_gas_2374" +"$out_of_gas_2355": ; preds = %"$have_gas_2351" call void @_out_of_gas() - br label %"$have_gas_2379" + br label %"$have_gas_2356" -"$have_gas_2379": ; preds = %"$out_of_gas_2378", %"$have_gas_2374" - %"$consume_2380" = sub i64 %"$gasrem_2376", 1 - store i64 %"$consume_2380", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_2381", i32 0, i32 0), i32 31 }, %String* %m8, align 8 - %"$gasrem_2382" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2383" = icmp ugt i64 1, %"$gasrem_2382" - br i1 %"$gascmp_2383", label %"$out_of_gas_2384", label %"$have_gas_2385" +"$have_gas_2356": ; preds = %"$out_of_gas_2355", %"$have_gas_2351" + %"$consume_2357" = sub i64 %"$gasrem_2353", 1 + store i64 %"$consume_2357", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @"$stringlit_2358", i32 0, i32 0), i32 31 }, %String* %m8, align 8 + %"$gasrem_2359" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2360" = icmp ugt i64 1, %"$gasrem_2359" + br i1 %"$gascmp_2360", label %"$out_of_gas_2361", label %"$have_gas_2362" -"$out_of_gas_2384": ; preds = %"$have_gas_2379" +"$out_of_gas_2361": ; preds = %"$have_gas_2356" call void @_out_of_gas() - br label %"$have_gas_2385" + br label %"$have_gas_2362" -"$have_gas_2385": ; preds = %"$out_of_gas_2384", %"$have_gas_2379" - %"$consume_2386" = sub i64 %"$gasrem_2382", 1 - store i64 %"$consume_2386", i64* @_gasrem, align 8 - %"$fail_msg__origin_2387" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2387", align 1 - %"$fail_msg__sender_2388" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2388", align 1 - %"$tname_2389" = load %String, %String* %tname, align 8 - %"$m_2390" = load %String, %String* %m8, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2387", [20 x i8]* %"$fail_msg__sender_2388", %String %"$tname_2389", %String %"$m_2390") - br label %"$matchsucc_2362" +"$have_gas_2362": ; preds = %"$out_of_gas_2361", %"$have_gas_2356" + %"$consume_2363" = sub i64 %"$gasrem_2359", 1 + store i64 %"$consume_2363", i64* @_gasrem, align 8 + %"$fail_msg__origin_2364" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2364", align 1 + %"$fail_msg__sender_2365" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2365", align 1 + %"$tname_2366" = load %String, %String* %tname, align 8 + %"$m_2367" = load %String, %String* %m8, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2364", [20 x i8]* %"$fail_msg__sender_2365", %String %"$tname_2366", %String %"$m_2367") + br label %"$matchsucc_2339" -"$empty_default_2366": ; preds = %"$have_gas_2360" - br label %"$matchsucc_2362" +"$empty_default_2343": ; preds = %"$have_gas_2337" + br label %"$matchsucc_2339" -"$matchsucc_2362": ; preds = %"$have_gas_2385", %"$True_2367", %"$empty_default_2366" - br label %"$matchsucc_2313" +"$matchsucc_2339": ; preds = %"$have_gas_2362", %"$True_2344", %"$empty_default_2343" + br label %"$matchsucc_2290" -"$None_2391": ; preds = %"$have_gas_2311" - %"$$c1_9_2392" = bitcast %TName_Option_String* %"$$c1_9_2314" to %CName_None_String* - %"$gasrem_2393" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2394" = icmp ugt i64 1, %"$gasrem_2393" - br i1 %"$gascmp_2394", label %"$out_of_gas_2395", label %"$have_gas_2396" +"$None_2368": ; preds = %"$have_gas_2288" + %"$$c1_9_2369" = bitcast %TName_Option_String* %"$$c1_9_2291" to %CName_None_String* + %"$gasrem_2370" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2371" = icmp ugt i64 1, %"$gasrem_2370" + br i1 %"$gascmp_2371", label %"$out_of_gas_2372", label %"$have_gas_2373" -"$out_of_gas_2395": ; preds = %"$None_2391" +"$out_of_gas_2372": ; preds = %"$None_2368" call void @_out_of_gas() - br label %"$have_gas_2396" + br label %"$have_gas_2373" -"$have_gas_2396": ; preds = %"$out_of_gas_2395", %"$None_2391" - %"$consume_2397" = sub i64 %"$gasrem_2393", 1 - store i64 %"$consume_2397", i64* @_gasrem, align 8 +"$have_gas_2373": ; preds = %"$out_of_gas_2372", %"$None_2368" + %"$consume_2374" = sub i64 %"$gasrem_2370", 1 + store i64 %"$consume_2374", i64* @_gasrem, align 8 %m9 = alloca %String, align 8 - %"$gasrem_2398" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2399" = icmp ugt i64 1, %"$gasrem_2398" - br i1 %"$gascmp_2399", label %"$out_of_gas_2400", label %"$have_gas_2401" + %"$gasrem_2375" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2376" = icmp ugt i64 1, %"$gasrem_2375" + br i1 %"$gascmp_2376", label %"$out_of_gas_2377", label %"$have_gas_2378" -"$out_of_gas_2400": ; preds = %"$have_gas_2396" +"$out_of_gas_2377": ; preds = %"$have_gas_2373" call void @_out_of_gas() - br label %"$have_gas_2401" + br label %"$have_gas_2378" -"$have_gas_2401": ; preds = %"$out_of_gas_2400", %"$have_gas_2396" - %"$consume_2402" = sub i64 %"$gasrem_2398", 1 - store i64 %"$consume_2402", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2403", i32 0, i32 0), i32 21 }, %String* %m9, align 8 - %"$gasrem_2404" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2405" = icmp ugt i64 1, %"$gasrem_2404" - br i1 %"$gascmp_2405", label %"$out_of_gas_2406", label %"$have_gas_2407" +"$have_gas_2378": ; preds = %"$out_of_gas_2377", %"$have_gas_2373" + %"$consume_2379" = sub i64 %"$gasrem_2375", 1 + store i64 %"$consume_2379", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2380", i32 0, i32 0), i32 21 }, %String* %m9, align 8 + %"$gasrem_2381" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2382" = icmp ugt i64 1, %"$gasrem_2381" + br i1 %"$gascmp_2382", label %"$out_of_gas_2383", label %"$have_gas_2384" -"$out_of_gas_2406": ; preds = %"$have_gas_2401" +"$out_of_gas_2383": ; preds = %"$have_gas_2378" call void @_out_of_gas() - br label %"$have_gas_2407" + br label %"$have_gas_2384" -"$have_gas_2407": ; preds = %"$out_of_gas_2406", %"$have_gas_2401" - %"$consume_2408" = sub i64 %"$gasrem_2404", 1 - store i64 %"$consume_2408", i64* @_gasrem, align 8 - %"$fail_msg__origin_2409" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2409", align 1 - %"$fail_msg__sender_2410" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2410", align 1 - %"$tname_2411" = load %String, %String* %tname, align 8 - %"$m_2412" = load %String, %String* %m9, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2409", [20 x i8]* %"$fail_msg__sender_2410", %String %"$tname_2411", %String %"$m_2412") - br label %"$matchsucc_2313" +"$have_gas_2384": ; preds = %"$out_of_gas_2383", %"$have_gas_2378" + %"$consume_2385" = sub i64 %"$gasrem_2381", 1 + store i64 %"$consume_2385", i64* @_gasrem, align 8 + %"$fail_msg__origin_2386" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2386", align 1 + %"$fail_msg__sender_2387" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2387", align 1 + %"$tname_2388" = load %String, %String* %tname, align 8 + %"$m_2389" = load %String, %String* %m9, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2386", [20 x i8]* %"$fail_msg__sender_2387", %String %"$tname_2388", %String %"$m_2389") + br label %"$matchsucc_2290" -"$empty_default_2317": ; preds = %"$have_gas_2311" - br label %"$matchsucc_2313" +"$empty_default_2294": ; preds = %"$have_gas_2288" + br label %"$matchsucc_2290" -"$matchsucc_2313": ; preds = %"$have_gas_2407", %"$matchsucc_2362", %"$empty_default_2317" - %"$gasrem_2413" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2414" = icmp ugt i64 1, %"$gasrem_2413" - br i1 %"$gascmp_2414", label %"$out_of_gas_2415", label %"$have_gas_2416" +"$matchsucc_2290": ; preds = %"$have_gas_2384", %"$matchsucc_2339", %"$empty_default_2294" + %"$gasrem_2390" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2391" = icmp ugt i64 1, %"$gasrem_2390" + br i1 %"$gascmp_2391", label %"$out_of_gas_2392", label %"$have_gas_2393" -"$out_of_gas_2415": ; preds = %"$matchsucc_2313" +"$out_of_gas_2392": ; preds = %"$matchsucc_2290" call void @_out_of_gas() - br label %"$have_gas_2416" + br label %"$have_gas_2393" -"$have_gas_2416": ; preds = %"$out_of_gas_2415", %"$matchsucc_2313" - %"$consume_2417" = sub i64 %"$gasrem_2413", 1 - store i64 %"$consume_2417", i64* @_gasrem, align 8 +"$have_gas_2393": ; preds = %"$out_of_gas_2392", %"$matchsucc_2290" + %"$consume_2394" = sub i64 %"$gasrem_2390", 1 + store i64 %"$consume_2394", i64* @_gasrem, align 8 %em = alloca %Map_String_String*, align 8 - %"$gasrem_2418" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2419" = icmp ugt i64 1, %"$gasrem_2418" - br i1 %"$gascmp_2419", label %"$out_of_gas_2420", label %"$have_gas_2421" - -"$out_of_gas_2420": ; preds = %"$have_gas_2416" - call void @_out_of_gas() - br label %"$have_gas_2421" - -"$have_gas_2421": ; preds = %"$out_of_gas_2420", %"$have_gas_2416" - %"$consume_2422" = sub i64 %"$gasrem_2418", 1 - store i64 %"$consume_2422", i64* @_gasrem, align 8 - %"$execptr_load_2423" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2424" = call i8* @_new_empty_map(i8* %"$execptr_load_2423") - %"$_new_empty_map_2425" = bitcast i8* %"$_new_empty_map_call_2424" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_2425", %Map_String_String** %em, align 8 - %"$em_2426" = load %Map_String_String*, %Map_String_String** %em, align 8 - %"$$em_2426_2427" = bitcast %Map_String_String* %"$em_2426" to i8* - %"$_literal_cost_call_2428" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$em_2426_2427") - %"$gasrem_2429" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2430" = icmp ugt i64 %"$_literal_cost_call_2428", %"$gasrem_2429" - br i1 %"$gascmp_2430", label %"$out_of_gas_2431", label %"$have_gas_2432" - -"$out_of_gas_2431": ; preds = %"$have_gas_2421" - call void @_out_of_gas() - br label %"$have_gas_2432" - -"$have_gas_2432": ; preds = %"$out_of_gas_2431", %"$have_gas_2421" - %"$consume_2433" = sub i64 %"$gasrem_2429", %"$_literal_cost_call_2428" - store i64 %"$consume_2433", i64* @_gasrem, align 8 - %"$execptr_load_2434" = load i8*, i8** @_execptr, align 8 - %"$em_2436" = load %Map_String_String*, %Map_String_String** %em, align 8 - %"$update_value_2437" = bitcast %Map_String_String* %"$em_2436" to i8* - call void @_update_field(i8* %"$execptr_load_2434", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2435", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i8* %"$update_value_2437") + %"$gasrem_2395" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2396" = icmp ugt i64 1, %"$gasrem_2395" + br i1 %"$gascmp_2396", label %"$out_of_gas_2397", label %"$have_gas_2398" + +"$out_of_gas_2397": ; preds = %"$have_gas_2393" + call void @_out_of_gas() + br label %"$have_gas_2398" + +"$have_gas_2398": ; preds = %"$out_of_gas_2397", %"$have_gas_2393" + %"$consume_2399" = sub i64 %"$gasrem_2395", 1 + store i64 %"$consume_2399", i64* @_gasrem, align 8 + %"$execptr_load_2400" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2401" = call i8* @_new_empty_map(i8* %"$execptr_load_2400") + %"$_new_empty_map_2402" = bitcast i8* %"$_new_empty_map_call_2401" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_2402", %Map_String_String** %em, align 8 + %"$em_2403" = load %Map_String_String*, %Map_String_String** %em, align 8 + %"$$em_2403_2404" = bitcast %Map_String_String* %"$em_2403" to i8* + %"$_literal_cost_call_2405" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$em_2403_2404") + %"$gasrem_2406" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2407" = icmp ugt i64 %"$_literal_cost_call_2405", %"$gasrem_2406" + br i1 %"$gascmp_2407", label %"$out_of_gas_2408", label %"$have_gas_2409" + +"$out_of_gas_2408": ; preds = %"$have_gas_2398" + call void @_out_of_gas() + br label %"$have_gas_2409" + +"$have_gas_2409": ; preds = %"$out_of_gas_2408", %"$have_gas_2398" + %"$consume_2410" = sub i64 %"$gasrem_2406", %"$_literal_cost_call_2405" + store i64 %"$consume_2410", i64* @_gasrem, align 8 + %"$execptr_load_2411" = load i8*, i8** @_execptr, align 8 + %"$em_2413" = load %Map_String_String*, %Map_String_String** %em, align 8 + %"$update_value_2414" = bitcast %Map_String_String* %"$em_2413" to i8* + call void @_update_field(i8* %"$execptr_load_2411", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2412", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i8* %"$update_value_2414") ret void } define void @t8(i8* %0) { entry: - %"$_amount_2439" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2440" = bitcast i8* %"$_amount_2439" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2440", align 8 - %"$_origin_2441" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2442" = bitcast i8* %"$_origin_2441" to [20 x i8]* - %"$_sender_2443" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2444" = bitcast i8* %"$_sender_2443" to [20 x i8]* - call void @"$t8_2107"(%Uint128 %_amount, [20 x i8]* %"$_origin_2442", [20 x i8]* %"$_sender_2444") + %"$_amount_2416" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2417" = bitcast i8* %"$_amount_2416" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2417", align 8 + %"$_origin_2418" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2419" = bitcast i8* %"$_origin_2418" to [20 x i8]* + %"$_sender_2420" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2421" = bitcast i8* %"$_sender_2420" to [20 x i8]* + call void @"$t8_2084"(%Uint128 %_amount, [20 x i8]* %"$_origin_2419", [20 x i8]* %"$_sender_2421") ret void } -define internal void @"$t9_2445"(%Uint128 %_amount, [20 x i8]* %"$_origin_2446", [20 x i8]* %"$_sender_2447") { +define internal void @"$t9_2422"(%Uint128 %_amount, [20 x i8]* %"$_origin_2423", [20 x i8]* %"$_sender_2424") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2446", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2447", align 1 - %"$gasrem_2448" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2449" = icmp ugt i64 1, %"$gasrem_2448" - br i1 %"$gascmp_2449", label %"$out_of_gas_2450", label %"$have_gas_2451" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2423", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2424", align 1 + %"$gasrem_2425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2426" = icmp ugt i64 1, %"$gasrem_2425" + br i1 %"$gascmp_2426", label %"$out_of_gas_2427", label %"$have_gas_2428" -"$out_of_gas_2450": ; preds = %entry +"$out_of_gas_2427": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2451" + br label %"$have_gas_2428" -"$have_gas_2451": ; preds = %"$out_of_gas_2450", %entry - %"$consume_2452" = sub i64 %"$gasrem_2448", 1 - store i64 %"$consume_2452", i64* @_gasrem, align 8 +"$have_gas_2428": ; preds = %"$out_of_gas_2427", %entry + %"$consume_2429" = sub i64 %"$gasrem_2425", 1 + store i64 %"$consume_2429", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_2453" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2454" = icmp ugt i64 1, %"$gasrem_2453" - br i1 %"$gascmp_2454", label %"$out_of_gas_2455", label %"$have_gas_2456" + %"$gasrem_2430" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2431" = icmp ugt i64 1, %"$gasrem_2430" + br i1 %"$gascmp_2431", label %"$out_of_gas_2432", label %"$have_gas_2433" -"$out_of_gas_2455": ; preds = %"$have_gas_2451" +"$out_of_gas_2432": ; preds = %"$have_gas_2428" call void @_out_of_gas() - br label %"$have_gas_2456" + br label %"$have_gas_2433" -"$have_gas_2456": ; preds = %"$out_of_gas_2455", %"$have_gas_2451" - %"$consume_2457" = sub i64 %"$gasrem_2453", 1 - store i64 %"$consume_2457", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_2458", i32 0, i32 0), i32 2 }, %String* %tname, align 8 +"$have_gas_2433": ; preds = %"$out_of_gas_2432", %"$have_gas_2428" + %"$consume_2434" = sub i64 %"$gasrem_2430", 1 + store i64 %"$consume_2434", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$stringlit_2435", i32 0, i32 0), i32 2 }, %String* %tname, align 8 %m1 = alloca %Map_String_String*, align 8 - %"$execptr_load_2460" = load i8*, i8** @_execptr, align 8 - %"$m1_call_2461" = call i8* @_fetch_field(i8* %"$execptr_load_2460", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2459", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i32 1) - %"$m1_2462" = bitcast i8* %"$m1_call_2461" to %Map_String_String* - store %Map_String_String* %"$m1_2462", %Map_String_String** %m1, align 8 - %"$m1_2463" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2463_2464" = bitcast %Map_String_String* %"$m1_2463" to i8* - %"$_literal_cost_call_2465" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2463_2464") - %"$m1_2466" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2466_2467" = bitcast %Map_String_String* %"$m1_2466" to i8* - %"$_mapsortcost_call_2468" = call i64 @_mapsortcost(i8* %"$$m1_2466_2467") - %"$gasadd_2469" = add i64 %"$_literal_cost_call_2465", %"$_mapsortcost_call_2468" + %"$execptr_load_2437" = load i8*, i8** @_execptr, align 8 + %"$m1_call_2438" = call i8* @_fetch_field(i8* %"$execptr_load_2437", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2436", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i32 1) + %"$m1_2439" = bitcast i8* %"$m1_call_2438" to %Map_String_String* + store %Map_String_String* %"$m1_2439", %Map_String_String** %m1, align 8 + %"$m1_2440" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2440_2441" = bitcast %Map_String_String* %"$m1_2440" to i8* + %"$_literal_cost_call_2442" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2440_2441") + %"$m1_2443" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2443_2444" = bitcast %Map_String_String* %"$m1_2443" to i8* + %"$_mapsortcost_call_2445" = call i64 @_mapsortcost(i8* %"$$m1_2443_2444") + %"$gasadd_2446" = add i64 %"$_literal_cost_call_2442", %"$_mapsortcost_call_2445" + %"$gasrem_2447" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2448" = icmp ugt i64 %"$gasadd_2446", %"$gasrem_2447" + br i1 %"$gascmp_2448", label %"$out_of_gas_2449", label %"$have_gas_2450" + +"$out_of_gas_2449": ; preds = %"$have_gas_2433" + call void @_out_of_gas() + br label %"$have_gas_2450" + +"$have_gas_2450": ; preds = %"$out_of_gas_2449", %"$have_gas_2433" + %"$consume_2451" = sub i64 %"$gasrem_2447", %"$gasadd_2446" + store i64 %"$consume_2451", i64* @_gasrem, align 8 + %"$gasrem_2452" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2453" = icmp ugt i64 1, %"$gasrem_2452" + br i1 %"$gascmp_2453", label %"$out_of_gas_2454", label %"$have_gas_2455" + +"$out_of_gas_2454": ; preds = %"$have_gas_2450" + call void @_out_of_gas() + br label %"$have_gas_2455" + +"$have_gas_2455": ; preds = %"$out_of_gas_2454", %"$have_gas_2450" + %"$consume_2456" = sub i64 %"$gasrem_2452", 1 + store i64 %"$consume_2456", i64* @_gasrem, align 8 + %m1_size = alloca %Uint32, align 8 + %"$gasrem_2457" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2458" = icmp ugt i64 1, %"$gasrem_2457" + br i1 %"$gascmp_2458", label %"$out_of_gas_2459", label %"$have_gas_2460" + +"$out_of_gas_2459": ; preds = %"$have_gas_2455" + call void @_out_of_gas() + br label %"$have_gas_2460" + +"$have_gas_2460": ; preds = %"$out_of_gas_2459", %"$have_gas_2455" + %"$consume_2461" = sub i64 %"$gasrem_2457", 1 + store i64 %"$consume_2461", i64* @_gasrem, align 8 + %"$m1_2462" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2462_2463" = bitcast %Map_String_String* %"$m1_2462" to i8* + %"$size_call_2464" = call %Uint32 @_size(i8* %"$$m1_2462_2463") + store %Uint32 %"$size_call_2464", %Uint32* %m1_size, align 4 + %"$gasrem_2465" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2466" = icmp ugt i64 1, %"$gasrem_2465" + br i1 %"$gascmp_2466", label %"$out_of_gas_2467", label %"$have_gas_2468" + +"$out_of_gas_2467": ; preds = %"$have_gas_2460" + call void @_out_of_gas() + br label %"$have_gas_2468" + +"$have_gas_2468": ; preds = %"$out_of_gas_2467", %"$have_gas_2460" + %"$consume_2469" = sub i64 %"$gasrem_2465", 1 + store i64 %"$consume_2469", i64* @_gasrem, align 8 + %zero = alloca %Uint32, align 8 %"$gasrem_2470" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2471" = icmp ugt i64 %"$gasadd_2469", %"$gasrem_2470" + %"$gascmp_2471" = icmp ugt i64 1, %"$gasrem_2470" br i1 %"$gascmp_2471", label %"$out_of_gas_2472", label %"$have_gas_2473" -"$out_of_gas_2472": ; preds = %"$have_gas_2456" +"$out_of_gas_2472": ; preds = %"$have_gas_2468" call void @_out_of_gas() br label %"$have_gas_2473" -"$have_gas_2473": ; preds = %"$out_of_gas_2472", %"$have_gas_2456" - %"$consume_2474" = sub i64 %"$gasrem_2470", %"$gasadd_2469" +"$have_gas_2473": ; preds = %"$out_of_gas_2472", %"$have_gas_2468" + %"$consume_2474" = sub i64 %"$gasrem_2470", 1 store i64 %"$consume_2474", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4 %"$gasrem_2475" = load i64, i64* @_gasrem, align 8 %"$gascmp_2476" = icmp ugt i64 1, %"$gasrem_2475" br i1 %"$gascmp_2476", label %"$out_of_gas_2477", label %"$have_gas_2478" @@ -5118,9 +5137,9 @@ entry: "$have_gas_2478": ; preds = %"$out_of_gas_2477", %"$have_gas_2473" %"$consume_2479" = sub i64 %"$gasrem_2475", 1 store i64 %"$consume_2479", i64* @_gasrem, align 8 - %m1_size = alloca %Uint32, align 8 + %is_empty = alloca %TName_Bool*, align 8 %"$gasrem_2480" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2481" = icmp ugt i64 1, %"$gasrem_2480" + %"$gascmp_2481" = icmp ugt i64 4, %"$gasrem_2480" br i1 %"$gascmp_2481", label %"$out_of_gas_2482", label %"$have_gas_2483" "$out_of_gas_2482": ; preds = %"$have_gas_2478" @@ -5128,219 +5147,168 @@ entry: br label %"$have_gas_2483" "$have_gas_2483": ; preds = %"$out_of_gas_2482", %"$have_gas_2478" - %"$consume_2484" = sub i64 %"$gasrem_2480", 1 + %"$consume_2484" = sub i64 %"$gasrem_2480", 4 store i64 %"$consume_2484", i64* @_gasrem, align 8 - %"$m1_2485" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2485_2486" = bitcast %Map_String_String* %"$m1_2485" to i8* - %"$size_call_2487" = call %Uint32 @_size(i8* %"$$m1_2485_2486") - store %Uint32 %"$size_call_2487", %Uint32* %m1_size, align 4 - %"$gasrem_2488" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2489" = icmp ugt i64 1, %"$gasrem_2488" - br i1 %"$gascmp_2489", label %"$out_of_gas_2490", label %"$have_gas_2491" - -"$out_of_gas_2490": ; preds = %"$have_gas_2483" - call void @_out_of_gas() - br label %"$have_gas_2491" - -"$have_gas_2491": ; preds = %"$out_of_gas_2490", %"$have_gas_2483" - %"$consume_2492" = sub i64 %"$gasrem_2488", 1 - store i64 %"$consume_2492", i64* @_gasrem, align 8 - %zero = alloca %Uint32, align 8 - %"$gasrem_2493" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2494" = icmp ugt i64 1, %"$gasrem_2493" - br i1 %"$gascmp_2494", label %"$out_of_gas_2495", label %"$have_gas_2496" - -"$out_of_gas_2495": ; preds = %"$have_gas_2491" - call void @_out_of_gas() - br label %"$have_gas_2496" - -"$have_gas_2496": ; preds = %"$out_of_gas_2495", %"$have_gas_2491" - %"$consume_2497" = sub i64 %"$gasrem_2493", 1 - store i64 %"$consume_2497", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4 - %"$gasrem_2498" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2499" = icmp ugt i64 1, %"$gasrem_2498" - br i1 %"$gascmp_2499", label %"$out_of_gas_2500", label %"$have_gas_2501" - -"$out_of_gas_2500": ; preds = %"$have_gas_2496" - call void @_out_of_gas() - br label %"$have_gas_2501" - -"$have_gas_2501": ; preds = %"$out_of_gas_2500", %"$have_gas_2496" - %"$consume_2502" = sub i64 %"$gasrem_2498", 1 - store i64 %"$consume_2502", i64* @_gasrem, align 8 - %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_2503" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2504" = icmp ugt i64 4, %"$gasrem_2503" - br i1 %"$gascmp_2504", label %"$out_of_gas_2505", label %"$have_gas_2506" - -"$out_of_gas_2505": ; preds = %"$have_gas_2501" - call void @_out_of_gas() - br label %"$have_gas_2506" - -"$have_gas_2506": ; preds = %"$out_of_gas_2505", %"$have_gas_2501" - %"$consume_2507" = sub i64 %"$gasrem_2503", 4 - store i64 %"$consume_2507", i64* @_gasrem, align 8 - %"$execptr_load_2508" = load i8*, i8** @_execptr, align 8 - %"$m1_size_2509" = load %Uint32, %Uint32* %m1_size, align 4 - %"$zero_2510" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_2511" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2508", %Uint32 %"$m1_size_2509", %Uint32 %"$zero_2510") - store %TName_Bool* %"$eq_call_2511", %TName_Bool** %is_empty, align 8 - %"$gasrem_2513" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2514" = icmp ugt i64 2, %"$gasrem_2513" - br i1 %"$gascmp_2514", label %"$out_of_gas_2515", label %"$have_gas_2516" - -"$out_of_gas_2515": ; preds = %"$have_gas_2506" - call void @_out_of_gas() - br label %"$have_gas_2516" - -"$have_gas_2516": ; preds = %"$out_of_gas_2515", %"$have_gas_2506" - %"$consume_2517" = sub i64 %"$gasrem_2513", 2 - store i64 %"$consume_2517", i64* @_gasrem, align 8 - %"$is_empty_2519" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_2520" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2519", i32 0, i32 0 - %"$is_empty_tag_2521" = load i8, i8* %"$is_empty_tag_2520", align 1 - switch i8 %"$is_empty_tag_2521", label %"$empty_default_2522" [ - i8 0, label %"$True_2523" - i8 1, label %"$False_2525" + %"$execptr_load_2485" = load i8*, i8** @_execptr, align 8 + %"$m1_size_2486" = load %Uint32, %Uint32* %m1_size, align 4 + %"$zero_2487" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_2488" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2485", %Uint32 %"$m1_size_2486", %Uint32 %"$zero_2487") + store %TName_Bool* %"$eq_call_2488", %TName_Bool** %is_empty, align 8 + %"$gasrem_2490" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2491" = icmp ugt i64 2, %"$gasrem_2490" + br i1 %"$gascmp_2491", label %"$out_of_gas_2492", label %"$have_gas_2493" + +"$out_of_gas_2492": ; preds = %"$have_gas_2483" + call void @_out_of_gas() + br label %"$have_gas_2493" + +"$have_gas_2493": ; preds = %"$out_of_gas_2492", %"$have_gas_2483" + %"$consume_2494" = sub i64 %"$gasrem_2490", 2 + store i64 %"$consume_2494", i64* @_gasrem, align 8 + %"$is_empty_2496" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_2497" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2496", i32 0, i32 0 + %"$is_empty_tag_2498" = load i8, i8* %"$is_empty_tag_2497", align 1 + switch i8 %"$is_empty_tag_2498", label %"$empty_default_2499" [ + i8 0, label %"$True_2500" + i8 1, label %"$False_2502" ] -"$True_2523": ; preds = %"$have_gas_2516" - %"$is_empty_2524" = bitcast %TName_Bool* %"$is_empty_2519" to %CName_True* - br label %"$matchsucc_2518" +"$True_2500": ; preds = %"$have_gas_2493" + %"$is_empty_2501" = bitcast %TName_Bool* %"$is_empty_2496" to %CName_True* + br label %"$matchsucc_2495" -"$False_2525": ; preds = %"$have_gas_2516" - %"$is_empty_2526" = bitcast %TName_Bool* %"$is_empty_2519" to %CName_False* - %"$gasrem_2527" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2528" = icmp ugt i64 1, %"$gasrem_2527" - br i1 %"$gascmp_2528", label %"$out_of_gas_2529", label %"$have_gas_2530" +"$False_2502": ; preds = %"$have_gas_2493" + %"$is_empty_2503" = bitcast %TName_Bool* %"$is_empty_2496" to %CName_False* + %"$gasrem_2504" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2505" = icmp ugt i64 1, %"$gasrem_2504" + br i1 %"$gascmp_2505", label %"$out_of_gas_2506", label %"$have_gas_2507" -"$out_of_gas_2529": ; preds = %"$False_2525" +"$out_of_gas_2506": ; preds = %"$False_2502" call void @_out_of_gas() - br label %"$have_gas_2530" + br label %"$have_gas_2507" -"$have_gas_2530": ; preds = %"$out_of_gas_2529", %"$False_2525" - %"$consume_2531" = sub i64 %"$gasrem_2527", 1 - store i64 %"$consume_2531", i64* @_gasrem, align 8 - %"$fail__origin_2532" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2532", align 1 - %"$fail__sender_2533" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2533", align 1 - %"$tname_2534" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2532", [20 x i8]* %"$fail__sender_2533", %String %"$tname_2534") - br label %"$matchsucc_2518" +"$have_gas_2507": ; preds = %"$out_of_gas_2506", %"$False_2502" + %"$consume_2508" = sub i64 %"$gasrem_2504", 1 + store i64 %"$consume_2508", i64* @_gasrem, align 8 + %"$fail__origin_2509" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2509", align 1 + %"$fail__sender_2510" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2510", align 1 + %"$tname_2511" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2509", [20 x i8]* %"$fail__sender_2510", %String %"$tname_2511") + br label %"$matchsucc_2495" -"$empty_default_2522": ; preds = %"$have_gas_2516" - br label %"$matchsucc_2518" +"$empty_default_2499": ; preds = %"$have_gas_2493" + br label %"$matchsucc_2495" -"$matchsucc_2518": ; preds = %"$have_gas_2530", %"$True_2523", %"$empty_default_2522" - %"$gasrem_2535" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2536" = icmp ugt i64 1, %"$gasrem_2535" - br i1 %"$gascmp_2536", label %"$out_of_gas_2537", label %"$have_gas_2538" +"$matchsucc_2495": ; preds = %"$have_gas_2507", %"$True_2500", %"$empty_default_2499" + %"$gasrem_2512" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2513" = icmp ugt i64 1, %"$gasrem_2512" + br i1 %"$gascmp_2513", label %"$out_of_gas_2514", label %"$have_gas_2515" -"$out_of_gas_2537": ; preds = %"$matchsucc_2518" +"$out_of_gas_2514": ; preds = %"$matchsucc_2495" call void @_out_of_gas() - br label %"$have_gas_2538" + br label %"$have_gas_2515" -"$have_gas_2538": ; preds = %"$out_of_gas_2537", %"$matchsucc_2518" - %"$consume_2539" = sub i64 %"$gasrem_2535", 1 - store i64 %"$consume_2539", i64* @_gasrem, align 8 +"$have_gas_2515": ; preds = %"$out_of_gas_2514", %"$matchsucc_2495" + %"$consume_2516" = sub i64 %"$gasrem_2512", 1 + store i64 %"$consume_2516", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_2540" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2541" = icmp ugt i64 1, %"$gasrem_2540" - br i1 %"$gascmp_2541", label %"$out_of_gas_2542", label %"$have_gas_2543" + %"$gasrem_2517" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2518" = icmp ugt i64 1, %"$gasrem_2517" + br i1 %"$gascmp_2518", label %"$out_of_gas_2519", label %"$have_gas_2520" -"$out_of_gas_2542": ; preds = %"$have_gas_2538" +"$out_of_gas_2519": ; preds = %"$have_gas_2515" call void @_out_of_gas() - br label %"$have_gas_2543" + br label %"$have_gas_2520" -"$have_gas_2543": ; preds = %"$out_of_gas_2542", %"$have_gas_2538" - %"$consume_2544" = sub i64 %"$gasrem_2540", 1 - store i64 %"$consume_2544", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2545", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 - %"$gasrem_2546" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2547" = icmp ugt i64 1, %"$gasrem_2546" - br i1 %"$gascmp_2547", label %"$out_of_gas_2548", label %"$have_gas_2549" +"$have_gas_2520": ; preds = %"$out_of_gas_2519", %"$have_gas_2515" + %"$consume_2521" = sub i64 %"$gasrem_2517", 1 + store i64 %"$consume_2521", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2522", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 + %"$gasrem_2523" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2524" = icmp ugt i64 1, %"$gasrem_2523" + br i1 %"$gascmp_2524", label %"$out_of_gas_2525", label %"$have_gas_2526" -"$out_of_gas_2548": ; preds = %"$have_gas_2543" +"$out_of_gas_2525": ; preds = %"$have_gas_2520" call void @_out_of_gas() - br label %"$have_gas_2549" + br label %"$have_gas_2526" -"$have_gas_2549": ; preds = %"$out_of_gas_2548", %"$have_gas_2543" - %"$consume_2550" = sub i64 %"$gasrem_2546", 1 - store i64 %"$consume_2550", i64* @_gasrem, align 8 +"$have_gas_2526": ; preds = %"$out_of_gas_2525", %"$have_gas_2520" + %"$consume_2527" = sub i64 %"$gasrem_2523", 1 + store i64 %"$consume_2527", i64* @_gasrem, align 8 %val = alloca %String, align 8 - %"$gasrem_2551" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2552" = icmp ugt i64 1, %"$gasrem_2551" - br i1 %"$gascmp_2552", label %"$out_of_gas_2553", label %"$have_gas_2554" + %"$gasrem_2528" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2529" = icmp ugt i64 1, %"$gasrem_2528" + br i1 %"$gascmp_2529", label %"$out_of_gas_2530", label %"$have_gas_2531" -"$out_of_gas_2553": ; preds = %"$have_gas_2549" +"$out_of_gas_2530": ; preds = %"$have_gas_2526" call void @_out_of_gas() - br label %"$have_gas_2554" + br label %"$have_gas_2531" -"$have_gas_2554": ; preds = %"$out_of_gas_2553", %"$have_gas_2549" - %"$consume_2555" = sub i64 %"$gasrem_2551", 1 - store i64 %"$consume_2555", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2556", i32 0, i32 0), i32 3 }, %String* %val, align 8 - %"$gasrem_2557" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2558" = icmp ugt i64 1, %"$gasrem_2557" - br i1 %"$gascmp_2558", label %"$out_of_gas_2559", label %"$have_gas_2560" +"$have_gas_2531": ; preds = %"$out_of_gas_2530", %"$have_gas_2526" + %"$consume_2532" = sub i64 %"$gasrem_2528", 1 + store i64 %"$consume_2532", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2533", i32 0, i32 0), i32 3 }, %String* %val, align 8 + %"$gasrem_2534" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2535" = icmp ugt i64 1, %"$gasrem_2534" + br i1 %"$gascmp_2535", label %"$out_of_gas_2536", label %"$have_gas_2537" -"$out_of_gas_2559": ; preds = %"$have_gas_2554" +"$out_of_gas_2536": ; preds = %"$have_gas_2531" call void @_out_of_gas() - br label %"$have_gas_2560" + br label %"$have_gas_2537" -"$have_gas_2560": ; preds = %"$out_of_gas_2559", %"$have_gas_2554" - %"$consume_2561" = sub i64 %"$gasrem_2557", 1 - store i64 %"$consume_2561", i64* @_gasrem, align 8 +"$have_gas_2537": ; preds = %"$out_of_gas_2536", %"$have_gas_2531" + %"$consume_2538" = sub i64 %"$gasrem_2534", 1 + store i64 %"$consume_2538", i64* @_gasrem, align 8 %"$m1_10" = alloca %Map_String_String*, align 8 - %"$m1_2562" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2562_2563" = bitcast %Map_String_String* %"$m1_2562" to i8* - %"$_lengthof_call_2564" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2562_2563") - %"$gasadd_2565" = add i64 1, %"$_lengthof_call_2564" - %"$gasrem_2566" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2567" = icmp ugt i64 %"$gasadd_2565", %"$gasrem_2566" - br i1 %"$gascmp_2567", label %"$out_of_gas_2568", label %"$have_gas_2569" - -"$out_of_gas_2568": ; preds = %"$have_gas_2560" - call void @_out_of_gas() - br label %"$have_gas_2569" - -"$have_gas_2569": ; preds = %"$out_of_gas_2568", %"$have_gas_2560" - %"$consume_2570" = sub i64 %"$gasrem_2566", %"$gasadd_2565" - store i64 %"$consume_2570", i64* @_gasrem, align 8 - %"$execptr_load_2571" = load i8*, i8** @_execptr, align 8 - %"$m1_2572" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2572_2573" = bitcast %Map_String_String* %"$m1_2572" to i8* - %"$put_key1a_2574" = alloca %String, align 8 - %"$key1a_2575" = load %String, %String* %key1a, align 8 - store %String %"$key1a_2575", %String* %"$put_key1a_2574", align 8 - %"$$put_key1a_2574_2576" = bitcast %String* %"$put_key1a_2574" to i8* - %"$put_val_2577" = alloca %String, align 8 - %"$val_2578" = load %String, %String* %val, align 8 - store %String %"$val_2578", %String* %"$put_val_2577", align 8 - %"$$put_val_2577_2579" = bitcast %String* %"$put_val_2577" to i8* - %"$put_call_2580" = call i8* @_put(i8* %"$execptr_load_2571", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2572_2573", i8* %"$$put_key1a_2574_2576", i8* %"$$put_val_2577_2579") - %"$put_2581" = bitcast i8* %"$put_call_2580" to %Map_String_String* - store %Map_String_String* %"$put_2581", %Map_String_String** %"$m1_10", align 8 - %"$$m1_10_2582" = load %Map_String_String*, %Map_String_String** %"$m1_10", align 8 - %"$$$m1_10_2582_2583" = bitcast %Map_String_String* %"$$m1_10_2582" to i8* - %"$_literal_cost_call_2584" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$$m1_10_2582_2583") - %"$gasrem_2585" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2586" = icmp ugt i64 %"$_literal_cost_call_2584", %"$gasrem_2585" - br i1 %"$gascmp_2586", label %"$out_of_gas_2587", label %"$have_gas_2588" - -"$out_of_gas_2587": ; preds = %"$have_gas_2569" - call void @_out_of_gas() - br label %"$have_gas_2588" - -"$have_gas_2588": ; preds = %"$out_of_gas_2587", %"$have_gas_2569" - %"$consume_2589" = sub i64 %"$gasrem_2585", %"$_literal_cost_call_2584" - store i64 %"$consume_2589", i64* @_gasrem, align 8 - %"$execptr_load_2590" = load i8*, i8** @_execptr, align 8 - %"$$m1_10_2592" = load %Map_String_String*, %Map_String_String** %"$m1_10", align 8 - %"$update_value_2593" = bitcast %Map_String_String* %"$$m1_10_2592" to i8* - call void @_update_field(i8* %"$execptr_load_2590", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2591", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i8* %"$update_value_2593") + %"$m1_2539" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2539_2540" = bitcast %Map_String_String* %"$m1_2539" to i8* + %"$_lengthof_call_2541" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2539_2540") + %"$gasadd_2542" = add i64 1, %"$_lengthof_call_2541" + %"$gasrem_2543" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2544" = icmp ugt i64 %"$gasadd_2542", %"$gasrem_2543" + br i1 %"$gascmp_2544", label %"$out_of_gas_2545", label %"$have_gas_2546" + +"$out_of_gas_2545": ; preds = %"$have_gas_2537" + call void @_out_of_gas() + br label %"$have_gas_2546" + +"$have_gas_2546": ; preds = %"$out_of_gas_2545", %"$have_gas_2537" + %"$consume_2547" = sub i64 %"$gasrem_2543", %"$gasadd_2542" + store i64 %"$consume_2547", i64* @_gasrem, align 8 + %"$execptr_load_2548" = load i8*, i8** @_execptr, align 8 + %"$m1_2549" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2549_2550" = bitcast %Map_String_String* %"$m1_2549" to i8* + %"$put_key1a_2551" = alloca %String, align 8 + %"$key1a_2552" = load %String, %String* %key1a, align 8 + store %String %"$key1a_2552", %String* %"$put_key1a_2551", align 8 + %"$$put_key1a_2551_2553" = bitcast %String* %"$put_key1a_2551" to i8* + %"$put_val_2554" = alloca %String, align 8 + %"$val_2555" = load %String, %String* %val, align 8 + store %String %"$val_2555", %String* %"$put_val_2554", align 8 + %"$$put_val_2554_2556" = bitcast %String* %"$put_val_2554" to i8* + %"$put_call_2557" = call i8* @_put(i8* %"$execptr_load_2548", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2549_2550", i8* %"$$put_key1a_2551_2553", i8* %"$$put_val_2554_2556") + %"$put_2558" = bitcast i8* %"$put_call_2557" to %Map_String_String* + store %Map_String_String* %"$put_2558", %Map_String_String** %"$m1_10", align 8 + %"$$m1_10_2559" = load %Map_String_String*, %Map_String_String** %"$m1_10", align 8 + %"$$$m1_10_2559_2560" = bitcast %Map_String_String* %"$$m1_10_2559" to i8* + %"$_literal_cost_call_2561" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$$m1_10_2559_2560") + %"$gasrem_2562" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2563" = icmp ugt i64 %"$_literal_cost_call_2561", %"$gasrem_2562" + br i1 %"$gascmp_2563", label %"$out_of_gas_2564", label %"$have_gas_2565" + +"$out_of_gas_2564": ; preds = %"$have_gas_2546" + call void @_out_of_gas() + br label %"$have_gas_2565" + +"$have_gas_2565": ; preds = %"$out_of_gas_2564", %"$have_gas_2546" + %"$consume_2566" = sub i64 %"$gasrem_2562", %"$_literal_cost_call_2561" + store i64 %"$consume_2566", i64* @_gasrem, align 8 + %"$execptr_load_2567" = load i8*, i8** @_execptr, align 8 + %"$$m1_10_2569" = load %Map_String_String*, %Map_String_String** %"$m1_10", align 8 + %"$update_value_2570" = bitcast %Map_String_String* %"$$m1_10_2569" to i8* + call void @_update_field(i8* %"$execptr_load_2567", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2568", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i8* %"$update_value_2570") ret void } @@ -5352,359 +5320,359 @@ declare %TName_Bool* @_eq_Uint32(i8*, %Uint32, %Uint32) define void @t9(i8* %0) { entry: - %"$_amount_2595" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2596" = bitcast i8* %"$_amount_2595" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2596", align 8 - %"$_origin_2597" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2598" = bitcast i8* %"$_origin_2597" to [20 x i8]* - %"$_sender_2599" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2600" = bitcast i8* %"$_sender_2599" to [20 x i8]* - call void @"$t9_2445"(%Uint128 %_amount, [20 x i8]* %"$_origin_2598", [20 x i8]* %"$_sender_2600") + %"$_amount_2572" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2573" = bitcast i8* %"$_amount_2572" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2573", align 8 + %"$_origin_2574" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2575" = bitcast i8* %"$_origin_2574" to [20 x i8]* + %"$_sender_2576" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2577" = bitcast i8* %"$_sender_2576" to [20 x i8]* + call void @"$t9_2422"(%Uint128 %_amount, [20 x i8]* %"$_origin_2575", [20 x i8]* %"$_sender_2577") ret void } -define internal void @"$t10_2601"(%Uint128 %_amount, [20 x i8]* %"$_origin_2602", [20 x i8]* %"$_sender_2603") { +define internal void @"$t10_2578"(%Uint128 %_amount, [20 x i8]* %"$_origin_2579", [20 x i8]* %"$_sender_2580") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2602", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2603", align 1 - %"$gasrem_2604" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2605" = icmp ugt i64 1, %"$gasrem_2604" - br i1 %"$gascmp_2605", label %"$out_of_gas_2606", label %"$have_gas_2607" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2579", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2580", align 1 + %"$gasrem_2581" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2582" = icmp ugt i64 1, %"$gasrem_2581" + br i1 %"$gascmp_2582", label %"$out_of_gas_2583", label %"$have_gas_2584" -"$out_of_gas_2606": ; preds = %entry +"$out_of_gas_2583": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2607" + br label %"$have_gas_2584" -"$have_gas_2607": ; preds = %"$out_of_gas_2606", %entry - %"$consume_2608" = sub i64 %"$gasrem_2604", 1 - store i64 %"$consume_2608", i64* @_gasrem, align 8 +"$have_gas_2584": ; preds = %"$out_of_gas_2583", %entry + %"$consume_2585" = sub i64 %"$gasrem_2581", 1 + store i64 %"$consume_2585", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_2609" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2610" = icmp ugt i64 1, %"$gasrem_2609" - br i1 %"$gascmp_2610", label %"$out_of_gas_2611", label %"$have_gas_2612" + %"$gasrem_2586" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2587" = icmp ugt i64 1, %"$gasrem_2586" + br i1 %"$gascmp_2587", label %"$out_of_gas_2588", label %"$have_gas_2589" -"$out_of_gas_2611": ; preds = %"$have_gas_2607" +"$out_of_gas_2588": ; preds = %"$have_gas_2584" call void @_out_of_gas() - br label %"$have_gas_2612" + br label %"$have_gas_2589" -"$have_gas_2612": ; preds = %"$out_of_gas_2611", %"$have_gas_2607" - %"$consume_2613" = sub i64 %"$gasrem_2609", 1 - store i64 %"$consume_2613", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2614", i32 0, i32 0), i32 3 }, %String* %tname, align 8 - %"$gasrem_2615" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2616" = icmp ugt i64 1, %"$gasrem_2615" - br i1 %"$gascmp_2616", label %"$out_of_gas_2617", label %"$have_gas_2618" +"$have_gas_2589": ; preds = %"$out_of_gas_2588", %"$have_gas_2584" + %"$consume_2590" = sub i64 %"$gasrem_2586", 1 + store i64 %"$consume_2590", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2591", i32 0, i32 0), i32 3 }, %String* %tname, align 8 + %"$gasrem_2592" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2593" = icmp ugt i64 1, %"$gasrem_2592" + br i1 %"$gascmp_2593", label %"$out_of_gas_2594", label %"$have_gas_2595" -"$out_of_gas_2617": ; preds = %"$have_gas_2612" +"$out_of_gas_2594": ; preds = %"$have_gas_2589" call void @_out_of_gas() - br label %"$have_gas_2618" + br label %"$have_gas_2595" -"$have_gas_2618": ; preds = %"$out_of_gas_2617", %"$have_gas_2612" - %"$consume_2619" = sub i64 %"$gasrem_2615", 1 - store i64 %"$consume_2619", i64* @_gasrem, align 8 +"$have_gas_2595": ; preds = %"$out_of_gas_2594", %"$have_gas_2589" + %"$consume_2596" = sub i64 %"$gasrem_2592", 1 + store i64 %"$consume_2596", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_2620" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2621" = icmp ugt i64 1, %"$gasrem_2620" - br i1 %"$gascmp_2621", label %"$out_of_gas_2622", label %"$have_gas_2623" + %"$gasrem_2597" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2598" = icmp ugt i64 1, %"$gasrem_2597" + br i1 %"$gascmp_2598", label %"$out_of_gas_2599", label %"$have_gas_2600" -"$out_of_gas_2622": ; preds = %"$have_gas_2618" +"$out_of_gas_2599": ; preds = %"$have_gas_2595" call void @_out_of_gas() - br label %"$have_gas_2623" + br label %"$have_gas_2600" -"$have_gas_2623": ; preds = %"$out_of_gas_2622", %"$have_gas_2618" - %"$consume_2624" = sub i64 %"$gasrem_2620", 1 - store i64 %"$consume_2624", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2625", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 +"$have_gas_2600": ; preds = %"$out_of_gas_2599", %"$have_gas_2595" + %"$consume_2601" = sub i64 %"$gasrem_2597", 1 + store i64 %"$consume_2601", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2602", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 %m1 = alloca %Map_String_String*, align 8 - %"$execptr_load_2627" = load i8*, i8** @_execptr, align 8 - %"$m1_call_2628" = call i8* @_fetch_field(i8* %"$execptr_load_2627", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2626", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i32 1) - %"$m1_2629" = bitcast i8* %"$m1_call_2628" to %Map_String_String* - store %Map_String_String* %"$m1_2629", %Map_String_String** %m1, align 8 + %"$execptr_load_2604" = load i8*, i8** @_execptr, align 8 + %"$m1_call_2605" = call i8* @_fetch_field(i8* %"$execptr_load_2604", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2603", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i32 1) + %"$m1_2606" = bitcast i8* %"$m1_call_2605" to %Map_String_String* + store %Map_String_String* %"$m1_2606", %Map_String_String** %m1, align 8 + %"$m1_2607" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2607_2608" = bitcast %Map_String_String* %"$m1_2607" to i8* + %"$_literal_cost_call_2609" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2607_2608") + %"$m1_2610" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2610_2611" = bitcast %Map_String_String* %"$m1_2610" to i8* + %"$_mapsortcost_call_2612" = call i64 @_mapsortcost(i8* %"$$m1_2610_2611") + %"$gasadd_2613" = add i64 %"$_literal_cost_call_2609", %"$_mapsortcost_call_2612" + %"$gasrem_2614" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2615" = icmp ugt i64 %"$gasadd_2613", %"$gasrem_2614" + br i1 %"$gascmp_2615", label %"$out_of_gas_2616", label %"$have_gas_2617" + +"$out_of_gas_2616": ; preds = %"$have_gas_2600" + call void @_out_of_gas() + br label %"$have_gas_2617" + +"$have_gas_2617": ; preds = %"$out_of_gas_2616", %"$have_gas_2600" + %"$consume_2618" = sub i64 %"$gasrem_2614", %"$gasadd_2613" + store i64 %"$consume_2618", i64* @_gasrem, align 8 + %"$gasrem_2619" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2620" = icmp ugt i64 1, %"$gasrem_2619" + br i1 %"$gascmp_2620", label %"$out_of_gas_2621", label %"$have_gas_2622" + +"$out_of_gas_2621": ; preds = %"$have_gas_2617" + call void @_out_of_gas() + br label %"$have_gas_2622" + +"$have_gas_2622": ; preds = %"$out_of_gas_2621", %"$have_gas_2617" + %"$consume_2623" = sub i64 %"$gasrem_2619", 1 + store i64 %"$consume_2623", i64* @_gasrem, align 8 + %c1 = alloca %TName_Option_String*, align 8 + %"$gasrem_2624" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2625" = icmp ugt i64 1, %"$gasrem_2624" + br i1 %"$gascmp_2625", label %"$out_of_gas_2626", label %"$have_gas_2627" + +"$out_of_gas_2626": ; preds = %"$have_gas_2622" + call void @_out_of_gas() + br label %"$have_gas_2627" + +"$have_gas_2627": ; preds = %"$out_of_gas_2626", %"$have_gas_2622" + %"$consume_2628" = sub i64 %"$gasrem_2624", 1 + store i64 %"$consume_2628", i64* @_gasrem, align 8 + %"$execptr_load_2629" = load i8*, i8** @_execptr, align 8 %"$m1_2630" = load %Map_String_String*, %Map_String_String** %m1, align 8 %"$$m1_2630_2631" = bitcast %Map_String_String* %"$m1_2630" to i8* - %"$_literal_cost_call_2632" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2630_2631") - %"$m1_2633" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2633_2634" = bitcast %Map_String_String* %"$m1_2633" to i8* - %"$_mapsortcost_call_2635" = call i64 @_mapsortcost(i8* %"$$m1_2633_2634") - %"$gasadd_2636" = add i64 %"$_literal_cost_call_2632", %"$_mapsortcost_call_2635" + %"$get_key1a_2632" = alloca %String, align 8 + %"$key1a_2633" = load %String, %String* %key1a, align 8 + store %String %"$key1a_2633", %String* %"$get_key1a_2632", align 8 + %"$$get_key1a_2632_2634" = bitcast %String* %"$get_key1a_2632" to i8* + %"$get_call_2635" = call i8* @_get(i8* %"$execptr_load_2629", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2630_2631", i8* %"$$get_key1a_2632_2634") + %"$get_2636" = bitcast i8* %"$get_call_2635" to %TName_Option_String* + store %TName_Option_String* %"$get_2636", %TName_Option_String** %c1, align 8 %"$gasrem_2637" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2638" = icmp ugt i64 %"$gasadd_2636", %"$gasrem_2637" + %"$gascmp_2638" = icmp ugt i64 2, %"$gasrem_2637" br i1 %"$gascmp_2638", label %"$out_of_gas_2639", label %"$have_gas_2640" -"$out_of_gas_2639": ; preds = %"$have_gas_2623" +"$out_of_gas_2639": ; preds = %"$have_gas_2627" call void @_out_of_gas() br label %"$have_gas_2640" -"$have_gas_2640": ; preds = %"$out_of_gas_2639", %"$have_gas_2623" - %"$consume_2641" = sub i64 %"$gasrem_2637", %"$gasadd_2636" +"$have_gas_2640": ; preds = %"$out_of_gas_2639", %"$have_gas_2627" + %"$consume_2641" = sub i64 %"$gasrem_2637", 2 store i64 %"$consume_2641", i64* @_gasrem, align 8 - %"$gasrem_2642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2643" = icmp ugt i64 1, %"$gasrem_2642" - br i1 %"$gascmp_2643", label %"$out_of_gas_2644", label %"$have_gas_2645" - -"$out_of_gas_2644": ; preds = %"$have_gas_2640" - call void @_out_of_gas() - br label %"$have_gas_2645" - -"$have_gas_2645": ; preds = %"$out_of_gas_2644", %"$have_gas_2640" - %"$consume_2646" = sub i64 %"$gasrem_2642", 1 - store i64 %"$consume_2646", i64* @_gasrem, align 8 - %c1 = alloca %TName_Option_String*, align 8 - %"$gasrem_2647" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2648" = icmp ugt i64 1, %"$gasrem_2647" - br i1 %"$gascmp_2648", label %"$out_of_gas_2649", label %"$have_gas_2650" - -"$out_of_gas_2649": ; preds = %"$have_gas_2645" - call void @_out_of_gas() - br label %"$have_gas_2650" - -"$have_gas_2650": ; preds = %"$out_of_gas_2649", %"$have_gas_2645" - %"$consume_2651" = sub i64 %"$gasrem_2647", 1 - store i64 %"$consume_2651", i64* @_gasrem, align 8 - %"$execptr_load_2652" = load i8*, i8** @_execptr, align 8 - %"$m1_2653" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2653_2654" = bitcast %Map_String_String* %"$m1_2653" to i8* - %"$get_key1a_2655" = alloca %String, align 8 - %"$key1a_2656" = load %String, %String* %key1a, align 8 - store %String %"$key1a_2656", %String* %"$get_key1a_2655", align 8 - %"$$get_key1a_2655_2657" = bitcast %String* %"$get_key1a_2655" to i8* - %"$get_call_2658" = call i8* @_get(i8* %"$execptr_load_2652", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2653_2654", i8* %"$$get_key1a_2655_2657") - %"$get_2659" = bitcast i8* %"$get_call_2658" to %TName_Option_String* - store %TName_Option_String* %"$get_2659", %TName_Option_String** %c1, align 8 - %"$gasrem_2660" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2661" = icmp ugt i64 2, %"$gasrem_2660" - br i1 %"$gascmp_2661", label %"$out_of_gas_2662", label %"$have_gas_2663" - -"$out_of_gas_2662": ; preds = %"$have_gas_2650" - call void @_out_of_gas() - br label %"$have_gas_2663" - -"$have_gas_2663": ; preds = %"$out_of_gas_2662", %"$have_gas_2650" - %"$consume_2664" = sub i64 %"$gasrem_2660", 2 - store i64 %"$consume_2664", i64* @_gasrem, align 8 - %"$c1_2666" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 - %"$c1_tag_2667" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2666", i32 0, i32 0 - %"$c1_tag_2668" = load i8, i8* %"$c1_tag_2667", align 1 - switch i8 %"$c1_tag_2668", label %"$empty_default_2669" [ - i8 0, label %"$Some_2670" - i8 1, label %"$None_2743" + %"$c1_2643" = load %TName_Option_String*, %TName_Option_String** %c1, align 8 + %"$c1_tag_2644" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$c1_2643", i32 0, i32 0 + %"$c1_tag_2645" = load i8, i8* %"$c1_tag_2644", align 1 + switch i8 %"$c1_tag_2645", label %"$empty_default_2646" [ + i8 0, label %"$Some_2647" + i8 1, label %"$None_2720" ] -"$Some_2670": ; preds = %"$have_gas_2663" - %"$c1_2671" = bitcast %TName_Option_String* %"$c1_2666" to %CName_Some_String* - %"$c_gep_2672" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2671", i32 0, i32 1 - %"$c_load_2673" = load %String, %String* %"$c_gep_2672", align 8 +"$Some_2647": ; preds = %"$have_gas_2640" + %"$c1_2648" = bitcast %TName_Option_String* %"$c1_2643" to %CName_Some_String* + %"$c_gep_2649" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$c1_2648", i32 0, i32 1 + %"$c_load_2650" = load %String, %String* %"$c_gep_2649", align 8 %c = alloca %String, align 8 - store %String %"$c_load_2673", %String* %c, align 8 - %"$gasrem_2674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2675" = icmp ugt i64 1, %"$gasrem_2674" - br i1 %"$gascmp_2675", label %"$out_of_gas_2676", label %"$have_gas_2677" + store %String %"$c_load_2650", %String* %c, align 8 + %"$gasrem_2651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2652" = icmp ugt i64 1, %"$gasrem_2651" + br i1 %"$gascmp_2652", label %"$out_of_gas_2653", label %"$have_gas_2654" -"$out_of_gas_2676": ; preds = %"$Some_2670" +"$out_of_gas_2653": ; preds = %"$Some_2647" call void @_out_of_gas() - br label %"$have_gas_2677" + br label %"$have_gas_2654" -"$have_gas_2677": ; preds = %"$out_of_gas_2676", %"$Some_2670" - %"$consume_2678" = sub i64 %"$gasrem_2674", 1 - store i64 %"$consume_2678", i64* @_gasrem, align 8 +"$have_gas_2654": ; preds = %"$out_of_gas_2653", %"$Some_2647" + %"$consume_2655" = sub i64 %"$gasrem_2651", 1 + store i64 %"$consume_2655", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_2679" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2680" = icmp ugt i64 1, %"$gasrem_2679" - br i1 %"$gascmp_2680", label %"$out_of_gas_2681", label %"$have_gas_2682" + %"$gasrem_2656" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2657" = icmp ugt i64 1, %"$gasrem_2656" + br i1 %"$gascmp_2657", label %"$out_of_gas_2658", label %"$have_gas_2659" -"$out_of_gas_2681": ; preds = %"$have_gas_2677" +"$out_of_gas_2658": ; preds = %"$have_gas_2654" call void @_out_of_gas() - br label %"$have_gas_2682" + br label %"$have_gas_2659" -"$have_gas_2682": ; preds = %"$out_of_gas_2681", %"$have_gas_2677" - %"$consume_2683" = sub i64 %"$gasrem_2679", 1 - store i64 %"$consume_2683", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2684", i32 0, i32 0), i32 3 }, %String* %v, align 8 - %"$gasrem_2685" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2686" = icmp ugt i64 1, %"$gasrem_2685" - br i1 %"$gascmp_2686", label %"$out_of_gas_2687", label %"$have_gas_2688" +"$have_gas_2659": ; preds = %"$out_of_gas_2658", %"$have_gas_2654" + %"$consume_2660" = sub i64 %"$gasrem_2656", 1 + store i64 %"$consume_2660", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2661", i32 0, i32 0), i32 3 }, %String* %v, align 8 + %"$gasrem_2662" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2663" = icmp ugt i64 1, %"$gasrem_2662" + br i1 %"$gascmp_2663", label %"$out_of_gas_2664", label %"$have_gas_2665" -"$out_of_gas_2687": ; preds = %"$have_gas_2682" +"$out_of_gas_2664": ; preds = %"$have_gas_2659" call void @_out_of_gas() - br label %"$have_gas_2688" + br label %"$have_gas_2665" -"$have_gas_2688": ; preds = %"$out_of_gas_2687", %"$have_gas_2682" - %"$consume_2689" = sub i64 %"$gasrem_2685", 1 - store i64 %"$consume_2689", i64* @_gasrem, align 8 +"$have_gas_2665": ; preds = %"$out_of_gas_2664", %"$have_gas_2659" + %"$consume_2666" = sub i64 %"$gasrem_2662", 1 + store i64 %"$consume_2666", i64* @_gasrem, align 8 %eq = alloca %TName_Bool*, align 8 - %"$_literal_cost_c_2690" = alloca %String, align 8 - %"$c_2691" = load %String, %String* %c, align 8 - store %String %"$c_2691", %String* %"$_literal_cost_c_2690", align 8 - %"$$_literal_cost_c_2690_2692" = bitcast %String* %"$_literal_cost_c_2690" to i8* - %"$_literal_cost_call_2693" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_c_2690_2692") - %"$_literal_cost_v_2694" = alloca %String, align 8 - %"$v_2695" = load %String, %String* %v, align 8 - store %String %"$v_2695", %String* %"$_literal_cost_v_2694", align 8 - %"$$_literal_cost_v_2694_2696" = bitcast %String* %"$_literal_cost_v_2694" to i8* - %"$_literal_cost_call_2697" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v_2694_2696") - %"$gasmin_2698" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2693", i64 %"$_literal_cost_call_2697") - %"$gasrem_2699" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2700" = icmp ugt i64 %"$gasmin_2698", %"$gasrem_2699" - br i1 %"$gascmp_2700", label %"$out_of_gas_2701", label %"$have_gas_2702" - -"$out_of_gas_2701": ; preds = %"$have_gas_2688" - call void @_out_of_gas() - br label %"$have_gas_2702" - -"$have_gas_2702": ; preds = %"$out_of_gas_2701", %"$have_gas_2688" - %"$consume_2703" = sub i64 %"$gasrem_2699", %"$gasmin_2698" - store i64 %"$consume_2703", i64* @_gasrem, align 8 - %"$execptr_load_2704" = load i8*, i8** @_execptr, align 8 - %"$c_2705" = load %String, %String* %c, align 8 - %"$v_2706" = load %String, %String* %v, align 8 - %"$eq_call_2707" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2704", %String %"$c_2705", %String %"$v_2706") - store %TName_Bool* %"$eq_call_2707", %TName_Bool** %eq, align 8 - %"$gasrem_2709" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2710" = icmp ugt i64 2, %"$gasrem_2709" - br i1 %"$gascmp_2710", label %"$out_of_gas_2711", label %"$have_gas_2712" - -"$out_of_gas_2711": ; preds = %"$have_gas_2702" - call void @_out_of_gas() - br label %"$have_gas_2712" - -"$have_gas_2712": ; preds = %"$out_of_gas_2711", %"$have_gas_2702" - %"$consume_2713" = sub i64 %"$gasrem_2709", 2 - store i64 %"$consume_2713", i64* @_gasrem, align 8 - %"$eq_2715" = load %TName_Bool*, %TName_Bool** %eq, align 8 - %"$eq_tag_2716" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2715", i32 0, i32 0 - %"$eq_tag_2717" = load i8, i8* %"$eq_tag_2716", align 1 - switch i8 %"$eq_tag_2717", label %"$empty_default_2718" [ - i8 0, label %"$True_2719" - i8 1, label %"$False_2721" + %"$_literal_cost_c_2667" = alloca %String, align 8 + %"$c_2668" = load %String, %String* %c, align 8 + store %String %"$c_2668", %String* %"$_literal_cost_c_2667", align 8 + %"$$_literal_cost_c_2667_2669" = bitcast %String* %"$_literal_cost_c_2667" to i8* + %"$_literal_cost_call_2670" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_c_2667_2669") + %"$_literal_cost_v_2671" = alloca %String, align 8 + %"$v_2672" = load %String, %String* %v, align 8 + store %String %"$v_2672", %String* %"$_literal_cost_v_2671", align 8 + %"$$_literal_cost_v_2671_2673" = bitcast %String* %"$_literal_cost_v_2671" to i8* + %"$_literal_cost_call_2674" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v_2671_2673") + %"$gasmin_2675" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_2670", i64 %"$_literal_cost_call_2674") + %"$gasrem_2676" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2677" = icmp ugt i64 %"$gasmin_2675", %"$gasrem_2676" + br i1 %"$gascmp_2677", label %"$out_of_gas_2678", label %"$have_gas_2679" + +"$out_of_gas_2678": ; preds = %"$have_gas_2665" + call void @_out_of_gas() + br label %"$have_gas_2679" + +"$have_gas_2679": ; preds = %"$out_of_gas_2678", %"$have_gas_2665" + %"$consume_2680" = sub i64 %"$gasrem_2676", %"$gasmin_2675" + store i64 %"$consume_2680", i64* @_gasrem, align 8 + %"$execptr_load_2681" = load i8*, i8** @_execptr, align 8 + %"$c_2682" = load %String, %String* %c, align 8 + %"$v_2683" = load %String, %String* %v, align 8 + %"$eq_call_2684" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_2681", %String %"$c_2682", %String %"$v_2683") + store %TName_Bool* %"$eq_call_2684", %TName_Bool** %eq, align 8 + %"$gasrem_2686" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2687" = icmp ugt i64 2, %"$gasrem_2686" + br i1 %"$gascmp_2687", label %"$out_of_gas_2688", label %"$have_gas_2689" + +"$out_of_gas_2688": ; preds = %"$have_gas_2679" + call void @_out_of_gas() + br label %"$have_gas_2689" + +"$have_gas_2689": ; preds = %"$out_of_gas_2688", %"$have_gas_2679" + %"$consume_2690" = sub i64 %"$gasrem_2686", 2 + store i64 %"$consume_2690", i64* @_gasrem, align 8 + %"$eq_2692" = load %TName_Bool*, %TName_Bool** %eq, align 8 + %"$eq_tag_2693" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$eq_2692", i32 0, i32 0 + %"$eq_tag_2694" = load i8, i8* %"$eq_tag_2693", align 1 + switch i8 %"$eq_tag_2694", label %"$empty_default_2695" [ + i8 0, label %"$True_2696" + i8 1, label %"$False_2698" ] -"$True_2719": ; preds = %"$have_gas_2712" - %"$eq_2720" = bitcast %TName_Bool* %"$eq_2715" to %CName_True* - br label %"$matchsucc_2714" +"$True_2696": ; preds = %"$have_gas_2689" + %"$eq_2697" = bitcast %TName_Bool* %"$eq_2692" to %CName_True* + br label %"$matchsucc_2691" -"$False_2721": ; preds = %"$have_gas_2712" - %"$eq_2722" = bitcast %TName_Bool* %"$eq_2715" to %CName_False* - %"$gasrem_2723" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2724" = icmp ugt i64 1, %"$gasrem_2723" - br i1 %"$gascmp_2724", label %"$out_of_gas_2725", label %"$have_gas_2726" +"$False_2698": ; preds = %"$have_gas_2689" + %"$eq_2699" = bitcast %TName_Bool* %"$eq_2692" to %CName_False* + %"$gasrem_2700" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2701" = icmp ugt i64 1, %"$gasrem_2700" + br i1 %"$gascmp_2701", label %"$out_of_gas_2702", label %"$have_gas_2703" -"$out_of_gas_2725": ; preds = %"$False_2721" +"$out_of_gas_2702": ; preds = %"$False_2698" call void @_out_of_gas() - br label %"$have_gas_2726" + br label %"$have_gas_2703" -"$have_gas_2726": ; preds = %"$out_of_gas_2725", %"$False_2721" - %"$consume_2727" = sub i64 %"$gasrem_2723", 1 - store i64 %"$consume_2727", i64* @_gasrem, align 8 +"$have_gas_2703": ; preds = %"$out_of_gas_2702", %"$False_2698" + %"$consume_2704" = sub i64 %"$gasrem_2700", 1 + store i64 %"$consume_2704", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_2728" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2729" = icmp ugt i64 1, %"$gasrem_2728" - br i1 %"$gascmp_2729", label %"$out_of_gas_2730", label %"$have_gas_2731" + %"$gasrem_2705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2706" = icmp ugt i64 1, %"$gasrem_2705" + br i1 %"$gascmp_2706", label %"$out_of_gas_2707", label %"$have_gas_2708" -"$out_of_gas_2730": ; preds = %"$have_gas_2726" +"$out_of_gas_2707": ; preds = %"$have_gas_2703" call void @_out_of_gas() - br label %"$have_gas_2731" + br label %"$have_gas_2708" -"$have_gas_2731": ; preds = %"$out_of_gas_2730", %"$have_gas_2726" - %"$consume_2732" = sub i64 %"$gasrem_2728", 1 - store i64 %"$consume_2732", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$stringlit_2733", i32 0, i32 0), i32 25 }, %String* %m, align 8 - %"$gasrem_2734" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2735" = icmp ugt i64 1, %"$gasrem_2734" - br i1 %"$gascmp_2735", label %"$out_of_gas_2736", label %"$have_gas_2737" +"$have_gas_2708": ; preds = %"$out_of_gas_2707", %"$have_gas_2703" + %"$consume_2709" = sub i64 %"$gasrem_2705", 1 + store i64 %"$consume_2709", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"$stringlit_2710", i32 0, i32 0), i32 25 }, %String* %m, align 8 + %"$gasrem_2711" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2712" = icmp ugt i64 1, %"$gasrem_2711" + br i1 %"$gascmp_2712", label %"$out_of_gas_2713", label %"$have_gas_2714" -"$out_of_gas_2736": ; preds = %"$have_gas_2731" +"$out_of_gas_2713": ; preds = %"$have_gas_2708" call void @_out_of_gas() - br label %"$have_gas_2737" + br label %"$have_gas_2714" -"$have_gas_2737": ; preds = %"$out_of_gas_2736", %"$have_gas_2731" - %"$consume_2738" = sub i64 %"$gasrem_2734", 1 - store i64 %"$consume_2738", i64* @_gasrem, align 8 - %"$fail_msg__origin_2739" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2739", align 1 - %"$fail_msg__sender_2740" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2740", align 1 - %"$tname_2741" = load %String, %String* %tname, align 8 - %"$m_2742" = load %String, %String* %m, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2739", [20 x i8]* %"$fail_msg__sender_2740", %String %"$tname_2741", %String %"$m_2742") - br label %"$matchsucc_2714" +"$have_gas_2714": ; preds = %"$out_of_gas_2713", %"$have_gas_2708" + %"$consume_2715" = sub i64 %"$gasrem_2711", 1 + store i64 %"$consume_2715", i64* @_gasrem, align 8 + %"$fail_msg__origin_2716" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2716", align 1 + %"$fail_msg__sender_2717" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2717", align 1 + %"$tname_2718" = load %String, %String* %tname, align 8 + %"$m_2719" = load %String, %String* %m, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2716", [20 x i8]* %"$fail_msg__sender_2717", %String %"$tname_2718", %String %"$m_2719") + br label %"$matchsucc_2691" -"$empty_default_2718": ; preds = %"$have_gas_2712" - br label %"$matchsucc_2714" +"$empty_default_2695": ; preds = %"$have_gas_2689" + br label %"$matchsucc_2691" -"$matchsucc_2714": ; preds = %"$have_gas_2737", %"$True_2719", %"$empty_default_2718" - br label %"$matchsucc_2665" +"$matchsucc_2691": ; preds = %"$have_gas_2714", %"$True_2696", %"$empty_default_2695" + br label %"$matchsucc_2642" -"$None_2743": ; preds = %"$have_gas_2663" - %"$c1_2744" = bitcast %TName_Option_String* %"$c1_2666" to %CName_None_String* - %"$gasrem_2745" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2746" = icmp ugt i64 1, %"$gasrem_2745" - br i1 %"$gascmp_2746", label %"$out_of_gas_2747", label %"$have_gas_2748" +"$None_2720": ; preds = %"$have_gas_2640" + %"$c1_2721" = bitcast %TName_Option_String* %"$c1_2643" to %CName_None_String* + %"$gasrem_2722" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2723" = icmp ugt i64 1, %"$gasrem_2722" + br i1 %"$gascmp_2723", label %"$out_of_gas_2724", label %"$have_gas_2725" -"$out_of_gas_2747": ; preds = %"$None_2743" +"$out_of_gas_2724": ; preds = %"$None_2720" call void @_out_of_gas() - br label %"$have_gas_2748" + br label %"$have_gas_2725" -"$have_gas_2748": ; preds = %"$out_of_gas_2747", %"$None_2743" - %"$consume_2749" = sub i64 %"$gasrem_2745", 1 - store i64 %"$consume_2749", i64* @_gasrem, align 8 +"$have_gas_2725": ; preds = %"$out_of_gas_2724", %"$None_2720" + %"$consume_2726" = sub i64 %"$gasrem_2722", 1 + store i64 %"$consume_2726", i64* @_gasrem, align 8 %m2 = alloca %String, align 8 - %"$gasrem_2750" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2751" = icmp ugt i64 1, %"$gasrem_2750" - br i1 %"$gascmp_2751", label %"$out_of_gas_2752", label %"$have_gas_2753" - -"$out_of_gas_2752": ; preds = %"$have_gas_2748" - call void @_out_of_gas() - br label %"$have_gas_2753" - -"$have_gas_2753": ; preds = %"$out_of_gas_2752", %"$have_gas_2748" - %"$consume_2754" = sub i64 %"$gasrem_2750", 1 - store i64 %"$consume_2754", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_2755", i32 0, i32 0), i32 15 }, %String* %m2, align 8 - %"$gasrem_2756" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2757" = icmp ugt i64 1, %"$gasrem_2756" - br i1 %"$gascmp_2757", label %"$out_of_gas_2758", label %"$have_gas_2759" - -"$out_of_gas_2758": ; preds = %"$have_gas_2753" - call void @_out_of_gas() - br label %"$have_gas_2759" - -"$have_gas_2759": ; preds = %"$out_of_gas_2758", %"$have_gas_2753" - %"$consume_2760" = sub i64 %"$gasrem_2756", 1 - store i64 %"$consume_2760", i64* @_gasrem, align 8 - %"$fail_msg__origin_2761" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2761", align 1 - %"$fail_msg__sender_2762" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2762", align 1 - %"$tname_2763" = load %String, %String* %tname, align 8 - %"$m_2764" = load %String, %String* %m2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2761", [20 x i8]* %"$fail_msg__sender_2762", %String %"$tname_2763", %String %"$m_2764") - br label %"$matchsucc_2665" - -"$empty_default_2669": ; preds = %"$have_gas_2663" - br label %"$matchsucc_2665" - -"$matchsucc_2665": ; preds = %"$have_gas_2759", %"$matchsucc_2714", %"$empty_default_2669" - %"$gasrem_2765" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2766" = icmp ugt i64 1, %"$gasrem_2765" - br i1 %"$gascmp_2766", label %"$out_of_gas_2767", label %"$have_gas_2768" - -"$out_of_gas_2767": ; preds = %"$matchsucc_2665" - call void @_out_of_gas() - br label %"$have_gas_2768" - -"$have_gas_2768": ; preds = %"$out_of_gas_2767", %"$matchsucc_2665" - %"$consume_2769" = sub i64 %"$gasrem_2765", 1 - store i64 %"$consume_2769", i64* @_gasrem, align 8 - %"$indices_buf_2770_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2770_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2770_salloc_load", i64 16) - %"$indices_buf_2770_salloc" = bitcast i8* %"$indices_buf_2770_salloc_salloc" to [16 x i8]* - %"$indices_buf_2770" = bitcast [16 x i8]* %"$indices_buf_2770_salloc" to i8* - %"$key1a_2771" = load %String, %String* %key1a, align 8 - %"$indices_gep_2772" = getelementptr i8, i8* %"$indices_buf_2770", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_2772" to %String* - store %String %"$key1a_2771", %String* %indices_cast, align 8 - %"$execptr_load_2773" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_2773", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2774", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_2770", i8* null) + %"$gasrem_2727" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2728" = icmp ugt i64 1, %"$gasrem_2727" + br i1 %"$gascmp_2728", label %"$out_of_gas_2729", label %"$have_gas_2730" + +"$out_of_gas_2729": ; preds = %"$have_gas_2725" + call void @_out_of_gas() + br label %"$have_gas_2730" + +"$have_gas_2730": ; preds = %"$out_of_gas_2729", %"$have_gas_2725" + %"$consume_2731" = sub i64 %"$gasrem_2727", 1 + store i64 %"$consume_2731", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_2732", i32 0, i32 0), i32 15 }, %String* %m2, align 8 + %"$gasrem_2733" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2734" = icmp ugt i64 1, %"$gasrem_2733" + br i1 %"$gascmp_2734", label %"$out_of_gas_2735", label %"$have_gas_2736" + +"$out_of_gas_2735": ; preds = %"$have_gas_2730" + call void @_out_of_gas() + br label %"$have_gas_2736" + +"$have_gas_2736": ; preds = %"$out_of_gas_2735", %"$have_gas_2730" + %"$consume_2737" = sub i64 %"$gasrem_2733", 1 + store i64 %"$consume_2737", i64* @_gasrem, align 8 + %"$fail_msg__origin_2738" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_2738", align 1 + %"$fail_msg__sender_2739" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_2739", align 1 + %"$tname_2740" = load %String, %String* %tname, align 8 + %"$m_2741" = load %String, %String* %m2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_2738", [20 x i8]* %"$fail_msg__sender_2739", %String %"$tname_2740", %String %"$m_2741") + br label %"$matchsucc_2642" + +"$empty_default_2646": ; preds = %"$have_gas_2640" + br label %"$matchsucc_2642" + +"$matchsucc_2642": ; preds = %"$have_gas_2736", %"$matchsucc_2691", %"$empty_default_2646" + %"$gasrem_2742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2743" = icmp ugt i64 1, %"$gasrem_2742" + br i1 %"$gascmp_2743", label %"$out_of_gas_2744", label %"$have_gas_2745" + +"$out_of_gas_2744": ; preds = %"$matchsucc_2642" + call void @_out_of_gas() + br label %"$have_gas_2745" + +"$have_gas_2745": ; preds = %"$out_of_gas_2744", %"$matchsucc_2642" + %"$consume_2746" = sub i64 %"$gasrem_2742", 1 + store i64 %"$consume_2746", i64* @_gasrem, align 8 + %"$indices_buf_2747_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2747_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2747_salloc_load", i64 16) + %"$indices_buf_2747_salloc" = bitcast i8* %"$indices_buf_2747_salloc_salloc" to [16 x i8]* + %"$indices_buf_2747" = bitcast [16 x i8]* %"$indices_buf_2747_salloc" to i8* + %"$key1a_2748" = load %String, %String* %key1a, align 8 + %"$indices_gep_2749" = getelementptr i8, i8* %"$indices_buf_2747", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2749" to %String* + store %String %"$key1a_2748", %String* %indices_cast, align 8 + %"$execptr_load_2750" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_2750", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2751", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_2747", i8* null) ret void } @@ -5712,68 +5680,119 @@ declare i8* @_get(i8*, %_TyDescrTy_Typ*, i8*, i8*) define void @t10(i8* %0) { entry: - %"$_amount_2776" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2777" = bitcast i8* %"$_amount_2776" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2777", align 8 - %"$_origin_2778" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2779" = bitcast i8* %"$_origin_2778" to [20 x i8]* - %"$_sender_2780" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2781" = bitcast i8* %"$_sender_2780" to [20 x i8]* - call void @"$t10_2601"(%Uint128 %_amount, [20 x i8]* %"$_origin_2779", [20 x i8]* %"$_sender_2781") + %"$_amount_2753" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2754" = bitcast i8* %"$_amount_2753" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2754", align 8 + %"$_origin_2755" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2756" = bitcast i8* %"$_origin_2755" to [20 x i8]* + %"$_sender_2757" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2758" = bitcast i8* %"$_sender_2757" to [20 x i8]* + call void @"$t10_2578"(%Uint128 %_amount, [20 x i8]* %"$_origin_2756", [20 x i8]* %"$_sender_2758") ret void } -define internal void @"$t11_2782"(%Uint128 %_amount, [20 x i8]* %"$_origin_2783", [20 x i8]* %"$_sender_2784") { +define internal void @"$t11_2759"(%Uint128 %_amount, [20 x i8]* %"$_origin_2760", [20 x i8]* %"$_sender_2761") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2783", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2784", align 1 - %"$gasrem_2785" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2786" = icmp ugt i64 1, %"$gasrem_2785" - br i1 %"$gascmp_2786", label %"$out_of_gas_2787", label %"$have_gas_2788" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2760", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2761", align 1 + %"$gasrem_2762" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2763" = icmp ugt i64 1, %"$gasrem_2762" + br i1 %"$gascmp_2763", label %"$out_of_gas_2764", label %"$have_gas_2765" -"$out_of_gas_2787": ; preds = %entry +"$out_of_gas_2764": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2788" + br label %"$have_gas_2765" -"$have_gas_2788": ; preds = %"$out_of_gas_2787", %entry - %"$consume_2789" = sub i64 %"$gasrem_2785", 1 - store i64 %"$consume_2789", i64* @_gasrem, align 8 +"$have_gas_2765": ; preds = %"$out_of_gas_2764", %entry + %"$consume_2766" = sub i64 %"$gasrem_2762", 1 + store i64 %"$consume_2766", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_2790" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2791" = icmp ugt i64 1, %"$gasrem_2790" - br i1 %"$gascmp_2791", label %"$out_of_gas_2792", label %"$have_gas_2793" + %"$gasrem_2767" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2768" = icmp ugt i64 1, %"$gasrem_2767" + br i1 %"$gascmp_2768", label %"$out_of_gas_2769", label %"$have_gas_2770" -"$out_of_gas_2792": ; preds = %"$have_gas_2788" +"$out_of_gas_2769": ; preds = %"$have_gas_2765" call void @_out_of_gas() - br label %"$have_gas_2793" + br label %"$have_gas_2770" -"$have_gas_2793": ; preds = %"$out_of_gas_2792", %"$have_gas_2788" - %"$consume_2794" = sub i64 %"$gasrem_2790", 1 - store i64 %"$consume_2794", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2795", i32 0, i32 0), i32 3 }, %String* %tname, align 8 +"$have_gas_2770": ; preds = %"$out_of_gas_2769", %"$have_gas_2765" + %"$consume_2771" = sub i64 %"$gasrem_2767", 1 + store i64 %"$consume_2771", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2772", i32 0, i32 0), i32 3 }, %String* %tname, align 8 %m1 = alloca %Map_String_String*, align 8 - %"$execptr_load_2797" = load i8*, i8** @_execptr, align 8 - %"$m1_call_2798" = call i8* @_fetch_field(i8* %"$execptr_load_2797", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2796", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i32 1) - %"$m1_2799" = bitcast i8* %"$m1_call_2798" to %Map_String_String* - store %Map_String_String* %"$m1_2799", %Map_String_String** %m1, align 8 - %"$m1_2800" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2800_2801" = bitcast %Map_String_String* %"$m1_2800" to i8* - %"$_literal_cost_call_2802" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_2800_2801") - %"$m1_2803" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2803_2804" = bitcast %Map_String_String* %"$m1_2803" to i8* - %"$_mapsortcost_call_2805" = call i64 @_mapsortcost(i8* %"$$m1_2803_2804") - %"$gasadd_2806" = add i64 %"$_literal_cost_call_2802", %"$_mapsortcost_call_2805" + %"$execptr_load_2774" = load i8*, i8** @_execptr, align 8 + %"$m1_call_2775" = call i8* @_fetch_field(i8* %"$execptr_load_2774", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_2773", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i32 1) + %"$m1_2776" = bitcast i8* %"$m1_call_2775" to %Map_String_String* + store %Map_String_String* %"$m1_2776", %Map_String_String** %m1, align 8 + %"$m1_2777" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2777_2778" = bitcast %Map_String_String* %"$m1_2777" to i8* + %"$_literal_cost_call_2779" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_2777_2778") + %"$m1_2780" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2780_2781" = bitcast %Map_String_String* %"$m1_2780" to i8* + %"$_mapsortcost_call_2782" = call i64 @_mapsortcost(i8* %"$$m1_2780_2781") + %"$gasadd_2783" = add i64 %"$_literal_cost_call_2779", %"$_mapsortcost_call_2782" + %"$gasrem_2784" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2785" = icmp ugt i64 %"$gasadd_2783", %"$gasrem_2784" + br i1 %"$gascmp_2785", label %"$out_of_gas_2786", label %"$have_gas_2787" + +"$out_of_gas_2786": ; preds = %"$have_gas_2770" + call void @_out_of_gas() + br label %"$have_gas_2787" + +"$have_gas_2787": ; preds = %"$out_of_gas_2786", %"$have_gas_2770" + %"$consume_2788" = sub i64 %"$gasrem_2784", %"$gasadd_2783" + store i64 %"$consume_2788", i64* @_gasrem, align 8 + %"$gasrem_2789" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2790" = icmp ugt i64 1, %"$gasrem_2789" + br i1 %"$gascmp_2790", label %"$out_of_gas_2791", label %"$have_gas_2792" + +"$out_of_gas_2791": ; preds = %"$have_gas_2787" + call void @_out_of_gas() + br label %"$have_gas_2792" + +"$have_gas_2792": ; preds = %"$out_of_gas_2791", %"$have_gas_2787" + %"$consume_2793" = sub i64 %"$gasrem_2789", 1 + store i64 %"$consume_2793", i64* @_gasrem, align 8 + %m1_size = alloca %Uint32, align 8 + %"$gasrem_2794" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2795" = icmp ugt i64 1, %"$gasrem_2794" + br i1 %"$gascmp_2795", label %"$out_of_gas_2796", label %"$have_gas_2797" + +"$out_of_gas_2796": ; preds = %"$have_gas_2792" + call void @_out_of_gas() + br label %"$have_gas_2797" + +"$have_gas_2797": ; preds = %"$out_of_gas_2796", %"$have_gas_2792" + %"$consume_2798" = sub i64 %"$gasrem_2794", 1 + store i64 %"$consume_2798", i64* @_gasrem, align 8 + %"$m1_2799" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_2799_2800" = bitcast %Map_String_String* %"$m1_2799" to i8* + %"$size_call_2801" = call %Uint32 @_size(i8* %"$$m1_2799_2800") + store %Uint32 %"$size_call_2801", %Uint32* %m1_size, align 4 + %"$gasrem_2802" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2803" = icmp ugt i64 1, %"$gasrem_2802" + br i1 %"$gascmp_2803", label %"$out_of_gas_2804", label %"$have_gas_2805" + +"$out_of_gas_2804": ; preds = %"$have_gas_2797" + call void @_out_of_gas() + br label %"$have_gas_2805" + +"$have_gas_2805": ; preds = %"$out_of_gas_2804", %"$have_gas_2797" + %"$consume_2806" = sub i64 %"$gasrem_2802", 1 + store i64 %"$consume_2806", i64* @_gasrem, align 8 + %zero = alloca %Uint32, align 8 %"$gasrem_2807" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2808" = icmp ugt i64 %"$gasadd_2806", %"$gasrem_2807" + %"$gascmp_2808" = icmp ugt i64 1, %"$gasrem_2807" br i1 %"$gascmp_2808", label %"$out_of_gas_2809", label %"$have_gas_2810" -"$out_of_gas_2809": ; preds = %"$have_gas_2793" +"$out_of_gas_2809": ; preds = %"$have_gas_2805" call void @_out_of_gas() br label %"$have_gas_2810" -"$have_gas_2810": ; preds = %"$out_of_gas_2809", %"$have_gas_2793" - %"$consume_2811" = sub i64 %"$gasrem_2807", %"$gasadd_2806" +"$have_gas_2810": ; preds = %"$out_of_gas_2809", %"$have_gas_2805" + %"$consume_2811" = sub i64 %"$gasrem_2807", 1 store i64 %"$consume_2811", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4 %"$gasrem_2812" = load i64, i64* @_gasrem, align 8 %"$gascmp_2813" = icmp ugt i64 1, %"$gasrem_2812" br i1 %"$gascmp_2813", label %"$out_of_gas_2814", label %"$have_gas_2815" @@ -5785,9 +5804,9 @@ entry: "$have_gas_2815": ; preds = %"$out_of_gas_2814", %"$have_gas_2810" %"$consume_2816" = sub i64 %"$gasrem_2812", 1 store i64 %"$consume_2816", i64* @_gasrem, align 8 - %m1_size = alloca %Uint32, align 8 + %is_empty = alloca %TName_Bool*, align 8 %"$gasrem_2817" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2818" = icmp ugt i64 1, %"$gasrem_2817" + %"$gascmp_2818" = icmp ugt i64 4, %"$gasrem_2817" br i1 %"$gascmp_2818", label %"$out_of_gas_2819", label %"$have_gas_2820" "$out_of_gas_2819": ; preds = %"$have_gas_2815" @@ -5795,224 +5814,224 @@ entry: br label %"$have_gas_2820" "$have_gas_2820": ; preds = %"$out_of_gas_2819", %"$have_gas_2815" - %"$consume_2821" = sub i64 %"$gasrem_2817", 1 + %"$consume_2821" = sub i64 %"$gasrem_2817", 4 store i64 %"$consume_2821", i64* @_gasrem, align 8 - %"$m1_2822" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_2822_2823" = bitcast %Map_String_String* %"$m1_2822" to i8* - %"$size_call_2824" = call %Uint32 @_size(i8* %"$$m1_2822_2823") - store %Uint32 %"$size_call_2824", %Uint32* %m1_size, align 4 - %"$gasrem_2825" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2826" = icmp ugt i64 1, %"$gasrem_2825" - br i1 %"$gascmp_2826", label %"$out_of_gas_2827", label %"$have_gas_2828" - -"$out_of_gas_2827": ; preds = %"$have_gas_2820" - call void @_out_of_gas() - br label %"$have_gas_2828" - -"$have_gas_2828": ; preds = %"$out_of_gas_2827", %"$have_gas_2820" - %"$consume_2829" = sub i64 %"$gasrem_2825", 1 - store i64 %"$consume_2829", i64* @_gasrem, align 8 - %zero = alloca %Uint32, align 8 - %"$gasrem_2830" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2831" = icmp ugt i64 1, %"$gasrem_2830" - br i1 %"$gascmp_2831", label %"$out_of_gas_2832", label %"$have_gas_2833" - -"$out_of_gas_2832": ; preds = %"$have_gas_2828" - call void @_out_of_gas() - br label %"$have_gas_2833" - -"$have_gas_2833": ; preds = %"$out_of_gas_2832", %"$have_gas_2828" - %"$consume_2834" = sub i64 %"$gasrem_2830", 1 - store i64 %"$consume_2834", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4 - %"$gasrem_2835" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2836" = icmp ugt i64 1, %"$gasrem_2835" - br i1 %"$gascmp_2836", label %"$out_of_gas_2837", label %"$have_gas_2838" - -"$out_of_gas_2837": ; preds = %"$have_gas_2833" - call void @_out_of_gas() - br label %"$have_gas_2838" - -"$have_gas_2838": ; preds = %"$out_of_gas_2837", %"$have_gas_2833" - %"$consume_2839" = sub i64 %"$gasrem_2835", 1 - store i64 %"$consume_2839", i64* @_gasrem, align 8 - %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_2840" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2841" = icmp ugt i64 4, %"$gasrem_2840" - br i1 %"$gascmp_2841", label %"$out_of_gas_2842", label %"$have_gas_2843" - -"$out_of_gas_2842": ; preds = %"$have_gas_2838" - call void @_out_of_gas() - br label %"$have_gas_2843" - -"$have_gas_2843": ; preds = %"$out_of_gas_2842", %"$have_gas_2838" - %"$consume_2844" = sub i64 %"$gasrem_2840", 4 - store i64 %"$consume_2844", i64* @_gasrem, align 8 - %"$execptr_load_2845" = load i8*, i8** @_execptr, align 8 - %"$m1_size_2846" = load %Uint32, %Uint32* %m1_size, align 4 - %"$zero_2847" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_2848" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2845", %Uint32 %"$m1_size_2846", %Uint32 %"$zero_2847") - store %TName_Bool* %"$eq_call_2848", %TName_Bool** %is_empty, align 8 - %"$gasrem_2850" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2851" = icmp ugt i64 2, %"$gasrem_2850" - br i1 %"$gascmp_2851", label %"$out_of_gas_2852", label %"$have_gas_2853" - -"$out_of_gas_2852": ; preds = %"$have_gas_2843" - call void @_out_of_gas() - br label %"$have_gas_2853" - -"$have_gas_2853": ; preds = %"$out_of_gas_2852", %"$have_gas_2843" - %"$consume_2854" = sub i64 %"$gasrem_2850", 2 - store i64 %"$consume_2854", i64* @_gasrem, align 8 - %"$is_empty_2856" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_2857" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2856", i32 0, i32 0 - %"$is_empty_tag_2858" = load i8, i8* %"$is_empty_tag_2857", align 1 - switch i8 %"$is_empty_tag_2858", label %"$empty_default_2859" [ - i8 0, label %"$True_2860" - i8 1, label %"$False_2862" + %"$execptr_load_2822" = load i8*, i8** @_execptr, align 8 + %"$m1_size_2823" = load %Uint32, %Uint32* %m1_size, align 4 + %"$zero_2824" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_2825" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2822", %Uint32 %"$m1_size_2823", %Uint32 %"$zero_2824") + store %TName_Bool* %"$eq_call_2825", %TName_Bool** %is_empty, align 8 + %"$gasrem_2827" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2828" = icmp ugt i64 2, %"$gasrem_2827" + br i1 %"$gascmp_2828", label %"$out_of_gas_2829", label %"$have_gas_2830" + +"$out_of_gas_2829": ; preds = %"$have_gas_2820" + call void @_out_of_gas() + br label %"$have_gas_2830" + +"$have_gas_2830": ; preds = %"$out_of_gas_2829", %"$have_gas_2820" + %"$consume_2831" = sub i64 %"$gasrem_2827", 2 + store i64 %"$consume_2831", i64* @_gasrem, align 8 + %"$is_empty_2833" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_2834" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2833", i32 0, i32 0 + %"$is_empty_tag_2835" = load i8, i8* %"$is_empty_tag_2834", align 1 + switch i8 %"$is_empty_tag_2835", label %"$empty_default_2836" [ + i8 0, label %"$True_2837" + i8 1, label %"$False_2839" ] -"$True_2860": ; preds = %"$have_gas_2853" - %"$is_empty_2861" = bitcast %TName_Bool* %"$is_empty_2856" to %CName_True* - br label %"$matchsucc_2855" +"$True_2837": ; preds = %"$have_gas_2830" + %"$is_empty_2838" = bitcast %TName_Bool* %"$is_empty_2833" to %CName_True* + br label %"$matchsucc_2832" -"$False_2862": ; preds = %"$have_gas_2853" - %"$is_empty_2863" = bitcast %TName_Bool* %"$is_empty_2856" to %CName_False* - %"$gasrem_2864" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2865" = icmp ugt i64 1, %"$gasrem_2864" - br i1 %"$gascmp_2865", label %"$out_of_gas_2866", label %"$have_gas_2867" +"$False_2839": ; preds = %"$have_gas_2830" + %"$is_empty_2840" = bitcast %TName_Bool* %"$is_empty_2833" to %CName_False* + %"$gasrem_2841" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2842" = icmp ugt i64 1, %"$gasrem_2841" + br i1 %"$gascmp_2842", label %"$out_of_gas_2843", label %"$have_gas_2844" -"$out_of_gas_2866": ; preds = %"$False_2862" +"$out_of_gas_2843": ; preds = %"$False_2839" call void @_out_of_gas() - br label %"$have_gas_2867" + br label %"$have_gas_2844" -"$have_gas_2867": ; preds = %"$out_of_gas_2866", %"$False_2862" - %"$consume_2868" = sub i64 %"$gasrem_2864", 1 - store i64 %"$consume_2868", i64* @_gasrem, align 8 - %"$fail__origin_2869" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2869", align 1 - %"$fail__sender_2870" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2870", align 1 - %"$tname_2871" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2869", [20 x i8]* %"$fail__sender_2870", %String %"$tname_2871") - br label %"$matchsucc_2855" +"$have_gas_2844": ; preds = %"$out_of_gas_2843", %"$False_2839" + %"$consume_2845" = sub i64 %"$gasrem_2841", 1 + store i64 %"$consume_2845", i64* @_gasrem, align 8 + %"$fail__origin_2846" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2846", align 1 + %"$fail__sender_2847" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2847", align 1 + %"$tname_2848" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2846", [20 x i8]* %"$fail__sender_2847", %String %"$tname_2848") + br label %"$matchsucc_2832" -"$empty_default_2859": ; preds = %"$have_gas_2853" - br label %"$matchsucc_2855" +"$empty_default_2836": ; preds = %"$have_gas_2830" + br label %"$matchsucc_2832" -"$matchsucc_2855": ; preds = %"$have_gas_2867", %"$True_2860", %"$empty_default_2859" - %"$gasrem_2872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2873" = icmp ugt i64 1, %"$gasrem_2872" - br i1 %"$gascmp_2873", label %"$out_of_gas_2874", label %"$have_gas_2875" +"$matchsucc_2832": ; preds = %"$have_gas_2844", %"$True_2837", %"$empty_default_2836" + %"$gasrem_2849" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2850" = icmp ugt i64 1, %"$gasrem_2849" + br i1 %"$gascmp_2850", label %"$out_of_gas_2851", label %"$have_gas_2852" -"$out_of_gas_2874": ; preds = %"$matchsucc_2855" +"$out_of_gas_2851": ; preds = %"$matchsucc_2832" call void @_out_of_gas() - br label %"$have_gas_2875" + br label %"$have_gas_2852" -"$have_gas_2875": ; preds = %"$out_of_gas_2874", %"$matchsucc_2855" - %"$consume_2876" = sub i64 %"$gasrem_2872", 1 - store i64 %"$consume_2876", i64* @_gasrem, align 8 +"$have_gas_2852": ; preds = %"$out_of_gas_2851", %"$matchsucc_2832" + %"$consume_2853" = sub i64 %"$gasrem_2849", 1 + store i64 %"$consume_2853", i64* @_gasrem, align 8 %e2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_2877" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2878" = icmp ugt i64 1, %"$gasrem_2877" - br i1 %"$gascmp_2878", label %"$out_of_gas_2879", label %"$have_gas_2880" - -"$out_of_gas_2879": ; preds = %"$have_gas_2875" - call void @_out_of_gas() - br label %"$have_gas_2880" - -"$have_gas_2880": ; preds = %"$out_of_gas_2879", %"$have_gas_2875" - %"$consume_2881" = sub i64 %"$gasrem_2877", 1 - store i64 %"$consume_2881", i64* @_gasrem, align 8 - %"$execptr_load_2882" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2883" = call i8* @_new_empty_map(i8* %"$execptr_load_2882") - %"$_new_empty_map_2884" = bitcast i8* %"$_new_empty_map_call_2883" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_2884", %"Map_String_Map_(String)_(String)"** %e2, align 8 - %"$e2_2885" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 - %"$$e2_2885_2886" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2885" to i8* - %"$_literal_cost_call_2887" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$e2_2885_2886") - %"$gasrem_2888" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2889" = icmp ugt i64 %"$_literal_cost_call_2887", %"$gasrem_2888" - br i1 %"$gascmp_2889", label %"$out_of_gas_2890", label %"$have_gas_2891" - -"$out_of_gas_2890": ; preds = %"$have_gas_2880" - call void @_out_of_gas() - br label %"$have_gas_2891" - -"$have_gas_2891": ; preds = %"$out_of_gas_2890", %"$have_gas_2880" - %"$consume_2892" = sub i64 %"$gasrem_2888", %"$_literal_cost_call_2887" - store i64 %"$consume_2892", i64* @_gasrem, align 8 - %"$execptr_load_2893" = load i8*, i8** @_execptr, align 8 - %"$e2_2895" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 - %"$update_value_2896" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2895" to i8* - call void @_update_field(i8* %"$execptr_load_2893", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2894", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i8* %"$update_value_2896") + %"$gasrem_2854" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2855" = icmp ugt i64 1, %"$gasrem_2854" + br i1 %"$gascmp_2855", label %"$out_of_gas_2856", label %"$have_gas_2857" + +"$out_of_gas_2856": ; preds = %"$have_gas_2852" + call void @_out_of_gas() + br label %"$have_gas_2857" + +"$have_gas_2857": ; preds = %"$out_of_gas_2856", %"$have_gas_2852" + %"$consume_2858" = sub i64 %"$gasrem_2854", 1 + store i64 %"$consume_2858", i64* @_gasrem, align 8 + %"$execptr_load_2859" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2860" = call i8* @_new_empty_map(i8* %"$execptr_load_2859") + %"$_new_empty_map_2861" = bitcast i8* %"$_new_empty_map_call_2860" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_2861", %"Map_String_Map_(String)_(String)"** %e2, align 8 + %"$e2_2862" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 + %"$$e2_2862_2863" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2862" to i8* + %"$_literal_cost_call_2864" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$e2_2862_2863") + %"$gasrem_2865" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2866" = icmp ugt i64 %"$_literal_cost_call_2864", %"$gasrem_2865" + br i1 %"$gascmp_2866", label %"$out_of_gas_2867", label %"$have_gas_2868" + +"$out_of_gas_2867": ; preds = %"$have_gas_2857" + call void @_out_of_gas() + br label %"$have_gas_2868" + +"$have_gas_2868": ; preds = %"$out_of_gas_2867", %"$have_gas_2857" + %"$consume_2869" = sub i64 %"$gasrem_2865", %"$_literal_cost_call_2864" + store i64 %"$consume_2869", i64* @_gasrem, align 8 + %"$execptr_load_2870" = load i8*, i8** @_execptr, align 8 + %"$e2_2872" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e2, align 8 + %"$update_value_2873" = bitcast %"Map_String_Map_(String)_(String)"* %"$e2_2872" to i8* + call void @_update_field(i8* %"$execptr_load_2870", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2871", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i8* %"$update_value_2873") ret void } define void @t11(i8* %0) { entry: - %"$_amount_2898" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2899" = bitcast i8* %"$_amount_2898" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2899", align 8 - %"$_origin_2900" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2901" = bitcast i8* %"$_origin_2900" to [20 x i8]* - %"$_sender_2902" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2903" = bitcast i8* %"$_sender_2902" to [20 x i8]* - call void @"$t11_2782"(%Uint128 %_amount, [20 x i8]* %"$_origin_2901", [20 x i8]* %"$_sender_2903") + %"$_amount_2875" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2876" = bitcast i8* %"$_amount_2875" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2876", align 8 + %"$_origin_2877" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2878" = bitcast i8* %"$_origin_2877" to [20 x i8]* + %"$_sender_2879" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2880" = bitcast i8* %"$_sender_2879" to [20 x i8]* + call void @"$t11_2759"(%Uint128 %_amount, [20 x i8]* %"$_origin_2878", [20 x i8]* %"$_sender_2880") ret void } -define internal void @"$t12_2904"(%Uint128 %_amount, [20 x i8]* %"$_origin_2905", [20 x i8]* %"$_sender_2906") { +define internal void @"$t12_2881"(%Uint128 %_amount, [20 x i8]* %"$_origin_2882", [20 x i8]* %"$_sender_2883") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2905", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2906", align 1 - %"$gasrem_2907" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2908" = icmp ugt i64 1, %"$gasrem_2907" - br i1 %"$gascmp_2908", label %"$out_of_gas_2909", label %"$have_gas_2910" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2882", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2883", align 1 + %"$gasrem_2884" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2885" = icmp ugt i64 1, %"$gasrem_2884" + br i1 %"$gascmp_2885", label %"$out_of_gas_2886", label %"$have_gas_2887" -"$out_of_gas_2909": ; preds = %entry +"$out_of_gas_2886": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2910" + br label %"$have_gas_2887" -"$have_gas_2910": ; preds = %"$out_of_gas_2909", %entry - %"$consume_2911" = sub i64 %"$gasrem_2907", 1 - store i64 %"$consume_2911", i64* @_gasrem, align 8 +"$have_gas_2887": ; preds = %"$out_of_gas_2886", %entry + %"$consume_2888" = sub i64 %"$gasrem_2884", 1 + store i64 %"$consume_2888", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_2912" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2913" = icmp ugt i64 1, %"$gasrem_2912" - br i1 %"$gascmp_2913", label %"$out_of_gas_2914", label %"$have_gas_2915" + %"$gasrem_2889" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2890" = icmp ugt i64 1, %"$gasrem_2889" + br i1 %"$gascmp_2890", label %"$out_of_gas_2891", label %"$have_gas_2892" -"$out_of_gas_2914": ; preds = %"$have_gas_2910" +"$out_of_gas_2891": ; preds = %"$have_gas_2887" call void @_out_of_gas() - br label %"$have_gas_2915" + br label %"$have_gas_2892" -"$have_gas_2915": ; preds = %"$out_of_gas_2914", %"$have_gas_2910" - %"$consume_2916" = sub i64 %"$gasrem_2912", 1 - store i64 %"$consume_2916", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2917", i32 0, i32 0), i32 3 }, %String* %tname, align 8 +"$have_gas_2892": ; preds = %"$out_of_gas_2891", %"$have_gas_2887" + %"$consume_2893" = sub i64 %"$gasrem_2889", 1 + store i64 %"$consume_2893", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2894", i32 0, i32 0), i32 3 }, %String* %tname, align 8 %m2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$execptr_load_2919" = load i8*, i8** @_execptr, align 8 - %"$m2_call_2920" = call i8* @_fetch_field(i8* %"$execptr_load_2919", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2918", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i32 1) - %"$m2_2921" = bitcast i8* %"$m2_call_2920" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$m2_2921", %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$m2_2922" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_2922_2923" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2922" to i8* - %"$_literal_cost_call_2924" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m2_2922_2923") - %"$m2_2925" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_2925_2926" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2925" to i8* - %"$_mapsortcost_call_2927" = call i64 @_mapsortcost(i8* %"$$m2_2925_2926") - %"$gasadd_2928" = add i64 %"$_literal_cost_call_2924", %"$_mapsortcost_call_2927" + %"$execptr_load_2896" = load i8*, i8** @_execptr, align 8 + %"$m2_call_2897" = call i8* @_fetch_field(i8* %"$execptr_load_2896", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_2895", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i32 1) + %"$m2_2898" = bitcast i8* %"$m2_call_2897" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$m2_2898", %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$m2_2899" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_2899_2900" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2899" to i8* + %"$_literal_cost_call_2901" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m2_2899_2900") + %"$m2_2902" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_2902_2903" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2902" to i8* + %"$_mapsortcost_call_2904" = call i64 @_mapsortcost(i8* %"$$m2_2902_2903") + %"$gasadd_2905" = add i64 %"$_literal_cost_call_2901", %"$_mapsortcost_call_2904" + %"$gasrem_2906" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2907" = icmp ugt i64 %"$gasadd_2905", %"$gasrem_2906" + br i1 %"$gascmp_2907", label %"$out_of_gas_2908", label %"$have_gas_2909" + +"$out_of_gas_2908": ; preds = %"$have_gas_2892" + call void @_out_of_gas() + br label %"$have_gas_2909" + +"$have_gas_2909": ; preds = %"$out_of_gas_2908", %"$have_gas_2892" + %"$consume_2910" = sub i64 %"$gasrem_2906", %"$gasadd_2905" + store i64 %"$consume_2910", i64* @_gasrem, align 8 + %"$gasrem_2911" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2912" = icmp ugt i64 1, %"$gasrem_2911" + br i1 %"$gascmp_2912", label %"$out_of_gas_2913", label %"$have_gas_2914" + +"$out_of_gas_2913": ; preds = %"$have_gas_2909" + call void @_out_of_gas() + br label %"$have_gas_2914" + +"$have_gas_2914": ; preds = %"$out_of_gas_2913", %"$have_gas_2909" + %"$consume_2915" = sub i64 %"$gasrem_2911", 1 + store i64 %"$consume_2915", i64* @_gasrem, align 8 + %m2_size = alloca %Uint32, align 8 + %"$gasrem_2916" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2917" = icmp ugt i64 1, %"$gasrem_2916" + br i1 %"$gascmp_2917", label %"$out_of_gas_2918", label %"$have_gas_2919" + +"$out_of_gas_2918": ; preds = %"$have_gas_2914" + call void @_out_of_gas() + br label %"$have_gas_2919" + +"$have_gas_2919": ; preds = %"$out_of_gas_2918", %"$have_gas_2914" + %"$consume_2920" = sub i64 %"$gasrem_2916", 1 + store i64 %"$consume_2920", i64* @_gasrem, align 8 + %"$m2_2921" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_2921_2922" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2921" to i8* + %"$size_call_2923" = call %Uint32 @_size(i8* %"$$m2_2921_2922") + store %Uint32 %"$size_call_2923", %Uint32* %m2_size, align 4 + %"$gasrem_2924" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2925" = icmp ugt i64 1, %"$gasrem_2924" + br i1 %"$gascmp_2925", label %"$out_of_gas_2926", label %"$have_gas_2927" + +"$out_of_gas_2926": ; preds = %"$have_gas_2919" + call void @_out_of_gas() + br label %"$have_gas_2927" + +"$have_gas_2927": ; preds = %"$out_of_gas_2926", %"$have_gas_2919" + %"$consume_2928" = sub i64 %"$gasrem_2924", 1 + store i64 %"$consume_2928", i64* @_gasrem, align 8 + %zero = alloca %Uint32, align 8 %"$gasrem_2929" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2930" = icmp ugt i64 %"$gasadd_2928", %"$gasrem_2929" + %"$gascmp_2930" = icmp ugt i64 1, %"$gasrem_2929" br i1 %"$gascmp_2930", label %"$out_of_gas_2931", label %"$have_gas_2932" -"$out_of_gas_2931": ; preds = %"$have_gas_2915" +"$out_of_gas_2931": ; preds = %"$have_gas_2927" call void @_out_of_gas() br label %"$have_gas_2932" -"$have_gas_2932": ; preds = %"$out_of_gas_2931", %"$have_gas_2915" - %"$consume_2933" = sub i64 %"$gasrem_2929", %"$gasadd_2928" +"$have_gas_2932": ; preds = %"$out_of_gas_2931", %"$have_gas_2927" + %"$consume_2933" = sub i64 %"$gasrem_2929", 1 store i64 %"$consume_2933", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4 %"$gasrem_2934" = load i64, i64* @_gasrem, align 8 %"$gascmp_2935" = icmp ugt i64 1, %"$gasrem_2934" br i1 %"$gascmp_2935", label %"$out_of_gas_2936", label %"$have_gas_2937" @@ -6024,9 +6043,9 @@ entry: "$have_gas_2937": ; preds = %"$out_of_gas_2936", %"$have_gas_2932" %"$consume_2938" = sub i64 %"$gasrem_2934", 1 store i64 %"$consume_2938", i64* @_gasrem, align 8 - %m2_size = alloca %Uint32, align 8 + %is_empty = alloca %TName_Bool*, align 8 %"$gasrem_2939" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2940" = icmp ugt i64 1, %"$gasrem_2939" + %"$gascmp_2940" = icmp ugt i64 4, %"$gasrem_2939" br i1 %"$gascmp_2940", label %"$out_of_gas_2941", label %"$have_gas_2942" "$out_of_gas_2941": ; preds = %"$have_gas_2937" @@ -6034,248 +6053,238 @@ entry: br label %"$have_gas_2942" "$have_gas_2942": ; preds = %"$out_of_gas_2941", %"$have_gas_2937" - %"$consume_2943" = sub i64 %"$gasrem_2939", 1 + %"$consume_2943" = sub i64 %"$gasrem_2939", 4 store i64 %"$consume_2943", i64* @_gasrem, align 8 - %"$m2_2944" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_2944_2945" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_2944" to i8* - %"$size_call_2946" = call %Uint32 @_size(i8* %"$$m2_2944_2945") - store %Uint32 %"$size_call_2946", %Uint32* %m2_size, align 4 - %"$gasrem_2947" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2948" = icmp ugt i64 1, %"$gasrem_2947" - br i1 %"$gascmp_2948", label %"$out_of_gas_2949", label %"$have_gas_2950" - -"$out_of_gas_2949": ; preds = %"$have_gas_2942" - call void @_out_of_gas() - br label %"$have_gas_2950" - -"$have_gas_2950": ; preds = %"$out_of_gas_2949", %"$have_gas_2942" - %"$consume_2951" = sub i64 %"$gasrem_2947", 1 - store i64 %"$consume_2951", i64* @_gasrem, align 8 - %zero = alloca %Uint32, align 8 - %"$gasrem_2952" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2953" = icmp ugt i64 1, %"$gasrem_2952" - br i1 %"$gascmp_2953", label %"$out_of_gas_2954", label %"$have_gas_2955" + %"$execptr_load_2944" = load i8*, i8** @_execptr, align 8 + %"$m2_size_2945" = load %Uint32, %Uint32* %m2_size, align 4 + %"$zero_2946" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_2947" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2944", %Uint32 %"$m2_size_2945", %Uint32 %"$zero_2946") + store %TName_Bool* %"$eq_call_2947", %TName_Bool** %is_empty, align 8 + %"$gasrem_2949" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2950" = icmp ugt i64 2, %"$gasrem_2949" + br i1 %"$gascmp_2950", label %"$out_of_gas_2951", label %"$have_gas_2952" + +"$out_of_gas_2951": ; preds = %"$have_gas_2942" + call void @_out_of_gas() + br label %"$have_gas_2952" + +"$have_gas_2952": ; preds = %"$out_of_gas_2951", %"$have_gas_2942" + %"$consume_2953" = sub i64 %"$gasrem_2949", 2 + store i64 %"$consume_2953", i64* @_gasrem, align 8 + %"$is_empty_2955" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_2956" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2955", i32 0, i32 0 + %"$is_empty_tag_2957" = load i8, i8* %"$is_empty_tag_2956", align 1 + switch i8 %"$is_empty_tag_2957", label %"$empty_default_2958" [ + i8 0, label %"$True_2959" + i8 1, label %"$False_2961" + ] -"$out_of_gas_2954": ; preds = %"$have_gas_2950" - call void @_out_of_gas() - br label %"$have_gas_2955" +"$True_2959": ; preds = %"$have_gas_2952" + %"$is_empty_2960" = bitcast %TName_Bool* %"$is_empty_2955" to %CName_True* + br label %"$matchsucc_2954" -"$have_gas_2955": ; preds = %"$out_of_gas_2954", %"$have_gas_2950" - %"$consume_2956" = sub i64 %"$gasrem_2952", 1 - store i64 %"$consume_2956", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4 - %"$gasrem_2957" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2958" = icmp ugt i64 1, %"$gasrem_2957" - br i1 %"$gascmp_2958", label %"$out_of_gas_2959", label %"$have_gas_2960" +"$False_2961": ; preds = %"$have_gas_2952" + %"$is_empty_2962" = bitcast %TName_Bool* %"$is_empty_2955" to %CName_False* + %"$gasrem_2963" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2964" = icmp ugt i64 1, %"$gasrem_2963" + br i1 %"$gascmp_2964", label %"$out_of_gas_2965", label %"$have_gas_2966" -"$out_of_gas_2959": ; preds = %"$have_gas_2955" +"$out_of_gas_2965": ; preds = %"$False_2961" call void @_out_of_gas() - br label %"$have_gas_2960" + br label %"$have_gas_2966" -"$have_gas_2960": ; preds = %"$out_of_gas_2959", %"$have_gas_2955" - %"$consume_2961" = sub i64 %"$gasrem_2957", 1 - store i64 %"$consume_2961", i64* @_gasrem, align 8 - %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_2962" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2963" = icmp ugt i64 4, %"$gasrem_2962" - br i1 %"$gascmp_2963", label %"$out_of_gas_2964", label %"$have_gas_2965" - -"$out_of_gas_2964": ; preds = %"$have_gas_2960" - call void @_out_of_gas() - br label %"$have_gas_2965" - -"$have_gas_2965": ; preds = %"$out_of_gas_2964", %"$have_gas_2960" - %"$consume_2966" = sub i64 %"$gasrem_2962", 4 - store i64 %"$consume_2966", i64* @_gasrem, align 8 - %"$execptr_load_2967" = load i8*, i8** @_execptr, align 8 - %"$m2_size_2968" = load %Uint32, %Uint32* %m2_size, align 4 - %"$zero_2969" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_2970" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_2967", %Uint32 %"$m2_size_2968", %Uint32 %"$zero_2969") - store %TName_Bool* %"$eq_call_2970", %TName_Bool** %is_empty, align 8 - %"$gasrem_2972" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2973" = icmp ugt i64 2, %"$gasrem_2972" - br i1 %"$gascmp_2973", label %"$out_of_gas_2974", label %"$have_gas_2975" - -"$out_of_gas_2974": ; preds = %"$have_gas_2965" - call void @_out_of_gas() - br label %"$have_gas_2975" - -"$have_gas_2975": ; preds = %"$out_of_gas_2974", %"$have_gas_2965" - %"$consume_2976" = sub i64 %"$gasrem_2972", 2 - store i64 %"$consume_2976", i64* @_gasrem, align 8 - %"$is_empty_2978" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_2979" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_2978", i32 0, i32 0 - %"$is_empty_tag_2980" = load i8, i8* %"$is_empty_tag_2979", align 1 - switch i8 %"$is_empty_tag_2980", label %"$empty_default_2981" [ - i8 0, label %"$True_2982" - i8 1, label %"$False_2984" - ] +"$have_gas_2966": ; preds = %"$out_of_gas_2965", %"$False_2961" + %"$consume_2967" = sub i64 %"$gasrem_2963", 1 + store i64 %"$consume_2967", i64* @_gasrem, align 8 + %"$fail__origin_2968" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2968", align 1 + %"$fail__sender_2969" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2969", align 1 + %"$tname_2970" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2968", [20 x i8]* %"$fail__sender_2969", %String %"$tname_2970") + br label %"$matchsucc_2954" -"$True_2982": ; preds = %"$have_gas_2975" - %"$is_empty_2983" = bitcast %TName_Bool* %"$is_empty_2978" to %CName_True* - br label %"$matchsucc_2977" +"$empty_default_2958": ; preds = %"$have_gas_2952" + br label %"$matchsucc_2954" -"$False_2984": ; preds = %"$have_gas_2975" - %"$is_empty_2985" = bitcast %TName_Bool* %"$is_empty_2978" to %CName_False* - %"$gasrem_2986" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2987" = icmp ugt i64 1, %"$gasrem_2986" - br i1 %"$gascmp_2987", label %"$out_of_gas_2988", label %"$have_gas_2989" +"$matchsucc_2954": ; preds = %"$have_gas_2966", %"$True_2959", %"$empty_default_2958" + %"$gasrem_2971" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2972" = icmp ugt i64 1, %"$gasrem_2971" + br i1 %"$gascmp_2972", label %"$out_of_gas_2973", label %"$have_gas_2974" -"$out_of_gas_2988": ; preds = %"$False_2984" +"$out_of_gas_2973": ; preds = %"$matchsucc_2954" call void @_out_of_gas() - br label %"$have_gas_2989" + br label %"$have_gas_2974" -"$have_gas_2989": ; preds = %"$out_of_gas_2988", %"$False_2984" - %"$consume_2990" = sub i64 %"$gasrem_2986", 1 - store i64 %"$consume_2990", i64* @_gasrem, align 8 - %"$fail__origin_2991" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_2991", align 1 - %"$fail__sender_2992" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_2992", align 1 - %"$tname_2993" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_2991", [20 x i8]* %"$fail__sender_2992", %String %"$tname_2993") - br label %"$matchsucc_2977" +"$have_gas_2974": ; preds = %"$out_of_gas_2973", %"$matchsucc_2954" + %"$consume_2975" = sub i64 %"$gasrem_2971", 1 + store i64 %"$consume_2975", i64* @_gasrem, align 8 + %e1 = alloca %Map_String_String*, align 8 + %"$gasrem_2976" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2977" = icmp ugt i64 1, %"$gasrem_2976" + br i1 %"$gascmp_2977", label %"$out_of_gas_2978", label %"$have_gas_2979" -"$empty_default_2981": ; preds = %"$have_gas_2975" - br label %"$matchsucc_2977" +"$out_of_gas_2978": ; preds = %"$have_gas_2974" + call void @_out_of_gas() + br label %"$have_gas_2979" -"$matchsucc_2977": ; preds = %"$have_gas_2989", %"$True_2982", %"$empty_default_2981" - %"$gasrem_2994" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2995" = icmp ugt i64 1, %"$gasrem_2994" - br i1 %"$gascmp_2995", label %"$out_of_gas_2996", label %"$have_gas_2997" +"$have_gas_2979": ; preds = %"$out_of_gas_2978", %"$have_gas_2974" + %"$consume_2980" = sub i64 %"$gasrem_2976", 1 + store i64 %"$consume_2980", i64* @_gasrem, align 8 + %"$execptr_load_2981" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2982" = call i8* @_new_empty_map(i8* %"$execptr_load_2981") + %"$_new_empty_map_2983" = bitcast i8* %"$_new_empty_map_call_2982" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_2983", %Map_String_String** %e1, align 8 + %"$gasrem_2984" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2985" = icmp ugt i64 1, %"$gasrem_2984" + br i1 %"$gascmp_2985", label %"$out_of_gas_2986", label %"$have_gas_2987" -"$out_of_gas_2996": ; preds = %"$matchsucc_2977" +"$out_of_gas_2986": ; preds = %"$have_gas_2979" call void @_out_of_gas() - br label %"$have_gas_2997" + br label %"$have_gas_2987" -"$have_gas_2997": ; preds = %"$out_of_gas_2996", %"$matchsucc_2977" - %"$consume_2998" = sub i64 %"$gasrem_2994", 1 - store i64 %"$consume_2998", i64* @_gasrem, align 8 - %e1 = alloca %Map_String_String*, align 8 +"$have_gas_2987": ; preds = %"$out_of_gas_2986", %"$have_gas_2979" + %"$consume_2988" = sub i64 %"$gasrem_2984", 1 + store i64 %"$consume_2988", i64* @_gasrem, align 8 + %key1a = alloca %String, align 8 + %"$gasrem_2989" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2990" = icmp ugt i64 1, %"$gasrem_2989" + br i1 %"$gascmp_2990", label %"$out_of_gas_2991", label %"$have_gas_2992" + +"$out_of_gas_2991": ; preds = %"$have_gas_2987" + call void @_out_of_gas() + br label %"$have_gas_2992" + +"$have_gas_2992": ; preds = %"$out_of_gas_2991", %"$have_gas_2987" + %"$consume_2993" = sub i64 %"$gasrem_2989", 1 + store i64 %"$consume_2993", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2994", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 + %"$e1_2995" = load %Map_String_String*, %Map_String_String** %e1, align 8 + %"$$e1_2995_2996" = bitcast %Map_String_String* %"$e1_2995" to i8* + %"$_literal_cost_call_2997" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$e1_2995_2996") + %"$gasadd_2998" = add i64 %"$_literal_cost_call_2997", 1 %"$gasrem_2999" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3000" = icmp ugt i64 1, %"$gasrem_2999" + %"$gascmp_3000" = icmp ugt i64 %"$gasadd_2998", %"$gasrem_2999" br i1 %"$gascmp_3000", label %"$out_of_gas_3001", label %"$have_gas_3002" -"$out_of_gas_3001": ; preds = %"$have_gas_2997" +"$out_of_gas_3001": ; preds = %"$have_gas_2992" call void @_out_of_gas() br label %"$have_gas_3002" -"$have_gas_3002": ; preds = %"$out_of_gas_3001", %"$have_gas_2997" - %"$consume_3003" = sub i64 %"$gasrem_2999", 1 +"$have_gas_3002": ; preds = %"$out_of_gas_3001", %"$have_gas_2992" + %"$consume_3003" = sub i64 %"$gasrem_2999", %"$gasadd_2998" store i64 %"$consume_3003", i64* @_gasrem, align 8 - %"$execptr_load_3004" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3005" = call i8* @_new_empty_map(i8* %"$execptr_load_3004") - %"$_new_empty_map_3006" = bitcast i8* %"$_new_empty_map_call_3005" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_3006", %Map_String_String** %e1, align 8 - %"$gasrem_3007" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3008" = icmp ugt i64 1, %"$gasrem_3007" - br i1 %"$gascmp_3008", label %"$out_of_gas_3009", label %"$have_gas_3010" - -"$out_of_gas_3009": ; preds = %"$have_gas_3002" - call void @_out_of_gas() - br label %"$have_gas_3010" - -"$have_gas_3010": ; preds = %"$out_of_gas_3009", %"$have_gas_3002" - %"$consume_3011" = sub i64 %"$gasrem_3007", 1 - store i64 %"$consume_3011", i64* @_gasrem, align 8 - %key1a = alloca %String, align 8 - %"$gasrem_3012" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3013" = icmp ugt i64 1, %"$gasrem_3012" - br i1 %"$gascmp_3013", label %"$out_of_gas_3014", label %"$have_gas_3015" - -"$out_of_gas_3014": ; preds = %"$have_gas_3010" - call void @_out_of_gas() - br label %"$have_gas_3015" - -"$have_gas_3015": ; preds = %"$out_of_gas_3014", %"$have_gas_3010" - %"$consume_3016" = sub i64 %"$gasrem_3012", 1 - store i64 %"$consume_3016", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3017", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 - %"$e1_3018" = load %Map_String_String*, %Map_String_String** %e1, align 8 - %"$$e1_3018_3019" = bitcast %Map_String_String* %"$e1_3018" to i8* - %"$_literal_cost_call_3020" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$e1_3018_3019") - %"$gasadd_3021" = add i64 %"$_literal_cost_call_3020", 1 - %"$gasrem_3022" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3023" = icmp ugt i64 %"$gasadd_3021", %"$gasrem_3022" - br i1 %"$gascmp_3023", label %"$out_of_gas_3024", label %"$have_gas_3025" - -"$out_of_gas_3024": ; preds = %"$have_gas_3015" - call void @_out_of_gas() - br label %"$have_gas_3025" - -"$have_gas_3025": ; preds = %"$out_of_gas_3024", %"$have_gas_3015" - %"$consume_3026" = sub i64 %"$gasrem_3022", %"$gasadd_3021" - store i64 %"$consume_3026", i64* @_gasrem, align 8 - %"$indices_buf_3027_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3027_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3027_salloc_load", i64 16) - %"$indices_buf_3027_salloc" = bitcast i8* %"$indices_buf_3027_salloc_salloc" to [16 x i8]* - %"$indices_buf_3027" = bitcast [16 x i8]* %"$indices_buf_3027_salloc" to i8* - %"$key1a_3028" = load %String, %String* %key1a, align 8 - %"$indices_gep_3029" = getelementptr i8, i8* %"$indices_buf_3027", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3029" to %String* - store %String %"$key1a_3028", %String* %indices_cast, align 8 - %"$execptr_load_3030" = load i8*, i8** @_execptr, align 8 - %"$e1_3032" = load %Map_String_String*, %Map_String_String** %e1, align 8 - %"$update_value_3033" = bitcast %Map_String_String* %"$e1_3032" to i8* - call void @_update_field(i8* %"$execptr_load_3030", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3031", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 1, i8* %"$indices_buf_3027", i8* %"$update_value_3033") + %"$indices_buf_3004_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3004_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3004_salloc_load", i64 16) + %"$indices_buf_3004_salloc" = bitcast i8* %"$indices_buf_3004_salloc_salloc" to [16 x i8]* + %"$indices_buf_3004" = bitcast [16 x i8]* %"$indices_buf_3004_salloc" to i8* + %"$key1a_3005" = load %String, %String* %key1a, align 8 + %"$indices_gep_3006" = getelementptr i8, i8* %"$indices_buf_3004", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3006" to %String* + store %String %"$key1a_3005", %String* %indices_cast, align 8 + %"$execptr_load_3007" = load i8*, i8** @_execptr, align 8 + %"$e1_3009" = load %Map_String_String*, %Map_String_String** %e1, align 8 + %"$update_value_3010" = bitcast %Map_String_String* %"$e1_3009" to i8* + call void @_update_field(i8* %"$execptr_load_3007", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3008", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 1, i8* %"$indices_buf_3004", i8* %"$update_value_3010") ret void } define void @t12(i8* %0) { entry: - %"$_amount_3035" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3036" = bitcast i8* %"$_amount_3035" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3036", align 8 - %"$_origin_3037" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3038" = bitcast i8* %"$_origin_3037" to [20 x i8]* - %"$_sender_3039" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3040" = bitcast i8* %"$_sender_3039" to [20 x i8]* - call void @"$t12_2904"(%Uint128 %_amount, [20 x i8]* %"$_origin_3038", [20 x i8]* %"$_sender_3040") + %"$_amount_3012" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3013" = bitcast i8* %"$_amount_3012" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3013", align 8 + %"$_origin_3014" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3015" = bitcast i8* %"$_origin_3014" to [20 x i8]* + %"$_sender_3016" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3017" = bitcast i8* %"$_sender_3016" to [20 x i8]* + call void @"$t12_2881"(%Uint128 %_amount, [20 x i8]* %"$_origin_3015", [20 x i8]* %"$_sender_3017") ret void } -define internal void @"$t13_3041"(%Uint128 %_amount, [20 x i8]* %"$_origin_3042", [20 x i8]* %"$_sender_3043") { +define internal void @"$t13_3018"(%Uint128 %_amount, [20 x i8]* %"$_origin_3019", [20 x i8]* %"$_sender_3020") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3042", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3043", align 1 - %"$gasrem_3044" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3045" = icmp ugt i64 1, %"$gasrem_3044" - br i1 %"$gascmp_3045", label %"$out_of_gas_3046", label %"$have_gas_3047" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3019", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3020", align 1 + %"$gasrem_3021" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3022" = icmp ugt i64 1, %"$gasrem_3021" + br i1 %"$gascmp_3022", label %"$out_of_gas_3023", label %"$have_gas_3024" -"$out_of_gas_3046": ; preds = %entry +"$out_of_gas_3023": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3047" + br label %"$have_gas_3024" -"$have_gas_3047": ; preds = %"$out_of_gas_3046", %entry - %"$consume_3048" = sub i64 %"$gasrem_3044", 1 - store i64 %"$consume_3048", i64* @_gasrem, align 8 +"$have_gas_3024": ; preds = %"$out_of_gas_3023", %entry + %"$consume_3025" = sub i64 %"$gasrem_3021", 1 + store i64 %"$consume_3025", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_3049" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3050" = icmp ugt i64 1, %"$gasrem_3049" - br i1 %"$gascmp_3050", label %"$out_of_gas_3051", label %"$have_gas_3052" + %"$gasrem_3026" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3027" = icmp ugt i64 1, %"$gasrem_3026" + br i1 %"$gascmp_3027", label %"$out_of_gas_3028", label %"$have_gas_3029" + +"$out_of_gas_3028": ; preds = %"$have_gas_3024" + call void @_out_of_gas() + br label %"$have_gas_3029" + +"$have_gas_3029": ; preds = %"$out_of_gas_3028", %"$have_gas_3024" + %"$consume_3030" = sub i64 %"$gasrem_3026", 1 + store i64 %"$consume_3030", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3031", i32 0, i32 0), i32 3 }, %String* %tname, align 8 + %"$gasrem_3032" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3033" = icmp ugt i64 1, %"$gasrem_3032" + br i1 %"$gascmp_3033", label %"$out_of_gas_3034", label %"$have_gas_3035" -"$out_of_gas_3051": ; preds = %"$have_gas_3047" +"$out_of_gas_3034": ; preds = %"$have_gas_3029" call void @_out_of_gas() - br label %"$have_gas_3052" + br label %"$have_gas_3035" -"$have_gas_3052": ; preds = %"$out_of_gas_3051", %"$have_gas_3047" - %"$consume_3053" = sub i64 %"$gasrem_3049", 1 - store i64 %"$consume_3053", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3054", i32 0, i32 0), i32 3 }, %String* %tname, align 8 +"$have_gas_3035": ; preds = %"$out_of_gas_3034", %"$have_gas_3029" + %"$consume_3036" = sub i64 %"$gasrem_3032", 1 + store i64 %"$consume_3036", i64* @_gasrem, align 8 + %key1a = alloca %String, align 8 + %"$gasrem_3037" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3038" = icmp ugt i64 1, %"$gasrem_3037" + br i1 %"$gascmp_3038", label %"$out_of_gas_3039", label %"$have_gas_3040" + +"$out_of_gas_3039": ; preds = %"$have_gas_3035" + call void @_out_of_gas() + br label %"$have_gas_3040" + +"$have_gas_3040": ; preds = %"$out_of_gas_3039", %"$have_gas_3035" + %"$consume_3041" = sub i64 %"$gasrem_3037", 1 + store i64 %"$consume_3041", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3042", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 + %mo = alloca %"TName_Option_Map_(String)_(String)"*, align 8 + %"$indices_buf_3043_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3043_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3043_salloc_load", i64 16) + %"$indices_buf_3043_salloc" = bitcast i8* %"$indices_buf_3043_salloc_salloc" to [16 x i8]* + %"$indices_buf_3043" = bitcast [16 x i8]* %"$indices_buf_3043_salloc" to i8* + %"$key1a_3044" = load %String, %String* %key1a, align 8 + %"$indices_gep_3045" = getelementptr i8, i8* %"$indices_buf_3043", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3045" to %String* + store %String %"$key1a_3044", %String* %indices_cast, align 8 + %"$execptr_load_3047" = load i8*, i8** @_execptr, align 8 + %"$mo_call_3048" = call i8* @_fetch_field(i8* %"$execptr_load_3047", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3046", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 1, i8* %"$indices_buf_3043", i32 1) + %"$mo_3049" = bitcast i8* %"$mo_call_3048" to %"TName_Option_Map_(String)_(String)"* + store %"TName_Option_Map_(String)_(String)"* %"$mo_3049", %"TName_Option_Map_(String)_(String)"** %mo, align 8 + %"$mo_3050" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 + %"$$mo_3050_3051" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3050" to i8* + %"$_literal_cost_call_3052" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_59", i8* %"$$mo_3050_3051") + %"$gasadd_3053" = add i64 %"$_literal_cost_call_3052", 0 + %"$gasadd_3054" = add i64 %"$gasadd_3053", 1 %"$gasrem_3055" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3056" = icmp ugt i64 1, %"$gasrem_3055" + %"$gascmp_3056" = icmp ugt i64 %"$gasadd_3054", %"$gasrem_3055" br i1 %"$gascmp_3056", label %"$out_of_gas_3057", label %"$have_gas_3058" -"$out_of_gas_3057": ; preds = %"$have_gas_3052" +"$out_of_gas_3057": ; preds = %"$have_gas_3040" call void @_out_of_gas() br label %"$have_gas_3058" -"$have_gas_3058": ; preds = %"$out_of_gas_3057", %"$have_gas_3052" - %"$consume_3059" = sub i64 %"$gasrem_3055", 1 +"$have_gas_3058": ; preds = %"$out_of_gas_3057", %"$have_gas_3040" + %"$consume_3059" = sub i64 %"$gasrem_3055", %"$gasadd_3054" store i64 %"$consume_3059", i64* @_gasrem, align 8 - %key1a = alloca %String, align 8 %"$gasrem_3060" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3061" = icmp ugt i64 1, %"$gasrem_3060" + %"$gascmp_3061" = icmp ugt i64 2, %"$gasrem_3060" br i1 %"$gascmp_3061", label %"$out_of_gas_3062", label %"$have_gas_3063" "$out_of_gas_3062": ; preds = %"$have_gas_3058" @@ -6283,77 +6292,87 @@ entry: br label %"$have_gas_3063" "$have_gas_3063": ; preds = %"$out_of_gas_3062", %"$have_gas_3058" - %"$consume_3064" = sub i64 %"$gasrem_3060", 1 + %"$consume_3064" = sub i64 %"$gasrem_3060", 2 store i64 %"$consume_3064", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3065", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 - %mo = alloca %"TName_Option_Map_(String)_(String)"*, align 8 - %"$indices_buf_3066_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3066_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3066_salloc_load", i64 16) - %"$indices_buf_3066_salloc" = bitcast i8* %"$indices_buf_3066_salloc_salloc" to [16 x i8]* - %"$indices_buf_3066" = bitcast [16 x i8]* %"$indices_buf_3066_salloc" to i8* - %"$key1a_3067" = load %String, %String* %key1a, align 8 - %"$indices_gep_3068" = getelementptr i8, i8* %"$indices_buf_3066", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3068" to %String* - store %String %"$key1a_3067", %String* %indices_cast, align 8 - %"$execptr_load_3070" = load i8*, i8** @_execptr, align 8 - %"$mo_call_3071" = call i8* @_fetch_field(i8* %"$execptr_load_3070", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_3069", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 1, i8* %"$indices_buf_3066", i32 1) - %"$mo_3072" = bitcast i8* %"$mo_call_3071" to %"TName_Option_Map_(String)_(String)"* - store %"TName_Option_Map_(String)_(String)"* %"$mo_3072", %"TName_Option_Map_(String)_(String)"** %mo, align 8 - %"$mo_3073" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 - %"$$mo_3073_3074" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3073" to i8* - %"$_literal_cost_call_3075" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Map_(String)_(String)_67", i8* %"$$mo_3073_3074") - %"$gasadd_3076" = add i64 %"$_literal_cost_call_3075", 0 - %"$gasadd_3077" = add i64 %"$gasadd_3076", 1 - %"$gasrem_3078" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3079" = icmp ugt i64 %"$gasadd_3077", %"$gasrem_3078" - br i1 %"$gascmp_3079", label %"$out_of_gas_3080", label %"$have_gas_3081" - -"$out_of_gas_3080": ; preds = %"$have_gas_3063" - call void @_out_of_gas() - br label %"$have_gas_3081" - -"$have_gas_3081": ; preds = %"$out_of_gas_3080", %"$have_gas_3063" - %"$consume_3082" = sub i64 %"$gasrem_3078", %"$gasadd_3077" - store i64 %"$consume_3082", i64* @_gasrem, align 8 - %"$gasrem_3083" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3084" = icmp ugt i64 2, %"$gasrem_3083" - br i1 %"$gascmp_3084", label %"$out_of_gas_3085", label %"$have_gas_3086" - -"$out_of_gas_3085": ; preds = %"$have_gas_3081" - call void @_out_of_gas() - br label %"$have_gas_3086" - -"$have_gas_3086": ; preds = %"$out_of_gas_3085", %"$have_gas_3081" - %"$consume_3087" = sub i64 %"$gasrem_3083", 2 - store i64 %"$consume_3087", i64* @_gasrem, align 8 - %"$mo_3089" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 - %"$mo_tag_3090" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$mo_3089", i32 0, i32 0 - %"$mo_tag_3091" = load i8, i8* %"$mo_tag_3090", align 1 - switch i8 %"$mo_tag_3091", label %"$empty_default_3092" [ - i8 0, label %"$Some_3093" - i8 1, label %"$None_3169" + %"$mo_3066" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %mo, align 8 + %"$mo_tag_3067" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$mo_3066", i32 0, i32 0 + %"$mo_tag_3068" = load i8, i8* %"$mo_tag_3067", align 1 + switch i8 %"$mo_tag_3068", label %"$empty_default_3069" [ + i8 0, label %"$Some_3070" + i8 1, label %"$None_3146" ] -"$Some_3093": ; preds = %"$have_gas_3086" - %"$mo_3094" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3089" to %"CName_Some_Map_(String)_(String)"* - %"$m_gep_3095" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$mo_3094", i32 0, i32 1 - %"$m_load_3096" = load %Map_String_String*, %Map_String_String** %"$m_gep_3095", align 8 +"$Some_3070": ; preds = %"$have_gas_3063" + %"$mo_3071" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3066" to %"CName_Some_Map_(String)_(String)"* + %"$m_gep_3072" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$mo_3071", i32 0, i32 1 + %"$m_load_3073" = load %Map_String_String*, %Map_String_String** %"$m_gep_3072", align 8 %m = alloca %Map_String_String*, align 8 - store %Map_String_String* %"$m_load_3096", %Map_String_String** %m, align 8 + store %Map_String_String* %"$m_load_3073", %Map_String_String** %m, align 8 + %"$gasrem_3074" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3075" = icmp ugt i64 1, %"$gasrem_3074" + br i1 %"$gascmp_3075", label %"$out_of_gas_3076", label %"$have_gas_3077" + +"$out_of_gas_3076": ; preds = %"$Some_3070" + call void @_out_of_gas() + br label %"$have_gas_3077" + +"$have_gas_3077": ; preds = %"$out_of_gas_3076", %"$Some_3070" + %"$consume_3078" = sub i64 %"$gasrem_3074", 1 + store i64 %"$consume_3078", i64* @_gasrem, align 8 + %m_size = alloca %Uint32, align 8 + %"$gasrem_3079" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3080" = icmp ugt i64 1, %"$gasrem_3079" + br i1 %"$gascmp_3080", label %"$out_of_gas_3081", label %"$have_gas_3082" + +"$out_of_gas_3081": ; preds = %"$have_gas_3077" + call void @_out_of_gas() + br label %"$have_gas_3082" + +"$have_gas_3082": ; preds = %"$out_of_gas_3081", %"$have_gas_3077" + %"$consume_3083" = sub i64 %"$gasrem_3079", 1 + store i64 %"$consume_3083", i64* @_gasrem, align 8 + %"$m_3084" = load %Map_String_String*, %Map_String_String** %m, align 8 + %"$$m_3084_3085" = bitcast %Map_String_String* %"$m_3084" to i8* + %"$size_call_3086" = call %Uint32 @_size(i8* %"$$m_3084_3085") + store %Uint32 %"$size_call_3086", %Uint32* %m_size, align 4 + %"$gasrem_3087" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3088" = icmp ugt i64 1, %"$gasrem_3087" + br i1 %"$gascmp_3088", label %"$out_of_gas_3089", label %"$have_gas_3090" + +"$out_of_gas_3089": ; preds = %"$have_gas_3082" + call void @_out_of_gas() + br label %"$have_gas_3090" + +"$have_gas_3090": ; preds = %"$out_of_gas_3089", %"$have_gas_3082" + %"$consume_3091" = sub i64 %"$gasrem_3087", 1 + store i64 %"$consume_3091", i64* @_gasrem, align 8 + %zero = alloca %Uint32, align 8 + %"$gasrem_3092" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3093" = icmp ugt i64 1, %"$gasrem_3092" + br i1 %"$gascmp_3093", label %"$out_of_gas_3094", label %"$have_gas_3095" + +"$out_of_gas_3094": ; preds = %"$have_gas_3090" + call void @_out_of_gas() + br label %"$have_gas_3095" + +"$have_gas_3095": ; preds = %"$out_of_gas_3094", %"$have_gas_3090" + %"$consume_3096" = sub i64 %"$gasrem_3092", 1 + store i64 %"$consume_3096", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %zero, align 4 %"$gasrem_3097" = load i64, i64* @_gasrem, align 8 %"$gascmp_3098" = icmp ugt i64 1, %"$gasrem_3097" br i1 %"$gascmp_3098", label %"$out_of_gas_3099", label %"$have_gas_3100" -"$out_of_gas_3099": ; preds = %"$Some_3093" +"$out_of_gas_3099": ; preds = %"$have_gas_3095" call void @_out_of_gas() br label %"$have_gas_3100" -"$have_gas_3100": ; preds = %"$out_of_gas_3099", %"$Some_3093" +"$have_gas_3100": ; preds = %"$out_of_gas_3099", %"$have_gas_3095" %"$consume_3101" = sub i64 %"$gasrem_3097", 1 store i64 %"$consume_3101", i64* @_gasrem, align 8 - %m_size = alloca %Uint32, align 8 + %is_empty = alloca %TName_Bool*, align 8 %"$gasrem_3102" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3103" = icmp ugt i64 1, %"$gasrem_3102" + %"$gascmp_3103" = icmp ugt i64 4, %"$gasrem_3102" br i1 %"$gascmp_3103", label %"$out_of_gas_3104", label %"$have_gas_3105" "$out_of_gas_3104": ; preds = %"$have_gas_3100" @@ -6361,432 +6380,432 @@ entry: br label %"$have_gas_3105" "$have_gas_3105": ; preds = %"$out_of_gas_3104", %"$have_gas_3100" - %"$consume_3106" = sub i64 %"$gasrem_3102", 1 + %"$consume_3106" = sub i64 %"$gasrem_3102", 4 store i64 %"$consume_3106", i64* @_gasrem, align 8 - %"$m_3107" = load %Map_String_String*, %Map_String_String** %m, align 8 - %"$$m_3107_3108" = bitcast %Map_String_String* %"$m_3107" to i8* - %"$size_call_3109" = call %Uint32 @_size(i8* %"$$m_3107_3108") - store %Uint32 %"$size_call_3109", %Uint32* %m_size, align 4 - %"$gasrem_3110" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3111" = icmp ugt i64 1, %"$gasrem_3110" - br i1 %"$gascmp_3111", label %"$out_of_gas_3112", label %"$have_gas_3113" + %"$execptr_load_3107" = load i8*, i8** @_execptr, align 8 + %"$m_size_3108" = load %Uint32, %Uint32* %m_size, align 4 + %"$zero_3109" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_3110" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3107", %Uint32 %"$m_size_3108", %Uint32 %"$zero_3109") + store %TName_Bool* %"$eq_call_3110", %TName_Bool** %is_empty, align 8 + %"$gasrem_3112" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3113" = icmp ugt i64 2, %"$gasrem_3112" + br i1 %"$gascmp_3113", label %"$out_of_gas_3114", label %"$have_gas_3115" + +"$out_of_gas_3114": ; preds = %"$have_gas_3105" + call void @_out_of_gas() + br label %"$have_gas_3115" + +"$have_gas_3115": ; preds = %"$out_of_gas_3114", %"$have_gas_3105" + %"$consume_3116" = sub i64 %"$gasrem_3112", 2 + store i64 %"$consume_3116", i64* @_gasrem, align 8 + %"$is_empty_3118" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_3119" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3118", i32 0, i32 0 + %"$is_empty_tag_3120" = load i8, i8* %"$is_empty_tag_3119", align 1 + switch i8 %"$is_empty_tag_3120", label %"$empty_default_3121" [ + i8 0, label %"$True_3122" + i8 1, label %"$False_3124" + ] -"$out_of_gas_3112": ; preds = %"$have_gas_3105" - call void @_out_of_gas() - br label %"$have_gas_3113" +"$True_3122": ; preds = %"$have_gas_3115" + %"$is_empty_3123" = bitcast %TName_Bool* %"$is_empty_3118" to %CName_True* + br label %"$matchsucc_3117" -"$have_gas_3113": ; preds = %"$out_of_gas_3112", %"$have_gas_3105" - %"$consume_3114" = sub i64 %"$gasrem_3110", 1 - store i64 %"$consume_3114", i64* @_gasrem, align 8 - %zero = alloca %Uint32, align 8 - %"$gasrem_3115" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3116" = icmp ugt i64 1, %"$gasrem_3115" - br i1 %"$gascmp_3116", label %"$out_of_gas_3117", label %"$have_gas_3118" +"$False_3124": ; preds = %"$have_gas_3115" + %"$is_empty_3125" = bitcast %TName_Bool* %"$is_empty_3118" to %CName_False* + %"$gasrem_3126" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3127" = icmp ugt i64 1, %"$gasrem_3126" + br i1 %"$gascmp_3127", label %"$out_of_gas_3128", label %"$have_gas_3129" -"$out_of_gas_3117": ; preds = %"$have_gas_3113" +"$out_of_gas_3128": ; preds = %"$False_3124" call void @_out_of_gas() - br label %"$have_gas_3118" + br label %"$have_gas_3129" -"$have_gas_3118": ; preds = %"$out_of_gas_3117", %"$have_gas_3113" - %"$consume_3119" = sub i64 %"$gasrem_3115", 1 - store i64 %"$consume_3119", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %zero, align 4 - %"$gasrem_3120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3121" = icmp ugt i64 1, %"$gasrem_3120" - br i1 %"$gascmp_3121", label %"$out_of_gas_3122", label %"$have_gas_3123" +"$have_gas_3129": ; preds = %"$out_of_gas_3128", %"$False_3124" + %"$consume_3130" = sub i64 %"$gasrem_3126", 1 + store i64 %"$consume_3130", i64* @_gasrem, align 8 + %msg = alloca %String, align 8 + %"$gasrem_3131" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3132" = icmp ugt i64 1, %"$gasrem_3131" + br i1 %"$gascmp_3132", label %"$out_of_gas_3133", label %"$have_gas_3134" + +"$out_of_gas_3133": ; preds = %"$have_gas_3129" + call void @_out_of_gas() + br label %"$have_gas_3134" + +"$have_gas_3134": ; preds = %"$out_of_gas_3133", %"$have_gas_3129" + %"$consume_3135" = sub i64 %"$gasrem_3131", 1 + store i64 %"$consume_3135", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @"$stringlit_3136", i32 0, i32 0), i32 29 }, %String* %msg, align 8 + %"$gasrem_3137" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3138" = icmp ugt i64 1, %"$gasrem_3137" + br i1 %"$gascmp_3138", label %"$out_of_gas_3139", label %"$have_gas_3140" + +"$out_of_gas_3139": ; preds = %"$have_gas_3134" + call void @_out_of_gas() + br label %"$have_gas_3140" + +"$have_gas_3140": ; preds = %"$out_of_gas_3139", %"$have_gas_3134" + %"$consume_3141" = sub i64 %"$gasrem_3137", 1 + store i64 %"$consume_3141", i64* @_gasrem, align 8 + %"$fail_msg__origin_3142" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3142", align 1 + %"$fail_msg__sender_3143" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3143", align 1 + %"$tname_3144" = load %String, %String* %tname, align 8 + %"$msg_3145" = load %String, %String* %msg, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3142", [20 x i8]* %"$fail_msg__sender_3143", %String %"$tname_3144", %String %"$msg_3145") + br label %"$matchsucc_3117" + +"$empty_default_3121": ; preds = %"$have_gas_3115" + br label %"$matchsucc_3117" + +"$matchsucc_3117": ; preds = %"$have_gas_3140", %"$True_3122", %"$empty_default_3121" + br label %"$matchsucc_3065" + +"$None_3146": ; preds = %"$have_gas_3063" + %"$mo_3147" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3066" to %"CName_None_Map_(String)_(String)"* + %"$gasrem_3148" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3149" = icmp ugt i64 1, %"$gasrem_3148" + br i1 %"$gascmp_3149", label %"$out_of_gas_3150", label %"$have_gas_3151" + +"$out_of_gas_3150": ; preds = %"$None_3146" + call void @_out_of_gas() + br label %"$have_gas_3151" + +"$have_gas_3151": ; preds = %"$out_of_gas_3150", %"$None_3146" + %"$consume_3152" = sub i64 %"$gasrem_3148", 1 + store i64 %"$consume_3152", i64* @_gasrem, align 8 + %"$fail__origin_3153" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3153", align 1 + %"$fail__sender_3154" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3154", align 1 + %"$tname_3155" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3153", [20 x i8]* %"$fail__sender_3154", %String %"$tname_3155") + br label %"$matchsucc_3065" + +"$empty_default_3069": ; preds = %"$have_gas_3063" + br label %"$matchsucc_3065" + +"$matchsucc_3065": ; preds = %"$have_gas_3151", %"$matchsucc_3117", %"$empty_default_3069" + %"$gasrem_3156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3157" = icmp ugt i64 1, %"$gasrem_3156" + br i1 %"$gascmp_3157", label %"$out_of_gas_3158", label %"$have_gas_3159" + +"$out_of_gas_3158": ; preds = %"$matchsucc_3065" + call void @_out_of_gas() + br label %"$have_gas_3159" + +"$have_gas_3159": ; preds = %"$out_of_gas_3158", %"$matchsucc_3065" + %"$consume_3160" = sub i64 %"$gasrem_3156", 1 + store i64 %"$consume_3160", i64* @_gasrem, align 8 + %m3 = alloca %Map_String_String*, align 8 + %"$gasrem_3161" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3162" = icmp ugt i64 1, %"$gasrem_3161" + br i1 %"$gascmp_3162", label %"$out_of_gas_3163", label %"$have_gas_3164" -"$out_of_gas_3122": ; preds = %"$have_gas_3118" +"$out_of_gas_3163": ; preds = %"$have_gas_3159" call void @_out_of_gas() - br label %"$have_gas_3123" + br label %"$have_gas_3164" -"$have_gas_3123": ; preds = %"$out_of_gas_3122", %"$have_gas_3118" - %"$consume_3124" = sub i64 %"$gasrem_3120", 1 - store i64 %"$consume_3124", i64* @_gasrem, align 8 - %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_3125" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3126" = icmp ugt i64 4, %"$gasrem_3125" - br i1 %"$gascmp_3126", label %"$out_of_gas_3127", label %"$have_gas_3128" - -"$out_of_gas_3127": ; preds = %"$have_gas_3123" - call void @_out_of_gas() - br label %"$have_gas_3128" - -"$have_gas_3128": ; preds = %"$out_of_gas_3127", %"$have_gas_3123" - %"$consume_3129" = sub i64 %"$gasrem_3125", 4 - store i64 %"$consume_3129", i64* @_gasrem, align 8 - %"$execptr_load_3130" = load i8*, i8** @_execptr, align 8 - %"$m_size_3131" = load %Uint32, %Uint32* %m_size, align 4 - %"$zero_3132" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_3133" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3130", %Uint32 %"$m_size_3131", %Uint32 %"$zero_3132") - store %TName_Bool* %"$eq_call_3133", %TName_Bool** %is_empty, align 8 - %"$gasrem_3135" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3136" = icmp ugt i64 2, %"$gasrem_3135" - br i1 %"$gascmp_3136", label %"$out_of_gas_3137", label %"$have_gas_3138" - -"$out_of_gas_3137": ; preds = %"$have_gas_3128" - call void @_out_of_gas() - br label %"$have_gas_3138" - -"$have_gas_3138": ; preds = %"$out_of_gas_3137", %"$have_gas_3128" - %"$consume_3139" = sub i64 %"$gasrem_3135", 2 - store i64 %"$consume_3139", i64* @_gasrem, align 8 - %"$is_empty_3141" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_3142" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3141", i32 0, i32 0 - %"$is_empty_tag_3143" = load i8, i8* %"$is_empty_tag_3142", align 1 - switch i8 %"$is_empty_tag_3143", label %"$empty_default_3144" [ - i8 0, label %"$True_3145" - i8 1, label %"$False_3147" - ] +"$have_gas_3164": ; preds = %"$out_of_gas_3163", %"$have_gas_3159" + %"$consume_3165" = sub i64 %"$gasrem_3161", 1 + store i64 %"$consume_3165", i64* @_gasrem, align 8 + %"$execptr_load_3166" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3167" = call i8* @_new_empty_map(i8* %"$execptr_load_3166") + %"$_new_empty_map_3168" = bitcast i8* %"$_new_empty_map_call_3167" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_3168", %Map_String_String** %m3, align 8 + %"$gasrem_3169" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3170" = icmp ugt i64 1, %"$gasrem_3169" + br i1 %"$gascmp_3170", label %"$out_of_gas_3171", label %"$have_gas_3172" -"$True_3145": ; preds = %"$have_gas_3138" - %"$is_empty_3146" = bitcast %TName_Bool* %"$is_empty_3141" to %CName_True* - br label %"$matchsucc_3140" +"$out_of_gas_3171": ; preds = %"$have_gas_3164" + call void @_out_of_gas() + br label %"$have_gas_3172" -"$False_3147": ; preds = %"$have_gas_3138" - %"$is_empty_3148" = bitcast %TName_Bool* %"$is_empty_3141" to %CName_False* - %"$gasrem_3149" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3150" = icmp ugt i64 1, %"$gasrem_3149" - br i1 %"$gascmp_3150", label %"$out_of_gas_3151", label %"$have_gas_3152" +"$have_gas_3172": ; preds = %"$out_of_gas_3171", %"$have_gas_3164" + %"$consume_3173" = sub i64 %"$gasrem_3169", 1 + store i64 %"$consume_3173", i64* @_gasrem, align 8 + %m2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 + %"$gasrem_3174" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3175" = icmp ugt i64 1, %"$gasrem_3174" + br i1 %"$gascmp_3175", label %"$out_of_gas_3176", label %"$have_gas_3177" -"$out_of_gas_3151": ; preds = %"$False_3147" +"$out_of_gas_3176": ; preds = %"$have_gas_3172" call void @_out_of_gas() - br label %"$have_gas_3152" + br label %"$have_gas_3177" -"$have_gas_3152": ; preds = %"$out_of_gas_3151", %"$False_3147" - %"$consume_3153" = sub i64 %"$gasrem_3149", 1 - store i64 %"$consume_3153", i64* @_gasrem, align 8 - %msg = alloca %String, align 8 - %"$gasrem_3154" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3155" = icmp ugt i64 1, %"$gasrem_3154" - br i1 %"$gascmp_3155", label %"$out_of_gas_3156", label %"$have_gas_3157" - -"$out_of_gas_3156": ; preds = %"$have_gas_3152" - call void @_out_of_gas() - br label %"$have_gas_3157" - -"$have_gas_3157": ; preds = %"$out_of_gas_3156", %"$have_gas_3152" - %"$consume_3158" = sub i64 %"$gasrem_3154", 1 - store i64 %"$consume_3158", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([29 x i8], [29 x i8]* @"$stringlit_3159", i32 0, i32 0), i32 29 }, %String* %msg, align 8 - %"$gasrem_3160" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3161" = icmp ugt i64 1, %"$gasrem_3160" - br i1 %"$gascmp_3161", label %"$out_of_gas_3162", label %"$have_gas_3163" - -"$out_of_gas_3162": ; preds = %"$have_gas_3157" - call void @_out_of_gas() - br label %"$have_gas_3163" - -"$have_gas_3163": ; preds = %"$out_of_gas_3162", %"$have_gas_3157" - %"$consume_3164" = sub i64 %"$gasrem_3160", 1 - store i64 %"$consume_3164", i64* @_gasrem, align 8 - %"$fail_msg__origin_3165" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3165", align 1 - %"$fail_msg__sender_3166" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3166", align 1 - %"$tname_3167" = load %String, %String* %tname, align 8 - %"$msg_3168" = load %String, %String* %msg, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3165", [20 x i8]* %"$fail_msg__sender_3166", %String %"$tname_3167", %String %"$msg_3168") - br label %"$matchsucc_3140" - -"$empty_default_3144": ; preds = %"$have_gas_3138" - br label %"$matchsucc_3140" - -"$matchsucc_3140": ; preds = %"$have_gas_3163", %"$True_3145", %"$empty_default_3144" - br label %"$matchsucc_3088" - -"$None_3169": ; preds = %"$have_gas_3086" - %"$mo_3170" = bitcast %"TName_Option_Map_(String)_(String)"* %"$mo_3089" to %"CName_None_Map_(String)_(String)"* - %"$gasrem_3171" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3172" = icmp ugt i64 1, %"$gasrem_3171" - br i1 %"$gascmp_3172", label %"$out_of_gas_3173", label %"$have_gas_3174" - -"$out_of_gas_3173": ; preds = %"$None_3169" - call void @_out_of_gas() - br label %"$have_gas_3174" - -"$have_gas_3174": ; preds = %"$out_of_gas_3173", %"$None_3169" - %"$consume_3175" = sub i64 %"$gasrem_3171", 1 - store i64 %"$consume_3175", i64* @_gasrem, align 8 - %"$fail__origin_3176" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3176", align 1 - %"$fail__sender_3177" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3177", align 1 - %"$tname_3178" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3176", [20 x i8]* %"$fail__sender_3177", %String %"$tname_3178") - br label %"$matchsucc_3088" - -"$empty_default_3092": ; preds = %"$have_gas_3086" - br label %"$matchsucc_3088" - -"$matchsucc_3088": ; preds = %"$have_gas_3174", %"$matchsucc_3140", %"$empty_default_3092" +"$have_gas_3177": ; preds = %"$out_of_gas_3176", %"$have_gas_3172" + %"$consume_3178" = sub i64 %"$gasrem_3174", 1 + store i64 %"$consume_3178", i64* @_gasrem, align 8 + %key2a = alloca %String, align 8 %"$gasrem_3179" = load i64, i64* @_gasrem, align 8 %"$gascmp_3180" = icmp ugt i64 1, %"$gasrem_3179" br i1 %"$gascmp_3180", label %"$out_of_gas_3181", label %"$have_gas_3182" -"$out_of_gas_3181": ; preds = %"$matchsucc_3088" +"$out_of_gas_3181": ; preds = %"$have_gas_3177" call void @_out_of_gas() br label %"$have_gas_3182" -"$have_gas_3182": ; preds = %"$out_of_gas_3181", %"$matchsucc_3088" +"$have_gas_3182": ; preds = %"$out_of_gas_3181", %"$have_gas_3177" %"$consume_3183" = sub i64 %"$gasrem_3179", 1 store i64 %"$consume_3183", i64* @_gasrem, align 8 - %m3 = alloca %Map_String_String*, align 8 - %"$gasrem_3184" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3185" = icmp ugt i64 1, %"$gasrem_3184" - br i1 %"$gascmp_3185", label %"$out_of_gas_3186", label %"$have_gas_3187" - -"$out_of_gas_3186": ; preds = %"$have_gas_3182" - call void @_out_of_gas() - br label %"$have_gas_3187" - -"$have_gas_3187": ; preds = %"$out_of_gas_3186", %"$have_gas_3182" - %"$consume_3188" = sub i64 %"$gasrem_3184", 1 - store i64 %"$consume_3188", i64* @_gasrem, align 8 - %"$execptr_load_3189" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3190" = call i8* @_new_empty_map(i8* %"$execptr_load_3189") - %"$_new_empty_map_3191" = bitcast i8* %"$_new_empty_map_call_3190" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_3191", %Map_String_String** %m3, align 8 - %"$gasrem_3192" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3193" = icmp ugt i64 1, %"$gasrem_3192" - br i1 %"$gascmp_3193", label %"$out_of_gas_3194", label %"$have_gas_3195" + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3184", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 + %"$gasrem_3185" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3186" = icmp ugt i64 1, %"$gasrem_3185" + br i1 %"$gascmp_3186", label %"$out_of_gas_3187", label %"$have_gas_3188" -"$out_of_gas_3194": ; preds = %"$have_gas_3187" +"$out_of_gas_3187": ; preds = %"$have_gas_3182" call void @_out_of_gas() - br label %"$have_gas_3195" + br label %"$have_gas_3188" -"$have_gas_3195": ; preds = %"$out_of_gas_3194", %"$have_gas_3187" - %"$consume_3196" = sub i64 %"$gasrem_3192", 1 - store i64 %"$consume_3196", i64* @_gasrem, align 8 - %m2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3197" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3198" = icmp ugt i64 1, %"$gasrem_3197" - br i1 %"$gascmp_3198", label %"$out_of_gas_3199", label %"$have_gas_3200" - -"$out_of_gas_3199": ; preds = %"$have_gas_3195" - call void @_out_of_gas() - br label %"$have_gas_3200" - -"$have_gas_3200": ; preds = %"$out_of_gas_3199", %"$have_gas_3195" - %"$consume_3201" = sub i64 %"$gasrem_3197", 1 - store i64 %"$consume_3201", i64* @_gasrem, align 8 - %key2a = alloca %String, align 8 +"$have_gas_3188": ; preds = %"$out_of_gas_3187", %"$have_gas_3182" + %"$consume_3189" = sub i64 %"$gasrem_3185", 1 + store i64 %"$consume_3189", i64* @_gasrem, align 8 + %e = alloca %"Map_String_Map_(String)_(String)"*, align 8 + %"$gasrem_3190" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3191" = icmp ugt i64 1, %"$gasrem_3190" + br i1 %"$gascmp_3191", label %"$out_of_gas_3192", label %"$have_gas_3193" + +"$out_of_gas_3192": ; preds = %"$have_gas_3188" + call void @_out_of_gas() + br label %"$have_gas_3193" + +"$have_gas_3193": ; preds = %"$out_of_gas_3192", %"$have_gas_3188" + %"$consume_3194" = sub i64 %"$gasrem_3190", 1 + store i64 %"$consume_3194", i64* @_gasrem, align 8 + %"$execptr_load_3195" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3196" = call i8* @_new_empty_map(i8* %"$execptr_load_3195") + %"$_new_empty_map_3197" = bitcast i8* %"$_new_empty_map_call_3196" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3197", %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$e_3198" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$$e_3198_3199" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3198" to i8* + %"$_lengthof_call_3200" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$e_3198_3199") + %"$gasadd_3201" = add i64 1, %"$_lengthof_call_3200" %"$gasrem_3202" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3203" = icmp ugt i64 1, %"$gasrem_3202" + %"$gascmp_3203" = icmp ugt i64 %"$gasadd_3201", %"$gasrem_3202" br i1 %"$gascmp_3203", label %"$out_of_gas_3204", label %"$have_gas_3205" -"$out_of_gas_3204": ; preds = %"$have_gas_3200" +"$out_of_gas_3204": ; preds = %"$have_gas_3193" call void @_out_of_gas() br label %"$have_gas_3205" -"$have_gas_3205": ; preds = %"$out_of_gas_3204", %"$have_gas_3200" - %"$consume_3206" = sub i64 %"$gasrem_3202", 1 +"$have_gas_3205": ; preds = %"$out_of_gas_3204", %"$have_gas_3193" + %"$consume_3206" = sub i64 %"$gasrem_3202", %"$gasadd_3201" store i64 %"$consume_3206", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3207", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 - %"$gasrem_3208" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3209" = icmp ugt i64 1, %"$gasrem_3208" - br i1 %"$gascmp_3209", label %"$out_of_gas_3210", label %"$have_gas_3211" - -"$out_of_gas_3210": ; preds = %"$have_gas_3205" - call void @_out_of_gas() - br label %"$have_gas_3211" - -"$have_gas_3211": ; preds = %"$out_of_gas_3210", %"$have_gas_3205" - %"$consume_3212" = sub i64 %"$gasrem_3208", 1 - store i64 %"$consume_3212", i64* @_gasrem, align 8 - %e = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3213" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3214" = icmp ugt i64 1, %"$gasrem_3213" - br i1 %"$gascmp_3214", label %"$out_of_gas_3215", label %"$have_gas_3216" - -"$out_of_gas_3215": ; preds = %"$have_gas_3211" - call void @_out_of_gas() - br label %"$have_gas_3216" - -"$have_gas_3216": ; preds = %"$out_of_gas_3215", %"$have_gas_3211" - %"$consume_3217" = sub i64 %"$gasrem_3213", 1 - store i64 %"$consume_3217", i64* @_gasrem, align 8 - %"$execptr_load_3218" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3219" = call i8* @_new_empty_map(i8* %"$execptr_load_3218") - %"$_new_empty_map_3220" = bitcast i8* %"$_new_empty_map_call_3219" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3220", %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$e_3221" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$$e_3221_3222" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3221" to i8* - %"$_lengthof_call_3223" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$e_3221_3222") - %"$gasadd_3224" = add i64 1, %"$_lengthof_call_3223" - %"$gasrem_3225" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3226" = icmp ugt i64 %"$gasadd_3224", %"$gasrem_3225" - br i1 %"$gascmp_3226", label %"$out_of_gas_3227", label %"$have_gas_3228" - -"$out_of_gas_3227": ; preds = %"$have_gas_3216" - call void @_out_of_gas() - br label %"$have_gas_3228" - -"$have_gas_3228": ; preds = %"$out_of_gas_3227", %"$have_gas_3216" - %"$consume_3229" = sub i64 %"$gasrem_3225", %"$gasadd_3224" - store i64 %"$consume_3229", i64* @_gasrem, align 8 - %"$execptr_load_3230" = load i8*, i8** @_execptr, align 8 - %"$e_3231" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$$e_3231_3232" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3231" to i8* - %"$put_key2a_3233" = alloca %String, align 8 - %"$key2a_3234" = load %String, %String* %key2a, align 8 - store %String %"$key2a_3234", %String* %"$put_key2a_3233", align 8 - %"$$put_key2a_3233_3235" = bitcast %String* %"$put_key2a_3233" to i8* - %"$m3_3236" = load %Map_String_String*, %Map_String_String** %m3, align 8 - %"$$m3_3236_3237" = bitcast %Map_String_String* %"$m3_3236" to i8* - %"$put_call_3238" = call i8* @_put(i8* %"$execptr_load_3230", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$e_3231_3232", i8* %"$$put_key2a_3233_3235", i8* %"$$m3_3236_3237") - %"$put_3239" = bitcast i8* %"$put_call_3238" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_3239", %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$gasrem_3240" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3241" = icmp ugt i64 1, %"$gasrem_3240" - br i1 %"$gascmp_3241", label %"$out_of_gas_3242", label %"$have_gas_3243" - -"$out_of_gas_3242": ; preds = %"$have_gas_3228" - call void @_out_of_gas() - br label %"$have_gas_3243" - -"$have_gas_3243": ; preds = %"$out_of_gas_3242", %"$have_gas_3228" - %"$consume_3244" = sub i64 %"$gasrem_3240", 1 - store i64 %"$consume_3244", i64* @_gasrem, align 8 + %"$execptr_load_3207" = load i8*, i8** @_execptr, align 8 + %"$e_3208" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$$e_3208_3209" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3208" to i8* + %"$put_key2a_3210" = alloca %String, align 8 + %"$key2a_3211" = load %String, %String* %key2a, align 8 + store %String %"$key2a_3211", %String* %"$put_key2a_3210", align 8 + %"$$put_key2a_3210_3212" = bitcast %String* %"$put_key2a_3210" to i8* + %"$m3_3213" = load %Map_String_String*, %Map_String_String** %m3, align 8 + %"$$m3_3213_3214" = bitcast %Map_String_String* %"$m3_3213" to i8* + %"$put_call_3215" = call i8* @_put(i8* %"$execptr_load_3207", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$e_3208_3209", i8* %"$$put_key2a_3210_3212", i8* %"$$m3_3213_3214") + %"$put_3216" = bitcast i8* %"$put_call_3215" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_3216", %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$gasrem_3217" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3218" = icmp ugt i64 1, %"$gasrem_3217" + br i1 %"$gascmp_3218", label %"$out_of_gas_3219", label %"$have_gas_3220" + +"$out_of_gas_3219": ; preds = %"$have_gas_3205" + call void @_out_of_gas() + br label %"$have_gas_3220" + +"$have_gas_3220": ; preds = %"$out_of_gas_3219", %"$have_gas_3205" + %"$consume_3221" = sub i64 %"$gasrem_3217", 1 + store i64 %"$consume_3221", i64* @_gasrem, align 8 %"$m3_12" = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$gasrem_3245" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3246" = icmp ugt i64 1, %"$gasrem_3245" - br i1 %"$gascmp_3246", label %"$out_of_gas_3247", label %"$have_gas_3248" + %"$gasrem_3222" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3223" = icmp ugt i64 1, %"$gasrem_3222" + br i1 %"$gascmp_3223", label %"$out_of_gas_3224", label %"$have_gas_3225" -"$out_of_gas_3247": ; preds = %"$have_gas_3243" +"$out_of_gas_3224": ; preds = %"$have_gas_3220" call void @_out_of_gas() - br label %"$have_gas_3248" + br label %"$have_gas_3225" -"$have_gas_3248": ; preds = %"$out_of_gas_3247", %"$have_gas_3243" - %"$consume_3249" = sub i64 %"$gasrem_3245", 1 - store i64 %"$consume_3249", i64* @_gasrem, align 8 +"$have_gas_3225": ; preds = %"$out_of_gas_3224", %"$have_gas_3220" + %"$consume_3226" = sub i64 %"$gasrem_3222", 1 + store i64 %"$consume_3226", i64* @_gasrem, align 8 %"$e_11" = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$gasrem_3250" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3251" = icmp ugt i64 1, %"$gasrem_3250" - br i1 %"$gascmp_3251", label %"$out_of_gas_3252", label %"$have_gas_3253" - -"$out_of_gas_3252": ; preds = %"$have_gas_3248" - call void @_out_of_gas() - br label %"$have_gas_3253" - -"$have_gas_3253": ; preds = %"$out_of_gas_3252", %"$have_gas_3248" - %"$consume_3254" = sub i64 %"$gasrem_3250", 1 - store i64 %"$consume_3254", i64* @_gasrem, align 8 - %"$execptr_load_3255" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3256" = call i8* @_new_empty_map(i8* %"$execptr_load_3255") - %"$_new_empty_map_3257" = bitcast i8* %"$_new_empty_map_call_3256" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_3257", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8 - %"$$e_11_3258" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8 - %"$$$e_11_3258_3259" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_11_3258" to i8* - %"$_lengthof_call_3260" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$$e_11_3258_3259") - %"$gasadd_3261" = add i64 1, %"$_lengthof_call_3260" - %"$gasrem_3262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3263" = icmp ugt i64 %"$gasadd_3261", %"$gasrem_3262" - br i1 %"$gascmp_3263", label %"$out_of_gas_3264", label %"$have_gas_3265" - -"$out_of_gas_3264": ; preds = %"$have_gas_3253" - call void @_out_of_gas() - br label %"$have_gas_3265" - -"$have_gas_3265": ; preds = %"$out_of_gas_3264", %"$have_gas_3253" - %"$consume_3266" = sub i64 %"$gasrem_3262", %"$gasadd_3261" - store i64 %"$consume_3266", i64* @_gasrem, align 8 - %"$execptr_load_3267" = load i8*, i8** @_execptr, align 8 - %"$$e_11_3268" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8 - %"$$$e_11_3268_3269" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_11_3268" to i8* - %"$put_key1a_3270" = alloca %String, align 8 - %"$key1a_3271" = load %String, %String* %key1a, align 8 - store %String %"$key1a_3271", %String* %"$put_key1a_3270", align 8 - %"$$put_key1a_3270_3272" = bitcast %String* %"$put_key1a_3270" to i8* - %"$m2_3273" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_3273_3274" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3273" to i8* - %"$put_call_3275" = call i8* @_put(i8* %"$execptr_load_3267", %_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$$e_11_3268_3269", i8* %"$$put_key1a_3270_3272", i8* %"$$m2_3273_3274") - %"$put_3276" = bitcast i8* %"$put_call_3275" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$put_3276", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8 - %"$$m3_12_3277" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8 - %"$$$m3_12_3277_3278" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_12_3277" to i8* - %"$_literal_cost_call_3279" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$$m3_12_3277_3278") - %"$gasrem_3280" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3281" = icmp ugt i64 %"$_literal_cost_call_3279", %"$gasrem_3280" - br i1 %"$gascmp_3281", label %"$out_of_gas_3282", label %"$have_gas_3283" - -"$out_of_gas_3282": ; preds = %"$have_gas_3265" - call void @_out_of_gas() - br label %"$have_gas_3283" - -"$have_gas_3283": ; preds = %"$out_of_gas_3282", %"$have_gas_3265" - %"$consume_3284" = sub i64 %"$gasrem_3280", %"$_literal_cost_call_3279" - store i64 %"$consume_3284", i64* @_gasrem, align 8 - %"$execptr_load_3285" = load i8*, i8** @_execptr, align 8 - %"$$m3_12_3287" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8 - %"$update_value_3288" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_12_3287" to i8* - call void @_update_field(i8* %"$execptr_load_3285", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3286", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_71", i32 0, i8* null, i8* %"$update_value_3288") + %"$gasrem_3227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3228" = icmp ugt i64 1, %"$gasrem_3227" + br i1 %"$gascmp_3228", label %"$out_of_gas_3229", label %"$have_gas_3230" + +"$out_of_gas_3229": ; preds = %"$have_gas_3225" + call void @_out_of_gas() + br label %"$have_gas_3230" + +"$have_gas_3230": ; preds = %"$out_of_gas_3229", %"$have_gas_3225" + %"$consume_3231" = sub i64 %"$gasrem_3227", 1 + store i64 %"$consume_3231", i64* @_gasrem, align 8 + %"$execptr_load_3232" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3233" = call i8* @_new_empty_map(i8* %"$execptr_load_3232") + %"$_new_empty_map_3234" = bitcast i8* %"$_new_empty_map_call_3233" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$_new_empty_map_3234", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8 + %"$$e_11_3235" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8 + %"$$$e_11_3235_3236" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_11_3235" to i8* + %"$_lengthof_call_3237" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$$e_11_3235_3236") + %"$gasadd_3238" = add i64 1, %"$_lengthof_call_3237" + %"$gasrem_3239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3240" = icmp ugt i64 %"$gasadd_3238", %"$gasrem_3239" + br i1 %"$gascmp_3240", label %"$out_of_gas_3241", label %"$have_gas_3242" + +"$out_of_gas_3241": ; preds = %"$have_gas_3230" + call void @_out_of_gas() + br label %"$have_gas_3242" + +"$have_gas_3242": ; preds = %"$out_of_gas_3241", %"$have_gas_3230" + %"$consume_3243" = sub i64 %"$gasrem_3239", %"$gasadd_3238" + store i64 %"$consume_3243", i64* @_gasrem, align 8 + %"$execptr_load_3244" = load i8*, i8** @_execptr, align 8 + %"$$e_11_3245" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$e_11", align 8 + %"$$$e_11_3245_3246" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$e_11_3245" to i8* + %"$put_key1a_3247" = alloca %String, align 8 + %"$key1a_3248" = load %String, %String* %key1a, align 8 + store %String %"$key1a_3248", %String* %"$put_key1a_3247", align 8 + %"$$put_key1a_3247_3249" = bitcast %String* %"$put_key1a_3247" to i8* + %"$m2_3250" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_3250_3251" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3250" to i8* + %"$put_call_3252" = call i8* @_put(i8* %"$execptr_load_3244", %_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$$e_11_3245_3246", i8* %"$$put_key1a_3247_3249", i8* %"$$m2_3250_3251") + %"$put_3253" = bitcast i8* %"$put_call_3252" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$put_3253", %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8 + %"$$m3_12_3254" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8 + %"$$$m3_12_3254_3255" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_12_3254" to i8* + %"$_literal_cost_call_3256" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$$m3_12_3254_3255") + %"$gasrem_3257" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3258" = icmp ugt i64 %"$_literal_cost_call_3256", %"$gasrem_3257" + br i1 %"$gascmp_3258", label %"$out_of_gas_3259", label %"$have_gas_3260" + +"$out_of_gas_3259": ; preds = %"$have_gas_3242" + call void @_out_of_gas() + br label %"$have_gas_3260" + +"$have_gas_3260": ; preds = %"$out_of_gas_3259", %"$have_gas_3242" + %"$consume_3261" = sub i64 %"$gasrem_3257", %"$_literal_cost_call_3256" + store i64 %"$consume_3261", i64* @_gasrem, align 8 + %"$execptr_load_3262" = load i8*, i8** @_execptr, align 8 + %"$$m3_12_3264" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %"$m3_12", align 8 + %"$update_value_3265" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$$m3_12_3264" to i8* + call void @_update_field(i8* %"$execptr_load_3262", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3263", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_63", i32 0, i8* null, i8* %"$update_value_3265") ret void } define void @t13(i8* %0) { entry: - %"$_amount_3290" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3291" = bitcast i8* %"$_amount_3290" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3291", align 8 - %"$_origin_3292" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3293" = bitcast i8* %"$_origin_3292" to [20 x i8]* - %"$_sender_3294" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3295" = bitcast i8* %"$_sender_3294" to [20 x i8]* - call void @"$t13_3041"(%Uint128 %_amount, [20 x i8]* %"$_origin_3293", [20 x i8]* %"$_sender_3295") + %"$_amount_3267" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3268" = bitcast i8* %"$_amount_3267" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3268", align 8 + %"$_origin_3269" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3270" = bitcast i8* %"$_origin_3269" to [20 x i8]* + %"$_sender_3271" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3272" = bitcast i8* %"$_sender_3271" to [20 x i8]* + call void @"$t13_3018"(%Uint128 %_amount, [20 x i8]* %"$_origin_3270", [20 x i8]* %"$_sender_3272") ret void } -define internal void @"$t14_3296"(%Uint128 %_amount, [20 x i8]* %"$_origin_3297", [20 x i8]* %"$_sender_3298") { +define internal void @"$t14_3273"(%Uint128 %_amount, [20 x i8]* %"$_origin_3274", [20 x i8]* %"$_sender_3275") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3297", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3298", align 1 - %"$gasrem_3299" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3300" = icmp ugt i64 1, %"$gasrem_3299" - br i1 %"$gascmp_3300", label %"$out_of_gas_3301", label %"$have_gas_3302" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3274", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3275", align 1 + %"$gasrem_3276" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3277" = icmp ugt i64 1, %"$gasrem_3276" + br i1 %"$gascmp_3277", label %"$out_of_gas_3278", label %"$have_gas_3279" -"$out_of_gas_3301": ; preds = %entry +"$out_of_gas_3278": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3302" + br label %"$have_gas_3279" -"$have_gas_3302": ; preds = %"$out_of_gas_3301", %entry - %"$consume_3303" = sub i64 %"$gasrem_3299", 1 - store i64 %"$consume_3303", i64* @_gasrem, align 8 +"$have_gas_3279": ; preds = %"$out_of_gas_3278", %entry + %"$consume_3280" = sub i64 %"$gasrem_3276", 1 + store i64 %"$consume_3280", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_3304" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3305" = icmp ugt i64 1, %"$gasrem_3304" - br i1 %"$gascmp_3305", label %"$out_of_gas_3306", label %"$have_gas_3307" + %"$gasrem_3281" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3282" = icmp ugt i64 1, %"$gasrem_3281" + br i1 %"$gascmp_3282", label %"$out_of_gas_3283", label %"$have_gas_3284" -"$out_of_gas_3306": ; preds = %"$have_gas_3302" +"$out_of_gas_3283": ; preds = %"$have_gas_3279" call void @_out_of_gas() - br label %"$have_gas_3307" + br label %"$have_gas_3284" -"$have_gas_3307": ; preds = %"$out_of_gas_3306", %"$have_gas_3302" - %"$consume_3308" = sub i64 %"$gasrem_3304", 1 - store i64 %"$consume_3308", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3309", i32 0, i32 0), i32 3 }, %String* %tname, align 8 +"$have_gas_3284": ; preds = %"$out_of_gas_3283", %"$have_gas_3279" + %"$consume_3285" = sub i64 %"$gasrem_3281", 1 + store i64 %"$consume_3285", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3286", i32 0, i32 0), i32 3 }, %String* %tname, align 8 %m3 = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$execptr_load_3311" = load i8*, i8** @_execptr, align 8 - %"$m3_call_3312" = call i8* @_fetch_field(i8* %"$execptr_load_3311", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3310", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_71", i32 0, i8* null, i32 1) - %"$m3_3313" = bitcast i8* %"$m3_call_3312" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3313", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$m3_3314" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3314_3315" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3314" to i8* - %"$_literal_cost_call_3316" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$m3_3314_3315") - %"$m3_3317" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3317_3318" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3317" to i8* - %"$_mapsortcost_call_3319" = call i64 @_mapsortcost(i8* %"$$m3_3317_3318") - %"$gasadd_3320" = add i64 %"$_literal_cost_call_3316", %"$_mapsortcost_call_3319" + %"$execptr_load_3288" = load i8*, i8** @_execptr, align 8 + %"$m3_call_3289" = call i8* @_fetch_field(i8* %"$execptr_load_3288", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3287", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_63", i32 0, i8* null, i32 1) + %"$m3_3290" = bitcast i8* %"$m3_call_3289" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3290", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$m3_3291" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3291_3292" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3291" to i8* + %"$_literal_cost_call_3293" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$m3_3291_3292") + %"$m3_3294" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3294_3295" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3294" to i8* + %"$_mapsortcost_call_3296" = call i64 @_mapsortcost(i8* %"$$m3_3294_3295") + %"$gasadd_3297" = add i64 %"$_literal_cost_call_3293", %"$_mapsortcost_call_3296" + %"$gasrem_3298" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3299" = icmp ugt i64 %"$gasadd_3297", %"$gasrem_3298" + br i1 %"$gascmp_3299", label %"$out_of_gas_3300", label %"$have_gas_3301" + +"$out_of_gas_3300": ; preds = %"$have_gas_3284" + call void @_out_of_gas() + br label %"$have_gas_3301" + +"$have_gas_3301": ; preds = %"$out_of_gas_3300", %"$have_gas_3284" + %"$consume_3302" = sub i64 %"$gasrem_3298", %"$gasadd_3297" + store i64 %"$consume_3302", i64* @_gasrem, align 8 + %"$gasrem_3303" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3304" = icmp ugt i64 1, %"$gasrem_3303" + br i1 %"$gascmp_3304", label %"$out_of_gas_3305", label %"$have_gas_3306" + +"$out_of_gas_3305": ; preds = %"$have_gas_3301" + call void @_out_of_gas() + br label %"$have_gas_3306" + +"$have_gas_3306": ; preds = %"$out_of_gas_3305", %"$have_gas_3301" + %"$consume_3307" = sub i64 %"$gasrem_3303", 1 + store i64 %"$consume_3307", i64* @_gasrem, align 8 + %m3_size = alloca %Uint32, align 8 + %"$gasrem_3308" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3309" = icmp ugt i64 1, %"$gasrem_3308" + br i1 %"$gascmp_3309", label %"$out_of_gas_3310", label %"$have_gas_3311" + +"$out_of_gas_3310": ; preds = %"$have_gas_3306" + call void @_out_of_gas() + br label %"$have_gas_3311" + +"$have_gas_3311": ; preds = %"$out_of_gas_3310", %"$have_gas_3306" + %"$consume_3312" = sub i64 %"$gasrem_3308", 1 + store i64 %"$consume_3312", i64* @_gasrem, align 8 + %"$m3_3313" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3313_3314" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3313" to i8* + %"$size_call_3315" = call %Uint32 @_size(i8* %"$$m3_3313_3314") + store %Uint32 %"$size_call_3315", %Uint32* %m3_size, align 4 + %"$gasrem_3316" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3317" = icmp ugt i64 1, %"$gasrem_3316" + br i1 %"$gascmp_3317", label %"$out_of_gas_3318", label %"$have_gas_3319" + +"$out_of_gas_3318": ; preds = %"$have_gas_3311" + call void @_out_of_gas() + br label %"$have_gas_3319" + +"$have_gas_3319": ; preds = %"$out_of_gas_3318", %"$have_gas_3311" + %"$consume_3320" = sub i64 %"$gasrem_3316", 1 + store i64 %"$consume_3320", i64* @_gasrem, align 8 + %one = alloca %Uint32, align 8 %"$gasrem_3321" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3322" = icmp ugt i64 %"$gasadd_3320", %"$gasrem_3321" + %"$gascmp_3322" = icmp ugt i64 1, %"$gasrem_3321" br i1 %"$gascmp_3322", label %"$out_of_gas_3323", label %"$have_gas_3324" -"$out_of_gas_3323": ; preds = %"$have_gas_3307" +"$out_of_gas_3323": ; preds = %"$have_gas_3319" call void @_out_of_gas() br label %"$have_gas_3324" -"$have_gas_3324": ; preds = %"$out_of_gas_3323", %"$have_gas_3307" - %"$consume_3325" = sub i64 %"$gasrem_3321", %"$gasadd_3320" +"$have_gas_3324": ; preds = %"$out_of_gas_3323", %"$have_gas_3319" + %"$consume_3325" = sub i64 %"$gasrem_3321", 1 store i64 %"$consume_3325", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4 %"$gasrem_3326" = load i64, i64* @_gasrem, align 8 %"$gascmp_3327" = icmp ugt i64 1, %"$gasrem_3326" br i1 %"$gascmp_3327", label %"$out_of_gas_3328", label %"$have_gas_3329" @@ -6798,9 +6817,9 @@ entry: "$have_gas_3329": ; preds = %"$out_of_gas_3328", %"$have_gas_3324" %"$consume_3330" = sub i64 %"$gasrem_3326", 1 store i64 %"$consume_3330", i64* @_gasrem, align 8 - %m3_size = alloca %Uint32, align 8 + %is_empty = alloca %TName_Bool*, align 8 %"$gasrem_3331" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3332" = icmp ugt i64 1, %"$gasrem_3331" + %"$gascmp_3332" = icmp ugt i64 4, %"$gasrem_3331" br i1 %"$gascmp_3332", label %"$out_of_gas_3333", label %"$have_gas_3334" "$out_of_gas_3333": ; preds = %"$have_gas_3329" @@ -6808,224 +6827,224 @@ entry: br label %"$have_gas_3334" "$have_gas_3334": ; preds = %"$out_of_gas_3333", %"$have_gas_3329" - %"$consume_3335" = sub i64 %"$gasrem_3331", 1 + %"$consume_3335" = sub i64 %"$gasrem_3331", 4 store i64 %"$consume_3335", i64* @_gasrem, align 8 - %"$m3_3336" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3336_3337" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3336" to i8* - %"$size_call_3338" = call %Uint32 @_size(i8* %"$$m3_3336_3337") - store %Uint32 %"$size_call_3338", %Uint32* %m3_size, align 4 - %"$gasrem_3339" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3340" = icmp ugt i64 1, %"$gasrem_3339" - br i1 %"$gascmp_3340", label %"$out_of_gas_3341", label %"$have_gas_3342" - -"$out_of_gas_3341": ; preds = %"$have_gas_3334" - call void @_out_of_gas() - br label %"$have_gas_3342" - -"$have_gas_3342": ; preds = %"$out_of_gas_3341", %"$have_gas_3334" - %"$consume_3343" = sub i64 %"$gasrem_3339", 1 - store i64 %"$consume_3343", i64* @_gasrem, align 8 - %one = alloca %Uint32, align 8 - %"$gasrem_3344" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3345" = icmp ugt i64 1, %"$gasrem_3344" - br i1 %"$gascmp_3345", label %"$out_of_gas_3346", label %"$have_gas_3347" - -"$out_of_gas_3346": ; preds = %"$have_gas_3342" - call void @_out_of_gas() - br label %"$have_gas_3347" - -"$have_gas_3347": ; preds = %"$out_of_gas_3346", %"$have_gas_3342" - %"$consume_3348" = sub i64 %"$gasrem_3344", 1 - store i64 %"$consume_3348", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4 - %"$gasrem_3349" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3350" = icmp ugt i64 1, %"$gasrem_3349" - br i1 %"$gascmp_3350", label %"$out_of_gas_3351", label %"$have_gas_3352" - -"$out_of_gas_3351": ; preds = %"$have_gas_3347" - call void @_out_of_gas() - br label %"$have_gas_3352" - -"$have_gas_3352": ; preds = %"$out_of_gas_3351", %"$have_gas_3347" - %"$consume_3353" = sub i64 %"$gasrem_3349", 1 - store i64 %"$consume_3353", i64* @_gasrem, align 8 - %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_3354" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3355" = icmp ugt i64 4, %"$gasrem_3354" - br i1 %"$gascmp_3355", label %"$out_of_gas_3356", label %"$have_gas_3357" - -"$out_of_gas_3356": ; preds = %"$have_gas_3352" - call void @_out_of_gas() - br label %"$have_gas_3357" - -"$have_gas_3357": ; preds = %"$out_of_gas_3356", %"$have_gas_3352" - %"$consume_3358" = sub i64 %"$gasrem_3354", 4 - store i64 %"$consume_3358", i64* @_gasrem, align 8 - %"$execptr_load_3359" = load i8*, i8** @_execptr, align 8 - %"$m3_size_3360" = load %Uint32, %Uint32* %m3_size, align 4 - %"$one_3361" = load %Uint32, %Uint32* %one, align 4 - %"$eq_call_3362" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3359", %Uint32 %"$m3_size_3360", %Uint32 %"$one_3361") - store %TName_Bool* %"$eq_call_3362", %TName_Bool** %is_empty, align 8 - %"$gasrem_3364" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3365" = icmp ugt i64 2, %"$gasrem_3364" - br i1 %"$gascmp_3365", label %"$out_of_gas_3366", label %"$have_gas_3367" - -"$out_of_gas_3366": ; preds = %"$have_gas_3357" - call void @_out_of_gas() - br label %"$have_gas_3367" - -"$have_gas_3367": ; preds = %"$out_of_gas_3366", %"$have_gas_3357" - %"$consume_3368" = sub i64 %"$gasrem_3364", 2 - store i64 %"$consume_3368", i64* @_gasrem, align 8 - %"$is_empty_3370" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_3371" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3370", i32 0, i32 0 - %"$is_empty_tag_3372" = load i8, i8* %"$is_empty_tag_3371", align 1 - switch i8 %"$is_empty_tag_3372", label %"$empty_default_3373" [ - i8 0, label %"$True_3374" - i8 1, label %"$False_3376" + %"$execptr_load_3336" = load i8*, i8** @_execptr, align 8 + %"$m3_size_3337" = load %Uint32, %Uint32* %m3_size, align 4 + %"$one_3338" = load %Uint32, %Uint32* %one, align 4 + %"$eq_call_3339" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3336", %Uint32 %"$m3_size_3337", %Uint32 %"$one_3338") + store %TName_Bool* %"$eq_call_3339", %TName_Bool** %is_empty, align 8 + %"$gasrem_3341" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3342" = icmp ugt i64 2, %"$gasrem_3341" + br i1 %"$gascmp_3342", label %"$out_of_gas_3343", label %"$have_gas_3344" + +"$out_of_gas_3343": ; preds = %"$have_gas_3334" + call void @_out_of_gas() + br label %"$have_gas_3344" + +"$have_gas_3344": ; preds = %"$out_of_gas_3343", %"$have_gas_3334" + %"$consume_3345" = sub i64 %"$gasrem_3341", 2 + store i64 %"$consume_3345", i64* @_gasrem, align 8 + %"$is_empty_3347" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_3348" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3347", i32 0, i32 0 + %"$is_empty_tag_3349" = load i8, i8* %"$is_empty_tag_3348", align 1 + switch i8 %"$is_empty_tag_3349", label %"$empty_default_3350" [ + i8 0, label %"$True_3351" + i8 1, label %"$False_3353" ] -"$True_3374": ; preds = %"$have_gas_3367" - %"$is_empty_3375" = bitcast %TName_Bool* %"$is_empty_3370" to %CName_True* - br label %"$matchsucc_3369" +"$True_3351": ; preds = %"$have_gas_3344" + %"$is_empty_3352" = bitcast %TName_Bool* %"$is_empty_3347" to %CName_True* + br label %"$matchsucc_3346" -"$False_3376": ; preds = %"$have_gas_3367" - %"$is_empty_3377" = bitcast %TName_Bool* %"$is_empty_3370" to %CName_False* - %"$gasrem_3378" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3379" = icmp ugt i64 1, %"$gasrem_3378" - br i1 %"$gascmp_3379", label %"$out_of_gas_3380", label %"$have_gas_3381" +"$False_3353": ; preds = %"$have_gas_3344" + %"$is_empty_3354" = bitcast %TName_Bool* %"$is_empty_3347" to %CName_False* + %"$gasrem_3355" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3356" = icmp ugt i64 1, %"$gasrem_3355" + br i1 %"$gascmp_3356", label %"$out_of_gas_3357", label %"$have_gas_3358" -"$out_of_gas_3380": ; preds = %"$False_3376" +"$out_of_gas_3357": ; preds = %"$False_3353" call void @_out_of_gas() - br label %"$have_gas_3381" + br label %"$have_gas_3358" -"$have_gas_3381": ; preds = %"$out_of_gas_3380", %"$False_3376" - %"$consume_3382" = sub i64 %"$gasrem_3378", 1 - store i64 %"$consume_3382", i64* @_gasrem, align 8 - %"$fail__origin_3383" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3383", align 1 - %"$fail__sender_3384" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3384", align 1 - %"$tname_3385" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3383", [20 x i8]* %"$fail__sender_3384", %String %"$tname_3385") - br label %"$matchsucc_3369" +"$have_gas_3358": ; preds = %"$out_of_gas_3357", %"$False_3353" + %"$consume_3359" = sub i64 %"$gasrem_3355", 1 + store i64 %"$consume_3359", i64* @_gasrem, align 8 + %"$fail__origin_3360" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_3360", align 1 + %"$fail__sender_3361" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_3361", align 1 + %"$tname_3362" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_3360", [20 x i8]* %"$fail__sender_3361", %String %"$tname_3362") + br label %"$matchsucc_3346" -"$empty_default_3373": ; preds = %"$have_gas_3367" - br label %"$matchsucc_3369" +"$empty_default_3350": ; preds = %"$have_gas_3344" + br label %"$matchsucc_3346" -"$matchsucc_3369": ; preds = %"$have_gas_3381", %"$True_3374", %"$empty_default_3373" - %"$gasrem_3386" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3387" = icmp ugt i64 1, %"$gasrem_3386" - br i1 %"$gascmp_3387", label %"$out_of_gas_3388", label %"$have_gas_3389" +"$matchsucc_3346": ; preds = %"$have_gas_3358", %"$True_3351", %"$empty_default_3350" + %"$gasrem_3363" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3364" = icmp ugt i64 1, %"$gasrem_3363" + br i1 %"$gascmp_3364", label %"$out_of_gas_3365", label %"$have_gas_3366" -"$out_of_gas_3388": ; preds = %"$matchsucc_3369" +"$out_of_gas_3365": ; preds = %"$matchsucc_3346" call void @_out_of_gas() - br label %"$have_gas_3389" + br label %"$have_gas_3366" -"$have_gas_3389": ; preds = %"$out_of_gas_3388", %"$matchsucc_3369" - %"$consume_3390" = sub i64 %"$gasrem_3386", 1 - store i64 %"$consume_3390", i64* @_gasrem, align 8 +"$have_gas_3366": ; preds = %"$out_of_gas_3365", %"$matchsucc_3346" + %"$consume_3367" = sub i64 %"$gasrem_3363", 1 + store i64 %"$consume_3367", i64* @_gasrem, align 8 %e = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3391" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3392" = icmp ugt i64 1, %"$gasrem_3391" - br i1 %"$gascmp_3392", label %"$out_of_gas_3393", label %"$have_gas_3394" - -"$out_of_gas_3393": ; preds = %"$have_gas_3389" - call void @_out_of_gas() - br label %"$have_gas_3394" - -"$have_gas_3394": ; preds = %"$out_of_gas_3393", %"$have_gas_3389" - %"$consume_3395" = sub i64 %"$gasrem_3391", 1 - store i64 %"$consume_3395", i64* @_gasrem, align 8 - %"$execptr_load_3396" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3397" = call i8* @_new_empty_map(i8* %"$execptr_load_3396") - %"$_new_empty_map_3398" = bitcast i8* %"$_new_empty_map_call_3397" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3398", %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$e_3399" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$$e_3399_3400" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3399" to i8* - %"$_literal_cost_call_3401" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$e_3399_3400") - %"$gasrem_3402" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3403" = icmp ugt i64 %"$_literal_cost_call_3401", %"$gasrem_3402" - br i1 %"$gascmp_3403", label %"$out_of_gas_3404", label %"$have_gas_3405" - -"$out_of_gas_3404": ; preds = %"$have_gas_3394" - call void @_out_of_gas() - br label %"$have_gas_3405" - -"$have_gas_3405": ; preds = %"$out_of_gas_3404", %"$have_gas_3394" - %"$consume_3406" = sub i64 %"$gasrem_3402", %"$_literal_cost_call_3401" - store i64 %"$consume_3406", i64* @_gasrem, align 8 - %"$execptr_load_3407" = load i8*, i8** @_execptr, align 8 - %"$e_3409" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 - %"$update_value_3410" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3409" to i8* - call void @_update_field(i8* %"$execptr_load_3407", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_3408", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i8* %"$update_value_3410") + %"$gasrem_3368" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3369" = icmp ugt i64 1, %"$gasrem_3368" + br i1 %"$gascmp_3369", label %"$out_of_gas_3370", label %"$have_gas_3371" + +"$out_of_gas_3370": ; preds = %"$have_gas_3366" + call void @_out_of_gas() + br label %"$have_gas_3371" + +"$have_gas_3371": ; preds = %"$out_of_gas_3370", %"$have_gas_3366" + %"$consume_3372" = sub i64 %"$gasrem_3368", 1 + store i64 %"$consume_3372", i64* @_gasrem, align 8 + %"$execptr_load_3373" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3374" = call i8* @_new_empty_map(i8* %"$execptr_load_3373") + %"$_new_empty_map_3375" = bitcast i8* %"$_new_empty_map_call_3374" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3375", %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$e_3376" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$$e_3376_3377" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3376" to i8* + %"$_literal_cost_call_3378" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$e_3376_3377") + %"$gasrem_3379" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3380" = icmp ugt i64 %"$_literal_cost_call_3378", %"$gasrem_3379" + br i1 %"$gascmp_3380", label %"$out_of_gas_3381", label %"$have_gas_3382" + +"$out_of_gas_3381": ; preds = %"$have_gas_3371" + call void @_out_of_gas() + br label %"$have_gas_3382" + +"$have_gas_3382": ; preds = %"$out_of_gas_3381", %"$have_gas_3371" + %"$consume_3383" = sub i64 %"$gasrem_3379", %"$_literal_cost_call_3378" + store i64 %"$consume_3383", i64* @_gasrem, align 8 + %"$execptr_load_3384" = load i8*, i8** @_execptr, align 8 + %"$e_3386" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %e, align 8 + %"$update_value_3387" = bitcast %"Map_String_Map_(String)_(String)"* %"$e_3386" to i8* + call void @_update_field(i8* %"$execptr_load_3384", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$f_m_3385", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i8* %"$update_value_3387") ret void } define void @t14(i8* %0) { entry: - %"$_amount_3412" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3413" = bitcast i8* %"$_amount_3412" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3413", align 8 - %"$_origin_3414" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3415" = bitcast i8* %"$_origin_3414" to [20 x i8]* - %"$_sender_3416" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3417" = bitcast i8* %"$_sender_3416" to [20 x i8]* - call void @"$t14_3296"(%Uint128 %_amount, [20 x i8]* %"$_origin_3415", [20 x i8]* %"$_sender_3417") + %"$_amount_3389" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3390" = bitcast i8* %"$_amount_3389" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3390", align 8 + %"$_origin_3391" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3392" = bitcast i8* %"$_origin_3391" to [20 x i8]* + %"$_sender_3393" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3394" = bitcast i8* %"$_sender_3393" to [20 x i8]* + call void @"$t14_3273"(%Uint128 %_amount, [20 x i8]* %"$_origin_3392", [20 x i8]* %"$_sender_3394") ret void } -define internal void @"$t15_3418"(%Uint128 %_amount, [20 x i8]* %"$_origin_3419", [20 x i8]* %"$_sender_3420") { +define internal void @"$t15_3395"(%Uint128 %_amount, [20 x i8]* %"$_origin_3396", [20 x i8]* %"$_sender_3397") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3419", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3420", align 1 - %"$gasrem_3421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3422" = icmp ugt i64 1, %"$gasrem_3421" - br i1 %"$gascmp_3422", label %"$out_of_gas_3423", label %"$have_gas_3424" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3396", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3397", align 1 + %"$gasrem_3398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3399" = icmp ugt i64 1, %"$gasrem_3398" + br i1 %"$gascmp_3399", label %"$out_of_gas_3400", label %"$have_gas_3401" -"$out_of_gas_3423": ; preds = %entry +"$out_of_gas_3400": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_3424" + br label %"$have_gas_3401" -"$have_gas_3424": ; preds = %"$out_of_gas_3423", %entry - %"$consume_3425" = sub i64 %"$gasrem_3421", 1 - store i64 %"$consume_3425", i64* @_gasrem, align 8 +"$have_gas_3401": ; preds = %"$out_of_gas_3400", %entry + %"$consume_3402" = sub i64 %"$gasrem_3398", 1 + store i64 %"$consume_3402", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_3426" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3427" = icmp ugt i64 1, %"$gasrem_3426" - br i1 %"$gascmp_3427", label %"$out_of_gas_3428", label %"$have_gas_3429" + %"$gasrem_3403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3404" = icmp ugt i64 1, %"$gasrem_3403" + br i1 %"$gascmp_3404", label %"$out_of_gas_3405", label %"$have_gas_3406" -"$out_of_gas_3428": ; preds = %"$have_gas_3424" +"$out_of_gas_3405": ; preds = %"$have_gas_3401" call void @_out_of_gas() - br label %"$have_gas_3429" + br label %"$have_gas_3406" -"$have_gas_3429": ; preds = %"$out_of_gas_3428", %"$have_gas_3424" - %"$consume_3430" = sub i64 %"$gasrem_3426", 1 - store i64 %"$consume_3430", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3431", i32 0, i32 0), i32 3 }, %String* %tname, align 8 +"$have_gas_3406": ; preds = %"$out_of_gas_3405", %"$have_gas_3401" + %"$consume_3407" = sub i64 %"$gasrem_3403", 1 + store i64 %"$consume_3407", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3408", i32 0, i32 0), i32 3 }, %String* %tname, align 8 %m3 = alloca %"Map_String_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$execptr_load_3433" = load i8*, i8** @_execptr, align 8 - %"$m3_call_3434" = call i8* @_fetch_field(i8* %"$execptr_load_3433", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3432", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_71", i32 0, i8* null, i32 1) - %"$m3_3435" = bitcast i8* %"$m3_call_3434" to %"Map_String_Map_(String)_(Map_(String)_(String))"* - store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3435", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$m3_3436" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3436_3437" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3436" to i8* - %"$_literal_cost_call_3438" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$m3_3436_3437") - %"$m3_3439" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3439_3440" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3439" to i8* - %"$_mapsortcost_call_3441" = call i64 @_mapsortcost(i8* %"$$m3_3439_3440") - %"$gasadd_3442" = add i64 %"$_literal_cost_call_3438", %"$_mapsortcost_call_3441" + %"$execptr_load_3410" = load i8*, i8** @_execptr, align 8 + %"$m3_call_3411" = call i8* @_fetch_field(i8* %"$execptr_load_3410", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m3_3409", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_63", i32 0, i8* null, i32 1) + %"$m3_3412" = bitcast i8* %"$m3_call_3411" to %"Map_String_Map_(String)_(Map_(String)_(String))"* + store %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3412", %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$m3_3413" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3413_3414" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3413" to i8* + %"$_literal_cost_call_3415" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$m3_3413_3414") + %"$m3_3416" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3416_3417" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3416" to i8* + %"$_mapsortcost_call_3418" = call i64 @_mapsortcost(i8* %"$$m3_3416_3417") + %"$gasadd_3419" = add i64 %"$_literal_cost_call_3415", %"$_mapsortcost_call_3418" + %"$gasrem_3420" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3421" = icmp ugt i64 %"$gasadd_3419", %"$gasrem_3420" + br i1 %"$gascmp_3421", label %"$out_of_gas_3422", label %"$have_gas_3423" + +"$out_of_gas_3422": ; preds = %"$have_gas_3406" + call void @_out_of_gas() + br label %"$have_gas_3423" + +"$have_gas_3423": ; preds = %"$out_of_gas_3422", %"$have_gas_3406" + %"$consume_3424" = sub i64 %"$gasrem_3420", %"$gasadd_3419" + store i64 %"$consume_3424", i64* @_gasrem, align 8 + %"$gasrem_3425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3426" = icmp ugt i64 1, %"$gasrem_3425" + br i1 %"$gascmp_3426", label %"$out_of_gas_3427", label %"$have_gas_3428" + +"$out_of_gas_3427": ; preds = %"$have_gas_3423" + call void @_out_of_gas() + br label %"$have_gas_3428" + +"$have_gas_3428": ; preds = %"$out_of_gas_3427", %"$have_gas_3423" + %"$consume_3429" = sub i64 %"$gasrem_3425", 1 + store i64 %"$consume_3429", i64* @_gasrem, align 8 + %m3_size = alloca %Uint32, align 8 + %"$gasrem_3430" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3431" = icmp ugt i64 1, %"$gasrem_3430" + br i1 %"$gascmp_3431", label %"$out_of_gas_3432", label %"$have_gas_3433" + +"$out_of_gas_3432": ; preds = %"$have_gas_3428" + call void @_out_of_gas() + br label %"$have_gas_3433" + +"$have_gas_3433": ; preds = %"$out_of_gas_3432", %"$have_gas_3428" + %"$consume_3434" = sub i64 %"$gasrem_3430", 1 + store i64 %"$consume_3434", i64* @_gasrem, align 8 + %"$m3_3435" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3435_3436" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3435" to i8* + %"$size_call_3437" = call %Uint32 @_size(i8* %"$$m3_3435_3436") + store %Uint32 %"$size_call_3437", %Uint32* %m3_size, align 4 + %"$gasrem_3438" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3439" = icmp ugt i64 1, %"$gasrem_3438" + br i1 %"$gascmp_3439", label %"$out_of_gas_3440", label %"$have_gas_3441" + +"$out_of_gas_3440": ; preds = %"$have_gas_3433" + call void @_out_of_gas() + br label %"$have_gas_3441" + +"$have_gas_3441": ; preds = %"$out_of_gas_3440", %"$have_gas_3433" + %"$consume_3442" = sub i64 %"$gasrem_3438", 1 + store i64 %"$consume_3442", i64* @_gasrem, align 8 + %one = alloca %Uint32, align 8 %"$gasrem_3443" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3444" = icmp ugt i64 %"$gasadd_3442", %"$gasrem_3443" + %"$gascmp_3444" = icmp ugt i64 1, %"$gasrem_3443" br i1 %"$gascmp_3444", label %"$out_of_gas_3445", label %"$have_gas_3446" -"$out_of_gas_3445": ; preds = %"$have_gas_3429" +"$out_of_gas_3445": ; preds = %"$have_gas_3441" call void @_out_of_gas() br label %"$have_gas_3446" -"$have_gas_3446": ; preds = %"$out_of_gas_3445", %"$have_gas_3429" - %"$consume_3447" = sub i64 %"$gasrem_3443", %"$gasadd_3442" +"$have_gas_3446": ; preds = %"$out_of_gas_3445", %"$have_gas_3441" + %"$consume_3447" = sub i64 %"$gasrem_3443", 1 store i64 %"$consume_3447", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4 %"$gasrem_3448" = load i64, i64* @_gasrem, align 8 %"$gascmp_3449" = icmp ugt i64 1, %"$gasrem_3448" br i1 %"$gascmp_3449", label %"$out_of_gas_3450", label %"$have_gas_3451" @@ -7037,9 +7056,9 @@ entry: "$have_gas_3451": ; preds = %"$out_of_gas_3450", %"$have_gas_3446" %"$consume_3452" = sub i64 %"$gasrem_3448", 1 store i64 %"$consume_3452", i64* @_gasrem, align 8 - %m3_size = alloca %Uint32, align 8 + %is_one = alloca %TName_Bool*, align 8 %"$gasrem_3453" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3454" = icmp ugt i64 1, %"$gasrem_3453" + %"$gascmp_3454" = icmp ugt i64 4, %"$gasrem_3453" br i1 %"$gascmp_3454", label %"$out_of_gas_3455", label %"$have_gas_3456" "$out_of_gas_3455": ; preds = %"$have_gas_3451" @@ -7047,2797 +7066,2719 @@ entry: br label %"$have_gas_3456" "$have_gas_3456": ; preds = %"$out_of_gas_3455", %"$have_gas_3451" - %"$consume_3457" = sub i64 %"$gasrem_3453", 1 + %"$consume_3457" = sub i64 %"$gasrem_3453", 4 store i64 %"$consume_3457", i64* @_gasrem, align 8 - %"$m3_3458" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3458_3459" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3458" to i8* - %"$size_call_3460" = call %Uint32 @_size(i8* %"$$m3_3458_3459") - store %Uint32 %"$size_call_3460", %Uint32* %m3_size, align 4 - %"$gasrem_3461" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3462" = icmp ugt i64 1, %"$gasrem_3461" - br i1 %"$gascmp_3462", label %"$out_of_gas_3463", label %"$have_gas_3464" - -"$out_of_gas_3463": ; preds = %"$have_gas_3456" - call void @_out_of_gas() - br label %"$have_gas_3464" - -"$have_gas_3464": ; preds = %"$out_of_gas_3463", %"$have_gas_3456" - %"$consume_3465" = sub i64 %"$gasrem_3461", 1 - store i64 %"$consume_3465", i64* @_gasrem, align 8 - %one = alloca %Uint32, align 8 - %"$gasrem_3466" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3467" = icmp ugt i64 1, %"$gasrem_3466" - br i1 %"$gascmp_3467", label %"$out_of_gas_3468", label %"$have_gas_3469" - -"$out_of_gas_3468": ; preds = %"$have_gas_3464" - call void @_out_of_gas() - br label %"$have_gas_3469" - -"$have_gas_3469": ; preds = %"$out_of_gas_3468", %"$have_gas_3464" - %"$consume_3470" = sub i64 %"$gasrem_3466", 1 - store i64 %"$consume_3470", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4 - %"$gasrem_3471" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3472" = icmp ugt i64 1, %"$gasrem_3471" - br i1 %"$gascmp_3472", label %"$out_of_gas_3473", label %"$have_gas_3474" - -"$out_of_gas_3473": ; preds = %"$have_gas_3469" - call void @_out_of_gas() - br label %"$have_gas_3474" - -"$have_gas_3474": ; preds = %"$out_of_gas_3473", %"$have_gas_3469" - %"$consume_3475" = sub i64 %"$gasrem_3471", 1 - store i64 %"$consume_3475", i64* @_gasrem, align 8 - %is_one = alloca %TName_Bool*, align 8 - %"$gasrem_3476" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3477" = icmp ugt i64 4, %"$gasrem_3476" - br i1 %"$gascmp_3477", label %"$out_of_gas_3478", label %"$have_gas_3479" - -"$out_of_gas_3478": ; preds = %"$have_gas_3474" - call void @_out_of_gas() - br label %"$have_gas_3479" - -"$have_gas_3479": ; preds = %"$out_of_gas_3478", %"$have_gas_3474" - %"$consume_3480" = sub i64 %"$gasrem_3476", 4 - store i64 %"$consume_3480", i64* @_gasrem, align 8 - %"$execptr_load_3481" = load i8*, i8** @_execptr, align 8 - %"$m3_size_3482" = load %Uint32, %Uint32* %m3_size, align 4 - %"$one_3483" = load %Uint32, %Uint32* %one, align 4 - %"$eq_call_3484" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3481", %Uint32 %"$m3_size_3482", %Uint32 %"$one_3483") - store %TName_Bool* %"$eq_call_3484", %TName_Bool** %is_one, align 8 - %"$gasrem_3486" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3487" = icmp ugt i64 2, %"$gasrem_3486" - br i1 %"$gascmp_3487", label %"$out_of_gas_3488", label %"$have_gas_3489" - -"$out_of_gas_3488": ; preds = %"$have_gas_3479" - call void @_out_of_gas() - br label %"$have_gas_3489" - -"$have_gas_3489": ; preds = %"$out_of_gas_3488", %"$have_gas_3479" - %"$consume_3490" = sub i64 %"$gasrem_3486", 2 - store i64 %"$consume_3490", i64* @_gasrem, align 8 - %"$is_one_3492" = load %TName_Bool*, %TName_Bool** %is_one, align 8 - %"$is_one_tag_3493" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_3492", i32 0, i32 0 - %"$is_one_tag_3494" = load i8, i8* %"$is_one_tag_3493", align 1 - switch i8 %"$is_one_tag_3494", label %"$empty_default_3495" [ - i8 0, label %"$True_3496" - i8 1, label %"$False_3498" + %"$execptr_load_3458" = load i8*, i8** @_execptr, align 8 + %"$m3_size_3459" = load %Uint32, %Uint32* %m3_size, align 4 + %"$one_3460" = load %Uint32, %Uint32* %one, align 4 + %"$eq_call_3461" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3458", %Uint32 %"$m3_size_3459", %Uint32 %"$one_3460") + store %TName_Bool* %"$eq_call_3461", %TName_Bool** %is_one, align 8 + %"$gasrem_3463" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3464" = icmp ugt i64 2, %"$gasrem_3463" + br i1 %"$gascmp_3464", label %"$out_of_gas_3465", label %"$have_gas_3466" + +"$out_of_gas_3465": ; preds = %"$have_gas_3456" + call void @_out_of_gas() + br label %"$have_gas_3466" + +"$have_gas_3466": ; preds = %"$out_of_gas_3465", %"$have_gas_3456" + %"$consume_3467" = sub i64 %"$gasrem_3463", 2 + store i64 %"$consume_3467", i64* @_gasrem, align 8 + %"$is_one_3469" = load %TName_Bool*, %TName_Bool** %is_one, align 8 + %"$is_one_tag_3470" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_3469", i32 0, i32 0 + %"$is_one_tag_3471" = load i8, i8* %"$is_one_tag_3470", align 1 + switch i8 %"$is_one_tag_3471", label %"$empty_default_3472" [ + i8 0, label %"$True_3473" + i8 1, label %"$False_3475" ] -"$True_3496": ; preds = %"$have_gas_3489" - %"$is_one_3497" = bitcast %TName_Bool* %"$is_one_3492" to %CName_True* - br label %"$matchsucc_3491" +"$True_3473": ; preds = %"$have_gas_3466" + %"$is_one_3474" = bitcast %TName_Bool* %"$is_one_3469" to %CName_True* + br label %"$matchsucc_3468" -"$False_3498": ; preds = %"$have_gas_3489" - %"$is_one_3499" = bitcast %TName_Bool* %"$is_one_3492" to %CName_False* - %"$gasrem_3500" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3501" = icmp ugt i64 1, %"$gasrem_3500" - br i1 %"$gascmp_3501", label %"$out_of_gas_3502", label %"$have_gas_3503" +"$False_3475": ; preds = %"$have_gas_3466" + %"$is_one_3476" = bitcast %TName_Bool* %"$is_one_3469" to %CName_False* + %"$gasrem_3477" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3478" = icmp ugt i64 1, %"$gasrem_3477" + br i1 %"$gascmp_3478", label %"$out_of_gas_3479", label %"$have_gas_3480" -"$out_of_gas_3502": ; preds = %"$False_3498" +"$out_of_gas_3479": ; preds = %"$False_3475" call void @_out_of_gas() - br label %"$have_gas_3503" + br label %"$have_gas_3480" -"$have_gas_3503": ; preds = %"$out_of_gas_3502", %"$False_3498" - %"$consume_3504" = sub i64 %"$gasrem_3500", 1 - store i64 %"$consume_3504", i64* @_gasrem, align 8 +"$have_gas_3480": ; preds = %"$out_of_gas_3479", %"$False_3475" + %"$consume_3481" = sub i64 %"$gasrem_3477", 1 + store i64 %"$consume_3481", i64* @_gasrem, align 8 %err = alloca %String, align 8 - %"$gasrem_3505" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3506" = icmp ugt i64 1, %"$gasrem_3505" - br i1 %"$gascmp_3506", label %"$out_of_gas_3507", label %"$have_gas_3508" + %"$gasrem_3482" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3483" = icmp ugt i64 1, %"$gasrem_3482" + br i1 %"$gascmp_3483", label %"$out_of_gas_3484", label %"$have_gas_3485" -"$out_of_gas_3507": ; preds = %"$have_gas_3503" +"$out_of_gas_3484": ; preds = %"$have_gas_3480" call void @_out_of_gas() - br label %"$have_gas_3508" + br label %"$have_gas_3485" -"$have_gas_3508": ; preds = %"$out_of_gas_3507", %"$have_gas_3503" - %"$consume_3509" = sub i64 %"$gasrem_3505", 1 - store i64 %"$consume_3509", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @"$stringlit_3510", i32 0, i32 0), i32 22 }, %String* %err, align 8 - %"$gasrem_3511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3512" = icmp ugt i64 1, %"$gasrem_3511" - br i1 %"$gascmp_3512", label %"$out_of_gas_3513", label %"$have_gas_3514" +"$have_gas_3485": ; preds = %"$out_of_gas_3484", %"$have_gas_3480" + %"$consume_3486" = sub i64 %"$gasrem_3482", 1 + store i64 %"$consume_3486", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([22 x i8], [22 x i8]* @"$stringlit_3487", i32 0, i32 0), i32 22 }, %String* %err, align 8 + %"$gasrem_3488" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3489" = icmp ugt i64 1, %"$gasrem_3488" + br i1 %"$gascmp_3489", label %"$out_of_gas_3490", label %"$have_gas_3491" -"$out_of_gas_3513": ; preds = %"$have_gas_3508" +"$out_of_gas_3490": ; preds = %"$have_gas_3485" call void @_out_of_gas() - br label %"$have_gas_3514" + br label %"$have_gas_3491" -"$have_gas_3514": ; preds = %"$out_of_gas_3513", %"$have_gas_3508" - %"$consume_3515" = sub i64 %"$gasrem_3511", 1 - store i64 %"$consume_3515", i64* @_gasrem, align 8 - %"$fail_msg__origin_3516" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3516", align 1 - %"$fail_msg__sender_3517" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3517", align 1 - %"$tname_3518" = load %String, %String* %tname, align 8 - %"$err_3519" = load %String, %String* %err, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3516", [20 x i8]* %"$fail_msg__sender_3517", %String %"$tname_3518", %String %"$err_3519") - br label %"$matchsucc_3491" +"$have_gas_3491": ; preds = %"$out_of_gas_3490", %"$have_gas_3485" + %"$consume_3492" = sub i64 %"$gasrem_3488", 1 + store i64 %"$consume_3492", i64* @_gasrem, align 8 + %"$fail_msg__origin_3493" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3493", align 1 + %"$fail_msg__sender_3494" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3494", align 1 + %"$tname_3495" = load %String, %String* %tname, align 8 + %"$err_3496" = load %String, %String* %err, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3493", [20 x i8]* %"$fail_msg__sender_3494", %String %"$tname_3495", %String %"$err_3496") + br label %"$matchsucc_3468" -"$empty_default_3495": ; preds = %"$have_gas_3489" - br label %"$matchsucc_3491" +"$empty_default_3472": ; preds = %"$have_gas_3466" + br label %"$matchsucc_3468" -"$matchsucc_3491": ; preds = %"$have_gas_3514", %"$True_3496", %"$empty_default_3495" - %"$gasrem_3520" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3521" = icmp ugt i64 1, %"$gasrem_3520" - br i1 %"$gascmp_3521", label %"$out_of_gas_3522", label %"$have_gas_3523" +"$matchsucc_3468": ; preds = %"$have_gas_3491", %"$True_3473", %"$empty_default_3472" + %"$gasrem_3497" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3498" = icmp ugt i64 1, %"$gasrem_3497" + br i1 %"$gascmp_3498", label %"$out_of_gas_3499", label %"$have_gas_3500" -"$out_of_gas_3522": ; preds = %"$matchsucc_3491" +"$out_of_gas_3499": ; preds = %"$matchsucc_3468" call void @_out_of_gas() - br label %"$have_gas_3523" + br label %"$have_gas_3500" -"$have_gas_3523": ; preds = %"$out_of_gas_3522", %"$matchsucc_3491" - %"$consume_3524" = sub i64 %"$gasrem_3520", 1 - store i64 %"$consume_3524", i64* @_gasrem, align 8 +"$have_gas_3500": ; preds = %"$out_of_gas_3499", %"$matchsucc_3468" + %"$consume_3501" = sub i64 %"$gasrem_3497", 1 + store i64 %"$consume_3501", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_3525" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3526" = icmp ugt i64 1, %"$gasrem_3525" - br i1 %"$gascmp_3526", label %"$out_of_gas_3527", label %"$have_gas_3528" + %"$gasrem_3502" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3503" = icmp ugt i64 1, %"$gasrem_3502" + br i1 %"$gascmp_3503", label %"$out_of_gas_3504", label %"$have_gas_3505" -"$out_of_gas_3527": ; preds = %"$have_gas_3523" +"$out_of_gas_3504": ; preds = %"$have_gas_3500" call void @_out_of_gas() - br label %"$have_gas_3528" + br label %"$have_gas_3505" -"$have_gas_3528": ; preds = %"$out_of_gas_3527", %"$have_gas_3523" - %"$consume_3529" = sub i64 %"$gasrem_3525", 1 - store i64 %"$consume_3529", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3530", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 - %"$gasrem_3531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3532" = icmp ugt i64 1, %"$gasrem_3531" - br i1 %"$gascmp_3532", label %"$out_of_gas_3533", label %"$have_gas_3534" +"$have_gas_3505": ; preds = %"$out_of_gas_3504", %"$have_gas_3500" + %"$consume_3506" = sub i64 %"$gasrem_3502", 1 + store i64 %"$consume_3506", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3507", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 + %"$gasrem_3508" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3509" = icmp ugt i64 1, %"$gasrem_3508" + br i1 %"$gascmp_3509", label %"$out_of_gas_3510", label %"$have_gas_3511" -"$out_of_gas_3533": ; preds = %"$have_gas_3528" +"$out_of_gas_3510": ; preds = %"$have_gas_3505" call void @_out_of_gas() - br label %"$have_gas_3534" + br label %"$have_gas_3511" -"$have_gas_3534": ; preds = %"$out_of_gas_3533", %"$have_gas_3528" - %"$consume_3535" = sub i64 %"$gasrem_3531", 1 - store i64 %"$consume_3535", i64* @_gasrem, align 8 +"$have_gas_3511": ; preds = %"$out_of_gas_3510", %"$have_gas_3505" + %"$consume_3512" = sub i64 %"$gasrem_3508", 1 + store i64 %"$consume_3512", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_3536" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3537" = icmp ugt i64 1, %"$gasrem_3536" - br i1 %"$gascmp_3537", label %"$out_of_gas_3538", label %"$have_gas_3539" + %"$gasrem_3513" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3514" = icmp ugt i64 1, %"$gasrem_3513" + br i1 %"$gascmp_3514", label %"$out_of_gas_3515", label %"$have_gas_3516" -"$out_of_gas_3538": ; preds = %"$have_gas_3534" +"$out_of_gas_3515": ; preds = %"$have_gas_3511" call void @_out_of_gas() - br label %"$have_gas_3539" + br label %"$have_gas_3516" -"$have_gas_3539": ; preds = %"$out_of_gas_3538", %"$have_gas_3534" - %"$consume_3540" = sub i64 %"$gasrem_3536", 1 - store i64 %"$consume_3540", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3541", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 - %"$gasrem_3542" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3543" = icmp ugt i64 1, %"$gasrem_3542" - br i1 %"$gascmp_3543", label %"$out_of_gas_3544", label %"$have_gas_3545" +"$have_gas_3516": ; preds = %"$out_of_gas_3515", %"$have_gas_3511" + %"$consume_3517" = sub i64 %"$gasrem_3513", 1 + store i64 %"$consume_3517", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3518", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 + %"$gasrem_3519" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3520" = icmp ugt i64 1, %"$gasrem_3519" + br i1 %"$gascmp_3520", label %"$out_of_gas_3521", label %"$have_gas_3522" -"$out_of_gas_3544": ; preds = %"$have_gas_3539" +"$out_of_gas_3521": ; preds = %"$have_gas_3516" call void @_out_of_gas() - br label %"$have_gas_3545" + br label %"$have_gas_3522" -"$have_gas_3545": ; preds = %"$out_of_gas_3544", %"$have_gas_3539" - %"$consume_3546" = sub i64 %"$gasrem_3542", 1 - store i64 %"$consume_3546", i64* @_gasrem, align 8 +"$have_gas_3522": ; preds = %"$out_of_gas_3521", %"$have_gas_3516" + %"$consume_3523" = sub i64 %"$gasrem_3519", 1 + store i64 %"$consume_3523", i64* @_gasrem, align 8 %m2o = alloca %"TName_Option_Map_(String)_(Map_(String)_(String))"*, align 8 - %"$gasrem_3547" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3548" = icmp ugt i64 1, %"$gasrem_3547" - br i1 %"$gascmp_3548", label %"$out_of_gas_3549", label %"$have_gas_3550" - -"$out_of_gas_3549": ; preds = %"$have_gas_3545" - call void @_out_of_gas() - br label %"$have_gas_3550" - -"$have_gas_3550": ; preds = %"$out_of_gas_3549", %"$have_gas_3545" - %"$consume_3551" = sub i64 %"$gasrem_3547", 1 - store i64 %"$consume_3551", i64* @_gasrem, align 8 - %"$execptr_load_3552" = load i8*, i8** @_execptr, align 8 - %"$m3_3553" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 - %"$$m3_3553_3554" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3553" to i8* - %"$get_key1a_3555" = alloca %String, align 8 - %"$key1a_3556" = load %String, %String* %key1a, align 8 - store %String %"$key1a_3556", %String* %"$get_key1a_3555", align 8 - %"$$get_key1a_3555_3557" = bitcast %String* %"$get_key1a_3555" to i8* - %"$get_call_3558" = call i8* @_get(i8* %"$execptr_load_3552", %_TyDescrTy_Typ* @"$TyDescr_Map_71", i8* %"$$m3_3553_3554", i8* %"$$get_key1a_3555_3557") - %"$get_3559" = bitcast i8* %"$get_call_3558" to %"TName_Option_Map_(String)_(Map_(String)_(String))"* - store %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$get_3559", %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8 - %"$gasrem_3560" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3561" = icmp ugt i64 2, %"$gasrem_3560" - br i1 %"$gascmp_3561", label %"$out_of_gas_3562", label %"$have_gas_3563" - -"$out_of_gas_3562": ; preds = %"$have_gas_3550" - call void @_out_of_gas() - br label %"$have_gas_3563" - -"$have_gas_3563": ; preds = %"$out_of_gas_3562", %"$have_gas_3550" - %"$consume_3564" = sub i64 %"$gasrem_3560", 2 - store i64 %"$consume_3564", i64* @_gasrem, align 8 - %"$m2o_3566" = load %"TName_Option_Map_(String)_(Map_(String)_(String))"*, %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8 - %"$m2o_tag_3567" = getelementptr inbounds %"TName_Option_Map_(String)_(Map_(String)_(String))", %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3566", i32 0, i32 0 - %"$m2o_tag_3568" = load i8, i8* %"$m2o_tag_3567", align 1 - switch i8 %"$m2o_tag_3568", label %"$empty_default_3569" [ - i8 0, label %"$Some_3570" - i8 1, label %"$None_3762" + %"$gasrem_3524" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3525" = icmp ugt i64 1, %"$gasrem_3524" + br i1 %"$gascmp_3525", label %"$out_of_gas_3526", label %"$have_gas_3527" + +"$out_of_gas_3526": ; preds = %"$have_gas_3522" + call void @_out_of_gas() + br label %"$have_gas_3527" + +"$have_gas_3527": ; preds = %"$out_of_gas_3526", %"$have_gas_3522" + %"$consume_3528" = sub i64 %"$gasrem_3524", 1 + store i64 %"$consume_3528", i64* @_gasrem, align 8 + %"$execptr_load_3529" = load i8*, i8** @_execptr, align 8 + %"$m3_3530" = load %"Map_String_Map_(String)_(Map_(String)_(String))"*, %"Map_String_Map_(String)_(Map_(String)_(String))"** %m3, align 8 + %"$$m3_3530_3531" = bitcast %"Map_String_Map_(String)_(Map_(String)_(String))"* %"$m3_3530" to i8* + %"$get_key1a_3532" = alloca %String, align 8 + %"$key1a_3533" = load %String, %String* %key1a, align 8 + store %String %"$key1a_3533", %String* %"$get_key1a_3532", align 8 + %"$$get_key1a_3532_3534" = bitcast %String* %"$get_key1a_3532" to i8* + %"$get_call_3535" = call i8* @_get(i8* %"$execptr_load_3529", %_TyDescrTy_Typ* @"$TyDescr_Map_63", i8* %"$$m3_3530_3531", i8* %"$$get_key1a_3532_3534") + %"$get_3536" = bitcast i8* %"$get_call_3535" to %"TName_Option_Map_(String)_(Map_(String)_(String))"* + store %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$get_3536", %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8 + %"$gasrem_3537" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3538" = icmp ugt i64 2, %"$gasrem_3537" + br i1 %"$gascmp_3538", label %"$out_of_gas_3539", label %"$have_gas_3540" + +"$out_of_gas_3539": ; preds = %"$have_gas_3527" + call void @_out_of_gas() + br label %"$have_gas_3540" + +"$have_gas_3540": ; preds = %"$out_of_gas_3539", %"$have_gas_3527" + %"$consume_3541" = sub i64 %"$gasrem_3537", 2 + store i64 %"$consume_3541", i64* @_gasrem, align 8 + %"$m2o_3543" = load %"TName_Option_Map_(String)_(Map_(String)_(String))"*, %"TName_Option_Map_(String)_(Map_(String)_(String))"** %m2o, align 8 + %"$m2o_tag_3544" = getelementptr inbounds %"TName_Option_Map_(String)_(Map_(String)_(String))", %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3543", i32 0, i32 0 + %"$m2o_tag_3545" = load i8, i8* %"$m2o_tag_3544", align 1 + switch i8 %"$m2o_tag_3545", label %"$empty_default_3546" [ + i8 0, label %"$Some_3547" + i8 1, label %"$None_3739" ] -"$Some_3570": ; preds = %"$have_gas_3563" - %"$m2o_3571" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3566" to %"CName_Some_Map_(String)_(Map_(String)_(String))"* - %"$m2_gep_3572" = getelementptr inbounds %"CName_Some_Map_(String)_(Map_(String)_(String))", %"CName_Some_Map_(String)_(Map_(String)_(String))"* %"$m2o_3571", i32 0, i32 1 - %"$m2_load_3573" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$m2_gep_3572", align 8 +"$Some_3547": ; preds = %"$have_gas_3540" + %"$m2o_3548" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3543" to %"CName_Some_Map_(String)_(Map_(String)_(String))"* + %"$m2_gep_3549" = getelementptr inbounds %"CName_Some_Map_(String)_(Map_(String)_(String))", %"CName_Some_Map_(String)_(Map_(String)_(String))"* %"$m2o_3548", i32 0, i32 1 + %"$m2_load_3550" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %"$m2_gep_3549", align 8 %m2 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - store %"Map_String_Map_(String)_(String)"* %"$m2_load_3573", %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$gasrem_3574" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3575" = icmp ugt i64 1, %"$gasrem_3574" - br i1 %"$gascmp_3575", label %"$out_of_gas_3576", label %"$have_gas_3577" + store %"Map_String_Map_(String)_(String)"* %"$m2_load_3550", %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$gasrem_3551" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3552" = icmp ugt i64 1, %"$gasrem_3551" + br i1 %"$gascmp_3552", label %"$out_of_gas_3553", label %"$have_gas_3554" -"$out_of_gas_3576": ; preds = %"$Some_3570" +"$out_of_gas_3553": ; preds = %"$Some_3547" call void @_out_of_gas() - br label %"$have_gas_3577" + br label %"$have_gas_3554" -"$have_gas_3577": ; preds = %"$out_of_gas_3576", %"$Some_3570" - %"$consume_3578" = sub i64 %"$gasrem_3574", 1 - store i64 %"$consume_3578", i64* @_gasrem, align 8 +"$have_gas_3554": ; preds = %"$out_of_gas_3553", %"$Some_3547" + %"$consume_3555" = sub i64 %"$gasrem_3551", 1 + store i64 %"$consume_3555", i64* @_gasrem, align 8 %m2_size = alloca %Uint32, align 8 - %"$gasrem_3579" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3580" = icmp ugt i64 1, %"$gasrem_3579" - br i1 %"$gascmp_3580", label %"$out_of_gas_3581", label %"$have_gas_3582" + %"$gasrem_3556" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3557" = icmp ugt i64 1, %"$gasrem_3556" + br i1 %"$gascmp_3557", label %"$out_of_gas_3558", label %"$have_gas_3559" -"$out_of_gas_3581": ; preds = %"$have_gas_3577" +"$out_of_gas_3558": ; preds = %"$have_gas_3554" call void @_out_of_gas() - br label %"$have_gas_3582" + br label %"$have_gas_3559" -"$have_gas_3582": ; preds = %"$out_of_gas_3581", %"$have_gas_3577" - %"$consume_3583" = sub i64 %"$gasrem_3579", 1 - store i64 %"$consume_3583", i64* @_gasrem, align 8 - %"$m2_3584" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_3584_3585" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3584" to i8* - %"$size_call_3586" = call %Uint32 @_size(i8* %"$$m2_3584_3585") - store %Uint32 %"$size_call_3586", %Uint32* %m2_size, align 4 - %"$gasrem_3587" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3588" = icmp ugt i64 1, %"$gasrem_3587" - br i1 %"$gascmp_3588", label %"$out_of_gas_3589", label %"$have_gas_3590" +"$have_gas_3559": ; preds = %"$out_of_gas_3558", %"$have_gas_3554" + %"$consume_3560" = sub i64 %"$gasrem_3556", 1 + store i64 %"$consume_3560", i64* @_gasrem, align 8 + %"$m2_3561" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_3561_3562" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3561" to i8* + %"$size_call_3563" = call %Uint32 @_size(i8* %"$$m2_3561_3562") + store %Uint32 %"$size_call_3563", %Uint32* %m2_size, align 4 + %"$gasrem_3564" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3565" = icmp ugt i64 1, %"$gasrem_3564" + br i1 %"$gascmp_3565", label %"$out_of_gas_3566", label %"$have_gas_3567" -"$out_of_gas_3589": ; preds = %"$have_gas_3582" +"$out_of_gas_3566": ; preds = %"$have_gas_3559" call void @_out_of_gas() - br label %"$have_gas_3590" + br label %"$have_gas_3567" -"$have_gas_3590": ; preds = %"$out_of_gas_3589", %"$have_gas_3582" - %"$consume_3591" = sub i64 %"$gasrem_3587", 1 - store i64 %"$consume_3591", i64* @_gasrem, align 8 +"$have_gas_3567": ; preds = %"$out_of_gas_3566", %"$have_gas_3559" + %"$consume_3568" = sub i64 %"$gasrem_3564", 1 + store i64 %"$consume_3568", i64* @_gasrem, align 8 %is_one_1 = alloca %TName_Bool*, align 8 - %"$gasrem_3592" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3593" = icmp ugt i64 4, %"$gasrem_3592" - br i1 %"$gascmp_3593", label %"$out_of_gas_3594", label %"$have_gas_3595" - -"$out_of_gas_3594": ; preds = %"$have_gas_3590" - call void @_out_of_gas() - br label %"$have_gas_3595" - -"$have_gas_3595": ; preds = %"$out_of_gas_3594", %"$have_gas_3590" - %"$consume_3596" = sub i64 %"$gasrem_3592", 4 - store i64 %"$consume_3596", i64* @_gasrem, align 8 - %"$execptr_load_3597" = load i8*, i8** @_execptr, align 8 - %"$m2_size_3598" = load %Uint32, %Uint32* %m2_size, align 4 - %"$one_3599" = load %Uint32, %Uint32* %one, align 4 - %"$eq_call_3600" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3597", %Uint32 %"$m2_size_3598", %Uint32 %"$one_3599") - store %TName_Bool* %"$eq_call_3600", %TName_Bool** %is_one_1, align 8 - %"$gasrem_3602" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3603" = icmp ugt i64 2, %"$gasrem_3602" - br i1 %"$gascmp_3603", label %"$out_of_gas_3604", label %"$have_gas_3605" - -"$out_of_gas_3604": ; preds = %"$have_gas_3595" - call void @_out_of_gas() - br label %"$have_gas_3605" - -"$have_gas_3605": ; preds = %"$out_of_gas_3604", %"$have_gas_3595" - %"$consume_3606" = sub i64 %"$gasrem_3602", 2 - store i64 %"$consume_3606", i64* @_gasrem, align 8 - %"$is_one_1_3608" = load %TName_Bool*, %TName_Bool** %is_one_1, align 8 - %"$is_one_1_tag_3609" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_1_3608", i32 0, i32 0 - %"$is_one_1_tag_3610" = load i8, i8* %"$is_one_1_tag_3609", align 1 - switch i8 %"$is_one_1_tag_3610", label %"$empty_default_3611" [ - i8 0, label %"$True_3612" - i8 1, label %"$False_3740" + %"$gasrem_3569" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3570" = icmp ugt i64 4, %"$gasrem_3569" + br i1 %"$gascmp_3570", label %"$out_of_gas_3571", label %"$have_gas_3572" + +"$out_of_gas_3571": ; preds = %"$have_gas_3567" + call void @_out_of_gas() + br label %"$have_gas_3572" + +"$have_gas_3572": ; preds = %"$out_of_gas_3571", %"$have_gas_3567" + %"$consume_3573" = sub i64 %"$gasrem_3569", 4 + store i64 %"$consume_3573", i64* @_gasrem, align 8 + %"$execptr_load_3574" = load i8*, i8** @_execptr, align 8 + %"$m2_size_3575" = load %Uint32, %Uint32* %m2_size, align 4 + %"$one_3576" = load %Uint32, %Uint32* %one, align 4 + %"$eq_call_3577" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3574", %Uint32 %"$m2_size_3575", %Uint32 %"$one_3576") + store %TName_Bool* %"$eq_call_3577", %TName_Bool** %is_one_1, align 8 + %"$gasrem_3579" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3580" = icmp ugt i64 2, %"$gasrem_3579" + br i1 %"$gascmp_3580", label %"$out_of_gas_3581", label %"$have_gas_3582" + +"$out_of_gas_3581": ; preds = %"$have_gas_3572" + call void @_out_of_gas() + br label %"$have_gas_3582" + +"$have_gas_3582": ; preds = %"$out_of_gas_3581", %"$have_gas_3572" + %"$consume_3583" = sub i64 %"$gasrem_3579", 2 + store i64 %"$consume_3583", i64* @_gasrem, align 8 + %"$is_one_1_3585" = load %TName_Bool*, %TName_Bool** %is_one_1, align 8 + %"$is_one_1_tag_3586" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_one_1_3585", i32 0, i32 0 + %"$is_one_1_tag_3587" = load i8, i8* %"$is_one_1_tag_3586", align 1 + switch i8 %"$is_one_1_tag_3587", label %"$empty_default_3588" [ + i8 0, label %"$True_3589" + i8 1, label %"$False_3717" ] -"$True_3612": ; preds = %"$have_gas_3605" - %"$is_one_1_3613" = bitcast %TName_Bool* %"$is_one_1_3608" to %CName_True* - %"$gasrem_3614" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3615" = icmp ugt i64 1, %"$gasrem_3614" - br i1 %"$gascmp_3615", label %"$out_of_gas_3616", label %"$have_gas_3617" +"$True_3589": ; preds = %"$have_gas_3582" + %"$is_one_1_3590" = bitcast %TName_Bool* %"$is_one_1_3585" to %CName_True* + %"$gasrem_3591" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3592" = icmp ugt i64 1, %"$gasrem_3591" + br i1 %"$gascmp_3592", label %"$out_of_gas_3593", label %"$have_gas_3594" -"$out_of_gas_3616": ; preds = %"$True_3612" +"$out_of_gas_3593": ; preds = %"$True_3589" call void @_out_of_gas() - br label %"$have_gas_3617" + br label %"$have_gas_3594" -"$have_gas_3617": ; preds = %"$out_of_gas_3616", %"$True_3612" - %"$consume_3618" = sub i64 %"$gasrem_3614", 1 - store i64 %"$consume_3618", i64* @_gasrem, align 8 +"$have_gas_3594": ; preds = %"$out_of_gas_3593", %"$True_3589" + %"$consume_3595" = sub i64 %"$gasrem_3591", 1 + store i64 %"$consume_3595", i64* @_gasrem, align 8 %m1o = alloca %"TName_Option_Map_(String)_(String)"*, align 8 - %"$gasrem_3619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3620" = icmp ugt i64 1, %"$gasrem_3619" - br i1 %"$gascmp_3620", label %"$out_of_gas_3621", label %"$have_gas_3622" - -"$out_of_gas_3621": ; preds = %"$have_gas_3617" - call void @_out_of_gas() - br label %"$have_gas_3622" - -"$have_gas_3622": ; preds = %"$out_of_gas_3621", %"$have_gas_3617" - %"$consume_3623" = sub i64 %"$gasrem_3619", 1 - store i64 %"$consume_3623", i64* @_gasrem, align 8 - %"$execptr_load_3624" = load i8*, i8** @_execptr, align 8 - %"$m2_3625" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 - %"$$m2_3625_3626" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3625" to i8* - %"$get_key2a_3627" = alloca %String, align 8 - %"$key2a_3628" = load %String, %String* %key2a, align 8 - store %String %"$key2a_3628", %String* %"$get_key2a_3627", align 8 - %"$$get_key2a_3627_3629" = bitcast %String* %"$get_key2a_3627" to i8* - %"$get_call_3630" = call i8* @_get(i8* %"$execptr_load_3624", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m2_3625_3626", i8* %"$$get_key2a_3627_3629") - %"$get_3631" = bitcast i8* %"$get_call_3630" to %"TName_Option_Map_(String)_(String)"* - store %"TName_Option_Map_(String)_(String)"* %"$get_3631", %"TName_Option_Map_(String)_(String)"** %m1o, align 8 - %"$gasrem_3632" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3633" = icmp ugt i64 2, %"$gasrem_3632" - br i1 %"$gascmp_3633", label %"$out_of_gas_3634", label %"$have_gas_3635" - -"$out_of_gas_3634": ; preds = %"$have_gas_3622" - call void @_out_of_gas() - br label %"$have_gas_3635" - -"$have_gas_3635": ; preds = %"$out_of_gas_3634", %"$have_gas_3622" - %"$consume_3636" = sub i64 %"$gasrem_3632", 2 - store i64 %"$consume_3636", i64* @_gasrem, align 8 - %"$m1o_3638" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %m1o, align 8 - %"$m1o_tag_3639" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$m1o_3638", i32 0, i32 0 - %"$m1o_tag_3640" = load i8, i8* %"$m1o_tag_3639", align 1 - switch i8 %"$m1o_tag_3640", label %"$empty_default_3641" [ - i8 0, label %"$Some_3642" - i8 1, label %"$None_3718" + %"$gasrem_3596" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3597" = icmp ugt i64 1, %"$gasrem_3596" + br i1 %"$gascmp_3597", label %"$out_of_gas_3598", label %"$have_gas_3599" + +"$out_of_gas_3598": ; preds = %"$have_gas_3594" + call void @_out_of_gas() + br label %"$have_gas_3599" + +"$have_gas_3599": ; preds = %"$out_of_gas_3598", %"$have_gas_3594" + %"$consume_3600" = sub i64 %"$gasrem_3596", 1 + store i64 %"$consume_3600", i64* @_gasrem, align 8 + %"$execptr_load_3601" = load i8*, i8** @_execptr, align 8 + %"$m2_3602" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2, align 8 + %"$$m2_3602_3603" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_3602" to i8* + %"$get_key2a_3604" = alloca %String, align 8 + %"$key2a_3605" = load %String, %String* %key2a, align 8 + store %String %"$key2a_3605", %String* %"$get_key2a_3604", align 8 + %"$$get_key2a_3604_3606" = bitcast %String* %"$get_key2a_3604" to i8* + %"$get_call_3607" = call i8* @_get(i8* %"$execptr_load_3601", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m2_3602_3603", i8* %"$$get_key2a_3604_3606") + %"$get_3608" = bitcast i8* %"$get_call_3607" to %"TName_Option_Map_(String)_(String)"* + store %"TName_Option_Map_(String)_(String)"* %"$get_3608", %"TName_Option_Map_(String)_(String)"** %m1o, align 8 + %"$gasrem_3609" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3610" = icmp ugt i64 2, %"$gasrem_3609" + br i1 %"$gascmp_3610", label %"$out_of_gas_3611", label %"$have_gas_3612" + +"$out_of_gas_3611": ; preds = %"$have_gas_3599" + call void @_out_of_gas() + br label %"$have_gas_3612" + +"$have_gas_3612": ; preds = %"$out_of_gas_3611", %"$have_gas_3599" + %"$consume_3613" = sub i64 %"$gasrem_3609", 2 + store i64 %"$consume_3613", i64* @_gasrem, align 8 + %"$m1o_3615" = load %"TName_Option_Map_(String)_(String)"*, %"TName_Option_Map_(String)_(String)"** %m1o, align 8 + %"$m1o_tag_3616" = getelementptr inbounds %"TName_Option_Map_(String)_(String)", %"TName_Option_Map_(String)_(String)"* %"$m1o_3615", i32 0, i32 0 + %"$m1o_tag_3617" = load i8, i8* %"$m1o_tag_3616", align 1 + switch i8 %"$m1o_tag_3617", label %"$empty_default_3618" [ + i8 0, label %"$Some_3619" + i8 1, label %"$None_3695" ] -"$Some_3642": ; preds = %"$have_gas_3635" - %"$m1o_3643" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3638" to %"CName_Some_Map_(String)_(String)"* - %"$m1_gep_3644" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$m1o_3643", i32 0, i32 1 - %"$m1_load_3645" = load %Map_String_String*, %Map_String_String** %"$m1_gep_3644", align 8 +"$Some_3619": ; preds = %"$have_gas_3612" + %"$m1o_3620" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3615" to %"CName_Some_Map_(String)_(String)"* + %"$m1_gep_3621" = getelementptr inbounds %"CName_Some_Map_(String)_(String)", %"CName_Some_Map_(String)_(String)"* %"$m1o_3620", i32 0, i32 1 + %"$m1_load_3622" = load %Map_String_String*, %Map_String_String** %"$m1_gep_3621", align 8 %m1 = alloca %Map_String_String*, align 8 - store %Map_String_String* %"$m1_load_3645", %Map_String_String** %m1, align 8 - %"$gasrem_3646" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3647" = icmp ugt i64 1, %"$gasrem_3646" - br i1 %"$gascmp_3647", label %"$out_of_gas_3648", label %"$have_gas_3649" + store %Map_String_String* %"$m1_load_3622", %Map_String_String** %m1, align 8 + %"$gasrem_3623" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3624" = icmp ugt i64 1, %"$gasrem_3623" + br i1 %"$gascmp_3624", label %"$out_of_gas_3625", label %"$have_gas_3626" -"$out_of_gas_3648": ; preds = %"$Some_3642" +"$out_of_gas_3625": ; preds = %"$Some_3619" call void @_out_of_gas() - br label %"$have_gas_3649" + br label %"$have_gas_3626" -"$have_gas_3649": ; preds = %"$out_of_gas_3648", %"$Some_3642" - %"$consume_3650" = sub i64 %"$gasrem_3646", 1 - store i64 %"$consume_3650", i64* @_gasrem, align 8 +"$have_gas_3626": ; preds = %"$out_of_gas_3625", %"$Some_3619" + %"$consume_3627" = sub i64 %"$gasrem_3623", 1 + store i64 %"$consume_3627", i64* @_gasrem, align 8 %m1_size = alloca %Uint32, align 8 - %"$gasrem_3651" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3652" = icmp ugt i64 1, %"$gasrem_3651" - br i1 %"$gascmp_3652", label %"$out_of_gas_3653", label %"$have_gas_3654" + %"$gasrem_3628" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3629" = icmp ugt i64 1, %"$gasrem_3628" + br i1 %"$gascmp_3629", label %"$out_of_gas_3630", label %"$have_gas_3631" -"$out_of_gas_3653": ; preds = %"$have_gas_3649" +"$out_of_gas_3630": ; preds = %"$have_gas_3626" call void @_out_of_gas() - br label %"$have_gas_3654" + br label %"$have_gas_3631" -"$have_gas_3654": ; preds = %"$out_of_gas_3653", %"$have_gas_3649" - %"$consume_3655" = sub i64 %"$gasrem_3651", 1 - store i64 %"$consume_3655", i64* @_gasrem, align 8 - %"$m1_3656" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_3656_3657" = bitcast %Map_String_String* %"$m1_3656" to i8* - %"$size_call_3658" = call %Uint32 @_size(i8* %"$$m1_3656_3657") - store %Uint32 %"$size_call_3658", %Uint32* %m1_size, align 4 - %"$gasrem_3659" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3660" = icmp ugt i64 1, %"$gasrem_3659" - br i1 %"$gascmp_3660", label %"$out_of_gas_3661", label %"$have_gas_3662" +"$have_gas_3631": ; preds = %"$out_of_gas_3630", %"$have_gas_3626" + %"$consume_3632" = sub i64 %"$gasrem_3628", 1 + store i64 %"$consume_3632", i64* @_gasrem, align 8 + %"$m1_3633" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_3633_3634" = bitcast %Map_String_String* %"$m1_3633" to i8* + %"$size_call_3635" = call %Uint32 @_size(i8* %"$$m1_3633_3634") + store %Uint32 %"$size_call_3635", %Uint32* %m1_size, align 4 + %"$gasrem_3636" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3637" = icmp ugt i64 1, %"$gasrem_3636" + br i1 %"$gascmp_3637", label %"$out_of_gas_3638", label %"$have_gas_3639" -"$out_of_gas_3661": ; preds = %"$have_gas_3654" +"$out_of_gas_3638": ; preds = %"$have_gas_3631" call void @_out_of_gas() - br label %"$have_gas_3662" + br label %"$have_gas_3639" -"$have_gas_3662": ; preds = %"$out_of_gas_3661", %"$have_gas_3654" - %"$consume_3663" = sub i64 %"$gasrem_3659", 1 - store i64 %"$consume_3663", i64* @_gasrem, align 8 +"$have_gas_3639": ; preds = %"$out_of_gas_3638", %"$have_gas_3631" + %"$consume_3640" = sub i64 %"$gasrem_3636", 1 + store i64 %"$consume_3640", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 - %"$gasrem_3664" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3665" = icmp ugt i64 1, %"$gasrem_3664" - br i1 %"$gascmp_3665", label %"$out_of_gas_3666", label %"$have_gas_3667" + %"$gasrem_3641" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3642" = icmp ugt i64 1, %"$gasrem_3641" + br i1 %"$gascmp_3642", label %"$out_of_gas_3643", label %"$have_gas_3644" -"$out_of_gas_3666": ; preds = %"$have_gas_3662" +"$out_of_gas_3643": ; preds = %"$have_gas_3639" call void @_out_of_gas() - br label %"$have_gas_3667" + br label %"$have_gas_3644" -"$have_gas_3667": ; preds = %"$out_of_gas_3666", %"$have_gas_3662" - %"$consume_3668" = sub i64 %"$gasrem_3664", 1 - store i64 %"$consume_3668", i64* @_gasrem, align 8 +"$have_gas_3644": ; preds = %"$out_of_gas_3643", %"$have_gas_3639" + %"$consume_3645" = sub i64 %"$gasrem_3641", 1 + store i64 %"$consume_3645", i64* @_gasrem, align 8 store %Uint32 zeroinitializer, %Uint32* %zero, align 4 - %"$gasrem_3669" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3670" = icmp ugt i64 1, %"$gasrem_3669" - br i1 %"$gascmp_3670", label %"$out_of_gas_3671", label %"$have_gas_3672" + %"$gasrem_3646" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3647" = icmp ugt i64 1, %"$gasrem_3646" + br i1 %"$gascmp_3647", label %"$out_of_gas_3648", label %"$have_gas_3649" -"$out_of_gas_3671": ; preds = %"$have_gas_3667" +"$out_of_gas_3648": ; preds = %"$have_gas_3644" call void @_out_of_gas() - br label %"$have_gas_3672" + br label %"$have_gas_3649" -"$have_gas_3672": ; preds = %"$out_of_gas_3671", %"$have_gas_3667" - %"$consume_3673" = sub i64 %"$gasrem_3669", 1 - store i64 %"$consume_3673", i64* @_gasrem, align 8 +"$have_gas_3649": ; preds = %"$out_of_gas_3648", %"$have_gas_3644" + %"$consume_3650" = sub i64 %"$gasrem_3646", 1 + store i64 %"$consume_3650", i64* @_gasrem, align 8 %is_empty = alloca %TName_Bool*, align 8 - %"$gasrem_3674" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3675" = icmp ugt i64 4, %"$gasrem_3674" - br i1 %"$gascmp_3675", label %"$out_of_gas_3676", label %"$have_gas_3677" - -"$out_of_gas_3676": ; preds = %"$have_gas_3672" - call void @_out_of_gas() - br label %"$have_gas_3677" - -"$have_gas_3677": ; preds = %"$out_of_gas_3676", %"$have_gas_3672" - %"$consume_3678" = sub i64 %"$gasrem_3674", 4 - store i64 %"$consume_3678", i64* @_gasrem, align 8 - %"$execptr_load_3679" = load i8*, i8** @_execptr, align 8 - %"$m1_size_3680" = load %Uint32, %Uint32* %m1_size, align 4 - %"$zero_3681" = load %Uint32, %Uint32* %zero, align 4 - %"$eq_call_3682" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3679", %Uint32 %"$m1_size_3680", %Uint32 %"$zero_3681") - store %TName_Bool* %"$eq_call_3682", %TName_Bool** %is_empty, align 8 - %"$gasrem_3684" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3685" = icmp ugt i64 2, %"$gasrem_3684" - br i1 %"$gascmp_3685", label %"$out_of_gas_3686", label %"$have_gas_3687" - -"$out_of_gas_3686": ; preds = %"$have_gas_3677" - call void @_out_of_gas() - br label %"$have_gas_3687" - -"$have_gas_3687": ; preds = %"$out_of_gas_3686", %"$have_gas_3677" - %"$consume_3688" = sub i64 %"$gasrem_3684", 2 - store i64 %"$consume_3688", i64* @_gasrem, align 8 - %"$is_empty_3690" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 - %"$is_empty_tag_3691" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3690", i32 0, i32 0 - %"$is_empty_tag_3692" = load i8, i8* %"$is_empty_tag_3691", align 1 - switch i8 %"$is_empty_tag_3692", label %"$empty_default_3693" [ - i8 0, label %"$True_3694" - i8 1, label %"$False_3696" + %"$gasrem_3651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3652" = icmp ugt i64 4, %"$gasrem_3651" + br i1 %"$gascmp_3652", label %"$out_of_gas_3653", label %"$have_gas_3654" + +"$out_of_gas_3653": ; preds = %"$have_gas_3649" + call void @_out_of_gas() + br label %"$have_gas_3654" + +"$have_gas_3654": ; preds = %"$out_of_gas_3653", %"$have_gas_3649" + %"$consume_3655" = sub i64 %"$gasrem_3651", 4 + store i64 %"$consume_3655", i64* @_gasrem, align 8 + %"$execptr_load_3656" = load i8*, i8** @_execptr, align 8 + %"$m1_size_3657" = load %Uint32, %Uint32* %m1_size, align 4 + %"$zero_3658" = load %Uint32, %Uint32* %zero, align 4 + %"$eq_call_3659" = call %TName_Bool* @_eq_Uint32(i8* %"$execptr_load_3656", %Uint32 %"$m1_size_3657", %Uint32 %"$zero_3658") + store %TName_Bool* %"$eq_call_3659", %TName_Bool** %is_empty, align 8 + %"$gasrem_3661" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3662" = icmp ugt i64 2, %"$gasrem_3661" + br i1 %"$gascmp_3662", label %"$out_of_gas_3663", label %"$have_gas_3664" + +"$out_of_gas_3663": ; preds = %"$have_gas_3654" + call void @_out_of_gas() + br label %"$have_gas_3664" + +"$have_gas_3664": ; preds = %"$out_of_gas_3663", %"$have_gas_3654" + %"$consume_3665" = sub i64 %"$gasrem_3661", 2 + store i64 %"$consume_3665", i64* @_gasrem, align 8 + %"$is_empty_3667" = load %TName_Bool*, %TName_Bool** %is_empty, align 8 + %"$is_empty_tag_3668" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$is_empty_3667", i32 0, i32 0 + %"$is_empty_tag_3669" = load i8, i8* %"$is_empty_tag_3668", align 1 + switch i8 %"$is_empty_tag_3669", label %"$empty_default_3670" [ + i8 0, label %"$True_3671" + i8 1, label %"$False_3673" ] -"$True_3694": ; preds = %"$have_gas_3687" - %"$is_empty_3695" = bitcast %TName_Bool* %"$is_empty_3690" to %CName_True* - br label %"$matchsucc_3689" +"$True_3671": ; preds = %"$have_gas_3664" + %"$is_empty_3672" = bitcast %TName_Bool* %"$is_empty_3667" to %CName_True* + br label %"$matchsucc_3666" -"$False_3696": ; preds = %"$have_gas_3687" - %"$is_empty_3697" = bitcast %TName_Bool* %"$is_empty_3690" to %CName_False* - %"$gasrem_3698" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3699" = icmp ugt i64 1, %"$gasrem_3698" - br i1 %"$gascmp_3699", label %"$out_of_gas_3700", label %"$have_gas_3701" +"$False_3673": ; preds = %"$have_gas_3664" + %"$is_empty_3674" = bitcast %TName_Bool* %"$is_empty_3667" to %CName_False* + %"$gasrem_3675" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3676" = icmp ugt i64 1, %"$gasrem_3675" + br i1 %"$gascmp_3676", label %"$out_of_gas_3677", label %"$have_gas_3678" -"$out_of_gas_3700": ; preds = %"$False_3696" +"$out_of_gas_3677": ; preds = %"$False_3673" call void @_out_of_gas() - br label %"$have_gas_3701" + br label %"$have_gas_3678" -"$have_gas_3701": ; preds = %"$out_of_gas_3700", %"$False_3696" - %"$consume_3702" = sub i64 %"$gasrem_3698", 1 - store i64 %"$consume_3702", i64* @_gasrem, align 8 +"$have_gas_3678": ; preds = %"$out_of_gas_3677", %"$False_3673" + %"$consume_3679" = sub i64 %"$gasrem_3675", 1 + store i64 %"$consume_3679", i64* @_gasrem, align 8 %err1 = alloca %String, align 8 - %"$gasrem_3703" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3704" = icmp ugt i64 1, %"$gasrem_3703" - br i1 %"$gascmp_3704", label %"$out_of_gas_3705", label %"$have_gas_3706" + %"$gasrem_3680" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3681" = icmp ugt i64 1, %"$gasrem_3680" + br i1 %"$gascmp_3681", label %"$out_of_gas_3682", label %"$have_gas_3683" -"$out_of_gas_3705": ; preds = %"$have_gas_3701" +"$out_of_gas_3682": ; preds = %"$have_gas_3678" call void @_out_of_gas() - br label %"$have_gas_3706" + br label %"$have_gas_3683" -"$have_gas_3706": ; preds = %"$out_of_gas_3705", %"$have_gas_3701" - %"$consume_3707" = sub i64 %"$gasrem_3703", 1 - store i64 %"$consume_3707", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @"$stringlit_3708", i32 0, i32 0), i32 36 }, %String* %err1, align 8 - %"$gasrem_3709" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3710" = icmp ugt i64 1, %"$gasrem_3709" - br i1 %"$gascmp_3710", label %"$out_of_gas_3711", label %"$have_gas_3712" +"$have_gas_3683": ; preds = %"$out_of_gas_3682", %"$have_gas_3678" + %"$consume_3684" = sub i64 %"$gasrem_3680", 1 + store i64 %"$consume_3684", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([36 x i8], [36 x i8]* @"$stringlit_3685", i32 0, i32 0), i32 36 }, %String* %err1, align 8 + %"$gasrem_3686" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3687" = icmp ugt i64 1, %"$gasrem_3686" + br i1 %"$gascmp_3687", label %"$out_of_gas_3688", label %"$have_gas_3689" -"$out_of_gas_3711": ; preds = %"$have_gas_3706" +"$out_of_gas_3688": ; preds = %"$have_gas_3683" call void @_out_of_gas() - br label %"$have_gas_3712" + br label %"$have_gas_3689" -"$have_gas_3712": ; preds = %"$out_of_gas_3711", %"$have_gas_3706" - %"$consume_3713" = sub i64 %"$gasrem_3709", 1 - store i64 %"$consume_3713", i64* @_gasrem, align 8 - %"$fail_msg__origin_3714" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3714", align 1 - %"$fail_msg__sender_3715" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3715", align 1 - %"$tname_3716" = load %String, %String* %tname, align 8 - %"$err_3717" = load %String, %String* %err1, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3714", [20 x i8]* %"$fail_msg__sender_3715", %String %"$tname_3716", %String %"$err_3717") - br label %"$matchsucc_3689" +"$have_gas_3689": ; preds = %"$out_of_gas_3688", %"$have_gas_3683" + %"$consume_3690" = sub i64 %"$gasrem_3686", 1 + store i64 %"$consume_3690", i64* @_gasrem, align 8 + %"$fail_msg__origin_3691" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3691", align 1 + %"$fail_msg__sender_3692" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3692", align 1 + %"$tname_3693" = load %String, %String* %tname, align 8 + %"$err_3694" = load %String, %String* %err1, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3691", [20 x i8]* %"$fail_msg__sender_3692", %String %"$tname_3693", %String %"$err_3694") + br label %"$matchsucc_3666" -"$empty_default_3693": ; preds = %"$have_gas_3687" - br label %"$matchsucc_3689" +"$empty_default_3670": ; preds = %"$have_gas_3664" + br label %"$matchsucc_3666" -"$matchsucc_3689": ; preds = %"$have_gas_3712", %"$True_3694", %"$empty_default_3693" - br label %"$matchsucc_3637" +"$matchsucc_3666": ; preds = %"$have_gas_3689", %"$True_3671", %"$empty_default_3670" + br label %"$matchsucc_3614" -"$None_3718": ; preds = %"$have_gas_3635" - %"$m1o_3719" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3638" to %"CName_None_Map_(String)_(String)"* - %"$gasrem_3720" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3721" = icmp ugt i64 1, %"$gasrem_3720" - br i1 %"$gascmp_3721", label %"$out_of_gas_3722", label %"$have_gas_3723" +"$None_3695": ; preds = %"$have_gas_3612" + %"$m1o_3696" = bitcast %"TName_Option_Map_(String)_(String)"* %"$m1o_3615" to %"CName_None_Map_(String)_(String)"* + %"$gasrem_3697" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3698" = icmp ugt i64 1, %"$gasrem_3697" + br i1 %"$gascmp_3698", label %"$out_of_gas_3699", label %"$have_gas_3700" -"$out_of_gas_3722": ; preds = %"$None_3718" +"$out_of_gas_3699": ; preds = %"$None_3695" call void @_out_of_gas() - br label %"$have_gas_3723" + br label %"$have_gas_3700" -"$have_gas_3723": ; preds = %"$out_of_gas_3722", %"$None_3718" - %"$consume_3724" = sub i64 %"$gasrem_3720", 1 - store i64 %"$consume_3724", i64* @_gasrem, align 8 +"$have_gas_3700": ; preds = %"$out_of_gas_3699", %"$None_3695" + %"$consume_3701" = sub i64 %"$gasrem_3697", 1 + store i64 %"$consume_3701", i64* @_gasrem, align 8 %err2 = alloca %String, align 8 - %"$gasrem_3725" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3726" = icmp ugt i64 1, %"$gasrem_3725" - br i1 %"$gascmp_3726", label %"$out_of_gas_3727", label %"$have_gas_3728" + %"$gasrem_3702" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3703" = icmp ugt i64 1, %"$gasrem_3702" + br i1 %"$gascmp_3703", label %"$out_of_gas_3704", label %"$have_gas_3705" -"$out_of_gas_3727": ; preds = %"$have_gas_3723" +"$out_of_gas_3704": ; preds = %"$have_gas_3700" call void @_out_of_gas() - br label %"$have_gas_3728" + br label %"$have_gas_3705" -"$have_gas_3728": ; preds = %"$out_of_gas_3727", %"$have_gas_3723" - %"$consume_3729" = sub i64 %"$gasrem_3725", 1 - store i64 %"$consume_3729", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3730", i32 0, i32 0), i32 19 }, %String* %err2, align 8 - %"$gasrem_3731" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3732" = icmp ugt i64 1, %"$gasrem_3731" - br i1 %"$gascmp_3732", label %"$out_of_gas_3733", label %"$have_gas_3734" +"$have_gas_3705": ; preds = %"$out_of_gas_3704", %"$have_gas_3700" + %"$consume_3706" = sub i64 %"$gasrem_3702", 1 + store i64 %"$consume_3706", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3707", i32 0, i32 0), i32 19 }, %String* %err2, align 8 + %"$gasrem_3708" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3709" = icmp ugt i64 1, %"$gasrem_3708" + br i1 %"$gascmp_3709", label %"$out_of_gas_3710", label %"$have_gas_3711" -"$out_of_gas_3733": ; preds = %"$have_gas_3728" +"$out_of_gas_3710": ; preds = %"$have_gas_3705" call void @_out_of_gas() - br label %"$have_gas_3734" + br label %"$have_gas_3711" -"$have_gas_3734": ; preds = %"$out_of_gas_3733", %"$have_gas_3728" - %"$consume_3735" = sub i64 %"$gasrem_3731", 1 - store i64 %"$consume_3735", i64* @_gasrem, align 8 - %"$fail_msg__origin_3736" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3736", align 1 - %"$fail_msg__sender_3737" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3737", align 1 - %"$tname_3738" = load %String, %String* %tname, align 8 - %"$err_3739" = load %String, %String* %err2, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3736", [20 x i8]* %"$fail_msg__sender_3737", %String %"$tname_3738", %String %"$err_3739") - br label %"$matchsucc_3637" +"$have_gas_3711": ; preds = %"$out_of_gas_3710", %"$have_gas_3705" + %"$consume_3712" = sub i64 %"$gasrem_3708", 1 + store i64 %"$consume_3712", i64* @_gasrem, align 8 + %"$fail_msg__origin_3713" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3713", align 1 + %"$fail_msg__sender_3714" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3714", align 1 + %"$tname_3715" = load %String, %String* %tname, align 8 + %"$err_3716" = load %String, %String* %err2, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3713", [20 x i8]* %"$fail_msg__sender_3714", %String %"$tname_3715", %String %"$err_3716") + br label %"$matchsucc_3614" -"$empty_default_3641": ; preds = %"$have_gas_3635" - br label %"$matchsucc_3637" +"$empty_default_3618": ; preds = %"$have_gas_3612" + br label %"$matchsucc_3614" -"$matchsucc_3637": ; preds = %"$have_gas_3734", %"$matchsucc_3689", %"$empty_default_3641" - br label %"$matchsucc_3607" +"$matchsucc_3614": ; preds = %"$have_gas_3711", %"$matchsucc_3666", %"$empty_default_3618" + br label %"$matchsucc_3584" -"$False_3740": ; preds = %"$have_gas_3605" - %"$is_one_1_3741" = bitcast %TName_Bool* %"$is_one_1_3608" to %CName_False* - %"$gasrem_3742" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3743" = icmp ugt i64 1, %"$gasrem_3742" - br i1 %"$gascmp_3743", label %"$out_of_gas_3744", label %"$have_gas_3745" +"$False_3717": ; preds = %"$have_gas_3582" + %"$is_one_1_3718" = bitcast %TName_Bool* %"$is_one_1_3585" to %CName_False* + %"$gasrem_3719" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3720" = icmp ugt i64 1, %"$gasrem_3719" + br i1 %"$gascmp_3720", label %"$out_of_gas_3721", label %"$have_gas_3722" -"$out_of_gas_3744": ; preds = %"$False_3740" +"$out_of_gas_3721": ; preds = %"$False_3717" call void @_out_of_gas() - br label %"$have_gas_3745" + br label %"$have_gas_3722" -"$have_gas_3745": ; preds = %"$out_of_gas_3744", %"$False_3740" - %"$consume_3746" = sub i64 %"$gasrem_3742", 1 - store i64 %"$consume_3746", i64* @_gasrem, align 8 +"$have_gas_3722": ; preds = %"$out_of_gas_3721", %"$False_3717" + %"$consume_3723" = sub i64 %"$gasrem_3719", 1 + store i64 %"$consume_3723", i64* @_gasrem, align 8 %err3 = alloca %String, align 8 - %"$gasrem_3747" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3748" = icmp ugt i64 1, %"$gasrem_3747" - br i1 %"$gascmp_3748", label %"$out_of_gas_3749", label %"$have_gas_3750" + %"$gasrem_3724" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3725" = icmp ugt i64 1, %"$gasrem_3724" + br i1 %"$gascmp_3725", label %"$out_of_gas_3726", label %"$have_gas_3727" -"$out_of_gas_3749": ; preds = %"$have_gas_3745" +"$out_of_gas_3726": ; preds = %"$have_gas_3722" call void @_out_of_gas() - br label %"$have_gas_3750" + br label %"$have_gas_3727" -"$have_gas_3750": ; preds = %"$out_of_gas_3749", %"$have_gas_3745" - %"$consume_3751" = sub i64 %"$gasrem_3747", 1 - store i64 %"$consume_3751", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @"$stringlit_3752", i32 0, i32 0), i32 28 }, %String* %err3, align 8 - %"$gasrem_3753" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3754" = icmp ugt i64 1, %"$gasrem_3753" - br i1 %"$gascmp_3754", label %"$out_of_gas_3755", label %"$have_gas_3756" +"$have_gas_3727": ; preds = %"$out_of_gas_3726", %"$have_gas_3722" + %"$consume_3728" = sub i64 %"$gasrem_3724", 1 + store i64 %"$consume_3728", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @"$stringlit_3729", i32 0, i32 0), i32 28 }, %String* %err3, align 8 + %"$gasrem_3730" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3731" = icmp ugt i64 1, %"$gasrem_3730" + br i1 %"$gascmp_3731", label %"$out_of_gas_3732", label %"$have_gas_3733" -"$out_of_gas_3755": ; preds = %"$have_gas_3750" +"$out_of_gas_3732": ; preds = %"$have_gas_3727" call void @_out_of_gas() - br label %"$have_gas_3756" + br label %"$have_gas_3733" -"$have_gas_3756": ; preds = %"$out_of_gas_3755", %"$have_gas_3750" - %"$consume_3757" = sub i64 %"$gasrem_3753", 1 - store i64 %"$consume_3757", i64* @_gasrem, align 8 - %"$fail_msg__origin_3758" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3758", align 1 - %"$fail_msg__sender_3759" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3759", align 1 - %"$tname_3760" = load %String, %String* %tname, align 8 - %"$err_3761" = load %String, %String* %err3, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3758", [20 x i8]* %"$fail_msg__sender_3759", %String %"$tname_3760", %String %"$err_3761") - br label %"$matchsucc_3607" +"$have_gas_3733": ; preds = %"$out_of_gas_3732", %"$have_gas_3727" + %"$consume_3734" = sub i64 %"$gasrem_3730", 1 + store i64 %"$consume_3734", i64* @_gasrem, align 8 + %"$fail_msg__origin_3735" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3735", align 1 + %"$fail_msg__sender_3736" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3736", align 1 + %"$tname_3737" = load %String, %String* %tname, align 8 + %"$err_3738" = load %String, %String* %err3, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3735", [20 x i8]* %"$fail_msg__sender_3736", %String %"$tname_3737", %String %"$err_3738") + br label %"$matchsucc_3584" -"$empty_default_3611": ; preds = %"$have_gas_3605" - br label %"$matchsucc_3607" +"$empty_default_3588": ; preds = %"$have_gas_3582" + br label %"$matchsucc_3584" -"$matchsucc_3607": ; preds = %"$have_gas_3756", %"$matchsucc_3637", %"$empty_default_3611" - br label %"$matchsucc_3565" +"$matchsucc_3584": ; preds = %"$have_gas_3733", %"$matchsucc_3614", %"$empty_default_3588" + br label %"$matchsucc_3542" -"$None_3762": ; preds = %"$have_gas_3563" - %"$m2o_3763" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3566" to %"CName_None_Map_(String)_(Map_(String)_(String))"* - %"$gasrem_3764" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3765" = icmp ugt i64 1, %"$gasrem_3764" - br i1 %"$gascmp_3765", label %"$out_of_gas_3766", label %"$have_gas_3767" +"$None_3739": ; preds = %"$have_gas_3540" + %"$m2o_3740" = bitcast %"TName_Option_Map_(String)_(Map_(String)_(String))"* %"$m2o_3543" to %"CName_None_Map_(String)_(Map_(String)_(String))"* + %"$gasrem_3741" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3742" = icmp ugt i64 1, %"$gasrem_3741" + br i1 %"$gascmp_3742", label %"$out_of_gas_3743", label %"$have_gas_3744" -"$out_of_gas_3766": ; preds = %"$None_3762" +"$out_of_gas_3743": ; preds = %"$None_3739" call void @_out_of_gas() - br label %"$have_gas_3767" + br label %"$have_gas_3744" -"$have_gas_3767": ; preds = %"$out_of_gas_3766", %"$None_3762" - %"$consume_3768" = sub i64 %"$gasrem_3764", 1 - store i64 %"$consume_3768", i64* @_gasrem, align 8 +"$have_gas_3744": ; preds = %"$out_of_gas_3743", %"$None_3739" + %"$consume_3745" = sub i64 %"$gasrem_3741", 1 + store i64 %"$consume_3745", i64* @_gasrem, align 8 %err4 = alloca %String, align 8 - %"$gasrem_3769" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3770" = icmp ugt i64 1, %"$gasrem_3769" - br i1 %"$gascmp_3770", label %"$out_of_gas_3771", label %"$have_gas_3772" + %"$gasrem_3746" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3747" = icmp ugt i64 1, %"$gasrem_3746" + br i1 %"$gascmp_3747", label %"$out_of_gas_3748", label %"$have_gas_3749" -"$out_of_gas_3771": ; preds = %"$have_gas_3767" +"$out_of_gas_3748": ; preds = %"$have_gas_3744" call void @_out_of_gas() - br label %"$have_gas_3772" + br label %"$have_gas_3749" -"$have_gas_3772": ; preds = %"$out_of_gas_3771", %"$have_gas_3767" - %"$consume_3773" = sub i64 %"$gasrem_3769", 1 - store i64 %"$consume_3773", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3774", i32 0, i32 0), i32 19 }, %String* %err4, align 8 - %"$gasrem_3775" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3776" = icmp ugt i64 1, %"$gasrem_3775" - br i1 %"$gascmp_3776", label %"$out_of_gas_3777", label %"$have_gas_3778" +"$have_gas_3749": ; preds = %"$out_of_gas_3748", %"$have_gas_3744" + %"$consume_3750" = sub i64 %"$gasrem_3746", 1 + store i64 %"$consume_3750", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([19 x i8], [19 x i8]* @"$stringlit_3751", i32 0, i32 0), i32 19 }, %String* %err4, align 8 + %"$gasrem_3752" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3753" = icmp ugt i64 1, %"$gasrem_3752" + br i1 %"$gascmp_3753", label %"$out_of_gas_3754", label %"$have_gas_3755" -"$out_of_gas_3777": ; preds = %"$have_gas_3772" +"$out_of_gas_3754": ; preds = %"$have_gas_3749" call void @_out_of_gas() - br label %"$have_gas_3778" + br label %"$have_gas_3755" -"$have_gas_3778": ; preds = %"$out_of_gas_3777", %"$have_gas_3772" - %"$consume_3779" = sub i64 %"$gasrem_3775", 1 - store i64 %"$consume_3779", i64* @_gasrem, align 8 - %"$fail_msg__origin_3780" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3780", align 1 - %"$fail_msg__sender_3781" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3781", align 1 - %"$tname_3782" = load %String, %String* %tname, align 8 - %"$err_3783" = load %String, %String* %err4, align 8 - call void @"$fail_msg_273"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3780", [20 x i8]* %"$fail_msg__sender_3781", %String %"$tname_3782", %String %"$err_3783") - br label %"$matchsucc_3565" +"$have_gas_3755": ; preds = %"$out_of_gas_3754", %"$have_gas_3749" + %"$consume_3756" = sub i64 %"$gasrem_3752", 1 + store i64 %"$consume_3756", i64* @_gasrem, align 8 + %"$fail_msg__origin_3757" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail_msg__origin_3757", align 1 + %"$fail_msg__sender_3758" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail_msg__sender_3758", align 1 + %"$tname_3759" = load %String, %String* %tname, align 8 + %"$err_3760" = load %String, %String* %err4, align 8 + call void @"$fail_msg_250"(%Uint128 %_amount, [20 x i8]* %"$fail_msg__origin_3757", [20 x i8]* %"$fail_msg__sender_3758", %String %"$tname_3759", %String %"$err_3760") + br label %"$matchsucc_3542" -"$empty_default_3569": ; preds = %"$have_gas_3563" - br label %"$matchsucc_3565" +"$empty_default_3546": ; preds = %"$have_gas_3540" + br label %"$matchsucc_3542" -"$matchsucc_3565": ; preds = %"$have_gas_3778", %"$matchsucc_3607", %"$empty_default_3569" - %"$gasrem_3784" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3785" = icmp ugt i64 1, %"$gasrem_3784" - br i1 %"$gascmp_3785", label %"$out_of_gas_3786", label %"$have_gas_3787" +"$matchsucc_3542": ; preds = %"$have_gas_3755", %"$matchsucc_3584", %"$empty_default_3546" + %"$gasrem_3761" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3762" = icmp ugt i64 1, %"$gasrem_3761" + br i1 %"$gascmp_3762", label %"$out_of_gas_3763", label %"$have_gas_3764" -"$out_of_gas_3786": ; preds = %"$matchsucc_3565" +"$out_of_gas_3763": ; preds = %"$matchsucc_3542" call void @_out_of_gas() - br label %"$have_gas_3787" + br label %"$have_gas_3764" -"$have_gas_3787": ; preds = %"$out_of_gas_3786", %"$matchsucc_3565" - %"$consume_3788" = sub i64 %"$gasrem_3784", 1 - store i64 %"$consume_3788", i64* @_gasrem, align 8 +"$have_gas_3764": ; preds = %"$out_of_gas_3763", %"$matchsucc_3542" + %"$consume_3765" = sub i64 %"$gasrem_3761", 1 + store i64 %"$consume_3765", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_3789" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3790" = icmp ugt i64 1, %"$gasrem_3789" - br i1 %"$gascmp_3790", label %"$out_of_gas_3791", label %"$have_gas_3792" + %"$gasrem_3766" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3767" = icmp ugt i64 1, %"$gasrem_3766" + br i1 %"$gascmp_3767", label %"$out_of_gas_3768", label %"$have_gas_3769" -"$out_of_gas_3791": ; preds = %"$have_gas_3787" +"$out_of_gas_3768": ; preds = %"$have_gas_3764" call void @_out_of_gas() - br label %"$have_gas_3792" + br label %"$have_gas_3769" -"$have_gas_3792": ; preds = %"$out_of_gas_3791", %"$have_gas_3787" - %"$consume_3793" = sub i64 %"$gasrem_3789", 1 - store i64 %"$consume_3793", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3794", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 - %"$gasrem_3795" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3796" = icmp ugt i64 1, %"$gasrem_3795" - br i1 %"$gascmp_3796", label %"$out_of_gas_3797", label %"$have_gas_3798" +"$have_gas_3769": ; preds = %"$out_of_gas_3768", %"$have_gas_3764" + %"$consume_3770" = sub i64 %"$gasrem_3766", 1 + store i64 %"$consume_3770", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3771", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 + %"$gasrem_3772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3773" = icmp ugt i64 1, %"$gasrem_3772" + br i1 %"$gascmp_3773", label %"$out_of_gas_3774", label %"$have_gas_3775" -"$out_of_gas_3797": ; preds = %"$have_gas_3792" +"$out_of_gas_3774": ; preds = %"$have_gas_3769" call void @_out_of_gas() - br label %"$have_gas_3798" + br label %"$have_gas_3775" -"$have_gas_3798": ; preds = %"$out_of_gas_3797", %"$have_gas_3792" - %"$consume_3799" = sub i64 %"$gasrem_3795", 1 - store i64 %"$consume_3799", i64* @_gasrem, align 8 +"$have_gas_3775": ; preds = %"$out_of_gas_3774", %"$have_gas_3769" + %"$consume_3776" = sub i64 %"$gasrem_3772", 1 + store i64 %"$consume_3776", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_3800" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3801" = icmp ugt i64 1, %"$gasrem_3800" - br i1 %"$gascmp_3801", label %"$out_of_gas_3802", label %"$have_gas_3803" + %"$gasrem_3777" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3778" = icmp ugt i64 1, %"$gasrem_3777" + br i1 %"$gascmp_3778", label %"$out_of_gas_3779", label %"$have_gas_3780" -"$out_of_gas_3802": ; preds = %"$have_gas_3798" +"$out_of_gas_3779": ; preds = %"$have_gas_3775" call void @_out_of_gas() - br label %"$have_gas_3803" + br label %"$have_gas_3780" -"$have_gas_3803": ; preds = %"$out_of_gas_3802", %"$have_gas_3798" - %"$consume_3804" = sub i64 %"$gasrem_3800", 1 - store i64 %"$consume_3804", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3805", i32 0, i32 0), i32 5 }, %String* %key2b, align 8 - %"$gasrem_3806" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3807" = icmp ugt i64 1, %"$gasrem_3806" - br i1 %"$gascmp_3807", label %"$out_of_gas_3808", label %"$have_gas_3809" +"$have_gas_3780": ; preds = %"$out_of_gas_3779", %"$have_gas_3775" + %"$consume_3781" = sub i64 %"$gasrem_3777", 1 + store i64 %"$consume_3781", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3782", i32 0, i32 0), i32 5 }, %String* %key2b, align 8 + %"$gasrem_3783" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3784" = icmp ugt i64 1, %"$gasrem_3783" + br i1 %"$gascmp_3784", label %"$out_of_gas_3785", label %"$have_gas_3786" -"$out_of_gas_3808": ; preds = %"$have_gas_3803" +"$out_of_gas_3785": ; preds = %"$have_gas_3780" call void @_out_of_gas() - br label %"$have_gas_3809" + br label %"$have_gas_3786" -"$have_gas_3809": ; preds = %"$out_of_gas_3808", %"$have_gas_3803" - %"$consume_3810" = sub i64 %"$gasrem_3806", 1 - store i64 %"$consume_3810", i64* @_gasrem, align 8 +"$have_gas_3786": ; preds = %"$out_of_gas_3785", %"$have_gas_3780" + %"$consume_3787" = sub i64 %"$gasrem_3783", 1 + store i64 %"$consume_3787", i64* @_gasrem, align 8 %key1c = alloca %String, align 8 - %"$gasrem_3811" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3812" = icmp ugt i64 1, %"$gasrem_3811" - br i1 %"$gascmp_3812", label %"$out_of_gas_3813", label %"$have_gas_3814" + %"$gasrem_3788" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3789" = icmp ugt i64 1, %"$gasrem_3788" + br i1 %"$gascmp_3789", label %"$out_of_gas_3790", label %"$have_gas_3791" -"$out_of_gas_3813": ; preds = %"$have_gas_3809" +"$out_of_gas_3790": ; preds = %"$have_gas_3786" call void @_out_of_gas() - br label %"$have_gas_3814" + br label %"$have_gas_3791" -"$have_gas_3814": ; preds = %"$out_of_gas_3813", %"$have_gas_3809" - %"$consume_3815" = sub i64 %"$gasrem_3811", 1 - store i64 %"$consume_3815", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3816", i32 0, i32 0), i32 5 }, %String* %key1c, align 8 - %"$gasrem_3817" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3818" = icmp ugt i64 1, %"$gasrem_3817" - br i1 %"$gascmp_3818", label %"$out_of_gas_3819", label %"$have_gas_3820" +"$have_gas_3791": ; preds = %"$out_of_gas_3790", %"$have_gas_3786" + %"$consume_3792" = sub i64 %"$gasrem_3788", 1 + store i64 %"$consume_3792", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3793", i32 0, i32 0), i32 5 }, %String* %key1c, align 8 + %"$gasrem_3794" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3795" = icmp ugt i64 1, %"$gasrem_3794" + br i1 %"$gascmp_3795", label %"$out_of_gas_3796", label %"$have_gas_3797" -"$out_of_gas_3819": ; preds = %"$have_gas_3814" +"$out_of_gas_3796": ; preds = %"$have_gas_3791" call void @_out_of_gas() - br label %"$have_gas_3820" + br label %"$have_gas_3797" -"$have_gas_3820": ; preds = %"$out_of_gas_3819", %"$have_gas_3814" - %"$consume_3821" = sub i64 %"$gasrem_3817", 1 - store i64 %"$consume_3821", i64* @_gasrem, align 8 +"$have_gas_3797": ; preds = %"$out_of_gas_3796", %"$have_gas_3791" + %"$consume_3798" = sub i64 %"$gasrem_3794", 1 + store i64 %"$consume_3798", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_3822" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3823" = icmp ugt i64 1, %"$gasrem_3822" - br i1 %"$gascmp_3823", label %"$out_of_gas_3824", label %"$have_gas_3825" + %"$gasrem_3799" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3800" = icmp ugt i64 1, %"$gasrem_3799" + br i1 %"$gascmp_3800", label %"$out_of_gas_3801", label %"$have_gas_3802" -"$out_of_gas_3824": ; preds = %"$have_gas_3820" +"$out_of_gas_3801": ; preds = %"$have_gas_3797" call void @_out_of_gas() - br label %"$have_gas_3825" + br label %"$have_gas_3802" -"$have_gas_3825": ; preds = %"$out_of_gas_3824", %"$have_gas_3820" - %"$consume_3826" = sub i64 %"$gasrem_3822", 1 - store i64 %"$consume_3826", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3827", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 - %"$gasrem_3828" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3829" = icmp ugt i64 1, %"$gasrem_3828" - br i1 %"$gascmp_3829", label %"$out_of_gas_3830", label %"$have_gas_3831" +"$have_gas_3802": ; preds = %"$out_of_gas_3801", %"$have_gas_3797" + %"$consume_3803" = sub i64 %"$gasrem_3799", 1 + store i64 %"$consume_3803", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3804", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 + %"$gasrem_3805" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3806" = icmp ugt i64 1, %"$gasrem_3805" + br i1 %"$gascmp_3806", label %"$out_of_gas_3807", label %"$have_gas_3808" -"$out_of_gas_3830": ; preds = %"$have_gas_3825" +"$out_of_gas_3807": ; preds = %"$have_gas_3802" call void @_out_of_gas() - br label %"$have_gas_3831" + br label %"$have_gas_3808" -"$have_gas_3831": ; preds = %"$out_of_gas_3830", %"$have_gas_3825" - %"$consume_3832" = sub i64 %"$gasrem_3828", 1 - store i64 %"$consume_3832", i64* @_gasrem, align 8 +"$have_gas_3808": ; preds = %"$out_of_gas_3807", %"$have_gas_3802" + %"$consume_3809" = sub i64 %"$gasrem_3805", 1 + store i64 %"$consume_3809", i64* @_gasrem, align 8 %key1d = alloca %String, align 8 - %"$gasrem_3833" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3834" = icmp ugt i64 1, %"$gasrem_3833" - br i1 %"$gascmp_3834", label %"$out_of_gas_3835", label %"$have_gas_3836" + %"$gasrem_3810" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3811" = icmp ugt i64 1, %"$gasrem_3810" + br i1 %"$gascmp_3811", label %"$out_of_gas_3812", label %"$have_gas_3813" -"$out_of_gas_3835": ; preds = %"$have_gas_3831" +"$out_of_gas_3812": ; preds = %"$have_gas_3808" call void @_out_of_gas() - br label %"$have_gas_3836" + br label %"$have_gas_3813" -"$have_gas_3836": ; preds = %"$out_of_gas_3835", %"$have_gas_3831" - %"$consume_3837" = sub i64 %"$gasrem_3833", 1 - store i64 %"$consume_3837", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3838", i32 0, i32 0), i32 5 }, %String* %key1d, align 8 - %"$gasrem_3839" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3840" = icmp ugt i64 1, %"$gasrem_3839" - br i1 %"$gascmp_3840", label %"$out_of_gas_3841", label %"$have_gas_3842" +"$have_gas_3813": ; preds = %"$out_of_gas_3812", %"$have_gas_3808" + %"$consume_3814" = sub i64 %"$gasrem_3810", 1 + store i64 %"$consume_3814", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3815", i32 0, i32 0), i32 5 }, %String* %key1d, align 8 + %"$gasrem_3816" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3817" = icmp ugt i64 1, %"$gasrem_3816" + br i1 %"$gascmp_3817", label %"$out_of_gas_3818", label %"$have_gas_3819" -"$out_of_gas_3841": ; preds = %"$have_gas_3836" +"$out_of_gas_3818": ; preds = %"$have_gas_3813" call void @_out_of_gas() - br label %"$have_gas_3842" + br label %"$have_gas_3819" -"$have_gas_3842": ; preds = %"$out_of_gas_3841", %"$have_gas_3836" - %"$consume_3843" = sub i64 %"$gasrem_3839", 1 - store i64 %"$consume_3843", i64* @_gasrem, align 8 +"$have_gas_3819": ; preds = %"$out_of_gas_3818", %"$have_gas_3813" + %"$consume_3820" = sub i64 %"$gasrem_3816", 1 + store i64 %"$consume_3820", i64* @_gasrem, align 8 %key2d = alloca %String, align 8 - %"$gasrem_3844" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3845" = icmp ugt i64 1, %"$gasrem_3844" - br i1 %"$gascmp_3845", label %"$out_of_gas_3846", label %"$have_gas_3847" + %"$gasrem_3821" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3822" = icmp ugt i64 1, %"$gasrem_3821" + br i1 %"$gascmp_3822", label %"$out_of_gas_3823", label %"$have_gas_3824" -"$out_of_gas_3846": ; preds = %"$have_gas_3842" +"$out_of_gas_3823": ; preds = %"$have_gas_3819" call void @_out_of_gas() - br label %"$have_gas_3847" + br label %"$have_gas_3824" -"$have_gas_3847": ; preds = %"$out_of_gas_3846", %"$have_gas_3842" - %"$consume_3848" = sub i64 %"$gasrem_3844", 1 - store i64 %"$consume_3848", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3849", i32 0, i32 0), i32 5 }, %String* %key2d, align 8 - %"$gasrem_3850" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3851" = icmp ugt i64 1, %"$gasrem_3850" - br i1 %"$gascmp_3851", label %"$out_of_gas_3852", label %"$have_gas_3853" +"$have_gas_3824": ; preds = %"$out_of_gas_3823", %"$have_gas_3819" + %"$consume_3825" = sub i64 %"$gasrem_3821", 1 + store i64 %"$consume_3825", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3826", i32 0, i32 0), i32 5 }, %String* %key2d, align 8 + %"$gasrem_3827" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3828" = icmp ugt i64 1, %"$gasrem_3827" + br i1 %"$gascmp_3828", label %"$out_of_gas_3829", label %"$have_gas_3830" -"$out_of_gas_3852": ; preds = %"$have_gas_3847" +"$out_of_gas_3829": ; preds = %"$have_gas_3824" call void @_out_of_gas() - br label %"$have_gas_3853" + br label %"$have_gas_3830" -"$have_gas_3853": ; preds = %"$out_of_gas_3852", %"$have_gas_3847" - %"$consume_3854" = sub i64 %"$gasrem_3850", 1 - store i64 %"$consume_3854", i64* @_gasrem, align 8 +"$have_gas_3830": ; preds = %"$out_of_gas_3829", %"$have_gas_3824" + %"$consume_3831" = sub i64 %"$gasrem_3827", 1 + store i64 %"$consume_3831", i64* @_gasrem, align 8 %v1 = alloca %String, align 8 - %"$gasrem_3855" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3856" = icmp ugt i64 1, %"$gasrem_3855" - br i1 %"$gascmp_3856", label %"$out_of_gas_3857", label %"$have_gas_3858" + %"$gasrem_3832" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3833" = icmp ugt i64 1, %"$gasrem_3832" + br i1 %"$gascmp_3833", label %"$out_of_gas_3834", label %"$have_gas_3835" -"$out_of_gas_3857": ; preds = %"$have_gas_3853" +"$out_of_gas_3834": ; preds = %"$have_gas_3830" call void @_out_of_gas() - br label %"$have_gas_3858" + br label %"$have_gas_3835" -"$have_gas_3858": ; preds = %"$out_of_gas_3857", %"$have_gas_3853" - %"$consume_3859" = sub i64 %"$gasrem_3855", 1 - store i64 %"$consume_3859", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3860", i32 0, i32 0), i32 3 }, %String* %v1, align 8 - %"$gasrem_3861" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3862" = icmp ugt i64 1, %"$gasrem_3861" - br i1 %"$gascmp_3862", label %"$out_of_gas_3863", label %"$have_gas_3864" +"$have_gas_3835": ; preds = %"$out_of_gas_3834", %"$have_gas_3830" + %"$consume_3836" = sub i64 %"$gasrem_3832", 1 + store i64 %"$consume_3836", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3837", i32 0, i32 0), i32 3 }, %String* %v1, align 8 + %"$gasrem_3838" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3839" = icmp ugt i64 1, %"$gasrem_3838" + br i1 %"$gascmp_3839", label %"$out_of_gas_3840", label %"$have_gas_3841" -"$out_of_gas_3863": ; preds = %"$have_gas_3858" +"$out_of_gas_3840": ; preds = %"$have_gas_3835" call void @_out_of_gas() - br label %"$have_gas_3864" + br label %"$have_gas_3841" -"$have_gas_3864": ; preds = %"$out_of_gas_3863", %"$have_gas_3858" - %"$consume_3865" = sub i64 %"$gasrem_3861", 1 - store i64 %"$consume_3865", i64* @_gasrem, align 8 +"$have_gas_3841": ; preds = %"$out_of_gas_3840", %"$have_gas_3835" + %"$consume_3842" = sub i64 %"$gasrem_3838", 1 + store i64 %"$consume_3842", i64* @_gasrem, align 8 %v2 = alloca %String, align 8 - %"$gasrem_3866" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3867" = icmp ugt i64 1, %"$gasrem_3866" - br i1 %"$gascmp_3867", label %"$out_of_gas_3868", label %"$have_gas_3869" + %"$gasrem_3843" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3844" = icmp ugt i64 1, %"$gasrem_3843" + br i1 %"$gascmp_3844", label %"$out_of_gas_3845", label %"$have_gas_3846" -"$out_of_gas_3868": ; preds = %"$have_gas_3864" +"$out_of_gas_3845": ; preds = %"$have_gas_3841" call void @_out_of_gas() - br label %"$have_gas_3869" + br label %"$have_gas_3846" -"$have_gas_3869": ; preds = %"$out_of_gas_3868", %"$have_gas_3864" - %"$consume_3870" = sub i64 %"$gasrem_3866", 1 - store i64 %"$consume_3870", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3871", i32 0, i32 0), i32 3 }, %String* %v2, align 8 - %"$gasrem_3872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3873" = icmp ugt i64 1, %"$gasrem_3872" - br i1 %"$gascmp_3873", label %"$out_of_gas_3874", label %"$have_gas_3875" +"$have_gas_3846": ; preds = %"$out_of_gas_3845", %"$have_gas_3841" + %"$consume_3847" = sub i64 %"$gasrem_3843", 1 + store i64 %"$consume_3847", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3848", i32 0, i32 0), i32 3 }, %String* %v2, align 8 + %"$gasrem_3849" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3850" = icmp ugt i64 1, %"$gasrem_3849" + br i1 %"$gascmp_3850", label %"$out_of_gas_3851", label %"$have_gas_3852" -"$out_of_gas_3874": ; preds = %"$have_gas_3869" +"$out_of_gas_3851": ; preds = %"$have_gas_3846" call void @_out_of_gas() - br label %"$have_gas_3875" + br label %"$have_gas_3852" -"$have_gas_3875": ; preds = %"$out_of_gas_3874", %"$have_gas_3869" - %"$consume_3876" = sub i64 %"$gasrem_3872", 1 - store i64 %"$consume_3876", i64* @_gasrem, align 8 +"$have_gas_3852": ; preds = %"$out_of_gas_3851", %"$have_gas_3846" + %"$consume_3853" = sub i64 %"$gasrem_3849", 1 + store i64 %"$consume_3853", i64* @_gasrem, align 8 %v3 = alloca %String, align 8 - %"$gasrem_3877" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3878" = icmp ugt i64 1, %"$gasrem_3877" - br i1 %"$gascmp_3878", label %"$out_of_gas_3879", label %"$have_gas_3880" + %"$gasrem_3854" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3855" = icmp ugt i64 1, %"$gasrem_3854" + br i1 %"$gascmp_3855", label %"$out_of_gas_3856", label %"$have_gas_3857" -"$out_of_gas_3879": ; preds = %"$have_gas_3875" +"$out_of_gas_3856": ; preds = %"$have_gas_3852" call void @_out_of_gas() - br label %"$have_gas_3880" + br label %"$have_gas_3857" -"$have_gas_3880": ; preds = %"$out_of_gas_3879", %"$have_gas_3875" - %"$consume_3881" = sub i64 %"$gasrem_3877", 1 - store i64 %"$consume_3881", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3882", i32 0, i32 0), i32 3 }, %String* %v3, align 8 - %"$gasrem_3883" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3884" = icmp ugt i64 1, %"$gasrem_3883" - br i1 %"$gascmp_3884", label %"$out_of_gas_3885", label %"$have_gas_3886" +"$have_gas_3857": ; preds = %"$out_of_gas_3856", %"$have_gas_3852" + %"$consume_3858" = sub i64 %"$gasrem_3854", 1 + store i64 %"$consume_3858", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3859", i32 0, i32 0), i32 3 }, %String* %v3, align 8 + %"$gasrem_3860" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3861" = icmp ugt i64 1, %"$gasrem_3860" + br i1 %"$gascmp_3861", label %"$out_of_gas_3862", label %"$have_gas_3863" -"$out_of_gas_3885": ; preds = %"$have_gas_3880" +"$out_of_gas_3862": ; preds = %"$have_gas_3857" call void @_out_of_gas() - br label %"$have_gas_3886" + br label %"$have_gas_3863" -"$have_gas_3886": ; preds = %"$out_of_gas_3885", %"$have_gas_3880" - %"$consume_3887" = sub i64 %"$gasrem_3883", 1 - store i64 %"$consume_3887", i64* @_gasrem, align 8 +"$have_gas_3863": ; preds = %"$out_of_gas_3862", %"$have_gas_3857" + %"$consume_3864" = sub i64 %"$gasrem_3860", 1 + store i64 %"$consume_3864", i64* @_gasrem, align 8 %v4 = alloca %String, align 8 - %"$gasrem_3888" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3889" = icmp ugt i64 1, %"$gasrem_3888" - br i1 %"$gascmp_3889", label %"$out_of_gas_3890", label %"$have_gas_3891" + %"$gasrem_3865" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3866" = icmp ugt i64 1, %"$gasrem_3865" + br i1 %"$gascmp_3866", label %"$out_of_gas_3867", label %"$have_gas_3868" -"$out_of_gas_3890": ; preds = %"$have_gas_3886" +"$out_of_gas_3867": ; preds = %"$have_gas_3863" call void @_out_of_gas() - br label %"$have_gas_3891" + br label %"$have_gas_3868" -"$have_gas_3891": ; preds = %"$out_of_gas_3890", %"$have_gas_3886" - %"$consume_3892" = sub i64 %"$gasrem_3888", 1 - store i64 %"$consume_3892", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3893", i32 0, i32 0), i32 3 }, %String* %v4, align 8 - %"$gasrem_3894" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3895" = icmp ugt i64 1, %"$gasrem_3894" - br i1 %"$gascmp_3895", label %"$out_of_gas_3896", label %"$have_gas_3897" +"$have_gas_3868": ; preds = %"$out_of_gas_3867", %"$have_gas_3863" + %"$consume_3869" = sub i64 %"$gasrem_3865", 1 + store i64 %"$consume_3869", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_3870", i32 0, i32 0), i32 3 }, %String* %v4, align 8 + %"$gasrem_3871" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3872" = icmp ugt i64 1, %"$gasrem_3871" + br i1 %"$gascmp_3872", label %"$out_of_gas_3873", label %"$have_gas_3874" -"$out_of_gas_3896": ; preds = %"$have_gas_3891" +"$out_of_gas_3873": ; preds = %"$have_gas_3868" call void @_out_of_gas() - br label %"$have_gas_3897" + br label %"$have_gas_3874" -"$have_gas_3897": ; preds = %"$out_of_gas_3896", %"$have_gas_3891" - %"$consume_3898" = sub i64 %"$gasrem_3894", 1 - store i64 %"$consume_3898", i64* @_gasrem, align 8 +"$have_gas_3874": ; preds = %"$out_of_gas_3873", %"$have_gas_3868" + %"$consume_3875" = sub i64 %"$gasrem_3871", 1 + store i64 %"$consume_3875", i64* @_gasrem, align 8 %m25 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3899" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3900" = icmp ugt i64 1, %"$gasrem_3899" - br i1 %"$gascmp_3900", label %"$out_of_gas_3901", label %"$have_gas_3902" + %"$gasrem_3876" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3877" = icmp ugt i64 1, %"$gasrem_3876" + br i1 %"$gascmp_3877", label %"$out_of_gas_3878", label %"$have_gas_3879" -"$out_of_gas_3901": ; preds = %"$have_gas_3897" +"$out_of_gas_3878": ; preds = %"$have_gas_3874" call void @_out_of_gas() - br label %"$have_gas_3902" + br label %"$have_gas_3879" -"$have_gas_3902": ; preds = %"$out_of_gas_3901", %"$have_gas_3897" - %"$consume_3903" = sub i64 %"$gasrem_3899", 1 - store i64 %"$consume_3903", i64* @_gasrem, align 8 - %"$execptr_load_3904" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3905" = call i8* @_new_empty_map(i8* %"$execptr_load_3904") - %"$_new_empty_map_3906" = bitcast i8* %"$_new_empty_map_call_3905" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3906", %"Map_String_Map_(String)_(String)"** %m25, align 8 - %"$gasrem_3907" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3908" = icmp ugt i64 1, %"$gasrem_3907" - br i1 %"$gascmp_3908", label %"$out_of_gas_3909", label %"$have_gas_3910" +"$have_gas_3879": ; preds = %"$out_of_gas_3878", %"$have_gas_3874" + %"$consume_3880" = sub i64 %"$gasrem_3876", 1 + store i64 %"$consume_3880", i64* @_gasrem, align 8 + %"$execptr_load_3881" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3882" = call i8* @_new_empty_map(i8* %"$execptr_load_3881") + %"$_new_empty_map_3883" = bitcast i8* %"$_new_empty_map_call_3882" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$_new_empty_map_3883", %"Map_String_Map_(String)_(String)"** %m25, align 8 + %"$gasrem_3884" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3885" = icmp ugt i64 1, %"$gasrem_3884" + br i1 %"$gascmp_3885", label %"$out_of_gas_3886", label %"$have_gas_3887" -"$out_of_gas_3909": ; preds = %"$have_gas_3902" +"$out_of_gas_3886": ; preds = %"$have_gas_3879" call void @_out_of_gas() - br label %"$have_gas_3910" + br label %"$have_gas_3887" -"$have_gas_3910": ; preds = %"$out_of_gas_3909", %"$have_gas_3902" - %"$consume_3911" = sub i64 %"$gasrem_3907", 1 - store i64 %"$consume_3911", i64* @_gasrem, align 8 +"$have_gas_3887": ; preds = %"$out_of_gas_3886", %"$have_gas_3879" + %"$consume_3888" = sub i64 %"$gasrem_3884", 1 + store i64 %"$consume_3888", i64* @_gasrem, align 8 %m16 = alloca %Map_String_String*, align 8 - %"$gasrem_3912" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3913" = icmp ugt i64 1, %"$gasrem_3912" - br i1 %"$gascmp_3913", label %"$out_of_gas_3914", label %"$have_gas_3915" + %"$gasrem_3889" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3890" = icmp ugt i64 1, %"$gasrem_3889" + br i1 %"$gascmp_3890", label %"$out_of_gas_3891", label %"$have_gas_3892" -"$out_of_gas_3914": ; preds = %"$have_gas_3910" +"$out_of_gas_3891": ; preds = %"$have_gas_3887" call void @_out_of_gas() - br label %"$have_gas_3915" + br label %"$have_gas_3892" -"$have_gas_3915": ; preds = %"$out_of_gas_3914", %"$have_gas_3910" - %"$consume_3916" = sub i64 %"$gasrem_3912", 1 - store i64 %"$consume_3916", i64* @_gasrem, align 8 - %"$execptr_load_3917" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_3918" = call i8* @_new_empty_map(i8* %"$execptr_load_3917") - %"$_new_empty_map_3919" = bitcast i8* %"$_new_empty_map_call_3918" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_3919", %Map_String_String** %m16, align 8 - %"$gasrem_3920" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3921" = icmp ugt i64 1, %"$gasrem_3920" - br i1 %"$gascmp_3921", label %"$out_of_gas_3922", label %"$have_gas_3923" +"$have_gas_3892": ; preds = %"$out_of_gas_3891", %"$have_gas_3887" + %"$consume_3893" = sub i64 %"$gasrem_3889", 1 + store i64 %"$consume_3893", i64* @_gasrem, align 8 + %"$execptr_load_3894" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_3895" = call i8* @_new_empty_map(i8* %"$execptr_load_3894") + %"$_new_empty_map_3896" = bitcast i8* %"$_new_empty_map_call_3895" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_3896", %Map_String_String** %m16, align 8 + %"$gasrem_3897" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3898" = icmp ugt i64 1, %"$gasrem_3897" + br i1 %"$gascmp_3898", label %"$out_of_gas_3899", label %"$have_gas_3900" -"$out_of_gas_3922": ; preds = %"$have_gas_3915" +"$out_of_gas_3899": ; preds = %"$have_gas_3892" call void @_out_of_gas() - br label %"$have_gas_3923" + br label %"$have_gas_3900" -"$have_gas_3923": ; preds = %"$out_of_gas_3922", %"$have_gas_3915" - %"$consume_3924" = sub i64 %"$gasrem_3920", 1 - store i64 %"$consume_3924", i64* @_gasrem, align 8 +"$have_gas_3900": ; preds = %"$out_of_gas_3899", %"$have_gas_3892" + %"$consume_3901" = sub i64 %"$gasrem_3897", 1 + store i64 %"$consume_3901", i64* @_gasrem, align 8 %m2_full = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$gasrem_3925" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3926" = icmp ugt i64 1, %"$gasrem_3925" - br i1 %"$gascmp_3926", label %"$out_of_gas_3927", label %"$have_gas_3928" + %"$gasrem_3902" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3903" = icmp ugt i64 1, %"$gasrem_3902" + br i1 %"$gascmp_3903", label %"$out_of_gas_3904", label %"$have_gas_3905" -"$out_of_gas_3927": ; preds = %"$have_gas_3923" +"$out_of_gas_3904": ; preds = %"$have_gas_3900" call void @_out_of_gas() - br label %"$have_gas_3928" + br label %"$have_gas_3905" -"$have_gas_3928": ; preds = %"$out_of_gas_3927", %"$have_gas_3923" - %"$consume_3929" = sub i64 %"$gasrem_3925", 1 - store i64 %"$consume_3929", i64* @_gasrem, align 8 +"$have_gas_3905": ; preds = %"$out_of_gas_3904", %"$have_gas_3900" + %"$consume_3906" = sub i64 %"$gasrem_3902", 1 + store i64 %"$consume_3906", i64* @_gasrem, align 8 %m21 = alloca %Map_String_String*, align 8 - %"$m1_3930" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3930_3931" = bitcast %Map_String_String* %"$m1_3930" to i8* - %"$_lengthof_call_3932" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3930_3931") - %"$gasadd_3933" = add i64 1, %"$_lengthof_call_3932" - %"$gasrem_3934" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3935" = icmp ugt i64 %"$gasadd_3933", %"$gasrem_3934" - br i1 %"$gascmp_3935", label %"$out_of_gas_3936", label %"$have_gas_3937" - -"$out_of_gas_3936": ; preds = %"$have_gas_3928" - call void @_out_of_gas() - br label %"$have_gas_3937" - -"$have_gas_3937": ; preds = %"$out_of_gas_3936", %"$have_gas_3928" - %"$consume_3938" = sub i64 %"$gasrem_3934", %"$gasadd_3933" - store i64 %"$consume_3938", i64* @_gasrem, align 8 - %"$execptr_load_3939" = load i8*, i8** @_execptr, align 8 - %"$m1_3940" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3940_3941" = bitcast %Map_String_String* %"$m1_3940" to i8* - %"$put_key2a_3942" = alloca %String, align 8 - %"$key2a_3943" = load %String, %String* %key2a, align 8 - store %String %"$key2a_3943", %String* %"$put_key2a_3942", align 8 - %"$$put_key2a_3942_3944" = bitcast %String* %"$put_key2a_3942" to i8* - %"$put_v1_3945" = alloca %String, align 8 - %"$v1_3946" = load %String, %String* %v1, align 8 - store %String %"$v1_3946", %String* %"$put_v1_3945", align 8 - %"$$put_v1_3945_3947" = bitcast %String* %"$put_v1_3945" to i8* - %"$put_call_3948" = call i8* @_put(i8* %"$execptr_load_3939", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3940_3941", i8* %"$$put_key2a_3942_3944", i8* %"$$put_v1_3945_3947") - %"$put_3949" = bitcast i8* %"$put_call_3948" to %Map_String_String* - store %Map_String_String* %"$put_3949", %Map_String_String** %m21, align 8 - %"$gasrem_3950" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3951" = icmp ugt i64 1, %"$gasrem_3950" - br i1 %"$gascmp_3951", label %"$out_of_gas_3952", label %"$have_gas_3953" - -"$out_of_gas_3952": ; preds = %"$have_gas_3937" - call void @_out_of_gas() - br label %"$have_gas_3953" - -"$have_gas_3953": ; preds = %"$out_of_gas_3952", %"$have_gas_3937" - %"$consume_3954" = sub i64 %"$gasrem_3950", 1 - store i64 %"$consume_3954", i64* @_gasrem, align 8 + %"$m1_3907" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3907_3908" = bitcast %Map_String_String* %"$m1_3907" to i8* + %"$_lengthof_call_3909" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3907_3908") + %"$gasadd_3910" = add i64 1, %"$_lengthof_call_3909" + %"$gasrem_3911" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3912" = icmp ugt i64 %"$gasadd_3910", %"$gasrem_3911" + br i1 %"$gascmp_3912", label %"$out_of_gas_3913", label %"$have_gas_3914" + +"$out_of_gas_3913": ; preds = %"$have_gas_3905" + call void @_out_of_gas() + br label %"$have_gas_3914" + +"$have_gas_3914": ; preds = %"$out_of_gas_3913", %"$have_gas_3905" + %"$consume_3915" = sub i64 %"$gasrem_3911", %"$gasadd_3910" + store i64 %"$consume_3915", i64* @_gasrem, align 8 + %"$execptr_load_3916" = load i8*, i8** @_execptr, align 8 + %"$m1_3917" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3917_3918" = bitcast %Map_String_String* %"$m1_3917" to i8* + %"$put_key2a_3919" = alloca %String, align 8 + %"$key2a_3920" = load %String, %String* %key2a, align 8 + store %String %"$key2a_3920", %String* %"$put_key2a_3919", align 8 + %"$$put_key2a_3919_3921" = bitcast %String* %"$put_key2a_3919" to i8* + %"$put_v1_3922" = alloca %String, align 8 + %"$v1_3923" = load %String, %String* %v1, align 8 + store %String %"$v1_3923", %String* %"$put_v1_3922", align 8 + %"$$put_v1_3922_3924" = bitcast %String* %"$put_v1_3922" to i8* + %"$put_call_3925" = call i8* @_put(i8* %"$execptr_load_3916", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3917_3918", i8* %"$$put_key2a_3919_3921", i8* %"$$put_v1_3922_3924") + %"$put_3926" = bitcast i8* %"$put_call_3925" to %Map_String_String* + store %Map_String_String* %"$put_3926", %Map_String_String** %m21, align 8 + %"$gasrem_3927" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3928" = icmp ugt i64 1, %"$gasrem_3927" + br i1 %"$gascmp_3928", label %"$out_of_gas_3929", label %"$have_gas_3930" + +"$out_of_gas_3929": ; preds = %"$have_gas_3914" + call void @_out_of_gas() + br label %"$have_gas_3930" + +"$have_gas_3930": ; preds = %"$out_of_gas_3929", %"$have_gas_3914" + %"$consume_3931" = sub i64 %"$gasrem_3927", 1 + store i64 %"$consume_3931", i64* @_gasrem, align 8 %m22 = alloca %Map_String_String*, align 8 - %"$m1_3955" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3955_3956" = bitcast %Map_String_String* %"$m1_3955" to i8* - %"$_lengthof_call_3957" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3955_3956") - %"$gasadd_3958" = add i64 1, %"$_lengthof_call_3957" - %"$gasrem_3959" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3960" = icmp ugt i64 %"$gasadd_3958", %"$gasrem_3959" - br i1 %"$gascmp_3960", label %"$out_of_gas_3961", label %"$have_gas_3962" - -"$out_of_gas_3961": ; preds = %"$have_gas_3953" - call void @_out_of_gas() - br label %"$have_gas_3962" - -"$have_gas_3962": ; preds = %"$out_of_gas_3961", %"$have_gas_3953" - %"$consume_3963" = sub i64 %"$gasrem_3959", %"$gasadd_3958" - store i64 %"$consume_3963", i64* @_gasrem, align 8 - %"$execptr_load_3964" = load i8*, i8** @_execptr, align 8 - %"$m1_3965" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3965_3966" = bitcast %Map_String_String* %"$m1_3965" to i8* - %"$put_key2b_3967" = alloca %String, align 8 - %"$key2b_3968" = load %String, %String* %key2b, align 8 - store %String %"$key2b_3968", %String* %"$put_key2b_3967", align 8 - %"$$put_key2b_3967_3969" = bitcast %String* %"$put_key2b_3967" to i8* - %"$put_v2_3970" = alloca %String, align 8 - %"$v2_3971" = load %String, %String* %v2, align 8 - store %String %"$v2_3971", %String* %"$put_v2_3970", align 8 - %"$$put_v2_3970_3972" = bitcast %String* %"$put_v2_3970" to i8* - %"$put_call_3973" = call i8* @_put(i8* %"$execptr_load_3964", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3965_3966", i8* %"$$put_key2b_3967_3969", i8* %"$$put_v2_3970_3972") - %"$put_3974" = bitcast i8* %"$put_call_3973" to %Map_String_String* - store %Map_String_String* %"$put_3974", %Map_String_String** %m22, align 8 - %"$gasrem_3975" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3976" = icmp ugt i64 1, %"$gasrem_3975" - br i1 %"$gascmp_3976", label %"$out_of_gas_3977", label %"$have_gas_3978" - -"$out_of_gas_3977": ; preds = %"$have_gas_3962" - call void @_out_of_gas() - br label %"$have_gas_3978" - -"$have_gas_3978": ; preds = %"$out_of_gas_3977", %"$have_gas_3962" - %"$consume_3979" = sub i64 %"$gasrem_3975", 1 - store i64 %"$consume_3979", i64* @_gasrem, align 8 + %"$m1_3932" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3932_3933" = bitcast %Map_String_String* %"$m1_3932" to i8* + %"$_lengthof_call_3934" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3932_3933") + %"$gasadd_3935" = add i64 1, %"$_lengthof_call_3934" + %"$gasrem_3936" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3937" = icmp ugt i64 %"$gasadd_3935", %"$gasrem_3936" + br i1 %"$gascmp_3937", label %"$out_of_gas_3938", label %"$have_gas_3939" + +"$out_of_gas_3938": ; preds = %"$have_gas_3930" + call void @_out_of_gas() + br label %"$have_gas_3939" + +"$have_gas_3939": ; preds = %"$out_of_gas_3938", %"$have_gas_3930" + %"$consume_3940" = sub i64 %"$gasrem_3936", %"$gasadd_3935" + store i64 %"$consume_3940", i64* @_gasrem, align 8 + %"$execptr_load_3941" = load i8*, i8** @_execptr, align 8 + %"$m1_3942" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3942_3943" = bitcast %Map_String_String* %"$m1_3942" to i8* + %"$put_key2b_3944" = alloca %String, align 8 + %"$key2b_3945" = load %String, %String* %key2b, align 8 + store %String %"$key2b_3945", %String* %"$put_key2b_3944", align 8 + %"$$put_key2b_3944_3946" = bitcast %String* %"$put_key2b_3944" to i8* + %"$put_v2_3947" = alloca %String, align 8 + %"$v2_3948" = load %String, %String* %v2, align 8 + store %String %"$v2_3948", %String* %"$put_v2_3947", align 8 + %"$$put_v2_3947_3949" = bitcast %String* %"$put_v2_3947" to i8* + %"$put_call_3950" = call i8* @_put(i8* %"$execptr_load_3941", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3942_3943", i8* %"$$put_key2b_3944_3946", i8* %"$$put_v2_3947_3949") + %"$put_3951" = bitcast i8* %"$put_call_3950" to %Map_String_String* + store %Map_String_String* %"$put_3951", %Map_String_String** %m22, align 8 + %"$gasrem_3952" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3953" = icmp ugt i64 1, %"$gasrem_3952" + br i1 %"$gascmp_3953", label %"$out_of_gas_3954", label %"$have_gas_3955" + +"$out_of_gas_3954": ; preds = %"$have_gas_3939" + call void @_out_of_gas() + br label %"$have_gas_3955" + +"$have_gas_3955": ; preds = %"$out_of_gas_3954", %"$have_gas_3939" + %"$consume_3956" = sub i64 %"$gasrem_3952", 1 + store i64 %"$consume_3956", i64* @_gasrem, align 8 %m23 = alloca %Map_String_String*, align 8 - %"$m1_3980" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3980_3981" = bitcast %Map_String_String* %"$m1_3980" to i8* - %"$_lengthof_call_3982" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3980_3981") - %"$gasadd_3983" = add i64 1, %"$_lengthof_call_3982" - %"$gasrem_3984" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3985" = icmp ugt i64 %"$gasadd_3983", %"$gasrem_3984" - br i1 %"$gascmp_3985", label %"$out_of_gas_3986", label %"$have_gas_3987" - -"$out_of_gas_3986": ; preds = %"$have_gas_3978" - call void @_out_of_gas() - br label %"$have_gas_3987" - -"$have_gas_3987": ; preds = %"$out_of_gas_3986", %"$have_gas_3978" - %"$consume_3988" = sub i64 %"$gasrem_3984", %"$gasadd_3983" - store i64 %"$consume_3988", i64* @_gasrem, align 8 - %"$execptr_load_3989" = load i8*, i8** @_execptr, align 8 - %"$m1_3990" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_3990_3991" = bitcast %Map_String_String* %"$m1_3990" to i8* - %"$put_key2c_3992" = alloca %String, align 8 - %"$key2c_3993" = load %String, %String* %key2c, align 8 - store %String %"$key2c_3993", %String* %"$put_key2c_3992", align 8 - %"$$put_key2c_3992_3994" = bitcast %String* %"$put_key2c_3992" to i8* - %"$put_v3_3995" = alloca %String, align 8 - %"$v3_3996" = load %String, %String* %v3, align 8 - store %String %"$v3_3996", %String* %"$put_v3_3995", align 8 - %"$$put_v3_3995_3997" = bitcast %String* %"$put_v3_3995" to i8* - %"$put_call_3998" = call i8* @_put(i8* %"$execptr_load_3989", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_3990_3991", i8* %"$$put_key2c_3992_3994", i8* %"$$put_v3_3995_3997") - %"$put_3999" = bitcast i8* %"$put_call_3998" to %Map_String_String* - store %Map_String_String* %"$put_3999", %Map_String_String** %m23, align 8 - %"$gasrem_4000" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4001" = icmp ugt i64 1, %"$gasrem_4000" - br i1 %"$gascmp_4001", label %"$out_of_gas_4002", label %"$have_gas_4003" - -"$out_of_gas_4002": ; preds = %"$have_gas_3987" - call void @_out_of_gas() - br label %"$have_gas_4003" - -"$have_gas_4003": ; preds = %"$out_of_gas_4002", %"$have_gas_3987" - %"$consume_4004" = sub i64 %"$gasrem_4000", 1 - store i64 %"$consume_4004", i64* @_gasrem, align 8 + %"$m1_3957" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3957_3958" = bitcast %Map_String_String* %"$m1_3957" to i8* + %"$_lengthof_call_3959" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3957_3958") + %"$gasadd_3960" = add i64 1, %"$_lengthof_call_3959" + %"$gasrem_3961" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3962" = icmp ugt i64 %"$gasadd_3960", %"$gasrem_3961" + br i1 %"$gascmp_3962", label %"$out_of_gas_3963", label %"$have_gas_3964" + +"$out_of_gas_3963": ; preds = %"$have_gas_3955" + call void @_out_of_gas() + br label %"$have_gas_3964" + +"$have_gas_3964": ; preds = %"$out_of_gas_3963", %"$have_gas_3955" + %"$consume_3965" = sub i64 %"$gasrem_3961", %"$gasadd_3960" + store i64 %"$consume_3965", i64* @_gasrem, align 8 + %"$execptr_load_3966" = load i8*, i8** @_execptr, align 8 + %"$m1_3967" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3967_3968" = bitcast %Map_String_String* %"$m1_3967" to i8* + %"$put_key2c_3969" = alloca %String, align 8 + %"$key2c_3970" = load %String, %String* %key2c, align 8 + store %String %"$key2c_3970", %String* %"$put_key2c_3969", align 8 + %"$$put_key2c_3969_3971" = bitcast %String* %"$put_key2c_3969" to i8* + %"$put_v3_3972" = alloca %String, align 8 + %"$v3_3973" = load %String, %String* %v3, align 8 + store %String %"$v3_3973", %String* %"$put_v3_3972", align 8 + %"$$put_v3_3972_3974" = bitcast %String* %"$put_v3_3972" to i8* + %"$put_call_3975" = call i8* @_put(i8* %"$execptr_load_3966", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3967_3968", i8* %"$$put_key2c_3969_3971", i8* %"$$put_v3_3972_3974") + %"$put_3976" = bitcast i8* %"$put_call_3975" to %Map_String_String* + store %Map_String_String* %"$put_3976", %Map_String_String** %m23, align 8 + %"$gasrem_3977" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3978" = icmp ugt i64 1, %"$gasrem_3977" + br i1 %"$gascmp_3978", label %"$out_of_gas_3979", label %"$have_gas_3980" + +"$out_of_gas_3979": ; preds = %"$have_gas_3964" + call void @_out_of_gas() + br label %"$have_gas_3980" + +"$have_gas_3980": ; preds = %"$out_of_gas_3979", %"$have_gas_3964" + %"$consume_3981" = sub i64 %"$gasrem_3977", 1 + store i64 %"$consume_3981", i64* @_gasrem, align 8 %m24 = alloca %Map_String_String*, align 8 - %"$m1_4005" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_4005_4006" = bitcast %Map_String_String* %"$m1_4005" to i8* - %"$_lengthof_call_4007" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_4005_4006") - %"$gasadd_4008" = add i64 1, %"$_lengthof_call_4007" - %"$gasrem_4009" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4010" = icmp ugt i64 %"$gasadd_4008", %"$gasrem_4009" - br i1 %"$gascmp_4010", label %"$out_of_gas_4011", label %"$have_gas_4012" - -"$out_of_gas_4011": ; preds = %"$have_gas_4003" - call void @_out_of_gas() - br label %"$have_gas_4012" - -"$have_gas_4012": ; preds = %"$out_of_gas_4011", %"$have_gas_4003" - %"$consume_4013" = sub i64 %"$gasrem_4009", %"$gasadd_4008" - store i64 %"$consume_4013", i64* @_gasrem, align 8 - %"$execptr_load_4014" = load i8*, i8** @_execptr, align 8 - %"$m1_4015" = load %Map_String_String*, %Map_String_String** %m16, align 8 - %"$$m1_4015_4016" = bitcast %Map_String_String* %"$m1_4015" to i8* - %"$put_key2d_4017" = alloca %String, align 8 - %"$key2d_4018" = load %String, %String* %key2d, align 8 - store %String %"$key2d_4018", %String* %"$put_key2d_4017", align 8 - %"$$put_key2d_4017_4019" = bitcast %String* %"$put_key2d_4017" to i8* - %"$put_v4_4020" = alloca %String, align 8 - %"$v4_4021" = load %String, %String* %v4, align 8 - store %String %"$v4_4021", %String* %"$put_v4_4020", align 8 - %"$$put_v4_4020_4022" = bitcast %String* %"$put_v4_4020" to i8* - %"$put_call_4023" = call i8* @_put(i8* %"$execptr_load_4014", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_4015_4016", i8* %"$$put_key2d_4017_4019", i8* %"$$put_v4_4020_4022") - %"$put_4024" = bitcast i8* %"$put_call_4023" to %Map_String_String* - store %Map_String_String* %"$put_4024", %Map_String_String** %m24, align 8 - %"$gasrem_4025" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4026" = icmp ugt i64 1, %"$gasrem_4025" - br i1 %"$gascmp_4026", label %"$out_of_gas_4027", label %"$have_gas_4028" - -"$out_of_gas_4027": ; preds = %"$have_gas_4012" - call void @_out_of_gas() - br label %"$have_gas_4028" - -"$have_gas_4028": ; preds = %"$out_of_gas_4027", %"$have_gas_4012" - %"$consume_4029" = sub i64 %"$gasrem_4025", 1 - store i64 %"$consume_4029", i64* @_gasrem, align 8 + %"$m1_3982" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3982_3983" = bitcast %Map_String_String* %"$m1_3982" to i8* + %"$_lengthof_call_3984" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3982_3983") + %"$gasadd_3985" = add i64 1, %"$_lengthof_call_3984" + %"$gasrem_3986" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3987" = icmp ugt i64 %"$gasadd_3985", %"$gasrem_3986" + br i1 %"$gascmp_3987", label %"$out_of_gas_3988", label %"$have_gas_3989" + +"$out_of_gas_3988": ; preds = %"$have_gas_3980" + call void @_out_of_gas() + br label %"$have_gas_3989" + +"$have_gas_3989": ; preds = %"$out_of_gas_3988", %"$have_gas_3980" + %"$consume_3990" = sub i64 %"$gasrem_3986", %"$gasadd_3985" + store i64 %"$consume_3990", i64* @_gasrem, align 8 + %"$execptr_load_3991" = load i8*, i8** @_execptr, align 8 + %"$m1_3992" = load %Map_String_String*, %Map_String_String** %m16, align 8 + %"$$m1_3992_3993" = bitcast %Map_String_String* %"$m1_3992" to i8* + %"$put_key2d_3994" = alloca %String, align 8 + %"$key2d_3995" = load %String, %String* %key2d, align 8 + store %String %"$key2d_3995", %String* %"$put_key2d_3994", align 8 + %"$$put_key2d_3994_3996" = bitcast %String* %"$put_key2d_3994" to i8* + %"$put_v4_3997" = alloca %String, align 8 + %"$v4_3998" = load %String, %String* %v4, align 8 + store %String %"$v4_3998", %String* %"$put_v4_3997", align 8 + %"$$put_v4_3997_3999" = bitcast %String* %"$put_v4_3997" to i8* + %"$put_call_4000" = call i8* @_put(i8* %"$execptr_load_3991", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_3992_3993", i8* %"$$put_key2d_3994_3996", i8* %"$$put_v4_3997_3999") + %"$put_4001" = bitcast i8* %"$put_call_4000" to %Map_String_String* + store %Map_String_String* %"$put_4001", %Map_String_String** %m24, align 8 + %"$gasrem_4002" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4003" = icmp ugt i64 1, %"$gasrem_4002" + br i1 %"$gascmp_4003", label %"$out_of_gas_4004", label %"$have_gas_4005" + +"$out_of_gas_4004": ; preds = %"$have_gas_3989" + call void @_out_of_gas() + br label %"$have_gas_4005" + +"$have_gas_4005": ; preds = %"$out_of_gas_4004", %"$have_gas_3989" + %"$consume_4006" = sub i64 %"$gasrem_4002", 1 + store i64 %"$consume_4006", i64* @_gasrem, align 8 %m11 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m2_4030" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 - %"$$m2_4030_4031" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4030" to i8* - %"$_lengthof_call_4032" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m2_4030_4031") - %"$gasadd_4033" = add i64 1, %"$_lengthof_call_4032" - %"$gasrem_4034" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4035" = icmp ugt i64 %"$gasadd_4033", %"$gasrem_4034" - br i1 %"$gascmp_4035", label %"$out_of_gas_4036", label %"$have_gas_4037" - -"$out_of_gas_4036": ; preds = %"$have_gas_4028" - call void @_out_of_gas() - br label %"$have_gas_4037" - -"$have_gas_4037": ; preds = %"$out_of_gas_4036", %"$have_gas_4028" - %"$consume_4038" = sub i64 %"$gasrem_4034", %"$gasadd_4033" - store i64 %"$consume_4038", i64* @_gasrem, align 8 - %"$execptr_load_4039" = load i8*, i8** @_execptr, align 8 - %"$m2_4040" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 - %"$$m2_4040_4041" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4040" to i8* - %"$put_key1a_4042" = alloca %String, align 8 - %"$key1a_4043" = load %String, %String* %key1a, align 8 - store %String %"$key1a_4043", %String* %"$put_key1a_4042", align 8 - %"$$put_key1a_4042_4044" = bitcast %String* %"$put_key1a_4042" to i8* - %"$m21_4045" = load %Map_String_String*, %Map_String_String** %m21, align 8 - %"$$m21_4045_4046" = bitcast %Map_String_String* %"$m21_4045" to i8* - %"$put_call_4047" = call i8* @_put(i8* %"$execptr_load_4039", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m2_4040_4041", i8* %"$$put_key1a_4042_4044", i8* %"$$m21_4045_4046") - %"$put_4048" = bitcast i8* %"$put_call_4047" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_4048", %"Map_String_Map_(String)_(String)"** %m11, align 8 - %"$gasrem_4049" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4050" = icmp ugt i64 1, %"$gasrem_4049" - br i1 %"$gascmp_4050", label %"$out_of_gas_4051", label %"$have_gas_4052" - -"$out_of_gas_4051": ; preds = %"$have_gas_4037" - call void @_out_of_gas() - br label %"$have_gas_4052" - -"$have_gas_4052": ; preds = %"$out_of_gas_4051", %"$have_gas_4037" - %"$consume_4053" = sub i64 %"$gasrem_4049", 1 - store i64 %"$consume_4053", i64* @_gasrem, align 8 + %"$m2_4007" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 + %"$$m2_4007_4008" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4007" to i8* + %"$_lengthof_call_4009" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m2_4007_4008") + %"$gasadd_4010" = add i64 1, %"$_lengthof_call_4009" + %"$gasrem_4011" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4012" = icmp ugt i64 %"$gasadd_4010", %"$gasrem_4011" + br i1 %"$gascmp_4012", label %"$out_of_gas_4013", label %"$have_gas_4014" + +"$out_of_gas_4013": ; preds = %"$have_gas_4005" + call void @_out_of_gas() + br label %"$have_gas_4014" + +"$have_gas_4014": ; preds = %"$out_of_gas_4013", %"$have_gas_4005" + %"$consume_4015" = sub i64 %"$gasrem_4011", %"$gasadd_4010" + store i64 %"$consume_4015", i64* @_gasrem, align 8 + %"$execptr_load_4016" = load i8*, i8** @_execptr, align 8 + %"$m2_4017" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m25, align 8 + %"$$m2_4017_4018" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_4017" to i8* + %"$put_key1a_4019" = alloca %String, align 8 + %"$key1a_4020" = load %String, %String* %key1a, align 8 + store %String %"$key1a_4020", %String* %"$put_key1a_4019", align 8 + %"$$put_key1a_4019_4021" = bitcast %String* %"$put_key1a_4019" to i8* + %"$m21_4022" = load %Map_String_String*, %Map_String_String** %m21, align 8 + %"$$m21_4022_4023" = bitcast %Map_String_String* %"$m21_4022" to i8* + %"$put_call_4024" = call i8* @_put(i8* %"$execptr_load_4016", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m2_4017_4018", i8* %"$$put_key1a_4019_4021", i8* %"$$m21_4022_4023") + %"$put_4025" = bitcast i8* %"$put_call_4024" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4025", %"Map_String_Map_(String)_(String)"** %m11, align 8 + %"$gasrem_4026" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4027" = icmp ugt i64 1, %"$gasrem_4026" + br i1 %"$gascmp_4027", label %"$out_of_gas_4028", label %"$have_gas_4029" + +"$out_of_gas_4028": ; preds = %"$have_gas_4014" + call void @_out_of_gas() + br label %"$have_gas_4029" + +"$have_gas_4029": ; preds = %"$out_of_gas_4028", %"$have_gas_4014" + %"$consume_4030" = sub i64 %"$gasrem_4026", 1 + store i64 %"$consume_4030", i64* @_gasrem, align 8 %m12 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m11_4054" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 - %"$$m11_4054_4055" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4054" to i8* - %"$_lengthof_call_4056" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m11_4054_4055") - %"$gasadd_4057" = add i64 1, %"$_lengthof_call_4056" - %"$gasrem_4058" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4059" = icmp ugt i64 %"$gasadd_4057", %"$gasrem_4058" - br i1 %"$gascmp_4059", label %"$out_of_gas_4060", label %"$have_gas_4061" - -"$out_of_gas_4060": ; preds = %"$have_gas_4052" - call void @_out_of_gas() - br label %"$have_gas_4061" - -"$have_gas_4061": ; preds = %"$out_of_gas_4060", %"$have_gas_4052" - %"$consume_4062" = sub i64 %"$gasrem_4058", %"$gasadd_4057" - store i64 %"$consume_4062", i64* @_gasrem, align 8 - %"$execptr_load_4063" = load i8*, i8** @_execptr, align 8 - %"$m11_4064" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 - %"$$m11_4064_4065" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4064" to i8* - %"$put_key1b_4066" = alloca %String, align 8 - %"$key1b_4067" = load %String, %String* %key1b, align 8 - store %String %"$key1b_4067", %String* %"$put_key1b_4066", align 8 - %"$$put_key1b_4066_4068" = bitcast %String* %"$put_key1b_4066" to i8* - %"$m22_4069" = load %Map_String_String*, %Map_String_String** %m22, align 8 - %"$$m22_4069_4070" = bitcast %Map_String_String* %"$m22_4069" to i8* - %"$put_call_4071" = call i8* @_put(i8* %"$execptr_load_4063", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m11_4064_4065", i8* %"$$put_key1b_4066_4068", i8* %"$$m22_4069_4070") - %"$put_4072" = bitcast i8* %"$put_call_4071" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_4072", %"Map_String_Map_(String)_(String)"** %m12, align 8 - %"$gasrem_4073" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4074" = icmp ugt i64 1, %"$gasrem_4073" - br i1 %"$gascmp_4074", label %"$out_of_gas_4075", label %"$have_gas_4076" - -"$out_of_gas_4075": ; preds = %"$have_gas_4061" - call void @_out_of_gas() - br label %"$have_gas_4076" - -"$have_gas_4076": ; preds = %"$out_of_gas_4075", %"$have_gas_4061" - %"$consume_4077" = sub i64 %"$gasrem_4073", 1 - store i64 %"$consume_4077", i64* @_gasrem, align 8 + %"$m11_4031" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 + %"$$m11_4031_4032" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4031" to i8* + %"$_lengthof_call_4033" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m11_4031_4032") + %"$gasadd_4034" = add i64 1, %"$_lengthof_call_4033" + %"$gasrem_4035" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4036" = icmp ugt i64 %"$gasadd_4034", %"$gasrem_4035" + br i1 %"$gascmp_4036", label %"$out_of_gas_4037", label %"$have_gas_4038" + +"$out_of_gas_4037": ; preds = %"$have_gas_4029" + call void @_out_of_gas() + br label %"$have_gas_4038" + +"$have_gas_4038": ; preds = %"$out_of_gas_4037", %"$have_gas_4029" + %"$consume_4039" = sub i64 %"$gasrem_4035", %"$gasadd_4034" + store i64 %"$consume_4039", i64* @_gasrem, align 8 + %"$execptr_load_4040" = load i8*, i8** @_execptr, align 8 + %"$m11_4041" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m11, align 8 + %"$$m11_4041_4042" = bitcast %"Map_String_Map_(String)_(String)"* %"$m11_4041" to i8* + %"$put_key1b_4043" = alloca %String, align 8 + %"$key1b_4044" = load %String, %String* %key1b, align 8 + store %String %"$key1b_4044", %String* %"$put_key1b_4043", align 8 + %"$$put_key1b_4043_4045" = bitcast %String* %"$put_key1b_4043" to i8* + %"$m22_4046" = load %Map_String_String*, %Map_String_String** %m22, align 8 + %"$$m22_4046_4047" = bitcast %Map_String_String* %"$m22_4046" to i8* + %"$put_call_4048" = call i8* @_put(i8* %"$execptr_load_4040", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m11_4041_4042", i8* %"$$put_key1b_4043_4045", i8* %"$$m22_4046_4047") + %"$put_4049" = bitcast i8* %"$put_call_4048" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4049", %"Map_String_Map_(String)_(String)"** %m12, align 8 + %"$gasrem_4050" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4051" = icmp ugt i64 1, %"$gasrem_4050" + br i1 %"$gascmp_4051", label %"$out_of_gas_4052", label %"$have_gas_4053" + +"$out_of_gas_4052": ; preds = %"$have_gas_4038" + call void @_out_of_gas() + br label %"$have_gas_4053" + +"$have_gas_4053": ; preds = %"$out_of_gas_4052", %"$have_gas_4038" + %"$consume_4054" = sub i64 %"$gasrem_4050", 1 + store i64 %"$consume_4054", i64* @_gasrem, align 8 %m13 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m12_4078" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 - %"$$m12_4078_4079" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4078" to i8* - %"$_lengthof_call_4080" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m12_4078_4079") - %"$gasadd_4081" = add i64 1, %"$_lengthof_call_4080" - %"$gasrem_4082" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4083" = icmp ugt i64 %"$gasadd_4081", %"$gasrem_4082" - br i1 %"$gascmp_4083", label %"$out_of_gas_4084", label %"$have_gas_4085" - -"$out_of_gas_4084": ; preds = %"$have_gas_4076" - call void @_out_of_gas() - br label %"$have_gas_4085" - -"$have_gas_4085": ; preds = %"$out_of_gas_4084", %"$have_gas_4076" - %"$consume_4086" = sub i64 %"$gasrem_4082", %"$gasadd_4081" - store i64 %"$consume_4086", i64* @_gasrem, align 8 - %"$execptr_load_4087" = load i8*, i8** @_execptr, align 8 - %"$m12_4088" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 - %"$$m12_4088_4089" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4088" to i8* - %"$put_key1c_4090" = alloca %String, align 8 - %"$key1c_4091" = load %String, %String* %key1c, align 8 - store %String %"$key1c_4091", %String* %"$put_key1c_4090", align 8 - %"$$put_key1c_4090_4092" = bitcast %String* %"$put_key1c_4090" to i8* - %"$m23_4093" = load %Map_String_String*, %Map_String_String** %m23, align 8 - %"$$m23_4093_4094" = bitcast %Map_String_String* %"$m23_4093" to i8* - %"$put_call_4095" = call i8* @_put(i8* %"$execptr_load_4087", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m12_4088_4089", i8* %"$$put_key1c_4090_4092", i8* %"$$m23_4093_4094") - %"$put_4096" = bitcast i8* %"$put_call_4095" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_4096", %"Map_String_Map_(String)_(String)"** %m13, align 8 - %"$gasrem_4097" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4098" = icmp ugt i64 1, %"$gasrem_4097" - br i1 %"$gascmp_4098", label %"$out_of_gas_4099", label %"$have_gas_4100" - -"$out_of_gas_4099": ; preds = %"$have_gas_4085" - call void @_out_of_gas() - br label %"$have_gas_4100" - -"$have_gas_4100": ; preds = %"$out_of_gas_4099", %"$have_gas_4085" - %"$consume_4101" = sub i64 %"$gasrem_4097", 1 - store i64 %"$consume_4101", i64* @_gasrem, align 8 + %"$m12_4055" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 + %"$$m12_4055_4056" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4055" to i8* + %"$_lengthof_call_4057" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m12_4055_4056") + %"$gasadd_4058" = add i64 1, %"$_lengthof_call_4057" + %"$gasrem_4059" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4060" = icmp ugt i64 %"$gasadd_4058", %"$gasrem_4059" + br i1 %"$gascmp_4060", label %"$out_of_gas_4061", label %"$have_gas_4062" + +"$out_of_gas_4061": ; preds = %"$have_gas_4053" + call void @_out_of_gas() + br label %"$have_gas_4062" + +"$have_gas_4062": ; preds = %"$out_of_gas_4061", %"$have_gas_4053" + %"$consume_4063" = sub i64 %"$gasrem_4059", %"$gasadd_4058" + store i64 %"$consume_4063", i64* @_gasrem, align 8 + %"$execptr_load_4064" = load i8*, i8** @_execptr, align 8 + %"$m12_4065" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m12, align 8 + %"$$m12_4065_4066" = bitcast %"Map_String_Map_(String)_(String)"* %"$m12_4065" to i8* + %"$put_key1c_4067" = alloca %String, align 8 + %"$key1c_4068" = load %String, %String* %key1c, align 8 + store %String %"$key1c_4068", %String* %"$put_key1c_4067", align 8 + %"$$put_key1c_4067_4069" = bitcast %String* %"$put_key1c_4067" to i8* + %"$m23_4070" = load %Map_String_String*, %Map_String_String** %m23, align 8 + %"$$m23_4070_4071" = bitcast %Map_String_String* %"$m23_4070" to i8* + %"$put_call_4072" = call i8* @_put(i8* %"$execptr_load_4064", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m12_4065_4066", i8* %"$$put_key1c_4067_4069", i8* %"$$m23_4070_4071") + %"$put_4073" = bitcast i8* %"$put_call_4072" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4073", %"Map_String_Map_(String)_(String)"** %m13, align 8 + %"$gasrem_4074" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4075" = icmp ugt i64 1, %"$gasrem_4074" + br i1 %"$gascmp_4075", label %"$out_of_gas_4076", label %"$have_gas_4077" + +"$out_of_gas_4076": ; preds = %"$have_gas_4062" + call void @_out_of_gas() + br label %"$have_gas_4077" + +"$have_gas_4077": ; preds = %"$out_of_gas_4076", %"$have_gas_4062" + %"$consume_4078" = sub i64 %"$gasrem_4074", 1 + store i64 %"$consume_4078", i64* @_gasrem, align 8 %m14 = alloca %"Map_String_Map_(String)_(String)"*, align 8 - %"$m13_4102" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 - %"$$m13_4102_4103" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4102" to i8* - %"$_lengthof_call_4104" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m13_4102_4103") - %"$gasadd_4105" = add i64 1, %"$_lengthof_call_4104" - %"$gasrem_4106" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4107" = icmp ugt i64 %"$gasadd_4105", %"$gasrem_4106" - br i1 %"$gascmp_4107", label %"$out_of_gas_4108", label %"$have_gas_4109" - -"$out_of_gas_4108": ; preds = %"$have_gas_4100" - call void @_out_of_gas() - br label %"$have_gas_4109" - -"$have_gas_4109": ; preds = %"$out_of_gas_4108", %"$have_gas_4100" - %"$consume_4110" = sub i64 %"$gasrem_4106", %"$gasadd_4105" - store i64 %"$consume_4110", i64* @_gasrem, align 8 - %"$execptr_load_4111" = load i8*, i8** @_execptr, align 8 - %"$m13_4112" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 - %"$$m13_4112_4113" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4112" to i8* - %"$put_key1d_4114" = alloca %String, align 8 - %"$key1d_4115" = load %String, %String* %key1d, align 8 - store %String %"$key1d_4115", %String* %"$put_key1d_4114", align 8 - %"$$put_key1d_4114_4116" = bitcast %String* %"$put_key1d_4114" to i8* - %"$m24_4117" = load %Map_String_String*, %Map_String_String** %m24, align 8 - %"$$m24_4117_4118" = bitcast %Map_String_String* %"$m24_4117" to i8* - %"$put_call_4119" = call i8* @_put(i8* %"$execptr_load_4111", %_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m13_4112_4113", i8* %"$$put_key1d_4114_4116", i8* %"$$m24_4117_4118") - %"$put_4120" = bitcast i8* %"$put_call_4119" to %"Map_String_Map_(String)_(String)"* - store %"Map_String_Map_(String)_(String)"* %"$put_4120", %"Map_String_Map_(String)_(String)"** %m14, align 8 - %"$gasrem_4121" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4122" = icmp ugt i64 1, %"$gasrem_4121" - br i1 %"$gascmp_4122", label %"$out_of_gas_4123", label %"$have_gas_4124" - -"$out_of_gas_4123": ; preds = %"$have_gas_4109" - call void @_out_of_gas() - br label %"$have_gas_4124" - -"$have_gas_4124": ; preds = %"$out_of_gas_4123", %"$have_gas_4109" - %"$consume_4125" = sub i64 %"$gasrem_4121", 1 - store i64 %"$consume_4125", i64* @_gasrem, align 8 - %"$m14_4126" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m14, align 8 - store %"Map_String_Map_(String)_(String)"* %"$m14_4126", %"Map_String_Map_(String)_(String)"** %m2_full, align 8 - %"$m2_full_4127" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 - %"$$m2_full_4127_4128" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4127" to i8* - %"$_literal_cost_call_4129" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_72", i8* %"$$m2_full_4127_4128") - %"$gasrem_4130" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4131" = icmp ugt i64 %"$_literal_cost_call_4129", %"$gasrem_4130" - br i1 %"$gascmp_4131", label %"$out_of_gas_4132", label %"$have_gas_4133" - -"$out_of_gas_4132": ; preds = %"$have_gas_4124" - call void @_out_of_gas() - br label %"$have_gas_4133" - -"$have_gas_4133": ; preds = %"$out_of_gas_4132", %"$have_gas_4124" - %"$consume_4134" = sub i64 %"$gasrem_4130", %"$_literal_cost_call_4129" - store i64 %"$consume_4134", i64* @_gasrem, align 8 - %"$execptr_load_4135" = load i8*, i8** @_execptr, align 8 - %"$m2_full_4137" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 - %"$update_value_4138" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4137" to i8* - call void @_update_field(i8* %"$execptr_load_4135", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4136", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 0, i8* null, i8* %"$update_value_4138") + %"$m13_4079" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 + %"$$m13_4079_4080" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4079" to i8* + %"$_lengthof_call_4081" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m13_4079_4080") + %"$gasadd_4082" = add i64 1, %"$_lengthof_call_4081" + %"$gasrem_4083" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4084" = icmp ugt i64 %"$gasadd_4082", %"$gasrem_4083" + br i1 %"$gascmp_4084", label %"$out_of_gas_4085", label %"$have_gas_4086" + +"$out_of_gas_4085": ; preds = %"$have_gas_4077" + call void @_out_of_gas() + br label %"$have_gas_4086" + +"$have_gas_4086": ; preds = %"$out_of_gas_4085", %"$have_gas_4077" + %"$consume_4087" = sub i64 %"$gasrem_4083", %"$gasadd_4082" + store i64 %"$consume_4087", i64* @_gasrem, align 8 + %"$execptr_load_4088" = load i8*, i8** @_execptr, align 8 + %"$m13_4089" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m13, align 8 + %"$$m13_4089_4090" = bitcast %"Map_String_Map_(String)_(String)"* %"$m13_4089" to i8* + %"$put_key1d_4091" = alloca %String, align 8 + %"$key1d_4092" = load %String, %String* %key1d, align 8 + store %String %"$key1d_4092", %String* %"$put_key1d_4091", align 8 + %"$$put_key1d_4091_4093" = bitcast %String* %"$put_key1d_4091" to i8* + %"$m24_4094" = load %Map_String_String*, %Map_String_String** %m24, align 8 + %"$$m24_4094_4095" = bitcast %Map_String_String* %"$m24_4094" to i8* + %"$put_call_4096" = call i8* @_put(i8* %"$execptr_load_4088", %_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m13_4089_4090", i8* %"$$put_key1d_4091_4093", i8* %"$$m24_4094_4095") + %"$put_4097" = bitcast i8* %"$put_call_4096" to %"Map_String_Map_(String)_(String)"* + store %"Map_String_Map_(String)_(String)"* %"$put_4097", %"Map_String_Map_(String)_(String)"** %m14, align 8 + %"$gasrem_4098" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4099" = icmp ugt i64 1, %"$gasrem_4098" + br i1 %"$gascmp_4099", label %"$out_of_gas_4100", label %"$have_gas_4101" + +"$out_of_gas_4100": ; preds = %"$have_gas_4086" + call void @_out_of_gas() + br label %"$have_gas_4101" + +"$have_gas_4101": ; preds = %"$out_of_gas_4100", %"$have_gas_4086" + %"$consume_4102" = sub i64 %"$gasrem_4098", 1 + store i64 %"$consume_4102", i64* @_gasrem, align 8 + %"$m14_4103" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m14, align 8 + store %"Map_String_Map_(String)_(String)"* %"$m14_4103", %"Map_String_Map_(String)_(String)"** %m2_full, align 8 + %"$m2_full_4104" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 + %"$$m2_full_4104_4105" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4104" to i8* + %"$_literal_cost_call_4106" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_64", i8* %"$$m2_full_4104_4105") + %"$gasrem_4107" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4108" = icmp ugt i64 %"$_literal_cost_call_4106", %"$gasrem_4107" + br i1 %"$gascmp_4108", label %"$out_of_gas_4109", label %"$have_gas_4110" + +"$out_of_gas_4109": ; preds = %"$have_gas_4101" + call void @_out_of_gas() + br label %"$have_gas_4110" + +"$have_gas_4110": ; preds = %"$out_of_gas_4109", %"$have_gas_4101" + %"$consume_4111" = sub i64 %"$gasrem_4107", %"$_literal_cost_call_4106" + store i64 %"$consume_4111", i64* @_gasrem, align 8 + %"$execptr_load_4112" = load i8*, i8** @_execptr, align 8 + %"$m2_full_4114" = load %"Map_String_Map_(String)_(String)"*, %"Map_String_Map_(String)_(String)"** %m2_full, align 8 + %"$update_value_4115" = bitcast %"Map_String_Map_(String)_(String)"* %"$m2_full_4114" to i8* + call void @_update_field(i8* %"$execptr_load_4112", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4113", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 0, i8* null, i8* %"$update_value_4115") ret void } define void @t15(i8* %0) { entry: - %"$_amount_4140" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4141" = bitcast i8* %"$_amount_4140" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4141", align 8 - %"$_origin_4142" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4143" = bitcast i8* %"$_origin_4142" to [20 x i8]* - %"$_sender_4144" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4145" = bitcast i8* %"$_sender_4144" to [20 x i8]* - call void @"$t15_3418"(%Uint128 %_amount, [20 x i8]* %"$_origin_4143", [20 x i8]* %"$_sender_4145") + %"$_amount_4117" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4118" = bitcast i8* %"$_amount_4117" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4118", align 8 + %"$_origin_4119" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4120" = bitcast i8* %"$_origin_4119" to [20 x i8]* + %"$_sender_4121" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4122" = bitcast i8* %"$_sender_4121" to [20 x i8]* + call void @"$t15_3395"(%Uint128 %_amount, [20 x i8]* %"$_origin_4120", [20 x i8]* %"$_sender_4122") ret void } -define internal void @"$t16_4146"(%Uint128 %_amount, [20 x i8]* %"$_origin_4147", [20 x i8]* %"$_sender_4148") { +define internal void @"$t16_4123"(%Uint128 %_amount, [20 x i8]* %"$_origin_4124", [20 x i8]* %"$_sender_4125") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4147", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4148", align 1 - %"$gasrem_4149" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4150" = icmp ugt i64 1, %"$gasrem_4149" - br i1 %"$gascmp_4150", label %"$out_of_gas_4151", label %"$have_gas_4152" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4124", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4125", align 1 + %"$gasrem_4126" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4127" = icmp ugt i64 1, %"$gasrem_4126" + br i1 %"$gascmp_4127", label %"$out_of_gas_4128", label %"$have_gas_4129" -"$out_of_gas_4151": ; preds = %entry +"$out_of_gas_4128": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_4152" + br label %"$have_gas_4129" -"$have_gas_4152": ; preds = %"$out_of_gas_4151", %entry - %"$consume_4153" = sub i64 %"$gasrem_4149", 1 - store i64 %"$consume_4153", i64* @_gasrem, align 8 +"$have_gas_4129": ; preds = %"$out_of_gas_4128", %entry + %"$consume_4130" = sub i64 %"$gasrem_4126", 1 + store i64 %"$consume_4130", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_4154" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4155" = icmp ugt i64 1, %"$gasrem_4154" - br i1 %"$gascmp_4155", label %"$out_of_gas_4156", label %"$have_gas_4157" + %"$gasrem_4131" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4132" = icmp ugt i64 1, %"$gasrem_4131" + br i1 %"$gascmp_4132", label %"$out_of_gas_4133", label %"$have_gas_4134" -"$out_of_gas_4156": ; preds = %"$have_gas_4152" +"$out_of_gas_4133": ; preds = %"$have_gas_4129" call void @_out_of_gas() - br label %"$have_gas_4157" + br label %"$have_gas_4134" -"$have_gas_4157": ; preds = %"$out_of_gas_4156", %"$have_gas_4152" - %"$consume_4158" = sub i64 %"$gasrem_4154", 1 - store i64 %"$consume_4158", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4159", i32 0, i32 0), i32 3 }, %String* %tname, align 8 - %"$gasrem_4160" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4161" = icmp ugt i64 1, %"$gasrem_4160" - br i1 %"$gascmp_4161", label %"$out_of_gas_4162", label %"$have_gas_4163" +"$have_gas_4134": ; preds = %"$out_of_gas_4133", %"$have_gas_4129" + %"$consume_4135" = sub i64 %"$gasrem_4131", 1 + store i64 %"$consume_4135", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4136", i32 0, i32 0), i32 3 }, %String* %tname, align 8 + %"$gasrem_4137" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4138" = icmp ugt i64 1, %"$gasrem_4137" + br i1 %"$gascmp_4138", label %"$out_of_gas_4139", label %"$have_gas_4140" -"$out_of_gas_4162": ; preds = %"$have_gas_4157" +"$out_of_gas_4139": ; preds = %"$have_gas_4134" call void @_out_of_gas() - br label %"$have_gas_4163" + br label %"$have_gas_4140" -"$have_gas_4163": ; preds = %"$out_of_gas_4162", %"$have_gas_4157" - %"$consume_4164" = sub i64 %"$gasrem_4160", 1 - store i64 %"$consume_4164", i64* @_gasrem, align 8 +"$have_gas_4140": ; preds = %"$out_of_gas_4139", %"$have_gas_4134" + %"$consume_4141" = sub i64 %"$gasrem_4137", 1 + store i64 %"$consume_4141", i64* @_gasrem, align 8 %key1a = alloca %String, align 8 - %"$gasrem_4165" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4166" = icmp ugt i64 1, %"$gasrem_4165" - br i1 %"$gascmp_4166", label %"$out_of_gas_4167", label %"$have_gas_4168" + %"$gasrem_4142" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4143" = icmp ugt i64 1, %"$gasrem_4142" + br i1 %"$gascmp_4143", label %"$out_of_gas_4144", label %"$have_gas_4145" -"$out_of_gas_4167": ; preds = %"$have_gas_4163" +"$out_of_gas_4144": ; preds = %"$have_gas_4140" call void @_out_of_gas() - br label %"$have_gas_4168" + br label %"$have_gas_4145" -"$have_gas_4168": ; preds = %"$out_of_gas_4167", %"$have_gas_4163" - %"$consume_4169" = sub i64 %"$gasrem_4165", 1 - store i64 %"$consume_4169", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4170", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 - %"$gasrem_4171" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4172" = icmp ugt i64 1, %"$gasrem_4171" - br i1 %"$gascmp_4172", label %"$out_of_gas_4173", label %"$have_gas_4174" +"$have_gas_4145": ; preds = %"$out_of_gas_4144", %"$have_gas_4140" + %"$consume_4146" = sub i64 %"$gasrem_4142", 1 + store i64 %"$consume_4146", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4147", i32 0, i32 0), i32 5 }, %String* %key1a, align 8 + %"$gasrem_4148" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4149" = icmp ugt i64 1, %"$gasrem_4148" + br i1 %"$gascmp_4149", label %"$out_of_gas_4150", label %"$have_gas_4151" -"$out_of_gas_4173": ; preds = %"$have_gas_4168" +"$out_of_gas_4150": ; preds = %"$have_gas_4145" call void @_out_of_gas() - br label %"$have_gas_4174" + br label %"$have_gas_4151" -"$have_gas_4174": ; preds = %"$out_of_gas_4173", %"$have_gas_4168" - %"$consume_4175" = sub i64 %"$gasrem_4171", 1 - store i64 %"$consume_4175", i64* @_gasrem, align 8 +"$have_gas_4151": ; preds = %"$out_of_gas_4150", %"$have_gas_4145" + %"$consume_4152" = sub i64 %"$gasrem_4148", 1 + store i64 %"$consume_4152", i64* @_gasrem, align 8 %key2a = alloca %String, align 8 - %"$gasrem_4176" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4177" = icmp ugt i64 1, %"$gasrem_4176" - br i1 %"$gascmp_4177", label %"$out_of_gas_4178", label %"$have_gas_4179" + %"$gasrem_4153" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4154" = icmp ugt i64 1, %"$gasrem_4153" + br i1 %"$gascmp_4154", label %"$out_of_gas_4155", label %"$have_gas_4156" -"$out_of_gas_4178": ; preds = %"$have_gas_4174" +"$out_of_gas_4155": ; preds = %"$have_gas_4151" call void @_out_of_gas() - br label %"$have_gas_4179" + br label %"$have_gas_4156" -"$have_gas_4179": ; preds = %"$out_of_gas_4178", %"$have_gas_4174" - %"$consume_4180" = sub i64 %"$gasrem_4176", 1 - store i64 %"$consume_4180", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4181", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 - %"$gasrem_4182" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4183" = icmp ugt i64 1, %"$gasrem_4182" - br i1 %"$gascmp_4183", label %"$out_of_gas_4184", label %"$have_gas_4185" +"$have_gas_4156": ; preds = %"$out_of_gas_4155", %"$have_gas_4151" + %"$consume_4157" = sub i64 %"$gasrem_4153", 1 + store i64 %"$consume_4157", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4158", i32 0, i32 0), i32 5 }, %String* %key2a, align 8 + %"$gasrem_4159" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4160" = icmp ugt i64 1, %"$gasrem_4159" + br i1 %"$gascmp_4160", label %"$out_of_gas_4161", label %"$have_gas_4162" -"$out_of_gas_4184": ; preds = %"$have_gas_4179" +"$out_of_gas_4161": ; preds = %"$have_gas_4156" call void @_out_of_gas() - br label %"$have_gas_4185" + br label %"$have_gas_4162" -"$have_gas_4185": ; preds = %"$out_of_gas_4184", %"$have_gas_4179" - %"$consume_4186" = sub i64 %"$gasrem_4182", 1 - store i64 %"$consume_4186", i64* @_gasrem, align 8 +"$have_gas_4162": ; preds = %"$out_of_gas_4161", %"$have_gas_4156" + %"$consume_4163" = sub i64 %"$gasrem_4159", 1 + store i64 %"$consume_4163", i64* @_gasrem, align 8 %key1b = alloca %String, align 8 - %"$gasrem_4187" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4188" = icmp ugt i64 1, %"$gasrem_4187" - br i1 %"$gascmp_4188", label %"$out_of_gas_4189", label %"$have_gas_4190" + %"$gasrem_4164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4165" = icmp ugt i64 1, %"$gasrem_4164" + br i1 %"$gascmp_4165", label %"$out_of_gas_4166", label %"$have_gas_4167" -"$out_of_gas_4189": ; preds = %"$have_gas_4185" +"$out_of_gas_4166": ; preds = %"$have_gas_4162" call void @_out_of_gas() - br label %"$have_gas_4190" + br label %"$have_gas_4167" -"$have_gas_4190": ; preds = %"$out_of_gas_4189", %"$have_gas_4185" - %"$consume_4191" = sub i64 %"$gasrem_4187", 1 - store i64 %"$consume_4191", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4192", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 - %"$gasrem_4193" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4194" = icmp ugt i64 1, %"$gasrem_4193" - br i1 %"$gascmp_4194", label %"$out_of_gas_4195", label %"$have_gas_4196" +"$have_gas_4167": ; preds = %"$out_of_gas_4166", %"$have_gas_4162" + %"$consume_4168" = sub i64 %"$gasrem_4164", 1 + store i64 %"$consume_4168", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4169", i32 0, i32 0), i32 5 }, %String* %key1b, align 8 + %"$gasrem_4170" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4171" = icmp ugt i64 1, %"$gasrem_4170" + br i1 %"$gascmp_4171", label %"$out_of_gas_4172", label %"$have_gas_4173" -"$out_of_gas_4195": ; preds = %"$have_gas_4190" +"$out_of_gas_4172": ; preds = %"$have_gas_4167" call void @_out_of_gas() - br label %"$have_gas_4196" + br label %"$have_gas_4173" -"$have_gas_4196": ; preds = %"$out_of_gas_4195", %"$have_gas_4190" - %"$consume_4197" = sub i64 %"$gasrem_4193", 1 - store i64 %"$consume_4197", i64* @_gasrem, align 8 +"$have_gas_4173": ; preds = %"$out_of_gas_4172", %"$have_gas_4167" + %"$consume_4174" = sub i64 %"$gasrem_4170", 1 + store i64 %"$consume_4174", i64* @_gasrem, align 8 %key2b = alloca %String, align 8 - %"$gasrem_4198" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4199" = icmp ugt i64 1, %"$gasrem_4198" - br i1 %"$gascmp_4199", label %"$out_of_gas_4200", label %"$have_gas_4201" + %"$gasrem_4175" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4176" = icmp ugt i64 1, %"$gasrem_4175" + br i1 %"$gascmp_4176", label %"$out_of_gas_4177", label %"$have_gas_4178" -"$out_of_gas_4200": ; preds = %"$have_gas_4196" +"$out_of_gas_4177": ; preds = %"$have_gas_4173" call void @_out_of_gas() - br label %"$have_gas_4201" + br label %"$have_gas_4178" -"$have_gas_4201": ; preds = %"$out_of_gas_4200", %"$have_gas_4196" - %"$consume_4202" = sub i64 %"$gasrem_4198", 1 - store i64 %"$consume_4202", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4203", i32 0, i32 0), i32 5 }, %String* %key2b, align 8 - %"$gasrem_4204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4205" = icmp ugt i64 1, %"$gasrem_4204" - br i1 %"$gascmp_4205", label %"$out_of_gas_4206", label %"$have_gas_4207" +"$have_gas_4178": ; preds = %"$out_of_gas_4177", %"$have_gas_4173" + %"$consume_4179" = sub i64 %"$gasrem_4175", 1 + store i64 %"$consume_4179", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4180", i32 0, i32 0), i32 5 }, %String* %key2b, align 8 + %"$gasrem_4181" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4182" = icmp ugt i64 1, %"$gasrem_4181" + br i1 %"$gascmp_4182", label %"$out_of_gas_4183", label %"$have_gas_4184" -"$out_of_gas_4206": ; preds = %"$have_gas_4201" +"$out_of_gas_4183": ; preds = %"$have_gas_4178" call void @_out_of_gas() - br label %"$have_gas_4207" + br label %"$have_gas_4184" -"$have_gas_4207": ; preds = %"$out_of_gas_4206", %"$have_gas_4201" - %"$consume_4208" = sub i64 %"$gasrem_4204", 1 - store i64 %"$consume_4208", i64* @_gasrem, align 8 +"$have_gas_4184": ; preds = %"$out_of_gas_4183", %"$have_gas_4178" + %"$consume_4185" = sub i64 %"$gasrem_4181", 1 + store i64 %"$consume_4185", i64* @_gasrem, align 8 %key1c = alloca %String, align 8 - %"$gasrem_4209" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4210" = icmp ugt i64 1, %"$gasrem_4209" - br i1 %"$gascmp_4210", label %"$out_of_gas_4211", label %"$have_gas_4212" + %"$gasrem_4186" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4187" = icmp ugt i64 1, %"$gasrem_4186" + br i1 %"$gascmp_4187", label %"$out_of_gas_4188", label %"$have_gas_4189" -"$out_of_gas_4211": ; preds = %"$have_gas_4207" +"$out_of_gas_4188": ; preds = %"$have_gas_4184" call void @_out_of_gas() - br label %"$have_gas_4212" + br label %"$have_gas_4189" -"$have_gas_4212": ; preds = %"$out_of_gas_4211", %"$have_gas_4207" - %"$consume_4213" = sub i64 %"$gasrem_4209", 1 - store i64 %"$consume_4213", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4214", i32 0, i32 0), i32 5 }, %String* %key1c, align 8 - %"$gasrem_4215" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4216" = icmp ugt i64 1, %"$gasrem_4215" - br i1 %"$gascmp_4216", label %"$out_of_gas_4217", label %"$have_gas_4218" +"$have_gas_4189": ; preds = %"$out_of_gas_4188", %"$have_gas_4184" + %"$consume_4190" = sub i64 %"$gasrem_4186", 1 + store i64 %"$consume_4190", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4191", i32 0, i32 0), i32 5 }, %String* %key1c, align 8 + %"$gasrem_4192" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4193" = icmp ugt i64 1, %"$gasrem_4192" + br i1 %"$gascmp_4193", label %"$out_of_gas_4194", label %"$have_gas_4195" -"$out_of_gas_4217": ; preds = %"$have_gas_4212" +"$out_of_gas_4194": ; preds = %"$have_gas_4189" call void @_out_of_gas() - br label %"$have_gas_4218" + br label %"$have_gas_4195" -"$have_gas_4218": ; preds = %"$out_of_gas_4217", %"$have_gas_4212" - %"$consume_4219" = sub i64 %"$gasrem_4215", 1 - store i64 %"$consume_4219", i64* @_gasrem, align 8 +"$have_gas_4195": ; preds = %"$out_of_gas_4194", %"$have_gas_4189" + %"$consume_4196" = sub i64 %"$gasrem_4192", 1 + store i64 %"$consume_4196", i64* @_gasrem, align 8 %key2c = alloca %String, align 8 - %"$gasrem_4220" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4221" = icmp ugt i64 1, %"$gasrem_4220" - br i1 %"$gascmp_4221", label %"$out_of_gas_4222", label %"$have_gas_4223" + %"$gasrem_4197" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4198" = icmp ugt i64 1, %"$gasrem_4197" + br i1 %"$gascmp_4198", label %"$out_of_gas_4199", label %"$have_gas_4200" -"$out_of_gas_4222": ; preds = %"$have_gas_4218" +"$out_of_gas_4199": ; preds = %"$have_gas_4195" call void @_out_of_gas() - br label %"$have_gas_4223" + br label %"$have_gas_4200" -"$have_gas_4223": ; preds = %"$out_of_gas_4222", %"$have_gas_4218" - %"$consume_4224" = sub i64 %"$gasrem_4220", 1 - store i64 %"$consume_4224", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4225", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 - %"$gasrem_4226" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4227" = icmp ugt i64 1, %"$gasrem_4226" - br i1 %"$gascmp_4227", label %"$out_of_gas_4228", label %"$have_gas_4229" +"$have_gas_4200": ; preds = %"$out_of_gas_4199", %"$have_gas_4195" + %"$consume_4201" = sub i64 %"$gasrem_4197", 1 + store i64 %"$consume_4201", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4202", i32 0, i32 0), i32 5 }, %String* %key2c, align 8 + %"$gasrem_4203" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4204" = icmp ugt i64 1, %"$gasrem_4203" + br i1 %"$gascmp_4204", label %"$out_of_gas_4205", label %"$have_gas_4206" -"$out_of_gas_4228": ; preds = %"$have_gas_4223" +"$out_of_gas_4205": ; preds = %"$have_gas_4200" call void @_out_of_gas() - br label %"$have_gas_4229" + br label %"$have_gas_4206" -"$have_gas_4229": ; preds = %"$out_of_gas_4228", %"$have_gas_4223" - %"$consume_4230" = sub i64 %"$gasrem_4226", 1 - store i64 %"$consume_4230", i64* @_gasrem, align 8 +"$have_gas_4206": ; preds = %"$out_of_gas_4205", %"$have_gas_4200" + %"$consume_4207" = sub i64 %"$gasrem_4203", 1 + store i64 %"$consume_4207", i64* @_gasrem, align 8 %key1d = alloca %String, align 8 - %"$gasrem_4231" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4232" = icmp ugt i64 1, %"$gasrem_4231" - br i1 %"$gascmp_4232", label %"$out_of_gas_4233", label %"$have_gas_4234" + %"$gasrem_4208" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4209" = icmp ugt i64 1, %"$gasrem_4208" + br i1 %"$gascmp_4209", label %"$out_of_gas_4210", label %"$have_gas_4211" -"$out_of_gas_4233": ; preds = %"$have_gas_4229" +"$out_of_gas_4210": ; preds = %"$have_gas_4206" call void @_out_of_gas() - br label %"$have_gas_4234" + br label %"$have_gas_4211" -"$have_gas_4234": ; preds = %"$out_of_gas_4233", %"$have_gas_4229" - %"$consume_4235" = sub i64 %"$gasrem_4231", 1 - store i64 %"$consume_4235", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4236", i32 0, i32 0), i32 5 }, %String* %key1d, align 8 - %"$gasrem_4237" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4238" = icmp ugt i64 1, %"$gasrem_4237" - br i1 %"$gascmp_4238", label %"$out_of_gas_4239", label %"$have_gas_4240" +"$have_gas_4211": ; preds = %"$out_of_gas_4210", %"$have_gas_4206" + %"$consume_4212" = sub i64 %"$gasrem_4208", 1 + store i64 %"$consume_4212", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4213", i32 0, i32 0), i32 5 }, %String* %key1d, align 8 + %"$gasrem_4214" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4215" = icmp ugt i64 1, %"$gasrem_4214" + br i1 %"$gascmp_4215", label %"$out_of_gas_4216", label %"$have_gas_4217" -"$out_of_gas_4239": ; preds = %"$have_gas_4234" +"$out_of_gas_4216": ; preds = %"$have_gas_4211" call void @_out_of_gas() - br label %"$have_gas_4240" + br label %"$have_gas_4217" -"$have_gas_4240": ; preds = %"$out_of_gas_4239", %"$have_gas_4234" - %"$consume_4241" = sub i64 %"$gasrem_4237", 1 - store i64 %"$consume_4241", i64* @_gasrem, align 8 +"$have_gas_4217": ; preds = %"$out_of_gas_4216", %"$have_gas_4211" + %"$consume_4218" = sub i64 %"$gasrem_4214", 1 + store i64 %"$consume_4218", i64* @_gasrem, align 8 %key2d = alloca %String, align 8 - %"$gasrem_4242" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4243" = icmp ugt i64 1, %"$gasrem_4242" - br i1 %"$gascmp_4243", label %"$out_of_gas_4244", label %"$have_gas_4245" + %"$gasrem_4219" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4220" = icmp ugt i64 1, %"$gasrem_4219" + br i1 %"$gascmp_4220", label %"$out_of_gas_4221", label %"$have_gas_4222" -"$out_of_gas_4244": ; preds = %"$have_gas_4240" +"$out_of_gas_4221": ; preds = %"$have_gas_4217" call void @_out_of_gas() - br label %"$have_gas_4245" + br label %"$have_gas_4222" -"$have_gas_4245": ; preds = %"$out_of_gas_4244", %"$have_gas_4240" - %"$consume_4246" = sub i64 %"$gasrem_4242", 1 - store i64 %"$consume_4246", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4247", i32 0, i32 0), i32 5 }, %String* %key2d, align 8 +"$have_gas_4222": ; preds = %"$out_of_gas_4221", %"$have_gas_4217" + %"$consume_4223" = sub i64 %"$gasrem_4219", 1 + store i64 %"$consume_4223", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4224", i32 0, i32 0), i32 5 }, %String* %key2d, align 8 %t1 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4248_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4248_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4248_salloc_load", i64 32) - %"$indices_buf_4248_salloc" = bitcast i8* %"$indices_buf_4248_salloc_salloc" to [32 x i8]* - %"$indices_buf_4248" = bitcast [32 x i8]* %"$indices_buf_4248_salloc" to i8* - %"$key1a_4249" = load %String, %String* %key1a, align 8 - %"$indices_gep_4250" = getelementptr i8, i8* %"$indices_buf_4248", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4250" to %String* - store %String %"$key1a_4249", %String* %indices_cast, align 8 - %"$key2a_4251" = load %String, %String* %key2a, align 8 - %"$indices_gep_4252" = getelementptr i8, i8* %"$indices_buf_4248", i32 16 - %indices_cast1 = bitcast i8* %"$indices_gep_4252" to %String* - store %String %"$key2a_4251", %String* %indices_cast1, align 8 - %"$execptr_load_4254" = load i8*, i8** @_execptr, align 8 - %"$t1_call_4255" = call i8* @_fetch_field(i8* %"$execptr_load_4254", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4253", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_4248", i32 1) - %"$t1_4256" = bitcast i8* %"$t1_call_4255" to %TName_Option_String* - store %TName_Option_String* %"$t1_4256", %TName_Option_String** %t1, align 8 - %"$t1_4257" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 - %"$$t1_4257_4258" = bitcast %TName_Option_String* %"$t1_4257" to i8* - %"$_literal_cost_call_4259" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$t1_4257_4258") - %"$gasadd_4260" = add i64 %"$_literal_cost_call_4259", 0 - %"$gasadd_4261" = add i64 %"$gasadd_4260", 2 - %"$gasrem_4262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4263" = icmp ugt i64 %"$gasadd_4261", %"$gasrem_4262" - br i1 %"$gascmp_4263", label %"$out_of_gas_4264", label %"$have_gas_4265" - -"$out_of_gas_4264": ; preds = %"$have_gas_4245" - call void @_out_of_gas() - br label %"$have_gas_4265" - -"$have_gas_4265": ; preds = %"$out_of_gas_4264", %"$have_gas_4245" - %"$consume_4266" = sub i64 %"$gasrem_4262", %"$gasadd_4261" - store i64 %"$consume_4266", i64* @_gasrem, align 8 + %"$indices_buf_4225_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4225_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4225_salloc_load", i64 32) + %"$indices_buf_4225_salloc" = bitcast i8* %"$indices_buf_4225_salloc_salloc" to [32 x i8]* + %"$indices_buf_4225" = bitcast [32 x i8]* %"$indices_buf_4225_salloc" to i8* + %"$key1a_4226" = load %String, %String* %key1a, align 8 + %"$indices_gep_4227" = getelementptr i8, i8* %"$indices_buf_4225", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4227" to %String* + store %String %"$key1a_4226", %String* %indices_cast, align 8 + %"$key2a_4228" = load %String, %String* %key2a, align 8 + %"$indices_gep_4229" = getelementptr i8, i8* %"$indices_buf_4225", i32 16 + %indices_cast1 = bitcast i8* %"$indices_gep_4229" to %String* + store %String %"$key2a_4228", %String* %indices_cast1, align 8 + %"$execptr_load_4231" = load i8*, i8** @_execptr, align 8 + %"$t1_call_4232" = call i8* @_fetch_field(i8* %"$execptr_load_4231", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4230", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_4225", i32 1) + %"$t1_4233" = bitcast i8* %"$t1_call_4232" to %TName_Option_String* + store %TName_Option_String* %"$t1_4233", %TName_Option_String** %t1, align 8 + %"$t1_4234" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 + %"$$t1_4234_4235" = bitcast %TName_Option_String* %"$t1_4234" to i8* + %"$_literal_cost_call_4236" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$t1_4234_4235") + %"$gasadd_4237" = add i64 %"$_literal_cost_call_4236", 0 + %"$gasadd_4238" = add i64 %"$gasadd_4237", 2 + %"$gasrem_4239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4240" = icmp ugt i64 %"$gasadd_4238", %"$gasrem_4239" + br i1 %"$gascmp_4240", label %"$out_of_gas_4241", label %"$have_gas_4242" + +"$out_of_gas_4241": ; preds = %"$have_gas_4222" + call void @_out_of_gas() + br label %"$have_gas_4242" + +"$have_gas_4242": ; preds = %"$out_of_gas_4241", %"$have_gas_4222" + %"$consume_4243" = sub i64 %"$gasrem_4239", %"$gasadd_4238" + store i64 %"$consume_4243", i64* @_gasrem, align 8 %t2 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4267_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4267_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4267_salloc_load", i64 32) - %"$indices_buf_4267_salloc" = bitcast i8* %"$indices_buf_4267_salloc_salloc" to [32 x i8]* - %"$indices_buf_4267" = bitcast [32 x i8]* %"$indices_buf_4267_salloc" to i8* - %"$key1b_4268" = load %String, %String* %key1b, align 8 - %"$indices_gep_4269" = getelementptr i8, i8* %"$indices_buf_4267", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_4269" to %String* - store %String %"$key1b_4268", %String* %indices_cast2, align 8 - %"$key2b_4270" = load %String, %String* %key2b, align 8 - %"$indices_gep_4271" = getelementptr i8, i8* %"$indices_buf_4267", i32 16 - %indices_cast3 = bitcast i8* %"$indices_gep_4271" to %String* - store %String %"$key2b_4270", %String* %indices_cast3, align 8 - %"$execptr_load_4273" = load i8*, i8** @_execptr, align 8 - %"$t2_call_4274" = call i8* @_fetch_field(i8* %"$execptr_load_4273", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4272", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_4267", i32 1) - %"$t2_4275" = bitcast i8* %"$t2_call_4274" to %TName_Option_String* - store %TName_Option_String* %"$t2_4275", %TName_Option_String** %t2, align 8 - %"$t2_4276" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 - %"$$t2_4276_4277" = bitcast %TName_Option_String* %"$t2_4276" to i8* - %"$_literal_cost_call_4278" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$t2_4276_4277") - %"$gasadd_4279" = add i64 %"$_literal_cost_call_4278", 0 - %"$gasadd_4280" = add i64 %"$gasadd_4279", 2 - %"$gasrem_4281" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4282" = icmp ugt i64 %"$gasadd_4280", %"$gasrem_4281" - br i1 %"$gascmp_4282", label %"$out_of_gas_4283", label %"$have_gas_4284" - -"$out_of_gas_4283": ; preds = %"$have_gas_4265" - call void @_out_of_gas() - br label %"$have_gas_4284" - -"$have_gas_4284": ; preds = %"$out_of_gas_4283", %"$have_gas_4265" - %"$consume_4285" = sub i64 %"$gasrem_4281", %"$gasadd_4280" - store i64 %"$consume_4285", i64* @_gasrem, align 8 + %"$indices_buf_4244_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4244_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4244_salloc_load", i64 32) + %"$indices_buf_4244_salloc" = bitcast i8* %"$indices_buf_4244_salloc_salloc" to [32 x i8]* + %"$indices_buf_4244" = bitcast [32 x i8]* %"$indices_buf_4244_salloc" to i8* + %"$key1b_4245" = load %String, %String* %key1b, align 8 + %"$indices_gep_4246" = getelementptr i8, i8* %"$indices_buf_4244", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_4246" to %String* + store %String %"$key1b_4245", %String* %indices_cast2, align 8 + %"$key2b_4247" = load %String, %String* %key2b, align 8 + %"$indices_gep_4248" = getelementptr i8, i8* %"$indices_buf_4244", i32 16 + %indices_cast3 = bitcast i8* %"$indices_gep_4248" to %String* + store %String %"$key2b_4247", %String* %indices_cast3, align 8 + %"$execptr_load_4250" = load i8*, i8** @_execptr, align 8 + %"$t2_call_4251" = call i8* @_fetch_field(i8* %"$execptr_load_4250", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4249", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_4244", i32 1) + %"$t2_4252" = bitcast i8* %"$t2_call_4251" to %TName_Option_String* + store %TName_Option_String* %"$t2_4252", %TName_Option_String** %t2, align 8 + %"$t2_4253" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 + %"$$t2_4253_4254" = bitcast %TName_Option_String* %"$t2_4253" to i8* + %"$_literal_cost_call_4255" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$t2_4253_4254") + %"$gasadd_4256" = add i64 %"$_literal_cost_call_4255", 0 + %"$gasadd_4257" = add i64 %"$gasadd_4256", 2 + %"$gasrem_4258" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4259" = icmp ugt i64 %"$gasadd_4257", %"$gasrem_4258" + br i1 %"$gascmp_4259", label %"$out_of_gas_4260", label %"$have_gas_4261" + +"$out_of_gas_4260": ; preds = %"$have_gas_4242" + call void @_out_of_gas() + br label %"$have_gas_4261" + +"$have_gas_4261": ; preds = %"$out_of_gas_4260", %"$have_gas_4242" + %"$consume_4262" = sub i64 %"$gasrem_4258", %"$gasadd_4257" + store i64 %"$consume_4262", i64* @_gasrem, align 8 %t3 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4286_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4286_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4286_salloc_load", i64 32) - %"$indices_buf_4286_salloc" = bitcast i8* %"$indices_buf_4286_salloc_salloc" to [32 x i8]* - %"$indices_buf_4286" = bitcast [32 x i8]* %"$indices_buf_4286_salloc" to i8* - %"$key1c_4287" = load %String, %String* %key1c, align 8 - %"$indices_gep_4288" = getelementptr i8, i8* %"$indices_buf_4286", i32 0 - %indices_cast4 = bitcast i8* %"$indices_gep_4288" to %String* - store %String %"$key1c_4287", %String* %indices_cast4, align 8 - %"$key2c_4289" = load %String, %String* %key2c, align 8 - %"$indices_gep_4290" = getelementptr i8, i8* %"$indices_buf_4286", i32 16 - %indices_cast5 = bitcast i8* %"$indices_gep_4290" to %String* - store %String %"$key2c_4289", %String* %indices_cast5, align 8 - %"$execptr_load_4292" = load i8*, i8** @_execptr, align 8 - %"$t3_call_4293" = call i8* @_fetch_field(i8* %"$execptr_load_4292", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4291", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_4286", i32 1) - %"$t3_4294" = bitcast i8* %"$t3_call_4293" to %TName_Option_String* - store %TName_Option_String* %"$t3_4294", %TName_Option_String** %t3, align 8 - %"$t3_4295" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 - %"$$t3_4295_4296" = bitcast %TName_Option_String* %"$t3_4295" to i8* - %"$_literal_cost_call_4297" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$t3_4295_4296") - %"$gasadd_4298" = add i64 %"$_literal_cost_call_4297", 0 - %"$gasadd_4299" = add i64 %"$gasadd_4298", 2 - %"$gasrem_4300" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4301" = icmp ugt i64 %"$gasadd_4299", %"$gasrem_4300" - br i1 %"$gascmp_4301", label %"$out_of_gas_4302", label %"$have_gas_4303" - -"$out_of_gas_4302": ; preds = %"$have_gas_4284" - call void @_out_of_gas() - br label %"$have_gas_4303" - -"$have_gas_4303": ; preds = %"$out_of_gas_4302", %"$have_gas_4284" - %"$consume_4304" = sub i64 %"$gasrem_4300", %"$gasadd_4299" - store i64 %"$consume_4304", i64* @_gasrem, align 8 + %"$indices_buf_4263_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4263_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4263_salloc_load", i64 32) + %"$indices_buf_4263_salloc" = bitcast i8* %"$indices_buf_4263_salloc_salloc" to [32 x i8]* + %"$indices_buf_4263" = bitcast [32 x i8]* %"$indices_buf_4263_salloc" to i8* + %"$key1c_4264" = load %String, %String* %key1c, align 8 + %"$indices_gep_4265" = getelementptr i8, i8* %"$indices_buf_4263", i32 0 + %indices_cast4 = bitcast i8* %"$indices_gep_4265" to %String* + store %String %"$key1c_4264", %String* %indices_cast4, align 8 + %"$key2c_4266" = load %String, %String* %key2c, align 8 + %"$indices_gep_4267" = getelementptr i8, i8* %"$indices_buf_4263", i32 16 + %indices_cast5 = bitcast i8* %"$indices_gep_4267" to %String* + store %String %"$key2c_4266", %String* %indices_cast5, align 8 + %"$execptr_load_4269" = load i8*, i8** @_execptr, align 8 + %"$t3_call_4270" = call i8* @_fetch_field(i8* %"$execptr_load_4269", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4268", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_4263", i32 1) + %"$t3_4271" = bitcast i8* %"$t3_call_4270" to %TName_Option_String* + store %TName_Option_String* %"$t3_4271", %TName_Option_String** %t3, align 8 + %"$t3_4272" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 + %"$$t3_4272_4273" = bitcast %TName_Option_String* %"$t3_4272" to i8* + %"$_literal_cost_call_4274" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$t3_4272_4273") + %"$gasadd_4275" = add i64 %"$_literal_cost_call_4274", 0 + %"$gasadd_4276" = add i64 %"$gasadd_4275", 2 + %"$gasrem_4277" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4278" = icmp ugt i64 %"$gasadd_4276", %"$gasrem_4277" + br i1 %"$gascmp_4278", label %"$out_of_gas_4279", label %"$have_gas_4280" + +"$out_of_gas_4279": ; preds = %"$have_gas_4261" + call void @_out_of_gas() + br label %"$have_gas_4280" + +"$have_gas_4280": ; preds = %"$out_of_gas_4279", %"$have_gas_4261" + %"$consume_4281" = sub i64 %"$gasrem_4277", %"$gasadd_4276" + store i64 %"$consume_4281", i64* @_gasrem, align 8 %t4 = alloca %TName_Option_String*, align 8 - %"$indices_buf_4305_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4305_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4305_salloc_load", i64 32) - %"$indices_buf_4305_salloc" = bitcast i8* %"$indices_buf_4305_salloc_salloc" to [32 x i8]* - %"$indices_buf_4305" = bitcast [32 x i8]* %"$indices_buf_4305_salloc" to i8* - %"$key1d_4306" = load %String, %String* %key1d, align 8 - %"$indices_gep_4307" = getelementptr i8, i8* %"$indices_buf_4305", i32 0 - %indices_cast6 = bitcast i8* %"$indices_gep_4307" to %String* - store %String %"$key1d_4306", %String* %indices_cast6, align 8 - %"$key2d_4308" = load %String, %String* %key2d, align 8 - %"$indices_gep_4309" = getelementptr i8, i8* %"$indices_buf_4305", i32 16 - %indices_cast7 = bitcast i8* %"$indices_gep_4309" to %String* - store %String %"$key2d_4308", %String* %indices_cast7, align 8 - %"$execptr_load_4311" = load i8*, i8** @_execptr, align 8 - %"$t4_call_4312" = call i8* @_fetch_field(i8* %"$execptr_load_4311", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4310", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_72", i32 2, i8* %"$indices_buf_4305", i32 1) - %"$t4_4313" = bitcast i8* %"$t4_call_4312" to %TName_Option_String* - store %TName_Option_String* %"$t4_4313", %TName_Option_String** %t4, align 8 - %"$t4_4314" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 - %"$$t4_4314_4315" = bitcast %TName_Option_String* %"$t4_4314" to i8* - %"$_literal_cost_call_4316" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_68", i8* %"$$t4_4314_4315") - %"$gasadd_4317" = add i64 %"$_literal_cost_call_4316", 0 - %"$gasadd_4318" = add i64 %"$gasadd_4317", 2 - %"$gasrem_4319" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4320" = icmp ugt i64 %"$gasadd_4318", %"$gasrem_4319" - br i1 %"$gascmp_4320", label %"$out_of_gas_4321", label %"$have_gas_4322" - -"$out_of_gas_4321": ; preds = %"$have_gas_4303" - call void @_out_of_gas() - br label %"$have_gas_4322" - -"$have_gas_4322": ; preds = %"$out_of_gas_4321", %"$have_gas_4303" - %"$consume_4323" = sub i64 %"$gasrem_4319", %"$gasadd_4318" - store i64 %"$consume_4323", i64* @_gasrem, align 8 - %"$gasrem_4324" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4325" = icmp ugt i64 1, %"$gasrem_4324" - br i1 %"$gascmp_4325", label %"$out_of_gas_4326", label %"$have_gas_4327" - -"$out_of_gas_4326": ; preds = %"$have_gas_4322" - call void @_out_of_gas() - br label %"$have_gas_4327" - -"$have_gas_4327": ; preds = %"$out_of_gas_4326", %"$have_gas_4322" - %"$consume_4328" = sub i64 %"$gasrem_4324", 1 - store i64 %"$consume_4328", i64* @_gasrem, align 8 + %"$indices_buf_4282_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4282_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4282_salloc_load", i64 32) + %"$indices_buf_4282_salloc" = bitcast i8* %"$indices_buf_4282_salloc_salloc" to [32 x i8]* + %"$indices_buf_4282" = bitcast [32 x i8]* %"$indices_buf_4282_salloc" to i8* + %"$key1d_4283" = load %String, %String* %key1d, align 8 + %"$indices_gep_4284" = getelementptr i8, i8* %"$indices_buf_4282", i32 0 + %indices_cast6 = bitcast i8* %"$indices_gep_4284" to %String* + store %String %"$key1d_4283", %String* %indices_cast6, align 8 + %"$key2d_4285" = load %String, %String* %key2d, align 8 + %"$indices_gep_4286" = getelementptr i8, i8* %"$indices_buf_4282", i32 16 + %indices_cast7 = bitcast i8* %"$indices_gep_4286" to %String* + store %String %"$key2d_4285", %String* %indices_cast7, align 8 + %"$execptr_load_4288" = load i8*, i8** @_execptr, align 8 + %"$t4_call_4289" = call i8* @_fetch_field(i8* %"$execptr_load_4288", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m2_4287", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_64", i32 2, i8* %"$indices_buf_4282", i32 1) + %"$t4_4290" = bitcast i8* %"$t4_call_4289" to %TName_Option_String* + store %TName_Option_String* %"$t4_4290", %TName_Option_String** %t4, align 8 + %"$t4_4291" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 + %"$$t4_4291_4292" = bitcast %TName_Option_String* %"$t4_4291" to i8* + %"$_literal_cost_call_4293" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_String_60", i8* %"$$t4_4291_4292") + %"$gasadd_4294" = add i64 %"$_literal_cost_call_4293", 0 + %"$gasadd_4295" = add i64 %"$gasadd_4294", 2 + %"$gasrem_4296" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4297" = icmp ugt i64 %"$gasadd_4295", %"$gasrem_4296" + br i1 %"$gascmp_4297", label %"$out_of_gas_4298", label %"$have_gas_4299" + +"$out_of_gas_4298": ; preds = %"$have_gas_4280" + call void @_out_of_gas() + br label %"$have_gas_4299" + +"$have_gas_4299": ; preds = %"$out_of_gas_4298", %"$have_gas_4280" + %"$consume_4300" = sub i64 %"$gasrem_4296", %"$gasadd_4295" + store i64 %"$consume_4300", i64* @_gasrem, align 8 + %"$gasrem_4301" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4302" = icmp ugt i64 1, %"$gasrem_4301" + br i1 %"$gascmp_4302", label %"$out_of_gas_4303", label %"$have_gas_4304" + +"$out_of_gas_4303": ; preds = %"$have_gas_4299" + call void @_out_of_gas() + br label %"$have_gas_4304" + +"$have_gas_4304": ; preds = %"$out_of_gas_4303", %"$have_gas_4299" + %"$consume_4305" = sub i64 %"$gasrem_4301", 1 + store i64 %"$consume_4305", i64* @_gasrem, align 8 %v1 = alloca %String, align 8 - %"$gasrem_4329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4330" = icmp ugt i64 1, %"$gasrem_4329" - br i1 %"$gascmp_4330", label %"$out_of_gas_4331", label %"$have_gas_4332" + %"$gasrem_4306" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4307" = icmp ugt i64 1, %"$gasrem_4306" + br i1 %"$gascmp_4307", label %"$out_of_gas_4308", label %"$have_gas_4309" -"$out_of_gas_4331": ; preds = %"$have_gas_4327" +"$out_of_gas_4308": ; preds = %"$have_gas_4304" call void @_out_of_gas() - br label %"$have_gas_4332" + br label %"$have_gas_4309" -"$have_gas_4332": ; preds = %"$out_of_gas_4331", %"$have_gas_4327" - %"$consume_4333" = sub i64 %"$gasrem_4329", 1 - store i64 %"$consume_4333", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4334", i32 0, i32 0), i32 3 }, %String* %v1, align 8 - %"$gasrem_4335" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4336" = icmp ugt i64 1, %"$gasrem_4335" - br i1 %"$gascmp_4336", label %"$out_of_gas_4337", label %"$have_gas_4338" +"$have_gas_4309": ; preds = %"$out_of_gas_4308", %"$have_gas_4304" + %"$consume_4310" = sub i64 %"$gasrem_4306", 1 + store i64 %"$consume_4310", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4311", i32 0, i32 0), i32 3 }, %String* %v1, align 8 + %"$gasrem_4312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4313" = icmp ugt i64 1, %"$gasrem_4312" + br i1 %"$gascmp_4313", label %"$out_of_gas_4314", label %"$have_gas_4315" -"$out_of_gas_4337": ; preds = %"$have_gas_4332" +"$out_of_gas_4314": ; preds = %"$have_gas_4309" call void @_out_of_gas() - br label %"$have_gas_4338" + br label %"$have_gas_4315" -"$have_gas_4338": ; preds = %"$out_of_gas_4337", %"$have_gas_4332" - %"$consume_4339" = sub i64 %"$gasrem_4335", 1 - store i64 %"$consume_4339", i64* @_gasrem, align 8 +"$have_gas_4315": ; preds = %"$out_of_gas_4314", %"$have_gas_4309" + %"$consume_4316" = sub i64 %"$gasrem_4312", 1 + store i64 %"$consume_4316", i64* @_gasrem, align 8 %v2 = alloca %String, align 8 - %"$gasrem_4340" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4341" = icmp ugt i64 1, %"$gasrem_4340" - br i1 %"$gascmp_4341", label %"$out_of_gas_4342", label %"$have_gas_4343" + %"$gasrem_4317" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4318" = icmp ugt i64 1, %"$gasrem_4317" + br i1 %"$gascmp_4318", label %"$out_of_gas_4319", label %"$have_gas_4320" -"$out_of_gas_4342": ; preds = %"$have_gas_4338" +"$out_of_gas_4319": ; preds = %"$have_gas_4315" call void @_out_of_gas() - br label %"$have_gas_4343" + br label %"$have_gas_4320" -"$have_gas_4343": ; preds = %"$out_of_gas_4342", %"$have_gas_4338" - %"$consume_4344" = sub i64 %"$gasrem_4340", 1 - store i64 %"$consume_4344", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4345", i32 0, i32 0), i32 3 }, %String* %v2, align 8 - %"$gasrem_4346" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4347" = icmp ugt i64 1, %"$gasrem_4346" - br i1 %"$gascmp_4347", label %"$out_of_gas_4348", label %"$have_gas_4349" +"$have_gas_4320": ; preds = %"$out_of_gas_4319", %"$have_gas_4315" + %"$consume_4321" = sub i64 %"$gasrem_4317", 1 + store i64 %"$consume_4321", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4322", i32 0, i32 0), i32 3 }, %String* %v2, align 8 + %"$gasrem_4323" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4324" = icmp ugt i64 1, %"$gasrem_4323" + br i1 %"$gascmp_4324", label %"$out_of_gas_4325", label %"$have_gas_4326" -"$out_of_gas_4348": ; preds = %"$have_gas_4343" +"$out_of_gas_4325": ; preds = %"$have_gas_4320" call void @_out_of_gas() - br label %"$have_gas_4349" + br label %"$have_gas_4326" -"$have_gas_4349": ; preds = %"$out_of_gas_4348", %"$have_gas_4343" - %"$consume_4350" = sub i64 %"$gasrem_4346", 1 - store i64 %"$consume_4350", i64* @_gasrem, align 8 +"$have_gas_4326": ; preds = %"$out_of_gas_4325", %"$have_gas_4320" + %"$consume_4327" = sub i64 %"$gasrem_4323", 1 + store i64 %"$consume_4327", i64* @_gasrem, align 8 %v3 = alloca %String, align 8 - %"$gasrem_4351" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4352" = icmp ugt i64 1, %"$gasrem_4351" - br i1 %"$gascmp_4352", label %"$out_of_gas_4353", label %"$have_gas_4354" + %"$gasrem_4328" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4329" = icmp ugt i64 1, %"$gasrem_4328" + br i1 %"$gascmp_4329", label %"$out_of_gas_4330", label %"$have_gas_4331" -"$out_of_gas_4353": ; preds = %"$have_gas_4349" +"$out_of_gas_4330": ; preds = %"$have_gas_4326" call void @_out_of_gas() - br label %"$have_gas_4354" + br label %"$have_gas_4331" -"$have_gas_4354": ; preds = %"$out_of_gas_4353", %"$have_gas_4349" - %"$consume_4355" = sub i64 %"$gasrem_4351", 1 - store i64 %"$consume_4355", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4356", i32 0, i32 0), i32 3 }, %String* %v3, align 8 - %"$gasrem_4357" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4358" = icmp ugt i64 1, %"$gasrem_4357" - br i1 %"$gascmp_4358", label %"$out_of_gas_4359", label %"$have_gas_4360" +"$have_gas_4331": ; preds = %"$out_of_gas_4330", %"$have_gas_4326" + %"$consume_4332" = sub i64 %"$gasrem_4328", 1 + store i64 %"$consume_4332", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4333", i32 0, i32 0), i32 3 }, %String* %v3, align 8 + %"$gasrem_4334" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4335" = icmp ugt i64 1, %"$gasrem_4334" + br i1 %"$gascmp_4335", label %"$out_of_gas_4336", label %"$have_gas_4337" -"$out_of_gas_4359": ; preds = %"$have_gas_4354" +"$out_of_gas_4336": ; preds = %"$have_gas_4331" call void @_out_of_gas() - br label %"$have_gas_4360" + br label %"$have_gas_4337" -"$have_gas_4360": ; preds = %"$out_of_gas_4359", %"$have_gas_4354" - %"$consume_4361" = sub i64 %"$gasrem_4357", 1 - store i64 %"$consume_4361", i64* @_gasrem, align 8 +"$have_gas_4337": ; preds = %"$out_of_gas_4336", %"$have_gas_4331" + %"$consume_4338" = sub i64 %"$gasrem_4334", 1 + store i64 %"$consume_4338", i64* @_gasrem, align 8 %v4 = alloca %String, align 8 - %"$gasrem_4362" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4363" = icmp ugt i64 1, %"$gasrem_4362" - br i1 %"$gascmp_4363", label %"$out_of_gas_4364", label %"$have_gas_4365" + %"$gasrem_4339" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4340" = icmp ugt i64 1, %"$gasrem_4339" + br i1 %"$gascmp_4340", label %"$out_of_gas_4341", label %"$have_gas_4342" -"$out_of_gas_4364": ; preds = %"$have_gas_4360" +"$out_of_gas_4341": ; preds = %"$have_gas_4337" call void @_out_of_gas() - br label %"$have_gas_4365" + br label %"$have_gas_4342" -"$have_gas_4365": ; preds = %"$out_of_gas_4364", %"$have_gas_4360" - %"$consume_4366" = sub i64 %"$gasrem_4362", 1 - store i64 %"$consume_4366", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4367", i32 0, i32 0), i32 3 }, %String* %v4, align 8 - %"$gasrem_4368" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4369" = icmp ugt i64 1, %"$gasrem_4368" - br i1 %"$gascmp_4369", label %"$out_of_gas_4370", label %"$have_gas_4371" +"$have_gas_4342": ; preds = %"$out_of_gas_4341", %"$have_gas_4337" + %"$consume_4343" = sub i64 %"$gasrem_4339", 1 + store i64 %"$consume_4343", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4344", i32 0, i32 0), i32 3 }, %String* %v4, align 8 + %"$gasrem_4345" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4346" = icmp ugt i64 1, %"$gasrem_4345" + br i1 %"$gascmp_4346", label %"$out_of_gas_4347", label %"$have_gas_4348" -"$out_of_gas_4370": ; preds = %"$have_gas_4365" +"$out_of_gas_4347": ; preds = %"$have_gas_4342" call void @_out_of_gas() - br label %"$have_gas_4371" + br label %"$have_gas_4348" -"$have_gas_4371": ; preds = %"$out_of_gas_4370", %"$have_gas_4365" - %"$consume_4372" = sub i64 %"$gasrem_4368", 1 - store i64 %"$consume_4372", i64* @_gasrem, align 8 +"$have_gas_4348": ; preds = %"$out_of_gas_4347", %"$have_gas_4342" + %"$consume_4349" = sub i64 %"$gasrem_4345", 1 + store i64 %"$consume_4349", i64* @_gasrem, align 8 %b1 = alloca %TName_Bool*, align 8 + %"$gasrem_4350" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4351" = icmp ugt i64 2, %"$gasrem_4350" + br i1 %"$gascmp_4351", label %"$out_of_gas_4352", label %"$have_gas_4353" + +"$out_of_gas_4352": ; preds = %"$have_gas_4348" + call void @_out_of_gas() + br label %"$have_gas_4353" + +"$have_gas_4353": ; preds = %"$out_of_gas_4352", %"$have_gas_4348" + %"$consume_4354" = sub i64 %"$gasrem_4350", 2 + store i64 %"$consume_4354", i64* @_gasrem, align 8 + %"$t1_4356" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 + %"$t1_tag_4357" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t1_4356", i32 0, i32 0 + %"$t1_tag_4358" = load i8, i8* %"$t1_tag_4357", align 1 + switch i8 %"$t1_tag_4358", label %"$empty_default_4359" [ + i8 0, label %"$Some_4360" + i8 1, label %"$None_4383" + ] + +"$Some_4360": ; preds = %"$have_gas_4353" + %"$t1_4361" = bitcast %TName_Option_String* %"$t1_4356" to %CName_Some_String* + %"$t1v_gep_4362" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t1_4361", i32 0, i32 1 + %"$t1v_load_4363" = load %String, %String* %"$t1v_gep_4362", align 8 + %t1v = alloca %String, align 8 + store %String %"$t1v_load_4363", %String* %t1v, align 8 + %"$_literal_cost_t1v_4364" = alloca %String, align 8 + %"$t1v_4365" = load %String, %String* %t1v, align 8 + store %String %"$t1v_4365", %String* %"$_literal_cost_t1v_4364", align 8 + %"$$_literal_cost_t1v_4364_4366" = bitcast %String* %"$_literal_cost_t1v_4364" to i8* + %"$_literal_cost_call_4367" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_t1v_4364_4366") + %"$_literal_cost_v1_4368" = alloca %String, align 8 + %"$v1_4369" = load %String, %String* %v1, align 8 + store %String %"$v1_4369", %String* %"$_literal_cost_v1_4368", align 8 + %"$$_literal_cost_v1_4368_4370" = bitcast %String* %"$_literal_cost_v1_4368" to i8* + %"$_literal_cost_call_4371" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v1_4368_4370") + %"$gasmin_4372" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4367", i64 %"$_literal_cost_call_4371") %"$gasrem_4373" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4374" = icmp ugt i64 2, %"$gasrem_4373" + %"$gascmp_4374" = icmp ugt i64 %"$gasmin_4372", %"$gasrem_4373" br i1 %"$gascmp_4374", label %"$out_of_gas_4375", label %"$have_gas_4376" -"$out_of_gas_4375": ; preds = %"$have_gas_4371" +"$out_of_gas_4375": ; preds = %"$Some_4360" call void @_out_of_gas() br label %"$have_gas_4376" -"$have_gas_4376": ; preds = %"$out_of_gas_4375", %"$have_gas_4371" - %"$consume_4377" = sub i64 %"$gasrem_4373", 2 +"$have_gas_4376": ; preds = %"$out_of_gas_4375", %"$Some_4360" + %"$consume_4377" = sub i64 %"$gasrem_4373", %"$gasmin_4372" store i64 %"$consume_4377", i64* @_gasrem, align 8 - %"$t1_4379" = load %TName_Option_String*, %TName_Option_String** %t1, align 8 - %"$t1_tag_4380" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t1_4379", i32 0, i32 0 - %"$t1_tag_4381" = load i8, i8* %"$t1_tag_4380", align 1 - switch i8 %"$t1_tag_4381", label %"$empty_default_4382" [ - i8 0, label %"$Some_4383" - i8 1, label %"$None_4406" + %"$execptr_load_4378" = load i8*, i8** @_execptr, align 8 + %"$t1v_4379" = load %String, %String* %t1v, align 8 + %"$v1_4380" = load %String, %String* %v1, align 8 + %"$eq_call_4381" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4378", %String %"$t1v_4379", %String %"$v1_4380") + store %TName_Bool* %"$eq_call_4381", %TName_Bool** %b1, align 8 + br label %"$matchsucc_4355" + +"$None_4383": ; preds = %"$have_gas_4353" + %"$t1_4384" = bitcast %TName_Option_String* %"$t1_4356" to %CName_None_String* + %"$gasrem_4385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4386" = icmp ugt i64 1, %"$gasrem_4385" + br i1 %"$gascmp_4386", label %"$out_of_gas_4387", label %"$have_gas_4388" + +"$out_of_gas_4387": ; preds = %"$None_4383" + call void @_out_of_gas() + br label %"$have_gas_4388" + +"$have_gas_4388": ; preds = %"$out_of_gas_4387", %"$None_4383" + %"$consume_4389" = sub i64 %"$gasrem_4385", 1 + store i64 %"$consume_4389", i64* @_gasrem, align 8 + %"$adtval_4390_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4390_salloc" = call i8* @_salloc(i8* %"$adtval_4390_load", i64 1) + %"$adtval_4390" = bitcast i8* %"$adtval_4390_salloc" to %CName_False* + %"$adtgep_4391" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4390", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4391", align 1 + %"$adtptr_4392" = bitcast %CName_False* %"$adtval_4390" to %TName_Bool* + store %TName_Bool* %"$adtptr_4392", %TName_Bool** %b1, align 8 + br label %"$matchsucc_4355" + +"$empty_default_4359": ; preds = %"$have_gas_4353" + br label %"$matchsucc_4355" + +"$matchsucc_4355": ; preds = %"$have_gas_4388", %"$have_gas_4376", %"$empty_default_4359" + %"$gasrem_4393" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4394" = icmp ugt i64 1, %"$gasrem_4393" + br i1 %"$gascmp_4394", label %"$out_of_gas_4395", label %"$have_gas_4396" + +"$out_of_gas_4395": ; preds = %"$matchsucc_4355" + call void @_out_of_gas() + br label %"$have_gas_4396" + +"$have_gas_4396": ; preds = %"$out_of_gas_4395", %"$matchsucc_4355" + %"$consume_4397" = sub i64 %"$gasrem_4393", 1 + store i64 %"$consume_4397", i64* @_gasrem, align 8 + %b2 = alloca %TName_Bool*, align 8 + %"$gasrem_4398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4399" = icmp ugt i64 2, %"$gasrem_4398" + br i1 %"$gascmp_4399", label %"$out_of_gas_4400", label %"$have_gas_4401" + +"$out_of_gas_4400": ; preds = %"$have_gas_4396" + call void @_out_of_gas() + br label %"$have_gas_4401" + +"$have_gas_4401": ; preds = %"$out_of_gas_4400", %"$have_gas_4396" + %"$consume_4402" = sub i64 %"$gasrem_4398", 2 + store i64 %"$consume_4402", i64* @_gasrem, align 8 + %"$t2_4404" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 + %"$t2_tag_4405" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t2_4404", i32 0, i32 0 + %"$t2_tag_4406" = load i8, i8* %"$t2_tag_4405", align 1 + switch i8 %"$t2_tag_4406", label %"$empty_default_4407" [ + i8 0, label %"$Some_4408" + i8 1, label %"$None_4431" ] -"$Some_4383": ; preds = %"$have_gas_4376" - %"$t1_4384" = bitcast %TName_Option_String* %"$t1_4379" to %CName_Some_String* - %"$t1v_gep_4385" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t1_4384", i32 0, i32 1 - %"$t1v_load_4386" = load %String, %String* %"$t1v_gep_4385", align 8 - %t1v = alloca %String, align 8 - store %String %"$t1v_load_4386", %String* %t1v, align 8 - %"$_literal_cost_t1v_4387" = alloca %String, align 8 - %"$t1v_4388" = load %String, %String* %t1v, align 8 - store %String %"$t1v_4388", %String* %"$_literal_cost_t1v_4387", align 8 - %"$$_literal_cost_t1v_4387_4389" = bitcast %String* %"$_literal_cost_t1v_4387" to i8* - %"$_literal_cost_call_4390" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_t1v_4387_4389") - %"$_literal_cost_v1_4391" = alloca %String, align 8 - %"$v1_4392" = load %String, %String* %v1, align 8 - store %String %"$v1_4392", %String* %"$_literal_cost_v1_4391", align 8 - %"$$_literal_cost_v1_4391_4393" = bitcast %String* %"$_literal_cost_v1_4391" to i8* - %"$_literal_cost_call_4394" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v1_4391_4393") - %"$gasmin_4395" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4390", i64 %"$_literal_cost_call_4394") - %"$gasrem_4396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4397" = icmp ugt i64 %"$gasmin_4395", %"$gasrem_4396" - br i1 %"$gascmp_4397", label %"$out_of_gas_4398", label %"$have_gas_4399" - -"$out_of_gas_4398": ; preds = %"$Some_4383" - call void @_out_of_gas() - br label %"$have_gas_4399" - -"$have_gas_4399": ; preds = %"$out_of_gas_4398", %"$Some_4383" - %"$consume_4400" = sub i64 %"$gasrem_4396", %"$gasmin_4395" - store i64 %"$consume_4400", i64* @_gasrem, align 8 - %"$execptr_load_4401" = load i8*, i8** @_execptr, align 8 - %"$t1v_4402" = load %String, %String* %t1v, align 8 - %"$v1_4403" = load %String, %String* %v1, align 8 - %"$eq_call_4404" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4401", %String %"$t1v_4402", %String %"$v1_4403") - store %TName_Bool* %"$eq_call_4404", %TName_Bool** %b1, align 8 - br label %"$matchsucc_4378" - -"$None_4406": ; preds = %"$have_gas_4376" - %"$t1_4407" = bitcast %TName_Option_String* %"$t1_4379" to %CName_None_String* - %"$gasrem_4408" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4409" = icmp ugt i64 1, %"$gasrem_4408" - br i1 %"$gascmp_4409", label %"$out_of_gas_4410", label %"$have_gas_4411" - -"$out_of_gas_4410": ; preds = %"$None_4406" - call void @_out_of_gas() - br label %"$have_gas_4411" - -"$have_gas_4411": ; preds = %"$out_of_gas_4410", %"$None_4406" - %"$consume_4412" = sub i64 %"$gasrem_4408", 1 - store i64 %"$consume_4412", i64* @_gasrem, align 8 - %"$adtval_4413_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4413_salloc" = call i8* @_salloc(i8* %"$adtval_4413_load", i64 1) - %"$adtval_4413" = bitcast i8* %"$adtval_4413_salloc" to %CName_False* - %"$adtgep_4414" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4413", i32 0, i32 0 - store i8 1, i8* %"$adtgep_4414", align 1 - %"$adtptr_4415" = bitcast %CName_False* %"$adtval_4413" to %TName_Bool* - store %TName_Bool* %"$adtptr_4415", %TName_Bool** %b1, align 8 - br label %"$matchsucc_4378" - -"$empty_default_4382": ; preds = %"$have_gas_4376" - br label %"$matchsucc_4378" - -"$matchsucc_4378": ; preds = %"$have_gas_4411", %"$have_gas_4399", %"$empty_default_4382" - %"$gasrem_4416" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4417" = icmp ugt i64 1, %"$gasrem_4416" - br i1 %"$gascmp_4417", label %"$out_of_gas_4418", label %"$have_gas_4419" - -"$out_of_gas_4418": ; preds = %"$matchsucc_4378" - call void @_out_of_gas() - br label %"$have_gas_4419" - -"$have_gas_4419": ; preds = %"$out_of_gas_4418", %"$matchsucc_4378" - %"$consume_4420" = sub i64 %"$gasrem_4416", 1 - store i64 %"$consume_4420", i64* @_gasrem, align 8 - %b2 = alloca %TName_Bool*, align 8 +"$Some_4408": ; preds = %"$have_gas_4401" + %"$t2_4409" = bitcast %TName_Option_String* %"$t2_4404" to %CName_Some_String* + %"$t2v_gep_4410" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t2_4409", i32 0, i32 1 + %"$t2v_load_4411" = load %String, %String* %"$t2v_gep_4410", align 8 + %t2v = alloca %String, align 8 + store %String %"$t2v_load_4411", %String* %t2v, align 8 + %"$_literal_cost_t2v_4412" = alloca %String, align 8 + %"$t2v_4413" = load %String, %String* %t2v, align 8 + store %String %"$t2v_4413", %String* %"$_literal_cost_t2v_4412", align 8 + %"$$_literal_cost_t2v_4412_4414" = bitcast %String* %"$_literal_cost_t2v_4412" to i8* + %"$_literal_cost_call_4415" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_t2v_4412_4414") + %"$_literal_cost_v2_4416" = alloca %String, align 8 + %"$v2_4417" = load %String, %String* %v2, align 8 + store %String %"$v2_4417", %String* %"$_literal_cost_v2_4416", align 8 + %"$$_literal_cost_v2_4416_4418" = bitcast %String* %"$_literal_cost_v2_4416" to i8* + %"$_literal_cost_call_4419" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v2_4416_4418") + %"$gasmin_4420" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4415", i64 %"$_literal_cost_call_4419") %"$gasrem_4421" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4422" = icmp ugt i64 2, %"$gasrem_4421" + %"$gascmp_4422" = icmp ugt i64 %"$gasmin_4420", %"$gasrem_4421" br i1 %"$gascmp_4422", label %"$out_of_gas_4423", label %"$have_gas_4424" -"$out_of_gas_4423": ; preds = %"$have_gas_4419" +"$out_of_gas_4423": ; preds = %"$Some_4408" call void @_out_of_gas() br label %"$have_gas_4424" -"$have_gas_4424": ; preds = %"$out_of_gas_4423", %"$have_gas_4419" - %"$consume_4425" = sub i64 %"$gasrem_4421", 2 +"$have_gas_4424": ; preds = %"$out_of_gas_4423", %"$Some_4408" + %"$consume_4425" = sub i64 %"$gasrem_4421", %"$gasmin_4420" store i64 %"$consume_4425", i64* @_gasrem, align 8 - %"$t2_4427" = load %TName_Option_String*, %TName_Option_String** %t2, align 8 - %"$t2_tag_4428" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t2_4427", i32 0, i32 0 - %"$t2_tag_4429" = load i8, i8* %"$t2_tag_4428", align 1 - switch i8 %"$t2_tag_4429", label %"$empty_default_4430" [ - i8 0, label %"$Some_4431" - i8 1, label %"$None_4454" + %"$execptr_load_4426" = load i8*, i8** @_execptr, align 8 + %"$t2v_4427" = load %String, %String* %t2v, align 8 + %"$v2_4428" = load %String, %String* %v2, align 8 + %"$eq_call_4429" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4426", %String %"$t2v_4427", %String %"$v2_4428") + store %TName_Bool* %"$eq_call_4429", %TName_Bool** %b2, align 8 + br label %"$matchsucc_4403" + +"$None_4431": ; preds = %"$have_gas_4401" + %"$t2_4432" = bitcast %TName_Option_String* %"$t2_4404" to %CName_None_String* + %"$gasrem_4433" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4434" = icmp ugt i64 1, %"$gasrem_4433" + br i1 %"$gascmp_4434", label %"$out_of_gas_4435", label %"$have_gas_4436" + +"$out_of_gas_4435": ; preds = %"$None_4431" + call void @_out_of_gas() + br label %"$have_gas_4436" + +"$have_gas_4436": ; preds = %"$out_of_gas_4435", %"$None_4431" + %"$consume_4437" = sub i64 %"$gasrem_4433", 1 + store i64 %"$consume_4437", i64* @_gasrem, align 8 + %"$adtval_4438_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4438_salloc" = call i8* @_salloc(i8* %"$adtval_4438_load", i64 1) + %"$adtval_4438" = bitcast i8* %"$adtval_4438_salloc" to %CName_False* + %"$adtgep_4439" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4438", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4439", align 1 + %"$adtptr_4440" = bitcast %CName_False* %"$adtval_4438" to %TName_Bool* + store %TName_Bool* %"$adtptr_4440", %TName_Bool** %b2, align 8 + br label %"$matchsucc_4403" + +"$empty_default_4407": ; preds = %"$have_gas_4401" + br label %"$matchsucc_4403" + +"$matchsucc_4403": ; preds = %"$have_gas_4436", %"$have_gas_4424", %"$empty_default_4407" + %"$gasrem_4441" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4442" = icmp ugt i64 1, %"$gasrem_4441" + br i1 %"$gascmp_4442", label %"$out_of_gas_4443", label %"$have_gas_4444" + +"$out_of_gas_4443": ; preds = %"$matchsucc_4403" + call void @_out_of_gas() + br label %"$have_gas_4444" + +"$have_gas_4444": ; preds = %"$out_of_gas_4443", %"$matchsucc_4403" + %"$consume_4445" = sub i64 %"$gasrem_4441", 1 + store i64 %"$consume_4445", i64* @_gasrem, align 8 + %b3 = alloca %TName_Bool*, align 8 + %"$gasrem_4446" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4447" = icmp ugt i64 2, %"$gasrem_4446" + br i1 %"$gascmp_4447", label %"$out_of_gas_4448", label %"$have_gas_4449" + +"$out_of_gas_4448": ; preds = %"$have_gas_4444" + call void @_out_of_gas() + br label %"$have_gas_4449" + +"$have_gas_4449": ; preds = %"$out_of_gas_4448", %"$have_gas_4444" + %"$consume_4450" = sub i64 %"$gasrem_4446", 2 + store i64 %"$consume_4450", i64* @_gasrem, align 8 + %"$t3_4452" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 + %"$t3_tag_4453" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t3_4452", i32 0, i32 0 + %"$t3_tag_4454" = load i8, i8* %"$t3_tag_4453", align 1 + switch i8 %"$t3_tag_4454", label %"$empty_default_4455" [ + i8 0, label %"$Some_4456" + i8 1, label %"$None_4479" ] -"$Some_4431": ; preds = %"$have_gas_4424" - %"$t2_4432" = bitcast %TName_Option_String* %"$t2_4427" to %CName_Some_String* - %"$t2v_gep_4433" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t2_4432", i32 0, i32 1 - %"$t2v_load_4434" = load %String, %String* %"$t2v_gep_4433", align 8 - %t2v = alloca %String, align 8 - store %String %"$t2v_load_4434", %String* %t2v, align 8 - %"$_literal_cost_t2v_4435" = alloca %String, align 8 - %"$t2v_4436" = load %String, %String* %t2v, align 8 - store %String %"$t2v_4436", %String* %"$_literal_cost_t2v_4435", align 8 - %"$$_literal_cost_t2v_4435_4437" = bitcast %String* %"$_literal_cost_t2v_4435" to i8* - %"$_literal_cost_call_4438" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_t2v_4435_4437") - %"$_literal_cost_v2_4439" = alloca %String, align 8 - %"$v2_4440" = load %String, %String* %v2, align 8 - store %String %"$v2_4440", %String* %"$_literal_cost_v2_4439", align 8 - %"$$_literal_cost_v2_4439_4441" = bitcast %String* %"$_literal_cost_v2_4439" to i8* - %"$_literal_cost_call_4442" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v2_4439_4441") - %"$gasmin_4443" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4438", i64 %"$_literal_cost_call_4442") - %"$gasrem_4444" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4445" = icmp ugt i64 %"$gasmin_4443", %"$gasrem_4444" - br i1 %"$gascmp_4445", label %"$out_of_gas_4446", label %"$have_gas_4447" - -"$out_of_gas_4446": ; preds = %"$Some_4431" - call void @_out_of_gas() - br label %"$have_gas_4447" - -"$have_gas_4447": ; preds = %"$out_of_gas_4446", %"$Some_4431" - %"$consume_4448" = sub i64 %"$gasrem_4444", %"$gasmin_4443" - store i64 %"$consume_4448", i64* @_gasrem, align 8 - %"$execptr_load_4449" = load i8*, i8** @_execptr, align 8 - %"$t2v_4450" = load %String, %String* %t2v, align 8 - %"$v2_4451" = load %String, %String* %v2, align 8 - %"$eq_call_4452" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4449", %String %"$t2v_4450", %String %"$v2_4451") - store %TName_Bool* %"$eq_call_4452", %TName_Bool** %b2, align 8 - br label %"$matchsucc_4426" - -"$None_4454": ; preds = %"$have_gas_4424" - %"$t2_4455" = bitcast %TName_Option_String* %"$t2_4427" to %CName_None_String* - %"$gasrem_4456" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4457" = icmp ugt i64 1, %"$gasrem_4456" - br i1 %"$gascmp_4457", label %"$out_of_gas_4458", label %"$have_gas_4459" - -"$out_of_gas_4458": ; preds = %"$None_4454" - call void @_out_of_gas() - br label %"$have_gas_4459" - -"$have_gas_4459": ; preds = %"$out_of_gas_4458", %"$None_4454" - %"$consume_4460" = sub i64 %"$gasrem_4456", 1 - store i64 %"$consume_4460", i64* @_gasrem, align 8 - %"$adtval_4461_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4461_salloc" = call i8* @_salloc(i8* %"$adtval_4461_load", i64 1) - %"$adtval_4461" = bitcast i8* %"$adtval_4461_salloc" to %CName_False* - %"$adtgep_4462" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4461", i32 0, i32 0 - store i8 1, i8* %"$adtgep_4462", align 1 - %"$adtptr_4463" = bitcast %CName_False* %"$adtval_4461" to %TName_Bool* - store %TName_Bool* %"$adtptr_4463", %TName_Bool** %b2, align 8 - br label %"$matchsucc_4426" - -"$empty_default_4430": ; preds = %"$have_gas_4424" - br label %"$matchsucc_4426" - -"$matchsucc_4426": ; preds = %"$have_gas_4459", %"$have_gas_4447", %"$empty_default_4430" - %"$gasrem_4464" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4465" = icmp ugt i64 1, %"$gasrem_4464" - br i1 %"$gascmp_4465", label %"$out_of_gas_4466", label %"$have_gas_4467" - -"$out_of_gas_4466": ; preds = %"$matchsucc_4426" - call void @_out_of_gas() - br label %"$have_gas_4467" - -"$have_gas_4467": ; preds = %"$out_of_gas_4466", %"$matchsucc_4426" - %"$consume_4468" = sub i64 %"$gasrem_4464", 1 - store i64 %"$consume_4468", i64* @_gasrem, align 8 - %b3 = alloca %TName_Bool*, align 8 +"$Some_4456": ; preds = %"$have_gas_4449" + %"$t3_4457" = bitcast %TName_Option_String* %"$t3_4452" to %CName_Some_String* + %"$t3v_gep_4458" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t3_4457", i32 0, i32 1 + %"$t3v_load_4459" = load %String, %String* %"$t3v_gep_4458", align 8 + %t3v = alloca %String, align 8 + store %String %"$t3v_load_4459", %String* %t3v, align 8 + %"$_literal_cost_t3v_4460" = alloca %String, align 8 + %"$t3v_4461" = load %String, %String* %t3v, align 8 + store %String %"$t3v_4461", %String* %"$_literal_cost_t3v_4460", align 8 + %"$$_literal_cost_t3v_4460_4462" = bitcast %String* %"$_literal_cost_t3v_4460" to i8* + %"$_literal_cost_call_4463" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_t3v_4460_4462") + %"$_literal_cost_v3_4464" = alloca %String, align 8 + %"$v3_4465" = load %String, %String* %v3, align 8 + store %String %"$v3_4465", %String* %"$_literal_cost_v3_4464", align 8 + %"$$_literal_cost_v3_4464_4466" = bitcast %String* %"$_literal_cost_v3_4464" to i8* + %"$_literal_cost_call_4467" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v3_4464_4466") + %"$gasmin_4468" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4463", i64 %"$_literal_cost_call_4467") %"$gasrem_4469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4470" = icmp ugt i64 2, %"$gasrem_4469" + %"$gascmp_4470" = icmp ugt i64 %"$gasmin_4468", %"$gasrem_4469" br i1 %"$gascmp_4470", label %"$out_of_gas_4471", label %"$have_gas_4472" -"$out_of_gas_4471": ; preds = %"$have_gas_4467" +"$out_of_gas_4471": ; preds = %"$Some_4456" call void @_out_of_gas() br label %"$have_gas_4472" -"$have_gas_4472": ; preds = %"$out_of_gas_4471", %"$have_gas_4467" - %"$consume_4473" = sub i64 %"$gasrem_4469", 2 +"$have_gas_4472": ; preds = %"$out_of_gas_4471", %"$Some_4456" + %"$consume_4473" = sub i64 %"$gasrem_4469", %"$gasmin_4468" store i64 %"$consume_4473", i64* @_gasrem, align 8 - %"$t3_4475" = load %TName_Option_String*, %TName_Option_String** %t3, align 8 - %"$t3_tag_4476" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t3_4475", i32 0, i32 0 - %"$t3_tag_4477" = load i8, i8* %"$t3_tag_4476", align 1 - switch i8 %"$t3_tag_4477", label %"$empty_default_4478" [ - i8 0, label %"$Some_4479" - i8 1, label %"$None_4502" + %"$execptr_load_4474" = load i8*, i8** @_execptr, align 8 + %"$t3v_4475" = load %String, %String* %t3v, align 8 + %"$v3_4476" = load %String, %String* %v3, align 8 + %"$eq_call_4477" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4474", %String %"$t3v_4475", %String %"$v3_4476") + store %TName_Bool* %"$eq_call_4477", %TName_Bool** %b3, align 8 + br label %"$matchsucc_4451" + +"$None_4479": ; preds = %"$have_gas_4449" + %"$t3_4480" = bitcast %TName_Option_String* %"$t3_4452" to %CName_None_String* + %"$gasrem_4481" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4482" = icmp ugt i64 1, %"$gasrem_4481" + br i1 %"$gascmp_4482", label %"$out_of_gas_4483", label %"$have_gas_4484" + +"$out_of_gas_4483": ; preds = %"$None_4479" + call void @_out_of_gas() + br label %"$have_gas_4484" + +"$have_gas_4484": ; preds = %"$out_of_gas_4483", %"$None_4479" + %"$consume_4485" = sub i64 %"$gasrem_4481", 1 + store i64 %"$consume_4485", i64* @_gasrem, align 8 + %"$adtval_4486_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4486_salloc" = call i8* @_salloc(i8* %"$adtval_4486_load", i64 1) + %"$adtval_4486" = bitcast i8* %"$adtval_4486_salloc" to %CName_False* + %"$adtgep_4487" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4486", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4487", align 1 + %"$adtptr_4488" = bitcast %CName_False* %"$adtval_4486" to %TName_Bool* + store %TName_Bool* %"$adtptr_4488", %TName_Bool** %b3, align 8 + br label %"$matchsucc_4451" + +"$empty_default_4455": ; preds = %"$have_gas_4449" + br label %"$matchsucc_4451" + +"$matchsucc_4451": ; preds = %"$have_gas_4484", %"$have_gas_4472", %"$empty_default_4455" + %"$gasrem_4489" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4490" = icmp ugt i64 1, %"$gasrem_4489" + br i1 %"$gascmp_4490", label %"$out_of_gas_4491", label %"$have_gas_4492" + +"$out_of_gas_4491": ; preds = %"$matchsucc_4451" + call void @_out_of_gas() + br label %"$have_gas_4492" + +"$have_gas_4492": ; preds = %"$out_of_gas_4491", %"$matchsucc_4451" + %"$consume_4493" = sub i64 %"$gasrem_4489", 1 + store i64 %"$consume_4493", i64* @_gasrem, align 8 + %b4 = alloca %TName_Bool*, align 8 + %"$gasrem_4494" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4495" = icmp ugt i64 2, %"$gasrem_4494" + br i1 %"$gascmp_4495", label %"$out_of_gas_4496", label %"$have_gas_4497" + +"$out_of_gas_4496": ; preds = %"$have_gas_4492" + call void @_out_of_gas() + br label %"$have_gas_4497" + +"$have_gas_4497": ; preds = %"$out_of_gas_4496", %"$have_gas_4492" + %"$consume_4498" = sub i64 %"$gasrem_4494", 2 + store i64 %"$consume_4498", i64* @_gasrem, align 8 + %"$t4_4500" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 + %"$t4_tag_4501" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t4_4500", i32 0, i32 0 + %"$t4_tag_4502" = load i8, i8* %"$t4_tag_4501", align 1 + switch i8 %"$t4_tag_4502", label %"$empty_default_4503" [ + i8 0, label %"$Some_4504" + i8 1, label %"$None_4527" ] -"$Some_4479": ; preds = %"$have_gas_4472" - %"$t3_4480" = bitcast %TName_Option_String* %"$t3_4475" to %CName_Some_String* - %"$t3v_gep_4481" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t3_4480", i32 0, i32 1 - %"$t3v_load_4482" = load %String, %String* %"$t3v_gep_4481", align 8 - %t3v = alloca %String, align 8 - store %String %"$t3v_load_4482", %String* %t3v, align 8 - %"$_literal_cost_t3v_4483" = alloca %String, align 8 - %"$t3v_4484" = load %String, %String* %t3v, align 8 - store %String %"$t3v_4484", %String* %"$_literal_cost_t3v_4483", align 8 - %"$$_literal_cost_t3v_4483_4485" = bitcast %String* %"$_literal_cost_t3v_4483" to i8* - %"$_literal_cost_call_4486" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_t3v_4483_4485") - %"$_literal_cost_v3_4487" = alloca %String, align 8 - %"$v3_4488" = load %String, %String* %v3, align 8 - store %String %"$v3_4488", %String* %"$_literal_cost_v3_4487", align 8 - %"$$_literal_cost_v3_4487_4489" = bitcast %String* %"$_literal_cost_v3_4487" to i8* - %"$_literal_cost_call_4490" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v3_4487_4489") - %"$gasmin_4491" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4486", i64 %"$_literal_cost_call_4490") - %"$gasrem_4492" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4493" = icmp ugt i64 %"$gasmin_4491", %"$gasrem_4492" - br i1 %"$gascmp_4493", label %"$out_of_gas_4494", label %"$have_gas_4495" - -"$out_of_gas_4494": ; preds = %"$Some_4479" - call void @_out_of_gas() - br label %"$have_gas_4495" - -"$have_gas_4495": ; preds = %"$out_of_gas_4494", %"$Some_4479" - %"$consume_4496" = sub i64 %"$gasrem_4492", %"$gasmin_4491" - store i64 %"$consume_4496", i64* @_gasrem, align 8 - %"$execptr_load_4497" = load i8*, i8** @_execptr, align 8 - %"$t3v_4498" = load %String, %String* %t3v, align 8 - %"$v3_4499" = load %String, %String* %v3, align 8 - %"$eq_call_4500" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4497", %String %"$t3v_4498", %String %"$v3_4499") - store %TName_Bool* %"$eq_call_4500", %TName_Bool** %b3, align 8 - br label %"$matchsucc_4474" - -"$None_4502": ; preds = %"$have_gas_4472" - %"$t3_4503" = bitcast %TName_Option_String* %"$t3_4475" to %CName_None_String* - %"$gasrem_4504" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4505" = icmp ugt i64 1, %"$gasrem_4504" - br i1 %"$gascmp_4505", label %"$out_of_gas_4506", label %"$have_gas_4507" - -"$out_of_gas_4506": ; preds = %"$None_4502" - call void @_out_of_gas() - br label %"$have_gas_4507" - -"$have_gas_4507": ; preds = %"$out_of_gas_4506", %"$None_4502" - %"$consume_4508" = sub i64 %"$gasrem_4504", 1 - store i64 %"$consume_4508", i64* @_gasrem, align 8 - %"$adtval_4509_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4509_salloc" = call i8* @_salloc(i8* %"$adtval_4509_load", i64 1) - %"$adtval_4509" = bitcast i8* %"$adtval_4509_salloc" to %CName_False* - %"$adtgep_4510" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4509", i32 0, i32 0 - store i8 1, i8* %"$adtgep_4510", align 1 - %"$adtptr_4511" = bitcast %CName_False* %"$adtval_4509" to %TName_Bool* - store %TName_Bool* %"$adtptr_4511", %TName_Bool** %b3, align 8 - br label %"$matchsucc_4474" - -"$empty_default_4478": ; preds = %"$have_gas_4472" - br label %"$matchsucc_4474" - -"$matchsucc_4474": ; preds = %"$have_gas_4507", %"$have_gas_4495", %"$empty_default_4478" - %"$gasrem_4512" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4513" = icmp ugt i64 1, %"$gasrem_4512" - br i1 %"$gascmp_4513", label %"$out_of_gas_4514", label %"$have_gas_4515" - -"$out_of_gas_4514": ; preds = %"$matchsucc_4474" - call void @_out_of_gas() - br label %"$have_gas_4515" - -"$have_gas_4515": ; preds = %"$out_of_gas_4514", %"$matchsucc_4474" - %"$consume_4516" = sub i64 %"$gasrem_4512", 1 - store i64 %"$consume_4516", i64* @_gasrem, align 8 - %b4 = alloca %TName_Bool*, align 8 +"$Some_4504": ; preds = %"$have_gas_4497" + %"$t4_4505" = bitcast %TName_Option_String* %"$t4_4500" to %CName_Some_String* + %"$t4v_gep_4506" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t4_4505", i32 0, i32 1 + %"$t4v_load_4507" = load %String, %String* %"$t4v_gep_4506", align 8 + %t4v = alloca %String, align 8 + store %String %"$t4v_load_4507", %String* %t4v, align 8 + %"$_literal_cost_t4v_4508" = alloca %String, align 8 + %"$t4v_4509" = load %String, %String* %t4v, align 8 + store %String %"$t4v_4509", %String* %"$_literal_cost_t4v_4508", align 8 + %"$$_literal_cost_t4v_4508_4510" = bitcast %String* %"$_literal_cost_t4v_4508" to i8* + %"$_literal_cost_call_4511" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_t4v_4508_4510") + %"$_literal_cost_v4_4512" = alloca %String, align 8 + %"$v4_4513" = load %String, %String* %v4, align 8 + store %String %"$v4_4513", %String* %"$_literal_cost_v4_4512", align 8 + %"$$_literal_cost_v4_4512_4514" = bitcast %String* %"$_literal_cost_v4_4512" to i8* + %"$_literal_cost_call_4515" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_42", i8* %"$$_literal_cost_v4_4512_4514") + %"$gasmin_4516" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4511", i64 %"$_literal_cost_call_4515") %"$gasrem_4517" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4518" = icmp ugt i64 2, %"$gasrem_4517" + %"$gascmp_4518" = icmp ugt i64 %"$gasmin_4516", %"$gasrem_4517" br i1 %"$gascmp_4518", label %"$out_of_gas_4519", label %"$have_gas_4520" -"$out_of_gas_4519": ; preds = %"$have_gas_4515" +"$out_of_gas_4519": ; preds = %"$Some_4504" call void @_out_of_gas() br label %"$have_gas_4520" -"$have_gas_4520": ; preds = %"$out_of_gas_4519", %"$have_gas_4515" - %"$consume_4521" = sub i64 %"$gasrem_4517", 2 +"$have_gas_4520": ; preds = %"$out_of_gas_4519", %"$Some_4504" + %"$consume_4521" = sub i64 %"$gasrem_4517", %"$gasmin_4516" store i64 %"$consume_4521", i64* @_gasrem, align 8 - %"$t4_4523" = load %TName_Option_String*, %TName_Option_String** %t4, align 8 - %"$t4_tag_4524" = getelementptr inbounds %TName_Option_String, %TName_Option_String* %"$t4_4523", i32 0, i32 0 - %"$t4_tag_4525" = load i8, i8* %"$t4_tag_4524", align 1 - switch i8 %"$t4_tag_4525", label %"$empty_default_4526" [ - i8 0, label %"$Some_4527" - i8 1, label %"$None_4550" - ] - -"$Some_4527": ; preds = %"$have_gas_4520" - %"$t4_4528" = bitcast %TName_Option_String* %"$t4_4523" to %CName_Some_String* - %"$t4v_gep_4529" = getelementptr inbounds %CName_Some_String, %CName_Some_String* %"$t4_4528", i32 0, i32 1 - %"$t4v_load_4530" = load %String, %String* %"$t4v_gep_4529", align 8 - %t4v = alloca %String, align 8 - store %String %"$t4v_load_4530", %String* %t4v, align 8 - %"$_literal_cost_t4v_4531" = alloca %String, align 8 - %"$t4v_4532" = load %String, %String* %t4v, align 8 - store %String %"$t4v_4532", %String* %"$_literal_cost_t4v_4531", align 8 - %"$$_literal_cost_t4v_4531_4533" = bitcast %String* %"$_literal_cost_t4v_4531" to i8* - %"$_literal_cost_call_4534" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_t4v_4531_4533") - %"$_literal_cost_v4_4535" = alloca %String, align 8 - %"$v4_4536" = load %String, %String* %v4, align 8 - store %String %"$v4_4536", %String* %"$_literal_cost_v4_4535", align 8 - %"$$_literal_cost_v4_4535_4537" = bitcast %String* %"$_literal_cost_v4_4535" to i8* - %"$_literal_cost_call_4538" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_50", i8* %"$$_literal_cost_v4_4535_4537") - %"$gasmin_4539" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_4534", i64 %"$_literal_cost_call_4538") - %"$gasrem_4540" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4541" = icmp ugt i64 %"$gasmin_4539", %"$gasrem_4540" - br i1 %"$gascmp_4541", label %"$out_of_gas_4542", label %"$have_gas_4543" - -"$out_of_gas_4542": ; preds = %"$Some_4527" - call void @_out_of_gas() - br label %"$have_gas_4543" - -"$have_gas_4543": ; preds = %"$out_of_gas_4542", %"$Some_4527" - %"$consume_4544" = sub i64 %"$gasrem_4540", %"$gasmin_4539" - store i64 %"$consume_4544", i64* @_gasrem, align 8 - %"$execptr_load_4545" = load i8*, i8** @_execptr, align 8 - %"$t4v_4546" = load %String, %String* %t4v, align 8 - %"$v4_4547" = load %String, %String* %v4, align 8 - %"$eq_call_4548" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4545", %String %"$t4v_4546", %String %"$v4_4547") - store %TName_Bool* %"$eq_call_4548", %TName_Bool** %b4, align 8 - br label %"$matchsucc_4522" - -"$None_4550": ; preds = %"$have_gas_4520" - %"$t4_4551" = bitcast %TName_Option_String* %"$t4_4523" to %CName_None_String* - %"$gasrem_4552" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4553" = icmp ugt i64 1, %"$gasrem_4552" - br i1 %"$gascmp_4553", label %"$out_of_gas_4554", label %"$have_gas_4555" - -"$out_of_gas_4554": ; preds = %"$None_4550" - call void @_out_of_gas() - br label %"$have_gas_4555" - -"$have_gas_4555": ; preds = %"$out_of_gas_4554", %"$None_4550" - %"$consume_4556" = sub i64 %"$gasrem_4552", 1 - store i64 %"$consume_4556", i64* @_gasrem, align 8 - %"$adtval_4557_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4557_salloc" = call i8* @_salloc(i8* %"$adtval_4557_load", i64 1) - %"$adtval_4557" = bitcast i8* %"$adtval_4557_salloc" to %CName_False* - %"$adtgep_4558" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4557", i32 0, i32 0 - store i8 1, i8* %"$adtgep_4558", align 1 - %"$adtptr_4559" = bitcast %CName_False* %"$adtval_4557" to %TName_Bool* - store %TName_Bool* %"$adtptr_4559", %TName_Bool** %b4, align 8 - br label %"$matchsucc_4522" - -"$empty_default_4526": ; preds = %"$have_gas_4520" - br label %"$matchsucc_4522" - -"$matchsucc_4522": ; preds = %"$have_gas_4555", %"$have_gas_4543", %"$empty_default_4526" - %"$gasrem_4560" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4561" = icmp ugt i64 1, %"$gasrem_4560" - br i1 %"$gascmp_4561", label %"$out_of_gas_4562", label %"$have_gas_4563" - -"$out_of_gas_4562": ; preds = %"$matchsucc_4522" - call void @_out_of_gas() - br label %"$have_gas_4563" - -"$have_gas_4563": ; preds = %"$out_of_gas_4562", %"$matchsucc_4522" - %"$consume_4564" = sub i64 %"$gasrem_4560", 1 - store i64 %"$consume_4564", i64* @_gasrem, align 8 + %"$execptr_load_4522" = load i8*, i8** @_execptr, align 8 + %"$t4v_4523" = load %String, %String* %t4v, align 8 + %"$v4_4524" = load %String, %String* %v4, align 8 + %"$eq_call_4525" = call %TName_Bool* @_eq_String(i8* %"$execptr_load_4522", %String %"$t4v_4523", %String %"$v4_4524") + store %TName_Bool* %"$eq_call_4525", %TName_Bool** %b4, align 8 + br label %"$matchsucc_4499" + +"$None_4527": ; preds = %"$have_gas_4497" + %"$t4_4528" = bitcast %TName_Option_String* %"$t4_4500" to %CName_None_String* + %"$gasrem_4529" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4530" = icmp ugt i64 1, %"$gasrem_4529" + br i1 %"$gascmp_4530", label %"$out_of_gas_4531", label %"$have_gas_4532" + +"$out_of_gas_4531": ; preds = %"$None_4527" + call void @_out_of_gas() + br label %"$have_gas_4532" + +"$have_gas_4532": ; preds = %"$out_of_gas_4531", %"$None_4527" + %"$consume_4533" = sub i64 %"$gasrem_4529", 1 + store i64 %"$consume_4533", i64* @_gasrem, align 8 + %"$adtval_4534_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4534_salloc" = call i8* @_salloc(i8* %"$adtval_4534_load", i64 1) + %"$adtval_4534" = bitcast i8* %"$adtval_4534_salloc" to %CName_False* + %"$adtgep_4535" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_4534", i32 0, i32 0 + store i8 1, i8* %"$adtgep_4535", align 1 + %"$adtptr_4536" = bitcast %CName_False* %"$adtval_4534" to %TName_Bool* + store %TName_Bool* %"$adtptr_4536", %TName_Bool** %b4, align 8 + br label %"$matchsucc_4499" + +"$empty_default_4503": ; preds = %"$have_gas_4497" + br label %"$matchsucc_4499" + +"$matchsucc_4499": ; preds = %"$have_gas_4532", %"$have_gas_4520", %"$empty_default_4503" + %"$gasrem_4537" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4538" = icmp ugt i64 1, %"$gasrem_4537" + br i1 %"$gascmp_4538", label %"$out_of_gas_4539", label %"$have_gas_4540" + +"$out_of_gas_4539": ; preds = %"$matchsucc_4499" + call void @_out_of_gas() + br label %"$have_gas_4540" + +"$have_gas_4540": ; preds = %"$out_of_gas_4539", %"$matchsucc_4499" + %"$consume_4541" = sub i64 %"$gasrem_4537", 1 + store i64 %"$consume_4541", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_4565" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4566" = icmp ugt i64 1, %"$gasrem_4565" - br i1 %"$gascmp_4566", label %"$out_of_gas_4567", label %"$have_gas_4568" + %"$gasrem_4542" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4543" = icmp ugt i64 1, %"$gasrem_4542" + br i1 %"$gascmp_4543", label %"$out_of_gas_4544", label %"$have_gas_4545" -"$out_of_gas_4567": ; preds = %"$have_gas_4563" +"$out_of_gas_4544": ; preds = %"$have_gas_4540" call void @_out_of_gas() - br label %"$have_gas_4568" + br label %"$have_gas_4545" -"$have_gas_4568": ; preds = %"$out_of_gas_4567", %"$have_gas_4563" - %"$consume_4569" = sub i64 %"$gasrem_4565", 1 - store i64 %"$consume_4569", i64* @_gasrem, align 8 +"$have_gas_4545": ; preds = %"$out_of_gas_4544", %"$have_gas_4540" + %"$consume_4546" = sub i64 %"$gasrem_4542", 1 + store i64 %"$consume_4546", i64* @_gasrem, align 8 %a1 = alloca %TName_Bool*, align 8 - %"$gasrem_4570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4571" = icmp ugt i64 1, %"$gasrem_4570" - br i1 %"$gascmp_4571", label %"$out_of_gas_4572", label %"$have_gas_4573" - -"$out_of_gas_4572": ; preds = %"$have_gas_4568" - call void @_out_of_gas() - br label %"$have_gas_4573" - -"$have_gas_4573": ; preds = %"$out_of_gas_4572", %"$have_gas_4568" - %"$consume_4574" = sub i64 %"$gasrem_4570", 1 - store i64 %"$consume_4574", i64* @_gasrem, align 8 - %"$BoolUtils.andb_17" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_4575" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_4576" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4575", 0 - %"$BoolUtils.andb_envptr_4577" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4575", 1 - %"$b1_4578" = load %TName_Bool*, %TName_Bool** %b1, align 8 - %"$BoolUtils.andb_call_4579" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4576"(i8* %"$BoolUtils.andb_envptr_4577", %TName_Bool* %"$b1_4578") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4579", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 - %"$BoolUtils.andb_18" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_17_4580" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_17", align 8 - %"$$BoolUtils.andb_17_fptr_4581" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_4580", 0 - %"$$BoolUtils.andb_17_envptr_4582" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_17_4580", 1 - %"$b2_4583" = load %TName_Bool*, %TName_Bool** %b2, align 8 - %"$$BoolUtils.andb_17_call_4584" = call %TName_Bool* %"$$BoolUtils.andb_17_fptr_4581"(i8* %"$$BoolUtils.andb_17_envptr_4582", %TName_Bool* %"$b2_4583") - store %TName_Bool* %"$$BoolUtils.andb_17_call_4584", %TName_Bool** %"$BoolUtils.andb_18", align 8 - %"$$BoolUtils.andb_18_4585" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_18", align 8 - store %TName_Bool* %"$$BoolUtils.andb_18_4585", %TName_Bool** %a1, align 8 - %"$gasrem_4586" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4587" = icmp ugt i64 1, %"$gasrem_4586" - br i1 %"$gascmp_4587", label %"$out_of_gas_4588", label %"$have_gas_4589" - -"$out_of_gas_4588": ; preds = %"$have_gas_4573" - call void @_out_of_gas() - br label %"$have_gas_4589" - -"$have_gas_4589": ; preds = %"$out_of_gas_4588", %"$have_gas_4573" - %"$consume_4590" = sub i64 %"$gasrem_4586", 1 - store i64 %"$consume_4590", i64* @_gasrem, align 8 + %"$gasrem_4547" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4548" = icmp ugt i64 1, %"$gasrem_4547" + br i1 %"$gascmp_4548", label %"$out_of_gas_4549", label %"$have_gas_4550" + +"$out_of_gas_4549": ; preds = %"$have_gas_4545" + call void @_out_of_gas() + br label %"$have_gas_4550" + +"$have_gas_4550": ; preds = %"$out_of_gas_4549", %"$have_gas_4545" + %"$consume_4551" = sub i64 %"$gasrem_4547", 1 + store i64 %"$consume_4551", i64* @_gasrem, align 8 + %"$BoolUtils.andb_4552" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_4553" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4552", 0 + %"$BoolUtils.andb_envptr_4554" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4552", 1 + %"$b1_4555" = load %TName_Bool*, %TName_Bool** %b1, align 8 + %"$b2_4556" = load %TName_Bool*, %TName_Bool** %b2, align 8 + %"$BoolUtils.andb_call_4557" = call %TName_Bool* %"$BoolUtils.andb_fptr_4553"(i8* %"$BoolUtils.andb_envptr_4554", %TName_Bool* %"$b1_4555", %TName_Bool* %"$b2_4556") + store %TName_Bool* %"$BoolUtils.andb_call_4557", %TName_Bool** %a1, align 8 + %"$gasrem_4558" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4559" = icmp ugt i64 1, %"$gasrem_4558" + br i1 %"$gascmp_4559", label %"$out_of_gas_4560", label %"$have_gas_4561" + +"$out_of_gas_4560": ; preds = %"$have_gas_4550" + call void @_out_of_gas() + br label %"$have_gas_4561" + +"$have_gas_4561": ; preds = %"$out_of_gas_4560", %"$have_gas_4550" + %"$consume_4562" = sub i64 %"$gasrem_4558", 1 + store i64 %"$consume_4562", i64* @_gasrem, align 8 %a2 = alloca %TName_Bool*, align 8 - %"$gasrem_4591" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4592" = icmp ugt i64 1, %"$gasrem_4591" - br i1 %"$gascmp_4592", label %"$out_of_gas_4593", label %"$have_gas_4594" - -"$out_of_gas_4593": ; preds = %"$have_gas_4589" - call void @_out_of_gas() - br label %"$have_gas_4594" - -"$have_gas_4594": ; preds = %"$out_of_gas_4593", %"$have_gas_4589" - %"$consume_4595" = sub i64 %"$gasrem_4591", 1 - store i64 %"$consume_4595", i64* @_gasrem, align 8 - %"$BoolUtils.andb_19" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_4596" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_4597" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4596", 0 - %"$BoolUtils.andb_envptr_4598" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4596", 1 - %"$b3_4599" = load %TName_Bool*, %TName_Bool** %b3, align 8 - %"$BoolUtils.andb_call_4600" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4597"(i8* %"$BoolUtils.andb_envptr_4598", %TName_Bool* %"$b3_4599") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4600", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8 - %"$BoolUtils.andb_20" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_19_4601" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_19", align 8 - %"$$BoolUtils.andb_19_fptr_4602" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_4601", 0 - %"$$BoolUtils.andb_19_envptr_4603" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_19_4601", 1 - %"$b4_4604" = load %TName_Bool*, %TName_Bool** %b4, align 8 - %"$$BoolUtils.andb_19_call_4605" = call %TName_Bool* %"$$BoolUtils.andb_19_fptr_4602"(i8* %"$$BoolUtils.andb_19_envptr_4603", %TName_Bool* %"$b4_4604") - store %TName_Bool* %"$$BoolUtils.andb_19_call_4605", %TName_Bool** %"$BoolUtils.andb_20", align 8 - %"$$BoolUtils.andb_20_4606" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_20", align 8 - store %TName_Bool* %"$$BoolUtils.andb_20_4606", %TName_Bool** %a2, align 8 - %"$gasrem_4607" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4608" = icmp ugt i64 1, %"$gasrem_4607" - br i1 %"$gascmp_4608", label %"$out_of_gas_4609", label %"$have_gas_4610" - -"$out_of_gas_4609": ; preds = %"$have_gas_4594" - call void @_out_of_gas() - br label %"$have_gas_4610" - -"$have_gas_4610": ; preds = %"$out_of_gas_4609", %"$have_gas_4594" - %"$consume_4611" = sub i64 %"$gasrem_4607", 1 - store i64 %"$consume_4611", i64* @_gasrem, align 8 - %"$BoolUtils.andb_21" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_4612" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_4613" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4612", 0 - %"$BoolUtils.andb_envptr_4614" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4612", 1 - %"$a1_4615" = load %TName_Bool*, %TName_Bool** %a1, align 8 - %"$BoolUtils.andb_call_4616" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_4613"(i8* %"$BoolUtils.andb_envptr_4614", %TName_Bool* %"$a1_4615") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_4616", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8 - %"$BoolUtils.andb_22" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_21_4617" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_21", align 8 - %"$$BoolUtils.andb_21_fptr_4618" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_4617", 0 - %"$$BoolUtils.andb_21_envptr_4619" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_21_4617", 1 - %"$a2_4620" = load %TName_Bool*, %TName_Bool** %a2, align 8 - %"$$BoolUtils.andb_21_call_4621" = call %TName_Bool* %"$$BoolUtils.andb_21_fptr_4618"(i8* %"$$BoolUtils.andb_21_envptr_4619", %TName_Bool* %"$a2_4620") - store %TName_Bool* %"$$BoolUtils.andb_21_call_4621", %TName_Bool** %"$BoolUtils.andb_22", align 8 - %"$$BoolUtils.andb_22_4622" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_22", align 8 - store %TName_Bool* %"$$BoolUtils.andb_22_4622", %TName_Bool** %b, align 8 - %"$gasrem_4623" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4624" = icmp ugt i64 2, %"$gasrem_4623" - br i1 %"$gascmp_4624", label %"$out_of_gas_4625", label %"$have_gas_4626" - -"$out_of_gas_4625": ; preds = %"$have_gas_4610" - call void @_out_of_gas() - br label %"$have_gas_4626" - -"$have_gas_4626": ; preds = %"$out_of_gas_4625", %"$have_gas_4610" - %"$consume_4627" = sub i64 %"$gasrem_4623", 2 - store i64 %"$consume_4627", i64* @_gasrem, align 8 - %"$b_4629" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_4630" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_4629", i32 0, i32 0 - %"$b_tag_4631" = load i8, i8* %"$b_tag_4630", align 1 - switch i8 %"$b_tag_4631", label %"$empty_default_4632" [ - i8 0, label %"$True_4633" - i8 1, label %"$False_4635" + %"$gasrem_4563" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4564" = icmp ugt i64 1, %"$gasrem_4563" + br i1 %"$gascmp_4564", label %"$out_of_gas_4565", label %"$have_gas_4566" + +"$out_of_gas_4565": ; preds = %"$have_gas_4561" + call void @_out_of_gas() + br label %"$have_gas_4566" + +"$have_gas_4566": ; preds = %"$out_of_gas_4565", %"$have_gas_4561" + %"$consume_4567" = sub i64 %"$gasrem_4563", 1 + store i64 %"$consume_4567", i64* @_gasrem, align 8 + %"$BoolUtils.andb_4568" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_4569" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4568", 0 + %"$BoolUtils.andb_envptr_4570" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4568", 1 + %"$b3_4571" = load %TName_Bool*, %TName_Bool** %b3, align 8 + %"$b4_4572" = load %TName_Bool*, %TName_Bool** %b4, align 8 + %"$BoolUtils.andb_call_4573" = call %TName_Bool* %"$BoolUtils.andb_fptr_4569"(i8* %"$BoolUtils.andb_envptr_4570", %TName_Bool* %"$b3_4571", %TName_Bool* %"$b4_4572") + store %TName_Bool* %"$BoolUtils.andb_call_4573", %TName_Bool** %a2, align 8 + %"$gasrem_4574" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4575" = icmp ugt i64 1, %"$gasrem_4574" + br i1 %"$gascmp_4575", label %"$out_of_gas_4576", label %"$have_gas_4577" + +"$out_of_gas_4576": ; preds = %"$have_gas_4566" + call void @_out_of_gas() + br label %"$have_gas_4577" + +"$have_gas_4577": ; preds = %"$out_of_gas_4576", %"$have_gas_4566" + %"$consume_4578" = sub i64 %"$gasrem_4574", 1 + store i64 %"$consume_4578", i64* @_gasrem, align 8 + %"$BoolUtils.andb_4579" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_4580" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4579", 0 + %"$BoolUtils.andb_envptr_4581" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4579", 1 + %"$a1_4582" = load %TName_Bool*, %TName_Bool** %a1, align 8 + %"$a2_4583" = load %TName_Bool*, %TName_Bool** %a2, align 8 + %"$BoolUtils.andb_call_4584" = call %TName_Bool* %"$BoolUtils.andb_fptr_4580"(i8* %"$BoolUtils.andb_envptr_4581", %TName_Bool* %"$a1_4582", %TName_Bool* %"$a2_4583") + store %TName_Bool* %"$BoolUtils.andb_call_4584", %TName_Bool** %b, align 8 + %"$gasrem_4585" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4586" = icmp ugt i64 2, %"$gasrem_4585" + br i1 %"$gascmp_4586", label %"$out_of_gas_4587", label %"$have_gas_4588" + +"$out_of_gas_4587": ; preds = %"$have_gas_4577" + call void @_out_of_gas() + br label %"$have_gas_4588" + +"$have_gas_4588": ; preds = %"$out_of_gas_4587", %"$have_gas_4577" + %"$consume_4589" = sub i64 %"$gasrem_4585", 2 + store i64 %"$consume_4589", i64* @_gasrem, align 8 + %"$b_4591" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$b_tag_4592" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_4591", i32 0, i32 0 + %"$b_tag_4593" = load i8, i8* %"$b_tag_4592", align 1 + switch i8 %"$b_tag_4593", label %"$empty_default_4594" [ + i8 0, label %"$True_4595" + i8 1, label %"$False_4597" ] -"$True_4633": ; preds = %"$have_gas_4626" - %"$b_4634" = bitcast %TName_Bool* %"$b_4629" to %CName_True* - br label %"$matchsucc_4628" +"$True_4595": ; preds = %"$have_gas_4588" + %"$b_4596" = bitcast %TName_Bool* %"$b_4591" to %CName_True* + br label %"$matchsucc_4590" -"$False_4635": ; preds = %"$have_gas_4626" - %"$b_4636" = bitcast %TName_Bool* %"$b_4629" to %CName_False* - %"$gasrem_4637" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4638" = icmp ugt i64 1, %"$gasrem_4637" - br i1 %"$gascmp_4638", label %"$out_of_gas_4639", label %"$have_gas_4640" +"$False_4597": ; preds = %"$have_gas_4588" + %"$b_4598" = bitcast %TName_Bool* %"$b_4591" to %CName_False* + %"$gasrem_4599" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4600" = icmp ugt i64 1, %"$gasrem_4599" + br i1 %"$gascmp_4600", label %"$out_of_gas_4601", label %"$have_gas_4602" -"$out_of_gas_4639": ; preds = %"$False_4635" +"$out_of_gas_4601": ; preds = %"$False_4597" call void @_out_of_gas() - br label %"$have_gas_4640" + br label %"$have_gas_4602" -"$have_gas_4640": ; preds = %"$out_of_gas_4639", %"$False_4635" - %"$consume_4641" = sub i64 %"$gasrem_4637", 1 - store i64 %"$consume_4641", i64* @_gasrem, align 8 - %"$fail__origin_4642" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4642", align 1 - %"$fail__sender_4643" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4643", align 1 - %"$tname_4644" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4642", [20 x i8]* %"$fail__sender_4643", %String %"$tname_4644") - br label %"$matchsucc_4628" +"$have_gas_4602": ; preds = %"$out_of_gas_4601", %"$False_4597" + %"$consume_4603" = sub i64 %"$gasrem_4599", 1 + store i64 %"$consume_4603", i64* @_gasrem, align 8 + %"$fail__origin_4604" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4604", align 1 + %"$fail__sender_4605" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4605", align 1 + %"$tname_4606" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4604", [20 x i8]* %"$fail__sender_4605", %String %"$tname_4606") + br label %"$matchsucc_4590" -"$empty_default_4632": ; preds = %"$have_gas_4626" - br label %"$matchsucc_4628" +"$empty_default_4594": ; preds = %"$have_gas_4588" + br label %"$matchsucc_4590" -"$matchsucc_4628": ; preds = %"$have_gas_4640", %"$True_4633", %"$empty_default_4632" - %"$gasrem_4645" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4646" = icmp ugt i64 1, %"$gasrem_4645" - br i1 %"$gascmp_4646", label %"$out_of_gas_4647", label %"$have_gas_4648" +"$matchsucc_4590": ; preds = %"$have_gas_4602", %"$True_4595", %"$empty_default_4594" + %"$gasrem_4607" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4608" = icmp ugt i64 1, %"$gasrem_4607" + br i1 %"$gascmp_4608", label %"$out_of_gas_4609", label %"$have_gas_4610" -"$out_of_gas_4647": ; preds = %"$matchsucc_4628" +"$out_of_gas_4609": ; preds = %"$matchsucc_4590" call void @_out_of_gas() - br label %"$have_gas_4648" + br label %"$have_gas_4610" -"$have_gas_4648": ; preds = %"$out_of_gas_4647", %"$matchsucc_4628" - %"$consume_4649" = sub i64 %"$gasrem_4645", 1 - store i64 %"$consume_4649", i64* @_gasrem, align 8 +"$have_gas_4610": ; preds = %"$out_of_gas_4609", %"$matchsucc_4590" + %"$consume_4611" = sub i64 %"$gasrem_4607", 1 + store i64 %"$consume_4611", i64* @_gasrem, align 8 %m1 = alloca %Map_String_String*, align 8 - %"$gasrem_4650" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4651" = icmp ugt i64 1, %"$gasrem_4650" - br i1 %"$gascmp_4651", label %"$out_of_gas_4652", label %"$have_gas_4653" + %"$gasrem_4612" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4613" = icmp ugt i64 1, %"$gasrem_4612" + br i1 %"$gascmp_4613", label %"$out_of_gas_4614", label %"$have_gas_4615" -"$out_of_gas_4652": ; preds = %"$have_gas_4648" +"$out_of_gas_4614": ; preds = %"$have_gas_4610" call void @_out_of_gas() - br label %"$have_gas_4653" + br label %"$have_gas_4615" -"$have_gas_4653": ; preds = %"$out_of_gas_4652", %"$have_gas_4648" - %"$consume_4654" = sub i64 %"$gasrem_4650", 1 - store i64 %"$consume_4654", i64* @_gasrem, align 8 +"$have_gas_4615": ; preds = %"$out_of_gas_4614", %"$have_gas_4610" + %"$consume_4616" = sub i64 %"$gasrem_4612", 1 + store i64 %"$consume_4616", i64* @_gasrem, align 8 %k = alloca %String, align 8 - %"$gasrem_4655" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4656" = icmp ugt i64 1, %"$gasrem_4655" - br i1 %"$gascmp_4656", label %"$out_of_gas_4657", label %"$have_gas_4658" + %"$gasrem_4617" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4618" = icmp ugt i64 1, %"$gasrem_4617" + br i1 %"$gascmp_4618", label %"$out_of_gas_4619", label %"$have_gas_4620" -"$out_of_gas_4657": ; preds = %"$have_gas_4653" +"$out_of_gas_4619": ; preds = %"$have_gas_4615" call void @_out_of_gas() - br label %"$have_gas_4658" + br label %"$have_gas_4620" -"$have_gas_4658": ; preds = %"$out_of_gas_4657", %"$have_gas_4653" - %"$consume_4659" = sub i64 %"$gasrem_4655", 1 - store i64 %"$consume_4659", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4660", i32 0, i32 0), i32 0 }, %String* %k, align 8 - %"$gasrem_4661" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4662" = icmp ugt i64 1, %"$gasrem_4661" - br i1 %"$gascmp_4662", label %"$out_of_gas_4663", label %"$have_gas_4664" +"$have_gas_4620": ; preds = %"$out_of_gas_4619", %"$have_gas_4615" + %"$consume_4621" = sub i64 %"$gasrem_4617", 1 + store i64 %"$consume_4621", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4622", i32 0, i32 0), i32 0 }, %String* %k, align 8 + %"$gasrem_4623" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4624" = icmp ugt i64 1, %"$gasrem_4623" + br i1 %"$gascmp_4624", label %"$out_of_gas_4625", label %"$have_gas_4626" -"$out_of_gas_4663": ; preds = %"$have_gas_4658" +"$out_of_gas_4625": ; preds = %"$have_gas_4620" call void @_out_of_gas() - br label %"$have_gas_4664" + br label %"$have_gas_4626" -"$have_gas_4664": ; preds = %"$out_of_gas_4663", %"$have_gas_4658" - %"$consume_4665" = sub i64 %"$gasrem_4661", 1 - store i64 %"$consume_4665", i64* @_gasrem, align 8 +"$have_gas_4626": ; preds = %"$out_of_gas_4625", %"$have_gas_4620" + %"$consume_4627" = sub i64 %"$gasrem_4623", 1 + store i64 %"$consume_4627", i64* @_gasrem, align 8 %v = alloca %String, align 8 - %"$gasrem_4666" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4667" = icmp ugt i64 1, %"$gasrem_4666" - br i1 %"$gascmp_4667", label %"$out_of_gas_4668", label %"$have_gas_4669" + %"$gasrem_4628" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4629" = icmp ugt i64 1, %"$gasrem_4628" + br i1 %"$gascmp_4629", label %"$out_of_gas_4630", label %"$have_gas_4631" -"$out_of_gas_4668": ; preds = %"$have_gas_4664" +"$out_of_gas_4630": ; preds = %"$have_gas_4626" call void @_out_of_gas() - br label %"$have_gas_4669" + br label %"$have_gas_4631" -"$have_gas_4669": ; preds = %"$out_of_gas_4668", %"$have_gas_4664" - %"$consume_4670" = sub i64 %"$gasrem_4666", 1 - store i64 %"$consume_4670", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4671", i32 0, i32 0), i32 3 }, %String* %v, align 8 - %"$gasrem_4672" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4673" = icmp ugt i64 1, %"$gasrem_4672" - br i1 %"$gascmp_4673", label %"$out_of_gas_4674", label %"$have_gas_4675" +"$have_gas_4631": ; preds = %"$out_of_gas_4630", %"$have_gas_4626" + %"$consume_4632" = sub i64 %"$gasrem_4628", 1 + store i64 %"$consume_4632", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4633", i32 0, i32 0), i32 3 }, %String* %v, align 8 + %"$gasrem_4634" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4635" = icmp ugt i64 1, %"$gasrem_4634" + br i1 %"$gascmp_4635", label %"$out_of_gas_4636", label %"$have_gas_4637" -"$out_of_gas_4674": ; preds = %"$have_gas_4669" +"$out_of_gas_4636": ; preds = %"$have_gas_4631" call void @_out_of_gas() - br label %"$have_gas_4675" + br label %"$have_gas_4637" -"$have_gas_4675": ; preds = %"$out_of_gas_4674", %"$have_gas_4669" - %"$consume_4676" = sub i64 %"$gasrem_4672", 1 - store i64 %"$consume_4676", i64* @_gasrem, align 8 +"$have_gas_4637": ; preds = %"$out_of_gas_4636", %"$have_gas_4631" + %"$consume_4638" = sub i64 %"$gasrem_4634", 1 + store i64 %"$consume_4638", i64* @_gasrem, align 8 %e = alloca %Map_String_String*, align 8 - %"$gasrem_4677" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4678" = icmp ugt i64 1, %"$gasrem_4677" - br i1 %"$gascmp_4678", label %"$out_of_gas_4679", label %"$have_gas_4680" - -"$out_of_gas_4679": ; preds = %"$have_gas_4675" - call void @_out_of_gas() - br label %"$have_gas_4680" - -"$have_gas_4680": ; preds = %"$out_of_gas_4679", %"$have_gas_4675" - %"$consume_4681" = sub i64 %"$gasrem_4677", 1 - store i64 %"$consume_4681", i64* @_gasrem, align 8 - %"$execptr_load_4682" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_4683" = call i8* @_new_empty_map(i8* %"$execptr_load_4682") - %"$_new_empty_map_4684" = bitcast i8* %"$_new_empty_map_call_4683" to %Map_String_String* - store %Map_String_String* %"$_new_empty_map_4684", %Map_String_String** %e, align 8 - %"$e_4685" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_4685_4686" = bitcast %Map_String_String* %"$e_4685" to i8* - %"$_lengthof_call_4687" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$e_4685_4686") - %"$gasadd_4688" = add i64 1, %"$_lengthof_call_4687" - %"$gasrem_4689" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4690" = icmp ugt i64 %"$gasadd_4688", %"$gasrem_4689" - br i1 %"$gascmp_4690", label %"$out_of_gas_4691", label %"$have_gas_4692" - -"$out_of_gas_4691": ; preds = %"$have_gas_4680" - call void @_out_of_gas() - br label %"$have_gas_4692" - -"$have_gas_4692": ; preds = %"$out_of_gas_4691", %"$have_gas_4680" - %"$consume_4693" = sub i64 %"$gasrem_4689", %"$gasadd_4688" - store i64 %"$consume_4693", i64* @_gasrem, align 8 - %"$execptr_load_4694" = load i8*, i8** @_execptr, align 8 - %"$e_4695" = load %Map_String_String*, %Map_String_String** %e, align 8 - %"$$e_4695_4696" = bitcast %Map_String_String* %"$e_4695" to i8* - %"$put_k_4697" = alloca %String, align 8 - %"$k_4698" = load %String, %String* %k, align 8 - store %String %"$k_4698", %String* %"$put_k_4697", align 8 - %"$$put_k_4697_4699" = bitcast %String* %"$put_k_4697" to i8* - %"$put_v_4700" = alloca %String, align 8 - %"$v_4701" = load %String, %String* %v, align 8 - store %String %"$v_4701", %String* %"$put_v_4700", align 8 - %"$$put_v_4700_4702" = bitcast %String* %"$put_v_4700" to i8* - %"$put_call_4703" = call i8* @_put(i8* %"$execptr_load_4694", %_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$e_4695_4696", i8* %"$$put_k_4697_4699", i8* %"$$put_v_4700_4702") - %"$put_4704" = bitcast i8* %"$put_call_4703" to %Map_String_String* - store %Map_String_String* %"$put_4704", %Map_String_String** %m1, align 8 - %"$m1_4705" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$$m1_4705_4706" = bitcast %Map_String_String* %"$m1_4705" to i8* - %"$_literal_cost_call_4707" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_73", i8* %"$$m1_4705_4706") - %"$gasrem_4708" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4709" = icmp ugt i64 %"$_literal_cost_call_4707", %"$gasrem_4708" - br i1 %"$gascmp_4709", label %"$out_of_gas_4710", label %"$have_gas_4711" - -"$out_of_gas_4710": ; preds = %"$have_gas_4692" - call void @_out_of_gas() - br label %"$have_gas_4711" - -"$have_gas_4711": ; preds = %"$out_of_gas_4710", %"$have_gas_4692" - %"$consume_4712" = sub i64 %"$gasrem_4708", %"$_literal_cost_call_4707" - store i64 %"$consume_4712", i64* @_gasrem, align 8 - %"$execptr_load_4713" = load i8*, i8** @_execptr, align 8 - %"$m1_4715" = load %Map_String_String*, %Map_String_String** %m1, align 8 - %"$update_value_4716" = bitcast %Map_String_String* %"$m1_4715" to i8* - call void @_update_field(i8* %"$execptr_load_4713", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4714", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 0, i8* null, i8* %"$update_value_4716") + %"$gasrem_4639" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4640" = icmp ugt i64 1, %"$gasrem_4639" + br i1 %"$gascmp_4640", label %"$out_of_gas_4641", label %"$have_gas_4642" + +"$out_of_gas_4641": ; preds = %"$have_gas_4637" + call void @_out_of_gas() + br label %"$have_gas_4642" + +"$have_gas_4642": ; preds = %"$out_of_gas_4641", %"$have_gas_4637" + %"$consume_4643" = sub i64 %"$gasrem_4639", 1 + store i64 %"$consume_4643", i64* @_gasrem, align 8 + %"$execptr_load_4644" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_4645" = call i8* @_new_empty_map(i8* %"$execptr_load_4644") + %"$_new_empty_map_4646" = bitcast i8* %"$_new_empty_map_call_4645" to %Map_String_String* + store %Map_String_String* %"$_new_empty_map_4646", %Map_String_String** %e, align 8 + %"$e_4647" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_4647_4648" = bitcast %Map_String_String* %"$e_4647" to i8* + %"$_lengthof_call_4649" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$e_4647_4648") + %"$gasadd_4650" = add i64 1, %"$_lengthof_call_4649" + %"$gasrem_4651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4652" = icmp ugt i64 %"$gasadd_4650", %"$gasrem_4651" + br i1 %"$gascmp_4652", label %"$out_of_gas_4653", label %"$have_gas_4654" + +"$out_of_gas_4653": ; preds = %"$have_gas_4642" + call void @_out_of_gas() + br label %"$have_gas_4654" + +"$have_gas_4654": ; preds = %"$out_of_gas_4653", %"$have_gas_4642" + %"$consume_4655" = sub i64 %"$gasrem_4651", %"$gasadd_4650" + store i64 %"$consume_4655", i64* @_gasrem, align 8 + %"$execptr_load_4656" = load i8*, i8** @_execptr, align 8 + %"$e_4657" = load %Map_String_String*, %Map_String_String** %e, align 8 + %"$$e_4657_4658" = bitcast %Map_String_String* %"$e_4657" to i8* + %"$put_k_4659" = alloca %String, align 8 + %"$k_4660" = load %String, %String* %k, align 8 + store %String %"$k_4660", %String* %"$put_k_4659", align 8 + %"$$put_k_4659_4661" = bitcast %String* %"$put_k_4659" to i8* + %"$put_v_4662" = alloca %String, align 8 + %"$v_4663" = load %String, %String* %v, align 8 + store %String %"$v_4663", %String* %"$put_v_4662", align 8 + %"$$put_v_4662_4664" = bitcast %String* %"$put_v_4662" to i8* + %"$put_call_4665" = call i8* @_put(i8* %"$execptr_load_4656", %_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$e_4657_4658", i8* %"$$put_k_4659_4661", i8* %"$$put_v_4662_4664") + %"$put_4666" = bitcast i8* %"$put_call_4665" to %Map_String_String* + store %Map_String_String* %"$put_4666", %Map_String_String** %m1, align 8 + %"$m1_4667" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$$m1_4667_4668" = bitcast %Map_String_String* %"$m1_4667" to i8* + %"$_literal_cost_call_4669" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Map_65", i8* %"$$m1_4667_4668") + %"$gasrem_4670" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4671" = icmp ugt i64 %"$_literal_cost_call_4669", %"$gasrem_4670" + br i1 %"$gascmp_4671", label %"$out_of_gas_4672", label %"$have_gas_4673" + +"$out_of_gas_4672": ; preds = %"$have_gas_4654" + call void @_out_of_gas() + br label %"$have_gas_4673" + +"$have_gas_4673": ; preds = %"$out_of_gas_4672", %"$have_gas_4654" + %"$consume_4674" = sub i64 %"$gasrem_4670", %"$_literal_cost_call_4669" + store i64 %"$consume_4674", i64* @_gasrem, align 8 + %"$execptr_load_4675" = load i8*, i8** @_execptr, align 8 + %"$m1_4677" = load %Map_String_String*, %Map_String_String** %m1, align 8 + %"$update_value_4678" = bitcast %Map_String_String* %"$m1_4677" to i8* + call void @_update_field(i8* %"$execptr_load_4675", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4676", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 0, i8* null, i8* %"$update_value_4678") ret void } define void @t16(i8* %0) { entry: - %"$_amount_4718" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4719" = bitcast i8* %"$_amount_4718" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4719", align 8 - %"$_origin_4720" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4721" = bitcast i8* %"$_origin_4720" to [20 x i8]* - %"$_sender_4722" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4723" = bitcast i8* %"$_sender_4722" to [20 x i8]* - call void @"$t16_4146"(%Uint128 %_amount, [20 x i8]* %"$_origin_4721", [20 x i8]* %"$_sender_4723") + %"$_amount_4680" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4681" = bitcast i8* %"$_amount_4680" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4681", align 8 + %"$_origin_4682" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4683" = bitcast i8* %"$_origin_4682" to [20 x i8]* + %"$_sender_4684" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4685" = bitcast i8* %"$_sender_4684" to [20 x i8]* + call void @"$t16_4123"(%Uint128 %_amount, [20 x i8]* %"$_origin_4683", [20 x i8]* %"$_sender_4685") ret void } -define internal void @"$t17_4724"(%Uint128 %_amount, [20 x i8]* %"$_origin_4725", [20 x i8]* %"$_sender_4726") { +define internal void @"$t17_4686"(%Uint128 %_amount, [20 x i8]* %"$_origin_4687", [20 x i8]* %"$_sender_4688") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4725", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4726", align 1 - %"$gasrem_4727" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4728" = icmp ugt i64 1, %"$gasrem_4727" - br i1 %"$gascmp_4728", label %"$out_of_gas_4729", label %"$have_gas_4730" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4687", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4688", align 1 + %"$gasrem_4689" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4690" = icmp ugt i64 1, %"$gasrem_4689" + br i1 %"$gascmp_4690", label %"$out_of_gas_4691", label %"$have_gas_4692" -"$out_of_gas_4729": ; preds = %entry +"$out_of_gas_4691": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_4730" + br label %"$have_gas_4692" -"$have_gas_4730": ; preds = %"$out_of_gas_4729", %entry - %"$consume_4731" = sub i64 %"$gasrem_4727", 1 - store i64 %"$consume_4731", i64* @_gasrem, align 8 +"$have_gas_4692": ; preds = %"$out_of_gas_4691", %entry + %"$consume_4693" = sub i64 %"$gasrem_4689", 1 + store i64 %"$consume_4693", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_4732" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4733" = icmp ugt i64 1, %"$gasrem_4732" - br i1 %"$gascmp_4733", label %"$out_of_gas_4734", label %"$have_gas_4735" + %"$gasrem_4694" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4695" = icmp ugt i64 1, %"$gasrem_4694" + br i1 %"$gascmp_4695", label %"$out_of_gas_4696", label %"$have_gas_4697" -"$out_of_gas_4734": ; preds = %"$have_gas_4730" +"$out_of_gas_4696": ; preds = %"$have_gas_4692" call void @_out_of_gas() - br label %"$have_gas_4735" + br label %"$have_gas_4697" -"$have_gas_4735": ; preds = %"$out_of_gas_4734", %"$have_gas_4730" - %"$consume_4736" = sub i64 %"$gasrem_4732", 1 - store i64 %"$consume_4736", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4737", i32 0, i32 0), i32 3 }, %String* %tname, align 8 - %"$gasrem_4738" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4739" = icmp ugt i64 1, %"$gasrem_4738" - br i1 %"$gascmp_4739", label %"$out_of_gas_4740", label %"$have_gas_4741" +"$have_gas_4697": ; preds = %"$out_of_gas_4696", %"$have_gas_4692" + %"$consume_4698" = sub i64 %"$gasrem_4694", 1 + store i64 %"$consume_4698", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4699", i32 0, i32 0), i32 3 }, %String* %tname, align 8 + %"$gasrem_4700" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4701" = icmp ugt i64 1, %"$gasrem_4700" + br i1 %"$gascmp_4701", label %"$out_of_gas_4702", label %"$have_gas_4703" -"$out_of_gas_4740": ; preds = %"$have_gas_4735" +"$out_of_gas_4702": ; preds = %"$have_gas_4697" call void @_out_of_gas() - br label %"$have_gas_4741" + br label %"$have_gas_4703" -"$have_gas_4741": ; preds = %"$out_of_gas_4740", %"$have_gas_4735" - %"$consume_4742" = sub i64 %"$gasrem_4738", 1 - store i64 %"$consume_4742", i64* @_gasrem, align 8 +"$have_gas_4703": ; preds = %"$out_of_gas_4702", %"$have_gas_4697" + %"$consume_4704" = sub i64 %"$gasrem_4700", 1 + store i64 %"$consume_4704", i64* @_gasrem, align 8 %key = alloca %String, align 8 - %"$gasrem_4743" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4744" = icmp ugt i64 1, %"$gasrem_4743" - br i1 %"$gascmp_4744", label %"$out_of_gas_4745", label %"$have_gas_4746" + %"$gasrem_4705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4706" = icmp ugt i64 1, %"$gasrem_4705" + br i1 %"$gascmp_4706", label %"$out_of_gas_4707", label %"$have_gas_4708" -"$out_of_gas_4745": ; preds = %"$have_gas_4741" +"$out_of_gas_4707": ; preds = %"$have_gas_4703" call void @_out_of_gas() - br label %"$have_gas_4746" + br label %"$have_gas_4708" -"$have_gas_4746": ; preds = %"$out_of_gas_4745", %"$have_gas_4741" - %"$consume_4747" = sub i64 %"$gasrem_4743", 1 - store i64 %"$consume_4747", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4748", i32 0, i32 0), i32 0 }, %String* %key, align 8 +"$have_gas_4708": ; preds = %"$out_of_gas_4707", %"$have_gas_4703" + %"$consume_4709" = sub i64 %"$gasrem_4705", 1 + store i64 %"$consume_4709", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4710", i32 0, i32 0), i32 0 }, %String* %key, align 8 %found = alloca %TName_Bool*, align 8 - %"$indices_buf_4749_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4749_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4749_salloc_load", i64 16) - %"$indices_buf_4749_salloc" = bitcast i8* %"$indices_buf_4749_salloc_salloc" to [16 x i8]* - %"$indices_buf_4749" = bitcast [16 x i8]* %"$indices_buf_4749_salloc" to i8* - %"$key_4750" = load %String, %String* %key, align 8 - %"$indices_gep_4751" = getelementptr i8, i8* %"$indices_buf_4749", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4751" to %String* - store %String %"$key_4750", %String* %indices_cast, align 8 - %"$execptr_load_4753" = load i8*, i8** @_execptr, align 8 - %"$found_call_4754" = call i8* @_fetch_field(i8* %"$execptr_load_4753", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4752", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_4749", i32 0) - %"$found_4755" = bitcast i8* %"$found_call_4754" to %TName_Bool* - store %TName_Bool* %"$found_4755", %TName_Bool** %found, align 8 - %"$found_4756" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$$found_4756_4757" = bitcast %TName_Bool* %"$found_4756" to i8* - %"$_literal_cost_call_4758" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_69", i8* %"$$found_4756_4757") - %"$gasadd_4759" = add i64 %"$_literal_cost_call_4758", 0 - %"$gasadd_4760" = add i64 %"$gasadd_4759", 1 - %"$gasrem_4761" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4762" = icmp ugt i64 %"$gasadd_4760", %"$gasrem_4761" - br i1 %"$gascmp_4762", label %"$out_of_gas_4763", label %"$have_gas_4764" - -"$out_of_gas_4763": ; preds = %"$have_gas_4746" - call void @_out_of_gas() - br label %"$have_gas_4764" - -"$have_gas_4764": ; preds = %"$out_of_gas_4763", %"$have_gas_4746" - %"$consume_4765" = sub i64 %"$gasrem_4761", %"$gasadd_4760" - store i64 %"$consume_4765", i64* @_gasrem, align 8 - %"$gasrem_4766" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4767" = icmp ugt i64 2, %"$gasrem_4766" - br i1 %"$gascmp_4767", label %"$out_of_gas_4768", label %"$have_gas_4769" - -"$out_of_gas_4768": ; preds = %"$have_gas_4764" - call void @_out_of_gas() - br label %"$have_gas_4769" - -"$have_gas_4769": ; preds = %"$out_of_gas_4768", %"$have_gas_4764" - %"$consume_4770" = sub i64 %"$gasrem_4766", 2 - store i64 %"$consume_4770", i64* @_gasrem, align 8 - %"$found_4772" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$found_tag_4773" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4772", i32 0, i32 0 - %"$found_tag_4774" = load i8, i8* %"$found_tag_4773", align 1 - switch i8 %"$found_tag_4774", label %"$empty_default_4775" [ - i8 0, label %"$True_4776" - i8 1, label %"$False_4778" + %"$indices_buf_4711_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4711_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4711_salloc_load", i64 16) + %"$indices_buf_4711_salloc" = bitcast i8* %"$indices_buf_4711_salloc_salloc" to [16 x i8]* + %"$indices_buf_4711" = bitcast [16 x i8]* %"$indices_buf_4711_salloc" to i8* + %"$key_4712" = load %String, %String* %key, align 8 + %"$indices_gep_4713" = getelementptr i8, i8* %"$indices_buf_4711", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4713" to %String* + store %String %"$key_4712", %String* %indices_cast, align 8 + %"$execptr_load_4715" = load i8*, i8** @_execptr, align 8 + %"$found_call_4716" = call i8* @_fetch_field(i8* %"$execptr_load_4715", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4714", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_4711", i32 0) + %"$found_4717" = bitcast i8* %"$found_call_4716" to %TName_Bool* + store %TName_Bool* %"$found_4717", %TName_Bool** %found, align 8 + %"$found_4718" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$$found_4718_4719" = bitcast %TName_Bool* %"$found_4718" to i8* + %"$_literal_cost_call_4720" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_61", i8* %"$$found_4718_4719") + %"$gasadd_4721" = add i64 %"$_literal_cost_call_4720", 0 + %"$gasadd_4722" = add i64 %"$gasadd_4721", 1 + %"$gasrem_4723" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4724" = icmp ugt i64 %"$gasadd_4722", %"$gasrem_4723" + br i1 %"$gascmp_4724", label %"$out_of_gas_4725", label %"$have_gas_4726" + +"$out_of_gas_4725": ; preds = %"$have_gas_4708" + call void @_out_of_gas() + br label %"$have_gas_4726" + +"$have_gas_4726": ; preds = %"$out_of_gas_4725", %"$have_gas_4708" + %"$consume_4727" = sub i64 %"$gasrem_4723", %"$gasadd_4722" + store i64 %"$consume_4727", i64* @_gasrem, align 8 + %"$gasrem_4728" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4729" = icmp ugt i64 2, %"$gasrem_4728" + br i1 %"$gascmp_4729", label %"$out_of_gas_4730", label %"$have_gas_4731" + +"$out_of_gas_4730": ; preds = %"$have_gas_4726" + call void @_out_of_gas() + br label %"$have_gas_4731" + +"$have_gas_4731": ; preds = %"$out_of_gas_4730", %"$have_gas_4726" + %"$consume_4732" = sub i64 %"$gasrem_4728", 2 + store i64 %"$consume_4732", i64* @_gasrem, align 8 + %"$found_4734" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$found_tag_4735" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4734", i32 0, i32 0 + %"$found_tag_4736" = load i8, i8* %"$found_tag_4735", align 1 + switch i8 %"$found_tag_4736", label %"$empty_default_4737" [ + i8 0, label %"$True_4738" + i8 1, label %"$False_4740" ] -"$True_4776": ; preds = %"$have_gas_4769" - %"$found_4777" = bitcast %TName_Bool* %"$found_4772" to %CName_True* - br label %"$matchsucc_4771" - -"$False_4778": ; preds = %"$have_gas_4769" - %"$found_4779" = bitcast %TName_Bool* %"$found_4772" to %CName_False* - %"$gasrem_4780" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4781" = icmp ugt i64 1, %"$gasrem_4780" - br i1 %"$gascmp_4781", label %"$out_of_gas_4782", label %"$have_gas_4783" - -"$out_of_gas_4782": ; preds = %"$False_4778" - call void @_out_of_gas() - br label %"$have_gas_4783" - -"$have_gas_4783": ; preds = %"$out_of_gas_4782", %"$False_4778" - %"$consume_4784" = sub i64 %"$gasrem_4780", 1 - store i64 %"$consume_4784", i64* @_gasrem, align 8 - %"$fail__origin_4785" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4785", align 1 - %"$fail__sender_4786" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4786", align 1 - %"$tname_4787" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4785", [20 x i8]* %"$fail__sender_4786", %String %"$tname_4787") - br label %"$matchsucc_4771" - -"$empty_default_4775": ; preds = %"$have_gas_4769" - br label %"$matchsucc_4771" - -"$matchsucc_4771": ; preds = %"$have_gas_4783", %"$True_4776", %"$empty_default_4775" - %"$gasrem_4788" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4789" = icmp ugt i64 1, %"$gasrem_4788" - br i1 %"$gascmp_4789", label %"$out_of_gas_4790", label %"$have_gas_4791" - -"$out_of_gas_4790": ; preds = %"$matchsucc_4771" - call void @_out_of_gas() - br label %"$have_gas_4791" - -"$have_gas_4791": ; preds = %"$out_of_gas_4790", %"$matchsucc_4771" - %"$consume_4792" = sub i64 %"$gasrem_4788", 1 - store i64 %"$consume_4792", i64* @_gasrem, align 8 - %"$indices_buf_4793_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4793_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4793_salloc_load", i64 16) - %"$indices_buf_4793_salloc" = bitcast i8* %"$indices_buf_4793_salloc_salloc" to [16 x i8]* - %"$indices_buf_4793" = bitcast [16 x i8]* %"$indices_buf_4793_salloc" to i8* - %"$key_4794" = load %String, %String* %key, align 8 - %"$indices_gep_4795" = getelementptr i8, i8* %"$indices_buf_4793", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_4795" to %String* - store %String %"$key_4794", %String* %indices_cast1, align 8 - %"$execptr_load_4796" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_4796", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4797", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_4793", i8* null) +"$True_4738": ; preds = %"$have_gas_4731" + %"$found_4739" = bitcast %TName_Bool* %"$found_4734" to %CName_True* + br label %"$matchsucc_4733" + +"$False_4740": ; preds = %"$have_gas_4731" + %"$found_4741" = bitcast %TName_Bool* %"$found_4734" to %CName_False* + %"$gasrem_4742" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4743" = icmp ugt i64 1, %"$gasrem_4742" + br i1 %"$gascmp_4743", label %"$out_of_gas_4744", label %"$have_gas_4745" + +"$out_of_gas_4744": ; preds = %"$False_4740" + call void @_out_of_gas() + br label %"$have_gas_4745" + +"$have_gas_4745": ; preds = %"$out_of_gas_4744", %"$False_4740" + %"$consume_4746" = sub i64 %"$gasrem_4742", 1 + store i64 %"$consume_4746", i64* @_gasrem, align 8 + %"$fail__origin_4747" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4747", align 1 + %"$fail__sender_4748" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4748", align 1 + %"$tname_4749" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4747", [20 x i8]* %"$fail__sender_4748", %String %"$tname_4749") + br label %"$matchsucc_4733" + +"$empty_default_4737": ; preds = %"$have_gas_4731" + br label %"$matchsucc_4733" + +"$matchsucc_4733": ; preds = %"$have_gas_4745", %"$True_4738", %"$empty_default_4737" + %"$gasrem_4750" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4751" = icmp ugt i64 1, %"$gasrem_4750" + br i1 %"$gascmp_4751", label %"$out_of_gas_4752", label %"$have_gas_4753" + +"$out_of_gas_4752": ; preds = %"$matchsucc_4733" + call void @_out_of_gas() + br label %"$have_gas_4753" + +"$have_gas_4753": ; preds = %"$out_of_gas_4752", %"$matchsucc_4733" + %"$consume_4754" = sub i64 %"$gasrem_4750", 1 + store i64 %"$consume_4754", i64* @_gasrem, align 8 + %"$indices_buf_4755_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4755_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4755_salloc_load", i64 16) + %"$indices_buf_4755_salloc" = bitcast i8* %"$indices_buf_4755_salloc_salloc" to [16 x i8]* + %"$indices_buf_4755" = bitcast [16 x i8]* %"$indices_buf_4755_salloc" to i8* + %"$key_4756" = load %String, %String* %key, align 8 + %"$indices_gep_4757" = getelementptr i8, i8* %"$indices_buf_4755", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_4757" to %String* + store %String %"$key_4756", %String* %indices_cast1, align 8 + %"$execptr_load_4758" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_4758", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4759", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_4755", i8* null) ret void } define void @t17(i8* %0) { entry: - %"$_amount_4799" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4800" = bitcast i8* %"$_amount_4799" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4800", align 8 - %"$_origin_4801" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4802" = bitcast i8* %"$_origin_4801" to [20 x i8]* - %"$_sender_4803" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4804" = bitcast i8* %"$_sender_4803" to [20 x i8]* - call void @"$t17_4724"(%Uint128 %_amount, [20 x i8]* %"$_origin_4802", [20 x i8]* %"$_sender_4804") + %"$_amount_4761" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4762" = bitcast i8* %"$_amount_4761" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4762", align 8 + %"$_origin_4763" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4764" = bitcast i8* %"$_origin_4763" to [20 x i8]* + %"$_sender_4765" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4766" = bitcast i8* %"$_sender_4765" to [20 x i8]* + call void @"$t17_4686"(%Uint128 %_amount, [20 x i8]* %"$_origin_4764", [20 x i8]* %"$_sender_4766") ret void } -define internal void @"$t18_4805"(%Uint128 %_amount, [20 x i8]* %"$_origin_4806", [20 x i8]* %"$_sender_4807") { +define internal void @"$t18_4767"(%Uint128 %_amount, [20 x i8]* %"$_origin_4768", [20 x i8]* %"$_sender_4769") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4806", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4807", align 1 - %"$gasrem_4808" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4809" = icmp ugt i64 1, %"$gasrem_4808" - br i1 %"$gascmp_4809", label %"$out_of_gas_4810", label %"$have_gas_4811" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4768", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4769", align 1 + %"$gasrem_4770" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4771" = icmp ugt i64 1, %"$gasrem_4770" + br i1 %"$gascmp_4771", label %"$out_of_gas_4772", label %"$have_gas_4773" -"$out_of_gas_4810": ; preds = %entry +"$out_of_gas_4772": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_4811" + br label %"$have_gas_4773" -"$have_gas_4811": ; preds = %"$out_of_gas_4810", %entry - %"$consume_4812" = sub i64 %"$gasrem_4808", 1 - store i64 %"$consume_4812", i64* @_gasrem, align 8 +"$have_gas_4773": ; preds = %"$out_of_gas_4772", %entry + %"$consume_4774" = sub i64 %"$gasrem_4770", 1 + store i64 %"$consume_4774", i64* @_gasrem, align 8 %tname = alloca %String, align 8 - %"$gasrem_4813" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4814" = icmp ugt i64 1, %"$gasrem_4813" - br i1 %"$gascmp_4814", label %"$out_of_gas_4815", label %"$have_gas_4816" + %"$gasrem_4775" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4776" = icmp ugt i64 1, %"$gasrem_4775" + br i1 %"$gascmp_4776", label %"$out_of_gas_4777", label %"$have_gas_4778" -"$out_of_gas_4815": ; preds = %"$have_gas_4811" +"$out_of_gas_4777": ; preds = %"$have_gas_4773" call void @_out_of_gas() - br label %"$have_gas_4816" + br label %"$have_gas_4778" -"$have_gas_4816": ; preds = %"$out_of_gas_4815", %"$have_gas_4811" - %"$consume_4817" = sub i64 %"$gasrem_4813", 1 - store i64 %"$consume_4817", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4818", i32 0, i32 0), i32 3 }, %String* %tname, align 8 - %"$gasrem_4819" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4820" = icmp ugt i64 1, %"$gasrem_4819" - br i1 %"$gascmp_4820", label %"$out_of_gas_4821", label %"$have_gas_4822" +"$have_gas_4778": ; preds = %"$out_of_gas_4777", %"$have_gas_4773" + %"$consume_4779" = sub i64 %"$gasrem_4775", 1 + store i64 %"$consume_4779", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_4780", i32 0, i32 0), i32 3 }, %String* %tname, align 8 + %"$gasrem_4781" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4782" = icmp ugt i64 1, %"$gasrem_4781" + br i1 %"$gascmp_4782", label %"$out_of_gas_4783", label %"$have_gas_4784" -"$out_of_gas_4821": ; preds = %"$have_gas_4816" +"$out_of_gas_4783": ; preds = %"$have_gas_4778" call void @_out_of_gas() - br label %"$have_gas_4822" + br label %"$have_gas_4784" -"$have_gas_4822": ; preds = %"$out_of_gas_4821", %"$have_gas_4816" - %"$consume_4823" = sub i64 %"$gasrem_4819", 1 - store i64 %"$consume_4823", i64* @_gasrem, align 8 +"$have_gas_4784": ; preds = %"$out_of_gas_4783", %"$have_gas_4778" + %"$consume_4785" = sub i64 %"$gasrem_4781", 1 + store i64 %"$consume_4785", i64* @_gasrem, align 8 %key = alloca %String, align 8 - %"$gasrem_4824" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4825" = icmp ugt i64 1, %"$gasrem_4824" - br i1 %"$gascmp_4825", label %"$out_of_gas_4826", label %"$have_gas_4827" + %"$gasrem_4786" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4787" = icmp ugt i64 1, %"$gasrem_4786" + br i1 %"$gascmp_4787", label %"$out_of_gas_4788", label %"$have_gas_4789" -"$out_of_gas_4826": ; preds = %"$have_gas_4822" +"$out_of_gas_4788": ; preds = %"$have_gas_4784" call void @_out_of_gas() - br label %"$have_gas_4827" + br label %"$have_gas_4789" -"$have_gas_4827": ; preds = %"$out_of_gas_4826", %"$have_gas_4822" - %"$consume_4828" = sub i64 %"$gasrem_4824", 1 - store i64 %"$consume_4828", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4829", i32 0, i32 0), i32 0 }, %String* %key, align 8 +"$have_gas_4789": ; preds = %"$out_of_gas_4788", %"$have_gas_4784" + %"$consume_4790" = sub i64 %"$gasrem_4786", 1 + store i64 %"$consume_4790", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @"$stringlit_4791", i32 0, i32 0), i32 0 }, %String* %key, align 8 %found = alloca %TName_Bool*, align 8 - %"$indices_buf_4830_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4830_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4830_salloc_load", i64 16) - %"$indices_buf_4830_salloc" = bitcast i8* %"$indices_buf_4830_salloc_salloc" to [16 x i8]* - %"$indices_buf_4830" = bitcast [16 x i8]* %"$indices_buf_4830_salloc" to i8* - %"$key_4831" = load %String, %String* %key, align 8 - %"$indices_gep_4832" = getelementptr i8, i8* %"$indices_buf_4830", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4832" to %String* - store %String %"$key_4831", %String* %indices_cast, align 8 - %"$execptr_load_4834" = load i8*, i8** @_execptr, align 8 - %"$found_call_4835" = call i8* @_fetch_field(i8* %"$execptr_load_4834", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4833", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_73", i32 1, i8* %"$indices_buf_4830", i32 0) - %"$found_4836" = bitcast i8* %"$found_call_4835" to %TName_Bool* - store %TName_Bool* %"$found_4836", %TName_Bool** %found, align 8 - %"$found_4837" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$$found_4837_4838" = bitcast %TName_Bool* %"$found_4837" to i8* - %"$_literal_cost_call_4839" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_69", i8* %"$$found_4837_4838") - %"$gasadd_4840" = add i64 %"$_literal_cost_call_4839", 0 - %"$gasadd_4841" = add i64 %"$gasadd_4840", 1 - %"$gasrem_4842" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4843" = icmp ugt i64 %"$gasadd_4841", %"$gasrem_4842" - br i1 %"$gascmp_4843", label %"$out_of_gas_4844", label %"$have_gas_4845" - -"$out_of_gas_4844": ; preds = %"$have_gas_4827" - call void @_out_of_gas() - br label %"$have_gas_4845" - -"$have_gas_4845": ; preds = %"$out_of_gas_4844", %"$have_gas_4827" - %"$consume_4846" = sub i64 %"$gasrem_4842", %"$gasadd_4841" - store i64 %"$consume_4846", i64* @_gasrem, align 8 - %"$gasrem_4847" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4848" = icmp ugt i64 2, %"$gasrem_4847" - br i1 %"$gascmp_4848", label %"$out_of_gas_4849", label %"$have_gas_4850" - -"$out_of_gas_4849": ; preds = %"$have_gas_4845" - call void @_out_of_gas() - br label %"$have_gas_4850" - -"$have_gas_4850": ; preds = %"$out_of_gas_4849", %"$have_gas_4845" - %"$consume_4851" = sub i64 %"$gasrem_4847", 2 - store i64 %"$consume_4851", i64* @_gasrem, align 8 - %"$found_4853" = load %TName_Bool*, %TName_Bool** %found, align 8 - %"$found_tag_4854" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4853", i32 0, i32 0 - %"$found_tag_4855" = load i8, i8* %"$found_tag_4854", align 1 - switch i8 %"$found_tag_4855", label %"$empty_default_4856" [ - i8 0, label %"$True_4857" - i8 1, label %"$False_4867" + %"$indices_buf_4792_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4792_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4792_salloc_load", i64 16) + %"$indices_buf_4792_salloc" = bitcast i8* %"$indices_buf_4792_salloc_salloc" to [16 x i8]* + %"$indices_buf_4792" = bitcast [16 x i8]* %"$indices_buf_4792_salloc" to i8* + %"$key_4793" = load %String, %String* %key, align 8 + %"$indices_gep_4794" = getelementptr i8, i8* %"$indices_buf_4792", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4794" to %String* + store %String %"$key_4793", %String* %indices_cast, align 8 + %"$execptr_load_4796" = load i8*, i8** @_execptr, align 8 + %"$found_call_4797" = call i8* @_fetch_field(i8* %"$execptr_load_4796", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$f_m1_4795", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_65", i32 1, i8* %"$indices_buf_4792", i32 0) + %"$found_4798" = bitcast i8* %"$found_call_4797" to %TName_Bool* + store %TName_Bool* %"$found_4798", %TName_Bool** %found, align 8 + %"$found_4799" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$$found_4799_4800" = bitcast %TName_Bool* %"$found_4799" to i8* + %"$_literal_cost_call_4801" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_61", i8* %"$$found_4799_4800") + %"$gasadd_4802" = add i64 %"$_literal_cost_call_4801", 0 + %"$gasadd_4803" = add i64 %"$gasadd_4802", 1 + %"$gasrem_4804" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4805" = icmp ugt i64 %"$gasadd_4803", %"$gasrem_4804" + br i1 %"$gascmp_4805", label %"$out_of_gas_4806", label %"$have_gas_4807" + +"$out_of_gas_4806": ; preds = %"$have_gas_4789" + call void @_out_of_gas() + br label %"$have_gas_4807" + +"$have_gas_4807": ; preds = %"$out_of_gas_4806", %"$have_gas_4789" + %"$consume_4808" = sub i64 %"$gasrem_4804", %"$gasadd_4803" + store i64 %"$consume_4808", i64* @_gasrem, align 8 + %"$gasrem_4809" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4810" = icmp ugt i64 2, %"$gasrem_4809" + br i1 %"$gascmp_4810", label %"$out_of_gas_4811", label %"$have_gas_4812" + +"$out_of_gas_4811": ; preds = %"$have_gas_4807" + call void @_out_of_gas() + br label %"$have_gas_4812" + +"$have_gas_4812": ; preds = %"$out_of_gas_4811", %"$have_gas_4807" + %"$consume_4813" = sub i64 %"$gasrem_4809", 2 + store i64 %"$consume_4813", i64* @_gasrem, align 8 + %"$found_4815" = load %TName_Bool*, %TName_Bool** %found, align 8 + %"$found_tag_4816" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$found_4815", i32 0, i32 0 + %"$found_tag_4817" = load i8, i8* %"$found_tag_4816", align 1 + switch i8 %"$found_tag_4817", label %"$empty_default_4818" [ + i8 0, label %"$True_4819" + i8 1, label %"$False_4829" ] -"$True_4857": ; preds = %"$have_gas_4850" - %"$found_4858" = bitcast %TName_Bool* %"$found_4853" to %CName_True* - %"$gasrem_4859" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4860" = icmp ugt i64 1, %"$gasrem_4859" - br i1 %"$gascmp_4860", label %"$out_of_gas_4861", label %"$have_gas_4862" +"$True_4819": ; preds = %"$have_gas_4812" + %"$found_4820" = bitcast %TName_Bool* %"$found_4815" to %CName_True* + %"$gasrem_4821" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4822" = icmp ugt i64 1, %"$gasrem_4821" + br i1 %"$gascmp_4822", label %"$out_of_gas_4823", label %"$have_gas_4824" -"$out_of_gas_4861": ; preds = %"$True_4857" +"$out_of_gas_4823": ; preds = %"$True_4819" call void @_out_of_gas() - br label %"$have_gas_4862" + br label %"$have_gas_4824" -"$have_gas_4862": ; preds = %"$out_of_gas_4861", %"$True_4857" - %"$consume_4863" = sub i64 %"$gasrem_4859", 1 - store i64 %"$consume_4863", i64* @_gasrem, align 8 - %"$fail__origin_4864" = alloca [20 x i8], align 1 - store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4864", align 1 - %"$fail__sender_4865" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4865", align 1 - %"$tname_4866" = load %String, %String* %tname, align 8 - call void @"$fail_233"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4864", [20 x i8]* %"$fail__sender_4865", %String %"$tname_4866") - br label %"$matchsucc_4852" +"$have_gas_4824": ; preds = %"$out_of_gas_4823", %"$True_4819" + %"$consume_4825" = sub i64 %"$gasrem_4821", 1 + store i64 %"$consume_4825", i64* @_gasrem, align 8 + %"$fail__origin_4826" = alloca [20 x i8], align 1 + store [20 x i8] %_origin, [20 x i8]* %"$fail__origin_4826", align 1 + %"$fail__sender_4827" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$fail__sender_4827", align 1 + %"$tname_4828" = load %String, %String* %tname, align 8 + call void @"$fail_210"(%Uint128 %_amount, [20 x i8]* %"$fail__origin_4826", [20 x i8]* %"$fail__sender_4827", %String %"$tname_4828") + br label %"$matchsucc_4814" -"$False_4867": ; preds = %"$have_gas_4850" - %"$found_4868" = bitcast %TName_Bool* %"$found_4853" to %CName_False* - br label %"$matchsucc_4852" +"$False_4829": ; preds = %"$have_gas_4812" + %"$found_4830" = bitcast %TName_Bool* %"$found_4815" to %CName_False* + br label %"$matchsucc_4814" -"$empty_default_4856": ; preds = %"$have_gas_4850" - br label %"$matchsucc_4852" +"$empty_default_4818": ; preds = %"$have_gas_4812" + br label %"$matchsucc_4814" -"$matchsucc_4852": ; preds = %"$False_4867", %"$have_gas_4862", %"$empty_default_4856" +"$matchsucc_4814": ; preds = %"$False_4829", %"$have_gas_4824", %"$empty_default_4818" ret void } define void @t18(i8* %0) { entry: - %"$_amount_4870" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4871" = bitcast i8* %"$_amount_4870" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4871", align 8 - %"$_origin_4872" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4873" = bitcast i8* %"$_origin_4872" to [20 x i8]* - %"$_sender_4874" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4875" = bitcast i8* %"$_sender_4874" to [20 x i8]* - call void @"$t18_4805"(%Uint128 %_amount, [20 x i8]* %"$_origin_4873", [20 x i8]* %"$_sender_4875") + %"$_amount_4832" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4833" = bitcast i8* %"$_amount_4832" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4833", align 8 + %"$_origin_4834" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4835" = bitcast i8* %"$_origin_4834" to [20 x i8]* + %"$_sender_4836" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4837" = bitcast i8* %"$_sender_4836" to [20 x i8]* + call void @"$t18_4767"(%Uint128 %_amount, [20 x i8]* %"$_origin_4835", [20 x i8]* %"$_sender_4837") ret void } diff --git a/tests/codegen/contr/gold/map_misc.scilla.gold b/tests/codegen/contr/gold/map_misc.scilla.gold index a71e2243..a93c4b55 100644 --- a/tests/codegen/contr/gold/map_misc.scilla.gold +++ b/tests/codegen/contr/gold/map_misc.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'MapMisc' source_filename = "MapMisc" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/match_assign.scilla.gold b/tests/codegen/contr/gold/match_assign.scilla.gold index de10dfbc..1dae6c78 100644 --- a/tests/codegen/contr/gold/match_assign.scilla.gold +++ b/tests/codegen/contr/gold/match_assign.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM1' source_filename = "PM1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/match_assign2.scilla.gold b/tests/codegen/contr/gold/match_assign2.scilla.gold index f05fb1d4..f33d06e6 100644 --- a/tests/codegen/contr/gold/match_assign2.scilla.gold +++ b/tests/codegen/contr/gold/match_assign2.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM1' source_filename = "PM1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/match_assign3.scilla.gold b/tests/codegen/contr/gold/match_assign3.scilla.gold index 07811e22..769c904e 100644 --- a/tests/codegen/contr/gold/match_assign3.scilla.gold +++ b/tests/codegen/contr/gold/match_assign3.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM1' source_filename = "PM1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_0" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/name_clash1.scilla.gold b/tests/codegen/contr/gold/name_clash1.scilla.gold index b5f7d532..3e24d627 100644 --- a/tests/codegen/contr/gold/name_clash1.scilla.gold +++ b/tests/codegen/contr/gold/name_clash1.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'NameClash1' source_filename = "NameClash1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/name_clash2.scilla.gold b/tests/codegen/contr/gold/name_clash2.scilla.gold index 26353327..e09e7940 100644 --- a/tests/codegen/contr/gold/name_clash2.scilla.gold +++ b/tests/codegen/contr/gold/name_clash2.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'NameClash1' source_filename = "NameClash1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/pm-empty.scilla.gold b/tests/codegen/contr/gold/pm-empty.scilla.gold index b39f6a04..c605b776 100644 --- a/tests/codegen/contr/gold/pm-empty.scilla.gold +++ b/tests/codegen/contr/gold/pm-empty.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM_empty' source_filename = "PM_empty" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_0" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/pm1.scilla.gold b/tests/codegen/contr/gold/pm1.scilla.gold index ca97eeea..998c0a6a 100644 --- a/tests/codegen/contr/gold/pm1.scilla.gold +++ b/tests/codegen/contr/gold/pm1.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM1' source_filename = "PM1" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/pm2.scilla.gold b/tests/codegen/contr/gold/pm2.scilla.gold index ad3b38d0..79108ac2 100644 --- a/tests/codegen/contr/gold/pm2.scilla.gold +++ b/tests/codegen/contr/gold/pm2.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM2' source_filename = "PM2" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/pm3.scilla.gold b/tests/codegen/contr/gold/pm3.scilla.gold index 6736e691..9a7b3bbe 100644 --- a/tests/codegen/contr/gold/pm3.scilla.gold +++ b/tests/codegen/contr/gold/pm3.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM3' source_filename = "PM3" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/pm4.scilla.gold b/tests/codegen/contr/gold/pm4.scilla.gold index b2047eea..e6c775f0 100644 --- a/tests/codegen/contr/gold/pm4.scilla.gold +++ b/tests/codegen/contr/gold/pm4.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM4' source_filename = "PM4" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/pm5.scilla.gold b/tests/codegen/contr/gold/pm5.scilla.gold index 60c37619..736369b2 100644 --- a/tests/codegen/contr/gold/pm5.scilla.gold +++ b/tests/codegen/contr/gold/pm5.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM5' source_filename = "PM5" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/pm6.scilla.gold b/tests/codegen/contr/gold/pm6.scilla.gold index 2416971d..3f7071b0 100644 --- a/tests/codegen/contr/gold/pm6.scilla.gold +++ b/tests/codegen/contr/gold/pm6.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM6' source_filename = "PM6" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/pm7.scilla.gold b/tests/codegen/contr/gold/pm7.scilla.gold index 7dccfd38..e2f0346c 100644 --- a/tests/codegen/contr/gold/pm7.scilla.gold +++ b/tests/codegen/contr/gold/pm7.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'PM7' source_filename = "PM7" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_11" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/remote_state_reads.scilla.gold b/tests/codegen/contr/gold/remote_state_reads.scilla.gold index 69a40559..23418802 100644 --- a/tests/codegen/contr/gold/remote_state_reads.scilla.gold +++ b/tests/codegen/contr/gold/remote_state_reads.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'RRContract' source_filename = "RRContract" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_30" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/remote_state_reads_2.scilla.gold b/tests/codegen/contr/gold/remote_state_reads_2.scilla.gold index e8a01a65..1157968e 100644 --- a/tests/codegen/contr/gold/remote_state_reads_2.scilla.gold +++ b/tests/codegen/contr/gold/remote_state_reads_2.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'RRContract' source_filename = "RRContract" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/send.scilla.gold b/tests/codegen/contr/gold/send.scilla.gold index 7ab2e555..5698aae0 100644 --- a/tests/codegen/contr/gold/send.scilla.gold +++ b/tests/codegen/contr/gold/send.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'Send' source_filename = "Send" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/simple-iterate.scilla.gold b/tests/codegen/contr/gold/simple-iterate.scilla.gold index d6cc554c..9eab0387 100644 --- a/tests/codegen/contr/gold/simple-iterate.scilla.gold +++ b/tests/codegen/contr/gold/simple-iterate.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'SimpleIterate' source_filename = "SimpleIterate" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/simple-map.scilla.gold b/tests/codegen/contr/gold/simple-map.scilla.gold index d3960966..4f17b7e2 100644 --- a/tests/codegen/contr/gold/simple-map.scilla.gold +++ b/tests/codegen/contr/gold/simple-map.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'SimpleMap' source_filename = "SimpleMap" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/throw.scilla.gold b/tests/codegen/contr/gold/throw.scilla.gold index 3acb1e28..0dedd84c 100644 --- a/tests/codegen/contr/gold/throw.scilla.gold +++ b/tests/codegen/contr/gold/throw.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'Throw' source_filename = "Throw" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_0" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/type_casts.scilla.gold b/tests/codegen/contr/gold/type_casts.scilla.gold index 3fb9987a..b0acb1e9 100644 --- a/tests/codegen/contr/gold/type_casts.scilla.gold +++ b/tests/codegen/contr/gold/type_casts.scilla.gold @@ -3,8 +3,8 @@ ; gas_remaining: 4001999 ; ModuleID = 'CastContract' source_filename = "CastContract" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_21" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/contr/gold/ud-proxy.scilla.gold b/tests/codegen/contr/gold/ud-proxy.scilla.gold index 6c2d05f7..7d8afc1c 100644 --- a/tests/codegen/contr/gold/ud-proxy.scilla.gold +++ b/tests/codegen/contr/gold/ud-proxy.scilla.gold @@ -3,18 +3,18 @@ ; gas_remaining: 4001918 ; ModuleID = 'Admin' source_filename = "Admin" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_10" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_42" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_41"** } +%"$TyDescrTy_ADTTyp_38" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_37"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_41" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_43"**, %"$TyDescrTy_ADTTyp_42"* } -%"$TyDescrTy_ADTTyp_Constr_43" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$TyDescr_MapTyp_47" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } -%"$TyDescr_AddrTyp_50" = type { i32, %"$TyDescr_AddrFieldTyp_49"* } -%"$TyDescr_AddrFieldTyp_49" = type { %TyDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_37" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_39"**, %"$TyDescrTy_ADTTyp_38"* } +%"$TyDescrTy_ADTTyp_Constr_39" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$TyDescr_MapTyp_43" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } +%"$TyDescr_AddrTyp_46" = type { i32, %"$TyDescr_AddrFieldTyp_45"* } +%"$TyDescr_AddrFieldTyp_45" = type { %TyDescrString, %_TyDescrTy_Typ* } %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> @@ -22,13 +22,12 @@ target triple = "x86_64-unknown-linux-gnu" %CName_Cons_Message = type <{ i8, i8*, %TName_List_Message* }> %CName_Nil_Message = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_545" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_521" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_546" = type { %ParamDescrString, i32, %"$ParamDescr_545"* } -%"$$fundef_5_env_90" = type { [20 x i8] } +%"$TransDescr_522" = type { %ParamDescrString, i32, %"$ParamDescr_521"* } +%"$$fundef_1_env_86" = type {} %String = type { i8*, i32 } -%"$$fundef_3_env_91" = type {} -%"$$fundef_7_env_92" = type { %TName_List_Message* } +%"$$fundef_3_env_87" = type { %TName_List_Message* } %Map_ByStr20_Bool = type { [20 x i8], %TName_Bool* } %Uint128 = type { i128 } %TName_Option_Bool = type { i8, %CName_Some_Bool*, %CName_None_Bool* } @@ -37,248 +36,217 @@ target triple = "x86_64-unknown-linux-gnu" @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_11" = global %"$TyDescrTy_PrimTyp_10" zeroinitializer -@"$TyDescr_Int32_12" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int32_Prim_11" to i8*) } -@"$TyDescr_Uint32_Prim_13" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 0 } -@"$TyDescr_Uint32_14" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint32_Prim_13" to i8*) } -@"$TyDescr_Int64_Prim_15" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 1 } -@"$TyDescr_Int64_16" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int64_Prim_15" to i8*) } -@"$TyDescr_Uint64_Prim_17" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 1 } -@"$TyDescr_Uint64_18" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint64_Prim_17" to i8*) } -@"$TyDescr_Int128_Prim_19" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 2 } -@"$TyDescr_Int128_20" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int128_Prim_19" to i8*) } -@"$TyDescr_Uint128_Prim_21" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 2 } -@"$TyDescr_Uint128_22" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint128_Prim_21" to i8*) } -@"$TyDescr_Int256_Prim_23" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 3 } -@"$TyDescr_Int256_24" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int256_Prim_23" to i8*) } -@"$TyDescr_Uint256_Prim_25" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 3 } -@"$TyDescr_Uint256_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint256_Prim_25" to i8*) } -@"$TyDescr_String_Prim_27" = global %"$TyDescrTy_PrimTyp_10" { i32 2, i32 0 } -@"$TyDescr_String_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_String_Prim_27" to i8*) } -@"$TyDescr_Bnum_Prim_29" = global %"$TyDescrTy_PrimTyp_10" { i32 3, i32 0 } -@"$TyDescr_Bnum_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Bnum_Prim_29" to i8*) } -@"$TyDescr_Message_Prim_31" = global %"$TyDescrTy_PrimTyp_10" { i32 4, i32 0 } -@"$TyDescr_Message_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Message_Prim_31" to i8*) } -@"$TyDescr_Event_Prim_33" = global %"$TyDescrTy_PrimTyp_10" { i32 5, i32 0 } -@"$TyDescr_Event_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Event_Prim_33" to i8*) } -@"$TyDescr_Exception_Prim_35" = global %"$TyDescrTy_PrimTyp_10" { i32 6, i32 0 } -@"$TyDescr_Exception_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Exception_Prim_35" to i8*) } -@"$TyDescr_Bystr_Prim_37" = global %"$TyDescrTy_PrimTyp_10" { i32 7, i32 0 } -@"$TyDescr_Bystr_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Bystr_Prim_37" to i8*) } -@"$TyDescr_Bystr20_Prim_39" = global %"$TyDescrTy_PrimTyp_10" { i32 8, i32 20 } -@"$TyDescr_Bystr20_40" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Bystr20_Prim_39" to i8*) } -@"$TyDescr_ADT_Option_Bool_44" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_Option_Bool_ADTTyp_Specl_61" to i8*) } -@"$TyDescr_ADT_Bool_45" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_Bool_ADTTyp_Specl_73" to i8*) } -@"$TyDescr_ADT_List_Message_46" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_List_Message_ADTTyp_Specl_85" to i8*) } -@"$TyDescr_Map_48" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_47"* @"$TyDescr_MapTyp_88" to i8*) } -@"$TyDescr_Addr_51" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_50"* @"$TyDescr_AddrFields_89" to i8*) } -@"$TyDescr_Option_ADTTyp_52" = unnamed_addr constant %"$TyDescrTy_ADTTyp_42" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_63", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_41"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_41"*], [1 x %"$TyDescrTy_ADTTyp_Specl_41"*]* @"$TyDescr_Option_ADTTyp_m_specls_62", i32 0, i32 0) } -@"$TyDescr_Option_Some_Bool_Constr_m_args_53" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45"] -@"$TyDescr_ADT_Some_54" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_Bool_ADTTyp_Constr_55" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_54", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Bool_Constr_m_args_53", i32 0, i32 0) } -@"$TyDescr_Option_None_Bool_Constr_m_args_56" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_57" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_Bool_ADTTyp_Constr_58" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_57", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Bool_Constr_m_args_56", i32 0, i32 0) } -@"$TyDescr_Option_Bool_ADTTyp_Specl_m_constrs_59" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_43"*] [%"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_Option_Some_Bool_ADTTyp_Constr_55", %"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_Option_None_Bool_ADTTyp_Constr_58"] -@"$TyDescr_Option_Bool_ADTTyp_Specl_m_TArgs_60" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45"] -@"$TyDescr_Option_Bool_ADTTyp_Specl_61" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_41" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Bool_ADTTyp_Specl_m_TArgs_60", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_43"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_43"*], [2 x %"$TyDescrTy_ADTTyp_Constr_43"*]* @"$TyDescr_Option_Bool_ADTTyp_Specl_m_constrs_59", i32 0, i32 0), %"$TyDescrTy_ADTTyp_42"* @"$TyDescr_Option_ADTTyp_52" } -@"$TyDescr_Option_ADTTyp_m_specls_62" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_41"*] [%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_Option_Bool_ADTTyp_Specl_61"] -@"$TyDescr_ADT_Option_63" = unnamed_addr constant [6 x i8] c"Option" -@"$TyDescr_Bool_ADTTyp_64" = unnamed_addr constant %"$TyDescrTy_ADTTyp_42" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_75", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_41"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_41"*], [1 x %"$TyDescrTy_ADTTyp_Specl_41"*]* @"$TyDescr_Bool_ADTTyp_m_specls_74", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_65" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_66" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_67" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_66", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_65", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_68" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_69" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_70" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_69", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_68", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_71" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_43"*] [%"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_Bool_True_ADTTyp_Constr_67", %"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_Bool_False_ADTTyp_Constr_70"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_72" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_73" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_41" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_72", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_43"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_43"*], [2 x %"$TyDescrTy_ADTTyp_Constr_43"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_71", i32 0, i32 0), %"$TyDescrTy_ADTTyp_42"* @"$TyDescr_Bool_ADTTyp_64" } -@"$TyDescr_Bool_ADTTyp_m_specls_74" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_41"*] [%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_Bool_ADTTyp_Specl_73"] -@"$TyDescr_ADT_Bool_75" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_List_ADTTyp_76" = unnamed_addr constant %"$TyDescrTy_ADTTyp_42" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_87", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_41"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_41"*], [1 x %"$TyDescrTy_ADTTyp_Specl_41"*]* @"$TyDescr_List_ADTTyp_m_specls_86", i32 0, i32 0) } -@"$TyDescr_List_Cons_Message_Constr_m_args_77" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_32", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46"] -@"$TyDescr_ADT_Cons_78" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_Message_ADTTyp_Constr_79" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_78", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_77", i32 0, i32 0) } -@"$TyDescr_List_Nil_Message_Constr_m_args_80" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_81" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_Message_ADTTyp_Constr_82" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_43" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_81", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_80", i32 0, i32 0) } -@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_83" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_43"*] [%"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_79", %"$TyDescrTy_ADTTyp_Constr_43"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_82"] -@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_84" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_32"] -@"$TyDescr_List_Message_ADTTyp_Specl_85" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_41" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_84", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_43"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_43"*], [2 x %"$TyDescrTy_ADTTyp_Constr_43"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_83", i32 0, i32 0), %"$TyDescrTy_ADTTyp_42"* @"$TyDescr_List_ADTTyp_76" } -@"$TyDescr_List_ADTTyp_m_specls_86" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_41"*] [%"$TyDescrTy_ADTTyp_Specl_41"* @"$TyDescr_List_Message_ADTTyp_Specl_85"] -@"$TyDescr_ADT_List_87" = unnamed_addr constant [4 x i8] c"List" -@"$TyDescr_MapTyp_88" = unnamed_addr constant %"$TyDescr_MapTyp_47" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45" } -@"$TyDescr_AddrFields_89" = unnamed_addr constant %"$TyDescr_AddrTyp_50" { i32 -1, %"$TyDescr_AddrFieldTyp_49"* null } -@"$stringlit_126" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_131" = unnamed_addr constant [8 x i8] c"AdminSet" -@"$stringlit_134" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_142" = unnamed_addr constant [10 x i8] c"isApproved" +@"$TyDescr_Int32_Prim_7" = global %"$TyDescrTy_PrimTyp_6" zeroinitializer +@"$TyDescr_Int32_8" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int32_Prim_7" to i8*) } +@"$TyDescr_Uint32_Prim_9" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 0 } +@"$TyDescr_Uint32_10" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint32_Prim_9" to i8*) } +@"$TyDescr_Int64_Prim_11" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 1 } +@"$TyDescr_Int64_12" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int64_Prim_11" to i8*) } +@"$TyDescr_Uint64_Prim_13" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 1 } +@"$TyDescr_Uint64_14" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint64_Prim_13" to i8*) } +@"$TyDescr_Int128_Prim_15" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 2 } +@"$TyDescr_Int128_16" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int128_Prim_15" to i8*) } +@"$TyDescr_Uint128_Prim_17" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 2 } +@"$TyDescr_Uint128_18" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint128_Prim_17" to i8*) } +@"$TyDescr_Int256_Prim_19" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 3 } +@"$TyDescr_Int256_20" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int256_Prim_19" to i8*) } +@"$TyDescr_Uint256_Prim_21" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 3 } +@"$TyDescr_Uint256_22" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint256_Prim_21" to i8*) } +@"$TyDescr_String_Prim_23" = global %"$TyDescrTy_PrimTyp_6" { i32 2, i32 0 } +@"$TyDescr_String_24" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_String_Prim_23" to i8*) } +@"$TyDescr_Bnum_Prim_25" = global %"$TyDescrTy_PrimTyp_6" { i32 3, i32 0 } +@"$TyDescr_Bnum_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Bnum_Prim_25" to i8*) } +@"$TyDescr_Message_Prim_27" = global %"$TyDescrTy_PrimTyp_6" { i32 4, i32 0 } +@"$TyDescr_Message_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Message_Prim_27" to i8*) } +@"$TyDescr_Event_Prim_29" = global %"$TyDescrTy_PrimTyp_6" { i32 5, i32 0 } +@"$TyDescr_Event_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Event_Prim_29" to i8*) } +@"$TyDescr_Exception_Prim_31" = global %"$TyDescrTy_PrimTyp_6" { i32 6, i32 0 } +@"$TyDescr_Exception_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Exception_Prim_31" to i8*) } +@"$TyDescr_Bystr_Prim_33" = global %"$TyDescrTy_PrimTyp_6" { i32 7, i32 0 } +@"$TyDescr_Bystr_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Bystr_Prim_33" to i8*) } +@"$TyDescr_Bystr20_Prim_35" = global %"$TyDescrTy_PrimTyp_6" { i32 8, i32 20 } +@"$TyDescr_Bystr20_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Bystr20_Prim_35" to i8*) } +@"$TyDescr_ADT_Option_Bool_40" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_Option_Bool_ADTTyp_Specl_57" to i8*) } +@"$TyDescr_ADT_Bool_41" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_Bool_ADTTyp_Specl_69" to i8*) } +@"$TyDescr_ADT_List_Message_42" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_List_Message_ADTTyp_Specl_81" to i8*) } +@"$TyDescr_Map_44" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_43"* @"$TyDescr_MapTyp_84" to i8*) } +@"$TyDescr_Addr_47" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_46"* @"$TyDescr_AddrFields_85" to i8*) } +@"$TyDescr_Option_ADTTyp_48" = unnamed_addr constant %"$TyDescrTy_ADTTyp_38" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_59", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_37"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_37"*], [1 x %"$TyDescrTy_ADTTyp_Specl_37"*]* @"$TyDescr_Option_ADTTyp_m_specls_58", i32 0, i32 0) } +@"$TyDescr_Option_Some_Bool_Constr_m_args_49" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41"] +@"$TyDescr_ADT_Some_50" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_Bool_ADTTyp_Constr_51" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_50", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_Bool_Constr_m_args_49", i32 0, i32 0) } +@"$TyDescr_Option_None_Bool_Constr_m_args_52" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_53" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_Bool_ADTTyp_Constr_54" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_53", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_Bool_Constr_m_args_52", i32 0, i32 0) } +@"$TyDescr_Option_Bool_ADTTyp_Specl_m_constrs_55" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_39"*] [%"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_Option_Some_Bool_ADTTyp_Constr_51", %"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_Option_None_Bool_ADTTyp_Constr_54"] +@"$TyDescr_Option_Bool_ADTTyp_Specl_m_TArgs_56" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41"] +@"$TyDescr_Option_Bool_ADTTyp_Specl_57" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_37" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Bool_ADTTyp_Specl_m_TArgs_56", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_39"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_39"*], [2 x %"$TyDescrTy_ADTTyp_Constr_39"*]* @"$TyDescr_Option_Bool_ADTTyp_Specl_m_constrs_55", i32 0, i32 0), %"$TyDescrTy_ADTTyp_38"* @"$TyDescr_Option_ADTTyp_48" } +@"$TyDescr_Option_ADTTyp_m_specls_58" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_37"*] [%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_Option_Bool_ADTTyp_Specl_57"] +@"$TyDescr_ADT_Option_59" = unnamed_addr constant [6 x i8] c"Option" +@"$TyDescr_Bool_ADTTyp_60" = unnamed_addr constant %"$TyDescrTy_ADTTyp_38" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_71", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_37"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_37"*], [1 x %"$TyDescrTy_ADTTyp_Specl_37"*]* @"$TyDescr_Bool_ADTTyp_m_specls_70", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_61" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_62" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_63" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_62", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_61", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_64" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_65" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_66" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_65", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_64", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_67" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_39"*] [%"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_Bool_True_ADTTyp_Constr_63", %"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_Bool_False_ADTTyp_Constr_66"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_68" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_69" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_37" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_68", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_39"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_39"*], [2 x %"$TyDescrTy_ADTTyp_Constr_39"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_67", i32 0, i32 0), %"$TyDescrTy_ADTTyp_38"* @"$TyDescr_Bool_ADTTyp_60" } +@"$TyDescr_Bool_ADTTyp_m_specls_70" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_37"*] [%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_Bool_ADTTyp_Specl_69"] +@"$TyDescr_ADT_Bool_71" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_List_ADTTyp_72" = unnamed_addr constant %"$TyDescrTy_ADTTyp_38" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_83", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_37"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_37"*], [1 x %"$TyDescrTy_ADTTyp_Specl_37"*]* @"$TyDescr_List_ADTTyp_m_specls_82", i32 0, i32 0) } +@"$TyDescr_List_Cons_Message_Constr_m_args_73" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_28", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_42"] +@"$TyDescr_ADT_Cons_74" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_Message_ADTTyp_Constr_75" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_74", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_73", i32 0, i32 0) } +@"$TyDescr_List_Nil_Message_Constr_m_args_76" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_77" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_Message_ADTTyp_Constr_78" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_39" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_77", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_76", i32 0, i32 0) } +@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_79" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_39"*] [%"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_75", %"$TyDescrTy_ADTTyp_Constr_39"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_78"] +@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_80" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_28"] +@"$TyDescr_List_Message_ADTTyp_Specl_81" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_37" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_80", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_39"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_39"*], [2 x %"$TyDescrTy_ADTTyp_Constr_39"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_79", i32 0, i32 0), %"$TyDescrTy_ADTTyp_38"* @"$TyDescr_List_ADTTyp_72" } +@"$TyDescr_List_ADTTyp_m_specls_82" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_37"*] [%"$TyDescrTy_ADTTyp_Specl_37"* @"$TyDescr_List_Message_ADTTyp_Specl_81"] +@"$TyDescr_ADT_List_83" = unnamed_addr constant [4 x i8] c"List" +@"$TyDescr_MapTyp_84" = unnamed_addr constant %"$TyDescr_MapTyp_43" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41" } +@"$TyDescr_AddrFields_85" = unnamed_addr constant %"$TyDescr_AddrTyp_46" { i32 -1, %"$TyDescr_AddrFieldTyp_45"* null } +@"$stringlit_108" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_113" = unnamed_addr constant [8 x i8] c"AdminSet" +@"$stringlit_116" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_123" = unnamed_addr constant [10 x i8] c"isApproved" @ud-proxy.true = global %TName_Bool* null @ud-proxy.nilMessage = global %TName_List_Message* null @ud-proxy.oneMsg = global { %TName_List_Message* (i8*, i8*)*, i8* } zeroinitializer -@ud-proxy.eAdminSet = global { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } zeroinitializer +@ud-proxy.eAdminSet = global { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } zeroinitializer @ud-proxy.eError = global i8* null -@"$stringlit_192" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_197" = unnamed_addr constant [5 x i8] c"Error" +@"$stringlit_173" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_178" = unnamed_addr constant [5 x i8] c"Error" @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null @_cparam_initialAdmin = global [20 x i8] zeroinitializer @_cparam_registry = global [20 x i8] zeroinitializer -@"$admins_234" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_243" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_315" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_377" = unnamed_addr constant [7 x i8] c"admins\00" -@"$stringlit_454" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_459" = unnamed_addr constant [6 x i8] c"bestow" -@"$stringlit_462" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_470" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_477" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_484" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_491" = unnamed_addr constant [8 x i8] c"resolver" -@_tydescr_table = constant [20 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46", %_TyDescrTy_Typ* @"$TyDescr_Event_34", %_TyDescrTy_Typ* @"$TyDescr_Int64_16", %_TyDescrTy_Typ* @"$TyDescr_Addr_51", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ* @"$TyDescr_Uint256_26", %_TyDescrTy_Typ* @"$TyDescr_Uint32_14", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_44", %_TyDescrTy_Typ* @"$TyDescr_Uint64_18", %_TyDescrTy_Typ* @"$TyDescr_Bnum_30", %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ* @"$TyDescr_Map_48", %_TyDescrTy_Typ* @"$TyDescr_Exception_36", %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ* @"$TyDescr_Int256_24", %_TyDescrTy_Typ* @"$TyDescr_Int128_20", %_TyDescrTy_Typ* @"$TyDescr_Bystr_38", %_TyDescrTy_Typ* @"$TyDescr_Message_32", %_TyDescrTy_Typ* @"$TyDescr_Int32_12"] +@"$admins_215" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_224" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_296" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_353" = unnamed_addr constant [7 x i8] c"admins\00" +@"$stringlit_430" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_435" = unnamed_addr constant [6 x i8] c"bestow" +@"$stringlit_438" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_446" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_453" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_460" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_467" = unnamed_addr constant [8 x i8] c"resolver" +@_tydescr_table = constant [20 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_42", %_TyDescrTy_Typ* @"$TyDescr_Event_30", %_TyDescrTy_Typ* @"$TyDescr_Int64_12", %_TyDescrTy_Typ* @"$TyDescr_Addr_47", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ* @"$TyDescr_Uint256_22", %_TyDescrTy_Typ* @"$TyDescr_Uint32_10", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_40", %_TyDescrTy_Typ* @"$TyDescr_Uint64_14", %_TyDescrTy_Typ* @"$TyDescr_Bnum_26", %_TyDescrTy_Typ* @"$TyDescr_Uint128_18", %_TyDescrTy_Typ* @"$TyDescr_Map_44", %_TyDescrTy_Typ* @"$TyDescr_Exception_32", %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ* @"$TyDescr_Int256_20", %_TyDescrTy_Typ* @"$TyDescr_Int128_16", %_TyDescrTy_Typ* @"$TyDescr_Bystr_34", %_TyDescrTy_Typ* @"$TyDescr_Message_28", %_TyDescrTy_Typ* @"$TyDescr_Int32_8"] @_tydescr_table_length = constant i32 20 -@"$pname__scilla_version_547" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_548" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_549" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_initialAdmin_550" = unnamed_addr constant [12 x i8] c"initialAdmin" -@"$pname_registry_551" = unnamed_addr constant [8 x i8] c"registry" -@_contract_parameters = constant [5 x %"$ParamDescr_545"] [%"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_547", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_14" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_548", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_549", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_30" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialAdmin_550", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_registry_551", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }] +@"$pname__scilla_version_523" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_524" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_525" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_initialAdmin_526" = unnamed_addr constant [12 x i8] c"initialAdmin" +@"$pname_registry_527" = unnamed_addr constant [8 x i8] c"registry" +@_contract_parameters = constant [5 x %"$ParamDescr_521"] [%"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_523", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_10" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_524", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_525", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_26" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialAdmin_526", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_registry_527", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }] @_contract_parameters_length = constant i32 5 -@"$tpname__amount_552" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_553" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_554" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_555" = unnamed_addr constant [7 x i8] c"address" -@"$tpname_isApproved_556" = unnamed_addr constant [10 x i8] c"isApproved" -@"$tparams_setAdmin_557" = unnamed_addr constant [5 x %"$ParamDescr_545"] [%"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_552", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_22" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_553", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_51" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_554", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_51" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_555", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_556", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45" }] -@"$tname_setAdmin_558" = unnamed_addr constant [8 x i8] c"setAdmin" -@"$tpname__amount_559" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_560" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_561" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_label_562" = unnamed_addr constant [5 x i8] c"label" -@"$tpname_owner_563" = unnamed_addr constant [5 x i8] c"owner" -@"$tpname_resolver_564" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_bestow_565" = unnamed_addr constant [6 x %"$ParamDescr_545"] [%"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_559", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_22" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_560", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_51" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_561", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_51" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_562", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_28" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_563", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }, %"$ParamDescr_545" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_564", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40" }] -@"$tname_bestow_566" = unnamed_addr constant [6 x i8] c"bestow" -@_transition_parameters = constant [2 x %"$TransDescr_546"] [%"$TransDescr_546" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_558", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_545"* getelementptr inbounds ([5 x %"$ParamDescr_545"], [5 x %"$ParamDescr_545"]* @"$tparams_setAdmin_557", i32 0, i32 0) }, %"$TransDescr_546" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_566", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_545"* getelementptr inbounds ([6 x %"$ParamDescr_545"], [6 x %"$ParamDescr_545"]* @"$tparams_bestow_565", i32 0, i32 0) }] +@"$tpname__amount_528" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_529" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_530" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_531" = unnamed_addr constant [7 x i8] c"address" +@"$tpname_isApproved_532" = unnamed_addr constant [10 x i8] c"isApproved" +@"$tparams_setAdmin_533" = unnamed_addr constant [5 x %"$ParamDescr_521"] [%"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_528", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_18" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_529", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_47" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_530", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_47" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_531", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_532", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41" }] +@"$tname_setAdmin_534" = unnamed_addr constant [8 x i8] c"setAdmin" +@"$tpname__amount_535" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_536" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_537" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_label_538" = unnamed_addr constant [5 x i8] c"label" +@"$tpname_owner_539" = unnamed_addr constant [5 x i8] c"owner" +@"$tpname_resolver_540" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_bestow_541" = unnamed_addr constant [6 x %"$ParamDescr_521"] [%"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_535", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_18" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_536", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_47" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_537", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_47" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_538", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_24" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_539", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }, %"$ParamDescr_521" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_540", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36" }] +@"$tname_bestow_542" = unnamed_addr constant [6 x i8] c"bestow" +@_transition_parameters = constant [2 x %"$TransDescr_522"] [%"$TransDescr_522" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_534", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_521"* getelementptr inbounds ([5 x %"$ParamDescr_521"], [5 x %"$ParamDescr_521"]* @"$tparams_setAdmin_533", i32 0, i32 0) }, %"$TransDescr_522" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_542", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_521"* getelementptr inbounds ([6 x %"$ParamDescr_521"], [6 x %"$ParamDescr_521"]* @"$tparams_bestow_541", i32 0, i32 0) }] @_transition_parameters_length = constant i32 2 -define internal i8* @"$fundef_5"(%"$$fundef_5_env_90"* %0, %TName_Bool* %1) { -entry: - %"$$fundef_5_env_address_118" = getelementptr inbounds %"$$fundef_5_env_90", %"$$fundef_5_env_90"* %0, i32 0, i32 0 - %"$address_envload_119" = load [20 x i8], [20 x i8]* %"$$fundef_5_env_address_118", align 1 - %address = alloca [20 x i8], align 1 - store [20 x i8] %"$address_envload_119", [20 x i8]* %address, align 1 - %"$retval_6" = alloca i8*, align 8 - %"$gasrem_120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_121" = icmp ugt i64 1, %"$gasrem_120" - br i1 %"$gascmp_121", label %"$out_of_gas_122", label %"$have_gas_123" - -"$out_of_gas_122": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_123" - -"$have_gas_123": ; preds = %"$out_of_gas_122", %entry - %"$consume_124" = sub i64 %"$gasrem_120", 1 - store i64 %"$consume_124", i64* @_gasrem, align 8 - %"$msgobj_125_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_125_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_125_salloc_load", i64 117) - %"$msgobj_125_salloc" = bitcast i8* %"$msgobj_125_salloc_salloc" to [117 x i8]* - %"$msgobj_125" = bitcast [117 x i8]* %"$msgobj_125_salloc" to i8* - store i8 3, i8* %"$msgobj_125", align 1 - %"$msgobj_fname_127" = getelementptr i8, i8* %"$msgobj_125", i32 1 - %"$msgobj_fname_128" = bitcast i8* %"$msgobj_fname_127" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_126", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_128", align 8 - %"$msgobj_td_129" = getelementptr i8, i8* %"$msgobj_125", i32 17 - %"$msgobj_td_130" = bitcast i8* %"$msgobj_td_129" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_130", align 8 - %"$msgobj_v_132" = getelementptr i8, i8* %"$msgobj_125", i32 25 - %"$msgobj_v_133" = bitcast i8* %"$msgobj_v_132" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_131", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_133", align 8 - %"$msgobj_fname_135" = getelementptr i8, i8* %"$msgobj_125", i32 41 - %"$msgobj_fname_136" = bitcast i8* %"$msgobj_fname_135" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_134", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_136", align 8 - %"$msgobj_td_137" = getelementptr i8, i8* %"$msgobj_125", i32 57 - %"$msgobj_td_138" = bitcast i8* %"$msgobj_td_137" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ** %"$msgobj_td_138", align 8 - %"$address_139" = load [20 x i8], [20 x i8]* %address, align 1 - %"$msgobj_v_140" = getelementptr i8, i8* %"$msgobj_125", i32 65 - %"$msgobj_v_141" = bitcast i8* %"$msgobj_v_140" to [20 x i8]* - store [20 x i8] %"$address_139", [20 x i8]* %"$msgobj_v_141", align 1 - %"$msgobj_fname_143" = getelementptr i8, i8* %"$msgobj_125", i32 85 - %"$msgobj_fname_144" = bitcast i8* %"$msgobj_fname_143" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_142", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_144", align 8 - %"$msgobj_td_145" = getelementptr i8, i8* %"$msgobj_125", i32 101 - %"$msgobj_td_146" = bitcast i8* %"$msgobj_td_145" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45", %_TyDescrTy_Typ** %"$msgobj_td_146", align 8 - %"$msgobj_v_147" = getelementptr i8, i8* %"$msgobj_125", i32 109 - %"$msgobj_v_148" = bitcast i8* %"$msgobj_v_147" to %TName_Bool** - store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_148", align 8 - store i8* %"$msgobj_125", i8** %"$retval_6", align 8 - %"$$retval_6_150" = load i8*, i8** %"$retval_6", align 8 - ret i8* %"$$retval_6_150" -} - -define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_3"(%"$$fundef_3_env_91"* %0, [20 x i8]* %1) { +define internal i8* @"$fundef_1"(%"$$fundef_1_env_86"* %0, [20 x i8]* %1, %TName_Bool* %2) { entry: %address = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_4" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_107" = load i64, i64* @_gasrem, align 8 - %"$gascmp_108" = icmp ugt i64 1, %"$gasrem_107" - br i1 %"$gascmp_108", label %"$out_of_gas_109", label %"$have_gas_110" - -"$out_of_gas_109": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_110" - -"$have_gas_110": ; preds = %"$out_of_gas_109", %entry - %"$consume_111" = sub i64 %"$gasrem_107", 1 - store i64 %"$consume_111", i64* @_gasrem, align 8 - %"$$fundef_5_envp_112_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_5_envp_112_salloc" = call i8* @_salloc(i8* %"$$fundef_5_envp_112_load", i64 20) - %"$$fundef_5_envp_112" = bitcast i8* %"$$fundef_5_envp_112_salloc" to %"$$fundef_5_env_90"* - %"$$fundef_5_env_voidp_114" = bitcast %"$$fundef_5_env_90"* %"$$fundef_5_envp_112" to i8* - %"$$fundef_5_cloval_115" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_5_env_90"*, %TName_Bool*)* @"$fundef_5" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_5_env_voidp_114", 1 - %"$$fundef_5_env_address_116" = getelementptr inbounds %"$$fundef_5_env_90", %"$$fundef_5_env_90"* %"$$fundef_5_envp_112", i32 0, i32 0 - store [20 x i8] %address, [20 x i8]* %"$$fundef_5_env_address_116", align 1 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_5_cloval_115", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_4", align 8 - %"$$retval_4_117" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_4", align 8 - ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_4_117" + %"$retval_2" = alloca i8*, align 8 + %"$gasrem_102" = load i64, i64* @_gasrem, align 8 + %"$gascmp_103" = icmp ugt i64 1, %"$gasrem_102" + br i1 %"$gascmp_103", label %"$out_of_gas_104", label %"$have_gas_105" + +"$out_of_gas_104": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_105" + +"$have_gas_105": ; preds = %"$out_of_gas_104", %entry + %"$consume_106" = sub i64 %"$gasrem_102", 1 + store i64 %"$consume_106", i64* @_gasrem, align 8 + %"$msgobj_107_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_107_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_107_salloc_load", i64 117) + %"$msgobj_107_salloc" = bitcast i8* %"$msgobj_107_salloc_salloc" to [117 x i8]* + %"$msgobj_107" = bitcast [117 x i8]* %"$msgobj_107_salloc" to i8* + store i8 3, i8* %"$msgobj_107", align 1 + %"$msgobj_fname_109" = getelementptr i8, i8* %"$msgobj_107", i32 1 + %"$msgobj_fname_110" = bitcast i8* %"$msgobj_fname_109" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_108", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_110", align 8 + %"$msgobj_td_111" = getelementptr i8, i8* %"$msgobj_107", i32 17 + %"$msgobj_td_112" = bitcast i8* %"$msgobj_td_111" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ** %"$msgobj_td_112", align 8 + %"$msgobj_v_114" = getelementptr i8, i8* %"$msgobj_107", i32 25 + %"$msgobj_v_115" = bitcast i8* %"$msgobj_v_114" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_113", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_115", align 8 + %"$msgobj_fname_117" = getelementptr i8, i8* %"$msgobj_107", i32 41 + %"$msgobj_fname_118" = bitcast i8* %"$msgobj_fname_117" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_116", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_118", align 8 + %"$msgobj_td_119" = getelementptr i8, i8* %"$msgobj_107", i32 57 + %"$msgobj_td_120" = bitcast i8* %"$msgobj_td_119" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ** %"$msgobj_td_120", align 8 + %"$msgobj_v_121" = getelementptr i8, i8* %"$msgobj_107", i32 65 + %"$msgobj_v_122" = bitcast i8* %"$msgobj_v_121" to [20 x i8]* + store [20 x i8] %address, [20 x i8]* %"$msgobj_v_122", align 1 + %"$msgobj_fname_124" = getelementptr i8, i8* %"$msgobj_107", i32 85 + %"$msgobj_fname_125" = bitcast i8* %"$msgobj_fname_124" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_123", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_125", align 8 + %"$msgobj_td_126" = getelementptr i8, i8* %"$msgobj_107", i32 101 + %"$msgobj_td_127" = bitcast i8* %"$msgobj_td_126" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41", %_TyDescrTy_Typ** %"$msgobj_td_127", align 8 + %"$msgobj_v_128" = getelementptr i8, i8* %"$msgobj_107", i32 109 + %"$msgobj_v_129" = bitcast i8* %"$msgobj_v_128" to %TName_Bool** + store %TName_Bool* %2, %TName_Bool** %"$msgobj_v_129", align 8 + store i8* %"$msgobj_107", i8** %"$retval_2", align 8 + %"$$retval_2_131" = load i8*, i8** %"$retval_2", align 8 + ret i8* %"$$retval_2_131" } -define internal %TName_List_Message* @"$fundef_7"(%"$$fundef_7_env_92"* %0, i8* %1) { +define internal %TName_List_Message* @"$fundef_3"(%"$$fundef_3_env_87"* %0, i8* %1) { entry: - %"$$fundef_7_env_ud-proxy.nilMessage_93" = getelementptr inbounds %"$$fundef_7_env_92", %"$$fundef_7_env_92"* %0, i32 0, i32 0 - %"$ud-proxy.nilMessage_envload_94" = load %TName_List_Message*, %TName_List_Message** %"$$fundef_7_env_ud-proxy.nilMessage_93", align 8 + %"$$fundef_3_env_ud-proxy.nilMessage_88" = getelementptr inbounds %"$$fundef_3_env_87", %"$$fundef_3_env_87"* %0, i32 0, i32 0 + %"$ud-proxy.nilMessage_envload_89" = load %TName_List_Message*, %TName_List_Message** %"$$fundef_3_env_ud-proxy.nilMessage_88", align 8 %ud-proxy.nilMessage = alloca %TName_List_Message*, align 8 - store %TName_List_Message* %"$ud-proxy.nilMessage_envload_94", %TName_List_Message** %ud-proxy.nilMessage, align 8 - %"$retval_8" = alloca %TName_List_Message*, align 8 - %"$gasrem_95" = load i64, i64* @_gasrem, align 8 - %"$gascmp_96" = icmp ugt i64 1, %"$gasrem_95" - br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" - -"$out_of_gas_97": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_98" - -"$have_gas_98": ; preds = %"$out_of_gas_97", %entry - %"$consume_99" = sub i64 %"$gasrem_95", 1 - store i64 %"$consume_99", i64* @_gasrem, align 8 - %"$ud-proxy.nilMessage_100" = load %TName_List_Message*, %TName_List_Message** %ud-proxy.nilMessage, align 8 - %"$adtval_101_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_101_salloc" = call i8* @_salloc(i8* %"$adtval_101_load", i64 17) - %"$adtval_101" = bitcast i8* %"$adtval_101_salloc" to %CName_Cons_Message* - %"$adtgep_102" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_101", i32 0, i32 0 - store i8 0, i8* %"$adtgep_102", align 1 - %"$adtgep_103" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_101", i32 0, i32 1 - store i8* %1, i8** %"$adtgep_103", align 8 - %"$adtgep_104" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_101", i32 0, i32 2 - store %TName_List_Message* %"$ud-proxy.nilMessage_100", %TName_List_Message** %"$adtgep_104", align 8 - %"$adtptr_105" = bitcast %CName_Cons_Message* %"$adtval_101" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_105", %TName_List_Message** %"$retval_8", align 8 - %"$$retval_8_106" = load %TName_List_Message*, %TName_List_Message** %"$retval_8", align 8 - ret %TName_List_Message* %"$$retval_8_106" + store %TName_List_Message* %"$ud-proxy.nilMessage_envload_89", %TName_List_Message** %ud-proxy.nilMessage, align 8 + %"$retval_4" = alloca %TName_List_Message*, align 8 + %"$gasrem_90" = load i64, i64* @_gasrem, align 8 + %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" + br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" + +"$out_of_gas_92": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_93" + +"$have_gas_93": ; preds = %"$out_of_gas_92", %entry + %"$consume_94" = sub i64 %"$gasrem_90", 1 + store i64 %"$consume_94", i64* @_gasrem, align 8 + %"$ud-proxy.nilMessage_95" = load %TName_List_Message*, %TName_List_Message** %ud-proxy.nilMessage, align 8 + %"$adtval_96_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_96_salloc" = call i8* @_salloc(i8* %"$adtval_96_load", i64 17) + %"$adtval_96" = bitcast i8* %"$adtval_96_salloc" to %CName_Cons_Message* + %"$adtgep_97" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_96", i32 0, i32 0 + store i8 0, i8* %"$adtgep_97", align 1 + %"$adtgep_98" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_96", i32 0, i32 1 + store i8* %1, i8** %"$adtgep_98", align 8 + %"$adtgep_99" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_96", i32 0, i32 2 + store %TName_List_Message* %"$ud-proxy.nilMessage_95", %TName_List_Message** %"$adtgep_99", align 8 + %"$adtptr_100" = bitcast %CName_Cons_Message* %"$adtval_96" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_100", %TName_List_Message** %"$retval_4", align 8 + %"$$retval_4_101" = load %TName_List_Message*, %TName_List_Message** %"$retval_4", align 8 + ret %TName_List_Message* %"$$retval_4_101" } declare void @_out_of_gas() @@ -287,42 +255,74 @@ declare i8* @_salloc(i8*, i64) define void @_init_libs() { entry: - %"$gasrem_151" = load i64, i64* @_gasrem, align 8 - %"$gascmp_152" = icmp ugt i64 1, %"$gasrem_151" - br i1 %"$gascmp_152", label %"$out_of_gas_153", label %"$have_gas_154" - -"$out_of_gas_153": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_154" - -"$have_gas_154": ; preds = %"$out_of_gas_153", %entry - %"$consume_155" = sub i64 %"$gasrem_151", 1 - store i64 %"$consume_155", i64* @_gasrem, align 8 - %"$adtval_156_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_156_salloc" = call i8* @_salloc(i8* %"$adtval_156_load", i64 1) - %"$adtval_156" = bitcast i8* %"$adtval_156_salloc" to %CName_True* - %"$adtgep_157" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_156", i32 0, i32 0 - store i8 0, i8* %"$adtgep_157", align 1 - %"$adtptr_158" = bitcast %CName_True* %"$adtval_156" to %TName_Bool* - store %TName_Bool* %"$adtptr_158", %TName_Bool** @ud-proxy.true, align 8 + %"$gasrem_132" = load i64, i64* @_gasrem, align 8 + %"$gascmp_133" = icmp ugt i64 1, %"$gasrem_132" + br i1 %"$gascmp_133", label %"$out_of_gas_134", label %"$have_gas_135" + +"$out_of_gas_134": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_135" + +"$have_gas_135": ; preds = %"$out_of_gas_134", %entry + %"$consume_136" = sub i64 %"$gasrem_132", 1 + store i64 %"$consume_136", i64* @_gasrem, align 8 + %"$adtval_137_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_137_salloc" = call i8* @_salloc(i8* %"$adtval_137_load", i64 1) + %"$adtval_137" = bitcast i8* %"$adtval_137_salloc" to %CName_True* + %"$adtgep_138" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_137", i32 0, i32 0 + store i8 0, i8* %"$adtgep_138", align 1 + %"$adtptr_139" = bitcast %CName_True* %"$adtval_137" to %TName_Bool* + store %TName_Bool* %"$adtptr_139", %TName_Bool** @ud-proxy.true, align 8 + %"$gasrem_140" = load i64, i64* @_gasrem, align 8 + %"$gascmp_141" = icmp ugt i64 1, %"$gasrem_140" + br i1 %"$gascmp_141", label %"$out_of_gas_142", label %"$have_gas_143" + +"$out_of_gas_142": ; preds = %"$have_gas_135" + call void @_out_of_gas() + br label %"$have_gas_143" + +"$have_gas_143": ; preds = %"$out_of_gas_142", %"$have_gas_135" + %"$consume_144" = sub i64 %"$gasrem_140", 1 + store i64 %"$consume_144", i64* @_gasrem, align 8 + %"$adtval_145_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_145_salloc" = call i8* @_salloc(i8* %"$adtval_145_load", i64 1) + %"$adtval_145" = bitcast i8* %"$adtval_145_salloc" to %CName_Nil_Message* + %"$adtgep_146" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_145", i32 0, i32 0 + store i8 1, i8* %"$adtgep_146", align 1 + %"$adtptr_147" = bitcast %CName_Nil_Message* %"$adtval_145" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_147", %TName_List_Message** @ud-proxy.nilMessage, align 8 + %"$gasrem_148" = load i64, i64* @_gasrem, align 8 + %"$gascmp_149" = icmp ugt i64 1, %"$gasrem_148" + br i1 %"$gascmp_149", label %"$out_of_gas_150", label %"$have_gas_151" + +"$out_of_gas_150": ; preds = %"$have_gas_143" + call void @_out_of_gas() + br label %"$have_gas_151" + +"$have_gas_151": ; preds = %"$out_of_gas_150", %"$have_gas_143" + %"$consume_152" = sub i64 %"$gasrem_148", 1 + store i64 %"$consume_152", i64* @_gasrem, align 8 + %"$$fundef_3_envp_153_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_3_envp_153_salloc" = call i8* @_salloc(i8* %"$$fundef_3_envp_153_load", i64 8) + %"$$fundef_3_envp_153" = bitcast i8* %"$$fundef_3_envp_153_salloc" to %"$$fundef_3_env_87"* + %"$$fundef_3_env_voidp_155" = bitcast %"$$fundef_3_env_87"* %"$$fundef_3_envp_153" to i8* + %"$$fundef_3_cloval_156" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_3_env_87"*, i8*)* @"$fundef_3" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_3_env_voidp_155", 1 + %"$$fundef_3_env_ud-proxy.nilMessage_157" = getelementptr inbounds %"$$fundef_3_env_87", %"$$fundef_3_env_87"* %"$$fundef_3_envp_153", i32 0, i32 0 + %"$ud-proxy.nilMessage_158" = load %TName_List_Message*, %TName_List_Message** @ud-proxy.nilMessage, align 8 + store %TName_List_Message* %"$ud-proxy.nilMessage_158", %TName_List_Message** %"$$fundef_3_env_ud-proxy.nilMessage_157", align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_3_cloval_156", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8 %"$gasrem_159" = load i64, i64* @_gasrem, align 8 - %"$gascmp_160" = icmp ugt i64 1, %"$gasrem_159" + %"$gascmp_160" = icmp ugt i64 2, %"$gasrem_159" br i1 %"$gascmp_160", label %"$out_of_gas_161", label %"$have_gas_162" -"$out_of_gas_161": ; preds = %"$have_gas_154" +"$out_of_gas_161": ; preds = %"$have_gas_151" call void @_out_of_gas() br label %"$have_gas_162" -"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_154" - %"$consume_163" = sub i64 %"$gasrem_159", 1 +"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_151" + %"$consume_163" = sub i64 %"$gasrem_159", 2 store i64 %"$consume_163", i64* @_gasrem, align 8 - %"$adtval_164_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_164_salloc" = call i8* @_salloc(i8* %"$adtval_164_load", i64 1) - %"$adtval_164" = bitcast i8* %"$adtval_164_salloc" to %CName_Nil_Message* - %"$adtgep_165" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_164", i32 0, i32 0 - store i8 1, i8* %"$adtgep_165", align 1 - %"$adtptr_166" = bitcast %CName_Nil_Message* %"$adtval_164" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_166", %TName_List_Message** @ud-proxy.nilMessage, align 8 + store { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } { i8* (i8*, [20 x i8]*, %TName_Bool*)* bitcast (i8* (%"$$fundef_1_env_86"*, [20 x i8]*, %TName_Bool*)* @"$fundef_1" to i8* (i8*, [20 x i8]*, %TName_Bool*)*), i8* null }, { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-proxy.eAdminSet, align 8 %"$gasrem_167" = load i64, i64* @_gasrem, align 8 %"$gascmp_168" = icmp ugt i64 1, %"$gasrem_167" br i1 %"$gascmp_168", label %"$out_of_gas_169", label %"$have_gas_170" @@ -334,117 +334,85 @@ entry: "$have_gas_170": ; preds = %"$out_of_gas_169", %"$have_gas_162" %"$consume_171" = sub i64 %"$gasrem_167", 1 store i64 %"$consume_171", i64* @_gasrem, align 8 - %"$$fundef_7_envp_172_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_7_envp_172_salloc" = call i8* @_salloc(i8* %"$$fundef_7_envp_172_load", i64 8) - %"$$fundef_7_envp_172" = bitcast i8* %"$$fundef_7_envp_172_salloc" to %"$$fundef_7_env_92"* - %"$$fundef_7_env_voidp_174" = bitcast %"$$fundef_7_env_92"* %"$$fundef_7_envp_172" to i8* - %"$$fundef_7_cloval_175" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_7_env_92"*, i8*)* @"$fundef_7" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_7_env_voidp_174", 1 - %"$$fundef_7_env_ud-proxy.nilMessage_176" = getelementptr inbounds %"$$fundef_7_env_92", %"$$fundef_7_env_92"* %"$$fundef_7_envp_172", i32 0, i32 0 - %"$ud-proxy.nilMessage_177" = load %TName_List_Message*, %TName_List_Message** @ud-proxy.nilMessage, align 8 - store %TName_List_Message* %"$ud-proxy.nilMessage_177", %TName_List_Message** %"$$fundef_7_env_ud-proxy.nilMessage_176", align 8 - store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_7_cloval_175", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8 - %"$gasrem_178" = load i64, i64* @_gasrem, align 8 - %"$gascmp_179" = icmp ugt i64 1, %"$gasrem_178" - br i1 %"$gascmp_179", label %"$out_of_gas_180", label %"$have_gas_181" - -"$out_of_gas_180": ; preds = %"$have_gas_170" - call void @_out_of_gas() - br label %"$have_gas_181" - -"$have_gas_181": ; preds = %"$out_of_gas_180", %"$have_gas_170" - %"$consume_182" = sub i64 %"$gasrem_178", 1 - store i64 %"$consume_182", i64* @_gasrem, align 8 - store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ i8* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_3_env_91"*, [20 x i8]*)* @"$fundef_3" to { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*), i8* null }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-proxy.eAdminSet, align 8 - %"$gasrem_186" = load i64, i64* @_gasrem, align 8 - %"$gascmp_187" = icmp ugt i64 1, %"$gasrem_186" - br i1 %"$gascmp_187", label %"$out_of_gas_188", label %"$have_gas_189" - -"$out_of_gas_188": ; preds = %"$have_gas_181" - call void @_out_of_gas() - br label %"$have_gas_189" - -"$have_gas_189": ; preds = %"$out_of_gas_188", %"$have_gas_181" - %"$consume_190" = sub i64 %"$gasrem_186", 1 - store i64 %"$consume_190", i64* @_gasrem, align 8 - %"$msgobj_191_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_191_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_191_salloc_load", i64 41) - %"$msgobj_191_salloc" = bitcast i8* %"$msgobj_191_salloc_salloc" to [41 x i8]* - %"$msgobj_191" = bitcast [41 x i8]* %"$msgobj_191_salloc" to i8* - store i8 1, i8* %"$msgobj_191", align 1 - %"$msgobj_fname_193" = getelementptr i8, i8* %"$msgobj_191", i32 1 - %"$msgobj_fname_194" = bitcast i8* %"$msgobj_fname_193" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_192", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_194", align 8 - %"$msgobj_td_195" = getelementptr i8, i8* %"$msgobj_191", i32 17 - %"$msgobj_td_196" = bitcast i8* %"$msgobj_td_195" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_196", align 8 - %"$msgobj_v_198" = getelementptr i8, i8* %"$msgobj_191", i32 25 - %"$msgobj_v_199" = bitcast i8* %"$msgobj_v_198" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_197", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_199", align 8 - store i8* %"$msgobj_191", i8** @ud-proxy.eError, align 8 + %"$msgobj_172_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_172_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_172_salloc_load", i64 41) + %"$msgobj_172_salloc" = bitcast i8* %"$msgobj_172_salloc_salloc" to [41 x i8]* + %"$msgobj_172" = bitcast [41 x i8]* %"$msgobj_172_salloc" to i8* + store i8 1, i8* %"$msgobj_172", align 1 + %"$msgobj_fname_174" = getelementptr i8, i8* %"$msgobj_172", i32 1 + %"$msgobj_fname_175" = bitcast i8* %"$msgobj_fname_174" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_173", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_175", align 8 + %"$msgobj_td_176" = getelementptr i8, i8* %"$msgobj_172", i32 17 + %"$msgobj_td_177" = bitcast i8* %"$msgobj_td_176" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ** %"$msgobj_td_177", align 8 + %"$msgobj_v_179" = getelementptr i8, i8* %"$msgobj_172", i32 25 + %"$msgobj_v_180" = bitcast i8* %"$msgobj_v_179" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_178", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_180", align 8 + store i8* %"$msgobj_172", i8** @ud-proxy.eError, align 8 ret void } define void @_init_state() { entry: - %"$admins_9" = alloca %Map_ByStr20_Bool*, align 8 - %"$gasrem_201" = load i64, i64* @_gasrem, align 8 - %"$gascmp_202" = icmp ugt i64 1, %"$gasrem_201" - br i1 %"$gascmp_202", label %"$out_of_gas_203", label %"$have_gas_204" + %"$admins_5" = alloca %Map_ByStr20_Bool*, align 8 + %"$gasrem_182" = load i64, i64* @_gasrem, align 8 + %"$gascmp_183" = icmp ugt i64 1, %"$gasrem_182" + br i1 %"$gascmp_183", label %"$out_of_gas_184", label %"$have_gas_185" -"$out_of_gas_203": ; preds = %entry +"$out_of_gas_184": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_204" + br label %"$have_gas_185" -"$have_gas_204": ; preds = %"$out_of_gas_203", %entry - %"$consume_205" = sub i64 %"$gasrem_201", 1 - store i64 %"$consume_205", i64* @_gasrem, align 8 +"$have_gas_185": ; preds = %"$out_of_gas_184", %entry + %"$consume_186" = sub i64 %"$gasrem_182", 1 + store i64 %"$consume_186", i64* @_gasrem, align 8 %empty = alloca %Map_ByStr20_Bool*, align 8 - %"$gasrem_206" = load i64, i64* @_gasrem, align 8 - %"$gascmp_207" = icmp ugt i64 1, %"$gasrem_206" - br i1 %"$gascmp_207", label %"$out_of_gas_208", label %"$have_gas_209" - -"$out_of_gas_208": ; preds = %"$have_gas_204" - call void @_out_of_gas() - br label %"$have_gas_209" - -"$have_gas_209": ; preds = %"$out_of_gas_208", %"$have_gas_204" - %"$consume_210" = sub i64 %"$gasrem_206", 1 - store i64 %"$consume_210", i64* @_gasrem, align 8 - %"$execptr_load_211" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_212" = call i8* @_new_empty_map(i8* %"$execptr_load_211") - %"$_new_empty_map_213" = bitcast i8* %"$_new_empty_map_call_212" to %Map_ByStr20_Bool* - store %Map_ByStr20_Bool* %"$_new_empty_map_213", %Map_ByStr20_Bool** %empty, align 8 - %"$empty_214" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 - %"$$empty_214_215" = bitcast %Map_ByStr20_Bool* %"$empty_214" to i8* - %"$_lengthof_call_216" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_48", i8* %"$$empty_214_215") - %"$gasadd_217" = add i64 1, %"$_lengthof_call_216" - %"$gasrem_218" = load i64, i64* @_gasrem, align 8 - %"$gascmp_219" = icmp ugt i64 %"$gasadd_217", %"$gasrem_218" - br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" - -"$out_of_gas_220": ; preds = %"$have_gas_209" - call void @_out_of_gas() - br label %"$have_gas_221" - -"$have_gas_221": ; preds = %"$out_of_gas_220", %"$have_gas_209" - %"$consume_222" = sub i64 %"$gasrem_218", %"$gasadd_217" - store i64 %"$consume_222", i64* @_gasrem, align 8 - %"$execptr_load_223" = load i8*, i8** @_execptr, align 8 - %"$empty_224" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 - %"$$empty_224_225" = bitcast %Map_ByStr20_Bool* %"$empty_224" to i8* - %"$put_initialAdmin_226" = alloca [20 x i8], align 1 - %"$initialAdmin_227" = load [20 x i8], [20 x i8]* @_cparam_initialAdmin, align 1 - store [20 x i8] %"$initialAdmin_227", [20 x i8]* %"$put_initialAdmin_226", align 1 - %"$$put_initialAdmin_226_228" = bitcast [20 x i8]* %"$put_initialAdmin_226" to i8* - %"$ud-proxy.true_229" = load %TName_Bool*, %TName_Bool** @ud-proxy.true, align 8 - %"$$ud-proxy.true_229_230" = bitcast %TName_Bool* %"$ud-proxy.true_229" to i8* - %"$put_call_231" = call i8* @_put(i8* %"$execptr_load_223", %_TyDescrTy_Typ* @"$TyDescr_Map_48", i8* %"$$empty_224_225", i8* %"$$put_initialAdmin_226_228", i8* %"$$ud-proxy.true_229_230") - %"$put_232" = bitcast i8* %"$put_call_231" to %Map_ByStr20_Bool* - store %Map_ByStr20_Bool* %"$put_232", %Map_ByStr20_Bool** %"$admins_9", align 8 - %"$execptr_load_233" = load i8*, i8** @_execptr, align 8 - %"$$admins_9_235" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %"$admins_9", align 8 - %"$update_value_236" = bitcast %Map_ByStr20_Bool* %"$$admins_9_235" to i8* - call void @_update_field(i8* %"$execptr_load_233", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_234", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_48", i32 0, i8* null, i8* %"$update_value_236") + %"$gasrem_187" = load i64, i64* @_gasrem, align 8 + %"$gascmp_188" = icmp ugt i64 1, %"$gasrem_187" + br i1 %"$gascmp_188", label %"$out_of_gas_189", label %"$have_gas_190" + +"$out_of_gas_189": ; preds = %"$have_gas_185" + call void @_out_of_gas() + br label %"$have_gas_190" + +"$have_gas_190": ; preds = %"$out_of_gas_189", %"$have_gas_185" + %"$consume_191" = sub i64 %"$gasrem_187", 1 + store i64 %"$consume_191", i64* @_gasrem, align 8 + %"$execptr_load_192" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_193" = call i8* @_new_empty_map(i8* %"$execptr_load_192") + %"$_new_empty_map_194" = bitcast i8* %"$_new_empty_map_call_193" to %Map_ByStr20_Bool* + store %Map_ByStr20_Bool* %"$_new_empty_map_194", %Map_ByStr20_Bool** %empty, align 8 + %"$empty_195" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 + %"$$empty_195_196" = bitcast %Map_ByStr20_Bool* %"$empty_195" to i8* + %"$_lengthof_call_197" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$empty_195_196") + %"$gasadd_198" = add i64 1, %"$_lengthof_call_197" + %"$gasrem_199" = load i64, i64* @_gasrem, align 8 + %"$gascmp_200" = icmp ugt i64 %"$gasadd_198", %"$gasrem_199" + br i1 %"$gascmp_200", label %"$out_of_gas_201", label %"$have_gas_202" + +"$out_of_gas_201": ; preds = %"$have_gas_190" + call void @_out_of_gas() + br label %"$have_gas_202" + +"$have_gas_202": ; preds = %"$out_of_gas_201", %"$have_gas_190" + %"$consume_203" = sub i64 %"$gasrem_199", %"$gasadd_198" + store i64 %"$consume_203", i64* @_gasrem, align 8 + %"$execptr_load_204" = load i8*, i8** @_execptr, align 8 + %"$empty_205" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %empty, align 8 + %"$$empty_205_206" = bitcast %Map_ByStr20_Bool* %"$empty_205" to i8* + %"$put_initialAdmin_207" = alloca [20 x i8], align 1 + %"$initialAdmin_208" = load [20 x i8], [20 x i8]* @_cparam_initialAdmin, align 1 + store [20 x i8] %"$initialAdmin_208", [20 x i8]* %"$put_initialAdmin_207", align 1 + %"$$put_initialAdmin_207_209" = bitcast [20 x i8]* %"$put_initialAdmin_207" to i8* + %"$ud-proxy.true_210" = load %TName_Bool*, %TName_Bool** @ud-proxy.true, align 8 + %"$$ud-proxy.true_210_211" = bitcast %TName_Bool* %"$ud-proxy.true_210" to i8* + %"$put_call_212" = call i8* @_put(i8* %"$execptr_load_204", %_TyDescrTy_Typ* @"$TyDescr_Map_44", i8* %"$$empty_205_206", i8* %"$$put_initialAdmin_207_209", i8* %"$$ud-proxy.true_210_211") + %"$put_213" = bitcast i8* %"$put_call_212" to %Map_ByStr20_Bool* + store %Map_ByStr20_Bool* %"$put_213", %Map_ByStr20_Bool** %"$admins_5", align 8 + %"$execptr_load_214" = load i8*, i8** @_execptr, align 8 + %"$$admins_5_216" = load %Map_ByStr20_Bool*, %Map_ByStr20_Bool** %"$admins_5", align 8 + %"$update_value_217" = bitcast %Map_ByStr20_Bool* %"$$admins_5_216" to i8* + call void @_update_field(i8* %"$execptr_load_214", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_215", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 0, i8* null, i8* %"$update_value_217") ret void } @@ -456,243 +424,234 @@ declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$setAdmin_237"(%Uint128 %_amount, [20 x i8]* %"$_origin_238", [20 x i8]* %"$_sender_239", [20 x i8]* %"$address_240", %TName_Bool* %isApproved) { +define internal void @"$setAdmin_218"(%Uint128 %_amount, [20 x i8]* %"$_origin_219", [20 x i8]* %"$_sender_220", [20 x i8]* %"$address_221", %TName_Bool* %isApproved) { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_238", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_239", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_240", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_219", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_220", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_221", align 1 %maybeAdmin = alloca %TName_Option_Bool*, align 8 - %"$indices_buf_241_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_241_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_241_salloc_load", i64 20) - %"$indices_buf_241_salloc" = bitcast i8* %"$indices_buf_241_salloc_salloc" to [20 x i8]* - %"$indices_buf_241" = bitcast [20 x i8]* %"$indices_buf_241_salloc" to i8* - %"$indices_gep_242" = getelementptr i8, i8* %"$indices_buf_241", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_242" to [20 x i8]* + %"$indices_buf_222_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_222_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_222_salloc_load", i64 20) + %"$indices_buf_222_salloc" = bitcast i8* %"$indices_buf_222_salloc_salloc" to [20 x i8]* + %"$indices_buf_222" = bitcast [20 x i8]* %"$indices_buf_222_salloc" to i8* + %"$indices_gep_223" = getelementptr i8, i8* %"$indices_buf_222", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_223" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 - %"$execptr_load_244" = load i8*, i8** @_execptr, align 8 - %"$maybeAdmin_call_245" = call i8* @_fetch_field(i8* %"$execptr_load_244", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_243", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_48", i32 1, i8* %"$indices_buf_241", i32 1) - %"$maybeAdmin_246" = bitcast i8* %"$maybeAdmin_call_245" to %TName_Option_Bool* - store %TName_Option_Bool* %"$maybeAdmin_246", %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_247" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$$maybeAdmin_247_248" = bitcast %TName_Option_Bool* %"$maybeAdmin_247" to i8* - %"$_literal_cost_call_249" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_44", i8* %"$$maybeAdmin_247_248") - %"$gasadd_250" = add i64 %"$_literal_cost_call_249", 0 - %"$gasadd_251" = add i64 %"$gasadd_250", 1 - %"$gasrem_252" = load i64, i64* @_gasrem, align 8 - %"$gascmp_253" = icmp ugt i64 %"$gasadd_251", %"$gasrem_252" - br i1 %"$gascmp_253", label %"$out_of_gas_254", label %"$have_gas_255" - -"$out_of_gas_254": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_255" + %"$execptr_load_225" = load i8*, i8** @_execptr, align 8 + %"$maybeAdmin_call_226" = call i8* @_fetch_field(i8* %"$execptr_load_225", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_224", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 1, i8* %"$indices_buf_222", i32 1) + %"$maybeAdmin_227" = bitcast i8* %"$maybeAdmin_call_226" to %TName_Option_Bool* + store %TName_Option_Bool* %"$maybeAdmin_227", %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_228" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$$maybeAdmin_228_229" = bitcast %TName_Option_Bool* %"$maybeAdmin_228" to i8* + %"$_literal_cost_call_230" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_40", i8* %"$$maybeAdmin_228_229") + %"$gasadd_231" = add i64 %"$_literal_cost_call_230", 0 + %"$gasadd_232" = add i64 %"$gasadd_231", 1 + %"$gasrem_233" = load i64, i64* @_gasrem, align 8 + %"$gascmp_234" = icmp ugt i64 %"$gasadd_232", %"$gasrem_233" + br i1 %"$gascmp_234", label %"$out_of_gas_235", label %"$have_gas_236" + +"$out_of_gas_235": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_236" + +"$have_gas_236": ; preds = %"$out_of_gas_235", %entry + %"$consume_237" = sub i64 %"$gasrem_233", %"$gasadd_232" + store i64 %"$consume_237", i64* @_gasrem, align 8 + %"$gasrem_238" = load i64, i64* @_gasrem, align 8 + %"$gascmp_239" = icmp ugt i64 1, %"$gasrem_238" + br i1 %"$gascmp_239", label %"$out_of_gas_240", label %"$have_gas_241" + +"$out_of_gas_240": ; preds = %"$have_gas_236" + call void @_out_of_gas() + br label %"$have_gas_241" + +"$have_gas_241": ; preds = %"$out_of_gas_240", %"$have_gas_236" + %"$consume_242" = sub i64 %"$gasrem_238", 1 + store i64 %"$consume_242", i64* @_gasrem, align 8 + %isSenderAdmin = alloca %TName_Bool*, align 8 + %"$gasrem_243" = load i64, i64* @_gasrem, align 8 + %"$gascmp_244" = icmp ugt i64 2, %"$gasrem_243" + br i1 %"$gascmp_244", label %"$out_of_gas_245", label %"$have_gas_246" + +"$out_of_gas_245": ; preds = %"$have_gas_241" + call void @_out_of_gas() + br label %"$have_gas_246" + +"$have_gas_246": ; preds = %"$out_of_gas_245", %"$have_gas_241" + %"$consume_247" = sub i64 %"$gasrem_243", 2 + store i64 %"$consume_247", i64* @_gasrem, align 8 + %"$maybeAdmin_249" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_tag_250" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_249", i32 0, i32 0 + %"$maybeAdmin_tag_251" = load i8, i8* %"$maybeAdmin_tag_250", align 1 + switch i8 %"$maybeAdmin_tag_251", label %"$empty_default_252" [ + i8 0, label %"$Some_253" + i8 1, label %"$None_263" + ] -"$have_gas_255": ; preds = %"$out_of_gas_254", %entry - %"$consume_256" = sub i64 %"$gasrem_252", %"$gasadd_251" - store i64 %"$consume_256", i64* @_gasrem, align 8 +"$Some_253": ; preds = %"$have_gas_246" + %"$maybeAdmin_254" = bitcast %TName_Option_Bool* %"$maybeAdmin_249" to %CName_Some_Bool* + %"$approval_gep_255" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_254", i32 0, i32 1 + %"$approval_load_256" = load %TName_Bool*, %TName_Bool** %"$approval_gep_255", align 8 + %approval = alloca %TName_Bool*, align 8 + store %TName_Bool* %"$approval_load_256", %TName_Bool** %approval, align 8 %"$gasrem_257" = load i64, i64* @_gasrem, align 8 %"$gascmp_258" = icmp ugt i64 1, %"$gasrem_257" br i1 %"$gascmp_258", label %"$out_of_gas_259", label %"$have_gas_260" -"$out_of_gas_259": ; preds = %"$have_gas_255" +"$out_of_gas_259": ; preds = %"$Some_253" call void @_out_of_gas() br label %"$have_gas_260" -"$have_gas_260": ; preds = %"$out_of_gas_259", %"$have_gas_255" +"$have_gas_260": ; preds = %"$out_of_gas_259", %"$Some_253" %"$consume_261" = sub i64 %"$gasrem_257", 1 store i64 %"$consume_261", i64* @_gasrem, align 8 - %isSenderAdmin = alloca %TName_Bool*, align 8 - %"$gasrem_262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_263" = icmp ugt i64 2, %"$gasrem_262" - br i1 %"$gascmp_263", label %"$out_of_gas_264", label %"$have_gas_265" - -"$out_of_gas_264": ; preds = %"$have_gas_260" - call void @_out_of_gas() - br label %"$have_gas_265" - -"$have_gas_265": ; preds = %"$out_of_gas_264", %"$have_gas_260" - %"$consume_266" = sub i64 %"$gasrem_262", 2 - store i64 %"$consume_266", i64* @_gasrem, align 8 - %"$maybeAdmin_268" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_tag_269" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_268", i32 0, i32 0 - %"$maybeAdmin_tag_270" = load i8, i8* %"$maybeAdmin_tag_269", align 1 - switch i8 %"$maybeAdmin_tag_270", label %"$empty_default_271" [ - i8 0, label %"$Some_272" - i8 1, label %"$None_282" - ] - -"$Some_272": ; preds = %"$have_gas_265" - %"$maybeAdmin_273" = bitcast %TName_Option_Bool* %"$maybeAdmin_268" to %CName_Some_Bool* - %"$approval_gep_274" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_273", i32 0, i32 1 - %"$approval_load_275" = load %TName_Bool*, %TName_Bool** %"$approval_gep_274", align 8 - %approval = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$approval_load_275", %TName_Bool** %approval, align 8 - %"$gasrem_276" = load i64, i64* @_gasrem, align 8 - %"$gascmp_277" = icmp ugt i64 1, %"$gasrem_276" - br i1 %"$gascmp_277", label %"$out_of_gas_278", label %"$have_gas_279" - -"$out_of_gas_278": ; preds = %"$Some_272" - call void @_out_of_gas() - br label %"$have_gas_279" - -"$have_gas_279": ; preds = %"$out_of_gas_278", %"$Some_272" - %"$consume_280" = sub i64 %"$gasrem_276", 1 - store i64 %"$consume_280", i64* @_gasrem, align 8 - %"$approval_281" = load %TName_Bool*, %TName_Bool** %approval, align 8 - store %TName_Bool* %"$approval_281", %TName_Bool** %isSenderAdmin, align 8 - br label %"$matchsucc_267" - -"$None_282": ; preds = %"$have_gas_265" - %"$maybeAdmin_283" = bitcast %TName_Option_Bool* %"$maybeAdmin_268" to %CName_None_Bool* - %"$gasrem_284" = load i64, i64* @_gasrem, align 8 - %"$gascmp_285" = icmp ugt i64 1, %"$gasrem_284" - br i1 %"$gascmp_285", label %"$out_of_gas_286", label %"$have_gas_287" - -"$out_of_gas_286": ; preds = %"$None_282" - call void @_out_of_gas() - br label %"$have_gas_287" - -"$have_gas_287": ; preds = %"$out_of_gas_286", %"$None_282" - %"$consume_288" = sub i64 %"$gasrem_284", 1 - store i64 %"$consume_288", i64* @_gasrem, align 8 - %"$adtval_289_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_289_salloc" = call i8* @_salloc(i8* %"$adtval_289_load", i64 1) - %"$adtval_289" = bitcast i8* %"$adtval_289_salloc" to %CName_False* - %"$adtgep_290" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_289", i32 0, i32 0 - store i8 1, i8* %"$adtgep_290", align 1 - %"$adtptr_291" = bitcast %CName_False* %"$adtval_289" to %TName_Bool* - store %TName_Bool* %"$adtptr_291", %TName_Bool** %isSenderAdmin, align 8 - br label %"$matchsucc_267" - -"$empty_default_271": ; preds = %"$have_gas_265" - br label %"$matchsucc_267" - -"$matchsucc_267": ; preds = %"$have_gas_287", %"$have_gas_279", %"$empty_default_271" - %"$gasrem_292" = load i64, i64* @_gasrem, align 8 - %"$gascmp_293" = icmp ugt i64 2, %"$gasrem_292" - br i1 %"$gascmp_293", label %"$out_of_gas_294", label %"$have_gas_295" - -"$out_of_gas_294": ; preds = %"$matchsucc_267" - call void @_out_of_gas() - br label %"$have_gas_295" - -"$have_gas_295": ; preds = %"$out_of_gas_294", %"$matchsucc_267" - %"$consume_296" = sub i64 %"$gasrem_292", 2 - store i64 %"$consume_296", i64* @_gasrem, align 8 - %"$isSenderAdmin_298" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$isSenderAdmin_tag_299" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_298", i32 0, i32 0 - %"$isSenderAdmin_tag_300" = load i8, i8* %"$isSenderAdmin_tag_299", align 1 - switch i8 %"$isSenderAdmin_tag_300", label %"$empty_default_301" [ - i8 0, label %"$True_302" - i8 1, label %"$False_347" + %"$approval_262" = load %TName_Bool*, %TName_Bool** %approval, align 8 + store %TName_Bool* %"$approval_262", %TName_Bool** %isSenderAdmin, align 8 + br label %"$matchsucc_248" + +"$None_263": ; preds = %"$have_gas_246" + %"$maybeAdmin_264" = bitcast %TName_Option_Bool* %"$maybeAdmin_249" to %CName_None_Bool* + %"$gasrem_265" = load i64, i64* @_gasrem, align 8 + %"$gascmp_266" = icmp ugt i64 1, %"$gasrem_265" + br i1 %"$gascmp_266", label %"$out_of_gas_267", label %"$have_gas_268" + +"$out_of_gas_267": ; preds = %"$None_263" + call void @_out_of_gas() + br label %"$have_gas_268" + +"$have_gas_268": ; preds = %"$out_of_gas_267", %"$None_263" + %"$consume_269" = sub i64 %"$gasrem_265", 1 + store i64 %"$consume_269", i64* @_gasrem, align 8 + %"$adtval_270_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_270_salloc" = call i8* @_salloc(i8* %"$adtval_270_load", i64 1) + %"$adtval_270" = bitcast i8* %"$adtval_270_salloc" to %CName_False* + %"$adtgep_271" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_270", i32 0, i32 0 + store i8 1, i8* %"$adtgep_271", align 1 + %"$adtptr_272" = bitcast %CName_False* %"$adtval_270" to %TName_Bool* + store %TName_Bool* %"$adtptr_272", %TName_Bool** %isSenderAdmin, align 8 + br label %"$matchsucc_248" + +"$empty_default_252": ; preds = %"$have_gas_246" + br label %"$matchsucc_248" + +"$matchsucc_248": ; preds = %"$have_gas_268", %"$have_gas_260", %"$empty_default_252" + %"$gasrem_273" = load i64, i64* @_gasrem, align 8 + %"$gascmp_274" = icmp ugt i64 2, %"$gasrem_273" + br i1 %"$gascmp_274", label %"$out_of_gas_275", label %"$have_gas_276" + +"$out_of_gas_275": ; preds = %"$matchsucc_248" + call void @_out_of_gas() + br label %"$have_gas_276" + +"$have_gas_276": ; preds = %"$out_of_gas_275", %"$matchsucc_248" + %"$consume_277" = sub i64 %"$gasrem_273", 2 + store i64 %"$consume_277", i64* @_gasrem, align 8 + %"$isSenderAdmin_279" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$isSenderAdmin_tag_280" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_279", i32 0, i32 0 + %"$isSenderAdmin_tag_281" = load i8, i8* %"$isSenderAdmin_tag_280", align 1 + switch i8 %"$isSenderAdmin_tag_281", label %"$empty_default_282" [ + i8 0, label %"$True_283" + i8 1, label %"$False_323" ] -"$True_302": ; preds = %"$have_gas_295" - %"$isSenderAdmin_303" = bitcast %TName_Bool* %"$isSenderAdmin_298" to %CName_True* - %"$isApproved_304" = bitcast %TName_Bool* %isApproved to i8* - %"$_literal_cost_call_305" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_45", i8* %"$isApproved_304") - %"$gasadd_306" = add i64 %"$_literal_cost_call_305", 1 - %"$gasrem_307" = load i64, i64* @_gasrem, align 8 - %"$gascmp_308" = icmp ugt i64 %"$gasadd_306", %"$gasrem_307" - br i1 %"$gascmp_308", label %"$out_of_gas_309", label %"$have_gas_310" - -"$out_of_gas_309": ; preds = %"$True_302" - call void @_out_of_gas() - br label %"$have_gas_310" - -"$have_gas_310": ; preds = %"$out_of_gas_309", %"$True_302" - %"$consume_311" = sub i64 %"$gasrem_307", %"$gasadd_306" - store i64 %"$consume_311", i64* @_gasrem, align 8 - %"$indices_buf_312_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_312_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_312_salloc_load", i64 20) - %"$indices_buf_312_salloc" = bitcast i8* %"$indices_buf_312_salloc_salloc" to [20 x i8]* - %"$indices_buf_312" = bitcast [20 x i8]* %"$indices_buf_312_salloc" to i8* - %"$indices_gep_313" = getelementptr i8, i8* %"$indices_buf_312", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_313" to [20 x i8]* +"$True_283": ; preds = %"$have_gas_276" + %"$isSenderAdmin_284" = bitcast %TName_Bool* %"$isSenderAdmin_279" to %CName_True* + %"$isApproved_285" = bitcast %TName_Bool* %isApproved to i8* + %"$_literal_cost_call_286" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_41", i8* %"$isApproved_285") + %"$gasadd_287" = add i64 %"$_literal_cost_call_286", 1 + %"$gasrem_288" = load i64, i64* @_gasrem, align 8 + %"$gascmp_289" = icmp ugt i64 %"$gasadd_287", %"$gasrem_288" + br i1 %"$gascmp_289", label %"$out_of_gas_290", label %"$have_gas_291" + +"$out_of_gas_290": ; preds = %"$True_283" + call void @_out_of_gas() + br label %"$have_gas_291" + +"$have_gas_291": ; preds = %"$out_of_gas_290", %"$True_283" + %"$consume_292" = sub i64 %"$gasrem_288", %"$gasadd_287" + store i64 %"$consume_292", i64* @_gasrem, align 8 + %"$indices_buf_293_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_293_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_293_salloc_load", i64 20) + %"$indices_buf_293_salloc" = bitcast i8* %"$indices_buf_293_salloc_salloc" to [20 x i8]* + %"$indices_buf_293" = bitcast [20 x i8]* %"$indices_buf_293_salloc" to i8* + %"$indices_gep_294" = getelementptr i8, i8* %"$indices_buf_293", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_294" to [20 x i8]* store [20 x i8] %address, [20 x i8]* %indices_cast1, align 1 - %"$execptr_load_314" = load i8*, i8** @_execptr, align 8 - %"$update_value_316" = bitcast %TName_Bool* %isApproved to i8* - call void @_update_field(i8* %"$execptr_load_314", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_315", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_48", i32 1, i8* %"$indices_buf_312", i8* %"$update_value_316") - %"$gasrem_317" = load i64, i64* @_gasrem, align 8 - %"$gascmp_318" = icmp ugt i64 1, %"$gasrem_317" - br i1 %"$gascmp_318", label %"$out_of_gas_319", label %"$have_gas_320" - -"$out_of_gas_319": ; preds = %"$have_gas_310" - call void @_out_of_gas() - br label %"$have_gas_320" - -"$have_gas_320": ; preds = %"$out_of_gas_319", %"$have_gas_310" - %"$consume_321" = sub i64 %"$gasrem_317", 1 - store i64 %"$consume_321", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 - %"$gasrem_322" = load i64, i64* @_gasrem, align 8 - %"$gascmp_323" = icmp ugt i64 1, %"$gasrem_322" - br i1 %"$gascmp_323", label %"$out_of_gas_324", label %"$have_gas_325" + %"$execptr_load_295" = load i8*, i8** @_execptr, align 8 + %"$update_value_297" = bitcast %TName_Bool* %isApproved to i8* + call void @_update_field(i8* %"$execptr_load_295", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_296", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 1, i8* %"$indices_buf_293", i8* %"$update_value_297") + %"$gasrem_298" = load i64, i64* @_gasrem, align 8 + %"$gascmp_299" = icmp ugt i64 1, %"$gasrem_298" + br i1 %"$gascmp_299", label %"$out_of_gas_300", label %"$have_gas_301" -"$out_of_gas_324": ; preds = %"$have_gas_320" - call void @_out_of_gas() - br label %"$have_gas_325" - -"$have_gas_325": ; preds = %"$out_of_gas_324", %"$have_gas_320" - %"$consume_326" = sub i64 %"$gasrem_322", 1 - store i64 %"$consume_326", i64* @_gasrem, align 8 - %"$ud-proxy.eAdminSet_0" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-proxy.eAdminSet_327" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-proxy.eAdminSet, align 8 - %"$ud-proxy.eAdminSet_fptr_328" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-proxy.eAdminSet_327", 0 - %"$ud-proxy.eAdminSet_envptr_329" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-proxy.eAdminSet_327", 1 - %"$ud-proxy.eAdminSet_address_330" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-proxy.eAdminSet_address_330", align 1 - %"$ud-proxy.eAdminSet_call_331" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_fptr_328"(i8* %"$ud-proxy.eAdminSet_envptr_329", [20 x i8]* %"$ud-proxy.eAdminSet_address_330") - store { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_call_331", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-proxy.eAdminSet_0", align 8 - %"$ud-proxy.eAdminSet_1" = alloca i8*, align 8 - %"$$ud-proxy.eAdminSet_0_332" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-proxy.eAdminSet_0", align 8 - %"$$ud-proxy.eAdminSet_0_fptr_333" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-proxy.eAdminSet_0_332", 0 - %"$$ud-proxy.eAdminSet_0_envptr_334" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-proxy.eAdminSet_0_332", 1 - %"$$ud-proxy.eAdminSet_0_call_335" = call i8* %"$$ud-proxy.eAdminSet_0_fptr_333"(i8* %"$$ud-proxy.eAdminSet_0_envptr_334", %TName_Bool* %isApproved) - store i8* %"$$ud-proxy.eAdminSet_0_call_335", i8** %"$ud-proxy.eAdminSet_1", align 8 - %"$$ud-proxy.eAdminSet_1_336" = load i8*, i8** %"$ud-proxy.eAdminSet_1", align 8 - store i8* %"$$ud-proxy.eAdminSet_1_336", i8** %e, align 8 - %"$e_337" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_339" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$e_337") - %"$gasrem_340" = load i64, i64* @_gasrem, align 8 - %"$gascmp_341" = icmp ugt i64 %"$_literal_cost_call_339", %"$gasrem_340" - br i1 %"$gascmp_341", label %"$out_of_gas_342", label %"$have_gas_343" - -"$out_of_gas_342": ; preds = %"$have_gas_325" - call void @_out_of_gas() - br label %"$have_gas_343" - -"$have_gas_343": ; preds = %"$out_of_gas_342", %"$have_gas_325" - %"$consume_344" = sub i64 %"$gasrem_340", %"$_literal_cost_call_339" - store i64 %"$consume_344", i64* @_gasrem, align 8 - %"$execptr_load_345" = load i8*, i8** @_execptr, align 8 - %"$e_346" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_345", %_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$e_346") - br label %"$matchsucc_297" - -"$False_347": ; preds = %"$have_gas_295" - %"$isSenderAdmin_348" = bitcast %TName_Bool* %"$isSenderAdmin_298" to %CName_False* - %"$ud-proxy.eError_349" = load i8*, i8** @ud-proxy.eError, align 8 - %"$_literal_cost_call_351" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$ud-proxy.eError_349") - %"$gasrem_352" = load i64, i64* @_gasrem, align 8 - %"$gascmp_353" = icmp ugt i64 %"$_literal_cost_call_351", %"$gasrem_352" - br i1 %"$gascmp_353", label %"$out_of_gas_354", label %"$have_gas_355" - -"$out_of_gas_354": ; preds = %"$False_347" +"$out_of_gas_300": ; preds = %"$have_gas_291" call void @_out_of_gas() - br label %"$have_gas_355" + br label %"$have_gas_301" -"$have_gas_355": ; preds = %"$out_of_gas_354", %"$False_347" - %"$consume_356" = sub i64 %"$gasrem_352", %"$_literal_cost_call_351" - store i64 %"$consume_356", i64* @_gasrem, align 8 - %"$execptr_load_357" = load i8*, i8** @_execptr, align 8 - %"$ud-proxy.eError_358" = load i8*, i8** @ud-proxy.eError, align 8 - call void @_event(i8* %"$execptr_load_357", %_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$ud-proxy.eError_358") - br label %"$matchsucc_297" - -"$empty_default_301": ; preds = %"$have_gas_295" - br label %"$matchsucc_297" - -"$matchsucc_297": ; preds = %"$have_gas_355", %"$have_gas_343", %"$empty_default_301" +"$have_gas_301": ; preds = %"$out_of_gas_300", %"$have_gas_291" + %"$consume_302" = sub i64 %"$gasrem_298", 1 + store i64 %"$consume_302", i64* @_gasrem, align 8 + %e = alloca i8*, align 8 + %"$gasrem_303" = load i64, i64* @_gasrem, align 8 + %"$gascmp_304" = icmp ugt i64 1, %"$gasrem_303" + br i1 %"$gascmp_304", label %"$out_of_gas_305", label %"$have_gas_306" + +"$out_of_gas_305": ; preds = %"$have_gas_301" + call void @_out_of_gas() + br label %"$have_gas_306" + +"$have_gas_306": ; preds = %"$out_of_gas_305", %"$have_gas_301" + %"$consume_307" = sub i64 %"$gasrem_303", 1 + store i64 %"$consume_307", i64* @_gasrem, align 8 + %"$ud-proxy.eAdminSet_308" = load { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }, { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-proxy.eAdminSet, align 8 + %"$ud-proxy.eAdminSet_fptr_309" = extractvalue { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_308", 0 + %"$ud-proxy.eAdminSet_envptr_310" = extractvalue { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-proxy.eAdminSet_308", 1 + %"$ud-proxy.eAdminSet_address_311" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-proxy.eAdminSet_address_311", align 1 + %"$ud-proxy.eAdminSet_call_312" = call i8* %"$ud-proxy.eAdminSet_fptr_309"(i8* %"$ud-proxy.eAdminSet_envptr_310", [20 x i8]* %"$ud-proxy.eAdminSet_address_311", %TName_Bool* %isApproved) + store i8* %"$ud-proxy.eAdminSet_call_312", i8** %e, align 8 + %"$e_313" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_315" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$e_313") + %"$gasrem_316" = load i64, i64* @_gasrem, align 8 + %"$gascmp_317" = icmp ugt i64 %"$_literal_cost_call_315", %"$gasrem_316" + br i1 %"$gascmp_317", label %"$out_of_gas_318", label %"$have_gas_319" + +"$out_of_gas_318": ; preds = %"$have_gas_306" + call void @_out_of_gas() + br label %"$have_gas_319" + +"$have_gas_319": ; preds = %"$out_of_gas_318", %"$have_gas_306" + %"$consume_320" = sub i64 %"$gasrem_316", %"$_literal_cost_call_315" + store i64 %"$consume_320", i64* @_gasrem, align 8 + %"$execptr_load_321" = load i8*, i8** @_execptr, align 8 + %"$e_322" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_321", %_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$e_322") + br label %"$matchsucc_278" + +"$False_323": ; preds = %"$have_gas_276" + %"$isSenderAdmin_324" = bitcast %TName_Bool* %"$isSenderAdmin_279" to %CName_False* + %"$ud-proxy.eError_325" = load i8*, i8** @ud-proxy.eError, align 8 + %"$_literal_cost_call_327" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$ud-proxy.eError_325") + %"$gasrem_328" = load i64, i64* @_gasrem, align 8 + %"$gascmp_329" = icmp ugt i64 %"$_literal_cost_call_327", %"$gasrem_328" + br i1 %"$gascmp_329", label %"$out_of_gas_330", label %"$have_gas_331" + +"$out_of_gas_330": ; preds = %"$False_323" + call void @_out_of_gas() + br label %"$have_gas_331" + +"$have_gas_331": ; preds = %"$out_of_gas_330", %"$False_323" + %"$consume_332" = sub i64 %"$gasrem_328", %"$_literal_cost_call_327" + store i64 %"$consume_332", i64* @_gasrem, align 8 + %"$execptr_load_333" = load i8*, i8** @_execptr, align 8 + %"$ud-proxy.eError_334" = load i8*, i8** @ud-proxy.eError, align 8 + call void @_event(i8* %"$execptr_load_333", %_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$ud-proxy.eError_334") + br label %"$matchsucc_278" + +"$empty_default_282": ; preds = %"$have_gas_276" + br label %"$matchsucc_278" + +"$matchsucc_278": ; preds = %"$have_gas_331", %"$have_gas_319", %"$empty_default_282" ret void } @@ -704,314 +663,314 @@ declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) define void @setAdmin(i8* %0) { entry: - %"$_amount_360" = getelementptr i8, i8* %0, i32 0 - %"$_amount_361" = bitcast i8* %"$_amount_360" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_361", align 8 - %"$_origin_362" = getelementptr i8, i8* %0, i32 16 - %"$_origin_363" = bitcast i8* %"$_origin_362" to [20 x i8]* - %"$_sender_364" = getelementptr i8, i8* %0, i32 36 - %"$_sender_365" = bitcast i8* %"$_sender_364" to [20 x i8]* - %"$address_366" = getelementptr i8, i8* %0, i32 56 - %"$address_367" = bitcast i8* %"$address_366" to [20 x i8]* - %"$isApproved_368" = getelementptr i8, i8* %0, i32 76 - %"$isApproved_369" = bitcast i8* %"$isApproved_368" to %TName_Bool** - %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_369", align 8 - call void @"$setAdmin_237"(%Uint128 %_amount, [20 x i8]* %"$_origin_363", [20 x i8]* %"$_sender_365", [20 x i8]* %"$address_367", %TName_Bool* %isApproved) + %"$_amount_336" = getelementptr i8, i8* %0, i32 0 + %"$_amount_337" = bitcast i8* %"$_amount_336" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_337", align 8 + %"$_origin_338" = getelementptr i8, i8* %0, i32 16 + %"$_origin_339" = bitcast i8* %"$_origin_338" to [20 x i8]* + %"$_sender_340" = getelementptr i8, i8* %0, i32 36 + %"$_sender_341" = bitcast i8* %"$_sender_340" to [20 x i8]* + %"$address_342" = getelementptr i8, i8* %0, i32 56 + %"$address_343" = bitcast i8* %"$address_342" to [20 x i8]* + %"$isApproved_344" = getelementptr i8, i8* %0, i32 76 + %"$isApproved_345" = bitcast i8* %"$isApproved_344" to %TName_Bool** + %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_345", align 8 + call void @"$setAdmin_218"(%Uint128 %_amount, [20 x i8]* %"$_origin_339", [20 x i8]* %"$_sender_341", [20 x i8]* %"$address_343", %TName_Bool* %isApproved) ret void } -define internal void @"$bestow_370"(%Uint128 %_amount, [20 x i8]* %"$_origin_371", [20 x i8]* %"$_sender_372", %String %label, [20 x i8]* %"$owner_373", [20 x i8]* %"$resolver_374") { +define internal void @"$bestow_346"(%Uint128 %_amount, [20 x i8]* %"$_origin_347", [20 x i8]* %"$_sender_348", %String %label, [20 x i8]* %"$owner_349", [20 x i8]* %"$resolver_350") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_371", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_372", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_373", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_374", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_347", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_348", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_349", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_350", align 1 %maybeAdmin = alloca %TName_Option_Bool*, align 8 - %"$indices_buf_375_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_375_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_375_salloc_load", i64 20) - %"$indices_buf_375_salloc" = bitcast i8* %"$indices_buf_375_salloc_salloc" to [20 x i8]* - %"$indices_buf_375" = bitcast [20 x i8]* %"$indices_buf_375_salloc" to i8* - %"$indices_gep_376" = getelementptr i8, i8* %"$indices_buf_375", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_376" to [20 x i8]* + %"$indices_buf_351_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_351_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_351_salloc_load", i64 20) + %"$indices_buf_351_salloc" = bitcast i8* %"$indices_buf_351_salloc_salloc" to [20 x i8]* + %"$indices_buf_351" = bitcast [20 x i8]* %"$indices_buf_351_salloc" to i8* + %"$indices_gep_352" = getelementptr i8, i8* %"$indices_buf_351", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_352" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 - %"$execptr_load_378" = load i8*, i8** @_execptr, align 8 - %"$maybeAdmin_call_379" = call i8* @_fetch_field(i8* %"$execptr_load_378", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_377", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_48", i32 1, i8* %"$indices_buf_375", i32 1) - %"$maybeAdmin_380" = bitcast i8* %"$maybeAdmin_call_379" to %TName_Option_Bool* - store %TName_Option_Bool* %"$maybeAdmin_380", %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_381" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$$maybeAdmin_381_382" = bitcast %TName_Option_Bool* %"$maybeAdmin_381" to i8* - %"$_literal_cost_call_383" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_44", i8* %"$$maybeAdmin_381_382") - %"$gasadd_384" = add i64 %"$_literal_cost_call_383", 0 - %"$gasadd_385" = add i64 %"$gasadd_384", 1 + %"$execptr_load_354" = load i8*, i8** @_execptr, align 8 + %"$maybeAdmin_call_355" = call i8* @_fetch_field(i8* %"$execptr_load_354", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_353", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_44", i32 1, i8* %"$indices_buf_351", i32 1) + %"$maybeAdmin_356" = bitcast i8* %"$maybeAdmin_call_355" to %TName_Option_Bool* + store %TName_Option_Bool* %"$maybeAdmin_356", %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_357" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$$maybeAdmin_357_358" = bitcast %TName_Option_Bool* %"$maybeAdmin_357" to i8* + %"$_literal_cost_call_359" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_Bool_40", i8* %"$$maybeAdmin_357_358") + %"$gasadd_360" = add i64 %"$_literal_cost_call_359", 0 + %"$gasadd_361" = add i64 %"$gasadd_360", 1 + %"$gasrem_362" = load i64, i64* @_gasrem, align 8 + %"$gascmp_363" = icmp ugt i64 %"$gasadd_361", %"$gasrem_362" + br i1 %"$gascmp_363", label %"$out_of_gas_364", label %"$have_gas_365" + +"$out_of_gas_364": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_365" + +"$have_gas_365": ; preds = %"$out_of_gas_364", %entry + %"$consume_366" = sub i64 %"$gasrem_362", %"$gasadd_361" + store i64 %"$consume_366", i64* @_gasrem, align 8 + %"$gasrem_367" = load i64, i64* @_gasrem, align 8 + %"$gascmp_368" = icmp ugt i64 1, %"$gasrem_367" + br i1 %"$gascmp_368", label %"$out_of_gas_369", label %"$have_gas_370" + +"$out_of_gas_369": ; preds = %"$have_gas_365" + call void @_out_of_gas() + br label %"$have_gas_370" + +"$have_gas_370": ; preds = %"$out_of_gas_369", %"$have_gas_365" + %"$consume_371" = sub i64 %"$gasrem_367", 1 + store i64 %"$consume_371", i64* @_gasrem, align 8 + %isSenderAdmin = alloca %TName_Bool*, align 8 + %"$gasrem_372" = load i64, i64* @_gasrem, align 8 + %"$gascmp_373" = icmp ugt i64 2, %"$gasrem_372" + br i1 %"$gascmp_373", label %"$out_of_gas_374", label %"$have_gas_375" + +"$out_of_gas_374": ; preds = %"$have_gas_370" + call void @_out_of_gas() + br label %"$have_gas_375" + +"$have_gas_375": ; preds = %"$out_of_gas_374", %"$have_gas_370" + %"$consume_376" = sub i64 %"$gasrem_372", 2 + store i64 %"$consume_376", i64* @_gasrem, align 8 + %"$maybeAdmin_378" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 + %"$maybeAdmin_tag_379" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_378", i32 0, i32 0 + %"$maybeAdmin_tag_380" = load i8, i8* %"$maybeAdmin_tag_379", align 1 + switch i8 %"$maybeAdmin_tag_380", label %"$empty_default_381" [ + i8 0, label %"$Some_382" + i8 1, label %"$None_392" + ] + +"$Some_382": ; preds = %"$have_gas_375" + %"$maybeAdmin_383" = bitcast %TName_Option_Bool* %"$maybeAdmin_378" to %CName_Some_Bool* + %"$isAdmin_gep_384" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_383", i32 0, i32 1 + %"$isAdmin_load_385" = load %TName_Bool*, %TName_Bool** %"$isAdmin_gep_384", align 8 + %isAdmin = alloca %TName_Bool*, align 8 + store %TName_Bool* %"$isAdmin_load_385", %TName_Bool** %isAdmin, align 8 %"$gasrem_386" = load i64, i64* @_gasrem, align 8 - %"$gascmp_387" = icmp ugt i64 %"$gasadd_385", %"$gasrem_386" + %"$gascmp_387" = icmp ugt i64 1, %"$gasrem_386" br i1 %"$gascmp_387", label %"$out_of_gas_388", label %"$have_gas_389" -"$out_of_gas_388": ; preds = %entry +"$out_of_gas_388": ; preds = %"$Some_382" call void @_out_of_gas() br label %"$have_gas_389" -"$have_gas_389": ; preds = %"$out_of_gas_388", %entry - %"$consume_390" = sub i64 %"$gasrem_386", %"$gasadd_385" +"$have_gas_389": ; preds = %"$out_of_gas_388", %"$Some_382" + %"$consume_390" = sub i64 %"$gasrem_386", 1 store i64 %"$consume_390", i64* @_gasrem, align 8 - %"$gasrem_391" = load i64, i64* @_gasrem, align 8 - %"$gascmp_392" = icmp ugt i64 1, %"$gasrem_391" - br i1 %"$gascmp_392", label %"$out_of_gas_393", label %"$have_gas_394" - -"$out_of_gas_393": ; preds = %"$have_gas_389" - call void @_out_of_gas() - br label %"$have_gas_394" - -"$have_gas_394": ; preds = %"$out_of_gas_393", %"$have_gas_389" - %"$consume_395" = sub i64 %"$gasrem_391", 1 - store i64 %"$consume_395", i64* @_gasrem, align 8 - %isSenderAdmin = alloca %TName_Bool*, align 8 - %"$gasrem_396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_397" = icmp ugt i64 2, %"$gasrem_396" - br i1 %"$gascmp_397", label %"$out_of_gas_398", label %"$have_gas_399" - -"$out_of_gas_398": ; preds = %"$have_gas_394" - call void @_out_of_gas() - br label %"$have_gas_399" - -"$have_gas_399": ; preds = %"$out_of_gas_398", %"$have_gas_394" - %"$consume_400" = sub i64 %"$gasrem_396", 2 - store i64 %"$consume_400", i64* @_gasrem, align 8 - %"$maybeAdmin_402" = load %TName_Option_Bool*, %TName_Option_Bool** %maybeAdmin, align 8 - %"$maybeAdmin_tag_403" = getelementptr inbounds %TName_Option_Bool, %TName_Option_Bool* %"$maybeAdmin_402", i32 0, i32 0 - %"$maybeAdmin_tag_404" = load i8, i8* %"$maybeAdmin_tag_403", align 1 - switch i8 %"$maybeAdmin_tag_404", label %"$empty_default_405" [ - i8 0, label %"$Some_406" - i8 1, label %"$None_416" - ] - -"$Some_406": ; preds = %"$have_gas_399" - %"$maybeAdmin_407" = bitcast %TName_Option_Bool* %"$maybeAdmin_402" to %CName_Some_Bool* - %"$isAdmin_gep_408" = getelementptr inbounds %CName_Some_Bool, %CName_Some_Bool* %"$maybeAdmin_407", i32 0, i32 1 - %"$isAdmin_load_409" = load %TName_Bool*, %TName_Bool** %"$isAdmin_gep_408", align 8 - %isAdmin = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$isAdmin_load_409", %TName_Bool** %isAdmin, align 8 - %"$gasrem_410" = load i64, i64* @_gasrem, align 8 - %"$gascmp_411" = icmp ugt i64 1, %"$gasrem_410" - br i1 %"$gascmp_411", label %"$out_of_gas_412", label %"$have_gas_413" - -"$out_of_gas_412": ; preds = %"$Some_406" - call void @_out_of_gas() - br label %"$have_gas_413" - -"$have_gas_413": ; preds = %"$out_of_gas_412", %"$Some_406" - %"$consume_414" = sub i64 %"$gasrem_410", 1 - store i64 %"$consume_414", i64* @_gasrem, align 8 - %"$isAdmin_415" = load %TName_Bool*, %TName_Bool** %isAdmin, align 8 - store %TName_Bool* %"$isAdmin_415", %TName_Bool** %isSenderAdmin, align 8 - br label %"$matchsucc_401" - -"$None_416": ; preds = %"$have_gas_399" - %"$maybeAdmin_417" = bitcast %TName_Option_Bool* %"$maybeAdmin_402" to %CName_None_Bool* - %"$gasrem_418" = load i64, i64* @_gasrem, align 8 - %"$gascmp_419" = icmp ugt i64 1, %"$gasrem_418" - br i1 %"$gascmp_419", label %"$out_of_gas_420", label %"$have_gas_421" - -"$out_of_gas_420": ; preds = %"$None_416" - call void @_out_of_gas() - br label %"$have_gas_421" - -"$have_gas_421": ; preds = %"$out_of_gas_420", %"$None_416" - %"$consume_422" = sub i64 %"$gasrem_418", 1 - store i64 %"$consume_422", i64* @_gasrem, align 8 - %"$adtval_423_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_423_salloc" = call i8* @_salloc(i8* %"$adtval_423_load", i64 1) - %"$adtval_423" = bitcast i8* %"$adtval_423_salloc" to %CName_False* - %"$adtgep_424" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_423", i32 0, i32 0 - store i8 1, i8* %"$adtgep_424", align 1 - %"$adtptr_425" = bitcast %CName_False* %"$adtval_423" to %TName_Bool* - store %TName_Bool* %"$adtptr_425", %TName_Bool** %isSenderAdmin, align 8 - br label %"$matchsucc_401" - -"$empty_default_405": ; preds = %"$have_gas_399" - br label %"$matchsucc_401" - -"$matchsucc_401": ; preds = %"$have_gas_421", %"$have_gas_413", %"$empty_default_405" - %"$gasrem_426" = load i64, i64* @_gasrem, align 8 - %"$gascmp_427" = icmp ugt i64 2, %"$gasrem_426" - br i1 %"$gascmp_427", label %"$out_of_gas_428", label %"$have_gas_429" - -"$out_of_gas_428": ; preds = %"$matchsucc_401" - call void @_out_of_gas() - br label %"$have_gas_429" - -"$have_gas_429": ; preds = %"$out_of_gas_428", %"$matchsucc_401" - %"$consume_430" = sub i64 %"$gasrem_426", 2 - store i64 %"$consume_430", i64* @_gasrem, align 8 - %"$isSenderAdmin_432" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$isSenderAdmin_tag_433" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_432", i32 0, i32 0 - %"$isSenderAdmin_tag_434" = load i8, i8* %"$isSenderAdmin_tag_433", align 1 - switch i8 %"$isSenderAdmin_tag_434", label %"$empty_default_435" [ - i8 0, label %"$True_436" - i8 1, label %"$False_520" + %"$isAdmin_391" = load %TName_Bool*, %TName_Bool** %isAdmin, align 8 + store %TName_Bool* %"$isAdmin_391", %TName_Bool** %isSenderAdmin, align 8 + br label %"$matchsucc_377" + +"$None_392": ; preds = %"$have_gas_375" + %"$maybeAdmin_393" = bitcast %TName_Option_Bool* %"$maybeAdmin_378" to %CName_None_Bool* + %"$gasrem_394" = load i64, i64* @_gasrem, align 8 + %"$gascmp_395" = icmp ugt i64 1, %"$gasrem_394" + br i1 %"$gascmp_395", label %"$out_of_gas_396", label %"$have_gas_397" + +"$out_of_gas_396": ; preds = %"$None_392" + call void @_out_of_gas() + br label %"$have_gas_397" + +"$have_gas_397": ; preds = %"$out_of_gas_396", %"$None_392" + %"$consume_398" = sub i64 %"$gasrem_394", 1 + store i64 %"$consume_398", i64* @_gasrem, align 8 + %"$adtval_399_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_399_salloc" = call i8* @_salloc(i8* %"$adtval_399_load", i64 1) + %"$adtval_399" = bitcast i8* %"$adtval_399_salloc" to %CName_False* + %"$adtgep_400" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_399", i32 0, i32 0 + store i8 1, i8* %"$adtgep_400", align 1 + %"$adtptr_401" = bitcast %CName_False* %"$adtval_399" to %TName_Bool* + store %TName_Bool* %"$adtptr_401", %TName_Bool** %isSenderAdmin, align 8 + br label %"$matchsucc_377" + +"$empty_default_381": ; preds = %"$have_gas_375" + br label %"$matchsucc_377" + +"$matchsucc_377": ; preds = %"$have_gas_397", %"$have_gas_389", %"$empty_default_381" + %"$gasrem_402" = load i64, i64* @_gasrem, align 8 + %"$gascmp_403" = icmp ugt i64 2, %"$gasrem_402" + br i1 %"$gascmp_403", label %"$out_of_gas_404", label %"$have_gas_405" + +"$out_of_gas_404": ; preds = %"$matchsucc_377" + call void @_out_of_gas() + br label %"$have_gas_405" + +"$have_gas_405": ; preds = %"$out_of_gas_404", %"$matchsucc_377" + %"$consume_406" = sub i64 %"$gasrem_402", 2 + store i64 %"$consume_406", i64* @_gasrem, align 8 + %"$isSenderAdmin_408" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$isSenderAdmin_tag_409" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_408", i32 0, i32 0 + %"$isSenderAdmin_tag_410" = load i8, i8* %"$isSenderAdmin_tag_409", align 1 + switch i8 %"$isSenderAdmin_tag_410", label %"$empty_default_411" [ + i8 0, label %"$True_412" + i8 1, label %"$False_496" ] -"$True_436": ; preds = %"$have_gas_429" - %"$isSenderAdmin_437" = bitcast %TName_Bool* %"$isSenderAdmin_432" to %CName_True* - %"$gasrem_438" = load i64, i64* @_gasrem, align 8 - %"$gascmp_439" = icmp ugt i64 1, %"$gasrem_438" - br i1 %"$gascmp_439", label %"$out_of_gas_440", label %"$have_gas_441" +"$True_412": ; preds = %"$have_gas_405" + %"$isSenderAdmin_413" = bitcast %TName_Bool* %"$isSenderAdmin_408" to %CName_True* + %"$gasrem_414" = load i64, i64* @_gasrem, align 8 + %"$gascmp_415" = icmp ugt i64 1, %"$gasrem_414" + br i1 %"$gascmp_415", label %"$out_of_gas_416", label %"$have_gas_417" -"$out_of_gas_440": ; preds = %"$True_436" +"$out_of_gas_416": ; preds = %"$True_412" call void @_out_of_gas() - br label %"$have_gas_441" + br label %"$have_gas_417" -"$have_gas_441": ; preds = %"$out_of_gas_440", %"$True_436" - %"$consume_442" = sub i64 %"$gasrem_438", 1 - store i64 %"$consume_442", i64* @_gasrem, align 8 +"$have_gas_417": ; preds = %"$out_of_gas_416", %"$True_412" + %"$consume_418" = sub i64 %"$gasrem_414", 1 + store i64 %"$consume_418", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_443" = load i64, i64* @_gasrem, align 8 - %"$gascmp_444" = icmp ugt i64 1, %"$gasrem_443" - br i1 %"$gascmp_444", label %"$out_of_gas_445", label %"$have_gas_446" + %"$gasrem_419" = load i64, i64* @_gasrem, align 8 + %"$gascmp_420" = icmp ugt i64 1, %"$gasrem_419" + br i1 %"$gascmp_420", label %"$out_of_gas_421", label %"$have_gas_422" -"$out_of_gas_445": ; preds = %"$have_gas_441" +"$out_of_gas_421": ; preds = %"$have_gas_417" call void @_out_of_gas() - br label %"$have_gas_446" + br label %"$have_gas_422" -"$have_gas_446": ; preds = %"$out_of_gas_445", %"$have_gas_441" - %"$consume_447" = sub i64 %"$gasrem_443", 1 - store i64 %"$consume_447", i64* @_gasrem, align 8 +"$have_gas_422": ; preds = %"$out_of_gas_421", %"$have_gas_417" + %"$consume_423" = sub i64 %"$gasrem_419", 1 + store i64 %"$consume_423", i64* @_gasrem, align 8 %m = alloca i8*, align 8 - %"$gasrem_448" = load i64, i64* @_gasrem, align 8 - %"$gascmp_449" = icmp ugt i64 1, %"$gasrem_448" - br i1 %"$gascmp_449", label %"$out_of_gas_450", label %"$have_gas_451" - -"$out_of_gas_450": ; preds = %"$have_gas_446" - call void @_out_of_gas() - br label %"$have_gas_451" - -"$have_gas_451": ; preds = %"$out_of_gas_450", %"$have_gas_446" - %"$consume_452" = sub i64 %"$gasrem_448", 1 - store i64 %"$consume_452", i64* @_gasrem, align 8 - %"$msgobj_453_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_453_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_453_salloc_load", i64 253) - %"$msgobj_453_salloc" = bitcast i8* %"$msgobj_453_salloc_salloc" to [253 x i8]* - %"$msgobj_453" = bitcast [253 x i8]* %"$msgobj_453_salloc" to i8* - store i8 6, i8* %"$msgobj_453", align 1 - %"$msgobj_fname_455" = getelementptr i8, i8* %"$msgobj_453", i32 1 - %"$msgobj_fname_456" = bitcast i8* %"$msgobj_fname_455" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_454", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_456", align 8 - %"$msgobj_td_457" = getelementptr i8, i8* %"$msgobj_453", i32 17 - %"$msgobj_td_458" = bitcast i8* %"$msgobj_td_457" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_458", align 8 - %"$msgobj_v_460" = getelementptr i8, i8* %"$msgobj_453", i32 25 - %"$msgobj_v_461" = bitcast i8* %"$msgobj_v_460" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_459", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_461", align 8 - %"$msgobj_fname_463" = getelementptr i8, i8* %"$msgobj_453", i32 41 - %"$msgobj_fname_464" = bitcast i8* %"$msgobj_fname_463" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_462", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_464", align 8 - %"$msgobj_td_465" = getelementptr i8, i8* %"$msgobj_453", i32 57 - %"$msgobj_td_466" = bitcast i8* %"$msgobj_td_465" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ** %"$msgobj_td_466", align 8 - %"$registry_467" = load [20 x i8], [20 x i8]* @_cparam_registry, align 1 - %"$msgobj_v_468" = getelementptr i8, i8* %"$msgobj_453", i32 65 - %"$msgobj_v_469" = bitcast i8* %"$msgobj_v_468" to [20 x i8]* - store [20 x i8] %"$registry_467", [20 x i8]* %"$msgobj_v_469", align 1 - %"$msgobj_fname_471" = getelementptr i8, i8* %"$msgobj_453", i32 85 - %"$msgobj_fname_472" = bitcast i8* %"$msgobj_fname_471" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_470", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_472", align 8 - %"$msgobj_td_473" = getelementptr i8, i8* %"$msgobj_453", i32 101 - %"$msgobj_td_474" = bitcast i8* %"$msgobj_td_473" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ** %"$msgobj_td_474", align 8 - %"$msgobj_v_475" = getelementptr i8, i8* %"$msgobj_453", i32 109 - %"$msgobj_v_476" = bitcast i8* %"$msgobj_v_475" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_476", align 8 - %"$msgobj_fname_478" = getelementptr i8, i8* %"$msgobj_453", i32 125 - %"$msgobj_fname_479" = bitcast i8* %"$msgobj_fname_478" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_477", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_479", align 8 - %"$msgobj_td_480" = getelementptr i8, i8* %"$msgobj_453", i32 141 - %"$msgobj_td_481" = bitcast i8* %"$msgobj_td_480" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ** %"$msgobj_td_481", align 8 - %"$msgobj_v_482" = getelementptr i8, i8* %"$msgobj_453", i32 149 - %"$msgobj_v_483" = bitcast i8* %"$msgobj_v_482" to %String* - store %String %label, %String* %"$msgobj_v_483", align 8 - %"$msgobj_fname_485" = getelementptr i8, i8* %"$msgobj_453", i32 165 - %"$msgobj_fname_486" = bitcast i8* %"$msgobj_fname_485" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_484", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_486", align 8 - %"$msgobj_td_487" = getelementptr i8, i8* %"$msgobj_453", i32 181 - %"$msgobj_td_488" = bitcast i8* %"$msgobj_td_487" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ** %"$msgobj_td_488", align 8 - %"$msgobj_v_489" = getelementptr i8, i8* %"$msgobj_453", i32 189 - %"$msgobj_v_490" = bitcast i8* %"$msgobj_v_489" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_490", align 1 - %"$msgobj_fname_492" = getelementptr i8, i8* %"$msgobj_453", i32 209 - %"$msgobj_fname_493" = bitcast i8* %"$msgobj_fname_492" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_491", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_493", align 8 - %"$msgobj_td_494" = getelementptr i8, i8* %"$msgobj_453", i32 225 - %"$msgobj_td_495" = bitcast i8* %"$msgobj_td_494" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_40", %_TyDescrTy_Typ** %"$msgobj_td_495", align 8 - %"$msgobj_v_496" = getelementptr i8, i8* %"$msgobj_453", i32 233 - %"$msgobj_v_497" = bitcast i8* %"$msgobj_v_496" to [20 x i8]* - store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_497", align 1 - store i8* %"$msgobj_453", i8** %m, align 8 - %"$gasrem_499" = load i64, i64* @_gasrem, align 8 - %"$gascmp_500" = icmp ugt i64 1, %"$gasrem_499" - br i1 %"$gascmp_500", label %"$out_of_gas_501", label %"$have_gas_502" - -"$out_of_gas_501": ; preds = %"$have_gas_451" - call void @_out_of_gas() - br label %"$have_gas_502" - -"$have_gas_502": ; preds = %"$out_of_gas_501", %"$have_gas_451" - %"$consume_503" = sub i64 %"$gasrem_499", 1 - store i64 %"$consume_503", i64* @_gasrem, align 8 - %"$ud-proxy.oneMsg_2" = alloca %TName_List_Message*, align 8 - %"$ud-proxy.oneMsg_504" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8 - %"$ud-proxy.oneMsg_fptr_505" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_504", 0 - %"$ud-proxy.oneMsg_envptr_506" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_504", 1 - %"$m_507" = load i8*, i8** %m, align 8 - %"$ud-proxy.oneMsg_call_508" = call %TName_List_Message* %"$ud-proxy.oneMsg_fptr_505"(i8* %"$ud-proxy.oneMsg_envptr_506", i8* %"$m_507") - store %TName_List_Message* %"$ud-proxy.oneMsg_call_508", %TName_List_Message** %"$ud-proxy.oneMsg_2", align 8 - %"$$ud-proxy.oneMsg_2_509" = load %TName_List_Message*, %TName_List_Message** %"$ud-proxy.oneMsg_2", align 8 - store %TName_List_Message* %"$$ud-proxy.oneMsg_2_509", %TName_List_Message** %msgs, align 8 - %"$msgs_510" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_510_511" = bitcast %TName_List_Message* %"$msgs_510" to i8* - %"$_literal_cost_call_512" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46", i8* %"$$msgs_510_511") - %"$gasrem_513" = load i64, i64* @_gasrem, align 8 - %"$gascmp_514" = icmp ugt i64 %"$_literal_cost_call_512", %"$gasrem_513" - br i1 %"$gascmp_514", label %"$out_of_gas_515", label %"$have_gas_516" - -"$out_of_gas_515": ; preds = %"$have_gas_502" - call void @_out_of_gas() - br label %"$have_gas_516" - -"$have_gas_516": ; preds = %"$out_of_gas_515", %"$have_gas_502" - %"$consume_517" = sub i64 %"$gasrem_513", %"$_literal_cost_call_512" - store i64 %"$consume_517", i64* @_gasrem, align 8 - %"$execptr_load_518" = load i8*, i8** @_execptr, align 8 - %"$msgs_519" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_518", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_46", %TName_List_Message* %"$msgs_519") - br label %"$matchsucc_431" - -"$False_520": ; preds = %"$have_gas_429" - %"$isSenderAdmin_521" = bitcast %TName_Bool* %"$isSenderAdmin_432" to %CName_False* - %"$ud-proxy.eError_522" = load i8*, i8** @ud-proxy.eError, align 8 - %"$_literal_cost_call_524" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$ud-proxy.eError_522") - %"$gasrem_525" = load i64, i64* @_gasrem, align 8 - %"$gascmp_526" = icmp ugt i64 %"$_literal_cost_call_524", %"$gasrem_525" - br i1 %"$gascmp_526", label %"$out_of_gas_527", label %"$have_gas_528" - -"$out_of_gas_527": ; preds = %"$False_520" - call void @_out_of_gas() - br label %"$have_gas_528" - -"$have_gas_528": ; preds = %"$out_of_gas_527", %"$False_520" - %"$consume_529" = sub i64 %"$gasrem_525", %"$_literal_cost_call_524" - store i64 %"$consume_529", i64* @_gasrem, align 8 - %"$execptr_load_530" = load i8*, i8** @_execptr, align 8 - %"$ud-proxy.eError_531" = load i8*, i8** @ud-proxy.eError, align 8 - call void @_event(i8* %"$execptr_load_530", %_TyDescrTy_Typ* @"$TyDescr_Event_34", i8* %"$ud-proxy.eError_531") - br label %"$matchsucc_431" - -"$empty_default_435": ; preds = %"$have_gas_429" - br label %"$matchsucc_431" - -"$matchsucc_431": ; preds = %"$have_gas_528", %"$have_gas_516", %"$empty_default_435" + %"$gasrem_424" = load i64, i64* @_gasrem, align 8 + %"$gascmp_425" = icmp ugt i64 1, %"$gasrem_424" + br i1 %"$gascmp_425", label %"$out_of_gas_426", label %"$have_gas_427" + +"$out_of_gas_426": ; preds = %"$have_gas_422" + call void @_out_of_gas() + br label %"$have_gas_427" + +"$have_gas_427": ; preds = %"$out_of_gas_426", %"$have_gas_422" + %"$consume_428" = sub i64 %"$gasrem_424", 1 + store i64 %"$consume_428", i64* @_gasrem, align 8 + %"$msgobj_429_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_429_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_429_salloc_load", i64 253) + %"$msgobj_429_salloc" = bitcast i8* %"$msgobj_429_salloc_salloc" to [253 x i8]* + %"$msgobj_429" = bitcast [253 x i8]* %"$msgobj_429_salloc" to i8* + store i8 6, i8* %"$msgobj_429", align 1 + %"$msgobj_fname_431" = getelementptr i8, i8* %"$msgobj_429", i32 1 + %"$msgobj_fname_432" = bitcast i8* %"$msgobj_fname_431" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_430", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_432", align 8 + %"$msgobj_td_433" = getelementptr i8, i8* %"$msgobj_429", i32 17 + %"$msgobj_td_434" = bitcast i8* %"$msgobj_td_433" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ** %"$msgobj_td_434", align 8 + %"$msgobj_v_436" = getelementptr i8, i8* %"$msgobj_429", i32 25 + %"$msgobj_v_437" = bitcast i8* %"$msgobj_v_436" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_435", i32 0, i32 0), i32 6 }, %String* %"$msgobj_v_437", align 8 + %"$msgobj_fname_439" = getelementptr i8, i8* %"$msgobj_429", i32 41 + %"$msgobj_fname_440" = bitcast i8* %"$msgobj_fname_439" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_438", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_440", align 8 + %"$msgobj_td_441" = getelementptr i8, i8* %"$msgobj_429", i32 57 + %"$msgobj_td_442" = bitcast i8* %"$msgobj_td_441" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ** %"$msgobj_td_442", align 8 + %"$registry_443" = load [20 x i8], [20 x i8]* @_cparam_registry, align 1 + %"$msgobj_v_444" = getelementptr i8, i8* %"$msgobj_429", i32 65 + %"$msgobj_v_445" = bitcast i8* %"$msgobj_v_444" to [20 x i8]* + store [20 x i8] %"$registry_443", [20 x i8]* %"$msgobj_v_445", align 1 + %"$msgobj_fname_447" = getelementptr i8, i8* %"$msgobj_429", i32 85 + %"$msgobj_fname_448" = bitcast i8* %"$msgobj_fname_447" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_446", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_448", align 8 + %"$msgobj_td_449" = getelementptr i8, i8* %"$msgobj_429", i32 101 + %"$msgobj_td_450" = bitcast i8* %"$msgobj_td_449" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_18", %_TyDescrTy_Typ** %"$msgobj_td_450", align 8 + %"$msgobj_v_451" = getelementptr i8, i8* %"$msgobj_429", i32 109 + %"$msgobj_v_452" = bitcast i8* %"$msgobj_v_451" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_452", align 8 + %"$msgobj_fname_454" = getelementptr i8, i8* %"$msgobj_429", i32 125 + %"$msgobj_fname_455" = bitcast i8* %"$msgobj_fname_454" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_453", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_455", align 8 + %"$msgobj_td_456" = getelementptr i8, i8* %"$msgobj_429", i32 141 + %"$msgobj_td_457" = bitcast i8* %"$msgobj_td_456" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ** %"$msgobj_td_457", align 8 + %"$msgobj_v_458" = getelementptr i8, i8* %"$msgobj_429", i32 149 + %"$msgobj_v_459" = bitcast i8* %"$msgobj_v_458" to %String* + store %String %label, %String* %"$msgobj_v_459", align 8 + %"$msgobj_fname_461" = getelementptr i8, i8* %"$msgobj_429", i32 165 + %"$msgobj_fname_462" = bitcast i8* %"$msgobj_fname_461" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_460", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_462", align 8 + %"$msgobj_td_463" = getelementptr i8, i8* %"$msgobj_429", i32 181 + %"$msgobj_td_464" = bitcast i8* %"$msgobj_td_463" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ** %"$msgobj_td_464", align 8 + %"$msgobj_v_465" = getelementptr i8, i8* %"$msgobj_429", i32 189 + %"$msgobj_v_466" = bitcast i8* %"$msgobj_v_465" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_466", align 1 + %"$msgobj_fname_468" = getelementptr i8, i8* %"$msgobj_429", i32 209 + %"$msgobj_fname_469" = bitcast i8* %"$msgobj_fname_468" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_467", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_469", align 8 + %"$msgobj_td_470" = getelementptr i8, i8* %"$msgobj_429", i32 225 + %"$msgobj_td_471" = bitcast i8* %"$msgobj_td_470" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_36", %_TyDescrTy_Typ** %"$msgobj_td_471", align 8 + %"$msgobj_v_472" = getelementptr i8, i8* %"$msgobj_429", i32 233 + %"$msgobj_v_473" = bitcast i8* %"$msgobj_v_472" to [20 x i8]* + store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_473", align 1 + store i8* %"$msgobj_429", i8** %m, align 8 + %"$gasrem_475" = load i64, i64* @_gasrem, align 8 + %"$gascmp_476" = icmp ugt i64 1, %"$gasrem_475" + br i1 %"$gascmp_476", label %"$out_of_gas_477", label %"$have_gas_478" + +"$out_of_gas_477": ; preds = %"$have_gas_427" + call void @_out_of_gas() + br label %"$have_gas_478" + +"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_427" + %"$consume_479" = sub i64 %"$gasrem_475", 1 + store i64 %"$consume_479", i64* @_gasrem, align 8 + %"$ud-proxy.oneMsg_0" = alloca %TName_List_Message*, align 8 + %"$ud-proxy.oneMsg_480" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-proxy.oneMsg, align 8 + %"$ud-proxy.oneMsg_fptr_481" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_480", 0 + %"$ud-proxy.oneMsg_envptr_482" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-proxy.oneMsg_480", 1 + %"$m_483" = load i8*, i8** %m, align 8 + %"$ud-proxy.oneMsg_call_484" = call %TName_List_Message* %"$ud-proxy.oneMsg_fptr_481"(i8* %"$ud-proxy.oneMsg_envptr_482", i8* %"$m_483") + store %TName_List_Message* %"$ud-proxy.oneMsg_call_484", %TName_List_Message** %"$ud-proxy.oneMsg_0", align 8 + %"$$ud-proxy.oneMsg_0_485" = load %TName_List_Message*, %TName_List_Message** %"$ud-proxy.oneMsg_0", align 8 + store %TName_List_Message* %"$$ud-proxy.oneMsg_0_485", %TName_List_Message** %msgs, align 8 + %"$msgs_486" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_486_487" = bitcast %TName_List_Message* %"$msgs_486" to i8* + %"$_literal_cost_call_488" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_42", i8* %"$$msgs_486_487") + %"$gasrem_489" = load i64, i64* @_gasrem, align 8 + %"$gascmp_490" = icmp ugt i64 %"$_literal_cost_call_488", %"$gasrem_489" + br i1 %"$gascmp_490", label %"$out_of_gas_491", label %"$have_gas_492" + +"$out_of_gas_491": ; preds = %"$have_gas_478" + call void @_out_of_gas() + br label %"$have_gas_492" + +"$have_gas_492": ; preds = %"$out_of_gas_491", %"$have_gas_478" + %"$consume_493" = sub i64 %"$gasrem_489", %"$_literal_cost_call_488" + store i64 %"$consume_493", i64* @_gasrem, align 8 + %"$execptr_load_494" = load i8*, i8** @_execptr, align 8 + %"$msgs_495" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_494", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_42", %TName_List_Message* %"$msgs_495") + br label %"$matchsucc_407" + +"$False_496": ; preds = %"$have_gas_405" + %"$isSenderAdmin_497" = bitcast %TName_Bool* %"$isSenderAdmin_408" to %CName_False* + %"$ud-proxy.eError_498" = load i8*, i8** @ud-proxy.eError, align 8 + %"$_literal_cost_call_500" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$ud-proxy.eError_498") + %"$gasrem_501" = load i64, i64* @_gasrem, align 8 + %"$gascmp_502" = icmp ugt i64 %"$_literal_cost_call_500", %"$gasrem_501" + br i1 %"$gascmp_502", label %"$out_of_gas_503", label %"$have_gas_504" + +"$out_of_gas_503": ; preds = %"$False_496" + call void @_out_of_gas() + br label %"$have_gas_504" + +"$have_gas_504": ; preds = %"$out_of_gas_503", %"$False_496" + %"$consume_505" = sub i64 %"$gasrem_501", %"$_literal_cost_call_500" + store i64 %"$consume_505", i64* @_gasrem, align 8 + %"$execptr_load_506" = load i8*, i8** @_execptr, align 8 + %"$ud-proxy.eError_507" = load i8*, i8** @ud-proxy.eError, align 8 + call void @_event(i8* %"$execptr_load_506", %_TyDescrTy_Typ* @"$TyDescr_Event_30", i8* %"$ud-proxy.eError_507") + br label %"$matchsucc_407" + +"$empty_default_411": ; preds = %"$have_gas_405" + br label %"$matchsucc_407" + +"$matchsucc_407": ; preds = %"$have_gas_504", %"$have_gas_492", %"$empty_default_411" ret void } @@ -1019,20 +978,20 @@ declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) define void @bestow(i8* %0) { entry: - %"$_amount_533" = getelementptr i8, i8* %0, i32 0 - %"$_amount_534" = bitcast i8* %"$_amount_533" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_534", align 8 - %"$_origin_535" = getelementptr i8, i8* %0, i32 16 - %"$_origin_536" = bitcast i8* %"$_origin_535" to [20 x i8]* - %"$_sender_537" = getelementptr i8, i8* %0, i32 36 - %"$_sender_538" = bitcast i8* %"$_sender_537" to [20 x i8]* - %"$label_539" = getelementptr i8, i8* %0, i32 56 - %"$label_540" = bitcast i8* %"$label_539" to %String* - %label = load %String, %String* %"$label_540", align 8 - %"$owner_541" = getelementptr i8, i8* %0, i32 72 - %"$owner_542" = bitcast i8* %"$owner_541" to [20 x i8]* - %"$resolver_543" = getelementptr i8, i8* %0, i32 92 - %"$resolver_544" = bitcast i8* %"$resolver_543" to [20 x i8]* - call void @"$bestow_370"(%Uint128 %_amount, [20 x i8]* %"$_origin_536", [20 x i8]* %"$_sender_538", %String %label, [20 x i8]* %"$owner_542", [20 x i8]* %"$resolver_544") + %"$_amount_509" = getelementptr i8, i8* %0, i32 0 + %"$_amount_510" = bitcast i8* %"$_amount_509" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_510", align 8 + %"$_origin_511" = getelementptr i8, i8* %0, i32 16 + %"$_origin_512" = bitcast i8* %"$_origin_511" to [20 x i8]* + %"$_sender_513" = getelementptr i8, i8* %0, i32 36 + %"$_sender_514" = bitcast i8* %"$_sender_513" to [20 x i8]* + %"$label_515" = getelementptr i8, i8* %0, i32 56 + %"$label_516" = bitcast i8* %"$label_515" to %String* + %label = load %String, %String* %"$label_516", align 8 + %"$owner_517" = getelementptr i8, i8* %0, i32 72 + %"$owner_518" = bitcast i8* %"$owner_517" to [20 x i8]* + %"$resolver_519" = getelementptr i8, i8* %0, i32 92 + %"$resolver_520" = bitcast i8* %"$resolver_519" to [20 x i8]* + call void @"$bestow_346"(%Uint128 %_amount, [20 x i8]* %"$_origin_512", [20 x i8]* %"$_sender_514", %String %label, [20 x i8]* %"$owner_518", [20 x i8]* %"$resolver_520") ret void } diff --git a/tests/codegen/contr/gold/ud-registry.scilla.gold b/tests/codegen/contr/gold/ud-registry.scilla.gold index 6b27ad97..a0ab6b8a 100644 --- a/tests/codegen/contr/gold/ud-registry.scilla.gold +++ b/tests/codegen/contr/gold/ud-registry.scilla.gold @@ -3,18 +3,18 @@ ; gas_remaining: 4001916 ; ModuleID = 'Registry' source_filename = "Registry" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_277" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_160" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_313" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_312"** } +%"$TyDescrTy_ADTTyp_196" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_195"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_312" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_314"**, %"$TyDescrTy_ADTTyp_313"* } -%"$TyDescrTy_ADTTyp_Constr_314" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$TyDescr_MapTyp_322" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } -%"$TyDescr_AddrTyp_327" = type { i32, %"$TyDescr_AddrFieldTyp_326"* } -%"$TyDescr_AddrFieldTyp_326" = type { %TyDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_195" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_197"**, %"$TyDescrTy_ADTTyp_196"* } +%"$TyDescrTy_ADTTyp_Constr_197" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$TyDescr_MapTyp_205" = type { %_TyDescrTy_Typ*, %_TyDescrTy_Typ* } +%"$TyDescr_AddrTyp_210" = type { i32, %"$TyDescr_AddrFieldTyp_209"* } +%"$TyDescr_AddrFieldTyp_209" = type { %TyDescrString, %_TyDescrTy_Typ* } %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> @@ -30,79 +30,63 @@ target triple = "x86_64-unknown-linux-gnu" %TName_ud-registry.Record = type { i8, %CName_ud-registry.Record* } %CName_ud-registry.Record = type <{ i8, [20 x i8], [20 x i8] }> %CName_None_ud-registry.Record = type <{ i8 }> -%"TName_Option_List_(ByStr20)" = type { i8, %"CName_Some_List_(ByStr20)"*, %"CName_None_List_(ByStr20)"* } -%"CName_Some_List_(ByStr20)" = type <{ i8, %TName_List_ByStr20* }> -%"CName_None_List_(ByStr20)" = type <{ i8 }> %TName_Option_ByStr20 = type { i8, %CName_Some_ByStr20*, %CName_None_ByStr20* } %CName_Some_ByStr20 = type <{ i8, [20 x i8] }> %CName_None_ByStr20 = type <{ i8 }> +%"TName_Option_List_(ByStr20)" = type { i8, %"CName_Some_List_(ByStr20)"*, %"CName_None_List_(ByStr20)"* } +%"CName_Some_List_(ByStr20)" = type <{ i8, %TName_List_ByStr20* }> +%"CName_None_List_(ByStr20)" = type <{ i8 }> %Uint32 = type { i32 } -%"$ParamDescr_5929" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_5267" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_5930" = type { %ParamDescrString, i32, %"$ParamDescr_5929"* } -%"$$fundef_214_env_405" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, %TName_Option_ByStr20*, [20 x i8], [20 x i8], { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_212_env_406" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, [20 x i8], [20 x i8], { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_210_env_407" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, [20 x i8], { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_208_env_408" = type { { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_218_env_409" = type { [32 x i8] } -%"$$fundef_216_env_410" = type {} -%"$$fundef_220_env_411" = type { [20 x i8] } -%"$$fundef_222_env_412" = type {} -%"$$fundef_228_env_413" = type { [32 x i8], [20 x i8] } -%"$$fundef_226_env_414" = type { [32 x i8] } -%"$$fundef_224_env_415" = type {} -%"$$fundef_232_env_416" = type { [32 x i8] } -%"$$fundef_230_env_417" = type {} -%"$$fundef_234_env_418" = type {} -%"$$fundef_236_env_419" = type {} -%"$$fundef_242_env_420" = type { [20 x i8], [20 x i8] } -%"$$fundef_240_env_421" = type { [20 x i8] } -%"$$fundef_238_env_422" = type {} -%"$$fundef_246_env_423" = type { [20 x i8] } -%"$$fundef_244_env_424" = type {} -%"$$fundef_250_env_425" = type { %TName_Bool* } -%"$$fundef_248_env_426" = type {} -%"$$fundef_256_env_427" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, [20 x i8] } -%"$$fundef_254_env_428" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { i8*, i8* }*, %TName_List_ByStr20* } -%"$$fundef_252_env_429" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { i8*, i8* }* } -%"$$fundef_260_env_430" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, %TName_List_ByStr20*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_258_env_431" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_264_env_432" = type { { i8*, i8* }*, %TName_List_ByStr20*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_262_env_433" = type { { i8*, i8* }*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_268_env_434" = type { [20 x i8] } -%"$$fundef_266_env_435" = type {} -%"$$fundef_270_env_436" = type { %TName_List_Message* } -%"$$fundef_182_env_437" = type { { i8*, i8* }*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_180_env_438" = type { { i8*, i8* }* } -%"$$fundef_178_env_439" = type { { i8*, i8* }* } -%"$$fundef_188_env_440" = type { { i8*, i8* }*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_186_env_441" = type { { i8*, i8* }* } -%"$$fundef_184_env_442" = type { { i8*, i8* }* } -%"$$fundef_198_env_443" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, [20 x i8] } -%"$$fundef_196_env_444" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_194_env_445" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_192_env_446" = type { { i8*, i8* }* } -%"$$fundef_190_env_447" = type { { i8*, i8* }* } -%"$$fundef_206_env_448" = type { { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, [20 x i8] } -%"$$fundef_204_env_449" = type { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } -%"$$fundef_202_env_450" = type { { i8*, i8* }* } -%"$$fundef_200_env_451" = type { { i8*, i8* }* } -%"$$fundef_168_env_452" = type {} -%"$$fundef_172_env_453" = type { %TName_Bool* } -%"$$fundef_170_env_454" = type {} -%"$$fundef_176_env_455" = type { %TName_Bool* } -%"$$fundef_174_env_456" = type {} -%"$$fundef_156_env_457" = type { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, %TName_List_ByStr20* } -%"$$fundef_154_env_458" = type { { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, %TName_Option_ByStr20* } -%"$$fundef_152_env_459" = type { { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } } -%"$$fundef_150_env_460" = type {} -%"$$fundef_148_env_461" = type {} -%"$$fundef_146_env_462" = type {} -%"$$fundef_166_env_463" = type { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, %TName_List_ByStr20* } -%"$$fundef_164_env_464" = type { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } -%"$$fundef_162_env_465" = type {} -%"$$fundef_160_env_466" = type {} -%"$$fundef_158_env_467" = type {} +%"$TransDescr_5268" = type { %ParamDescrString, i32, %"$ParamDescr_5267"* } +%"$$fundef_119_env_288" = type { { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } } +%"$$fundef_121_env_289" = type {} +%"$$fundef_123_env_290" = type { [20 x i8] } +%"$$fundef_125_env_291" = type {} +%"$$fundef_127_env_292" = type {} +%"$$fundef_129_env_293" = type {} +%"$$fundef_131_env_294" = type {} +%"$$fundef_133_env_295" = type {} +%"$$fundef_135_env_296" = type {} +%"$$fundef_137_env_297" = type {} +%"$$fundef_139_env_298" = type {} +%"$$fundef_143_env_299" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, [20 x i8] } +%"$$fundef_141_env_300" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { i8*, i8* }* } +%"$$fundef_145_env_301" = type { { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } } +%"$$fundef_147_env_302" = type { { i8*, i8* }*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_151_env_303" = type { [20 x i8] } +%"$$fundef_149_env_304" = type {} +%"$$fundef_153_env_305" = type { %TName_List_Message* } +%"$$fundef_93_env_306" = type { { i8*, i8* }*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_91_env_307" = type { { i8*, i8* }* } +%"$$fundef_89_env_308" = type { { i8*, i8* }* } +%"$$fundef_99_env_309" = type { { i8*, i8* }*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_97_env_310" = type { { i8*, i8* }* } +%"$$fundef_95_env_311" = type { { i8*, i8* }* } +%"$$fundef_109_env_312" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, [20 x i8] } +%"$$fundef_107_env_313" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_105_env_314" = type { %TName_Option_ByStr20*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_103_env_315" = type { { i8*, i8* }* } +%"$$fundef_101_env_316" = type { { i8*, i8* }* } +%"$$fundef_117_env_317" = type { { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, [20 x i8] } +%"$$fundef_115_env_318" = type { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } } +%"$$fundef_113_env_319" = type { { i8*, i8* }* } +%"$$fundef_111_env_320" = type { { i8*, i8* }* } +%"$$fundef_83_env_321" = type {} +%"$$fundef_85_env_322" = type {} +%"$$fundef_87_env_323" = type {} +%"$$fundef_71_env_324" = type { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, %TName_List_ByStr20* } +%"$$fundef_69_env_325" = type { { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, %TName_Option_ByStr20* } +%"$$fundef_67_env_326" = type { { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } } +%"$$fundef_65_env_327" = type {} +%"$$fundef_63_env_328" = type {} +%"$$fundef_61_env_329" = type {} +%"$$fundef_81_env_330" = type { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, %TName_List_ByStr20* } +%"$$fundef_79_env_331" = type { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } } +%"$$fundef_77_env_332" = type {} +%"$$fundef_75_env_333" = type {} +%"$$fundef_73_env_334" = type {} %Map_ByStr32_ud-registry.Record = type { [32 x i8], %TName_ud-registry.Record* } %Map_ByStr32_ByStr20 = type { [32 x i8], [20 x i8] } %"Map_ByStr20_List_(ByStr20)" = type { [20 x i8], %TName_List_ByStr20* } @@ -110,158 +94,158 @@ target triple = "x86_64-unknown-linux-gnu" @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_278" = global %"$TyDescrTy_PrimTyp_277" zeroinitializer -@"$TyDescr_Int32_279" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Int32_Prim_278" to i8*) } -@"$TyDescr_Uint32_Prim_280" = global %"$TyDescrTy_PrimTyp_277" { i32 1, i32 0 } -@"$TyDescr_Uint32_281" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Uint32_Prim_280" to i8*) } -@"$TyDescr_Int64_Prim_282" = global %"$TyDescrTy_PrimTyp_277" { i32 0, i32 1 } -@"$TyDescr_Int64_283" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Int64_Prim_282" to i8*) } -@"$TyDescr_Uint64_Prim_284" = global %"$TyDescrTy_PrimTyp_277" { i32 1, i32 1 } -@"$TyDescr_Uint64_285" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Uint64_Prim_284" to i8*) } -@"$TyDescr_Int128_Prim_286" = global %"$TyDescrTy_PrimTyp_277" { i32 0, i32 2 } -@"$TyDescr_Int128_287" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Int128_Prim_286" to i8*) } -@"$TyDescr_Uint128_Prim_288" = global %"$TyDescrTy_PrimTyp_277" { i32 1, i32 2 } -@"$TyDescr_Uint128_289" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Uint128_Prim_288" to i8*) } -@"$TyDescr_Int256_Prim_290" = global %"$TyDescrTy_PrimTyp_277" { i32 0, i32 3 } -@"$TyDescr_Int256_291" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Int256_Prim_290" to i8*) } -@"$TyDescr_Uint256_Prim_292" = global %"$TyDescrTy_PrimTyp_277" { i32 1, i32 3 } -@"$TyDescr_Uint256_293" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Uint256_Prim_292" to i8*) } -@"$TyDescr_String_Prim_294" = global %"$TyDescrTy_PrimTyp_277" { i32 2, i32 0 } -@"$TyDescr_String_295" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_String_Prim_294" to i8*) } -@"$TyDescr_Bnum_Prim_296" = global %"$TyDescrTy_PrimTyp_277" { i32 3, i32 0 } -@"$TyDescr_Bnum_297" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Bnum_Prim_296" to i8*) } -@"$TyDescr_Message_Prim_298" = global %"$TyDescrTy_PrimTyp_277" { i32 4, i32 0 } -@"$TyDescr_Message_299" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Message_Prim_298" to i8*) } -@"$TyDescr_Event_Prim_300" = global %"$TyDescrTy_PrimTyp_277" { i32 5, i32 0 } -@"$TyDescr_Event_301" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Event_Prim_300" to i8*) } -@"$TyDescr_Exception_Prim_302" = global %"$TyDescrTy_PrimTyp_277" { i32 6, i32 0 } -@"$TyDescr_Exception_303" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Exception_Prim_302" to i8*) } -@"$TyDescr_Bystr_Prim_304" = global %"$TyDescrTy_PrimTyp_277" { i32 7, i32 0 } -@"$TyDescr_Bystr_305" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Bystr_Prim_304" to i8*) } -@"$TyDescr_Bystr64_Prim_306" = global %"$TyDescrTy_PrimTyp_277" { i32 8, i32 64 } -@"$TyDescr_Bystr64_307" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Bystr64_Prim_306" to i8*) } -@"$TyDescr_Bystr32_Prim_308" = global %"$TyDescrTy_PrimTyp_277" { i32 8, i32 32 } -@"$TyDescr_Bystr32_309" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Bystr32_Prim_308" to i8*) } -@"$TyDescr_Bystr20_Prim_310" = global %"$TyDescrTy_PrimTyp_277" { i32 8, i32 20 } -@"$TyDescr_Bystr20_311" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_277"* @"$TyDescr_Bystr20_Prim_310" to i8*) } -@"$TyDescr_ADT_Option_List_(ByStr20)_315" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_338" to i8*) } -@"$TyDescr_ADT_Option_ud-registry.Record_316" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_347" to i8*) } -@"$TyDescr_ADT_Option_ByStr20_317" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_356" to i8*) } -@"$TyDescr_ADT_ud-registry.Record_318" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_365" to i8*) } -@"$TyDescr_ADT_List_Message_319" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_List_Message_ADTTyp_Specl_377" to i8*) } -@"$TyDescr_ADT_List_ByStr20_320" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_386" to i8*) } -@"$TyDescr_ADT_Bool_321" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Bool_ADTTyp_Specl_398" to i8*) } -@"$TyDescr_Map_323" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_322"* @"$TyDescr_MapTyp_401" to i8*) } -@"$TyDescr_Map_324" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_322"* @"$TyDescr_MapTyp_402" to i8*) } -@"$TyDescr_Map_325" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_322"* @"$TyDescr_MapTyp_403" to i8*) } -@"$TyDescr_Addr_328" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_327"* @"$TyDescr_AddrFields_404" to i8*) } -@"$TyDescr_Option_ADTTyp_329" = unnamed_addr constant %"$TyDescrTy_ADTTyp_313" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_358", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 3, %"$TyDescrTy_ADTTyp_Specl_312"** getelementptr inbounds ([3 x %"$TyDescrTy_ADTTyp_Specl_312"*], [3 x %"$TyDescrTy_ADTTyp_Specl_312"*]* @"$TyDescr_Option_ADTTyp_m_specls_357", i32 0, i32 0) } -@"$TyDescr_Option_Some_List_(ByStr20)_Constr_m_args_330" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320"] -@"$TyDescr_ADT_Some_331" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_List_(ByStr20)_ADTTyp_Constr_332" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_331", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_List_(ByStr20)_Constr_m_args_330", i32 0, i32 0) } -@"$TyDescr_Option_None_List_(ByStr20)_Constr_m_args_333" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_334" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_List_(ByStr20)_ADTTyp_Constr_335" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_334", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_List_(ByStr20)_Constr_m_args_333", i32 0, i32 0) } -@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_constrs_336" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_Some_List_(ByStr20)_ADTTyp_Constr_332", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_None_List_(ByStr20)_ADTTyp_Constr_335"] -@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_TArgs_337" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320"] -@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_338" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_TArgs_337", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_constrs_336", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_Option_ADTTyp_329" } -@"$TyDescr_Option_Some_ud-registry.Record_Constr_m_args_339" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318"] -@"$TyDescr_ADT_Some_340" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_ud-registry.Record_ADTTyp_Constr_341" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_340", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ud-registry.Record_Constr_m_args_339", i32 0, i32 0) } -@"$TyDescr_Option_None_ud-registry.Record_Constr_m_args_342" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_343" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_ud-registry.Record_ADTTyp_Constr_344" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_343", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ud-registry.Record_Constr_m_args_342", i32 0, i32 0) } -@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_constrs_345" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_Some_ud-registry.Record_ADTTyp_Constr_341", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_None_ud-registry.Record_ADTTyp_Constr_344"] -@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_TArgs_346" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318"] -@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_347" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_TArgs_346", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_constrs_345", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_Option_ADTTyp_329" } -@"$TyDescr_Option_Some_ByStr20_Constr_m_args_348" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311"] -@"$TyDescr_ADT_Some_349" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_350" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_349", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ByStr20_Constr_m_args_348", i32 0, i32 0) } -@"$TyDescr_Option_None_ByStr20_Constr_m_args_351" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_352" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_353" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_352", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ByStr20_Constr_m_args_351", i32 0, i32 0) } -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_354" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_350", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_353"] -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_355" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311"] -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_356" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_355", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_354", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_Option_ADTTyp_329" } -@"$TyDescr_Option_ADTTyp_m_specls_357" = unnamed_addr constant [3 x %"$TyDescrTy_ADTTyp_Specl_312"*] [%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_338", %"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_347", %"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_356"] -@"$TyDescr_ADT_Option_358" = unnamed_addr constant [6 x i8] c"Option" -@"$TyDescr_ud-registry.Record_ADTTyp_359" = unnamed_addr constant %"$TyDescrTy_ADTTyp_313" { %TyDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$TyDescr_ADT_ud-registry.Record_367", i32 0, i32 0), i32 18 }, i32 0, i32 1, i32 1, %"$TyDescrTy_ADTTyp_Specl_312"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_312"*], [1 x %"$TyDescrTy_ADTTyp_Specl_312"*]* @"$TyDescr_ud-registry.Record_ADTTyp_m_specls_366", i32 0, i32 0) } -@"$TyDescr_ud-registry.Record_ud-registry.Record_Constr_m_args_360" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311"] -@"$TyDescr_ADT_ud-registry.Record_361" = unnamed_addr constant [18 x i8] c"ud-registry.Record" -@"$TyDescr_ud-registry.Record_ud-registry.Record_ADTTyp_Constr_362" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$TyDescr_ADT_ud-registry.Record_361", i32 0, i32 0), i32 18 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_ud-registry.Record_ud-registry.Record_Constr_m_args_360", i32 0, i32 0) } -@"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_constrs_363" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_ud-registry.Record_ud-registry.Record_ADTTyp_Constr_362"] -@"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_TArgs_364" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ud-registry.Record_ADTTyp_Specl_365" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_TArgs_364", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Constr_314"*], [1 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_constrs_363", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_ud-registry.Record_ADTTyp_359" } -@"$TyDescr_ud-registry.Record_ADTTyp_m_specls_366" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_312"*] [%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_365"] -@"$TyDescr_ADT_ud-registry.Record_367" = unnamed_addr constant [18 x i8] c"ud-registry.Record" -@"$TyDescr_List_ADTTyp_368" = unnamed_addr constant %"$TyDescrTy_ADTTyp_313" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_388", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_312"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_312"*], [2 x %"$TyDescrTy_ADTTyp_Specl_312"*]* @"$TyDescr_List_ADTTyp_m_specls_387", i32 0, i32 0) } -@"$TyDescr_List_Cons_Message_Constr_m_args_369" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_299", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319"] -@"$TyDescr_ADT_Cons_370" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_Message_ADTTyp_Constr_371" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_370", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_369", i32 0, i32 0) } -@"$TyDescr_List_Nil_Message_Constr_m_args_372" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_373" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_Message_ADTTyp_Constr_374" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_373", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_372", i32 0, i32 0) } -@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_375" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_371", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_374"] -@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_376" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_299"] -@"$TyDescr_List_Message_ADTTyp_Specl_377" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_376", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_375", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_List_ADTTyp_368" } -@"$TyDescr_List_Cons_ByStr20_Constr_m_args_378" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320"] -@"$TyDescr_ADT_Cons_379" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_380" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_379", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_ByStr20_Constr_m_args_378", i32 0, i32 0) } -@"$TyDescr_List_Nil_ByStr20_Constr_m_args_381" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_382" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_383" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_382", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_ByStr20_Constr_m_args_381", i32 0, i32 0) } -@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_384" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_380", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_383"] -@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_385" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311"] -@"$TyDescr_List_ByStr20_ADTTyp_Specl_386" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_385", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_384", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_List_ADTTyp_368" } -@"$TyDescr_List_ADTTyp_m_specls_387" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_312"*] [%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_List_Message_ADTTyp_Specl_377", %"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_386"] -@"$TyDescr_ADT_List_388" = unnamed_addr constant [4 x i8] c"List" -@"$TyDescr_Bool_ADTTyp_389" = unnamed_addr constant %"$TyDescrTy_ADTTyp_313" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_400", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_312"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_312"*], [1 x %"$TyDescrTy_ADTTyp_Specl_312"*]* @"$TyDescr_Bool_ADTTyp_m_specls_399", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_390" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_391" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_392" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_391", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_390", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_393" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_394" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_395" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_314" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_394", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_393", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_396" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_314"*] [%"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Bool_True_ADTTyp_Constr_392", %"$TyDescrTy_ADTTyp_Constr_314"* @"$TyDescr_Bool_False_ADTTyp_Constr_395"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_397" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_398" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_312" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_397", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_314"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_314"*], [2 x %"$TyDescrTy_ADTTyp_Constr_314"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_396", i32 0, i32 0), %"$TyDescrTy_ADTTyp_313"* @"$TyDescr_Bool_ADTTyp_389" } -@"$TyDescr_Bool_ADTTyp_m_specls_399" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_312"*] [%"$TyDescrTy_ADTTyp_Specl_312"* @"$TyDescr_Bool_ADTTyp_Specl_398"] -@"$TyDescr_ADT_Bool_400" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_MapTyp_401" = unnamed_addr constant %"$TyDescr_MapTyp_322" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320" } -@"$TyDescr_MapTyp_402" = unnamed_addr constant %"$TyDescr_MapTyp_322" { %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" } -@"$TyDescr_MapTyp_403" = unnamed_addr constant %"$TyDescr_MapTyp_322" { %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318" } -@"$TyDescr_AddrFields_404" = unnamed_addr constant %"$TyDescr_AddrTyp_327" { i32 -1, %"$TyDescr_AddrFieldTyp_326"* null } -@"$stringlit_1747" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1752" = unnamed_addr constant [8 x i8] c"AdminSet" -@"$stringlit_1755" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_1763" = unnamed_addr constant [10 x i8] c"isApproved" -@"$stringlit_1808" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1813" = unnamed_addr constant [11 x i8] c"ApprovedFor" -@"$stringlit_1816" = unnamed_addr constant [4 x i8] c"user" -@"$stringlit_1824" = unnamed_addr constant [8 x i8] c"operator" -@"$stringlit_1832" = unnamed_addr constant [10 x i8] c"isApproved" -@"$stringlit_1847" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1852" = unnamed_addr constant [8 x i8] c"Approved" -@"$stringlit_1855" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_1870" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1875" = unnamed_addr constant [12 x i8] c"NewRegistrar" -@"$stringlit_1878" = unnamed_addr constant [7 x i8] c"address" -@"$stringlit_1906" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1911" = unnamed_addr constant [9 x i8] c"NewDomain" -@"$stringlit_1914" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_1922" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_1967" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_1972" = unnamed_addr constant [10 x i8] c"Configured" -@"$stringlit_1975" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_1983" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_1991" = unnamed_addr constant [8 x i8] c"resolver" -@"$stringlit_2006" = unnamed_addr constant [10 x i8] c"_eventname" -@"$stringlit_2011" = unnamed_addr constant [5 x i8] c"Error" -@"$stringlit_2014" = unnamed_addr constant [3 x i8] c"msg" +@"$TyDescr_Int32_Prim_161" = global %"$TyDescrTy_PrimTyp_160" zeroinitializer +@"$TyDescr_Int32_162" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Int32_Prim_161" to i8*) } +@"$TyDescr_Uint32_Prim_163" = global %"$TyDescrTy_PrimTyp_160" { i32 1, i32 0 } +@"$TyDescr_Uint32_164" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Uint32_Prim_163" to i8*) } +@"$TyDescr_Int64_Prim_165" = global %"$TyDescrTy_PrimTyp_160" { i32 0, i32 1 } +@"$TyDescr_Int64_166" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Int64_Prim_165" to i8*) } +@"$TyDescr_Uint64_Prim_167" = global %"$TyDescrTy_PrimTyp_160" { i32 1, i32 1 } +@"$TyDescr_Uint64_168" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Uint64_Prim_167" to i8*) } +@"$TyDescr_Int128_Prim_169" = global %"$TyDescrTy_PrimTyp_160" { i32 0, i32 2 } +@"$TyDescr_Int128_170" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Int128_Prim_169" to i8*) } +@"$TyDescr_Uint128_Prim_171" = global %"$TyDescrTy_PrimTyp_160" { i32 1, i32 2 } +@"$TyDescr_Uint128_172" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Uint128_Prim_171" to i8*) } +@"$TyDescr_Int256_Prim_173" = global %"$TyDescrTy_PrimTyp_160" { i32 0, i32 3 } +@"$TyDescr_Int256_174" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Int256_Prim_173" to i8*) } +@"$TyDescr_Uint256_Prim_175" = global %"$TyDescrTy_PrimTyp_160" { i32 1, i32 3 } +@"$TyDescr_Uint256_176" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Uint256_Prim_175" to i8*) } +@"$TyDescr_String_Prim_177" = global %"$TyDescrTy_PrimTyp_160" { i32 2, i32 0 } +@"$TyDescr_String_178" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_String_Prim_177" to i8*) } +@"$TyDescr_Bnum_Prim_179" = global %"$TyDescrTy_PrimTyp_160" { i32 3, i32 0 } +@"$TyDescr_Bnum_180" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Bnum_Prim_179" to i8*) } +@"$TyDescr_Message_Prim_181" = global %"$TyDescrTy_PrimTyp_160" { i32 4, i32 0 } +@"$TyDescr_Message_182" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Message_Prim_181" to i8*) } +@"$TyDescr_Event_Prim_183" = global %"$TyDescrTy_PrimTyp_160" { i32 5, i32 0 } +@"$TyDescr_Event_184" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Event_Prim_183" to i8*) } +@"$TyDescr_Exception_Prim_185" = global %"$TyDescrTy_PrimTyp_160" { i32 6, i32 0 } +@"$TyDescr_Exception_186" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Exception_Prim_185" to i8*) } +@"$TyDescr_Bystr_Prim_187" = global %"$TyDescrTy_PrimTyp_160" { i32 7, i32 0 } +@"$TyDescr_Bystr_188" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Bystr_Prim_187" to i8*) } +@"$TyDescr_Bystr64_Prim_189" = global %"$TyDescrTy_PrimTyp_160" { i32 8, i32 64 } +@"$TyDescr_Bystr64_190" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Bystr64_Prim_189" to i8*) } +@"$TyDescr_Bystr32_Prim_191" = global %"$TyDescrTy_PrimTyp_160" { i32 8, i32 32 } +@"$TyDescr_Bystr32_192" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Bystr32_Prim_191" to i8*) } +@"$TyDescr_Bystr20_Prim_193" = global %"$TyDescrTy_PrimTyp_160" { i32 8, i32 20 } +@"$TyDescr_Bystr20_194" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_160"* @"$TyDescr_Bystr20_Prim_193" to i8*) } +@"$TyDescr_ADT_Option_List_(ByStr20)_198" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_221" to i8*) } +@"$TyDescr_ADT_Option_ud-registry.Record_199" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_230" to i8*) } +@"$TyDescr_ADT_Option_ByStr20_200" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_239" to i8*) } +@"$TyDescr_ADT_ud-registry.Record_201" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_248" to i8*) } +@"$TyDescr_ADT_List_Message_202" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_List_Message_ADTTyp_Specl_260" to i8*) } +@"$TyDescr_ADT_List_ByStr20_203" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_269" to i8*) } +@"$TyDescr_ADT_Bool_204" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Bool_ADTTyp_Specl_281" to i8*) } +@"$TyDescr_Map_206" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_205"* @"$TyDescr_MapTyp_284" to i8*) } +@"$TyDescr_Map_207" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_205"* @"$TyDescr_MapTyp_285" to i8*) } +@"$TyDescr_Map_208" = unnamed_addr constant %_TyDescrTy_Typ { i32 2, i8* bitcast (%"$TyDescr_MapTyp_205"* @"$TyDescr_MapTyp_286" to i8*) } +@"$TyDescr_Addr_211" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_210"* @"$TyDescr_AddrFields_287" to i8*) } +@"$TyDescr_Option_ADTTyp_212" = unnamed_addr constant %"$TyDescrTy_ADTTyp_196" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_241", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 3, %"$TyDescrTy_ADTTyp_Specl_195"** getelementptr inbounds ([3 x %"$TyDescrTy_ADTTyp_Specl_195"*], [3 x %"$TyDescrTy_ADTTyp_Specl_195"*]* @"$TyDescr_Option_ADTTyp_m_specls_240", i32 0, i32 0) } +@"$TyDescr_Option_Some_List_(ByStr20)_Constr_m_args_213" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203"] +@"$TyDescr_ADT_Some_214" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_List_(ByStr20)_ADTTyp_Constr_215" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_214", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_List_(ByStr20)_Constr_m_args_213", i32 0, i32 0) } +@"$TyDescr_Option_None_List_(ByStr20)_Constr_m_args_216" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_217" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_List_(ByStr20)_ADTTyp_Constr_218" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_217", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_List_(ByStr20)_Constr_m_args_216", i32 0, i32 0) } +@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_constrs_219" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_Some_List_(ByStr20)_ADTTyp_Constr_215", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_None_List_(ByStr20)_ADTTyp_Constr_218"] +@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_TArgs_220" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203"] +@"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_221" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_TArgs_220", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_m_constrs_219", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_Option_ADTTyp_212" } +@"$TyDescr_Option_Some_ud-registry.Record_Constr_m_args_222" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201"] +@"$TyDescr_ADT_Some_223" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_ud-registry.Record_ADTTyp_Constr_224" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_223", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ud-registry.Record_Constr_m_args_222", i32 0, i32 0) } +@"$TyDescr_Option_None_ud-registry.Record_Constr_m_args_225" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_226" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_ud-registry.Record_ADTTyp_Constr_227" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_226", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ud-registry.Record_Constr_m_args_225", i32 0, i32 0) } +@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_constrs_228" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_Some_ud-registry.Record_ADTTyp_Constr_224", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_None_ud-registry.Record_ADTTyp_Constr_227"] +@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_TArgs_229" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201"] +@"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_230" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_TArgs_229", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_m_constrs_228", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_Option_ADTTyp_212" } +@"$TyDescr_Option_Some_ByStr20_Constr_m_args_231" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194"] +@"$TyDescr_ADT_Some_232" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_233" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_232", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ByStr20_Constr_m_args_231", i32 0, i32 0) } +@"$TyDescr_Option_None_ByStr20_Constr_m_args_234" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_235" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_236" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_235", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ByStr20_Constr_m_args_234", i32 0, i32 0) } +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_237" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_233", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_236"] +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_238" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194"] +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_239" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_238", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_237", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_Option_ADTTyp_212" } +@"$TyDescr_Option_ADTTyp_m_specls_240" = unnamed_addr constant [3 x %"$TyDescrTy_ADTTyp_Specl_195"*] [%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_List_(ByStr20)_ADTTyp_Specl_221", %"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_ud-registry.Record_ADTTyp_Specl_230", %"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_239"] +@"$TyDescr_ADT_Option_241" = unnamed_addr constant [6 x i8] c"Option" +@"$TyDescr_ud-registry.Record_ADTTyp_242" = unnamed_addr constant %"$TyDescrTy_ADTTyp_196" { %TyDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$TyDescr_ADT_ud-registry.Record_250", i32 0, i32 0), i32 18 }, i32 0, i32 1, i32 1, %"$TyDescrTy_ADTTyp_Specl_195"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_195"*], [1 x %"$TyDescrTy_ADTTyp_Specl_195"*]* @"$TyDescr_ud-registry.Record_ADTTyp_m_specls_249", i32 0, i32 0) } +@"$TyDescr_ud-registry.Record_ud-registry.Record_Constr_m_args_243" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194"] +@"$TyDescr_ADT_ud-registry.Record_244" = unnamed_addr constant [18 x i8] c"ud-registry.Record" +@"$TyDescr_ud-registry.Record_ud-registry.Record_ADTTyp_Constr_245" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$TyDescr_ADT_ud-registry.Record_244", i32 0, i32 0), i32 18 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_ud-registry.Record_ud-registry.Record_Constr_m_args_243", i32 0, i32 0) } +@"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_constrs_246" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_ud-registry.Record_ud-registry.Record_ADTTyp_Constr_245"] +@"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_TArgs_247" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ud-registry.Record_ADTTyp_Specl_248" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_TArgs_247", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Constr_197"*], [1 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_m_constrs_246", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_ud-registry.Record_ADTTyp_242" } +@"$TyDescr_ud-registry.Record_ADTTyp_m_specls_249" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_195"*] [%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_ud-registry.Record_ADTTyp_Specl_248"] +@"$TyDescr_ADT_ud-registry.Record_250" = unnamed_addr constant [18 x i8] c"ud-registry.Record" +@"$TyDescr_List_ADTTyp_251" = unnamed_addr constant %"$TyDescrTy_ADTTyp_196" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_271", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_195"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_195"*], [2 x %"$TyDescrTy_ADTTyp_Specl_195"*]* @"$TyDescr_List_ADTTyp_m_specls_270", i32 0, i32 0) } +@"$TyDescr_List_Cons_Message_Constr_m_args_252" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_182", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202"] +@"$TyDescr_ADT_Cons_253" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_Message_ADTTyp_Constr_254" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_253", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_Message_Constr_m_args_252", i32 0, i32 0) } +@"$TyDescr_List_Nil_Message_Constr_m_args_255" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_256" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_Message_ADTTyp_Constr_257" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_256", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_Message_Constr_m_args_255", i32 0, i32 0) } +@"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_258" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_List_Cons_Message_ADTTyp_Constr_254", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_List_Nil_Message_ADTTyp_Constr_257"] +@"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_259" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Message_182"] +@"$TyDescr_List_Message_ADTTyp_Specl_260" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_TArgs_259", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_List_Message_ADTTyp_Specl_m_constrs_258", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_List_ADTTyp_251" } +@"$TyDescr_List_Cons_ByStr20_Constr_m_args_261" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203"] +@"$TyDescr_ADT_Cons_262" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_263" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_262", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_ByStr20_Constr_m_args_261", i32 0, i32 0) } +@"$TyDescr_List_Nil_ByStr20_Constr_m_args_264" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_265" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_266" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_265", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_ByStr20_Constr_m_args_264", i32 0, i32 0) } +@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_267" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_263", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_266"] +@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_268" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194"] +@"$TyDescr_List_ByStr20_ADTTyp_Specl_269" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_268", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_267", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_List_ADTTyp_251" } +@"$TyDescr_List_ADTTyp_m_specls_270" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_195"*] [%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_List_Message_ADTTyp_Specl_260", %"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_269"] +@"$TyDescr_ADT_List_271" = unnamed_addr constant [4 x i8] c"List" +@"$TyDescr_Bool_ADTTyp_272" = unnamed_addr constant %"$TyDescrTy_ADTTyp_196" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_283", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_195"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_195"*], [1 x %"$TyDescrTy_ADTTyp_Specl_195"*]* @"$TyDescr_Bool_ADTTyp_m_specls_282", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_273" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_274" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_275" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_274", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_273", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_276" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_277" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_278" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_197" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_277", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_276", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_279" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_197"*] [%"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Bool_True_ADTTyp_Constr_275", %"$TyDescrTy_ADTTyp_Constr_197"* @"$TyDescr_Bool_False_ADTTyp_Constr_278"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_280" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_281" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_195" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_280", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_197"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_197"*], [2 x %"$TyDescrTy_ADTTyp_Constr_197"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_279", i32 0, i32 0), %"$TyDescrTy_ADTTyp_196"* @"$TyDescr_Bool_ADTTyp_272" } +@"$TyDescr_Bool_ADTTyp_m_specls_282" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_195"*] [%"$TyDescrTy_ADTTyp_Specl_195"* @"$TyDescr_Bool_ADTTyp_Specl_281"] +@"$TyDescr_ADT_Bool_283" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_MapTyp_284" = unnamed_addr constant %"$TyDescr_MapTyp_205" { %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203" } +@"$TyDescr_MapTyp_285" = unnamed_addr constant %"$TyDescr_MapTyp_205" { %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" } +@"$TyDescr_MapTyp_286" = unnamed_addr constant %"$TyDescr_MapTyp_205" { %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201" } +@"$TyDescr_AddrFields_287" = unnamed_addr constant %"$TyDescr_AddrTyp_210" { i32 -1, %"$TyDescr_AddrFieldTyp_209"* null } +@"$stringlit_1488" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1493" = unnamed_addr constant [8 x i8] c"AdminSet" +@"$stringlit_1496" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_1503" = unnamed_addr constant [10 x i8] c"isApproved" +@"$stringlit_1518" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1523" = unnamed_addr constant [11 x i8] c"ApprovedFor" +@"$stringlit_1526" = unnamed_addr constant [4 x i8] c"user" +@"$stringlit_1533" = unnamed_addr constant [8 x i8] c"operator" +@"$stringlit_1540" = unnamed_addr constant [10 x i8] c"isApproved" +@"$stringlit_1555" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1560" = unnamed_addr constant [8 x i8] c"Approved" +@"$stringlit_1563" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_1578" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1583" = unnamed_addr constant [12 x i8] c"NewRegistrar" +@"$stringlit_1586" = unnamed_addr constant [7 x i8] c"address" +@"$stringlit_1601" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1606" = unnamed_addr constant [9 x i8] c"NewDomain" +@"$stringlit_1609" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_1616" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_1631" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1636" = unnamed_addr constant [10 x i8] c"Configured" +@"$stringlit_1639" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_1646" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_1653" = unnamed_addr constant [8 x i8] c"resolver" +@"$stringlit_1668" = unnamed_addr constant [10 x i8] c"_eventname" +@"$stringlit_1673" = unnamed_addr constant [5 x i8] c"Error" +@"$stringlit_1676" = unnamed_addr constant [3 x i8] c"msg" @list_foldr = global { i8*, i8* }* null @list_foldk = global { i8*, i8* }* null -@BoolUtils.andb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer -@BoolUtils.orb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer +@BoolUtils.andb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer +@BoolUtils.orb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer @BoolUtils.negb = global { %TName_Bool* (i8*, %TName_Bool*)*, i8* } zeroinitializer @ListUtils.list_filter = global { i8*, i8* }* null @ListUtils.list_find = global { i8*, i8* }* null @@ -272,4142 +256,3489 @@ target triple = "x86_64-unknown-linux-gnu" @ud-registry.nilMessage = global %TName_List_Message* null @ud-registry.oneMsg = global { %TName_List_Message* (i8*, i8*)*, i8* } zeroinitializer @ud-registry.eqByStr20 = global { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } zeroinitializer -@ud-registry.listByStr20Contains = global { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } zeroinitializer -@ud-registry.listByStr20Excludes = global { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } zeroinitializer -@ud-registry.listByStr20FilterOut = global { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } zeroinitializer -@ud-registry.xandb = global { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } zeroinitializer -@ud-registry.eAdminSet = global { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } zeroinitializer -@ud-registry.eApprovedFor = global { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } zeroinitializer +@ud-registry.listByStr20Contains = global { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } zeroinitializer +@ud-registry.listByStr20Excludes = global { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } zeroinitializer +@ud-registry.listByStr20FilterOut = global { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } zeroinitializer +@ud-registry.xandb = global { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } zeroinitializer +@ud-registry.eAdminSet = global { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } zeroinitializer +@ud-registry.eApprovedFor = global { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* } zeroinitializer @ud-registry.eApproved = global { i8* (i8*, [20 x i8]*)*, i8* } zeroinitializer @ud-registry.eNewRegistrar = global { i8* (i8*, [20 x i8]*)*, i8* } zeroinitializer -@ud-registry.eNewDomain = global { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } zeroinitializer -@ud-registry.eConfigured = global { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } zeroinitializer +@ud-registry.eNewDomain = global { i8* (i8*, [32 x i8]*, %String)*, i8* } zeroinitializer +@ud-registry.eConfigured = global { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } zeroinitializer @ud-registry.eError = global { i8* (i8*, %String)*, i8* } zeroinitializer @ud-registry.recordMemberOwner = global { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } zeroinitializer -@ud-registry.parentLabelToNode = global { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } zeroinitializer -@ud-registry.getIsOAO = global { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } zeroinitializer +@ud-registry.parentLabelToNode = global { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } zeroinitializer +@ud-registry.getIsOAO = global { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } zeroinitializer @_cparam__scilla_version = global %Uint32 zeroinitializer @_cparam__this_address = global [20 x i8] zeroinitializer @_cparam__creation_block = global i8* null @_cparam_initialOwner = global [20 x i8] zeroinitializer @_cparam_rootNode = global [32 x i8] zeroinitializer -@"$records_2699" = unnamed_addr constant [8 x i8] c"records\00" -@"$registrar_2709" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$approvals_2722" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_2734" = unnamed_addr constant [10 x i8] c"operators\00" -@"$admins_2750" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_2757" = unnamed_addr constant [7 x i8] c"admins\00" -@"$admins_2910" = unnamed_addr constant [7 x i8] c"admins\00" -@"$stringlit_2960" = unnamed_addr constant [26 x i8] c"Sender not root node owner" -@"$records_3000" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_3063" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$approvals_3168" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$stringlit_3214" = unnamed_addr constant [21 x i8] c"Sender not node owner" -@"$operators_3253" = unnamed_addr constant [10 x i8] c"operators\00" -@"$operators_3410" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_3467" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_3483" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_3517" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_3602" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_3657" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3662" = unnamed_addr constant [18 x i8] c"onConfigureSuccess" -@"$stringlit_3665" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_3672" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_3679" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_3686" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_3732" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" -@"$stringlit_3770" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_3775" = unnamed_addr constant [18 x i8] c"onConfigureFailure" -@"$stringlit_3778" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_3785" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_3793" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_3800" = unnamed_addr constant [10 x i8] c"_recipient" -@"$records_3849" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_3865" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_3899" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_3985" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_4042" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" -@"$records_4082" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_4098" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_4132" = unnamed_addr constant [10 x i8] c"operators\00" -@"$approvals_4198" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$records_4227" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_4283" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_4288" = unnamed_addr constant [17 x i8] c"onTransferSuccess" -@"$stringlit_4291" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_4298" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_4305" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_4312" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_4358" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" -@"$stringlit_4396" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_4401" = unnamed_addr constant [17 x i8] c"onTransferFailure" -@"$stringlit_4404" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_4411" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_4418" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_4425" = unnamed_addr constant [10 x i8] c"_recipient" -@"$records_4472" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_4488" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$operators_4522" = unnamed_addr constant [10 x i8] c"operators\00" -@"$records_4604" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_4669" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$records_4699" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_4756" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_4761" = unnamed_addr constant [15 x i8] c"onAssignSuccess" -@"$stringlit_4764" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_4771" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_4778" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_4785" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_4792" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_4838" = unnamed_addr constant [45 x i8] c"Sender not parent owner, approved or operator" -@"$stringlit_4876" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_4881" = unnamed_addr constant [15 x i8] c"onAssignFailure" -@"$stringlit_4884" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_4891" = unnamed_addr constant [5 x i8] c"label" -@"$stringlit_4898" = unnamed_addr constant [5 x i8] c"owner" -@"$stringlit_4906" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_4913" = unnamed_addr constant [10 x i8] c"_recipient" -@"$admins_4960" = unnamed_addr constant [7 x i8] c"admins\00" -@"$records_4998" = unnamed_addr constant [8 x i8] c"records\00" -@"$records_5015" = unnamed_addr constant [8 x i8] c"records\00" -@"$registrar_5029" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$records_5305" = unnamed_addr constant [8 x i8] c"records\00" -@"$stringlit_5362" = unnamed_addr constant [12 x i8] c"Sender admin" -@"$admins_5401" = unnamed_addr constant [7 x i8] c"admins\00" -@"$registrar_5482" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$records_5522" = unnamed_addr constant [8 x i8] c"records\00" -@"$approvals_5539" = unnamed_addr constant [10 x i8] c"approvals\00" -@"$registrar_5603" = unnamed_addr constant [10 x i8] c"registrar\00" -@"$stringlit_5711" = unnamed_addr constant [4 x i8] c"_tag" -@"$stringlit_5716" = unnamed_addr constant [8 x i8] c"register" -@"$stringlit_5719" = unnamed_addr constant [7 x i8] c"_amount" -@"$stringlit_5726" = unnamed_addr constant [10 x i8] c"_recipient" -@"$stringlit_5734" = unnamed_addr constant [6 x i8] c"origin" -@"$stringlit_5741" = unnamed_addr constant [4 x i8] c"node" -@"$stringlit_5749" = unnamed_addr constant [6 x i8] c"parent" -@"$stringlit_5756" = unnamed_addr constant [5 x i8] c"label" -@"$records_5804" = unnamed_addr constant [8 x i8] c"records\00" -@_tydescr_table = constant [28 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %_TyDescrTy_Typ* @"$TyDescr_Event_301", %_TyDescrTy_Typ* @"$TyDescr_Int64_283", %_TyDescrTy_Typ* @"$TyDescr_Addr_328", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ* @"$TyDescr_Uint256_293", %_TyDescrTy_Typ* @"$TyDescr_Uint32_281", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_307", %_TyDescrTy_Typ* @"$TyDescr_Uint64_285", %_TyDescrTy_Typ* @"$TyDescr_Bnum_297", %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ* @"$TyDescr_Map_325", %_TyDescrTy_Typ* @"$TyDescr_Exception_303", %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ* @"$TyDescr_Int256_291", %_TyDescrTy_Typ* @"$TyDescr_Int128_287", %_TyDescrTy_Typ* @"$TyDescr_Map_323", %_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", %_TyDescrTy_Typ* @"$TyDescr_Bystr_305", %_TyDescrTy_Typ* @"$TyDescr_Message_299", %_TyDescrTy_Typ* @"$TyDescr_Map_324", %_TyDescrTy_Typ* @"$TyDescr_Int32_279"] +@"$records_2252" = unnamed_addr constant [8 x i8] c"records\00" +@"$registrar_2262" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$approvals_2275" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_2287" = unnamed_addr constant [10 x i8] c"operators\00" +@"$admins_2303" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_2310" = unnamed_addr constant [7 x i8] c"admins\00" +@"$admins_2443" = unnamed_addr constant [7 x i8] c"admins\00" +@"$stringlit_2488" = unnamed_addr constant [26 x i8] c"Sender not root node owner" +@"$records_2528" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_2591" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$approvals_2696" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$stringlit_2742" = unnamed_addr constant [21 x i8] c"Sender not node owner" +@"$operators_2781" = unnamed_addr constant [10 x i8] c"operators\00" +@"$operators_2923" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_2971" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_2987" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_3021" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_3093" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_3139" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3144" = unnamed_addr constant [18 x i8] c"onConfigureSuccess" +@"$stringlit_3147" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_3154" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_3161" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3168" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3214" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" +@"$stringlit_3252" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3257" = unnamed_addr constant [18 x i8] c"onConfigureFailure" +@"$stringlit_3260" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_3267" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_3275" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3282" = unnamed_addr constant [10 x i8] c"_recipient" +@"$records_3331" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_3347" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_3381" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_3454" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_3502" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" +@"$records_3542" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_3558" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_3592" = unnamed_addr constant [10 x i8] c"operators\00" +@"$approvals_3645" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$records_3674" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_3721" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3726" = unnamed_addr constant [17 x i8] c"onTransferSuccess" +@"$stringlit_3729" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_3736" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_3743" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3750" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_3796" = unnamed_addr constant [43 x i8] c"Sender not node owner, approved or operator" +@"$stringlit_3834" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_3839" = unnamed_addr constant [17 x i8] c"onTransferFailure" +@"$stringlit_3842" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_3849" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_3856" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_3863" = unnamed_addr constant [10 x i8] c"_recipient" +@"$records_3910" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_3926" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$operators_3960" = unnamed_addr constant [10 x i8] c"operators\00" +@"$records_4024" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_4084" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$records_4114" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_4162" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_4167" = unnamed_addr constant [15 x i8] c"onAssignSuccess" +@"$stringlit_4170" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_4177" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_4184" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_4191" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_4198" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_4244" = unnamed_addr constant [45 x i8] c"Sender not parent owner, approved or operator" +@"$stringlit_4282" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_4287" = unnamed_addr constant [15 x i8] c"onAssignFailure" +@"$stringlit_4290" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_4297" = unnamed_addr constant [5 x i8] c"label" +@"$stringlit_4304" = unnamed_addr constant [5 x i8] c"owner" +@"$stringlit_4312" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_4319" = unnamed_addr constant [10 x i8] c"_recipient" +@"$admins_4366" = unnamed_addr constant [7 x i8] c"admins\00" +@"$records_4399" = unnamed_addr constant [8 x i8] c"records\00" +@"$records_4416" = unnamed_addr constant [8 x i8] c"records\00" +@"$registrar_4430" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$records_4676" = unnamed_addr constant [8 x i8] c"records\00" +@"$stringlit_4724" = unnamed_addr constant [12 x i8] c"Sender admin" +@"$admins_4763" = unnamed_addr constant [7 x i8] c"admins\00" +@"$registrar_4839" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$records_4874" = unnamed_addr constant [8 x i8] c"records\00" +@"$approvals_4891" = unnamed_addr constant [10 x i8] c"approvals\00" +@"$registrar_4955" = unnamed_addr constant [10 x i8] c"registrar\00" +@"$stringlit_5058" = unnamed_addr constant [4 x i8] c"_tag" +@"$stringlit_5063" = unnamed_addr constant [8 x i8] c"register" +@"$stringlit_5066" = unnamed_addr constant [7 x i8] c"_amount" +@"$stringlit_5073" = unnamed_addr constant [10 x i8] c"_recipient" +@"$stringlit_5081" = unnamed_addr constant [6 x i8] c"origin" +@"$stringlit_5088" = unnamed_addr constant [4 x i8] c"node" +@"$stringlit_5096" = unnamed_addr constant [6 x i8] c"parent" +@"$stringlit_5103" = unnamed_addr constant [5 x i8] c"label" +@"$records_5151" = unnamed_addr constant [8 x i8] c"records\00" +@_tydescr_table = constant [28 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %_TyDescrTy_Typ* @"$TyDescr_Event_184", %_TyDescrTy_Typ* @"$TyDescr_Int64_166", %_TyDescrTy_Typ* @"$TyDescr_Addr_211", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ* @"$TyDescr_Uint256_176", %_TyDescrTy_Typ* @"$TyDescr_Uint32_164", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_190", %_TyDescrTy_Typ* @"$TyDescr_Uint64_168", %_TyDescrTy_Typ* @"$TyDescr_Bnum_180", %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ* @"$TyDescr_Map_208", %_TyDescrTy_Typ* @"$TyDescr_Exception_186", %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ* @"$TyDescr_Int256_174", %_TyDescrTy_Typ* @"$TyDescr_Int128_170", %_TyDescrTy_Typ* @"$TyDescr_Map_206", %_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", %_TyDescrTy_Typ* @"$TyDescr_Bystr_188", %_TyDescrTy_Typ* @"$TyDescr_Message_182", %_TyDescrTy_Typ* @"$TyDescr_Map_207", %_TyDescrTy_Typ* @"$TyDescr_Int32_162"] @_tydescr_table_length = constant i32 28 -@"$pname__scilla_version_5931" = unnamed_addr constant [15 x i8] c"_scilla_version" -@"$pname__this_address_5932" = unnamed_addr constant [13 x i8] c"_this_address" -@"$pname__creation_block_5933" = unnamed_addr constant [15 x i8] c"_creation_block" -@"$pname_initialOwner_5934" = unnamed_addr constant [12 x i8] c"initialOwner" -@"$pname_rootNode_5935" = unnamed_addr constant [8 x i8] c"rootNode" -@_contract_parameters = constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_5931", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_281" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_5932", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_5933", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_297" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialOwner_5934", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_rootNode_5935", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }] +@"$pname__scilla_version_5269" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_5270" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_5271" = unnamed_addr constant [15 x i8] c"_creation_block" +@"$pname_initialOwner_5272" = unnamed_addr constant [12 x i8] c"initialOwner" +@"$pname_rootNode_5273" = unnamed_addr constant [8 x i8] c"rootNode" +@_contract_parameters = constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_5269", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_164" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_5270", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_5271", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_180" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$pname_initialOwner_5272", i32 0, i32 0), i32 12 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$pname_rootNode_5273", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }] @_contract_parameters_length = constant i32 5 -@"$tpname__amount_5936" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5937" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5938" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_5939" = unnamed_addr constant [7 x i8] c"address" -@"$tpname_isApproved_5940" = unnamed_addr constant [10 x i8] c"isApproved" -@"$tparams_setAdmin_5941" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5936", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5937", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5938", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5939", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_5940", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321" }] -@"$tname_setAdmin_5942" = unnamed_addr constant [8 x i8] c"setAdmin" -@"$tpname__amount_5943" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5944" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5945" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_5946" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_address_5947" = unnamed_addr constant [7 x i8] c"address" -@"$tparams_approve_5948" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5943", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5944", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5945", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5946", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5947", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_approve_5949" = unnamed_addr constant [7 x i8] c"approve" -@"$tpname__amount_5950" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5951" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5952" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_5953" = unnamed_addr constant [7 x i8] c"address" -@"$tpname_isApproved_5954" = unnamed_addr constant [10 x i8] c"isApproved" -@"$tparams_approveFor_5955" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5950", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5951", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5952", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5953", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_5954", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321" }] -@"$tname_approveFor_5956" = unnamed_addr constant [10 x i8] c"approveFor" -@"$tpname__amount_5957" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5958" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5959" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_5960" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_owner_5961" = unnamed_addr constant [5 x i8] c"owner" -@"$tpname_resolver_5962" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_configureNode_5963" = unnamed_addr constant [6 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5957", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5958", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5959", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5960", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5961", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5962", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_configureNode_5964" = unnamed_addr constant [13 x i8] c"configureNode" -@"$tpname__amount_5965" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5966" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5967" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_5968" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_resolver_5969" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_configureResolver_5970" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5965", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5966", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5967", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5968", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5969", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_configureResolver_5971" = unnamed_addr constant [17 x i8] c"configureResolver" -@"$tpname__amount_5972" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5973" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5974" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_5975" = unnamed_addr constant [4 x i8] c"node" -@"$tpname_owner_5976" = unnamed_addr constant [5 x i8] c"owner" -@"$tparams_transfer_5977" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5972", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5973", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5974", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5975", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5976", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_transfer_5978" = unnamed_addr constant [8 x i8] c"transfer" -@"$tpname__amount_5979" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5980" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5981" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_parent_5982" = unnamed_addr constant [6 x i8] c"parent" -@"$tpname_label_5983" = unnamed_addr constant [5 x i8] c"label" -@"$tpname_owner_5984" = unnamed_addr constant [5 x i8] c"owner" -@"$tparams_assign_5985" = unnamed_addr constant [6 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5979", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5980", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5981", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_5982", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_5983", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_295" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5984", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_assign_5986" = unnamed_addr constant [6 x i8] c"assign" -@"$tpname__amount_5987" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5988" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5989" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_label_5990" = unnamed_addr constant [5 x i8] c"label" -@"$tpname_owner_5991" = unnamed_addr constant [5 x i8] c"owner" -@"$tpname_resolver_5992" = unnamed_addr constant [8 x i8] c"resolver" -@"$tparams_bestow_5993" = unnamed_addr constant [6 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5987", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5988", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5989", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_5990", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_295" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5991", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5992", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_bestow_5994" = unnamed_addr constant [6 x i8] c"bestow" -@"$tpname__amount_5995" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_5996" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_5997" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_address_5998" = unnamed_addr constant [7 x i8] c"address" -@"$tparams_setRegistrar_5999" = unnamed_addr constant [4 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5995", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5996", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5997", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5998", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311" }] -@"$tname_setRegistrar_6000" = unnamed_addr constant [12 x i8] c"setRegistrar" -@"$tpname__amount_6001" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_6002" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_6003" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_parent_6004" = unnamed_addr constant [6 x i8] c"parent" -@"$tpname_label_6005" = unnamed_addr constant [5 x i8] c"label" -@"$tparams_register_6006" = unnamed_addr constant [5 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_6001", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_6002", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_6003", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_6004", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_6005", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_295" }] -@"$tname_register_6007" = unnamed_addr constant [8 x i8] c"register" -@"$tpname__amount_6008" = unnamed_addr constant [7 x i8] c"_amount" -@"$tpname__origin_6009" = unnamed_addr constant [7 x i8] c"_origin" -@"$tpname__sender_6010" = unnamed_addr constant [7 x i8] c"_sender" -@"$tpname_node_6011" = unnamed_addr constant [4 x i8] c"node" -@"$tparams_onResolverConfigured_6012" = unnamed_addr constant [4 x %"$ParamDescr_5929"] [%"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_6008", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_289" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_6009", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_6010", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_328" }, %"$ParamDescr_5929" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_6011", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309" }] -@"$tname_onResolverConfigured_6013" = unnamed_addr constant [20 x i8] c"onResolverConfigured" -@_transition_parameters = constant [11 x %"$TransDescr_5930"] [%"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_5942", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_setAdmin_5941", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_approve_5949", i32 0, i32 0), i32 7 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_approve_5948", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tname_approveFor_5956", i32 0, i32 0), i32 10 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_approveFor_5955", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$tname_configureNode_5964", i32 0, i32 0), i32 13 }, i32 6, %"$ParamDescr_5929"* getelementptr inbounds ([6 x %"$ParamDescr_5929"], [6 x %"$ParamDescr_5929"]* @"$tparams_configureNode_5963", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$tname_configureResolver_5971", i32 0, i32 0), i32 17 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_configureResolver_5970", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_transfer_5978", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_transfer_5977", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_assign_5986", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_5929"* getelementptr inbounds ([6 x %"$ParamDescr_5929"], [6 x %"$ParamDescr_5929"]* @"$tparams_assign_5985", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_5994", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_5929"* getelementptr inbounds ([6 x %"$ParamDescr_5929"], [6 x %"$ParamDescr_5929"]* @"$tparams_bestow_5993", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_setRegistrar_6000", i32 0, i32 0), i32 12 }, i32 4, %"$ParamDescr_5929"* getelementptr inbounds ([4 x %"$ParamDescr_5929"], [4 x %"$ParamDescr_5929"]* @"$tparams_setRegistrar_5999", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_register_6007", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5929"* getelementptr inbounds ([5 x %"$ParamDescr_5929"], [5 x %"$ParamDescr_5929"]* @"$tparams_register_6006", i32 0, i32 0) }, %"$TransDescr_5930" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_onResolverConfigured_6013", i32 0, i32 0), i32 20 }, i32 4, %"$ParamDescr_5929"* getelementptr inbounds ([4 x %"$ParamDescr_5929"], [4 x %"$ParamDescr_5929"]* @"$tparams_onResolverConfigured_6012", i32 0, i32 0) }] +@"$tpname__amount_5274" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5275" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5276" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_5277" = unnamed_addr constant [7 x i8] c"address" +@"$tpname_isApproved_5278" = unnamed_addr constant [10 x i8] c"isApproved" +@"$tparams_setAdmin_5279" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5274", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5275", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5276", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5277", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_5278", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204" }] +@"$tname_setAdmin_5280" = unnamed_addr constant [8 x i8] c"setAdmin" +@"$tpname__amount_5281" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5282" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5283" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_5284" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_address_5285" = unnamed_addr constant [7 x i8] c"address" +@"$tparams_approve_5286" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5281", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5282", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5283", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5284", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5285", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_approve_5287" = unnamed_addr constant [7 x i8] c"approve" +@"$tpname__amount_5288" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5289" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5290" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_5291" = unnamed_addr constant [7 x i8] c"address" +@"$tpname_isApproved_5292" = unnamed_addr constant [10 x i8] c"isApproved" +@"$tparams_approveFor_5293" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5288", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5289", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5290", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5291", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tpname_isApproved_5292", i32 0, i32 0), i32 10 }, %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204" }] +@"$tname_approveFor_5294" = unnamed_addr constant [10 x i8] c"approveFor" +@"$tpname__amount_5295" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5296" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5297" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_5298" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_owner_5299" = unnamed_addr constant [5 x i8] c"owner" +@"$tpname_resolver_5300" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_configureNode_5301" = unnamed_addr constant [6 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5295", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5296", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5297", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5298", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5299", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5300", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_configureNode_5302" = unnamed_addr constant [13 x i8] c"configureNode" +@"$tpname__amount_5303" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5304" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5305" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_5306" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_resolver_5307" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_configureResolver_5308" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5303", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5304", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5305", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5306", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5307", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_configureResolver_5309" = unnamed_addr constant [17 x i8] c"configureResolver" +@"$tpname__amount_5310" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5311" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5312" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_5313" = unnamed_addr constant [4 x i8] c"node" +@"$tpname_owner_5314" = unnamed_addr constant [5 x i8] c"owner" +@"$tparams_transfer_5315" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5310", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5311", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5312", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5313", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5314", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_transfer_5316" = unnamed_addr constant [8 x i8] c"transfer" +@"$tpname__amount_5317" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5318" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5319" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_parent_5320" = unnamed_addr constant [6 x i8] c"parent" +@"$tpname_label_5321" = unnamed_addr constant [5 x i8] c"label" +@"$tpname_owner_5322" = unnamed_addr constant [5 x i8] c"owner" +@"$tparams_assign_5323" = unnamed_addr constant [6 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5317", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5318", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5319", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_5320", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_5321", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_178" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5322", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_assign_5324" = unnamed_addr constant [6 x i8] c"assign" +@"$tpname__amount_5325" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5326" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5327" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_label_5328" = unnamed_addr constant [5 x i8] c"label" +@"$tpname_owner_5329" = unnamed_addr constant [5 x i8] c"owner" +@"$tpname_resolver_5330" = unnamed_addr constant [8 x i8] c"resolver" +@"$tparams_bestow_5331" = unnamed_addr constant [6 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5325", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5326", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5327", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_5328", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_178" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_owner_5329", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tpname_resolver_5330", i32 0, i32 0), i32 8 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_bestow_5332" = unnamed_addr constant [6 x i8] c"bestow" +@"$tpname__amount_5333" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5334" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5335" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_address_5336" = unnamed_addr constant [7 x i8] c"address" +@"$tparams_setRegistrar_5337" = unnamed_addr constant [4 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5333", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5334", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5335", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname_address_5336", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194" }] +@"$tname_setRegistrar_5338" = unnamed_addr constant [12 x i8] c"setRegistrar" +@"$tpname__amount_5339" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5340" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5341" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_parent_5342" = unnamed_addr constant [6 x i8] c"parent" +@"$tpname_label_5343" = unnamed_addr constant [5 x i8] c"label" +@"$tparams_register_5344" = unnamed_addr constant [5 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5339", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5340", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5341", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tpname_parent_5342", i32 0, i32 0), i32 6 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tpname_label_5343", i32 0, i32 0), i32 5 }, %_TyDescrTy_Typ* @"$TyDescr_String_178" }] +@"$tname_register_5345" = unnamed_addr constant [8 x i8] c"register" +@"$tpname__amount_5346" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_5347" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_5348" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_node_5349" = unnamed_addr constant [4 x i8] c"node" +@"$tparams_onResolverConfigured_5350" = unnamed_addr constant [4 x %"$ParamDescr_5267"] [%"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_5346", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_172" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_5347", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_5348", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_211" }, %"$ParamDescr_5267" { %ParamDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$tpname_node_5349", i32 0, i32 0), i32 4 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192" }] +@"$tname_onResolverConfigured_5351" = unnamed_addr constant [20 x i8] c"onResolverConfigured" +@_transition_parameters = constant [11 x %"$TransDescr_5268"] [%"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_setAdmin_5280", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_setAdmin_5279", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tname_approve_5287", i32 0, i32 0), i32 7 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_approve_5286", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$tname_approveFor_5294", i32 0, i32 0), i32 10 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_approveFor_5293", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$tname_configureNode_5302", i32 0, i32 0), i32 13 }, i32 6, %"$ParamDescr_5267"* getelementptr inbounds ([6 x %"$ParamDescr_5267"], [6 x %"$ParamDescr_5267"]* @"$tparams_configureNode_5301", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$tname_configureResolver_5309", i32 0, i32 0), i32 17 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_configureResolver_5308", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_transfer_5316", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_transfer_5315", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_assign_5324", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_5267"* getelementptr inbounds ([6 x %"$ParamDescr_5267"], [6 x %"$ParamDescr_5267"]* @"$tparams_assign_5323", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_bestow_5332", i32 0, i32 0), i32 6 }, i32 6, %"$ParamDescr_5267"* getelementptr inbounds ([6 x %"$ParamDescr_5267"], [6 x %"$ParamDescr_5267"]* @"$tparams_bestow_5331", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$tname_setRegistrar_5338", i32 0, i32 0), i32 12 }, i32 4, %"$ParamDescr_5267"* getelementptr inbounds ([4 x %"$ParamDescr_5267"], [4 x %"$ParamDescr_5267"]* @"$tparams_setRegistrar_5337", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$tname_register_5345", i32 0, i32 0), i32 8 }, i32 5, %"$ParamDescr_5267"* getelementptr inbounds ([5 x %"$ParamDescr_5267"], [5 x %"$ParamDescr_5267"]* @"$tparams_register_5344", i32 0, i32 0) }, %"$TransDescr_5268" { %ParamDescrString { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @"$tname_onResolverConfigured_5351", i32 0, i32 0), i32 20 }, i32 4, %"$ParamDescr_5267"* getelementptr inbounds ([4 x %"$ParamDescr_5267"], [4 x %"$ParamDescr_5267"]* @"$tparams_onResolverConfigured_5350", i32 0, i32 0) }] @_transition_parameters_length = constant i32 11 -define internal %TName_Bool* @"$fundef_214"(%"$$fundef_214_env_405"* %0, %"TName_Option_List_(ByStr20)"* %1) { +define internal %TName_Bool* @"$fundef_119"(%"$$fundef_119_env_288"* %0, [20 x i8]* %1, [20 x i8]* %2, %TName_Option_ByStr20* %3, %"TName_Option_List_(ByStr20)"* %4) { entry: - %"$$fundef_214_env_BoolUtils.orb_2217" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_2218" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_214_env_BoolUtils.orb_2217", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_2218", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$$fundef_214_env_maybeApproved_2219" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %0, i32 0, i32 1 - %"$maybeApproved_envload_2220" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_214_env_maybeApproved_2219", align 8 - %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$maybeApproved_envload_2220", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$fundef_214_env_recordOwner_2221" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %0, i32 0, i32 2 - %"$recordOwner_envload_2222" = load [20 x i8], [20 x i8]* %"$$fundef_214_env_recordOwner_2221", align 1 - %recordOwner = alloca [20 x i8], align 1 - store [20 x i8] %"$recordOwner_envload_2222", [20 x i8]* %recordOwner, align 1 - %"$$fundef_214_env_sender_2223" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %0, i32 0, i32 3 - %"$sender_envload_2224" = load [20 x i8], [20 x i8]* %"$$fundef_214_env_sender_2223", align 1 - %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_2224", [20 x i8]* %sender, align 1 - %"$$fundef_214_env_ud-registry.listByStr20Contains_2225" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %0, i32 0, i32 4 - %"$ud-registry.listByStr20Contains_envload_2226" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_214_env_ud-registry.listByStr20Contains_2225", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_2226", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_215" = alloca %TName_Bool*, align 8 - %"$gasrem_2227" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2228" = icmp ugt i64 1, %"$gasrem_2227" - br i1 %"$gascmp_2228", label %"$out_of_gas_2229", label %"$have_gas_2230" - -"$out_of_gas_2229": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2230" - -"$have_gas_2230": ; preds = %"$out_of_gas_2229", %entry - %"$consume_2231" = sub i64 %"$gasrem_2227", 1 - store i64 %"$consume_2231", i64* @_gasrem, align 8 + %recordOwner = load [20 x i8], [20 x i8]* %2, align 1 + %sender = load [20 x i8], [20 x i8]* %1, align 1 + %"$$fundef_119_env_BoolUtils.orb_1796" = getelementptr inbounds %"$$fundef_119_env_288", %"$$fundef_119_env_288"* %0, i32 0, i32 0 + %"$BoolUtils.orb_envload_1797" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %"$$fundef_119_env_BoolUtils.orb_1796", align 8 + %BoolUtils.orb = alloca { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_1797", { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 + %"$$fundef_119_env_ud-registry.listByStr20Contains_1798" = getelementptr inbounds %"$$fundef_119_env_288", %"$$fundef_119_env_288"* %0, i32 0, i32 1 + %"$ud-registry.listByStr20Contains_envload_1799" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %"$$fundef_119_env_ud-registry.listByStr20Contains_1798", align 8 + %ud-registry.listByStr20Contains = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_envload_1799", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %ud-registry.listByStr20Contains, align 8 + %"$retval_120" = alloca %TName_Bool*, align 8 + %"$gasrem_1800" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1801" = icmp ugt i64 1, %"$gasrem_1800" + br i1 %"$gascmp_1801", label %"$out_of_gas_1802", label %"$have_gas_1803" + +"$out_of_gas_1802": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1803" + +"$have_gas_1803": ; preds = %"$out_of_gas_1802", %entry + %"$consume_1804" = sub i64 %"$gasrem_1800", 1 + store i64 %"$consume_1804", i64* @_gasrem, align 8 %isOwner = alloca %TName_Bool*, align 8 - %"$gasrem_2232" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2233" = icmp ugt i64 20, %"$gasrem_2232" - br i1 %"$gascmp_2233", label %"$out_of_gas_2234", label %"$have_gas_2235" - -"$out_of_gas_2234": ; preds = %"$have_gas_2230" - call void @_out_of_gas() - br label %"$have_gas_2235" - -"$have_gas_2235": ; preds = %"$out_of_gas_2234", %"$have_gas_2230" - %"$consume_2236" = sub i64 %"$gasrem_2232", 20 - store i64 %"$consume_2236", i64* @_gasrem, align 8 - %"$execptr_load_2237" = load i8*, i8** @_execptr, align 8 - %"$eq_sender_2238" = alloca [20 x i8], align 1 - %"$sender_2239" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_2239", [20 x i8]* %"$eq_sender_2238", align 1 - %"$$eq_sender_2238_2240" = bitcast [20 x i8]* %"$eq_sender_2238" to i8* - %"$eq_recordOwner_2241" = alloca [20 x i8], align 1 - %"$recordOwner_2242" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_2242", [20 x i8]* %"$eq_recordOwner_2241", align 1 - %"$$eq_recordOwner_2241_2243" = bitcast [20 x i8]* %"$eq_recordOwner_2241" to i8* - %"$eq_call_2244" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_2237", i32 20, i8* %"$$eq_sender_2238_2240", i8* %"$$eq_recordOwner_2241_2243") - store %TName_Bool* %"$eq_call_2244", %TName_Bool** %isOwner, align 8 - %"$gasrem_2246" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2247" = icmp ugt i64 1, %"$gasrem_2246" - br i1 %"$gascmp_2247", label %"$out_of_gas_2248", label %"$have_gas_2249" - -"$out_of_gas_2248": ; preds = %"$have_gas_2235" - call void @_out_of_gas() - br label %"$have_gas_2249" - -"$have_gas_2249": ; preds = %"$out_of_gas_2248", %"$have_gas_2235" - %"$consume_2250" = sub i64 %"$gasrem_2246", 1 - store i64 %"$consume_2250", i64* @_gasrem, align 8 + %"$gasrem_1805" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1806" = icmp ugt i64 20, %"$gasrem_1805" + br i1 %"$gascmp_1806", label %"$out_of_gas_1807", label %"$have_gas_1808" + +"$out_of_gas_1807": ; preds = %"$have_gas_1803" + call void @_out_of_gas() + br label %"$have_gas_1808" + +"$have_gas_1808": ; preds = %"$out_of_gas_1807", %"$have_gas_1803" + %"$consume_1809" = sub i64 %"$gasrem_1805", 20 + store i64 %"$consume_1809", i64* @_gasrem, align 8 + %"$execptr_load_1810" = load i8*, i8** @_execptr, align 8 + %"$eq_sender_1811" = alloca [20 x i8], align 1 + store [20 x i8] %sender, [20 x i8]* %"$eq_sender_1811", align 1 + %"$$eq_sender_1811_1812" = bitcast [20 x i8]* %"$eq_sender_1811" to i8* + %"$eq_recordOwner_1813" = alloca [20 x i8], align 1 + store [20 x i8] %recordOwner, [20 x i8]* %"$eq_recordOwner_1813", align 1 + %"$$eq_recordOwner_1813_1814" = bitcast [20 x i8]* %"$eq_recordOwner_1813" to i8* + %"$eq_call_1815" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1810", i32 20, i8* %"$$eq_sender_1811_1812", i8* %"$$eq_recordOwner_1813_1814") + store %TName_Bool* %"$eq_call_1815", %TName_Bool** %isOwner, align 8 + %"$gasrem_1817" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1818" = icmp ugt i64 1, %"$gasrem_1817" + br i1 %"$gascmp_1818", label %"$out_of_gas_1819", label %"$have_gas_1820" + +"$out_of_gas_1819": ; preds = %"$have_gas_1808" + call void @_out_of_gas() + br label %"$have_gas_1820" + +"$have_gas_1820": ; preds = %"$out_of_gas_1819", %"$have_gas_1808" + %"$consume_1821" = sub i64 %"$gasrem_1817", 1 + store i64 %"$consume_1821", i64* @_gasrem, align 8 %isApproved = alloca %TName_Bool*, align 8 - %"$gasrem_2251" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2252" = icmp ugt i64 2, %"$gasrem_2251" - br i1 %"$gascmp_2252", label %"$out_of_gas_2253", label %"$have_gas_2254" - -"$out_of_gas_2253": ; preds = %"$have_gas_2249" - call void @_out_of_gas() - br label %"$have_gas_2254" - -"$have_gas_2254": ; preds = %"$out_of_gas_2253", %"$have_gas_2249" - %"$consume_2255" = sub i64 %"$gasrem_2251", 2 - store i64 %"$consume_2255", i64* @_gasrem, align 8 - %"$maybeApproved_2257" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_tag_2258" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_2257", i32 0, i32 0 - %"$maybeApproved_tag_2259" = load i8, i8* %"$maybeApproved_tag_2258", align 1 - switch i8 %"$maybeApproved_tag_2259", label %"$empty_default_2260" [ - i8 1, label %"$None_2261" - i8 0, label %"$Some_2271" + %"$gasrem_1822" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1823" = icmp ugt i64 2, %"$gasrem_1822" + br i1 %"$gascmp_1823", label %"$out_of_gas_1824", label %"$have_gas_1825" + +"$out_of_gas_1824": ; preds = %"$have_gas_1820" + call void @_out_of_gas() + br label %"$have_gas_1825" + +"$have_gas_1825": ; preds = %"$out_of_gas_1824", %"$have_gas_1820" + %"$consume_1826" = sub i64 %"$gasrem_1822", 2 + store i64 %"$consume_1826", i64* @_gasrem, align 8 + %"$maybeApproved_tag_1828" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %3, i32 0, i32 0 + %"$maybeApproved_tag_1829" = load i8, i8* %"$maybeApproved_tag_1828", align 1 + switch i8 %"$maybeApproved_tag_1829", label %"$empty_default_1830" [ + i8 1, label %"$None_1831" + i8 0, label %"$Some_1841" ] -"$None_2261": ; preds = %"$have_gas_2254" - %"$maybeApproved_2262" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2257" to %CName_None_ByStr20* - %"$gasrem_2263" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2264" = icmp ugt i64 1, %"$gasrem_2263" - br i1 %"$gascmp_2264", label %"$out_of_gas_2265", label %"$have_gas_2266" - -"$out_of_gas_2265": ; preds = %"$None_2261" - call void @_out_of_gas() - br label %"$have_gas_2266" - -"$have_gas_2266": ; preds = %"$out_of_gas_2265", %"$None_2261" - %"$consume_2267" = sub i64 %"$gasrem_2263", 1 - store i64 %"$consume_2267", i64* @_gasrem, align 8 - %"$adtval_2268_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2268_salloc" = call i8* @_salloc(i8* %"$adtval_2268_load", i64 1) - %"$adtval_2268" = bitcast i8* %"$adtval_2268_salloc" to %CName_False* - %"$adtgep_2269" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2268", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2269", align 1 - %"$adtptr_2270" = bitcast %CName_False* %"$adtval_2268" to %TName_Bool* - store %TName_Bool* %"$adtptr_2270", %TName_Bool** %isApproved, align 8 - br label %"$matchsucc_2256" - -"$Some_2271": ; preds = %"$have_gas_2254" - %"$maybeApproved_2272" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2257" to %CName_Some_ByStr20* - %"$approved_gep_2273" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_2272", i32 0, i32 1 - %"$approved_load_2274" = load [20 x i8], [20 x i8]* %"$approved_gep_2273", align 1 +"$None_1831": ; preds = %"$have_gas_1825" + %"$maybeApproved_1832" = bitcast %TName_Option_ByStr20* %3 to %CName_None_ByStr20* + %"$gasrem_1833" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1834" = icmp ugt i64 1, %"$gasrem_1833" + br i1 %"$gascmp_1834", label %"$out_of_gas_1835", label %"$have_gas_1836" + +"$out_of_gas_1835": ; preds = %"$None_1831" + call void @_out_of_gas() + br label %"$have_gas_1836" + +"$have_gas_1836": ; preds = %"$out_of_gas_1835", %"$None_1831" + %"$consume_1837" = sub i64 %"$gasrem_1833", 1 + store i64 %"$consume_1837", i64* @_gasrem, align 8 + %"$adtval_1838_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1838_salloc" = call i8* @_salloc(i8* %"$adtval_1838_load", i64 1) + %"$adtval_1838" = bitcast i8* %"$adtval_1838_salloc" to %CName_False* + %"$adtgep_1839" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1838", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1839", align 1 + %"$adtptr_1840" = bitcast %CName_False* %"$adtval_1838" to %TName_Bool* + store %TName_Bool* %"$adtptr_1840", %TName_Bool** %isApproved, align 8 + br label %"$matchsucc_1827" + +"$Some_1841": ; preds = %"$have_gas_1825" + %"$maybeApproved_1842" = bitcast %TName_Option_ByStr20* %3 to %CName_Some_ByStr20* + %"$approved_gep_1843" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_1842", i32 0, i32 1 + %"$approved_load_1844" = load [20 x i8], [20 x i8]* %"$approved_gep_1843", align 1 %approved = alloca [20 x i8], align 1 - store [20 x i8] %"$approved_load_2274", [20 x i8]* %approved, align 1 - %"$gasrem_2275" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2276" = icmp ugt i64 20, %"$gasrem_2275" - br i1 %"$gascmp_2276", label %"$out_of_gas_2277", label %"$have_gas_2278" - -"$out_of_gas_2277": ; preds = %"$Some_2271" - call void @_out_of_gas() - br label %"$have_gas_2278" - -"$have_gas_2278": ; preds = %"$out_of_gas_2277", %"$Some_2271" - %"$consume_2279" = sub i64 %"$gasrem_2275", 20 - store i64 %"$consume_2279", i64* @_gasrem, align 8 - %"$execptr_load_2280" = load i8*, i8** @_execptr, align 8 - %"$eq_sender_2281" = alloca [20 x i8], align 1 - %"$sender_2282" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_2282", [20 x i8]* %"$eq_sender_2281", align 1 - %"$$eq_sender_2281_2283" = bitcast [20 x i8]* %"$eq_sender_2281" to i8* - %"$eq_approved_2284" = alloca [20 x i8], align 1 - %"$approved_2285" = load [20 x i8], [20 x i8]* %approved, align 1 - store [20 x i8] %"$approved_2285", [20 x i8]* %"$eq_approved_2284", align 1 - %"$$eq_approved_2284_2286" = bitcast [20 x i8]* %"$eq_approved_2284" to i8* - %"$eq_call_2287" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_2280", i32 20, i8* %"$$eq_sender_2281_2283", i8* %"$$eq_approved_2284_2286") - store %TName_Bool* %"$eq_call_2287", %TName_Bool** %isApproved, align 8 - br label %"$matchsucc_2256" - -"$empty_default_2260": ; preds = %"$have_gas_2254" - br label %"$matchsucc_2256" - -"$matchsucc_2256": ; preds = %"$have_gas_2278", %"$have_gas_2266", %"$empty_default_2260" - %"$gasrem_2289" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2290" = icmp ugt i64 1, %"$gasrem_2289" - br i1 %"$gascmp_2290", label %"$out_of_gas_2291", label %"$have_gas_2292" - -"$out_of_gas_2291": ; preds = %"$matchsucc_2256" - call void @_out_of_gas() - br label %"$have_gas_2292" - -"$have_gas_2292": ; preds = %"$out_of_gas_2291", %"$matchsucc_2256" - %"$consume_2293" = sub i64 %"$gasrem_2289", 1 - store i64 %"$consume_2293", i64* @_gasrem, align 8 + store [20 x i8] %"$approved_load_1844", [20 x i8]* %approved, align 1 + %"$gasrem_1845" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1846" = icmp ugt i64 20, %"$gasrem_1845" + br i1 %"$gascmp_1846", label %"$out_of_gas_1847", label %"$have_gas_1848" + +"$out_of_gas_1847": ; preds = %"$Some_1841" + call void @_out_of_gas() + br label %"$have_gas_1848" + +"$have_gas_1848": ; preds = %"$out_of_gas_1847", %"$Some_1841" + %"$consume_1849" = sub i64 %"$gasrem_1845", 20 + store i64 %"$consume_1849", i64* @_gasrem, align 8 + %"$execptr_load_1850" = load i8*, i8** @_execptr, align 8 + %"$eq_sender_1851" = alloca [20 x i8], align 1 + store [20 x i8] %sender, [20 x i8]* %"$eq_sender_1851", align 1 + %"$$eq_sender_1851_1852" = bitcast [20 x i8]* %"$eq_sender_1851" to i8* + %"$eq_approved_1853" = alloca [20 x i8], align 1 + %"$approved_1854" = load [20 x i8], [20 x i8]* %approved, align 1 + store [20 x i8] %"$approved_1854", [20 x i8]* %"$eq_approved_1853", align 1 + %"$$eq_approved_1853_1855" = bitcast [20 x i8]* %"$eq_approved_1853" to i8* + %"$eq_call_1856" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1850", i32 20, i8* %"$$eq_sender_1851_1852", i8* %"$$eq_approved_1853_1855") + store %TName_Bool* %"$eq_call_1856", %TName_Bool** %isApproved, align 8 + br label %"$matchsucc_1827" + +"$empty_default_1830": ; preds = %"$have_gas_1825" + br label %"$matchsucc_1827" + +"$matchsucc_1827": ; preds = %"$have_gas_1848", %"$have_gas_1836", %"$empty_default_1830" + %"$gasrem_1858" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1859" = icmp ugt i64 1, %"$gasrem_1858" + br i1 %"$gascmp_1859", label %"$out_of_gas_1860", label %"$have_gas_1861" + +"$out_of_gas_1860": ; preds = %"$matchsucc_1827" + call void @_out_of_gas() + br label %"$have_gas_1861" + +"$have_gas_1861": ; preds = %"$out_of_gas_1860", %"$matchsucc_1827" + %"$consume_1862" = sub i64 %"$gasrem_1858", 1 + store i64 %"$consume_1862", i64* @_gasrem, align 8 %isOperator = alloca %TName_Bool*, align 8 - %"$gasrem_2294" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2295" = icmp ugt i64 2, %"$gasrem_2294" - br i1 %"$gascmp_2295", label %"$out_of_gas_2296", label %"$have_gas_2297" - -"$out_of_gas_2296": ; preds = %"$have_gas_2292" - call void @_out_of_gas() - br label %"$have_gas_2297" - -"$have_gas_2297": ; preds = %"$out_of_gas_2296", %"$have_gas_2292" - %"$consume_2298" = sub i64 %"$gasrem_2294", 2 - store i64 %"$consume_2298", i64* @_gasrem, align 8 - %"$maybeOperators_tag_2300" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %1, i32 0, i32 0 - %"$maybeOperators_tag_2301" = load i8, i8* %"$maybeOperators_tag_2300", align 1 - switch i8 %"$maybeOperators_tag_2301", label %"$empty_default_2302" [ - i8 1, label %"$None_2303" - i8 0, label %"$Some_2313" + %"$gasrem_1863" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1864" = icmp ugt i64 2, %"$gasrem_1863" + br i1 %"$gascmp_1864", label %"$out_of_gas_1865", label %"$have_gas_1866" + +"$out_of_gas_1865": ; preds = %"$have_gas_1861" + call void @_out_of_gas() + br label %"$have_gas_1866" + +"$have_gas_1866": ; preds = %"$out_of_gas_1865", %"$have_gas_1861" + %"$consume_1867" = sub i64 %"$gasrem_1863", 2 + store i64 %"$consume_1867", i64* @_gasrem, align 8 + %"$maybeOperators_tag_1869" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %4, i32 0, i32 0 + %"$maybeOperators_tag_1870" = load i8, i8* %"$maybeOperators_tag_1869", align 1 + switch i8 %"$maybeOperators_tag_1870", label %"$empty_default_1871" [ + i8 1, label %"$None_1872" + i8 0, label %"$Some_1882" ] -"$None_2303": ; preds = %"$have_gas_2297" - %"$maybeOperators_2304" = bitcast %"TName_Option_List_(ByStr20)"* %1 to %"CName_None_List_(ByStr20)"* - %"$gasrem_2305" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2306" = icmp ugt i64 1, %"$gasrem_2305" - br i1 %"$gascmp_2306", label %"$out_of_gas_2307", label %"$have_gas_2308" - -"$out_of_gas_2307": ; preds = %"$None_2303" - call void @_out_of_gas() - br label %"$have_gas_2308" - -"$have_gas_2308": ; preds = %"$out_of_gas_2307", %"$None_2303" - %"$consume_2309" = sub i64 %"$gasrem_2305", 1 - store i64 %"$consume_2309", i64* @_gasrem, align 8 - %"$adtval_2310_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2310_salloc" = call i8* @_salloc(i8* %"$adtval_2310_load", i64 1) - %"$adtval_2310" = bitcast i8* %"$adtval_2310_salloc" to %CName_False* - %"$adtgep_2311" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_2310", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2311", align 1 - %"$adtptr_2312" = bitcast %CName_False* %"$adtval_2310" to %TName_Bool* - store %TName_Bool* %"$adtptr_2312", %TName_Bool** %isOperator, align 8 - br label %"$matchsucc_2299" - -"$Some_2313": ; preds = %"$have_gas_2297" - %"$maybeOperators_2314" = bitcast %"TName_Option_List_(ByStr20)"* %1 to %"CName_Some_List_(ByStr20)"* - %"$operators_gep_2315" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_2314", i32 0, i32 1 - %"$operators_load_2316" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$operators_gep_2315", align 8 +"$None_1872": ; preds = %"$have_gas_1866" + %"$maybeOperators_1873" = bitcast %"TName_Option_List_(ByStr20)"* %4 to %"CName_None_List_(ByStr20)"* + %"$gasrem_1874" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1875" = icmp ugt i64 1, %"$gasrem_1874" + br i1 %"$gascmp_1875", label %"$out_of_gas_1876", label %"$have_gas_1877" + +"$out_of_gas_1876": ; preds = %"$None_1872" + call void @_out_of_gas() + br label %"$have_gas_1877" + +"$have_gas_1877": ; preds = %"$out_of_gas_1876", %"$None_1872" + %"$consume_1878" = sub i64 %"$gasrem_1874", 1 + store i64 %"$consume_1878", i64* @_gasrem, align 8 + %"$adtval_1879_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1879_salloc" = call i8* @_salloc(i8* %"$adtval_1879_load", i64 1) + %"$adtval_1879" = bitcast i8* %"$adtval_1879_salloc" to %CName_False* + %"$adtgep_1880" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1879", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1880", align 1 + %"$adtptr_1881" = bitcast %CName_False* %"$adtval_1879" to %TName_Bool* + store %TName_Bool* %"$adtptr_1881", %TName_Bool** %isOperator, align 8 + br label %"$matchsucc_1868" + +"$Some_1882": ; preds = %"$have_gas_1866" + %"$maybeOperators_1883" = bitcast %"TName_Option_List_(ByStr20)"* %4 to %"CName_Some_List_(ByStr20)"* + %"$operators_gep_1884" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_1883", i32 0, i32 1 + %"$operators_load_1885" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$operators_gep_1884", align 8 %operators = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$operators_load_2316", %TName_List_ByStr20** %operators, align 8 - %"$gasrem_2317" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2318" = icmp ugt i64 1, %"$gasrem_2317" - br i1 %"$gascmp_2318", label %"$out_of_gas_2319", label %"$have_gas_2320" - -"$out_of_gas_2319": ; preds = %"$Some_2313" - call void @_out_of_gas() - br label %"$have_gas_2320" - -"$have_gas_2320": ; preds = %"$out_of_gas_2319", %"$Some_2313" - %"$consume_2321" = sub i64 %"$gasrem_2317", 1 - store i64 %"$consume_2321", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Contains_39" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_2322" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$ud-registry.listByStr20Contains_fptr_2323" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2322", 0 - %"$ud-registry.listByStr20Contains_envptr_2324" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2322", 1 - %"$operators_2325" = load %TName_List_ByStr20*, %TName_List_ByStr20** %operators, align 8 - %"$ud-registry.listByStr20Contains_call_2326" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_2323"(i8* %"$ud-registry.listByStr20Contains_envptr_2324", %TName_List_ByStr20* %"$operators_2325") - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_2326", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_39", align 8 - %"$ud-registry.listByStr20Contains_40" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_39_2327" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_39", align 8 - %"$$ud-registry.listByStr20Contains_39_fptr_2328" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_39_2327", 0 - %"$$ud-registry.listByStr20Contains_39_envptr_2329" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_39_2327", 1 - %"$$ud-registry.listByStr20Contains_39_sender_2330" = alloca [20 x i8], align 1 - %"$sender_2331" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_2331", [20 x i8]* %"$$ud-registry.listByStr20Contains_39_sender_2330", align 1 - %"$$ud-registry.listByStr20Contains_39_call_2332" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_39_fptr_2328"(i8* %"$$ud-registry.listByStr20Contains_39_envptr_2329", [20 x i8]* %"$$ud-registry.listByStr20Contains_39_sender_2330") - store %TName_Bool* %"$$ud-registry.listByStr20Contains_39_call_2332", %TName_Bool** %"$ud-registry.listByStr20Contains_40", align 8 - %"$$ud-registry.listByStr20Contains_40_2333" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_40", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_40_2333", %TName_Bool** %isOperator, align 8 - br label %"$matchsucc_2299" - -"$empty_default_2302": ; preds = %"$have_gas_2297" - br label %"$matchsucc_2299" - -"$matchsucc_2299": ; preds = %"$have_gas_2320", %"$have_gas_2308", %"$empty_default_2302" - %"$gasrem_2334" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2335" = icmp ugt i64 1, %"$gasrem_2334" - br i1 %"$gascmp_2335", label %"$out_of_gas_2336", label %"$have_gas_2337" - -"$out_of_gas_2336": ; preds = %"$matchsucc_2299" - call void @_out_of_gas() - br label %"$have_gas_2337" - -"$have_gas_2337": ; preds = %"$out_of_gas_2336", %"$matchsucc_2299" - %"$consume_2338" = sub i64 %"$gasrem_2334", 1 - store i64 %"$consume_2338", i64* @_gasrem, align 8 + store %TName_List_ByStr20* %"$operators_load_1885", %TName_List_ByStr20** %operators, align 8 + %"$gasrem_1886" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1887" = icmp ugt i64 1, %"$gasrem_1886" + br i1 %"$gascmp_1887", label %"$out_of_gas_1888", label %"$have_gas_1889" + +"$out_of_gas_1888": ; preds = %"$Some_1882" + call void @_out_of_gas() + br label %"$have_gas_1889" + +"$have_gas_1889": ; preds = %"$out_of_gas_1888", %"$Some_1882" + %"$consume_1890" = sub i64 %"$gasrem_1886", 1 + store i64 %"$consume_1890", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Contains_1891" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %ud-registry.listByStr20Contains, align 8 + %"$ud-registry.listByStr20Contains_fptr_1892" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_1891", 0 + %"$ud-registry.listByStr20Contains_envptr_1893" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_1891", 1 + %"$operators_1894" = load %TName_List_ByStr20*, %TName_List_ByStr20** %operators, align 8 + %"$ud-registry.listByStr20Contains_sender_1895" = alloca [20 x i8], align 1 + store [20 x i8] %sender, [20 x i8]* %"$ud-registry.listByStr20Contains_sender_1895", align 1 + %"$ud-registry.listByStr20Contains_call_1896" = call %TName_Bool* %"$ud-registry.listByStr20Contains_fptr_1892"(i8* %"$ud-registry.listByStr20Contains_envptr_1893", %TName_List_ByStr20* %"$operators_1894", [20 x i8]* %"$ud-registry.listByStr20Contains_sender_1895") + store %TName_Bool* %"$ud-registry.listByStr20Contains_call_1896", %TName_Bool** %isOperator, align 8 + br label %"$matchsucc_1868" + +"$empty_default_1871": ; preds = %"$have_gas_1866" + br label %"$matchsucc_1868" + +"$matchsucc_1868": ; preds = %"$have_gas_1889", %"$have_gas_1877", %"$empty_default_1871" + %"$gasrem_1897" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1898" = icmp ugt i64 1, %"$gasrem_1897" + br i1 %"$gascmp_1898", label %"$out_of_gas_1899", label %"$have_gas_1900" + +"$out_of_gas_1899": ; preds = %"$matchsucc_1868" + call void @_out_of_gas() + br label %"$have_gas_1900" + +"$have_gas_1900": ; preds = %"$out_of_gas_1899", %"$matchsucc_1868" + %"$consume_1901" = sub i64 %"$gasrem_1897", 1 + store i64 %"$consume_1901", i64* @_gasrem, align 8 %b1 = alloca %TName_Bool*, align 8 - %"$gasrem_2339" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2340" = icmp ugt i64 1, %"$gasrem_2339" - br i1 %"$gascmp_2340", label %"$out_of_gas_2341", label %"$have_gas_2342" - -"$out_of_gas_2341": ; preds = %"$have_gas_2337" - call void @_out_of_gas() - br label %"$have_gas_2342" - -"$have_gas_2342": ; preds = %"$out_of_gas_2341", %"$have_gas_2337" - %"$consume_2343" = sub i64 %"$gasrem_2339", 1 - store i64 %"$consume_2343", i64* @_gasrem, align 8 - %"$BoolUtils.orb_41" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_2344" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$BoolUtils.orb_fptr_2345" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2344", 0 - %"$BoolUtils.orb_envptr_2346" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2344", 1 - %"$isOwner_2347" = load %TName_Bool*, %TName_Bool** %isOwner, align 8 - %"$BoolUtils.orb_call_2348" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_2345"(i8* %"$BoolUtils.orb_envptr_2346", %TName_Bool* %"$isOwner_2347") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_2348", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_41", align 8 - %"$BoolUtils.orb_42" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_41_2349" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_41", align 8 - %"$$BoolUtils.orb_41_fptr_2350" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_41_2349", 0 - %"$$BoolUtils.orb_41_envptr_2351" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_41_2349", 1 - %"$isApproved_2352" = load %TName_Bool*, %TName_Bool** %isApproved, align 8 - %"$$BoolUtils.orb_41_call_2353" = call %TName_Bool* %"$$BoolUtils.orb_41_fptr_2350"(i8* %"$$BoolUtils.orb_41_envptr_2351", %TName_Bool* %"$isApproved_2352") - store %TName_Bool* %"$$BoolUtils.orb_41_call_2353", %TName_Bool** %"$BoolUtils.orb_42", align 8 - %"$$BoolUtils.orb_42_2354" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_42", align 8 - store %TName_Bool* %"$$BoolUtils.orb_42_2354", %TName_Bool** %b1, align 8 - %"$gasrem_2355" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2356" = icmp ugt i64 1, %"$gasrem_2355" - br i1 %"$gascmp_2356", label %"$out_of_gas_2357", label %"$have_gas_2358" - -"$out_of_gas_2357": ; preds = %"$have_gas_2342" - call void @_out_of_gas() - br label %"$have_gas_2358" - -"$have_gas_2358": ; preds = %"$out_of_gas_2357", %"$have_gas_2342" - %"$consume_2359" = sub i64 %"$gasrem_2355", 1 - store i64 %"$consume_2359", i64* @_gasrem, align 8 - %"$BoolUtils.orb_43" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_2360" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$BoolUtils.orb_fptr_2361" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2360", 0 - %"$BoolUtils.orb_envptr_2362" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2360", 1 - %"$b1_2363" = load %TName_Bool*, %TName_Bool** %b1, align 8 - %"$BoolUtils.orb_call_2364" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_2361"(i8* %"$BoolUtils.orb_envptr_2362", %TName_Bool* %"$b1_2363") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_2364", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_43", align 8 - %"$BoolUtils.orb_44" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_43_2365" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_43", align 8 - %"$$BoolUtils.orb_43_fptr_2366" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_43_2365", 0 - %"$$BoolUtils.orb_43_envptr_2367" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_43_2365", 1 - %"$isOperator_2368" = load %TName_Bool*, %TName_Bool** %isOperator, align 8 - %"$$BoolUtils.orb_43_call_2369" = call %TName_Bool* %"$$BoolUtils.orb_43_fptr_2366"(i8* %"$$BoolUtils.orb_43_envptr_2367", %TName_Bool* %"$isOperator_2368") - store %TName_Bool* %"$$BoolUtils.orb_43_call_2369", %TName_Bool** %"$BoolUtils.orb_44", align 8 - %"$$BoolUtils.orb_44_2370" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_44", align 8 - store %TName_Bool* %"$$BoolUtils.orb_44_2370", %TName_Bool** %"$retval_215", align 8 - %"$$retval_215_2371" = load %TName_Bool*, %TName_Bool** %"$retval_215", align 8 - ret %TName_Bool* %"$$retval_215_2371" + %"$gasrem_1902" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1903" = icmp ugt i64 1, %"$gasrem_1902" + br i1 %"$gascmp_1903", label %"$out_of_gas_1904", label %"$have_gas_1905" + +"$out_of_gas_1904": ; preds = %"$have_gas_1900" + call void @_out_of_gas() + br label %"$have_gas_1905" + +"$have_gas_1905": ; preds = %"$out_of_gas_1904", %"$have_gas_1900" + %"$consume_1906" = sub i64 %"$gasrem_1902", 1 + store i64 %"$consume_1906", i64* @_gasrem, align 8 + %"$BoolUtils.orb_1907" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 + %"$BoolUtils.orb_fptr_1908" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_1907", 0 + %"$BoolUtils.orb_envptr_1909" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_1907", 1 + %"$isOwner_1910" = load %TName_Bool*, %TName_Bool** %isOwner, align 8 + %"$isApproved_1911" = load %TName_Bool*, %TName_Bool** %isApproved, align 8 + %"$BoolUtils.orb_call_1912" = call %TName_Bool* %"$BoolUtils.orb_fptr_1908"(i8* %"$BoolUtils.orb_envptr_1909", %TName_Bool* %"$isOwner_1910", %TName_Bool* %"$isApproved_1911") + store %TName_Bool* %"$BoolUtils.orb_call_1912", %TName_Bool** %b1, align 8 + %"$gasrem_1913" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1914" = icmp ugt i64 1, %"$gasrem_1913" + br i1 %"$gascmp_1914", label %"$out_of_gas_1915", label %"$have_gas_1916" + +"$out_of_gas_1915": ; preds = %"$have_gas_1905" + call void @_out_of_gas() + br label %"$have_gas_1916" + +"$have_gas_1916": ; preds = %"$out_of_gas_1915", %"$have_gas_1905" + %"$consume_1917" = sub i64 %"$gasrem_1913", 1 + store i64 %"$consume_1917", i64* @_gasrem, align 8 + %"$BoolUtils.orb_1918" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 + %"$BoolUtils.orb_fptr_1919" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_1918", 0 + %"$BoolUtils.orb_envptr_1920" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_1918", 1 + %"$b1_1921" = load %TName_Bool*, %TName_Bool** %b1, align 8 + %"$isOperator_1922" = load %TName_Bool*, %TName_Bool** %isOperator, align 8 + %"$BoolUtils.orb_call_1923" = call %TName_Bool* %"$BoolUtils.orb_fptr_1919"(i8* %"$BoolUtils.orb_envptr_1920", %TName_Bool* %"$b1_1921", %TName_Bool* %"$isOperator_1922") + store %TName_Bool* %"$BoolUtils.orb_call_1923", %TName_Bool** %"$retval_120", align 8 + %"$$retval_120_1924" = load %TName_Bool*, %TName_Bool** %"$retval_120", align 8 + ret %TName_Bool* %"$$retval_120_1924" } -define internal { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } @"$fundef_212"(%"$$fundef_212_env_406"* %0, %TName_Option_ByStr20* %1) { +define internal void @"$fundef_121"(%"$$fundef_121_env_289"* %0, [32 x i8]* %1, [32 x i8]* %2, %String %3) { entry: - %"$$fundef_212_env_BoolUtils.orb_2190" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_2191" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_212_env_BoolUtils.orb_2190", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_2191", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$$fundef_212_env_recordOwner_2192" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %0, i32 0, i32 1 - %"$recordOwner_envload_2193" = load [20 x i8], [20 x i8]* %"$$fundef_212_env_recordOwner_2192", align 1 - %recordOwner = alloca [20 x i8], align 1 - store [20 x i8] %"$recordOwner_envload_2193", [20 x i8]* %recordOwner, align 1 - %"$$fundef_212_env_sender_2194" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %0, i32 0, i32 2 - %"$sender_envload_2195" = load [20 x i8], [20 x i8]* %"$$fundef_212_env_sender_2194", align 1 - %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_2195", [20 x i8]* %sender, align 1 - %"$$fundef_212_env_ud-registry.listByStr20Contains_2196" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %0, i32 0, i32 3 - %"$ud-registry.listByStr20Contains_envload_2197" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_212_env_ud-registry.listByStr20Contains_2196", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_2197", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_213" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$gasrem_2198" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2199" = icmp ugt i64 1, %"$gasrem_2198" - br i1 %"$gascmp_2199", label %"$out_of_gas_2200", label %"$have_gas_2201" - -"$out_of_gas_2200": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2201" - -"$have_gas_2201": ; preds = %"$out_of_gas_2200", %entry - %"$consume_2202" = sub i64 %"$gasrem_2198", 1 - store i64 %"$consume_2202", i64* @_gasrem, align 8 - %"$$fundef_214_envp_2203_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_214_envp_2203_salloc" = call i8* @_salloc(i8* %"$$fundef_214_envp_2203_load", i64 80) - %"$$fundef_214_envp_2203" = bitcast i8* %"$$fundef_214_envp_2203_salloc" to %"$$fundef_214_env_405"* - %"$$fundef_214_env_voidp_2205" = bitcast %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203" to i8* - %"$$fundef_214_cloval_2206" = insertvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)* bitcast (%TName_Bool* (%"$$fundef_214_env_405"*, %"TName_Option_List_(ByStr20)"*)* @"$fundef_214" to %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*), i8* undef }, i8* %"$$fundef_214_env_voidp_2205", 1 - %"$$fundef_214_env_BoolUtils.orb_2207" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203", i32 0, i32 0 - %"$BoolUtils.orb_2208" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2208", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_214_env_BoolUtils.orb_2207", align 8 - %"$$fundef_214_env_maybeApproved_2209" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203", i32 0, i32 1 - store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_214_env_maybeApproved_2209", align 8 - %"$$fundef_214_env_recordOwner_2210" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203", i32 0, i32 2 - %"$recordOwner_2211" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_2211", [20 x i8]* %"$$fundef_214_env_recordOwner_2210", align 1 - %"$$fundef_214_env_sender_2212" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203", i32 0, i32 3 - %"$sender_2213" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_2213", [20 x i8]* %"$$fundef_214_env_sender_2212", align 1 - %"$$fundef_214_env_ud-registry.listByStr20Contains_2214" = getelementptr inbounds %"$$fundef_214_env_405", %"$$fundef_214_env_405"* %"$$fundef_214_envp_2203", i32 0, i32 4 - %"$ud-registry.listByStr20Contains_2215" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2215", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_214_env_ud-registry.listByStr20Contains_2214", align 8 - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$fundef_214_cloval_2206", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$retval_213", align 8 - %"$$retval_213_2216" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$retval_213", align 8 - ret { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$retval_213_2216" -} - -define internal { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_210"(%"$$fundef_210_env_407"* %0, [20 x i8]* %1) { -entry: - %recordOwner = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_210_env_BoolUtils.orb_2167" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_2168" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_210_env_BoolUtils.orb_2167", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_2168", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$$fundef_210_env_sender_2169" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %0, i32 0, i32 1 - %"$sender_envload_2170" = load [20 x i8], [20 x i8]* %"$$fundef_210_env_sender_2169", align 1 - %sender = alloca [20 x i8], align 1 - store [20 x i8] %"$sender_envload_2170", [20 x i8]* %sender, align 1 - %"$$fundef_210_env_ud-registry.listByStr20Contains_2171" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %0, i32 0, i32 2 - %"$ud-registry.listByStr20Contains_envload_2172" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_210_env_ud-registry.listByStr20Contains_2171", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_2172", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_211" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_2173" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2174" = icmp ugt i64 1, %"$gasrem_2173" - br i1 %"$gascmp_2174", label %"$out_of_gas_2175", label %"$have_gas_2176" - -"$out_of_gas_2175": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2176" - -"$have_gas_2176": ; preds = %"$out_of_gas_2175", %entry - %"$consume_2177" = sub i64 %"$gasrem_2173", 1 - store i64 %"$consume_2177", i64* @_gasrem, align 8 - %"$$fundef_212_envp_2178_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_212_envp_2178_salloc" = call i8* @_salloc(i8* %"$$fundef_212_envp_2178_load", i64 72) - %"$$fundef_212_envp_2178" = bitcast i8* %"$$fundef_212_envp_2178_salloc" to %"$$fundef_212_env_406"* - %"$$fundef_212_env_voidp_2180" = bitcast %"$$fundef_212_env_406"* %"$$fundef_212_envp_2178" to i8* - %"$$fundef_212_cloval_2181" = insertvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)* bitcast ({ %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (%"$$fundef_212_env_406"*, %TName_Option_ByStr20*)* @"$fundef_212" to { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_212_env_voidp_2180", 1 - %"$$fundef_212_env_BoolUtils.orb_2182" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %"$$fundef_212_envp_2178", i32 0, i32 0 - %"$BoolUtils.orb_2183" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2183", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_212_env_BoolUtils.orb_2182", align 8 - %"$$fundef_212_env_recordOwner_2184" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %"$$fundef_212_envp_2178", i32 0, i32 1 - store [20 x i8] %recordOwner, [20 x i8]* %"$$fundef_212_env_recordOwner_2184", align 1 - %"$$fundef_212_env_sender_2185" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %"$$fundef_212_envp_2178", i32 0, i32 2 - %"$sender_2186" = load [20 x i8], [20 x i8]* %sender, align 1 - store [20 x i8] %"$sender_2186", [20 x i8]* %"$$fundef_212_env_sender_2185", align 1 - %"$$fundef_212_env_ud-registry.listByStr20Contains_2187" = getelementptr inbounds %"$$fundef_212_env_406", %"$$fundef_212_env_406"* %"$$fundef_212_envp_2178", i32 0, i32 3 - %"$ud-registry.listByStr20Contains_2188" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2188", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_212_env_ud-registry.listByStr20Contains_2187", align 8 - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_212_cloval_2181", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_211", align 8 - %"$$retval_211_2189" = load { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_211", align 8 - ret { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_211_2189" -} - -define internal { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_208"(%"$$fundef_208_env_408"* %0, [20 x i8]* %1) { -entry: - %sender = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_208_env_BoolUtils.orb_2148" = getelementptr inbounds %"$$fundef_208_env_408", %"$$fundef_208_env_408"* %0, i32 0, i32 0 - %"$BoolUtils.orb_envload_2149" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_208_env_BoolUtils.orb_2148", align 8 - %BoolUtils.orb = alloca { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_envload_2149", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - %"$$fundef_208_env_ud-registry.listByStr20Contains_2150" = getelementptr inbounds %"$$fundef_208_env_408", %"$$fundef_208_env_408"* %0, i32 0, i32 1 - %"$ud-registry.listByStr20Contains_envload_2151" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_208_env_ud-registry.listByStr20Contains_2150", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_2151", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_209" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_2152" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2153" = icmp ugt i64 1, %"$gasrem_2152" - br i1 %"$gascmp_2153", label %"$out_of_gas_2154", label %"$have_gas_2155" - -"$out_of_gas_2154": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2155" - -"$have_gas_2155": ; preds = %"$out_of_gas_2154", %entry - %"$consume_2156" = sub i64 %"$gasrem_2152", 1 - store i64 %"$consume_2156", i64* @_gasrem, align 8 - %"$$fundef_210_envp_2157_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_210_envp_2157_salloc" = call i8* @_salloc(i8* %"$$fundef_210_envp_2157_load", i64 56) - %"$$fundef_210_envp_2157" = bitcast i8* %"$$fundef_210_envp_2157_salloc" to %"$$fundef_210_env_407"* - %"$$fundef_210_env_voidp_2159" = bitcast %"$$fundef_210_env_407"* %"$$fundef_210_envp_2157" to i8* - %"$$fundef_210_cloval_2160" = insertvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (%"$$fundef_210_env_407"*, [20 x i8]*)* @"$fundef_210" to { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_210_env_voidp_2159", 1 - %"$$fundef_210_env_BoolUtils.orb_2161" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %"$$fundef_210_envp_2157", i32 0, i32 0 - %"$BoolUtils.orb_2162" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2162", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_210_env_BoolUtils.orb_2161", align 8 - %"$$fundef_210_env_sender_2163" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %"$$fundef_210_envp_2157", i32 0, i32 1 - store [20 x i8] %sender, [20 x i8]* %"$$fundef_210_env_sender_2163", align 1 - %"$$fundef_210_env_ud-registry.listByStr20Contains_2164" = getelementptr inbounds %"$$fundef_210_env_407", %"$$fundef_210_env_407"* %"$$fundef_210_envp_2157", i32 0, i32 2 - %"$ud-registry.listByStr20Contains_2165" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2165", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_210_env_ud-registry.listByStr20Contains_2164", align 8 - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_210_cloval_2160", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_209", align 8 - %"$$retval_209_2166" = load { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_209", align 8 - ret { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_209_2166" -} - -define internal void @"$fundef_218"(%"$$fundef_218_env_409"* %0, [32 x i8]* %1, %String %2) { -entry: - %"$$fundef_218_env_parent_2080" = getelementptr inbounds %"$$fundef_218_env_409", %"$$fundef_218_env_409"* %0, i32 0, i32 0 - %"$parent_envload_2081" = load [32 x i8], [32 x i8]* %"$$fundef_218_env_parent_2080", align 1 - %parent = alloca [32 x i8], align 1 - store [32 x i8] %"$parent_envload_2081", [32 x i8]* %parent, align 1 - %"$retval_219" = alloca [32 x i8], align 1 - %"$gasrem_2082" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2083" = icmp ugt i64 1, %"$gasrem_2082" - br i1 %"$gascmp_2083", label %"$out_of_gas_2084", label %"$have_gas_2085" - -"$out_of_gas_2084": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2085" - -"$have_gas_2085": ; preds = %"$out_of_gas_2084", %entry - %"$consume_2086" = sub i64 %"$gasrem_2082", 1 - store i64 %"$consume_2086", i64* @_gasrem, align 8 - %labelHash = alloca [32 x i8], align 1 - %"$_literal_cost_label_2087" = alloca %String, align 8 - store %String %2, %String* %"$_literal_cost_label_2087", align 8 - %"$$_literal_cost_label_2087_2088" = bitcast %String* %"$_literal_cost_label_2087" to i8* - %"$_literal_cost_call_2089" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_295", i8* %"$$_literal_cost_label_2087_2088") - %"$gasdivceil_2090" = urem i64 %"$_literal_cost_call_2089", 960 - %"$gasdivceil_2091" = udiv i64 %"$_literal_cost_call_2089", 960 - %"$gasdivceil_2092" = icmp eq i64 %"$gasdivceil_2090", 0 - %"$gasdivceil_2093" = add i64 %"$gasdivceil_2091", 1 - %"$gasdivceil_2094" = select i1 %"$gasdivceil_2092", i64 %"$gasdivceil_2091", i64 %"$gasdivceil_2093" - %"$gasrem_2095" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2096" = icmp ugt i64 %"$gasdivceil_2094", %"$gasrem_2095" - br i1 %"$gascmp_2096", label %"$out_of_gas_2097", label %"$have_gas_2098" - -"$out_of_gas_2097": ; preds = %"$have_gas_2085" - call void @_out_of_gas() - br label %"$have_gas_2098" - -"$have_gas_2098": ; preds = %"$out_of_gas_2097", %"$have_gas_2085" - %"$consume_2099" = sub i64 %"$gasrem_2095", %"$gasdivceil_2094" - store i64 %"$consume_2099", i64* @_gasrem, align 8 - %"$execptr_load_2100" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_label_2101" = alloca %String, align 8 - store %String %2, %String* %"$sha256hash_label_2101", align 8 - %"$$sha256hash_label_2101_2102" = bitcast %String* %"$sha256hash_label_2101" to i8* - %"$sha256hash_call_2103" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_2100", %_TyDescrTy_Typ* @"$TyDescr_String_295", i8* %"$$sha256hash_label_2101_2102") - %"$sha256hash_2105" = load [32 x i8], [32 x i8]* %"$sha256hash_call_2103", align 1 - store [32 x i8] %"$sha256hash_2105", [32 x i8]* %labelHash, align 1 - %"$gasrem_2106" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2107" = icmp ugt i64 1, %"$gasrem_2106" - br i1 %"$gascmp_2107", label %"$out_of_gas_2108", label %"$have_gas_2109" + %parent = load [32 x i8], [32 x i8]* %2, align 1 + %"$retval_122" = alloca [32 x i8], align 1 + %"$gasrem_1731" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1732" = icmp ugt i64 1, %"$gasrem_1731" + br i1 %"$gascmp_1732", label %"$out_of_gas_1733", label %"$have_gas_1734" -"$out_of_gas_2108": ; preds = %"$have_gas_2098" +"$out_of_gas_1733": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2109" + br label %"$have_gas_1734" -"$have_gas_2109": ; preds = %"$out_of_gas_2108", %"$have_gas_2098" - %"$consume_2110" = sub i64 %"$gasrem_2106", 1 - store i64 %"$consume_2110", i64* @_gasrem, align 8 +"$have_gas_1734": ; preds = %"$out_of_gas_1733", %entry + %"$consume_1735" = sub i64 %"$gasrem_1731", 1 + store i64 %"$consume_1735", i64* @_gasrem, align 8 + %labelHash = alloca [32 x i8], align 1 + %"$_literal_cost_label_1736" = alloca %String, align 8 + store %String %3, %String* %"$_literal_cost_label_1736", align 8 + %"$$_literal_cost_label_1736_1737" = bitcast %String* %"$_literal_cost_label_1736" to i8* + %"$_literal_cost_call_1738" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_String_178", i8* %"$$_literal_cost_label_1736_1737") + %"$gasdivceil_1739" = urem i64 %"$_literal_cost_call_1738", 960 + %"$gasdivceil_1740" = udiv i64 %"$_literal_cost_call_1738", 960 + %"$gasdivceil_1741" = icmp eq i64 %"$gasdivceil_1739", 0 + %"$gasdivceil_1742" = add i64 %"$gasdivceil_1740", 1 + %"$gasdivceil_1743" = select i1 %"$gasdivceil_1741", i64 %"$gasdivceil_1740", i64 %"$gasdivceil_1742" + %"$gasrem_1744" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1745" = icmp ugt i64 %"$gasdivceil_1743", %"$gasrem_1744" + br i1 %"$gascmp_1745", label %"$out_of_gas_1746", label %"$have_gas_1747" + +"$out_of_gas_1746": ; preds = %"$have_gas_1734" + call void @_out_of_gas() + br label %"$have_gas_1747" + +"$have_gas_1747": ; preds = %"$out_of_gas_1746", %"$have_gas_1734" + %"$consume_1748" = sub i64 %"$gasrem_1744", %"$gasdivceil_1743" + store i64 %"$consume_1748", i64* @_gasrem, align 8 + %"$execptr_load_1749" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_label_1750" = alloca %String, align 8 + store %String %3, %String* %"$sha256hash_label_1750", align 8 + %"$$sha256hash_label_1750_1751" = bitcast %String* %"$sha256hash_label_1750" to i8* + %"$sha256hash_call_1752" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_1749", %_TyDescrTy_Typ* @"$TyDescr_String_178", i8* %"$$sha256hash_label_1750_1751") + %"$sha256hash_1754" = load [32 x i8], [32 x i8]* %"$sha256hash_call_1752", align 1 + store [32 x i8] %"$sha256hash_1754", [32 x i8]* %labelHash, align 1 + %"$gasrem_1755" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1756" = icmp ugt i64 1, %"$gasrem_1755" + br i1 %"$gascmp_1756", label %"$out_of_gas_1757", label %"$have_gas_1758" + +"$out_of_gas_1757": ; preds = %"$have_gas_1747" + call void @_out_of_gas() + br label %"$have_gas_1758" + +"$have_gas_1758": ; preds = %"$out_of_gas_1757", %"$have_gas_1747" + %"$consume_1759" = sub i64 %"$gasrem_1755", 1 + store i64 %"$consume_1759", i64* @_gasrem, align 8 %nodeInput = alloca [64 x i8], align 1 - %"$gasrem_2111" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2112" = icmp ugt i64 64, %"$gasrem_2111" - br i1 %"$gascmp_2112", label %"$out_of_gas_2113", label %"$have_gas_2114" - -"$out_of_gas_2113": ; preds = %"$have_gas_2109" - call void @_out_of_gas() - br label %"$have_gas_2114" - -"$have_gas_2114": ; preds = %"$out_of_gas_2113", %"$have_gas_2109" - %"$consume_2115" = sub i64 %"$gasrem_2111", 64 - store i64 %"$consume_2115", i64* @_gasrem, align 8 - %"$execptr_load_2116" = load i8*, i8** @_execptr, align 8 - %"$concat_parent_2117" = alloca [32 x i8], align 1 - %"$parent_2118" = load [32 x i8], [32 x i8]* %parent, align 1 - store [32 x i8] %"$parent_2118", [32 x i8]* %"$concat_parent_2117", align 1 - %"$$concat_parent_2117_2119" = bitcast [32 x i8]* %"$concat_parent_2117" to i8* - %"$concat_labelHash_2120" = alloca [32 x i8], align 1 - %"$labelHash_2121" = load [32 x i8], [32 x i8]* %labelHash, align 1 - store [32 x i8] %"$labelHash_2121", [32 x i8]* %"$concat_labelHash_2120", align 1 - %"$$concat_labelHash_2120_2122" = bitcast [32 x i8]* %"$concat_labelHash_2120" to i8* - %"$concat_call_2123" = call i8* @_concat_ByStrX(i8* %"$execptr_load_2116", i32 32, i8* %"$$concat_parent_2117_2119", i32 32, i8* %"$$concat_labelHash_2120_2122") - %"$concat_2124" = bitcast i8* %"$concat_call_2123" to [64 x i8]* - %"$concat_2125" = load [64 x i8], [64 x i8]* %"$concat_2124", align 1 - store [64 x i8] %"$concat_2125", [64 x i8]* %nodeInput, align 1 - %"$_literal_cost_nodeInput_2126" = alloca [64 x i8], align 1 - %"$nodeInput_2127" = load [64 x i8], [64 x i8]* %nodeInput, align 1 - store [64 x i8] %"$nodeInput_2127", [64 x i8]* %"$_literal_cost_nodeInput_2126", align 1 - %"$$_literal_cost_nodeInput_2126_2128" = bitcast [64 x i8]* %"$_literal_cost_nodeInput_2126" to i8* - %"$_literal_cost_call_2129" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr64_307", i8* %"$$_literal_cost_nodeInput_2126_2128") - %"$gasdivceil_2130" = urem i64 %"$_literal_cost_call_2129", 960 - %"$gasdivceil_2131" = udiv i64 %"$_literal_cost_call_2129", 960 - %"$gasdivceil_2132" = icmp eq i64 %"$gasdivceil_2130", 0 - %"$gasdivceil_2133" = add i64 %"$gasdivceil_2131", 1 - %"$gasdivceil_2134" = select i1 %"$gasdivceil_2132", i64 %"$gasdivceil_2131", i64 %"$gasdivceil_2133" - %"$gasrem_2135" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2136" = icmp ugt i64 %"$gasdivceil_2134", %"$gasrem_2135" - br i1 %"$gascmp_2136", label %"$out_of_gas_2137", label %"$have_gas_2138" - -"$out_of_gas_2137": ; preds = %"$have_gas_2114" - call void @_out_of_gas() - br label %"$have_gas_2138" - -"$have_gas_2138": ; preds = %"$out_of_gas_2137", %"$have_gas_2114" - %"$consume_2139" = sub i64 %"$gasrem_2135", %"$gasdivceil_2134" - store i64 %"$consume_2139", i64* @_gasrem, align 8 - %"$execptr_load_2140" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_nodeInput_2141" = alloca [64 x i8], align 1 - %"$nodeInput_2142" = load [64 x i8], [64 x i8]* %nodeInput, align 1 - store [64 x i8] %"$nodeInput_2142", [64 x i8]* %"$sha256hash_nodeInput_2141", align 1 - %"$$sha256hash_nodeInput_2141_2143" = bitcast [64 x i8]* %"$sha256hash_nodeInput_2141" to i8* - %"$sha256hash_call_2144" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_2140", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_307", i8* %"$$sha256hash_nodeInput_2141_2143") - %"$sha256hash_2146" = load [32 x i8], [32 x i8]* %"$sha256hash_call_2144", align 1 - store [32 x i8] %"$sha256hash_2146", [32 x i8]* %"$retval_219", align 1 - %"$$retval_219_2147" = load [32 x i8], [32 x i8]* %"$retval_219", align 1 - store [32 x i8] %"$$retval_219_2147", [32 x i8]* %1, align 1 + %"$gasrem_1760" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1761" = icmp ugt i64 64, %"$gasrem_1760" + br i1 %"$gascmp_1761", label %"$out_of_gas_1762", label %"$have_gas_1763" + +"$out_of_gas_1762": ; preds = %"$have_gas_1758" + call void @_out_of_gas() + br label %"$have_gas_1763" + +"$have_gas_1763": ; preds = %"$out_of_gas_1762", %"$have_gas_1758" + %"$consume_1764" = sub i64 %"$gasrem_1760", 64 + store i64 %"$consume_1764", i64* @_gasrem, align 8 + %"$execptr_load_1765" = load i8*, i8** @_execptr, align 8 + %"$concat_parent_1766" = alloca [32 x i8], align 1 + store [32 x i8] %parent, [32 x i8]* %"$concat_parent_1766", align 1 + %"$$concat_parent_1766_1767" = bitcast [32 x i8]* %"$concat_parent_1766" to i8* + %"$concat_labelHash_1768" = alloca [32 x i8], align 1 + %"$labelHash_1769" = load [32 x i8], [32 x i8]* %labelHash, align 1 + store [32 x i8] %"$labelHash_1769", [32 x i8]* %"$concat_labelHash_1768", align 1 + %"$$concat_labelHash_1768_1770" = bitcast [32 x i8]* %"$concat_labelHash_1768" to i8* + %"$concat_call_1771" = call i8* @_concat_ByStrX(i8* %"$execptr_load_1765", i32 32, i8* %"$$concat_parent_1766_1767", i32 32, i8* %"$$concat_labelHash_1768_1770") + %"$concat_1772" = bitcast i8* %"$concat_call_1771" to [64 x i8]* + %"$concat_1773" = load [64 x i8], [64 x i8]* %"$concat_1772", align 1 + store [64 x i8] %"$concat_1773", [64 x i8]* %nodeInput, align 1 + %"$_literal_cost_nodeInput_1774" = alloca [64 x i8], align 1 + %"$nodeInput_1775" = load [64 x i8], [64 x i8]* %nodeInput, align 1 + store [64 x i8] %"$nodeInput_1775", [64 x i8]* %"$_literal_cost_nodeInput_1774", align 1 + %"$$_literal_cost_nodeInput_1774_1776" = bitcast [64 x i8]* %"$_literal_cost_nodeInput_1774" to i8* + %"$_literal_cost_call_1777" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr64_190", i8* %"$$_literal_cost_nodeInput_1774_1776") + %"$gasdivceil_1778" = urem i64 %"$_literal_cost_call_1777", 960 + %"$gasdivceil_1779" = udiv i64 %"$_literal_cost_call_1777", 960 + %"$gasdivceil_1780" = icmp eq i64 %"$gasdivceil_1778", 0 + %"$gasdivceil_1781" = add i64 %"$gasdivceil_1779", 1 + %"$gasdivceil_1782" = select i1 %"$gasdivceil_1780", i64 %"$gasdivceil_1779", i64 %"$gasdivceil_1781" + %"$gasrem_1783" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1784" = icmp ugt i64 %"$gasdivceil_1782", %"$gasrem_1783" + br i1 %"$gascmp_1784", label %"$out_of_gas_1785", label %"$have_gas_1786" + +"$out_of_gas_1785": ; preds = %"$have_gas_1763" + call void @_out_of_gas() + br label %"$have_gas_1786" + +"$have_gas_1786": ; preds = %"$out_of_gas_1785", %"$have_gas_1763" + %"$consume_1787" = sub i64 %"$gasrem_1783", %"$gasdivceil_1782" + store i64 %"$consume_1787", i64* @_gasrem, align 8 + %"$execptr_load_1788" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_nodeInput_1789" = alloca [64 x i8], align 1 + %"$nodeInput_1790" = load [64 x i8], [64 x i8]* %nodeInput, align 1 + store [64 x i8] %"$nodeInput_1790", [64 x i8]* %"$sha256hash_nodeInput_1789", align 1 + %"$$sha256hash_nodeInput_1789_1791" = bitcast [64 x i8]* %"$sha256hash_nodeInput_1789" to i8* + %"$sha256hash_call_1792" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_1788", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_190", i8* %"$$sha256hash_nodeInput_1789_1791") + %"$sha256hash_1794" = load [32 x i8], [32 x i8]* %"$sha256hash_call_1792", align 1 + store [32 x i8] %"$sha256hash_1794", [32 x i8]* %"$retval_122", align 1 + %"$$retval_122_1795" = load [32 x i8], [32 x i8]* %"$retval_122", align 1 + store [32 x i8] %"$$retval_122_1795", [32 x i8]* %1, align 1 ret void } -define internal { void (i8*, [32 x i8]*, %String)*, i8* } @"$fundef_216"(%"$$fundef_216_env_410"* %0, [32 x i8]* %1) { -entry: - %parent = load [32 x i8], [32 x i8]* %1, align 1 - %"$retval_217" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$gasrem_2069" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2070" = icmp ugt i64 1, %"$gasrem_2069" - br i1 %"$gascmp_2070", label %"$out_of_gas_2071", label %"$have_gas_2072" - -"$out_of_gas_2071": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2072" - -"$have_gas_2072": ; preds = %"$out_of_gas_2071", %entry - %"$consume_2073" = sub i64 %"$gasrem_2069", 1 - store i64 %"$consume_2073", i64* @_gasrem, align 8 - %"$$fundef_218_envp_2074_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_218_envp_2074_salloc" = call i8* @_salloc(i8* %"$$fundef_218_envp_2074_load", i64 32) - %"$$fundef_218_envp_2074" = bitcast i8* %"$$fundef_218_envp_2074_salloc" to %"$$fundef_218_env_409"* - %"$$fundef_218_env_voidp_2076" = bitcast %"$$fundef_218_env_409"* %"$$fundef_218_envp_2074" to i8* - %"$$fundef_218_cloval_2077" = insertvalue { void (i8*, [32 x i8]*, %String)*, i8* } { void (i8*, [32 x i8]*, %String)* bitcast (void (%"$$fundef_218_env_409"*, [32 x i8]*, %String)* @"$fundef_218" to void (i8*, [32 x i8]*, %String)*), i8* undef }, i8* %"$$fundef_218_env_voidp_2076", 1 - %"$$fundef_218_env_parent_2078" = getelementptr inbounds %"$$fundef_218_env_409", %"$$fundef_218_env_409"* %"$$fundef_218_envp_2074", i32 0, i32 0 - store [32 x i8] %parent, [32 x i8]* %"$$fundef_218_env_parent_2078", align 1 - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$$fundef_218_cloval_2077", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$retval_217", align 8 - %"$$retval_217_2079" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$retval_217", align 8 - ret { void (i8*, [32 x i8]*, %String)*, i8* } %"$$retval_217_2079" -} - -define internal void @"$fundef_220"(%"$$fundef_220_env_411"* %0, [20 x i8]* %1, %TName_Option_ud-registry.Record* %2) { +define internal void @"$fundef_123"(%"$$fundef_123_env_290"* %0, [20 x i8]* %1, %TName_Option_ud-registry.Record* %2) { entry: - %"$$fundef_220_env_ud-registry.zeroByStr20_2023" = getelementptr inbounds %"$$fundef_220_env_411", %"$$fundef_220_env_411"* %0, i32 0, i32 0 - %"$ud-registry.zeroByStr20_envload_2024" = load [20 x i8], [20 x i8]* %"$$fundef_220_env_ud-registry.zeroByStr20_2023", align 1 + %"$$fundef_123_env_ud-registry.zeroByStr20_1685" = getelementptr inbounds %"$$fundef_123_env_290", %"$$fundef_123_env_290"* %0, i32 0, i32 0 + %"$ud-registry.zeroByStr20_envload_1686" = load [20 x i8], [20 x i8]* %"$$fundef_123_env_ud-registry.zeroByStr20_1685", align 1 %ud-registry.zeroByStr20 = alloca [20 x i8], align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_envload_2024", [20 x i8]* %ud-registry.zeroByStr20, align 1 - %"$retval_221" = alloca [20 x i8], align 1 - %"$gasrem_2025" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2026" = icmp ugt i64 2, %"$gasrem_2025" - br i1 %"$gascmp_2026", label %"$out_of_gas_2027", label %"$have_gas_2028" - -"$out_of_gas_2027": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2028" - -"$have_gas_2028": ; preds = %"$out_of_gas_2027", %entry - %"$consume_2029" = sub i64 %"$gasrem_2025", 2 - store i64 %"$consume_2029", i64* @_gasrem, align 8 - %"$maybeRecord_tag_2031" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %2, i32 0, i32 0 - %"$maybeRecord_tag_2032" = load i8, i8* %"$maybeRecord_tag_2031", align 1 - switch i8 %"$maybeRecord_tag_2032", label %"$empty_default_2033" [ - i8 1, label %"$None_2034" - i8 0, label %"$Some_2042" + store [20 x i8] %"$ud-registry.zeroByStr20_envload_1686", [20 x i8]* %ud-registry.zeroByStr20, align 1 + %"$retval_124" = alloca [20 x i8], align 1 + %"$gasrem_1687" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1688" = icmp ugt i64 2, %"$gasrem_1687" + br i1 %"$gascmp_1688", label %"$out_of_gas_1689", label %"$have_gas_1690" + +"$out_of_gas_1689": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1690" + +"$have_gas_1690": ; preds = %"$out_of_gas_1689", %entry + %"$consume_1691" = sub i64 %"$gasrem_1687", 2 + store i64 %"$consume_1691", i64* @_gasrem, align 8 + %"$maybeRecord_tag_1693" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %2, i32 0, i32 0 + %"$maybeRecord_tag_1694" = load i8, i8* %"$maybeRecord_tag_1693", align 1 + switch i8 %"$maybeRecord_tag_1694", label %"$empty_default_1695" [ + i8 1, label %"$None_1696" + i8 0, label %"$Some_1704" ] -"$None_2034": ; preds = %"$have_gas_2028" - %"$maybeRecord_2035" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_None_ud-registry.Record* - %"$gasrem_2036" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2037" = icmp ugt i64 1, %"$gasrem_2036" - br i1 %"$gascmp_2037", label %"$out_of_gas_2038", label %"$have_gas_2039" +"$None_1696": ; preds = %"$have_gas_1690" + %"$maybeRecord_1697" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_None_ud-registry.Record* + %"$gasrem_1698" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1699" = icmp ugt i64 1, %"$gasrem_1698" + br i1 %"$gascmp_1699", label %"$out_of_gas_1700", label %"$have_gas_1701" -"$out_of_gas_2038": ; preds = %"$None_2034" +"$out_of_gas_1700": ; preds = %"$None_1696" call void @_out_of_gas() - br label %"$have_gas_2039" - -"$have_gas_2039": ; preds = %"$out_of_gas_2038", %"$None_2034" - %"$consume_2040" = sub i64 %"$gasrem_2036", 1 - store i64 %"$consume_2040", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_2041" = load [20 x i8], [20 x i8]* %ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_2041", [20 x i8]* %"$retval_221", align 1 - br label %"$matchsucc_2030" + br label %"$have_gas_1701" -"$Some_2042": ; preds = %"$have_gas_2028" - %"$maybeRecord_2043" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_Some_ud-registry.Record* - %"$record_gep_2044" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_2043", i32 0, i32 1 - %"$record_load_2045" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_2044", align 8 +"$have_gas_1701": ; preds = %"$out_of_gas_1700", %"$None_1696" + %"$consume_1702" = sub i64 %"$gasrem_1698", 1 + store i64 %"$consume_1702", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_1703" = load [20 x i8], [20 x i8]* %ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_1703", [20 x i8]* %"$retval_124", align 1 + br label %"$matchsucc_1692" + +"$Some_1704": ; preds = %"$have_gas_1690" + %"$maybeRecord_1705" = bitcast %TName_Option_ud-registry.Record* %2 to %CName_Some_ud-registry.Record* + %"$record_gep_1706" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_1705", i32 0, i32 1 + %"$record_load_1707" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_1706", align 8 %record = alloca %TName_ud-registry.Record*, align 8 - store %TName_ud-registry.Record* %"$record_load_2045", %TName_ud-registry.Record** %record, align 8 - %"$gasrem_2046" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2047" = icmp ugt i64 1, %"$gasrem_2046" - br i1 %"$gascmp_2047", label %"$out_of_gas_2048", label %"$have_gas_2049" - -"$out_of_gas_2048": ; preds = %"$Some_2042" - call void @_out_of_gas() - br label %"$have_gas_2049" - -"$have_gas_2049": ; preds = %"$out_of_gas_2048", %"$Some_2042" - %"$consume_2050" = sub i64 %"$gasrem_2046", 1 - store i64 %"$consume_2050", i64* @_gasrem, align 8 - %"$record_2052" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 - %"$record_tag_2053" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_2052", i32 0, i32 0 - %"$record_tag_2054" = load i8, i8* %"$record_tag_2053", align 1 - switch i8 %"$record_tag_2054", label %"$empty_default_2055" [ - i8 0, label %"$ud-registry.Record_2056" + store %TName_ud-registry.Record* %"$record_load_1707", %TName_ud-registry.Record** %record, align 8 + %"$gasrem_1708" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1709" = icmp ugt i64 1, %"$gasrem_1708" + br i1 %"$gascmp_1709", label %"$out_of_gas_1710", label %"$have_gas_1711" + +"$out_of_gas_1710": ; preds = %"$Some_1704" + call void @_out_of_gas() + br label %"$have_gas_1711" + +"$have_gas_1711": ; preds = %"$out_of_gas_1710", %"$Some_1704" + %"$consume_1712" = sub i64 %"$gasrem_1708", 1 + store i64 %"$consume_1712", i64* @_gasrem, align 8 + %"$record_1714" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 + %"$record_tag_1715" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_1714", i32 0, i32 0 + %"$record_tag_1716" = load i8, i8* %"$record_tag_1715", align 1 + switch i8 %"$record_tag_1716", label %"$empty_default_1717" [ + i8 0, label %"$ud-registry.Record_1718" ] -"$ud-registry.Record_2056": ; preds = %"$have_gas_2049" - %"$record_2057" = bitcast %TName_ud-registry.Record* %"$record_2052" to %CName_ud-registry.Record* - %"$owner_gep_2058" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_2057", i32 0, i32 1 - %"$owner_load_2059" = load [20 x i8], [20 x i8]* %"$owner_gep_2058", align 1 +"$ud-registry.Record_1718": ; preds = %"$have_gas_1711" + %"$record_1719" = bitcast %TName_ud-registry.Record* %"$record_1714" to %CName_ud-registry.Record* + %"$owner_gep_1720" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_1719", i32 0, i32 1 + %"$owner_load_1721" = load [20 x i8], [20 x i8]* %"$owner_gep_1720", align 1 %owner = alloca [20 x i8], align 1 - store [20 x i8] %"$owner_load_2059", [20 x i8]* %owner, align 1 - %"$resolver_gep_2060" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_2057", i32 0, i32 2 - %"$resolver_load_2061" = load [20 x i8], [20 x i8]* %"$resolver_gep_2060", align 1 + store [20 x i8] %"$owner_load_1721", [20 x i8]* %owner, align 1 + %"$resolver_gep_1722" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_1719", i32 0, i32 2 + %"$resolver_load_1723" = load [20 x i8], [20 x i8]* %"$resolver_gep_1722", align 1 %resolver = alloca [20 x i8], align 1 - store [20 x i8] %"$resolver_load_2061", [20 x i8]* %resolver, align 1 - %"$gasrem_2062" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2063" = icmp ugt i64 1, %"$gasrem_2062" - br i1 %"$gascmp_2063", label %"$out_of_gas_2064", label %"$have_gas_2065" + store [20 x i8] %"$resolver_load_1723", [20 x i8]* %resolver, align 1 + %"$gasrem_1724" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1725" = icmp ugt i64 1, %"$gasrem_1724" + br i1 %"$gascmp_1725", label %"$out_of_gas_1726", label %"$have_gas_1727" -"$out_of_gas_2064": ; preds = %"$ud-registry.Record_2056" +"$out_of_gas_1726": ; preds = %"$ud-registry.Record_1718" call void @_out_of_gas() - br label %"$have_gas_2065" + br label %"$have_gas_1727" -"$have_gas_2065": ; preds = %"$out_of_gas_2064", %"$ud-registry.Record_2056" - %"$consume_2066" = sub i64 %"$gasrem_2062", 1 - store i64 %"$consume_2066", i64* @_gasrem, align 8 - %"$owner_2067" = load [20 x i8], [20 x i8]* %owner, align 1 - store [20 x i8] %"$owner_2067", [20 x i8]* %"$retval_221", align 1 - br label %"$matchsucc_2051" +"$have_gas_1727": ; preds = %"$out_of_gas_1726", %"$ud-registry.Record_1718" + %"$consume_1728" = sub i64 %"$gasrem_1724", 1 + store i64 %"$consume_1728", i64* @_gasrem, align 8 + %"$owner_1729" = load [20 x i8], [20 x i8]* %owner, align 1 + store [20 x i8] %"$owner_1729", [20 x i8]* %"$retval_124", align 1 + br label %"$matchsucc_1713" -"$empty_default_2055": ; preds = %"$have_gas_2049" - br label %"$matchsucc_2051" +"$empty_default_1717": ; preds = %"$have_gas_1711" + br label %"$matchsucc_1713" -"$matchsucc_2051": ; preds = %"$have_gas_2065", %"$empty_default_2055" - br label %"$matchsucc_2030" +"$matchsucc_1713": ; preds = %"$have_gas_1727", %"$empty_default_1717" + br label %"$matchsucc_1692" -"$empty_default_2033": ; preds = %"$have_gas_2028" - br label %"$matchsucc_2030" +"$empty_default_1695": ; preds = %"$have_gas_1690" + br label %"$matchsucc_1692" -"$matchsucc_2030": ; preds = %"$matchsucc_2051", %"$have_gas_2039", %"$empty_default_2033" - %"$$retval_221_2068" = load [20 x i8], [20 x i8]* %"$retval_221", align 1 - store [20 x i8] %"$$retval_221_2068", [20 x i8]* %1, align 1 +"$matchsucc_1692": ; preds = %"$matchsucc_1713", %"$have_gas_1701", %"$empty_default_1695" + %"$$retval_124_1730" = load [20 x i8], [20 x i8]* %"$retval_124", align 1 + store [20 x i8] %"$$retval_124_1730", [20 x i8]* %1, align 1 ret void } -define internal i8* @"$fundef_222"(%"$$fundef_222_env_412"* %0, %String %1) { -entry: - %"$retval_223" = alloca i8*, align 8 - %"$gasrem_2000" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2001" = icmp ugt i64 1, %"$gasrem_2000" - br i1 %"$gascmp_2001", label %"$out_of_gas_2002", label %"$have_gas_2003" - -"$out_of_gas_2002": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2003" - -"$have_gas_2003": ; preds = %"$out_of_gas_2002", %entry - %"$consume_2004" = sub i64 %"$gasrem_2000", 1 - store i64 %"$consume_2004", i64* @_gasrem, align 8 - %"$msgobj_2005_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_2005_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_2005_salloc_load", i64 81) - %"$msgobj_2005_salloc" = bitcast i8* %"$msgobj_2005_salloc_salloc" to [81 x i8]* - %"$msgobj_2005" = bitcast [81 x i8]* %"$msgobj_2005_salloc" to i8* - store i8 2, i8* %"$msgobj_2005", align 1 - %"$msgobj_fname_2007" = getelementptr i8, i8* %"$msgobj_2005", i32 1 - %"$msgobj_fname_2008" = bitcast i8* %"$msgobj_fname_2007" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_2006", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_2008", align 8 - %"$msgobj_td_2009" = getelementptr i8, i8* %"$msgobj_2005", i32 17 - %"$msgobj_td_2010" = bitcast i8* %"$msgobj_td_2009" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_2010", align 8 - %"$msgobj_v_2012" = getelementptr i8, i8* %"$msgobj_2005", i32 25 - %"$msgobj_v_2013" = bitcast i8* %"$msgobj_v_2012" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_2011", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_2013", align 8 - %"$msgobj_fname_2015" = getelementptr i8, i8* %"$msgobj_2005", i32 41 - %"$msgobj_fname_2016" = bitcast i8* %"$msgobj_fname_2015" to %String* - store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_2014", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_2016", align 8 - %"$msgobj_td_2017" = getelementptr i8, i8* %"$msgobj_2005", i32 57 - %"$msgobj_td_2018" = bitcast i8* %"$msgobj_td_2017" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_2018", align 8 - %"$msgobj_v_2019" = getelementptr i8, i8* %"$msgobj_2005", i32 65 - %"$msgobj_v_2020" = bitcast i8* %"$msgobj_v_2019" to %String* - store %String %1, %String* %"$msgobj_v_2020", align 8 - store i8* %"$msgobj_2005", i8** %"$retval_223", align 8 - %"$$retval_223_2022" = load i8*, i8** %"$retval_223", align 8 - ret i8* %"$$retval_223_2022" -} - -define internal i8* @"$fundef_228"(%"$$fundef_228_env_413"* %0, [20 x i8]* %1) { -entry: - %resolver = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_228_env_node_1957" = getelementptr inbounds %"$$fundef_228_env_413", %"$$fundef_228_env_413"* %0, i32 0, i32 0 - %"$node_envload_1958" = load [32 x i8], [32 x i8]* %"$$fundef_228_env_node_1957", align 1 - %node = alloca [32 x i8], align 1 - store [32 x i8] %"$node_envload_1958", [32 x i8]* %node, align 1 - %"$$fundef_228_env_owner_1959" = getelementptr inbounds %"$$fundef_228_env_413", %"$$fundef_228_env_413"* %0, i32 0, i32 1 - %"$owner_envload_1960" = load [20 x i8], [20 x i8]* %"$$fundef_228_env_owner_1959", align 1 - %owner = alloca [20 x i8], align 1 - store [20 x i8] %"$owner_envload_1960", [20 x i8]* %owner, align 1 - %"$retval_229" = alloca i8*, align 8 - %"$gasrem_1961" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1962" = icmp ugt i64 1, %"$gasrem_1961" - br i1 %"$gascmp_1962", label %"$out_of_gas_1963", label %"$have_gas_1964" - -"$out_of_gas_1963": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1964" - -"$have_gas_1964": ; preds = %"$out_of_gas_1963", %entry - %"$consume_1965" = sub i64 %"$gasrem_1961", 1 - store i64 %"$consume_1965", i64* @_gasrem, align 8 - %"$msgobj_1966_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1966_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1966_salloc_load", i64 185) - %"$msgobj_1966_salloc" = bitcast i8* %"$msgobj_1966_salloc_salloc" to [185 x i8]* - %"$msgobj_1966" = bitcast [185 x i8]* %"$msgobj_1966_salloc" to i8* - store i8 4, i8* %"$msgobj_1966", align 1 - %"$msgobj_fname_1968" = getelementptr i8, i8* %"$msgobj_1966", i32 1 - %"$msgobj_fname_1969" = bitcast i8* %"$msgobj_fname_1968" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1967", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1969", align 8 - %"$msgobj_td_1970" = getelementptr i8, i8* %"$msgobj_1966", i32 17 - %"$msgobj_td_1971" = bitcast i8* %"$msgobj_td_1970" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1971", align 8 - %"$msgobj_v_1973" = getelementptr i8, i8* %"$msgobj_1966", i32 25 - %"$msgobj_v_1974" = bitcast i8* %"$msgobj_v_1973" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1972", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_1974", align 8 - %"$msgobj_fname_1976" = getelementptr i8, i8* %"$msgobj_1966", i32 41 - %"$msgobj_fname_1977" = bitcast i8* %"$msgobj_fname_1976" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1975", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1977", align 8 - %"$msgobj_td_1978" = getelementptr i8, i8* %"$msgobj_1966", i32 57 - %"$msgobj_td_1979" = bitcast i8* %"$msgobj_td_1978" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_1979", align 8 - %"$node_1980" = load [32 x i8], [32 x i8]* %node, align 1 - %"$msgobj_v_1981" = getelementptr i8, i8* %"$msgobj_1966", i32 65 - %"$msgobj_v_1982" = bitcast i8* %"$msgobj_v_1981" to [32 x i8]* - store [32 x i8] %"$node_1980", [32 x i8]* %"$msgobj_v_1982", align 1 - %"$msgobj_fname_1984" = getelementptr i8, i8* %"$msgobj_1966", i32 97 - %"$msgobj_fname_1985" = bitcast i8* %"$msgobj_fname_1984" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1983", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1985", align 8 - %"$msgobj_td_1986" = getelementptr i8, i8* %"$msgobj_1966", i32 113 - %"$msgobj_td_1987" = bitcast i8* %"$msgobj_td_1986" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1987", align 8 - %"$owner_1988" = load [20 x i8], [20 x i8]* %owner, align 1 - %"$msgobj_v_1989" = getelementptr i8, i8* %"$msgobj_1966", i32 121 - %"$msgobj_v_1990" = bitcast i8* %"$msgobj_v_1989" to [20 x i8]* - store [20 x i8] %"$owner_1988", [20 x i8]* %"$msgobj_v_1990", align 1 - %"$msgobj_fname_1992" = getelementptr i8, i8* %"$msgobj_1966", i32 141 - %"$msgobj_fname_1993" = bitcast i8* %"$msgobj_fname_1992" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1991", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_1993", align 8 - %"$msgobj_td_1994" = getelementptr i8, i8* %"$msgobj_1966", i32 157 - %"$msgobj_td_1995" = bitcast i8* %"$msgobj_td_1994" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1995", align 8 - %"$msgobj_v_1996" = getelementptr i8, i8* %"$msgobj_1966", i32 165 - %"$msgobj_v_1997" = bitcast i8* %"$msgobj_v_1996" to [20 x i8]* - store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_1997", align 1 - store i8* %"$msgobj_1966", i8** %"$retval_229", align 8 - %"$$retval_229_1999" = load i8*, i8** %"$retval_229", align 8 - ret i8* %"$$retval_229_1999" -} - -define internal { i8* (i8*, [20 x i8]*)*, i8* } @"$fundef_226"(%"$$fundef_226_env_414"* %0, [20 x i8]* %1) { +define internal i8* @"$fundef_125"(%"$$fundef_125_env_291"* %0, %String %1) { entry: - %owner = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_226_env_node_1942" = getelementptr inbounds %"$$fundef_226_env_414", %"$$fundef_226_env_414"* %0, i32 0, i32 0 - %"$node_envload_1943" = load [32 x i8], [32 x i8]* %"$$fundef_226_env_node_1942", align 1 - %node = alloca [32 x i8], align 1 - store [32 x i8] %"$node_envload_1943", [32 x i8]* %node, align 1 - %"$retval_227" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1944" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1945" = icmp ugt i64 1, %"$gasrem_1944" - br i1 %"$gascmp_1945", label %"$out_of_gas_1946", label %"$have_gas_1947" - -"$out_of_gas_1946": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1947" - -"$have_gas_1947": ; preds = %"$out_of_gas_1946", %entry - %"$consume_1948" = sub i64 %"$gasrem_1944", 1 - store i64 %"$consume_1948", i64* @_gasrem, align 8 - %"$$fundef_228_envp_1949_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_228_envp_1949_salloc" = call i8* @_salloc(i8* %"$$fundef_228_envp_1949_load", i64 52) - %"$$fundef_228_envp_1949" = bitcast i8* %"$$fundef_228_envp_1949_salloc" to %"$$fundef_228_env_413"* - %"$$fundef_228_env_voidp_1951" = bitcast %"$$fundef_228_env_413"* %"$$fundef_228_envp_1949" to i8* - %"$$fundef_228_cloval_1952" = insertvalue { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_228_env_413"*, [20 x i8]*)* @"$fundef_228" to i8* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_228_env_voidp_1951", 1 - %"$$fundef_228_env_node_1953" = getelementptr inbounds %"$$fundef_228_env_413", %"$$fundef_228_env_413"* %"$$fundef_228_envp_1949", i32 0, i32 0 - %"$node_1954" = load [32 x i8], [32 x i8]* %node, align 1 - store [32 x i8] %"$node_1954", [32 x i8]* %"$$fundef_228_env_node_1953", align 1 - %"$$fundef_228_env_owner_1955" = getelementptr inbounds %"$$fundef_228_env_413", %"$$fundef_228_env_413"* %"$$fundef_228_envp_1949", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$$fundef_228_env_owner_1955", align 1 - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$fundef_228_cloval_1952", { i8* (i8*, [20 x i8]*)*, i8* }* %"$retval_227", align 8 - %"$$retval_227_1956" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$retval_227", align 8 - ret { i8* (i8*, [20 x i8]*)*, i8* } %"$$retval_227_1956" + %"$retval_126" = alloca i8*, align 8 + %"$gasrem_1662" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1663" = icmp ugt i64 1, %"$gasrem_1662" + br i1 %"$gascmp_1663", label %"$out_of_gas_1664", label %"$have_gas_1665" + +"$out_of_gas_1664": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1665" + +"$have_gas_1665": ; preds = %"$out_of_gas_1664", %entry + %"$consume_1666" = sub i64 %"$gasrem_1662", 1 + store i64 %"$consume_1666", i64* @_gasrem, align 8 + %"$msgobj_1667_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1667_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1667_salloc_load", i64 81) + %"$msgobj_1667_salloc" = bitcast i8* %"$msgobj_1667_salloc_salloc" to [81 x i8]* + %"$msgobj_1667" = bitcast [81 x i8]* %"$msgobj_1667_salloc" to i8* + store i8 2, i8* %"$msgobj_1667", align 1 + %"$msgobj_fname_1669" = getelementptr i8, i8* %"$msgobj_1667", i32 1 + %"$msgobj_fname_1670" = bitcast i8* %"$msgobj_fname_1669" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1668", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1670", align 8 + %"$msgobj_td_1671" = getelementptr i8, i8* %"$msgobj_1667", i32 17 + %"$msgobj_td_1672" = bitcast i8* %"$msgobj_td_1671" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1672", align 8 + %"$msgobj_v_1674" = getelementptr i8, i8* %"$msgobj_1667", i32 25 + %"$msgobj_v_1675" = bitcast i8* %"$msgobj_v_1674" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1673", i32 0, i32 0), i32 5 }, %String* %"$msgobj_v_1675", align 8 + %"$msgobj_fname_1677" = getelementptr i8, i8* %"$msgobj_1667", i32 41 + %"$msgobj_fname_1678" = bitcast i8* %"$msgobj_fname_1677" to %String* + store %String { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$stringlit_1676", i32 0, i32 0), i32 3 }, %String* %"$msgobj_fname_1678", align 8 + %"$msgobj_td_1679" = getelementptr i8, i8* %"$msgobj_1667", i32 57 + %"$msgobj_td_1680" = bitcast i8* %"$msgobj_td_1679" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1680", align 8 + %"$msgobj_v_1681" = getelementptr i8, i8* %"$msgobj_1667", i32 65 + %"$msgobj_v_1682" = bitcast i8* %"$msgobj_v_1681" to %String* + store %String %1, %String* %"$msgobj_v_1682", align 8 + store i8* %"$msgobj_1667", i8** %"$retval_126", align 8 + %"$$retval_126_1684" = load i8*, i8** %"$retval_126", align 8 + ret i8* %"$$retval_126_1684" } -define internal { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_224"(%"$$fundef_224_env_415"* %0, [32 x i8]* %1) { +define internal i8* @"$fundef_127"(%"$$fundef_127_env_292"* %0, [32 x i8]* %1, [20 x i8]* %2, [20 x i8]* %3) { entry: + %resolver = load [20 x i8], [20 x i8]* %3, align 1 + %owner = load [20 x i8], [20 x i8]* %2, align 1 %node = load [32 x i8], [32 x i8]* %1, align 1 - %"$retval_225" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1931" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1932" = icmp ugt i64 1, %"$gasrem_1931" - br i1 %"$gascmp_1932", label %"$out_of_gas_1933", label %"$have_gas_1934" - -"$out_of_gas_1933": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1934" - -"$have_gas_1934": ; preds = %"$out_of_gas_1933", %entry - %"$consume_1935" = sub i64 %"$gasrem_1931", 1 - store i64 %"$consume_1935", i64* @_gasrem, align 8 - %"$$fundef_226_envp_1936_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_226_envp_1936_salloc" = call i8* @_salloc(i8* %"$$fundef_226_envp_1936_load", i64 32) - %"$$fundef_226_envp_1936" = bitcast i8* %"$$fundef_226_envp_1936_salloc" to %"$$fundef_226_env_414"* - %"$$fundef_226_env_voidp_1938" = bitcast %"$$fundef_226_env_414"* %"$$fundef_226_envp_1936" to i8* - %"$$fundef_226_cloval_1939" = insertvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ i8* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_226_env_414"*, [20 x i8]*)* @"$fundef_226" to { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_226_env_voidp_1938", 1 - %"$$fundef_226_env_node_1940" = getelementptr inbounds %"$$fundef_226_env_414", %"$$fundef_226_env_414"* %"$$fundef_226_envp_1936", i32 0, i32 0 - store [32 x i8] %node, [32 x i8]* %"$$fundef_226_env_node_1940", align 1 - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_226_cloval_1939", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_225", align 8 - %"$$retval_225_1941" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_225", align 8 - ret { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_225_1941" -} - -define internal i8* @"$fundef_232"(%"$$fundef_232_env_416"* %0, %String %1) { -entry: - %"$$fundef_232_env_parent_1898" = getelementptr inbounds %"$$fundef_232_env_416", %"$$fundef_232_env_416"* %0, i32 0, i32 0 - %"$parent_envload_1899" = load [32 x i8], [32 x i8]* %"$$fundef_232_env_parent_1898", align 1 - %parent = alloca [32 x i8], align 1 - store [32 x i8] %"$parent_envload_1899", [32 x i8]* %parent, align 1 - %"$retval_233" = alloca i8*, align 8 - %"$gasrem_1900" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1901" = icmp ugt i64 1, %"$gasrem_1900" - br i1 %"$gascmp_1901", label %"$out_of_gas_1902", label %"$have_gas_1903" - -"$out_of_gas_1902": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1903" - -"$have_gas_1903": ; preds = %"$out_of_gas_1902", %entry - %"$consume_1904" = sub i64 %"$gasrem_1900", 1 - store i64 %"$consume_1904", i64* @_gasrem, align 8 - %"$msgobj_1905_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1905_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1905_salloc_load", i64 137) - %"$msgobj_1905_salloc" = bitcast i8* %"$msgobj_1905_salloc_salloc" to [137 x i8]* - %"$msgobj_1905" = bitcast [137 x i8]* %"$msgobj_1905_salloc" to i8* - store i8 3, i8* %"$msgobj_1905", align 1 - %"$msgobj_fname_1907" = getelementptr i8, i8* %"$msgobj_1905", i32 1 - %"$msgobj_fname_1908" = bitcast i8* %"$msgobj_fname_1907" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1906", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1908", align 8 - %"$msgobj_td_1909" = getelementptr i8, i8* %"$msgobj_1905", i32 17 - %"$msgobj_td_1910" = bitcast i8* %"$msgobj_td_1909" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1910", align 8 - %"$msgobj_v_1912" = getelementptr i8, i8* %"$msgobj_1905", i32 25 - %"$msgobj_v_1913" = bitcast i8* %"$msgobj_v_1912" to %String* - store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_1911", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_1913", align 8 - %"$msgobj_fname_1915" = getelementptr i8, i8* %"$msgobj_1905", i32 41 - %"$msgobj_fname_1916" = bitcast i8* %"$msgobj_fname_1915" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1914", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1916", align 8 - %"$msgobj_td_1917" = getelementptr i8, i8* %"$msgobj_1905", i32 57 - %"$msgobj_td_1918" = bitcast i8* %"$msgobj_td_1917" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_1918", align 8 - %"$parent_1919" = load [32 x i8], [32 x i8]* %parent, align 1 - %"$msgobj_v_1920" = getelementptr i8, i8* %"$msgobj_1905", i32 65 - %"$msgobj_v_1921" = bitcast i8* %"$msgobj_v_1920" to [32 x i8]* - store [32 x i8] %"$parent_1919", [32 x i8]* %"$msgobj_v_1921", align 1 - %"$msgobj_fname_1923" = getelementptr i8, i8* %"$msgobj_1905", i32 97 - %"$msgobj_fname_1924" = bitcast i8* %"$msgobj_fname_1923" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1922", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1924", align 8 - %"$msgobj_td_1925" = getelementptr i8, i8* %"$msgobj_1905", i32 113 - %"$msgobj_td_1926" = bitcast i8* %"$msgobj_td_1925" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1926", align 8 - %"$msgobj_v_1927" = getelementptr i8, i8* %"$msgobj_1905", i32 121 - %"$msgobj_v_1928" = bitcast i8* %"$msgobj_v_1927" to %String* - store %String %1, %String* %"$msgobj_v_1928", align 8 - store i8* %"$msgobj_1905", i8** %"$retval_233", align 8 - %"$$retval_233_1930" = load i8*, i8** %"$retval_233", align 8 - ret i8* %"$$retval_233_1930" + %"$retval_128" = alloca i8*, align 8 + %"$gasrem_1625" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1626" = icmp ugt i64 1, %"$gasrem_1625" + br i1 %"$gascmp_1626", label %"$out_of_gas_1627", label %"$have_gas_1628" + +"$out_of_gas_1627": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1628" + +"$have_gas_1628": ; preds = %"$out_of_gas_1627", %entry + %"$consume_1629" = sub i64 %"$gasrem_1625", 1 + store i64 %"$consume_1629", i64* @_gasrem, align 8 + %"$msgobj_1630_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1630_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1630_salloc_load", i64 185) + %"$msgobj_1630_salloc" = bitcast i8* %"$msgobj_1630_salloc_salloc" to [185 x i8]* + %"$msgobj_1630" = bitcast [185 x i8]* %"$msgobj_1630_salloc" to i8* + store i8 4, i8* %"$msgobj_1630", align 1 + %"$msgobj_fname_1632" = getelementptr i8, i8* %"$msgobj_1630", i32 1 + %"$msgobj_fname_1633" = bitcast i8* %"$msgobj_fname_1632" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1631", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1633", align 8 + %"$msgobj_td_1634" = getelementptr i8, i8* %"$msgobj_1630", i32 17 + %"$msgobj_td_1635" = bitcast i8* %"$msgobj_td_1634" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1635", align 8 + %"$msgobj_v_1637" = getelementptr i8, i8* %"$msgobj_1630", i32 25 + %"$msgobj_v_1638" = bitcast i8* %"$msgobj_v_1637" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1636", i32 0, i32 0), i32 10 }, %String* %"$msgobj_v_1638", align 8 + %"$msgobj_fname_1640" = getelementptr i8, i8* %"$msgobj_1630", i32 41 + %"$msgobj_fname_1641" = bitcast i8* %"$msgobj_fname_1640" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1639", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1641", align 8 + %"$msgobj_td_1642" = getelementptr i8, i8* %"$msgobj_1630", i32 57 + %"$msgobj_td_1643" = bitcast i8* %"$msgobj_td_1642" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_1643", align 8 + %"$msgobj_v_1644" = getelementptr i8, i8* %"$msgobj_1630", i32 65 + %"$msgobj_v_1645" = bitcast i8* %"$msgobj_v_1644" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_1645", align 1 + %"$msgobj_fname_1647" = getelementptr i8, i8* %"$msgobj_1630", i32 97 + %"$msgobj_fname_1648" = bitcast i8* %"$msgobj_fname_1647" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1646", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1648", align 8 + %"$msgobj_td_1649" = getelementptr i8, i8* %"$msgobj_1630", i32 113 + %"$msgobj_td_1650" = bitcast i8* %"$msgobj_td_1649" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1650", align 8 + %"$msgobj_v_1651" = getelementptr i8, i8* %"$msgobj_1630", i32 121 + %"$msgobj_v_1652" = bitcast i8* %"$msgobj_v_1651" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_1652", align 1 + %"$msgobj_fname_1654" = getelementptr i8, i8* %"$msgobj_1630", i32 141 + %"$msgobj_fname_1655" = bitcast i8* %"$msgobj_fname_1654" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1653", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_1655", align 8 + %"$msgobj_td_1656" = getelementptr i8, i8* %"$msgobj_1630", i32 157 + %"$msgobj_td_1657" = bitcast i8* %"$msgobj_td_1656" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1657", align 8 + %"$msgobj_v_1658" = getelementptr i8, i8* %"$msgobj_1630", i32 165 + %"$msgobj_v_1659" = bitcast i8* %"$msgobj_v_1658" to [20 x i8]* + store [20 x i8] %resolver, [20 x i8]* %"$msgobj_v_1659", align 1 + store i8* %"$msgobj_1630", i8** %"$retval_128", align 8 + %"$$retval_128_1661" = load i8*, i8** %"$retval_128", align 8 + ret i8* %"$$retval_128_1661" } -define internal { i8* (i8*, %String)*, i8* } @"$fundef_230"(%"$$fundef_230_env_417"* %0, [32 x i8]* %1) { +define internal i8* @"$fundef_129"(%"$$fundef_129_env_293"* %0, [32 x i8]* %1, %String %2) { entry: %parent = load [32 x i8], [32 x i8]* %1, align 1 - %"$retval_231" = alloca { i8* (i8*, %String)*, i8* }, align 8 - %"$gasrem_1887" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1888" = icmp ugt i64 1, %"$gasrem_1887" - br i1 %"$gascmp_1888", label %"$out_of_gas_1889", label %"$have_gas_1890" - -"$out_of_gas_1889": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1890" - -"$have_gas_1890": ; preds = %"$out_of_gas_1889", %entry - %"$consume_1891" = sub i64 %"$gasrem_1887", 1 - store i64 %"$consume_1891", i64* @_gasrem, align 8 - %"$$fundef_232_envp_1892_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_232_envp_1892_salloc" = call i8* @_salloc(i8* %"$$fundef_232_envp_1892_load", i64 32) - %"$$fundef_232_envp_1892" = bitcast i8* %"$$fundef_232_envp_1892_salloc" to %"$$fundef_232_env_416"* - %"$$fundef_232_env_voidp_1894" = bitcast %"$$fundef_232_env_416"* %"$$fundef_232_envp_1892" to i8* - %"$$fundef_232_cloval_1895" = insertvalue { i8* (i8*, %String)*, i8* } { i8* (i8*, %String)* bitcast (i8* (%"$$fundef_232_env_416"*, %String)* @"$fundef_232" to i8* (i8*, %String)*), i8* undef }, i8* %"$$fundef_232_env_voidp_1894", 1 - %"$$fundef_232_env_parent_1896" = getelementptr inbounds %"$$fundef_232_env_416", %"$$fundef_232_env_416"* %"$$fundef_232_envp_1892", i32 0, i32 0 - store [32 x i8] %parent, [32 x i8]* %"$$fundef_232_env_parent_1896", align 1 - store { i8* (i8*, %String)*, i8* } %"$$fundef_232_cloval_1895", { i8* (i8*, %String)*, i8* }* %"$retval_231", align 8 - %"$$retval_231_1897" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$retval_231", align 8 - ret { i8* (i8*, %String)*, i8* } %"$$retval_231_1897" + %"$retval_130" = alloca i8*, align 8 + %"$gasrem_1595" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1596" = icmp ugt i64 1, %"$gasrem_1595" + br i1 %"$gascmp_1596", label %"$out_of_gas_1597", label %"$have_gas_1598" + +"$out_of_gas_1597": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1598" + +"$have_gas_1598": ; preds = %"$out_of_gas_1597", %entry + %"$consume_1599" = sub i64 %"$gasrem_1595", 1 + store i64 %"$consume_1599", i64* @_gasrem, align 8 + %"$msgobj_1600_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1600_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1600_salloc_load", i64 137) + %"$msgobj_1600_salloc" = bitcast i8* %"$msgobj_1600_salloc_salloc" to [137 x i8]* + %"$msgobj_1600" = bitcast [137 x i8]* %"$msgobj_1600_salloc" to i8* + store i8 3, i8* %"$msgobj_1600", align 1 + %"$msgobj_fname_1602" = getelementptr i8, i8* %"$msgobj_1600", i32 1 + %"$msgobj_fname_1603" = bitcast i8* %"$msgobj_fname_1602" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1601", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1603", align 8 + %"$msgobj_td_1604" = getelementptr i8, i8* %"$msgobj_1600", i32 17 + %"$msgobj_td_1605" = bitcast i8* %"$msgobj_td_1604" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1605", align 8 + %"$msgobj_v_1607" = getelementptr i8, i8* %"$msgobj_1600", i32 25 + %"$msgobj_v_1608" = bitcast i8* %"$msgobj_v_1607" to %String* + store %String { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"$stringlit_1606", i32 0, i32 0), i32 9 }, %String* %"$msgobj_v_1608", align 8 + %"$msgobj_fname_1610" = getelementptr i8, i8* %"$msgobj_1600", i32 41 + %"$msgobj_fname_1611" = bitcast i8* %"$msgobj_fname_1610" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_1609", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_1611", align 8 + %"$msgobj_td_1612" = getelementptr i8, i8* %"$msgobj_1600", i32 57 + %"$msgobj_td_1613" = bitcast i8* %"$msgobj_td_1612" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_1613", align 8 + %"$msgobj_v_1614" = getelementptr i8, i8* %"$msgobj_1600", i32 65 + %"$msgobj_v_1615" = bitcast i8* %"$msgobj_v_1614" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_1615", align 1 + %"$msgobj_fname_1617" = getelementptr i8, i8* %"$msgobj_1600", i32 97 + %"$msgobj_fname_1618" = bitcast i8* %"$msgobj_fname_1617" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_1616", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_1618", align 8 + %"$msgobj_td_1619" = getelementptr i8, i8* %"$msgobj_1600", i32 113 + %"$msgobj_td_1620" = bitcast i8* %"$msgobj_td_1619" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1620", align 8 + %"$msgobj_v_1621" = getelementptr i8, i8* %"$msgobj_1600", i32 121 + %"$msgobj_v_1622" = bitcast i8* %"$msgobj_v_1621" to %String* + store %String %2, %String* %"$msgobj_v_1622", align 8 + store i8* %"$msgobj_1600", i8** %"$retval_130", align 8 + %"$$retval_130_1624" = load i8*, i8** %"$retval_130", align 8 + ret i8* %"$$retval_130_1624" } -define internal i8* @"$fundef_234"(%"$$fundef_234_env_418"* %0, [20 x i8]* %1) { +define internal i8* @"$fundef_131"(%"$$fundef_131_env_294"* %0, [20 x i8]* %1) { entry: %address = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_235" = alloca i8*, align 8 - %"$gasrem_1864" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1865" = icmp ugt i64 1, %"$gasrem_1864" - br i1 %"$gascmp_1865", label %"$out_of_gas_1866", label %"$have_gas_1867" - -"$out_of_gas_1866": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1867" - -"$have_gas_1867": ; preds = %"$out_of_gas_1866", %entry - %"$consume_1868" = sub i64 %"$gasrem_1864", 1 - store i64 %"$consume_1868", i64* @_gasrem, align 8 - %"$msgobj_1869_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1869_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1869_salloc_load", i64 85) - %"$msgobj_1869_salloc" = bitcast i8* %"$msgobj_1869_salloc_salloc" to [85 x i8]* - %"$msgobj_1869" = bitcast [85 x i8]* %"$msgobj_1869_salloc" to i8* - store i8 2, i8* %"$msgobj_1869", align 1 - %"$msgobj_fname_1871" = getelementptr i8, i8* %"$msgobj_1869", i32 1 - %"$msgobj_fname_1872" = bitcast i8* %"$msgobj_fname_1871" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1870", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1872", align 8 - %"$msgobj_td_1873" = getelementptr i8, i8* %"$msgobj_1869", i32 17 - %"$msgobj_td_1874" = bitcast i8* %"$msgobj_td_1873" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1874", align 8 - %"$msgobj_v_1876" = getelementptr i8, i8* %"$msgobj_1869", i32 25 - %"$msgobj_v_1877" = bitcast i8* %"$msgobj_v_1876" to %String* - store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_1875", i32 0, i32 0), i32 12 }, %String* %"$msgobj_v_1877", align 8 - %"$msgobj_fname_1879" = getelementptr i8, i8* %"$msgobj_1869", i32 41 - %"$msgobj_fname_1880" = bitcast i8* %"$msgobj_fname_1879" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1878", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1880", align 8 - %"$msgobj_td_1881" = getelementptr i8, i8* %"$msgobj_1869", i32 57 - %"$msgobj_td_1882" = bitcast i8* %"$msgobj_td_1881" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1882", align 8 - %"$msgobj_v_1883" = getelementptr i8, i8* %"$msgobj_1869", i32 65 - %"$msgobj_v_1884" = bitcast i8* %"$msgobj_v_1883" to [20 x i8]* - store [20 x i8] %address, [20 x i8]* %"$msgobj_v_1884", align 1 - store i8* %"$msgobj_1869", i8** %"$retval_235", align 8 - %"$$retval_235_1886" = load i8*, i8** %"$retval_235", align 8 - ret i8* %"$$retval_235_1886" + %"$retval_132" = alloca i8*, align 8 + %"$gasrem_1572" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1573" = icmp ugt i64 1, %"$gasrem_1572" + br i1 %"$gascmp_1573", label %"$out_of_gas_1574", label %"$have_gas_1575" + +"$out_of_gas_1574": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1575" + +"$have_gas_1575": ; preds = %"$out_of_gas_1574", %entry + %"$consume_1576" = sub i64 %"$gasrem_1572", 1 + store i64 %"$consume_1576", i64* @_gasrem, align 8 + %"$msgobj_1577_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1577_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1577_salloc_load", i64 85) + %"$msgobj_1577_salloc" = bitcast i8* %"$msgobj_1577_salloc_salloc" to [85 x i8]* + %"$msgobj_1577" = bitcast [85 x i8]* %"$msgobj_1577_salloc" to i8* + store i8 2, i8* %"$msgobj_1577", align 1 + %"$msgobj_fname_1579" = getelementptr i8, i8* %"$msgobj_1577", i32 1 + %"$msgobj_fname_1580" = bitcast i8* %"$msgobj_fname_1579" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1578", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1580", align 8 + %"$msgobj_td_1581" = getelementptr i8, i8* %"$msgobj_1577", i32 17 + %"$msgobj_td_1582" = bitcast i8* %"$msgobj_td_1581" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1582", align 8 + %"$msgobj_v_1584" = getelementptr i8, i8* %"$msgobj_1577", i32 25 + %"$msgobj_v_1585" = bitcast i8* %"$msgobj_v_1584" to %String* + store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_1583", i32 0, i32 0), i32 12 }, %String* %"$msgobj_v_1585", align 8 + %"$msgobj_fname_1587" = getelementptr i8, i8* %"$msgobj_1577", i32 41 + %"$msgobj_fname_1588" = bitcast i8* %"$msgobj_fname_1587" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1586", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1588", align 8 + %"$msgobj_td_1589" = getelementptr i8, i8* %"$msgobj_1577", i32 57 + %"$msgobj_td_1590" = bitcast i8* %"$msgobj_td_1589" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1590", align 8 + %"$msgobj_v_1591" = getelementptr i8, i8* %"$msgobj_1577", i32 65 + %"$msgobj_v_1592" = bitcast i8* %"$msgobj_v_1591" to [20 x i8]* + store [20 x i8] %address, [20 x i8]* %"$msgobj_v_1592", align 1 + store i8* %"$msgobj_1577", i8** %"$retval_132", align 8 + %"$$retval_132_1594" = load i8*, i8** %"$retval_132", align 8 + ret i8* %"$$retval_132_1594" } -define internal i8* @"$fundef_236"(%"$$fundef_236_env_419"* %0, [20 x i8]* %1) { +define internal i8* @"$fundef_133"(%"$$fundef_133_env_295"* %0, [20 x i8]* %1) { entry: %address = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_237" = alloca i8*, align 8 - %"$gasrem_1841" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1842" = icmp ugt i64 1, %"$gasrem_1841" - br i1 %"$gascmp_1842", label %"$out_of_gas_1843", label %"$have_gas_1844" - -"$out_of_gas_1843": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1844" - -"$have_gas_1844": ; preds = %"$out_of_gas_1843", %entry - %"$consume_1845" = sub i64 %"$gasrem_1841", 1 - store i64 %"$consume_1845", i64* @_gasrem, align 8 - %"$msgobj_1846_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1846_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1846_salloc_load", i64 85) - %"$msgobj_1846_salloc" = bitcast i8* %"$msgobj_1846_salloc_salloc" to [85 x i8]* - %"$msgobj_1846" = bitcast [85 x i8]* %"$msgobj_1846_salloc" to i8* - store i8 2, i8* %"$msgobj_1846", align 1 - %"$msgobj_fname_1848" = getelementptr i8, i8* %"$msgobj_1846", i32 1 - %"$msgobj_fname_1849" = bitcast i8* %"$msgobj_fname_1848" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1847", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1849", align 8 - %"$msgobj_td_1850" = getelementptr i8, i8* %"$msgobj_1846", i32 17 - %"$msgobj_td_1851" = bitcast i8* %"$msgobj_td_1850" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1851", align 8 - %"$msgobj_v_1853" = getelementptr i8, i8* %"$msgobj_1846", i32 25 - %"$msgobj_v_1854" = bitcast i8* %"$msgobj_v_1853" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1852", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_1854", align 8 - %"$msgobj_fname_1856" = getelementptr i8, i8* %"$msgobj_1846", i32 41 - %"$msgobj_fname_1857" = bitcast i8* %"$msgobj_fname_1856" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1855", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1857", align 8 - %"$msgobj_td_1858" = getelementptr i8, i8* %"$msgobj_1846", i32 57 - %"$msgobj_td_1859" = bitcast i8* %"$msgobj_td_1858" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1859", align 8 - %"$msgobj_v_1860" = getelementptr i8, i8* %"$msgobj_1846", i32 65 - %"$msgobj_v_1861" = bitcast i8* %"$msgobj_v_1860" to [20 x i8]* - store [20 x i8] %address, [20 x i8]* %"$msgobj_v_1861", align 1 - store i8* %"$msgobj_1846", i8** %"$retval_237", align 8 - %"$$retval_237_1863" = load i8*, i8** %"$retval_237", align 8 - ret i8* %"$$retval_237_1863" -} - -define internal i8* @"$fundef_242"(%"$$fundef_242_env_420"* %0, %TName_Bool* %1) { -entry: - %"$$fundef_242_env_operator_1798" = getelementptr inbounds %"$$fundef_242_env_420", %"$$fundef_242_env_420"* %0, i32 0, i32 0 - %"$operator_envload_1799" = load [20 x i8], [20 x i8]* %"$$fundef_242_env_operator_1798", align 1 - %operator = alloca [20 x i8], align 1 - store [20 x i8] %"$operator_envload_1799", [20 x i8]* %operator, align 1 - %"$$fundef_242_env_user_1800" = getelementptr inbounds %"$$fundef_242_env_420", %"$$fundef_242_env_420"* %0, i32 0, i32 1 - %"$user_envload_1801" = load [20 x i8], [20 x i8]* %"$$fundef_242_env_user_1800", align 1 - %user = alloca [20 x i8], align 1 - store [20 x i8] %"$user_envload_1801", [20 x i8]* %user, align 1 - %"$retval_243" = alloca i8*, align 8 - %"$gasrem_1802" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1803" = icmp ugt i64 1, %"$gasrem_1802" - br i1 %"$gascmp_1803", label %"$out_of_gas_1804", label %"$have_gas_1805" - -"$out_of_gas_1804": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1805" - -"$have_gas_1805": ; preds = %"$out_of_gas_1804", %entry - %"$consume_1806" = sub i64 %"$gasrem_1802", 1 - store i64 %"$consume_1806", i64* @_gasrem, align 8 - %"$msgobj_1807_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1807_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1807_salloc_load", i64 161) - %"$msgobj_1807_salloc" = bitcast i8* %"$msgobj_1807_salloc_salloc" to [161 x i8]* - %"$msgobj_1807" = bitcast [161 x i8]* %"$msgobj_1807_salloc" to i8* - store i8 4, i8* %"$msgobj_1807", align 1 - %"$msgobj_fname_1809" = getelementptr i8, i8* %"$msgobj_1807", i32 1 - %"$msgobj_fname_1810" = bitcast i8* %"$msgobj_fname_1809" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1808", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1810", align 8 - %"$msgobj_td_1811" = getelementptr i8, i8* %"$msgobj_1807", i32 17 - %"$msgobj_td_1812" = bitcast i8* %"$msgobj_td_1811" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1812", align 8 - %"$msgobj_v_1814" = getelementptr i8, i8* %"$msgobj_1807", i32 25 - %"$msgobj_v_1815" = bitcast i8* %"$msgobj_v_1814" to %String* - store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1813", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1815", align 8 - %"$msgobj_fname_1817" = getelementptr i8, i8* %"$msgobj_1807", i32 41 - %"$msgobj_fname_1818" = bitcast i8* %"$msgobj_fname_1817" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1816", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1818", align 8 - %"$msgobj_td_1819" = getelementptr i8, i8* %"$msgobj_1807", i32 57 - %"$msgobj_td_1820" = bitcast i8* %"$msgobj_td_1819" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1820", align 8 - %"$user_1821" = load [20 x i8], [20 x i8]* %user, align 1 - %"$msgobj_v_1822" = getelementptr i8, i8* %"$msgobj_1807", i32 65 - %"$msgobj_v_1823" = bitcast i8* %"$msgobj_v_1822" to [20 x i8]* - store [20 x i8] %"$user_1821", [20 x i8]* %"$msgobj_v_1823", align 1 - %"$msgobj_fname_1825" = getelementptr i8, i8* %"$msgobj_1807", i32 85 - %"$msgobj_fname_1826" = bitcast i8* %"$msgobj_fname_1825" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1824", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_1826", align 8 - %"$msgobj_td_1827" = getelementptr i8, i8* %"$msgobj_1807", i32 101 - %"$msgobj_td_1828" = bitcast i8* %"$msgobj_td_1827" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1828", align 8 - %"$operator_1829" = load [20 x i8], [20 x i8]* %operator, align 1 - %"$msgobj_v_1830" = getelementptr i8, i8* %"$msgobj_1807", i32 109 - %"$msgobj_v_1831" = bitcast i8* %"$msgobj_v_1830" to [20 x i8]* - store [20 x i8] %"$operator_1829", [20 x i8]* %"$msgobj_v_1831", align 1 - %"$msgobj_fname_1833" = getelementptr i8, i8* %"$msgobj_1807", i32 129 - %"$msgobj_fname_1834" = bitcast i8* %"$msgobj_fname_1833" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1832", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1834", align 8 - %"$msgobj_td_1835" = getelementptr i8, i8* %"$msgobj_1807", i32 145 - %"$msgobj_td_1836" = bitcast i8* %"$msgobj_td_1835" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321", %_TyDescrTy_Typ** %"$msgobj_td_1836", align 8 - %"$msgobj_v_1837" = getelementptr i8, i8* %"$msgobj_1807", i32 153 - %"$msgobj_v_1838" = bitcast i8* %"$msgobj_v_1837" to %TName_Bool** - store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_1838", align 8 - store i8* %"$msgobj_1807", i8** %"$retval_243", align 8 - %"$$retval_243_1840" = load i8*, i8** %"$retval_243", align 8 - ret i8* %"$$retval_243_1840" -} - -define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_240"(%"$$fundef_240_env_421"* %0, [20 x i8]* %1) { -entry: - %operator = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_240_env_user_1783" = getelementptr inbounds %"$$fundef_240_env_421", %"$$fundef_240_env_421"* %0, i32 0, i32 0 - %"$user_envload_1784" = load [20 x i8], [20 x i8]* %"$$fundef_240_env_user_1783", align 1 - %user = alloca [20 x i8], align 1 - store [20 x i8] %"$user_envload_1784", [20 x i8]* %user, align 1 - %"$retval_241" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_1785" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1786" = icmp ugt i64 1, %"$gasrem_1785" - br i1 %"$gascmp_1786", label %"$out_of_gas_1787", label %"$have_gas_1788" - -"$out_of_gas_1787": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1788" - -"$have_gas_1788": ; preds = %"$out_of_gas_1787", %entry - %"$consume_1789" = sub i64 %"$gasrem_1785", 1 - store i64 %"$consume_1789", i64* @_gasrem, align 8 - %"$$fundef_242_envp_1790_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_242_envp_1790_salloc" = call i8* @_salloc(i8* %"$$fundef_242_envp_1790_load", i64 40) - %"$$fundef_242_envp_1790" = bitcast i8* %"$$fundef_242_envp_1790_salloc" to %"$$fundef_242_env_420"* - %"$$fundef_242_env_voidp_1792" = bitcast %"$$fundef_242_env_420"* %"$$fundef_242_envp_1790" to i8* - %"$$fundef_242_cloval_1793" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_242_env_420"*, %TName_Bool*)* @"$fundef_242" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_242_env_voidp_1792", 1 - %"$$fundef_242_env_operator_1794" = getelementptr inbounds %"$$fundef_242_env_420", %"$$fundef_242_env_420"* %"$$fundef_242_envp_1790", i32 0, i32 0 - store [20 x i8] %operator, [20 x i8]* %"$$fundef_242_env_operator_1794", align 1 - %"$$fundef_242_env_user_1795" = getelementptr inbounds %"$$fundef_242_env_420", %"$$fundef_242_env_420"* %"$$fundef_242_envp_1790", i32 0, i32 1 - %"$user_1796" = load [20 x i8], [20 x i8]* %user, align 1 - store [20 x i8] %"$user_1796", [20 x i8]* %"$$fundef_242_env_user_1795", align 1 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_242_cloval_1793", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_241", align 8 - %"$$retval_241_1797" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_241", align 8 - ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_241_1797" + %"$retval_134" = alloca i8*, align 8 + %"$gasrem_1549" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1550" = icmp ugt i64 1, %"$gasrem_1549" + br i1 %"$gascmp_1550", label %"$out_of_gas_1551", label %"$have_gas_1552" + +"$out_of_gas_1551": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1552" + +"$have_gas_1552": ; preds = %"$out_of_gas_1551", %entry + %"$consume_1553" = sub i64 %"$gasrem_1549", 1 + store i64 %"$consume_1553", i64* @_gasrem, align 8 + %"$msgobj_1554_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1554_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1554_salloc_load", i64 85) + %"$msgobj_1554_salloc" = bitcast i8* %"$msgobj_1554_salloc_salloc" to [85 x i8]* + %"$msgobj_1554" = bitcast [85 x i8]* %"$msgobj_1554_salloc" to i8* + store i8 2, i8* %"$msgobj_1554", align 1 + %"$msgobj_fname_1556" = getelementptr i8, i8* %"$msgobj_1554", i32 1 + %"$msgobj_fname_1557" = bitcast i8* %"$msgobj_fname_1556" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1555", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1557", align 8 + %"$msgobj_td_1558" = getelementptr i8, i8* %"$msgobj_1554", i32 17 + %"$msgobj_td_1559" = bitcast i8* %"$msgobj_td_1558" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1559", align 8 + %"$msgobj_v_1561" = getelementptr i8, i8* %"$msgobj_1554", i32 25 + %"$msgobj_v_1562" = bitcast i8* %"$msgobj_v_1561" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1560", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_1562", align 8 + %"$msgobj_fname_1564" = getelementptr i8, i8* %"$msgobj_1554", i32 41 + %"$msgobj_fname_1565" = bitcast i8* %"$msgobj_fname_1564" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1563", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1565", align 8 + %"$msgobj_td_1566" = getelementptr i8, i8* %"$msgobj_1554", i32 57 + %"$msgobj_td_1567" = bitcast i8* %"$msgobj_td_1566" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1567", align 8 + %"$msgobj_v_1568" = getelementptr i8, i8* %"$msgobj_1554", i32 65 + %"$msgobj_v_1569" = bitcast i8* %"$msgobj_v_1568" to [20 x i8]* + store [20 x i8] %address, [20 x i8]* %"$msgobj_v_1569", align 1 + store i8* %"$msgobj_1554", i8** %"$retval_134", align 8 + %"$$retval_134_1571" = load i8*, i8** %"$retval_134", align 8 + ret i8* %"$$retval_134_1571" } -define internal { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_238"(%"$$fundef_238_env_422"* %0, [20 x i8]* %1) { +define internal i8* @"$fundef_135"(%"$$fundef_135_env_296"* %0, [20 x i8]* %1, [20 x i8]* %2, %TName_Bool* %3) { entry: + %operator = load [20 x i8], [20 x i8]* %2, align 1 %user = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_239" = alloca { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1772" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1773" = icmp ugt i64 1, %"$gasrem_1772" - br i1 %"$gascmp_1773", label %"$out_of_gas_1774", label %"$have_gas_1775" - -"$out_of_gas_1774": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1775" - -"$have_gas_1775": ; preds = %"$out_of_gas_1774", %entry - %"$consume_1776" = sub i64 %"$gasrem_1772", 1 - store i64 %"$consume_1776", i64* @_gasrem, align 8 - %"$$fundef_240_envp_1777_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_240_envp_1777_salloc" = call i8* @_salloc(i8* %"$$fundef_240_envp_1777_load", i64 20) - %"$$fundef_240_envp_1777" = bitcast i8* %"$$fundef_240_envp_1777_salloc" to %"$$fundef_240_env_421"* - %"$$fundef_240_env_voidp_1779" = bitcast %"$$fundef_240_env_421"* %"$$fundef_240_envp_1777" to i8* - %"$$fundef_240_cloval_1780" = insertvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ i8* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_240_env_421"*, [20 x i8]*)* @"$fundef_240" to { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_240_env_voidp_1779", 1 - %"$$fundef_240_env_user_1781" = getelementptr inbounds %"$$fundef_240_env_421", %"$$fundef_240_env_421"* %"$$fundef_240_envp_1777", i32 0, i32 0 - store [20 x i8] %user, [20 x i8]* %"$$fundef_240_env_user_1781", align 1 - store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_240_cloval_1780", { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_239", align 8 - %"$$retval_239_1782" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_239", align 8 - ret { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_239_1782" + %"$retval_136" = alloca i8*, align 8 + %"$gasrem_1512" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1513" = icmp ugt i64 1, %"$gasrem_1512" + br i1 %"$gascmp_1513", label %"$out_of_gas_1514", label %"$have_gas_1515" + +"$out_of_gas_1514": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1515" + +"$have_gas_1515": ; preds = %"$out_of_gas_1514", %entry + %"$consume_1516" = sub i64 %"$gasrem_1512", 1 + store i64 %"$consume_1516", i64* @_gasrem, align 8 + %"$msgobj_1517_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1517_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1517_salloc_load", i64 161) + %"$msgobj_1517_salloc" = bitcast i8* %"$msgobj_1517_salloc_salloc" to [161 x i8]* + %"$msgobj_1517" = bitcast [161 x i8]* %"$msgobj_1517_salloc" to i8* + store i8 4, i8* %"$msgobj_1517", align 1 + %"$msgobj_fname_1519" = getelementptr i8, i8* %"$msgobj_1517", i32 1 + %"$msgobj_fname_1520" = bitcast i8* %"$msgobj_fname_1519" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1518", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1520", align 8 + %"$msgobj_td_1521" = getelementptr i8, i8* %"$msgobj_1517", i32 17 + %"$msgobj_td_1522" = bitcast i8* %"$msgobj_td_1521" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1522", align 8 + %"$msgobj_v_1524" = getelementptr i8, i8* %"$msgobj_1517", i32 25 + %"$msgobj_v_1525" = bitcast i8* %"$msgobj_v_1524" to %String* + store %String { i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"$stringlit_1523", i32 0, i32 0), i32 11 }, %String* %"$msgobj_v_1525", align 8 + %"$msgobj_fname_1527" = getelementptr i8, i8* %"$msgobj_1517", i32 41 + %"$msgobj_fname_1528" = bitcast i8* %"$msgobj_fname_1527" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_1526", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_1528", align 8 + %"$msgobj_td_1529" = getelementptr i8, i8* %"$msgobj_1517", i32 57 + %"$msgobj_td_1530" = bitcast i8* %"$msgobj_td_1529" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1530", align 8 + %"$msgobj_v_1531" = getelementptr i8, i8* %"$msgobj_1517", i32 65 + %"$msgobj_v_1532" = bitcast i8* %"$msgobj_v_1531" to [20 x i8]* + store [20 x i8] %user, [20 x i8]* %"$msgobj_v_1532", align 1 + %"$msgobj_fname_1534" = getelementptr i8, i8* %"$msgobj_1517", i32 85 + %"$msgobj_fname_1535" = bitcast i8* %"$msgobj_fname_1534" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1533", i32 0, i32 0), i32 8 }, %String* %"$msgobj_fname_1535", align 8 + %"$msgobj_td_1536" = getelementptr i8, i8* %"$msgobj_1517", i32 101 + %"$msgobj_td_1537" = bitcast i8* %"$msgobj_td_1536" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1537", align 8 + %"$msgobj_v_1538" = getelementptr i8, i8* %"$msgobj_1517", i32 109 + %"$msgobj_v_1539" = bitcast i8* %"$msgobj_v_1538" to [20 x i8]* + store [20 x i8] %operator, [20 x i8]* %"$msgobj_v_1539", align 1 + %"$msgobj_fname_1541" = getelementptr i8, i8* %"$msgobj_1517", i32 129 + %"$msgobj_fname_1542" = bitcast i8* %"$msgobj_fname_1541" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1540", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1542", align 8 + %"$msgobj_td_1543" = getelementptr i8, i8* %"$msgobj_1517", i32 145 + %"$msgobj_td_1544" = bitcast i8* %"$msgobj_td_1543" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204", %_TyDescrTy_Typ** %"$msgobj_td_1544", align 8 + %"$msgobj_v_1545" = getelementptr i8, i8* %"$msgobj_1517", i32 153 + %"$msgobj_v_1546" = bitcast i8* %"$msgobj_v_1545" to %TName_Bool** + store %TName_Bool* %3, %TName_Bool** %"$msgobj_v_1546", align 8 + store i8* %"$msgobj_1517", i8** %"$retval_136", align 8 + %"$$retval_136_1548" = load i8*, i8** %"$retval_136", align 8 + ret i8* %"$$retval_136_1548" } -define internal i8* @"$fundef_246"(%"$$fundef_246_env_423"* %0, %TName_Bool* %1) { -entry: - %"$$fundef_246_env_address_1739" = getelementptr inbounds %"$$fundef_246_env_423", %"$$fundef_246_env_423"* %0, i32 0, i32 0 - %"$address_envload_1740" = load [20 x i8], [20 x i8]* %"$$fundef_246_env_address_1739", align 1 - %address = alloca [20 x i8], align 1 - store [20 x i8] %"$address_envload_1740", [20 x i8]* %address, align 1 - %"$retval_247" = alloca i8*, align 8 - %"$gasrem_1741" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1742" = icmp ugt i64 1, %"$gasrem_1741" - br i1 %"$gascmp_1742", label %"$out_of_gas_1743", label %"$have_gas_1744" - -"$out_of_gas_1743": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1744" - -"$have_gas_1744": ; preds = %"$out_of_gas_1743", %entry - %"$consume_1745" = sub i64 %"$gasrem_1741", 1 - store i64 %"$consume_1745", i64* @_gasrem, align 8 - %"$msgobj_1746_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_1746_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1746_salloc_load", i64 117) - %"$msgobj_1746_salloc" = bitcast i8* %"$msgobj_1746_salloc_salloc" to [117 x i8]* - %"$msgobj_1746" = bitcast [117 x i8]* %"$msgobj_1746_salloc" to i8* - store i8 3, i8* %"$msgobj_1746", align 1 - %"$msgobj_fname_1748" = getelementptr i8, i8* %"$msgobj_1746", i32 1 - %"$msgobj_fname_1749" = bitcast i8* %"$msgobj_fname_1748" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1747", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1749", align 8 - %"$msgobj_td_1750" = getelementptr i8, i8* %"$msgobj_1746", i32 17 - %"$msgobj_td_1751" = bitcast i8* %"$msgobj_td_1750" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_1751", align 8 - %"$msgobj_v_1753" = getelementptr i8, i8* %"$msgobj_1746", i32 25 - %"$msgobj_v_1754" = bitcast i8* %"$msgobj_v_1753" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1752", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_1754", align 8 - %"$msgobj_fname_1756" = getelementptr i8, i8* %"$msgobj_1746", i32 41 - %"$msgobj_fname_1757" = bitcast i8* %"$msgobj_fname_1756" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1755", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1757", align 8 - %"$msgobj_td_1758" = getelementptr i8, i8* %"$msgobj_1746", i32 57 - %"$msgobj_td_1759" = bitcast i8* %"$msgobj_td_1758" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_1759", align 8 - %"$address_1760" = load [20 x i8], [20 x i8]* %address, align 1 - %"$msgobj_v_1761" = getelementptr i8, i8* %"$msgobj_1746", i32 65 - %"$msgobj_v_1762" = bitcast i8* %"$msgobj_v_1761" to [20 x i8]* - store [20 x i8] %"$address_1760", [20 x i8]* %"$msgobj_v_1762", align 1 - %"$msgobj_fname_1764" = getelementptr i8, i8* %"$msgobj_1746", i32 85 - %"$msgobj_fname_1765" = bitcast i8* %"$msgobj_fname_1764" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1763", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1765", align 8 - %"$msgobj_td_1766" = getelementptr i8, i8* %"$msgobj_1746", i32 101 - %"$msgobj_td_1767" = bitcast i8* %"$msgobj_td_1766" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321", %_TyDescrTy_Typ** %"$msgobj_td_1767", align 8 - %"$msgobj_v_1768" = getelementptr i8, i8* %"$msgobj_1746", i32 109 - %"$msgobj_v_1769" = bitcast i8* %"$msgobj_v_1768" to %TName_Bool** - store %TName_Bool* %1, %TName_Bool** %"$msgobj_v_1769", align 8 - store i8* %"$msgobj_1746", i8** %"$retval_247", align 8 - %"$$retval_247_1771" = load i8*, i8** %"$retval_247", align 8 - ret i8* %"$$retval_247_1771" -} - -define internal { i8* (i8*, %TName_Bool*)*, i8* } @"$fundef_244"(%"$$fundef_244_env_424"* %0, [20 x i8]* %1) { +define internal i8* @"$fundef_137"(%"$$fundef_137_env_297"* %0, [20 x i8]* %1, %TName_Bool* %2) { entry: %address = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_245" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_1728" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1729" = icmp ugt i64 1, %"$gasrem_1728" - br i1 %"$gascmp_1729", label %"$out_of_gas_1730", label %"$have_gas_1731" - -"$out_of_gas_1730": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1731" - -"$have_gas_1731": ; preds = %"$out_of_gas_1730", %entry - %"$consume_1732" = sub i64 %"$gasrem_1728", 1 - store i64 %"$consume_1732", i64* @_gasrem, align 8 - %"$$fundef_246_envp_1733_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_246_envp_1733_salloc" = call i8* @_salloc(i8* %"$$fundef_246_envp_1733_load", i64 20) - %"$$fundef_246_envp_1733" = bitcast i8* %"$$fundef_246_envp_1733_salloc" to %"$$fundef_246_env_423"* - %"$$fundef_246_env_voidp_1735" = bitcast %"$$fundef_246_env_423"* %"$$fundef_246_envp_1733" to i8* - %"$$fundef_246_cloval_1736" = insertvalue { i8* (i8*, %TName_Bool*)*, i8* } { i8* (i8*, %TName_Bool*)* bitcast (i8* (%"$$fundef_246_env_423"*, %TName_Bool*)* @"$fundef_246" to i8* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_246_env_voidp_1735", 1 - %"$$fundef_246_env_address_1737" = getelementptr inbounds %"$$fundef_246_env_423", %"$$fundef_246_env_423"* %"$$fundef_246_envp_1733", i32 0, i32 0 - store [20 x i8] %address, [20 x i8]* %"$$fundef_246_env_address_1737", align 1 - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$fundef_246_cloval_1736", { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_245", align 8 - %"$$retval_245_1738" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$retval_245", align 8 - ret { i8* (i8*, %TName_Bool*)*, i8* } %"$$retval_245_1738" + %"$retval_138" = alloca i8*, align 8 + %"$gasrem_1482" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1483" = icmp ugt i64 1, %"$gasrem_1482" + br i1 %"$gascmp_1483", label %"$out_of_gas_1484", label %"$have_gas_1485" + +"$out_of_gas_1484": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1485" + +"$have_gas_1485": ; preds = %"$out_of_gas_1484", %entry + %"$consume_1486" = sub i64 %"$gasrem_1482", 1 + store i64 %"$consume_1486", i64* @_gasrem, align 8 + %"$msgobj_1487_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_1487_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_1487_salloc_load", i64 117) + %"$msgobj_1487_salloc" = bitcast i8* %"$msgobj_1487_salloc_salloc" to [117 x i8]* + %"$msgobj_1487" = bitcast [117 x i8]* %"$msgobj_1487_salloc" to i8* + store i8 3, i8* %"$msgobj_1487", align 1 + %"$msgobj_fname_1489" = getelementptr i8, i8* %"$msgobj_1487", i32 1 + %"$msgobj_fname_1490" = bitcast i8* %"$msgobj_fname_1489" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1488", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1490", align 8 + %"$msgobj_td_1491" = getelementptr i8, i8* %"$msgobj_1487", i32 17 + %"$msgobj_td_1492" = bitcast i8* %"$msgobj_td_1491" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_1492", align 8 + %"$msgobj_v_1494" = getelementptr i8, i8* %"$msgobj_1487", i32 25 + %"$msgobj_v_1495" = bitcast i8* %"$msgobj_v_1494" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_1493", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_1495", align 8 + %"$msgobj_fname_1497" = getelementptr i8, i8* %"$msgobj_1487", i32 41 + %"$msgobj_fname_1498" = bitcast i8* %"$msgobj_fname_1497" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_1496", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_1498", align 8 + %"$msgobj_td_1499" = getelementptr i8, i8* %"$msgobj_1487", i32 57 + %"$msgobj_td_1500" = bitcast i8* %"$msgobj_td_1499" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_1500", align 8 + %"$msgobj_v_1501" = getelementptr i8, i8* %"$msgobj_1487", i32 65 + %"$msgobj_v_1502" = bitcast i8* %"$msgobj_v_1501" to [20 x i8]* + store [20 x i8] %address, [20 x i8]* %"$msgobj_v_1502", align 1 + %"$msgobj_fname_1504" = getelementptr i8, i8* %"$msgobj_1487", i32 85 + %"$msgobj_fname_1505" = bitcast i8* %"$msgobj_fname_1504" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_1503", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_1505", align 8 + %"$msgobj_td_1506" = getelementptr i8, i8* %"$msgobj_1487", i32 101 + %"$msgobj_td_1507" = bitcast i8* %"$msgobj_td_1506" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204", %_TyDescrTy_Typ** %"$msgobj_td_1507", align 8 + %"$msgobj_v_1508" = getelementptr i8, i8* %"$msgobj_1487", i32 109 + %"$msgobj_v_1509" = bitcast i8* %"$msgobj_v_1508" to %TName_Bool** + store %TName_Bool* %2, %TName_Bool** %"$msgobj_v_1509", align 8 + store i8* %"$msgobj_1487", i8** %"$retval_138", align 8 + %"$$retval_138_1511" = load i8*, i8** %"$retval_138", align 8 + ret i8* %"$$retval_138_1511" } -define internal %TName_Bool* @"$fundef_250"(%"$$fundef_250_env_425"* %0, %TName_Bool* %1) { +define internal %TName_Bool* @"$fundef_139"(%"$$fundef_139_env_298"* %0, %TName_Bool* %1, %TName_Bool* %2) { entry: - %"$$fundef_250_env_b1_1653" = getelementptr inbounds %"$$fundef_250_env_425", %"$$fundef_250_env_425"* %0, i32 0, i32 0 - %"$b1_envload_1654" = load %TName_Bool*, %TName_Bool** %"$$fundef_250_env_b1_1653", align 8 - %b1 = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b1_envload_1654", %TName_Bool** %b1, align 8 - %"$retval_251" = alloca %TName_Bool*, align 8 - %"$gasrem_1655" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1656" = icmp ugt i64 2, %"$gasrem_1655" - br i1 %"$gascmp_1656", label %"$out_of_gas_1657", label %"$have_gas_1658" - -"$out_of_gas_1657": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1658" - -"$have_gas_1658": ; preds = %"$out_of_gas_1657", %entry - %"$consume_1659" = sub i64 %"$gasrem_1655", 2 - store i64 %"$consume_1659", i64* @_gasrem, align 8 - %"$b1_1661" = load %TName_Bool*, %TName_Bool** %b1, align 8 - %"$b1_tag_1662" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b1_1661", i32 0, i32 0 - %"$b1_tag_1663" = load i8, i8* %"$b1_tag_1662", align 1 - switch i8 %"$b1_tag_1663", label %"$empty_default_1664" [ - i8 0, label %"$True_1665" - i8 1, label %"$False_1696" + %"$retval_140" = alloca %TName_Bool*, align 8 + %"$gasrem_1410" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1411" = icmp ugt i64 2, %"$gasrem_1410" + br i1 %"$gascmp_1411", label %"$out_of_gas_1412", label %"$have_gas_1413" + +"$out_of_gas_1412": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1413" + +"$have_gas_1413": ; preds = %"$out_of_gas_1412", %entry + %"$consume_1414" = sub i64 %"$gasrem_1410", 2 + store i64 %"$consume_1414", i64* @_gasrem, align 8 + %"$b1_tag_1416" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b1_tag_1417" = load i8, i8* %"$b1_tag_1416", align 1 + switch i8 %"$b1_tag_1417", label %"$empty_default_1418" [ + i8 0, label %"$True_1419" + i8 1, label %"$False_1450" ] -"$True_1665": ; preds = %"$have_gas_1658" - %"$b1_1666" = bitcast %TName_Bool* %"$b1_1661" to %CName_True* - %"$gasrem_1667" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1668" = icmp ugt i64 2, %"$gasrem_1667" - br i1 %"$gascmp_1668", label %"$out_of_gas_1669", label %"$have_gas_1670" +"$True_1419": ; preds = %"$have_gas_1413" + %"$b1_1420" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_1421" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1422" = icmp ugt i64 2, %"$gasrem_1421" + br i1 %"$gascmp_1422", label %"$out_of_gas_1423", label %"$have_gas_1424" -"$out_of_gas_1669": ; preds = %"$True_1665" +"$out_of_gas_1423": ; preds = %"$True_1419" call void @_out_of_gas() - br label %"$have_gas_1670" + br label %"$have_gas_1424" -"$have_gas_1670": ; preds = %"$out_of_gas_1669", %"$True_1665" - %"$consume_1671" = sub i64 %"$gasrem_1667", 2 - store i64 %"$consume_1671", i64* @_gasrem, align 8 - %"$b2_tag_1673" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b2_tag_1674" = load i8, i8* %"$b2_tag_1673", align 1 - switch i8 %"$b2_tag_1674", label %"$empty_default_1675" [ - i8 0, label %"$True_1676" - i8 1, label %"$False_1686" +"$have_gas_1424": ; preds = %"$out_of_gas_1423", %"$True_1419" + %"$consume_1425" = sub i64 %"$gasrem_1421", 2 + store i64 %"$consume_1425", i64* @_gasrem, align 8 + %"$b2_tag_1427" = getelementptr inbounds %TName_Bool, %TName_Bool* %2, i32 0, i32 0 + %"$b2_tag_1428" = load i8, i8* %"$b2_tag_1427", align 1 + switch i8 %"$b2_tag_1428", label %"$empty_default_1429" [ + i8 0, label %"$True_1430" + i8 1, label %"$False_1440" ] -"$True_1676": ; preds = %"$have_gas_1670" - %"$b2_1677" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_1678" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1679" = icmp ugt i64 1, %"$gasrem_1678" - br i1 %"$gascmp_1679", label %"$out_of_gas_1680", label %"$have_gas_1681" - -"$out_of_gas_1680": ; preds = %"$True_1676" - call void @_out_of_gas() - br label %"$have_gas_1681" - -"$have_gas_1681": ; preds = %"$out_of_gas_1680", %"$True_1676" - %"$consume_1682" = sub i64 %"$gasrem_1678", 1 - store i64 %"$consume_1682", i64* @_gasrem, align 8 - %"$adtval_1683_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1683_salloc" = call i8* @_salloc(i8* %"$adtval_1683_load", i64 1) - %"$adtval_1683" = bitcast i8* %"$adtval_1683_salloc" to %CName_True* - %"$adtgep_1684" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1683", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1684", align 1 - %"$adtptr_1685" = bitcast %CName_True* %"$adtval_1683" to %TName_Bool* - store %TName_Bool* %"$adtptr_1685", %TName_Bool** %"$retval_251", align 8 - br label %"$matchsucc_1672" - -"$False_1686": ; preds = %"$have_gas_1670" - %"$b2_1687" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_1688" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1689" = icmp ugt i64 1, %"$gasrem_1688" - br i1 %"$gascmp_1689", label %"$out_of_gas_1690", label %"$have_gas_1691" - -"$out_of_gas_1690": ; preds = %"$False_1686" - call void @_out_of_gas() - br label %"$have_gas_1691" - -"$have_gas_1691": ; preds = %"$out_of_gas_1690", %"$False_1686" - %"$consume_1692" = sub i64 %"$gasrem_1688", 1 - store i64 %"$consume_1692", i64* @_gasrem, align 8 - %"$adtval_1693_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1693_salloc" = call i8* @_salloc(i8* %"$adtval_1693_load", i64 1) - %"$adtval_1693" = bitcast i8* %"$adtval_1693_salloc" to %CName_False* - %"$adtgep_1694" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1693", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1694", align 1 - %"$adtptr_1695" = bitcast %CName_False* %"$adtval_1693" to %TName_Bool* - store %TName_Bool* %"$adtptr_1695", %TName_Bool** %"$retval_251", align 8 - br label %"$matchsucc_1672" - -"$empty_default_1675": ; preds = %"$have_gas_1670" - br label %"$matchsucc_1672" - -"$matchsucc_1672": ; preds = %"$have_gas_1691", %"$have_gas_1681", %"$empty_default_1675" - br label %"$matchsucc_1660" - -"$False_1696": ; preds = %"$have_gas_1658" - %"$b1_1697" = bitcast %TName_Bool* %"$b1_1661" to %CName_False* - %"$gasrem_1698" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1699" = icmp ugt i64 2, %"$gasrem_1698" - br i1 %"$gascmp_1699", label %"$out_of_gas_1700", label %"$have_gas_1701" +"$True_1430": ; preds = %"$have_gas_1424" + %"$b2_1431" = bitcast %TName_Bool* %2 to %CName_True* + %"$gasrem_1432" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1433" = icmp ugt i64 1, %"$gasrem_1432" + br i1 %"$gascmp_1433", label %"$out_of_gas_1434", label %"$have_gas_1435" + +"$out_of_gas_1434": ; preds = %"$True_1430" + call void @_out_of_gas() + br label %"$have_gas_1435" + +"$have_gas_1435": ; preds = %"$out_of_gas_1434", %"$True_1430" + %"$consume_1436" = sub i64 %"$gasrem_1432", 1 + store i64 %"$consume_1436", i64* @_gasrem, align 8 + %"$adtval_1437_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1437_salloc" = call i8* @_salloc(i8* %"$adtval_1437_load", i64 1) + %"$adtval_1437" = bitcast i8* %"$adtval_1437_salloc" to %CName_True* + %"$adtgep_1438" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1437", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1438", align 1 + %"$adtptr_1439" = bitcast %CName_True* %"$adtval_1437" to %TName_Bool* + store %TName_Bool* %"$adtptr_1439", %TName_Bool** %"$retval_140", align 8 + br label %"$matchsucc_1426" + +"$False_1440": ; preds = %"$have_gas_1424" + %"$b2_1441" = bitcast %TName_Bool* %2 to %CName_False* + %"$gasrem_1442" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1443" = icmp ugt i64 1, %"$gasrem_1442" + br i1 %"$gascmp_1443", label %"$out_of_gas_1444", label %"$have_gas_1445" + +"$out_of_gas_1444": ; preds = %"$False_1440" + call void @_out_of_gas() + br label %"$have_gas_1445" + +"$have_gas_1445": ; preds = %"$out_of_gas_1444", %"$False_1440" + %"$consume_1446" = sub i64 %"$gasrem_1442", 1 + store i64 %"$consume_1446", i64* @_gasrem, align 8 + %"$adtval_1447_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1447_salloc" = call i8* @_salloc(i8* %"$adtval_1447_load", i64 1) + %"$adtval_1447" = bitcast i8* %"$adtval_1447_salloc" to %CName_False* + %"$adtgep_1448" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1447", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1448", align 1 + %"$adtptr_1449" = bitcast %CName_False* %"$adtval_1447" to %TName_Bool* + store %TName_Bool* %"$adtptr_1449", %TName_Bool** %"$retval_140", align 8 + br label %"$matchsucc_1426" + +"$empty_default_1429": ; preds = %"$have_gas_1424" + br label %"$matchsucc_1426" + +"$matchsucc_1426": ; preds = %"$have_gas_1445", %"$have_gas_1435", %"$empty_default_1429" + br label %"$matchsucc_1415" + +"$False_1450": ; preds = %"$have_gas_1413" + %"$b1_1451" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_1452" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1453" = icmp ugt i64 2, %"$gasrem_1452" + br i1 %"$gascmp_1453", label %"$out_of_gas_1454", label %"$have_gas_1455" -"$out_of_gas_1700": ; preds = %"$False_1696" +"$out_of_gas_1454": ; preds = %"$False_1450" call void @_out_of_gas() - br label %"$have_gas_1701" + br label %"$have_gas_1455" -"$have_gas_1701": ; preds = %"$out_of_gas_1700", %"$False_1696" - %"$consume_1702" = sub i64 %"$gasrem_1698", 2 - store i64 %"$consume_1702", i64* @_gasrem, align 8 - %"$b2_tag_1704" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b2_tag_1705" = load i8, i8* %"$b2_tag_1704", align 1 - switch i8 %"$b2_tag_1705", label %"$empty_default_1706" [ - i8 0, label %"$True_1707" - i8 1, label %"$False_1717" +"$have_gas_1455": ; preds = %"$out_of_gas_1454", %"$False_1450" + %"$consume_1456" = sub i64 %"$gasrem_1452", 2 + store i64 %"$consume_1456", i64* @_gasrem, align 8 + %"$b2_tag_1458" = getelementptr inbounds %TName_Bool, %TName_Bool* %2, i32 0, i32 0 + %"$b2_tag_1459" = load i8, i8* %"$b2_tag_1458", align 1 + switch i8 %"$b2_tag_1459", label %"$empty_default_1460" [ + i8 0, label %"$True_1461" + i8 1, label %"$False_1471" ] -"$True_1707": ; preds = %"$have_gas_1701" - %"$b2_1708" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_1709" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1710" = icmp ugt i64 1, %"$gasrem_1709" - br i1 %"$gascmp_1710", label %"$out_of_gas_1711", label %"$have_gas_1712" - -"$out_of_gas_1711": ; preds = %"$True_1707" - call void @_out_of_gas() - br label %"$have_gas_1712" - -"$have_gas_1712": ; preds = %"$out_of_gas_1711", %"$True_1707" - %"$consume_1713" = sub i64 %"$gasrem_1709", 1 - store i64 %"$consume_1713", i64* @_gasrem, align 8 - %"$adtval_1714_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1714_salloc" = call i8* @_salloc(i8* %"$adtval_1714_load", i64 1) - %"$adtval_1714" = bitcast i8* %"$adtval_1714_salloc" to %CName_False* - %"$adtgep_1715" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1714", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1715", align 1 - %"$adtptr_1716" = bitcast %CName_False* %"$adtval_1714" to %TName_Bool* - store %TName_Bool* %"$adtptr_1716", %TName_Bool** %"$retval_251", align 8 - br label %"$matchsucc_1703" - -"$False_1717": ; preds = %"$have_gas_1701" - %"$b2_1718" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_1719" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1720" = icmp ugt i64 1, %"$gasrem_1719" - br i1 %"$gascmp_1720", label %"$out_of_gas_1721", label %"$have_gas_1722" - -"$out_of_gas_1721": ; preds = %"$False_1717" - call void @_out_of_gas() - br label %"$have_gas_1722" - -"$have_gas_1722": ; preds = %"$out_of_gas_1721", %"$False_1717" - %"$consume_1723" = sub i64 %"$gasrem_1719", 1 - store i64 %"$consume_1723", i64* @_gasrem, align 8 - %"$adtval_1724_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1724_salloc" = call i8* @_salloc(i8* %"$adtval_1724_load", i64 1) - %"$adtval_1724" = bitcast i8* %"$adtval_1724_salloc" to %CName_True* - %"$adtgep_1725" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1724", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1725", align 1 - %"$adtptr_1726" = bitcast %CName_True* %"$adtval_1724" to %TName_Bool* - store %TName_Bool* %"$adtptr_1726", %TName_Bool** %"$retval_251", align 8 - br label %"$matchsucc_1703" - -"$empty_default_1706": ; preds = %"$have_gas_1701" - br label %"$matchsucc_1703" - -"$matchsucc_1703": ; preds = %"$have_gas_1722", %"$have_gas_1712", %"$empty_default_1706" - br label %"$matchsucc_1660" - -"$empty_default_1664": ; preds = %"$have_gas_1658" - br label %"$matchsucc_1660" - -"$matchsucc_1660": ; preds = %"$matchsucc_1703", %"$matchsucc_1672", %"$empty_default_1664" - %"$$retval_251_1727" = load %TName_Bool*, %TName_Bool** %"$retval_251", align 8 - ret %TName_Bool* %"$$retval_251_1727" +"$True_1461": ; preds = %"$have_gas_1455" + %"$b2_1462" = bitcast %TName_Bool* %2 to %CName_True* + %"$gasrem_1463" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1464" = icmp ugt i64 1, %"$gasrem_1463" + br i1 %"$gascmp_1464", label %"$out_of_gas_1465", label %"$have_gas_1466" + +"$out_of_gas_1465": ; preds = %"$True_1461" + call void @_out_of_gas() + br label %"$have_gas_1466" + +"$have_gas_1466": ; preds = %"$out_of_gas_1465", %"$True_1461" + %"$consume_1467" = sub i64 %"$gasrem_1463", 1 + store i64 %"$consume_1467", i64* @_gasrem, align 8 + %"$adtval_1468_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1468_salloc" = call i8* @_salloc(i8* %"$adtval_1468_load", i64 1) + %"$adtval_1468" = bitcast i8* %"$adtval_1468_salloc" to %CName_False* + %"$adtgep_1469" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1468", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1469", align 1 + %"$adtptr_1470" = bitcast %CName_False* %"$adtval_1468" to %TName_Bool* + store %TName_Bool* %"$adtptr_1470", %TName_Bool** %"$retval_140", align 8 + br label %"$matchsucc_1457" + +"$False_1471": ; preds = %"$have_gas_1455" + %"$b2_1472" = bitcast %TName_Bool* %2 to %CName_False* + %"$gasrem_1473" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1474" = icmp ugt i64 1, %"$gasrem_1473" + br i1 %"$gascmp_1474", label %"$out_of_gas_1475", label %"$have_gas_1476" + +"$out_of_gas_1475": ; preds = %"$False_1471" + call void @_out_of_gas() + br label %"$have_gas_1476" + +"$have_gas_1476": ; preds = %"$out_of_gas_1475", %"$False_1471" + %"$consume_1477" = sub i64 %"$gasrem_1473", 1 + store i64 %"$consume_1477", i64* @_gasrem, align 8 + %"$adtval_1478_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1478_salloc" = call i8* @_salloc(i8* %"$adtval_1478_load", i64 1) + %"$adtval_1478" = bitcast i8* %"$adtval_1478_salloc" to %CName_True* + %"$adtgep_1479" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1478", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1479", align 1 + %"$adtptr_1480" = bitcast %CName_True* %"$adtval_1478" to %TName_Bool* + store %TName_Bool* %"$adtptr_1480", %TName_Bool** %"$retval_140", align 8 + br label %"$matchsucc_1457" + +"$empty_default_1460": ; preds = %"$have_gas_1455" + br label %"$matchsucc_1457" + +"$matchsucc_1457": ; preds = %"$have_gas_1476", %"$have_gas_1466", %"$empty_default_1460" + br label %"$matchsucc_1415" + +"$empty_default_1418": ; preds = %"$have_gas_1413" + br label %"$matchsucc_1415" + +"$matchsucc_1415": ; preds = %"$matchsucc_1457", %"$matchsucc_1426", %"$empty_default_1418" + %"$$retval_140_1481" = load %TName_Bool*, %TName_Bool** %"$retval_140", align 8 + ret %TName_Bool* %"$$retval_140_1481" } -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_248"(%"$$fundef_248_env_426"* %0, %TName_Bool* %1) { -entry: - %"$retval_249" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_1642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1643" = icmp ugt i64 1, %"$gasrem_1642" - br i1 %"$gascmp_1643", label %"$out_of_gas_1644", label %"$have_gas_1645" - -"$out_of_gas_1644": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1645" - -"$have_gas_1645": ; preds = %"$out_of_gas_1644", %entry - %"$consume_1646" = sub i64 %"$gasrem_1642", 1 - store i64 %"$consume_1646", i64* @_gasrem, align 8 - %"$$fundef_250_envp_1647_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_250_envp_1647_salloc" = call i8* @_salloc(i8* %"$$fundef_250_envp_1647_load", i64 8) - %"$$fundef_250_envp_1647" = bitcast i8* %"$$fundef_250_envp_1647_salloc" to %"$$fundef_250_env_425"* - %"$$fundef_250_env_voidp_1649" = bitcast %"$$fundef_250_env_425"* %"$$fundef_250_envp_1647" to i8* - %"$$fundef_250_cloval_1650" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_250_env_425"*, %TName_Bool*)* @"$fundef_250" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_250_env_voidp_1649", 1 - %"$$fundef_250_env_b1_1651" = getelementptr inbounds %"$$fundef_250_env_425", %"$$fundef_250_env_425"* %"$$fundef_250_envp_1647", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_250_env_b1_1651", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_250_cloval_1650", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_249", align 8 - %"$$retval_249_1652" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_249", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_249_1652" -} - -define internal %TName_Bool* @"$fundef_256"(%"$$fundef_256_env_427"* %0, [20 x i8]* %1) { +define internal %TName_Bool* @"$fundef_143"(%"$$fundef_143_env_299"* %0, [20 x i8]* %1) { entry: %v = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_256_env_BoolUtils.negb_1608" = getelementptr inbounds %"$$fundef_256_env_427", %"$$fundef_256_env_427"* %0, i32 0, i32 0 - %"$BoolUtils.negb_envload_1609" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_256_env_BoolUtils.negb_1608", align 8 + %"$$fundef_143_env_BoolUtils.negb_1376" = getelementptr inbounds %"$$fundef_143_env_299", %"$$fundef_143_env_299"* %0, i32 0, i32 0 + %"$BoolUtils.negb_envload_1377" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_143_env_BoolUtils.negb_1376", align 8 %BoolUtils.negb = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1609", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$$fundef_256_env_bs_1610" = getelementptr inbounds %"$$fundef_256_env_427", %"$$fundef_256_env_427"* %0, i32 0, i32 1 - %"$bs_envload_1611" = load [20 x i8], [20 x i8]* %"$$fundef_256_env_bs_1610", align 1 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1377", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + %"$$fundef_143_env_bs_1378" = getelementptr inbounds %"$$fundef_143_env_299", %"$$fundef_143_env_299"* %0, i32 0, i32 1 + %"$bs_envload_1379" = load [20 x i8], [20 x i8]* %"$$fundef_143_env_bs_1378", align 1 %bs = alloca [20 x i8], align 1 - store [20 x i8] %"$bs_envload_1611", [20 x i8]* %bs, align 1 - %"$retval_257" = alloca %TName_Bool*, align 8 - %"$gasrem_1612" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1613" = icmp ugt i64 1, %"$gasrem_1612" - br i1 %"$gascmp_1613", label %"$out_of_gas_1614", label %"$have_gas_1615" + store [20 x i8] %"$bs_envload_1379", [20 x i8]* %bs, align 1 + %"$retval_144" = alloca %TName_Bool*, align 8 + %"$gasrem_1380" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1381" = icmp ugt i64 1, %"$gasrem_1380" + br i1 %"$gascmp_1381", label %"$out_of_gas_1382", label %"$have_gas_1383" -"$out_of_gas_1614": ; preds = %entry +"$out_of_gas_1382": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1615" + br label %"$have_gas_1383" -"$have_gas_1615": ; preds = %"$out_of_gas_1614", %entry - %"$consume_1616" = sub i64 %"$gasrem_1612", 1 - store i64 %"$consume_1616", i64* @_gasrem, align 8 +"$have_gas_1383": ; preds = %"$out_of_gas_1382", %entry + %"$consume_1384" = sub i64 %"$gasrem_1380", 1 + store i64 %"$consume_1384", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_1617" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1618" = icmp ugt i64 20, %"$gasrem_1617" - br i1 %"$gascmp_1618", label %"$out_of_gas_1619", label %"$have_gas_1620" - -"$out_of_gas_1619": ; preds = %"$have_gas_1615" - call void @_out_of_gas() - br label %"$have_gas_1620" - -"$have_gas_1620": ; preds = %"$out_of_gas_1619", %"$have_gas_1615" - %"$consume_1621" = sub i64 %"$gasrem_1617", 20 - store i64 %"$consume_1621", i64* @_gasrem, align 8 - %"$execptr_load_1622" = load i8*, i8** @_execptr, align 8 - %"$eq_v_1623" = alloca [20 x i8], align 1 - store [20 x i8] %v, [20 x i8]* %"$eq_v_1623", align 1 - %"$$eq_v_1623_1624" = bitcast [20 x i8]* %"$eq_v_1623" to i8* - %"$eq_bs_1625" = alloca [20 x i8], align 1 - %"$bs_1626" = load [20 x i8], [20 x i8]* %bs, align 1 - store [20 x i8] %"$bs_1626", [20 x i8]* %"$eq_bs_1625", align 1 - %"$$eq_bs_1625_1627" = bitcast [20 x i8]* %"$eq_bs_1625" to i8* - %"$eq_call_1628" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1622", i32 20, i8* %"$$eq_v_1623_1624", i8* %"$$eq_bs_1625_1627") - store %TName_Bool* %"$eq_call_1628", %TName_Bool** %b, align 8 - %"$gasrem_1630" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1631" = icmp ugt i64 1, %"$gasrem_1630" - br i1 %"$gascmp_1631", label %"$out_of_gas_1632", label %"$have_gas_1633" - -"$out_of_gas_1632": ; preds = %"$have_gas_1620" - call void @_out_of_gas() - br label %"$have_gas_1633" - -"$have_gas_1633": ; preds = %"$out_of_gas_1632", %"$have_gas_1620" - %"$consume_1634" = sub i64 %"$gasrem_1630", 1 - store i64 %"$consume_1634", i64* @_gasrem, align 8 - %"$BoolUtils.negb_36" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_1635" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1636" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1635", 0 - %"$BoolUtils.negb_envptr_1637" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1635", 1 - %"$b_1638" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$BoolUtils.negb_call_1639" = call %TName_Bool* %"$BoolUtils.negb_fptr_1636"(i8* %"$BoolUtils.negb_envptr_1637", %TName_Bool* %"$b_1638") - store %TName_Bool* %"$BoolUtils.negb_call_1639", %TName_Bool** %"$BoolUtils.negb_36", align 8 - %"$$BoolUtils.negb_36_1640" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_36", align 8 - store %TName_Bool* %"$$BoolUtils.negb_36_1640", %TName_Bool** %"$retval_257", align 8 - %"$$retval_257_1641" = load %TName_Bool*, %TName_Bool** %"$retval_257", align 8 - ret %TName_Bool* %"$$retval_257_1641" + %"$gasrem_1385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1386" = icmp ugt i64 20, %"$gasrem_1385" + br i1 %"$gascmp_1386", label %"$out_of_gas_1387", label %"$have_gas_1388" + +"$out_of_gas_1387": ; preds = %"$have_gas_1383" + call void @_out_of_gas() + br label %"$have_gas_1388" + +"$have_gas_1388": ; preds = %"$out_of_gas_1387", %"$have_gas_1383" + %"$consume_1389" = sub i64 %"$gasrem_1385", 20 + store i64 %"$consume_1389", i64* @_gasrem, align 8 + %"$execptr_load_1390" = load i8*, i8** @_execptr, align 8 + %"$eq_v_1391" = alloca [20 x i8], align 1 + store [20 x i8] %v, [20 x i8]* %"$eq_v_1391", align 1 + %"$$eq_v_1391_1392" = bitcast [20 x i8]* %"$eq_v_1391" to i8* + %"$eq_bs_1393" = alloca [20 x i8], align 1 + %"$bs_1394" = load [20 x i8], [20 x i8]* %bs, align 1 + store [20 x i8] %"$bs_1394", [20 x i8]* %"$eq_bs_1393", align 1 + %"$$eq_bs_1393_1395" = bitcast [20 x i8]* %"$eq_bs_1393" to i8* + %"$eq_call_1396" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1390", i32 20, i8* %"$$eq_v_1391_1392", i8* %"$$eq_bs_1393_1395") + store %TName_Bool* %"$eq_call_1396", %TName_Bool** %b, align 8 + %"$gasrem_1398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1399" = icmp ugt i64 1, %"$gasrem_1398" + br i1 %"$gascmp_1399", label %"$out_of_gas_1400", label %"$have_gas_1401" + +"$out_of_gas_1400": ; preds = %"$have_gas_1388" + call void @_out_of_gas() + br label %"$have_gas_1401" + +"$have_gas_1401": ; preds = %"$out_of_gas_1400", %"$have_gas_1388" + %"$consume_1402" = sub i64 %"$gasrem_1398", 1 + store i64 %"$consume_1402", i64* @_gasrem, align 8 + %"$BoolUtils.negb_34" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_1403" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_1404" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1403", 0 + %"$BoolUtils.negb_envptr_1405" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1403", 1 + %"$b_1406" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$BoolUtils.negb_call_1407" = call %TName_Bool* %"$BoolUtils.negb_fptr_1404"(i8* %"$BoolUtils.negb_envptr_1405", %TName_Bool* %"$b_1406") + store %TName_Bool* %"$BoolUtils.negb_call_1407", %TName_Bool** %"$BoolUtils.negb_34", align 8 + %"$$BoolUtils.negb_34_1408" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_34", align 8 + store %TName_Bool* %"$$BoolUtils.negb_34_1408", %TName_Bool** %"$retval_144", align 8 + %"$$retval_144_1409" = load %TName_Bool*, %TName_Bool** %"$retval_144", align 8 + ret %TName_Bool* %"$$retval_144_1409" } -define internal %TName_List_ByStr20* @"$fundef_254"(%"$$fundef_254_env_428"* %0, [20 x i8]* %1) { +define internal %TName_List_ByStr20* @"$fundef_141"(%"$$fundef_141_env_300"* %0, %TName_List_ByStr20* %1, [20 x i8]* %2) { entry: - %bs = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_254_env_BoolUtils.negb_1551" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %0, i32 0, i32 0 - %"$BoolUtils.negb_envload_1552" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_254_env_BoolUtils.negb_1551", align 8 + %bs = load [20 x i8], [20 x i8]* %2, align 1 + %"$$fundef_141_env_BoolUtils.negb_1322" = getelementptr inbounds %"$$fundef_141_env_300", %"$$fundef_141_env_300"* %0, i32 0, i32 0 + %"$BoolUtils.negb_envload_1323" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_141_env_BoolUtils.negb_1322", align 8 %BoolUtils.negb = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1552", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$$fundef_254_env_ListUtils.list_filter_1553" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %0, i32 0, i32 1 - %"$ListUtils.list_filter_envload_1554" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_254_env_ListUtils.list_filter_1553", align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1323", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + %"$$fundef_141_env_ListUtils.list_filter_1324" = getelementptr inbounds %"$$fundef_141_env_300", %"$$fundef_141_env_300"* %0, i32 0, i32 1 + %"$ListUtils.list_filter_envload_1325" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_141_env_ListUtils.list_filter_1324", align 8 %ListUtils.list_filter = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_envload_1554", { i8*, i8* }** %ListUtils.list_filter, align 8 - %"$$fundef_254_env_list_1555" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %0, i32 0, i32 2 - %"$list_envload_1556" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_254_env_list_1555", align 8 - %list = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$list_envload_1556", %TName_List_ByStr20** %list, align 8 - %"$retval_255" = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_1557" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1558" = icmp ugt i64 1, %"$gasrem_1557" - br i1 %"$gascmp_1558", label %"$out_of_gas_1559", label %"$have_gas_1560" - -"$out_of_gas_1559": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1560" - -"$have_gas_1560": ; preds = %"$out_of_gas_1559", %entry - %"$consume_1561" = sub i64 %"$gasrem_1557", 1 - store i64 %"$consume_1561", i64* @_gasrem, align 8 + store { i8*, i8* }* %"$ListUtils.list_filter_envload_1325", { i8*, i8* }** %ListUtils.list_filter, align 8 + %"$retval_142" = alloca %TName_List_ByStr20*, align 8 + %"$gasrem_1326" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1327" = icmp ugt i64 1, %"$gasrem_1326" + br i1 %"$gascmp_1327", label %"$out_of_gas_1328", label %"$have_gas_1329" + +"$out_of_gas_1328": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1329" + +"$have_gas_1329": ; preds = %"$out_of_gas_1328", %entry + %"$consume_1330" = sub i64 %"$gasrem_1326", 1 + store i64 %"$consume_1330", i64* @_gasrem, align 8 %listByStr20Filter = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1562" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1563" = icmp ugt i64 1, %"$gasrem_1562" - br i1 %"$gascmp_1563", label %"$out_of_gas_1564", label %"$have_gas_1565" - -"$out_of_gas_1564": ; preds = %"$have_gas_1560" - call void @_out_of_gas() - br label %"$have_gas_1565" - -"$have_gas_1565": ; preds = %"$out_of_gas_1564", %"$have_gas_1560" - %"$consume_1566" = sub i64 %"$gasrem_1562", 1 - store i64 %"$consume_1566", i64* @_gasrem, align 8 - %"$ListUtils.list_filter_1567" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 - %"$ListUtils.list_filter_1568" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_filter_1567", i32 0 - %"$ListUtils.list_filter_1569" = bitcast { i8*, i8* }* %"$ListUtils.list_filter_1568" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_filter_1570" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_filter_1569", align 8 - %"$ListUtils.list_filter_fptr_1571" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_1570", 0 - %"$ListUtils.list_filter_envptr_1572" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_1570", 1 - %"$ListUtils.list_filter_call_1573" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_fptr_1571"(i8* %"$ListUtils.list_filter_envptr_1572") - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_call_1573", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %listByStr20Filter, align 8 - %"$gasrem_1574" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1575" = icmp ugt i64 1, %"$gasrem_1574" - br i1 %"$gascmp_1575", label %"$out_of_gas_1576", label %"$have_gas_1577" - -"$out_of_gas_1576": ; preds = %"$have_gas_1565" - call void @_out_of_gas() - br label %"$have_gas_1577" - -"$have_gas_1577": ; preds = %"$out_of_gas_1576", %"$have_gas_1565" - %"$consume_1578" = sub i64 %"$gasrem_1574", 1 - store i64 %"$consume_1578", i64* @_gasrem, align 8 + %"$gasrem_1331" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1332" = icmp ugt i64 1, %"$gasrem_1331" + br i1 %"$gascmp_1332", label %"$out_of_gas_1333", label %"$have_gas_1334" + +"$out_of_gas_1333": ; preds = %"$have_gas_1329" + call void @_out_of_gas() + br label %"$have_gas_1334" + +"$have_gas_1334": ; preds = %"$out_of_gas_1333", %"$have_gas_1329" + %"$consume_1335" = sub i64 %"$gasrem_1331", 1 + store i64 %"$consume_1335", i64* @_gasrem, align 8 + %"$ListUtils.list_filter_1336" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 + %"$ListUtils.list_filter_1337" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_filter_1336", i32 0 + %"$ListUtils.list_filter_1338" = bitcast { i8*, i8* }* %"$ListUtils.list_filter_1337" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_filter_1339" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_filter_1338", align 8 + %"$ListUtils.list_filter_fptr_1340" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_1339", 0 + %"$ListUtils.list_filter_envptr_1341" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_filter_1339", 1 + %"$ListUtils.list_filter_call_1342" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_fptr_1340"(i8* %"$ListUtils.list_filter_envptr_1341") + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_filter_call_1342", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %listByStr20Filter, align 8 + %"$gasrem_1343" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1344" = icmp ugt i64 1, %"$gasrem_1343" + br i1 %"$gascmp_1344", label %"$out_of_gas_1345", label %"$have_gas_1346" + +"$out_of_gas_1345": ; preds = %"$have_gas_1334" + call void @_out_of_gas() + br label %"$have_gas_1346" + +"$have_gas_1346": ; preds = %"$out_of_gas_1345", %"$have_gas_1334" + %"$consume_1347" = sub i64 %"$gasrem_1343", 1 + store i64 %"$consume_1347", i64* @_gasrem, align 8 %fn = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1579" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1580" = icmp ugt i64 1, %"$gasrem_1579" - br i1 %"$gascmp_1580", label %"$out_of_gas_1581", label %"$have_gas_1582" - -"$out_of_gas_1581": ; preds = %"$have_gas_1577" - call void @_out_of_gas() - br label %"$have_gas_1582" - -"$have_gas_1582": ; preds = %"$out_of_gas_1581", %"$have_gas_1577" - %"$consume_1583" = sub i64 %"$gasrem_1579", 1 - store i64 %"$consume_1583", i64* @_gasrem, align 8 - %"$$fundef_256_envp_1584_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_256_envp_1584_salloc" = call i8* @_salloc(i8* %"$$fundef_256_envp_1584_load", i64 40) - %"$$fundef_256_envp_1584" = bitcast i8* %"$$fundef_256_envp_1584_salloc" to %"$$fundef_256_env_427"* - %"$$fundef_256_env_voidp_1586" = bitcast %"$$fundef_256_env_427"* %"$$fundef_256_envp_1584" to i8* - %"$$fundef_256_cloval_1587" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_256_env_427"*, [20 x i8]*)* @"$fundef_256" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_256_env_voidp_1586", 1 - %"$$fundef_256_env_BoolUtils.negb_1588" = getelementptr inbounds %"$$fundef_256_env_427", %"$$fundef_256_env_427"* %"$$fundef_256_envp_1584", i32 0, i32 0 - %"$BoolUtils.negb_1589" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1589", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_256_env_BoolUtils.negb_1588", align 8 - %"$$fundef_256_env_bs_1590" = getelementptr inbounds %"$$fundef_256_env_427", %"$$fundef_256_env_427"* %"$$fundef_256_envp_1584", i32 0, i32 1 - store [20 x i8] %bs, [20 x i8]* %"$$fundef_256_env_bs_1590", align 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_256_cloval_1587", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8 - %"$gasrem_1591" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1592" = icmp ugt i64 1, %"$gasrem_1591" - br i1 %"$gascmp_1592", label %"$out_of_gas_1593", label %"$have_gas_1594" - -"$out_of_gas_1593": ; preds = %"$have_gas_1582" - call void @_out_of_gas() - br label %"$have_gas_1594" - -"$have_gas_1594": ; preds = %"$out_of_gas_1593", %"$have_gas_1582" - %"$consume_1595" = sub i64 %"$gasrem_1591", 1 - store i64 %"$consume_1595", i64* @_gasrem, align 8 - %"$listByStr20Filter_37" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$listByStr20Filter_1596" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %listByStr20Filter, align 8 - %"$listByStr20Filter_fptr_1597" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_1596", 0 - %"$listByStr20Filter_envptr_1598" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_1596", 1 - %"$fn_1599" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8 - %"$listByStr20Filter_call_1600" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_fptr_1597"(i8* %"$listByStr20Filter_envptr_1598", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$fn_1599") - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_call_1600", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_37", align 8 - %"$listByStr20Filter_38" = alloca %TName_List_ByStr20*, align 8 - %"$$listByStr20Filter_37_1601" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_37", align 8 - %"$$listByStr20Filter_37_fptr_1602" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_37_1601", 0 - %"$$listByStr20Filter_37_envptr_1603" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_37_1601", 1 - %"$list_1604" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 - %"$$listByStr20Filter_37_call_1605" = call %TName_List_ByStr20* %"$$listByStr20Filter_37_fptr_1602"(i8* %"$$listByStr20Filter_37_envptr_1603", %TName_List_ByStr20* %"$list_1604") - store %TName_List_ByStr20* %"$$listByStr20Filter_37_call_1605", %TName_List_ByStr20** %"$listByStr20Filter_38", align 8 - %"$$listByStr20Filter_38_1606" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$listByStr20Filter_38", align 8 - store %TName_List_ByStr20* %"$$listByStr20Filter_38_1606", %TName_List_ByStr20** %"$retval_255", align 8 - %"$$retval_255_1607" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_255", align 8 - ret %TName_List_ByStr20* %"$$retval_255_1607" -} - -define internal { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } @"$fundef_252"(%"$$fundef_252_env_429"* %0, %TName_List_ByStr20* %1) { -entry: - %"$$fundef_252_env_BoolUtils.negb_1532" = getelementptr inbounds %"$$fundef_252_env_429", %"$$fundef_252_env_429"* %0, i32 0, i32 0 - %"$BoolUtils.negb_envload_1533" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_252_env_BoolUtils.negb_1532", align 8 - %BoolUtils.negb = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1533", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$$fundef_252_env_ListUtils.list_filter_1534" = getelementptr inbounds %"$$fundef_252_env_429", %"$$fundef_252_env_429"* %0, i32 0, i32 1 - %"$ListUtils.list_filter_envload_1535" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_252_env_ListUtils.list_filter_1534", align 8 - %ListUtils.list_filter = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_envload_1535", { i8*, i8* }** %ListUtils.list_filter, align 8 - %"$retval_253" = alloca { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1536" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1537" = icmp ugt i64 1, %"$gasrem_1536" - br i1 %"$gascmp_1537", label %"$out_of_gas_1538", label %"$have_gas_1539" - -"$out_of_gas_1538": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1539" - -"$have_gas_1539": ; preds = %"$out_of_gas_1538", %entry - %"$consume_1540" = sub i64 %"$gasrem_1536", 1 - store i64 %"$consume_1540", i64* @_gasrem, align 8 - %"$$fundef_254_envp_1541_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_254_envp_1541_salloc" = call i8* @_salloc(i8* %"$$fundef_254_envp_1541_load", i64 32) - %"$$fundef_254_envp_1541" = bitcast i8* %"$$fundef_254_envp_1541_salloc" to %"$$fundef_254_env_428"* - %"$$fundef_254_env_voidp_1543" = bitcast %"$$fundef_254_env_428"* %"$$fundef_254_envp_1541" to i8* - %"$$fundef_254_cloval_1544" = insertvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } { %TName_List_ByStr20* (i8*, [20 x i8]*)* bitcast (%TName_List_ByStr20* (%"$$fundef_254_env_428"*, [20 x i8]*)* @"$fundef_254" to %TName_List_ByStr20* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_254_env_voidp_1543", 1 - %"$$fundef_254_env_BoolUtils.negb_1545" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %"$$fundef_254_envp_1541", i32 0, i32 0 - %"$BoolUtils.negb_1546" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1546", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_254_env_BoolUtils.negb_1545", align 8 - %"$$fundef_254_env_ListUtils.list_filter_1547" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %"$$fundef_254_envp_1541", i32 0, i32 1 - %"$ListUtils.list_filter_1548" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_filter, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_1548", { i8*, i8* }** %"$$fundef_254_env_ListUtils.list_filter_1547", align 8 - %"$$fundef_254_env_list_1549" = getelementptr inbounds %"$$fundef_254_env_428", %"$$fundef_254_env_428"* %"$$fundef_254_envp_1541", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_254_env_list_1549", align 8 - store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$fundef_254_cloval_1544", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_253", align 8 - %"$$retval_253_1550" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$retval_253", align 8 - ret { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$retval_253_1550" + %"$gasrem_1348" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1349" = icmp ugt i64 1, %"$gasrem_1348" + br i1 %"$gascmp_1349", label %"$out_of_gas_1350", label %"$have_gas_1351" + +"$out_of_gas_1350": ; preds = %"$have_gas_1346" + call void @_out_of_gas() + br label %"$have_gas_1351" + +"$have_gas_1351": ; preds = %"$out_of_gas_1350", %"$have_gas_1346" + %"$consume_1352" = sub i64 %"$gasrem_1348", 1 + store i64 %"$consume_1352", i64* @_gasrem, align 8 + %"$$fundef_143_envp_1353_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_143_envp_1353_salloc" = call i8* @_salloc(i8* %"$$fundef_143_envp_1353_load", i64 40) + %"$$fundef_143_envp_1353" = bitcast i8* %"$$fundef_143_envp_1353_salloc" to %"$$fundef_143_env_299"* + %"$$fundef_143_env_voidp_1355" = bitcast %"$$fundef_143_env_299"* %"$$fundef_143_envp_1353" to i8* + %"$$fundef_143_cloval_1356" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_143_env_299"*, [20 x i8]*)* @"$fundef_143" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_143_env_voidp_1355", 1 + %"$$fundef_143_env_BoolUtils.negb_1357" = getelementptr inbounds %"$$fundef_143_env_299", %"$$fundef_143_env_299"* %"$$fundef_143_envp_1353", i32 0, i32 0 + %"$BoolUtils.negb_1358" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1358", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_143_env_BoolUtils.negb_1357", align 8 + %"$$fundef_143_env_bs_1359" = getelementptr inbounds %"$$fundef_143_env_299", %"$$fundef_143_env_299"* %"$$fundef_143_envp_1353", i32 0, i32 1 + store [20 x i8] %bs, [20 x i8]* %"$$fundef_143_env_bs_1359", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_143_cloval_1356", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8 + %"$gasrem_1360" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1361" = icmp ugt i64 1, %"$gasrem_1360" + br i1 %"$gascmp_1361", label %"$out_of_gas_1362", label %"$have_gas_1363" + +"$out_of_gas_1362": ; preds = %"$have_gas_1351" + call void @_out_of_gas() + br label %"$have_gas_1363" + +"$have_gas_1363": ; preds = %"$out_of_gas_1362", %"$have_gas_1351" + %"$consume_1364" = sub i64 %"$gasrem_1360", 1 + store i64 %"$consume_1364", i64* @_gasrem, align 8 + %"$listByStr20Filter_35" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$listByStr20Filter_1365" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %listByStr20Filter, align 8 + %"$listByStr20Filter_fptr_1366" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_1365", 0 + %"$listByStr20Filter_envptr_1367" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listByStr20Filter_1365", 1 + %"$fn_1368" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %fn, align 8 + %"$listByStr20Filter_call_1369" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_fptr_1366"(i8* %"$listByStr20Filter_envptr_1367", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$fn_1368") + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$listByStr20Filter_call_1369", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_35", align 8 + %"$listByStr20Filter_36" = alloca %TName_List_ByStr20*, align 8 + %"$$listByStr20Filter_35_1370" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listByStr20Filter_35", align 8 + %"$$listByStr20Filter_35_fptr_1371" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_35_1370", 0 + %"$$listByStr20Filter_35_envptr_1372" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listByStr20Filter_35_1370", 1 + %"$$listByStr20Filter_35_call_1373" = call %TName_List_ByStr20* %"$$listByStr20Filter_35_fptr_1371"(i8* %"$$listByStr20Filter_35_envptr_1372", %TName_List_ByStr20* %1) + store %TName_List_ByStr20* %"$$listByStr20Filter_35_call_1373", %TName_List_ByStr20** %"$listByStr20Filter_36", align 8 + %"$$listByStr20Filter_36_1374" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$listByStr20Filter_36", align 8 + store %TName_List_ByStr20* %"$$listByStr20Filter_36_1374", %TName_List_ByStr20** %"$retval_142", align 8 + %"$$retval_142_1375" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_142", align 8 + ret %TName_List_ByStr20* %"$$retval_142_1375" } -define internal %TName_Bool* @"$fundef_260"(%"$$fundef_260_env_430"* %0, [20 x i8]* %1) { +define internal %TName_Bool* @"$fundef_145"(%"$$fundef_145_env_301"* %0, %TName_List_ByStr20* %1, [20 x i8]* %2) { entry: - %bs = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_260_env_BoolUtils.negb_1493" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %0, i32 0, i32 0 - %"$BoolUtils.negb_envload_1494" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_260_env_BoolUtils.negb_1493", align 8 + %bs = load [20 x i8], [20 x i8]* %2, align 1 + %"$$fundef_145_env_BoolUtils.negb_1291" = getelementptr inbounds %"$$fundef_145_env_301", %"$$fundef_145_env_301"* %0, i32 0, i32 0 + %"$BoolUtils.negb_envload_1292" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_145_env_BoolUtils.negb_1291", align 8 %BoolUtils.negb = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1494", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$$fundef_260_env_list_1495" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %0, i32 0, i32 1 - %"$list_envload_1496" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_260_env_list_1495", align 8 - %list = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$list_envload_1496", %TName_List_ByStr20** %list, align 8 - %"$$fundef_260_env_ud-registry.listByStr20Contains_1497" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %0, i32 0, i32 2 - %"$ud-registry.listByStr20Contains_envload_1498" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_260_env_ud-registry.listByStr20Contains_1497", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_1498", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_261" = alloca %TName_Bool*, align 8 - %"$gasrem_1499" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1500" = icmp ugt i64 1, %"$gasrem_1499" - br i1 %"$gascmp_1500", label %"$out_of_gas_1501", label %"$have_gas_1502" - -"$out_of_gas_1501": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1502" - -"$have_gas_1502": ; preds = %"$out_of_gas_1501", %entry - %"$consume_1503" = sub i64 %"$gasrem_1499", 1 - store i64 %"$consume_1503", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1292", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + %"$$fundef_145_env_ud-registry.listByStr20Contains_1293" = getelementptr inbounds %"$$fundef_145_env_301", %"$$fundef_145_env_301"* %0, i32 0, i32 1 + %"$ud-registry.listByStr20Contains_envload_1294" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %"$$fundef_145_env_ud-registry.listByStr20Contains_1293", align 8 + %ud-registry.listByStr20Contains = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_envload_1294", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %ud-registry.listByStr20Contains, align 8 + %"$retval_146" = alloca %TName_Bool*, align 8 + %"$gasrem_1295" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1296" = icmp ugt i64 1, %"$gasrem_1295" + br i1 %"$gascmp_1296", label %"$out_of_gas_1297", label %"$have_gas_1298" + +"$out_of_gas_1297": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1298" + +"$have_gas_1298": ; preds = %"$out_of_gas_1297", %entry + %"$consume_1299" = sub i64 %"$gasrem_1295", 1 + store i64 %"$consume_1299", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_1504" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1505" = icmp ugt i64 1, %"$gasrem_1504" - br i1 %"$gascmp_1505", label %"$out_of_gas_1506", label %"$have_gas_1507" - -"$out_of_gas_1506": ; preds = %"$have_gas_1502" - call void @_out_of_gas() - br label %"$have_gas_1507" - -"$have_gas_1507": ; preds = %"$out_of_gas_1506", %"$have_gas_1502" - %"$consume_1508" = sub i64 %"$gasrem_1504", 1 - store i64 %"$consume_1508", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Contains_33" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_1509" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$ud-registry.listByStr20Contains_fptr_1510" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_1509", 0 - %"$ud-registry.listByStr20Contains_envptr_1511" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_1509", 1 - %"$list_1512" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 - %"$ud-registry.listByStr20Contains_call_1513" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_1510"(i8* %"$ud-registry.listByStr20Contains_envptr_1511", %TName_List_ByStr20* %"$list_1512") - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_1513", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_33", align 8 - %"$ud-registry.listByStr20Contains_34" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_33_1514" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_33", align 8 - %"$$ud-registry.listByStr20Contains_33_fptr_1515" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_33_1514", 0 - %"$$ud-registry.listByStr20Contains_33_envptr_1516" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_33_1514", 1 - %"$$ud-registry.listByStr20Contains_33_bs_1517" = alloca [20 x i8], align 1 - store [20 x i8] %bs, [20 x i8]* %"$$ud-registry.listByStr20Contains_33_bs_1517", align 1 - %"$$ud-registry.listByStr20Contains_33_call_1518" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_33_fptr_1515"(i8* %"$$ud-registry.listByStr20Contains_33_envptr_1516", [20 x i8]* %"$$ud-registry.listByStr20Contains_33_bs_1517") - store %TName_Bool* %"$$ud-registry.listByStr20Contains_33_call_1518", %TName_Bool** %"$ud-registry.listByStr20Contains_34", align 8 - %"$$ud-registry.listByStr20Contains_34_1519" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_34", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_34_1519", %TName_Bool** %b, align 8 - %"$gasrem_1520" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1521" = icmp ugt i64 1, %"$gasrem_1520" - br i1 %"$gascmp_1521", label %"$out_of_gas_1522", label %"$have_gas_1523" - -"$out_of_gas_1522": ; preds = %"$have_gas_1507" - call void @_out_of_gas() - br label %"$have_gas_1523" - -"$have_gas_1523": ; preds = %"$out_of_gas_1522", %"$have_gas_1507" - %"$consume_1524" = sub i64 %"$gasrem_1520", 1 - store i64 %"$consume_1524", i64* @_gasrem, align 8 - %"$BoolUtils.negb_35" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_1525" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_1526" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1525", 0 - %"$BoolUtils.negb_envptr_1527" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1525", 1 - %"$b_1528" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$BoolUtils.negb_call_1529" = call %TName_Bool* %"$BoolUtils.negb_fptr_1526"(i8* %"$BoolUtils.negb_envptr_1527", %TName_Bool* %"$b_1528") - store %TName_Bool* %"$BoolUtils.negb_call_1529", %TName_Bool** %"$BoolUtils.negb_35", align 8 - %"$$BoolUtils.negb_35_1530" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_35", align 8 - store %TName_Bool* %"$$BoolUtils.negb_35_1530", %TName_Bool** %"$retval_261", align 8 - %"$$retval_261_1531" = load %TName_Bool*, %TName_Bool** %"$retval_261", align 8 - ret %TName_Bool* %"$$retval_261_1531" -} - -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_258"(%"$$fundef_258_env_431"* %0, %TName_List_ByStr20* %1) { -entry: - %"$$fundef_258_env_BoolUtils.negb_1474" = getelementptr inbounds %"$$fundef_258_env_431", %"$$fundef_258_env_431"* %0, i32 0, i32 0 - %"$BoolUtils.negb_envload_1475" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_258_env_BoolUtils.negb_1474", align 8 - %BoolUtils.negb = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_envload_1475", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - %"$$fundef_258_env_ud-registry.listByStr20Contains_1476" = getelementptr inbounds %"$$fundef_258_env_431", %"$$fundef_258_env_431"* %0, i32 0, i32 1 - %"$ud-registry.listByStr20Contains_envload_1477" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_258_env_ud-registry.listByStr20Contains_1476", align 8 - %ud-registry.listByStr20Contains = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_envload_1477", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - %"$retval_259" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1478" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1479" = icmp ugt i64 1, %"$gasrem_1478" - br i1 %"$gascmp_1479", label %"$out_of_gas_1480", label %"$have_gas_1481" - -"$out_of_gas_1480": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1481" - -"$have_gas_1481": ; preds = %"$out_of_gas_1480", %entry - %"$consume_1482" = sub i64 %"$gasrem_1478", 1 - store i64 %"$consume_1482", i64* @_gasrem, align 8 - %"$$fundef_260_envp_1483_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_260_envp_1483_salloc" = call i8* @_salloc(i8* %"$$fundef_260_envp_1483_load", i64 40) - %"$$fundef_260_envp_1483" = bitcast i8* %"$$fundef_260_envp_1483_salloc" to %"$$fundef_260_env_430"* - %"$$fundef_260_env_voidp_1485" = bitcast %"$$fundef_260_env_430"* %"$$fundef_260_envp_1483" to i8* - %"$$fundef_260_cloval_1486" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_260_env_430"*, [20 x i8]*)* @"$fundef_260" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_260_env_voidp_1485", 1 - %"$$fundef_260_env_BoolUtils.negb_1487" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %"$$fundef_260_envp_1483", i32 0, i32 0 - %"$BoolUtils.negb_1488" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1488", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_260_env_BoolUtils.negb_1487", align 8 - %"$$fundef_260_env_list_1489" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %"$$fundef_260_envp_1483", i32 0, i32 1 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_260_env_list_1489", align 8 - %"$$fundef_260_env_ud-registry.listByStr20Contains_1490" = getelementptr inbounds %"$$fundef_260_env_430", %"$$fundef_260_env_430"* %"$$fundef_260_envp_1483", i32 0, i32 2 - %"$ud-registry.listByStr20Contains_1491" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_1491", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_260_env_ud-registry.listByStr20Contains_1490", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_260_cloval_1486", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_259", align 8 - %"$$retval_259_1492" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_259", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_259_1492" + %"$gasrem_1300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1301" = icmp ugt i64 1, %"$gasrem_1300" + br i1 %"$gascmp_1301", label %"$out_of_gas_1302", label %"$have_gas_1303" + +"$out_of_gas_1302": ; preds = %"$have_gas_1298" + call void @_out_of_gas() + br label %"$have_gas_1303" + +"$have_gas_1303": ; preds = %"$out_of_gas_1302", %"$have_gas_1298" + %"$consume_1304" = sub i64 %"$gasrem_1300", 1 + store i64 %"$consume_1304", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Contains_1305" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %ud-registry.listByStr20Contains, align 8 + %"$ud-registry.listByStr20Contains_fptr_1306" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_1305", 0 + %"$ud-registry.listByStr20Contains_envptr_1307" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_1305", 1 + %"$ud-registry.listByStr20Contains_bs_1308" = alloca [20 x i8], align 1 + store [20 x i8] %bs, [20 x i8]* %"$ud-registry.listByStr20Contains_bs_1308", align 1 + %"$ud-registry.listByStr20Contains_call_1309" = call %TName_Bool* %"$ud-registry.listByStr20Contains_fptr_1306"(i8* %"$ud-registry.listByStr20Contains_envptr_1307", %TName_List_ByStr20* %1, [20 x i8]* %"$ud-registry.listByStr20Contains_bs_1308") + store %TName_Bool* %"$ud-registry.listByStr20Contains_call_1309", %TName_Bool** %b, align 8 + %"$gasrem_1310" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1311" = icmp ugt i64 1, %"$gasrem_1310" + br i1 %"$gascmp_1311", label %"$out_of_gas_1312", label %"$have_gas_1313" + +"$out_of_gas_1312": ; preds = %"$have_gas_1303" + call void @_out_of_gas() + br label %"$have_gas_1313" + +"$have_gas_1313": ; preds = %"$out_of_gas_1312", %"$have_gas_1303" + %"$consume_1314" = sub i64 %"$gasrem_1310", 1 + store i64 %"$consume_1314", i64* @_gasrem, align 8 + %"$BoolUtils.negb_33" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_1315" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_1316" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1315", 0 + %"$BoolUtils.negb_envptr_1317" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_1315", 1 + %"$b_1318" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$BoolUtils.negb_call_1319" = call %TName_Bool* %"$BoolUtils.negb_fptr_1316"(i8* %"$BoolUtils.negb_envptr_1317", %TName_Bool* %"$b_1318") + store %TName_Bool* %"$BoolUtils.negb_call_1319", %TName_Bool** %"$BoolUtils.negb_33", align 8 + %"$$BoolUtils.negb_33_1320" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_33", align 8 + store %TName_Bool* %"$$BoolUtils.negb_33_1320", %TName_Bool** %"$retval_146", align 8 + %"$$retval_146_1321" = load %TName_Bool*, %TName_Bool** %"$retval_146", align 8 + ret %TName_Bool* %"$$retval_146_1321" } -define internal %TName_Bool* @"$fundef_264"(%"$$fundef_264_env_432"* %0, [20 x i8]* %1) { +define internal %TName_Bool* @"$fundef_147"(%"$$fundef_147_env_302"* %0, %TName_List_ByStr20* %1, [20 x i8]* %2) { entry: - %bs = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_264_env_ListUtils.list_mem_1429" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %0, i32 0, i32 0 - %"$ListUtils.list_mem_envload_1430" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_264_env_ListUtils.list_mem_1429", align 8 + %bs = load [20 x i8], [20 x i8]* %2, align 1 + %"$$fundef_147_env_ListUtils.list_mem_1249" = getelementptr inbounds %"$$fundef_147_env_302", %"$$fundef_147_env_302"* %0, i32 0, i32 0 + %"$ListUtils.list_mem_envload_1250" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_147_env_ListUtils.list_mem_1249", align 8 %ListUtils.list_mem = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_envload_1430", { i8*, i8* }** %ListUtils.list_mem, align 8 - %"$$fundef_264_env_list_1431" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %0, i32 0, i32 1 - %"$list_envload_1432" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_264_env_list_1431", align 8 - %list = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$list_envload_1432", %TName_List_ByStr20** %list, align 8 - %"$$fundef_264_env_ud-registry.eqByStr20_1433" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %0, i32 0, i32 2 - %"$ud-registry.eqByStr20_envload_1434" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_264_env_ud-registry.eqByStr20_1433", align 8 + store { i8*, i8* }* %"$ListUtils.list_mem_envload_1250", { i8*, i8* }** %ListUtils.list_mem, align 8 + %"$$fundef_147_env_ud-registry.eqByStr20_1251" = getelementptr inbounds %"$$fundef_147_env_302", %"$$fundef_147_env_302"* %0, i32 0, i32 1 + %"$ud-registry.eqByStr20_envload_1252" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_147_env_ud-registry.eqByStr20_1251", align 8 %ud-registry.eqByStr20 = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_envload_1434", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 - %"$retval_265" = alloca %TName_Bool*, align 8 - %"$gasrem_1435" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1436" = icmp ugt i64 1, %"$gasrem_1435" - br i1 %"$gascmp_1436", label %"$out_of_gas_1437", label %"$have_gas_1438" + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_envload_1252", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 + %"$retval_148" = alloca %TName_Bool*, align 8 + %"$gasrem_1253" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1254" = icmp ugt i64 1, %"$gasrem_1253" + br i1 %"$gascmp_1254", label %"$out_of_gas_1255", label %"$have_gas_1256" -"$out_of_gas_1437": ; preds = %entry +"$out_of_gas_1255": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1438" + br label %"$have_gas_1256" -"$have_gas_1438": ; preds = %"$out_of_gas_1437", %entry - %"$consume_1439" = sub i64 %"$gasrem_1435", 1 - store i64 %"$consume_1439", i64* @_gasrem, align 8 +"$have_gas_1256": ; preds = %"$out_of_gas_1255", %entry + %"$consume_1257" = sub i64 %"$gasrem_1253", 1 + store i64 %"$consume_1257", i64* @_gasrem, align 8 %listMemByStr20 = alloca { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1440" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1441" = icmp ugt i64 1, %"$gasrem_1440" - br i1 %"$gascmp_1441", label %"$out_of_gas_1442", label %"$have_gas_1443" - -"$out_of_gas_1442": ; preds = %"$have_gas_1438" - call void @_out_of_gas() - br label %"$have_gas_1443" - -"$have_gas_1443": ; preds = %"$out_of_gas_1442", %"$have_gas_1438" - %"$consume_1444" = sub i64 %"$gasrem_1440", 1 - store i64 %"$consume_1444", i64* @_gasrem, align 8 - %"$ListUtils.list_mem_1445" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 - %"$ListUtils.list_mem_1446" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_mem_1445", i32 0 - %"$ListUtils.list_mem_1447" = bitcast { i8*, i8* }* %"$ListUtils.list_mem_1446" to { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_mem_1448" = load { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_mem_1447", align 8 - %"$ListUtils.list_mem_fptr_1449" = extractvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_mem_1448", 0 - %"$ListUtils.list_mem_envptr_1450" = extractvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_mem_1448", 1 - %"$ListUtils.list_mem_call_1451" = call { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_mem_fptr_1449"(i8* %"$ListUtils.list_mem_envptr_1450") - store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_mem_call_1451", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %listMemByStr20, align 8 - %"$gasrem_1452" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1453" = icmp ugt i64 1, %"$gasrem_1452" - br i1 %"$gascmp_1453", label %"$out_of_gas_1454", label %"$have_gas_1455" + %"$gasrem_1258" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1259" = icmp ugt i64 1, %"$gasrem_1258" + br i1 %"$gascmp_1259", label %"$out_of_gas_1260", label %"$have_gas_1261" -"$out_of_gas_1454": ; preds = %"$have_gas_1443" +"$out_of_gas_1260": ; preds = %"$have_gas_1256" call void @_out_of_gas() - br label %"$have_gas_1455" + br label %"$have_gas_1261" -"$have_gas_1455": ; preds = %"$out_of_gas_1454", %"$have_gas_1443" - %"$consume_1456" = sub i64 %"$gasrem_1452", 1 - store i64 %"$consume_1456", i64* @_gasrem, align 8 +"$have_gas_1261": ; preds = %"$out_of_gas_1260", %"$have_gas_1256" + %"$consume_1262" = sub i64 %"$gasrem_1258", 1 + store i64 %"$consume_1262", i64* @_gasrem, align 8 + %"$ListUtils.list_mem_1263" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 + %"$ListUtils.list_mem_1264" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_mem_1263", i32 0 + %"$ListUtils.list_mem_1265" = bitcast { i8*, i8* }* %"$ListUtils.list_mem_1264" to { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_mem_1266" = load { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_mem_1265", align 8 + %"$ListUtils.list_mem_fptr_1267" = extractvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_mem_1266", 0 + %"$ListUtils.list_mem_envptr_1268" = extractvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_mem_1266", 1 + %"$ListUtils.list_mem_call_1269" = call { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_mem_fptr_1267"(i8* %"$ListUtils.list_mem_envptr_1268") + store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_mem_call_1269", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %listMemByStr20, align 8 + %"$gasrem_1270" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1271" = icmp ugt i64 1, %"$gasrem_1270" + br i1 %"$gascmp_1271", label %"$out_of_gas_1272", label %"$have_gas_1273" + +"$out_of_gas_1272": ; preds = %"$have_gas_1261" + call void @_out_of_gas() + br label %"$have_gas_1273" + +"$have_gas_1273": ; preds = %"$out_of_gas_1272", %"$have_gas_1261" + %"$consume_1274" = sub i64 %"$gasrem_1270", 1 + store i64 %"$consume_1274", i64* @_gasrem, align 8 %"$listMemByStr20_30" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$listMemByStr20_1457" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %listMemByStr20, align 8 - %"$listMemByStr20_fptr_1458" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listMemByStr20_1457", 0 - %"$listMemByStr20_envptr_1459" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listMemByStr20_1457", 1 - %"$ud-registry.eqByStr20_1460" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 - %"$listMemByStr20_call_1461" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_fptr_1458"(i8* %"$listMemByStr20_envptr_1459", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_1460") - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_call_1461", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_30", align 8 + %"$listMemByStr20_1275" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %listMemByStr20, align 8 + %"$listMemByStr20_fptr_1276" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listMemByStr20_1275", 0 + %"$listMemByStr20_envptr_1277" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$listMemByStr20_1275", 1 + %"$ud-registry.eqByStr20_1278" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 + %"$listMemByStr20_call_1279" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_fptr_1276"(i8* %"$listMemByStr20_envptr_1277", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_1278") + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$listMemByStr20_call_1279", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_30", align 8 %"$listMemByStr20_31" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$listMemByStr20_30_1462" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_30", align 8 - %"$$listMemByStr20_30_fptr_1463" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_30_1462", 0 - %"$$listMemByStr20_30_envptr_1464" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_30_1462", 1 - %"$$listMemByStr20_30_bs_1465" = alloca [20 x i8], align 1 - store [20 x i8] %bs, [20 x i8]* %"$$listMemByStr20_30_bs_1465", align 1 - %"$$listMemByStr20_30_call_1466" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_30_fptr_1463"(i8* %"$$listMemByStr20_30_envptr_1464", [20 x i8]* %"$$listMemByStr20_30_bs_1465") - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_30_call_1466", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_31", align 8 + %"$$listMemByStr20_30_1280" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$listMemByStr20_30", align 8 + %"$$listMemByStr20_30_fptr_1281" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_30_1280", 0 + %"$$listMemByStr20_30_envptr_1282" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$listMemByStr20_30_1280", 1 + %"$$listMemByStr20_30_bs_1283" = alloca [20 x i8], align 1 + store [20 x i8] %bs, [20 x i8]* %"$$listMemByStr20_30_bs_1283", align 1 + %"$$listMemByStr20_30_call_1284" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_30_fptr_1281"(i8* %"$$listMemByStr20_30_envptr_1282", [20 x i8]* %"$$listMemByStr20_30_bs_1283") + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_30_call_1284", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_31", align 8 %"$listMemByStr20_32" = alloca %TName_Bool*, align 8 - %"$$listMemByStr20_31_1467" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_31", align 8 - %"$$listMemByStr20_31_fptr_1468" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_31_1467", 0 - %"$$listMemByStr20_31_envptr_1469" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_31_1467", 1 - %"$list_1470" = load %TName_List_ByStr20*, %TName_List_ByStr20** %list, align 8 - %"$$listMemByStr20_31_call_1471" = call %TName_Bool* %"$$listMemByStr20_31_fptr_1468"(i8* %"$$listMemByStr20_31_envptr_1469", %TName_List_ByStr20* %"$list_1470") - store %TName_Bool* %"$$listMemByStr20_31_call_1471", %TName_Bool** %"$listMemByStr20_32", align 8 - %"$$listMemByStr20_32_1472" = load %TName_Bool*, %TName_Bool** %"$listMemByStr20_32", align 8 - store %TName_Bool* %"$$listMemByStr20_32_1472", %TName_Bool** %"$retval_265", align 8 - %"$$retval_265_1473" = load %TName_Bool*, %TName_Bool** %"$retval_265", align 8 - ret %TName_Bool* %"$$retval_265_1473" -} - -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_262"(%"$$fundef_262_env_433"* %0, %TName_List_ByStr20* %1) { -entry: - %"$$fundef_262_env_ListUtils.list_mem_1410" = getelementptr inbounds %"$$fundef_262_env_433", %"$$fundef_262_env_433"* %0, i32 0, i32 0 - %"$ListUtils.list_mem_envload_1411" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_262_env_ListUtils.list_mem_1410", align 8 - %ListUtils.list_mem = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_envload_1411", { i8*, i8* }** %ListUtils.list_mem, align 8 - %"$$fundef_262_env_ud-registry.eqByStr20_1412" = getelementptr inbounds %"$$fundef_262_env_433", %"$$fundef_262_env_433"* %0, i32 0, i32 1 - %"$ud-registry.eqByStr20_envload_1413" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_262_env_ud-registry.eqByStr20_1412", align 8 - %ud-registry.eqByStr20 = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_envload_1413", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 - %"$retval_263" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1414" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1415" = icmp ugt i64 1, %"$gasrem_1414" - br i1 %"$gascmp_1415", label %"$out_of_gas_1416", label %"$have_gas_1417" - -"$out_of_gas_1416": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1417" - -"$have_gas_1417": ; preds = %"$out_of_gas_1416", %entry - %"$consume_1418" = sub i64 %"$gasrem_1414", 1 - store i64 %"$consume_1418", i64* @_gasrem, align 8 - %"$$fundef_264_envp_1419_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_264_envp_1419_salloc" = call i8* @_salloc(i8* %"$$fundef_264_envp_1419_load", i64 32) - %"$$fundef_264_envp_1419" = bitcast i8* %"$$fundef_264_envp_1419_salloc" to %"$$fundef_264_env_432"* - %"$$fundef_264_env_voidp_1421" = bitcast %"$$fundef_264_env_432"* %"$$fundef_264_envp_1419" to i8* - %"$$fundef_264_cloval_1422" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_264_env_432"*, [20 x i8]*)* @"$fundef_264" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_264_env_voidp_1421", 1 - %"$$fundef_264_env_ListUtils.list_mem_1423" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %"$$fundef_264_envp_1419", i32 0, i32 0 - %"$ListUtils.list_mem_1424" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_mem, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_1424", { i8*, i8* }** %"$$fundef_264_env_ListUtils.list_mem_1423", align 8 - %"$$fundef_264_env_list_1425" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %"$$fundef_264_envp_1419", i32 0, i32 1 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_264_env_list_1425", align 8 - %"$$fundef_264_env_ud-registry.eqByStr20_1426" = getelementptr inbounds %"$$fundef_264_env_432", %"$$fundef_264_env_432"* %"$$fundef_264_envp_1419", i32 0, i32 2 - %"$ud-registry.eqByStr20_1427" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %ud-registry.eqByStr20, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_1427", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_264_env_ud-registry.eqByStr20_1426", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_264_cloval_1422", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_263", align 8 - %"$$retval_263_1428" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_263", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_263_1428" + %"$$listMemByStr20_31_1285" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$listMemByStr20_31", align 8 + %"$$listMemByStr20_31_fptr_1286" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_31_1285", 0 + %"$$listMemByStr20_31_envptr_1287" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$listMemByStr20_31_1285", 1 + %"$$listMemByStr20_31_call_1288" = call %TName_Bool* %"$$listMemByStr20_31_fptr_1286"(i8* %"$$listMemByStr20_31_envptr_1287", %TName_List_ByStr20* %1) + store %TName_Bool* %"$$listMemByStr20_31_call_1288", %TName_Bool** %"$listMemByStr20_32", align 8 + %"$$listMemByStr20_32_1289" = load %TName_Bool*, %TName_Bool** %"$listMemByStr20_32", align 8 + store %TName_Bool* %"$$listMemByStr20_32_1289", %TName_Bool** %"$retval_148", align 8 + %"$$retval_148_1290" = load %TName_Bool*, %TName_Bool** %"$retval_148", align 8 + ret %TName_Bool* %"$$retval_148_1290" } -define internal %TName_Bool* @"$fundef_268"(%"$$fundef_268_env_434"* %0, [20 x i8]* %1) { +define internal %TName_Bool* @"$fundef_151"(%"$$fundef_151_env_303"* %0, [20 x i8]* %1) { entry: %bs2 = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_268_env_bs1_1394" = getelementptr inbounds %"$$fundef_268_env_434", %"$$fundef_268_env_434"* %0, i32 0, i32 0 - %"$bs1_envload_1395" = load [20 x i8], [20 x i8]* %"$$fundef_268_env_bs1_1394", align 1 + %"$$fundef_151_env_bs1_1233" = getelementptr inbounds %"$$fundef_151_env_303", %"$$fundef_151_env_303"* %0, i32 0, i32 0 + %"$bs1_envload_1234" = load [20 x i8], [20 x i8]* %"$$fundef_151_env_bs1_1233", align 1 %bs1 = alloca [20 x i8], align 1 - store [20 x i8] %"$bs1_envload_1395", [20 x i8]* %bs1, align 1 - %"$retval_269" = alloca %TName_Bool*, align 8 - %"$gasrem_1396" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1397" = icmp ugt i64 20, %"$gasrem_1396" - br i1 %"$gascmp_1397", label %"$out_of_gas_1398", label %"$have_gas_1399" - -"$out_of_gas_1398": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1399" - -"$have_gas_1399": ; preds = %"$out_of_gas_1398", %entry - %"$consume_1400" = sub i64 %"$gasrem_1396", 20 - store i64 %"$consume_1400", i64* @_gasrem, align 8 - %"$execptr_load_1401" = load i8*, i8** @_execptr, align 8 - %"$eq_bs1_1402" = alloca [20 x i8], align 1 - %"$bs1_1403" = load [20 x i8], [20 x i8]* %bs1, align 1 - store [20 x i8] %"$bs1_1403", [20 x i8]* %"$eq_bs1_1402", align 1 - %"$$eq_bs1_1402_1404" = bitcast [20 x i8]* %"$eq_bs1_1402" to i8* - %"$eq_bs2_1405" = alloca [20 x i8], align 1 - store [20 x i8] %bs2, [20 x i8]* %"$eq_bs2_1405", align 1 - %"$$eq_bs2_1405_1406" = bitcast [20 x i8]* %"$eq_bs2_1405" to i8* - %"$eq_call_1407" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1401", i32 20, i8* %"$$eq_bs1_1402_1404", i8* %"$$eq_bs2_1405_1406") - store %TName_Bool* %"$eq_call_1407", %TName_Bool** %"$retval_269", align 8 - %"$$retval_269_1409" = load %TName_Bool*, %TName_Bool** %"$retval_269", align 8 - ret %TName_Bool* %"$$retval_269_1409" + store [20 x i8] %"$bs1_envload_1234", [20 x i8]* %bs1, align 1 + %"$retval_152" = alloca %TName_Bool*, align 8 + %"$gasrem_1235" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1236" = icmp ugt i64 20, %"$gasrem_1235" + br i1 %"$gascmp_1236", label %"$out_of_gas_1237", label %"$have_gas_1238" + +"$out_of_gas_1237": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1238" + +"$have_gas_1238": ; preds = %"$out_of_gas_1237", %entry + %"$consume_1239" = sub i64 %"$gasrem_1235", 20 + store i64 %"$consume_1239", i64* @_gasrem, align 8 + %"$execptr_load_1240" = load i8*, i8** @_execptr, align 8 + %"$eq_bs1_1241" = alloca [20 x i8], align 1 + %"$bs1_1242" = load [20 x i8], [20 x i8]* %bs1, align 1 + store [20 x i8] %"$bs1_1242", [20 x i8]* %"$eq_bs1_1241", align 1 + %"$$eq_bs1_1241_1243" = bitcast [20 x i8]* %"$eq_bs1_1241" to i8* + %"$eq_bs2_1244" = alloca [20 x i8], align 1 + store [20 x i8] %bs2, [20 x i8]* %"$eq_bs2_1244", align 1 + %"$$eq_bs2_1244_1245" = bitcast [20 x i8]* %"$eq_bs2_1244" to i8* + %"$eq_call_1246" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_1240", i32 20, i8* %"$$eq_bs1_1241_1243", i8* %"$$eq_bs2_1244_1245") + store %TName_Bool* %"$eq_call_1246", %TName_Bool** %"$retval_152", align 8 + %"$$retval_152_1248" = load %TName_Bool*, %TName_Bool** %"$retval_152", align 8 + ret %TName_Bool* %"$$retval_152_1248" } -define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_266"(%"$$fundef_266_env_435"* %0, [20 x i8]* %1) { +define internal { %TName_Bool* (i8*, [20 x i8]*)*, i8* } @"$fundef_149"(%"$$fundef_149_env_304"* %0, [20 x i8]* %1) { entry: %bs1 = load [20 x i8], [20 x i8]* %1, align 1 - %"$retval_267" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1383" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1384" = icmp ugt i64 1, %"$gasrem_1383" - br i1 %"$gascmp_1384", label %"$out_of_gas_1385", label %"$have_gas_1386" - -"$out_of_gas_1385": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1386" - -"$have_gas_1386": ; preds = %"$out_of_gas_1385", %entry - %"$consume_1387" = sub i64 %"$gasrem_1383", 1 - store i64 %"$consume_1387", i64* @_gasrem, align 8 - %"$$fundef_268_envp_1388_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_268_envp_1388_salloc" = call i8* @_salloc(i8* %"$$fundef_268_envp_1388_load", i64 20) - %"$$fundef_268_envp_1388" = bitcast i8* %"$$fundef_268_envp_1388_salloc" to %"$$fundef_268_env_434"* - %"$$fundef_268_env_voidp_1390" = bitcast %"$$fundef_268_env_434"* %"$$fundef_268_envp_1388" to i8* - %"$$fundef_268_cloval_1391" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_268_env_434"*, [20 x i8]*)* @"$fundef_268" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_268_env_voidp_1390", 1 - %"$$fundef_268_env_bs1_1392" = getelementptr inbounds %"$$fundef_268_env_434", %"$$fundef_268_env_434"* %"$$fundef_268_envp_1388", i32 0, i32 0 - store [20 x i8] %bs1, [20 x i8]* %"$$fundef_268_env_bs1_1392", align 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_268_cloval_1391", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_267", align 8 - %"$$retval_267_1393" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_267", align 8 - ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_267_1393" + %"$retval_150" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 + %"$gasrem_1222" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1223" = icmp ugt i64 1, %"$gasrem_1222" + br i1 %"$gascmp_1223", label %"$out_of_gas_1224", label %"$have_gas_1225" + +"$out_of_gas_1224": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1225" + +"$have_gas_1225": ; preds = %"$out_of_gas_1224", %entry + %"$consume_1226" = sub i64 %"$gasrem_1222", 1 + store i64 %"$consume_1226", i64* @_gasrem, align 8 + %"$$fundef_151_envp_1227_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_151_envp_1227_salloc" = call i8* @_salloc(i8* %"$$fundef_151_envp_1227_load", i64 20) + %"$$fundef_151_envp_1227" = bitcast i8* %"$$fundef_151_envp_1227_salloc" to %"$$fundef_151_env_303"* + %"$$fundef_151_env_voidp_1229" = bitcast %"$$fundef_151_env_303"* %"$$fundef_151_envp_1227" to i8* + %"$$fundef_151_cloval_1230" = insertvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_151_env_303"*, [20 x i8]*)* @"$fundef_151" to %TName_Bool* (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_151_env_voidp_1229", 1 + %"$$fundef_151_env_bs1_1231" = getelementptr inbounds %"$$fundef_151_env_303", %"$$fundef_151_env_303"* %"$$fundef_151_envp_1227", i32 0, i32 0 + store [20 x i8] %bs1, [20 x i8]* %"$$fundef_151_env_bs1_1231", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$fundef_151_cloval_1230", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_150", align 8 + %"$$retval_150_1232" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$retval_150", align 8 + ret { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$retval_150_1232" } -define internal %TName_List_Message* @"$fundef_270"(%"$$fundef_270_env_436"* %0, i8* %1) { +define internal %TName_List_Message* @"$fundef_153"(%"$$fundef_153_env_305"* %0, i8* %1) { entry: - %"$$fundef_270_env_ud-registry.nilMessage_1369" = getelementptr inbounds %"$$fundef_270_env_436", %"$$fundef_270_env_436"* %0, i32 0, i32 0 - %"$ud-registry.nilMessage_envload_1370" = load %TName_List_Message*, %TName_List_Message** %"$$fundef_270_env_ud-registry.nilMessage_1369", align 8 + %"$$fundef_153_env_ud-registry.nilMessage_1208" = getelementptr inbounds %"$$fundef_153_env_305", %"$$fundef_153_env_305"* %0, i32 0, i32 0 + %"$ud-registry.nilMessage_envload_1209" = load %TName_List_Message*, %TName_List_Message** %"$$fundef_153_env_ud-registry.nilMessage_1208", align 8 %ud-registry.nilMessage = alloca %TName_List_Message*, align 8 - store %TName_List_Message* %"$ud-registry.nilMessage_envload_1370", %TName_List_Message** %ud-registry.nilMessage, align 8 - %"$retval_271" = alloca %TName_List_Message*, align 8 - %"$gasrem_1371" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1372" = icmp ugt i64 1, %"$gasrem_1371" - br i1 %"$gascmp_1372", label %"$out_of_gas_1373", label %"$have_gas_1374" - -"$out_of_gas_1373": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1374" - -"$have_gas_1374": ; preds = %"$out_of_gas_1373", %entry - %"$consume_1375" = sub i64 %"$gasrem_1371", 1 - store i64 %"$consume_1375", i64* @_gasrem, align 8 - %"$ud-registry.nilMessage_1376" = load %TName_List_Message*, %TName_List_Message** %ud-registry.nilMessage, align 8 - %"$adtval_1377_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1377_salloc" = call i8* @_salloc(i8* %"$adtval_1377_load", i64 17) - %"$adtval_1377" = bitcast i8* %"$adtval_1377_salloc" to %CName_Cons_Message* - %"$adtgep_1378" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1377", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1378", align 1 - %"$adtgep_1379" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1377", i32 0, i32 1 - store i8* %1, i8** %"$adtgep_1379", align 8 - %"$adtgep_1380" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1377", i32 0, i32 2 - store %TName_List_Message* %"$ud-registry.nilMessage_1376", %TName_List_Message** %"$adtgep_1380", align 8 - %"$adtptr_1381" = bitcast %CName_Cons_Message* %"$adtval_1377" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_1381", %TName_List_Message** %"$retval_271", align 8 - %"$$retval_271_1382" = load %TName_List_Message*, %TName_List_Message** %"$retval_271", align 8 - ret %TName_List_Message* %"$$retval_271_1382" + store %TName_List_Message* %"$ud-registry.nilMessage_envload_1209", %TName_List_Message** %ud-registry.nilMessage, align 8 + %"$retval_154" = alloca %TName_List_Message*, align 8 + %"$gasrem_1210" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1211" = icmp ugt i64 1, %"$gasrem_1210" + br i1 %"$gascmp_1211", label %"$out_of_gas_1212", label %"$have_gas_1213" + +"$out_of_gas_1212": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1213" + +"$have_gas_1213": ; preds = %"$out_of_gas_1212", %entry + %"$consume_1214" = sub i64 %"$gasrem_1210", 1 + store i64 %"$consume_1214", i64* @_gasrem, align 8 + %"$ud-registry.nilMessage_1215" = load %TName_List_Message*, %TName_List_Message** %ud-registry.nilMessage, align 8 + %"$adtval_1216_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1216_salloc" = call i8* @_salloc(i8* %"$adtval_1216_load", i64 17) + %"$adtval_1216" = bitcast i8* %"$adtval_1216_salloc" to %CName_Cons_Message* + %"$adtgep_1217" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1216", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1217", align 1 + %"$adtgep_1218" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1216", i32 0, i32 1 + store i8* %1, i8** %"$adtgep_1218", align 8 + %"$adtgep_1219" = getelementptr inbounds %CName_Cons_Message, %CName_Cons_Message* %"$adtval_1216", i32 0, i32 2 + store %TName_List_Message* %"$ud-registry.nilMessage_1215", %TName_List_Message** %"$adtgep_1219", align 8 + %"$adtptr_1220" = bitcast %CName_Cons_Message* %"$adtval_1216" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_1220", %TName_List_Message** %"$retval_154", align 8 + %"$$retval_154_1221" = load %TName_List_Message*, %TName_List_Message** %"$retval_154", align 8 + ret %TName_List_Message* %"$$retval_154_1221" } -define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_182"(%"$$fundef_182_env_437"* %0, [20 x i8]* %1) { +define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_93"(%"$$fundef_93_env_306"* %0, [20 x i8]* %1) { entry: %m = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_182_env_ListUtils.list_exists_1320" = getelementptr inbounds %"$$fundef_182_env_437", %"$$fundef_182_env_437"* %0, i32 0, i32 0 - %"$ListUtils.list_exists_envload_1321" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_182_env_ListUtils.list_exists_1320", align 8 + %"$$fundef_93_env_ListUtils.list_exists_1159" = getelementptr inbounds %"$$fundef_93_env_306", %"$$fundef_93_env_306"* %0, i32 0, i32 0 + %"$ListUtils.list_exists_envload_1160" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_93_env_ListUtils.list_exists_1159", align 8 %ListUtils.list_exists = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_envload_1321", { i8*, i8* }** %ListUtils.list_exists, align 8 - %"$$fundef_182_env_f_1322" = getelementptr inbounds %"$$fundef_182_env_437", %"$$fundef_182_env_437"* %0, i32 0, i32 1 - %"$f_envload_1323" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_182_env_f_1322", align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_envload_1160", { i8*, i8* }** %ListUtils.list_exists, align 8 + %"$$fundef_93_env_f_1161" = getelementptr inbounds %"$$fundef_93_env_306", %"$$fundef_93_env_306"* %0, i32 0, i32 1 + %"$f_envload_1162" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_93_env_f_1161", align 8 %f = alloca { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_1323", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$retval_183" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_1324" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1325" = icmp ugt i64 1, %"$gasrem_1324" - br i1 %"$gascmp_1325", label %"$out_of_gas_1326", label %"$have_gas_1327" + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_1162", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$retval_94" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_1163" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1164" = icmp ugt i64 1, %"$gasrem_1163" + br i1 %"$gascmp_1164", label %"$out_of_gas_1165", label %"$have_gas_1166" -"$out_of_gas_1326": ; preds = %entry +"$out_of_gas_1165": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1327" + br label %"$have_gas_1166" -"$have_gas_1327": ; preds = %"$out_of_gas_1326", %entry - %"$consume_1328" = sub i64 %"$gasrem_1324", 1 - store i64 %"$consume_1328", i64* @_gasrem, align 8 +"$have_gas_1166": ; preds = %"$out_of_gas_1165", %entry + %"$consume_1167" = sub i64 %"$gasrem_1163", 1 + store i64 %"$consume_1167", i64* @_gasrem, align 8 %ex_pred = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1329" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1330" = icmp ugt i64 1, %"$gasrem_1329" - br i1 %"$gascmp_1330", label %"$out_of_gas_1331", label %"$have_gas_1332" + %"$gasrem_1168" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1169" = icmp ugt i64 1, %"$gasrem_1168" + br i1 %"$gascmp_1169", label %"$out_of_gas_1170", label %"$have_gas_1171" -"$out_of_gas_1331": ; preds = %"$have_gas_1327" +"$out_of_gas_1170": ; preds = %"$have_gas_1166" call void @_out_of_gas() - br label %"$have_gas_1332" + br label %"$have_gas_1171" -"$have_gas_1332": ; preds = %"$out_of_gas_1331", %"$have_gas_1327" - %"$consume_1333" = sub i64 %"$gasrem_1329", 1 - store i64 %"$consume_1333", i64* @_gasrem, align 8 +"$have_gas_1171": ; preds = %"$out_of_gas_1170", %"$have_gas_1166" + %"$consume_1172" = sub i64 %"$gasrem_1168", 1 + store i64 %"$consume_1172", i64* @_gasrem, align 8 %"$f_28" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_1334" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$f_fptr_1335" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1334", 0 - %"$f_envptr_1336" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1334", 1 - %"$f_m_1337" = alloca [20 x i8], align 1 - store [20 x i8] %m, [20 x i8]* %"$f_m_1337", align 1 - %"$f_call_1338" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_fptr_1335"(i8* %"$f_envptr_1336", [20 x i8]* %"$f_m_1337") - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_call_1338", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_28", align 8 - %"$$f_28_1339" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_28", align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$f_28_1339", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 - %"$gasrem_1340" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1341" = icmp ugt i64 1, %"$gasrem_1340" - br i1 %"$gascmp_1341", label %"$out_of_gas_1342", label %"$have_gas_1343" - -"$out_of_gas_1342": ; preds = %"$have_gas_1332" - call void @_out_of_gas() - br label %"$have_gas_1343" - -"$have_gas_1343": ; preds = %"$out_of_gas_1342", %"$have_gas_1332" - %"$consume_1344" = sub i64 %"$gasrem_1340", 1 - store i64 %"$consume_1344", i64* @_gasrem, align 8 + %"$f_1173" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$f_fptr_1174" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1173", 0 + %"$f_envptr_1175" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_1173", 1 + %"$f_m_1176" = alloca [20 x i8], align 1 + store [20 x i8] %m, [20 x i8]* %"$f_m_1176", align 1 + %"$f_call_1177" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_fptr_1174"(i8* %"$f_envptr_1175", [20 x i8]* %"$f_m_1176") + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_call_1177", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_28", align 8 + %"$$f_28_1178" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$f_28", align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$f_28_1178", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 + %"$gasrem_1179" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1180" = icmp ugt i64 1, %"$gasrem_1179" + br i1 %"$gascmp_1180", label %"$out_of_gas_1181", label %"$have_gas_1182" + +"$out_of_gas_1181": ; preds = %"$have_gas_1171" + call void @_out_of_gas() + br label %"$have_gas_1182" + +"$have_gas_1182": ; preds = %"$out_of_gas_1181", %"$have_gas_1171" + %"$consume_1183" = sub i64 %"$gasrem_1179", 1 + store i64 %"$consume_1183", i64* @_gasrem, align 8 %ex = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1345" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1346" = icmp ugt i64 1, %"$gasrem_1345" - br i1 %"$gascmp_1346", label %"$out_of_gas_1347", label %"$have_gas_1348" - -"$out_of_gas_1347": ; preds = %"$have_gas_1343" - call void @_out_of_gas() - br label %"$have_gas_1348" - -"$have_gas_1348": ; preds = %"$out_of_gas_1347", %"$have_gas_1343" - %"$consume_1349" = sub i64 %"$gasrem_1345", 1 - store i64 %"$consume_1349", i64* @_gasrem, align 8 - %"$ListUtils.list_exists_1350" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 - %"$ListUtils.list_exists_1351" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_exists_1350", i32 0 - %"$ListUtils.list_exists_1352" = bitcast { i8*, i8* }* %"$ListUtils.list_exists_1351" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_exists_1353" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_exists_1352", align 8 - %"$ListUtils.list_exists_fptr_1354" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1353", 0 - %"$ListUtils.list_exists_envptr_1355" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1353", 1 - %"$ListUtils.list_exists_call_1356" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_fptr_1354"(i8* %"$ListUtils.list_exists_envptr_1355") - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_call_1356", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8 - %"$gasrem_1357" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1358" = icmp ugt i64 1, %"$gasrem_1357" - br i1 %"$gascmp_1358", label %"$out_of_gas_1359", label %"$have_gas_1360" - -"$out_of_gas_1359": ; preds = %"$have_gas_1348" - call void @_out_of_gas() - br label %"$have_gas_1360" - -"$have_gas_1360": ; preds = %"$out_of_gas_1359", %"$have_gas_1348" - %"$consume_1361" = sub i64 %"$gasrem_1357", 1 - store i64 %"$consume_1361", i64* @_gasrem, align 8 + %"$gasrem_1184" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1185" = icmp ugt i64 1, %"$gasrem_1184" + br i1 %"$gascmp_1185", label %"$out_of_gas_1186", label %"$have_gas_1187" + +"$out_of_gas_1186": ; preds = %"$have_gas_1182" + call void @_out_of_gas() + br label %"$have_gas_1187" + +"$have_gas_1187": ; preds = %"$out_of_gas_1186", %"$have_gas_1182" + %"$consume_1188" = sub i64 %"$gasrem_1184", 1 + store i64 %"$consume_1188", i64* @_gasrem, align 8 + %"$ListUtils.list_exists_1189" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 + %"$ListUtils.list_exists_1190" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_exists_1189", i32 0 + %"$ListUtils.list_exists_1191" = bitcast { i8*, i8* }* %"$ListUtils.list_exists_1190" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_exists_1192" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_exists_1191", align 8 + %"$ListUtils.list_exists_fptr_1193" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1192", 0 + %"$ListUtils.list_exists_envptr_1194" = extractvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_exists_1192", 1 + %"$ListUtils.list_exists_call_1195" = call { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_fptr_1193"(i8* %"$ListUtils.list_exists_envptr_1194") + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_exists_call_1195", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8 + %"$gasrem_1196" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1197" = icmp ugt i64 1, %"$gasrem_1196" + br i1 %"$gascmp_1197", label %"$out_of_gas_1198", label %"$have_gas_1199" + +"$out_of_gas_1198": ; preds = %"$have_gas_1187" + call void @_out_of_gas() + br label %"$have_gas_1199" + +"$have_gas_1199": ; preds = %"$out_of_gas_1198", %"$have_gas_1187" + %"$consume_1200" = sub i64 %"$gasrem_1196", 1 + store i64 %"$consume_1200", i64* @_gasrem, align 8 %"$ex_29" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$ex_1362" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8 - %"$ex_fptr_1363" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1362", 0 - %"$ex_envptr_1364" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1362", 1 - %"$ex_pred_1365" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 - %"$ex_call_1366" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_fptr_1363"(i8* %"$ex_envptr_1364", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ex_pred_1365") - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_call_1366", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_29", align 8 - %"$$ex_29_1367" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_29", align 8 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$ex_29_1367", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_183", align 8 - %"$$retval_183_1368" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_183", align 8 - ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_183_1368" + %"$ex_1201" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %ex, align 8 + %"$ex_fptr_1202" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1201", 0 + %"$ex_envptr_1203" = extractvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ex_1201", 1 + %"$ex_pred_1204" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %ex_pred, align 8 + %"$ex_call_1205" = call { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_fptr_1202"(i8* %"$ex_envptr_1203", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ex_pred_1204") + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$ex_call_1205", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_29", align 8 + %"$$ex_29_1206" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$ex_29", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$ex_29_1206", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_94", align 8 + %"$$retval_94_1207" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_94", align 8 + ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_94_1207" } -define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_180"(%"$$fundef_180_env_438"* %0, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) { +define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_91"(%"$$fundef_91_env_307"* %0, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) { entry: - %"$$fundef_180_env_ListUtils.list_exists_1305" = getelementptr inbounds %"$$fundef_180_env_438", %"$$fundef_180_env_438"* %0, i32 0, i32 0 - %"$ListUtils.list_exists_envload_1306" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_180_env_ListUtils.list_exists_1305", align 8 + %"$$fundef_91_env_ListUtils.list_exists_1144" = getelementptr inbounds %"$$fundef_91_env_307", %"$$fundef_91_env_307"* %0, i32 0, i32 0 + %"$ListUtils.list_exists_envload_1145" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_91_env_ListUtils.list_exists_1144", align 8 %ListUtils.list_exists = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_envload_1306", { i8*, i8* }** %ListUtils.list_exists, align 8 - %"$retval_181" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1307" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1308" = icmp ugt i64 1, %"$gasrem_1307" - br i1 %"$gascmp_1308", label %"$out_of_gas_1309", label %"$have_gas_1310" - -"$out_of_gas_1309": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1310" - -"$have_gas_1310": ; preds = %"$out_of_gas_1309", %entry - %"$consume_1311" = sub i64 %"$gasrem_1307", 1 - store i64 %"$consume_1311", i64* @_gasrem, align 8 - %"$$fundef_182_envp_1312_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_182_envp_1312_salloc" = call i8* @_salloc(i8* %"$$fundef_182_envp_1312_load", i64 24) - %"$$fundef_182_envp_1312" = bitcast i8* %"$$fundef_182_envp_1312_salloc" to %"$$fundef_182_env_437"* - %"$$fundef_182_env_voidp_1314" = bitcast %"$$fundef_182_env_437"* %"$$fundef_182_envp_1312" to i8* - %"$$fundef_182_cloval_1315" = insertvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_182_env_437"*, [20 x i8]*)* @"$fundef_182" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_182_env_voidp_1314", 1 - %"$$fundef_182_env_ListUtils.list_exists_1316" = getelementptr inbounds %"$$fundef_182_env_437", %"$$fundef_182_env_437"* %"$$fundef_182_envp_1312", i32 0, i32 0 - %"$ListUtils.list_exists_1317" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_1317", { i8*, i8* }** %"$$fundef_182_env_ListUtils.list_exists_1316", align 8 - %"$$fundef_182_env_f_1318" = getelementptr inbounds %"$$fundef_182_env_437", %"$$fundef_182_env_437"* %"$$fundef_182_envp_1312", i32 0, i32 1 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_182_env_f_1318", align 8 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_182_cloval_1315", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_181", align 8 - %"$$retval_181_1319" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_181", align 8 - ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_181_1319" + store { i8*, i8* }* %"$ListUtils.list_exists_envload_1145", { i8*, i8* }** %ListUtils.list_exists, align 8 + %"$retval_92" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 + %"$gasrem_1146" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1147" = icmp ugt i64 1, %"$gasrem_1146" + br i1 %"$gascmp_1147", label %"$out_of_gas_1148", label %"$have_gas_1149" + +"$out_of_gas_1148": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1149" + +"$have_gas_1149": ; preds = %"$out_of_gas_1148", %entry + %"$consume_1150" = sub i64 %"$gasrem_1146", 1 + store i64 %"$consume_1150", i64* @_gasrem, align 8 + %"$$fundef_93_envp_1151_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_93_envp_1151_salloc" = call i8* @_salloc(i8* %"$$fundef_93_envp_1151_load", i64 24) + %"$$fundef_93_envp_1151" = bitcast i8* %"$$fundef_93_envp_1151_salloc" to %"$$fundef_93_env_306"* + %"$$fundef_93_env_voidp_1153" = bitcast %"$$fundef_93_env_306"* %"$$fundef_93_envp_1151" to i8* + %"$$fundef_93_cloval_1154" = insertvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_93_env_306"*, [20 x i8]*)* @"$fundef_93" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_93_env_voidp_1153", 1 + %"$$fundef_93_env_ListUtils.list_exists_1155" = getelementptr inbounds %"$$fundef_93_env_306", %"$$fundef_93_env_306"* %"$$fundef_93_envp_1151", i32 0, i32 0 + %"$ListUtils.list_exists_1156" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_1156", { i8*, i8* }** %"$$fundef_93_env_ListUtils.list_exists_1155", align 8 + %"$$fundef_93_env_f_1157" = getelementptr inbounds %"$$fundef_93_env_306", %"$$fundef_93_env_306"* %"$$fundef_93_envp_1151", i32 0, i32 1 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_93_env_f_1157", align 8 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_93_cloval_1154", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_92", align 8 + %"$$retval_92_1158" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_92", align 8 + ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_92_1158" } -define internal { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_178"(%"$$fundef_178_env_439"* %0) { +define internal { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_89"(%"$$fundef_89_env_308"* %0) { entry: - %"$$fundef_178_env_ListUtils.list_exists_1291" = getelementptr inbounds %"$$fundef_178_env_439", %"$$fundef_178_env_439"* %0, i32 0, i32 0 - %"$ListUtils.list_exists_envload_1292" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_178_env_ListUtils.list_exists_1291", align 8 + %"$$fundef_89_env_ListUtils.list_exists_1130" = getelementptr inbounds %"$$fundef_89_env_308", %"$$fundef_89_env_308"* %0, i32 0, i32 0 + %"$ListUtils.list_exists_envload_1131" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_89_env_ListUtils.list_exists_1130", align 8 %ListUtils.list_exists = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_envload_1292", { i8*, i8* }** %ListUtils.list_exists, align 8 - %"$retval_179" = alloca { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1293" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1294" = icmp ugt i64 1, %"$gasrem_1293" - br i1 %"$gascmp_1294", label %"$out_of_gas_1295", label %"$have_gas_1296" - -"$out_of_gas_1295": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1296" - -"$have_gas_1296": ; preds = %"$out_of_gas_1295", %entry - %"$consume_1297" = sub i64 %"$gasrem_1293", 1 - store i64 %"$consume_1297", i64* @_gasrem, align 8 - %"$$fundef_180_envp_1298_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_180_envp_1298_salloc" = call i8* @_salloc(i8* %"$$fundef_180_envp_1298_load", i64 8) - %"$$fundef_180_envp_1298" = bitcast i8* %"$$fundef_180_envp_1298_salloc" to %"$$fundef_180_env_438"* - %"$$fundef_180_env_voidp_1300" = bitcast %"$$fundef_180_env_438"* %"$$fundef_180_envp_1298" to i8* - %"$$fundef_180_cloval_1301" = insertvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* bitcast ({ { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_180_env_438"*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_180" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_180_env_voidp_1300", 1 - %"$$fundef_180_env_ListUtils.list_exists_1302" = getelementptr inbounds %"$$fundef_180_env_438", %"$$fundef_180_env_438"* %"$$fundef_180_envp_1298", i32 0, i32 0 - %"$ListUtils.list_exists_1303" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_1303", { i8*, i8* }** %"$$fundef_180_env_ListUtils.list_exists_1302", align 8 - store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_180_cloval_1301", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_179", align 8 - %"$$retval_179_1304" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_179", align 8 - ret { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_179_1304" + store { i8*, i8* }* %"$ListUtils.list_exists_envload_1131", { i8*, i8* }** %ListUtils.list_exists, align 8 + %"$retval_90" = alloca { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 + %"$gasrem_1132" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1133" = icmp ugt i64 1, %"$gasrem_1132" + br i1 %"$gascmp_1133", label %"$out_of_gas_1134", label %"$have_gas_1135" + +"$out_of_gas_1134": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1135" + +"$have_gas_1135": ; preds = %"$out_of_gas_1134", %entry + %"$consume_1136" = sub i64 %"$gasrem_1132", 1 + store i64 %"$consume_1136", i64* @_gasrem, align 8 + %"$$fundef_91_envp_1137_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_91_envp_1137_salloc" = call i8* @_salloc(i8* %"$$fundef_91_envp_1137_load", i64 8) + %"$$fundef_91_envp_1137" = bitcast i8* %"$$fundef_91_envp_1137_salloc" to %"$$fundef_91_env_307"* + %"$$fundef_91_env_voidp_1139" = bitcast %"$$fundef_91_env_307"* %"$$fundef_91_envp_1137" to i8* + %"$$fundef_91_cloval_1140" = insertvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* bitcast ({ { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_91_env_307"*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_91" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_91_env_voidp_1139", 1 + %"$$fundef_91_env_ListUtils.list_exists_1141" = getelementptr inbounds %"$$fundef_91_env_307", %"$$fundef_91_env_307"* %"$$fundef_91_envp_1137", i32 0, i32 0 + %"$ListUtils.list_exists_1142" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_exists, align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_1142", { i8*, i8* }** %"$$fundef_91_env_ListUtils.list_exists_1141", align 8 + store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_91_cloval_1140", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_90", align 8 + %"$$retval_90_1143" = load { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_90", align 8 + ret { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_90_1143" } -define internal %TName_Bool* @"$fundef_188"(%"$$fundef_188_env_440"* %0, %TName_List_ByStr20* %1) { +define internal %TName_Bool* @"$fundef_99"(%"$$fundef_99_env_309"* %0, %TName_List_ByStr20* %1) { entry: - %"$$fundef_188_env_ListUtils.list_find_1217" = getelementptr inbounds %"$$fundef_188_env_440", %"$$fundef_188_env_440"* %0, i32 0, i32 0 - %"$ListUtils.list_find_envload_1218" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_188_env_ListUtils.list_find_1217", align 8 + %"$$fundef_99_env_ListUtils.list_find_1056" = getelementptr inbounds %"$$fundef_99_env_309", %"$$fundef_99_env_309"* %0, i32 0, i32 0 + %"$ListUtils.list_find_envload_1057" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_99_env_ListUtils.list_find_1056", align 8 %ListUtils.list_find = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_envload_1218", { i8*, i8* }** %ListUtils.list_find, align 8 - %"$$fundef_188_env_p_1219" = getelementptr inbounds %"$$fundef_188_env_440", %"$$fundef_188_env_440"* %0, i32 0, i32 1 - %"$p_envload_1220" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_188_env_p_1219", align 8 + store { i8*, i8* }* %"$ListUtils.list_find_envload_1057", { i8*, i8* }** %ListUtils.list_find, align 8 + %"$$fundef_99_env_p_1058" = getelementptr inbounds %"$$fundef_99_env_309", %"$$fundef_99_env_309"* %0, i32 0, i32 1 + %"$p_envload_1059" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_99_env_p_1058", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1220", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$retval_189" = alloca %TName_Bool*, align 8 - %"$gasrem_1221" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1222" = icmp ugt i64 1, %"$gasrem_1221" - br i1 %"$gascmp_1222", label %"$out_of_gas_1223", label %"$have_gas_1224" + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1059", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$retval_100" = alloca %TName_Bool*, align 8 + %"$gasrem_1060" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1061" = icmp ugt i64 1, %"$gasrem_1060" + br i1 %"$gascmp_1061", label %"$out_of_gas_1062", label %"$have_gas_1063" -"$out_of_gas_1223": ; preds = %entry +"$out_of_gas_1062": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1224" + br label %"$have_gas_1063" -"$have_gas_1224": ; preds = %"$out_of_gas_1223", %entry - %"$consume_1225" = sub i64 %"$gasrem_1221", 1 - store i64 %"$consume_1225", i64* @_gasrem, align 8 +"$have_gas_1063": ; preds = %"$out_of_gas_1062", %entry + %"$consume_1064" = sub i64 %"$gasrem_1060", 1 + store i64 %"$consume_1064", i64* @_gasrem, align 8 %find = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1226" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1227" = icmp ugt i64 1, %"$gasrem_1226" - br i1 %"$gascmp_1227", label %"$out_of_gas_1228", label %"$have_gas_1229" - -"$out_of_gas_1228": ; preds = %"$have_gas_1224" - call void @_out_of_gas() - br label %"$have_gas_1229" - -"$have_gas_1229": ; preds = %"$out_of_gas_1228", %"$have_gas_1224" - %"$consume_1230" = sub i64 %"$gasrem_1226", 1 - store i64 %"$consume_1230", i64* @_gasrem, align 8 - %"$ListUtils.list_find_1231" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 - %"$ListUtils.list_find_1232" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_find_1231", i32 0 - %"$ListUtils.list_find_1233" = bitcast { i8*, i8* }* %"$ListUtils.list_find_1232" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_find_1234" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_find_1233", align 8 - %"$ListUtils.list_find_fptr_1235" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1234", 0 - %"$ListUtils.list_find_envptr_1236" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1234", 1 - %"$ListUtils.list_find_call_1237" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_fptr_1235"(i8* %"$ListUtils.list_find_envptr_1236") - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_call_1237", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8 - %"$gasrem_1238" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1239" = icmp ugt i64 1, %"$gasrem_1238" - br i1 %"$gascmp_1239", label %"$out_of_gas_1240", label %"$have_gas_1241" - -"$out_of_gas_1240": ; preds = %"$have_gas_1229" - call void @_out_of_gas() - br label %"$have_gas_1241" - -"$have_gas_1241": ; preds = %"$out_of_gas_1240", %"$have_gas_1229" - %"$consume_1242" = sub i64 %"$gasrem_1238", 1 - store i64 %"$consume_1242", i64* @_gasrem, align 8 + %"$gasrem_1065" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1066" = icmp ugt i64 1, %"$gasrem_1065" + br i1 %"$gascmp_1066", label %"$out_of_gas_1067", label %"$have_gas_1068" + +"$out_of_gas_1067": ; preds = %"$have_gas_1063" + call void @_out_of_gas() + br label %"$have_gas_1068" + +"$have_gas_1068": ; preds = %"$out_of_gas_1067", %"$have_gas_1063" + %"$consume_1069" = sub i64 %"$gasrem_1065", 1 + store i64 %"$consume_1069", i64* @_gasrem, align 8 + %"$ListUtils.list_find_1070" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 + %"$ListUtils.list_find_1071" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_find_1070", i32 0 + %"$ListUtils.list_find_1072" = bitcast { i8*, i8* }* %"$ListUtils.list_find_1071" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_find_1073" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$ListUtils.list_find_1072", align 8 + %"$ListUtils.list_find_fptr_1074" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1073", 0 + %"$ListUtils.list_find_envptr_1075" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$ListUtils.list_find_1073", 1 + %"$ListUtils.list_find_call_1076" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_fptr_1074"(i8* %"$ListUtils.list_find_envptr_1075") + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$ListUtils.list_find_call_1076", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8 + %"$gasrem_1077" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1078" = icmp ugt i64 1, %"$gasrem_1077" + br i1 %"$gascmp_1078", label %"$out_of_gas_1079", label %"$have_gas_1080" + +"$out_of_gas_1079": ; preds = %"$have_gas_1068" + call void @_out_of_gas() + br label %"$have_gas_1080" + +"$have_gas_1080": ; preds = %"$out_of_gas_1079", %"$have_gas_1068" + %"$consume_1081" = sub i64 %"$gasrem_1077", 1 + store i64 %"$consume_1081", i64* @_gasrem, align 8 %search = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_1243" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1244" = icmp ugt i64 1, %"$gasrem_1243" - br i1 %"$gascmp_1244", label %"$out_of_gas_1245", label %"$have_gas_1246" + %"$gasrem_1082" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1083" = icmp ugt i64 1, %"$gasrem_1082" + br i1 %"$gascmp_1083", label %"$out_of_gas_1084", label %"$have_gas_1085" -"$out_of_gas_1245": ; preds = %"$have_gas_1241" +"$out_of_gas_1084": ; preds = %"$have_gas_1080" call void @_out_of_gas() - br label %"$have_gas_1246" + br label %"$have_gas_1085" -"$have_gas_1246": ; preds = %"$out_of_gas_1245", %"$have_gas_1241" - %"$consume_1247" = sub i64 %"$gasrem_1243", 1 - store i64 %"$consume_1247", i64* @_gasrem, align 8 +"$have_gas_1085": ; preds = %"$out_of_gas_1084", %"$have_gas_1080" + %"$consume_1086" = sub i64 %"$gasrem_1082", 1 + store i64 %"$consume_1086", i64* @_gasrem, align 8 %"$find_26" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$find_1248" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8 - %"$find_fptr_1249" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1248", 0 - %"$find_envptr_1250" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1248", 1 - %"$p_1251" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$find_call_1252" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_fptr_1249"(i8* %"$find_envptr_1250", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1251") - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_call_1252", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_26", align 8 + %"$find_1087" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %find, align 8 + %"$find_fptr_1088" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1087", 0 + %"$find_envptr_1089" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$find_1087", 1 + %"$p_1090" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$find_call_1091" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_fptr_1088"(i8* %"$find_envptr_1089", { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1090") + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$find_call_1091", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_26", align 8 %"$find_27" = alloca %TName_Option_ByStr20*, align 8 - %"$$find_26_1253" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_26", align 8 - %"$$find_26_fptr_1254" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_26_1253", 0 - %"$$find_26_envptr_1255" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_26_1253", 1 - %"$$find_26_call_1256" = call %TName_Option_ByStr20* %"$$find_26_fptr_1254"(i8* %"$$find_26_envptr_1255", %TName_List_ByStr20* %1) - store %TName_Option_ByStr20* %"$$find_26_call_1256", %TName_Option_ByStr20** %"$find_27", align 8 - %"$$find_27_1257" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$find_27", align 8 - store %TName_Option_ByStr20* %"$$find_27_1257", %TName_Option_ByStr20** %search, align 8 - %"$gasrem_1258" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1259" = icmp ugt i64 2, %"$gasrem_1258" - br i1 %"$gascmp_1259", label %"$out_of_gas_1260", label %"$have_gas_1261" + %"$$find_26_1092" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$find_26", align 8 + %"$$find_26_fptr_1093" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_26_1092", 0 + %"$$find_26_envptr_1094" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$find_26_1092", 1 + %"$$find_26_call_1095" = call %TName_Option_ByStr20* %"$$find_26_fptr_1093"(i8* %"$$find_26_envptr_1094", %TName_List_ByStr20* %1) + store %TName_Option_ByStr20* %"$$find_26_call_1095", %TName_Option_ByStr20** %"$find_27", align 8 + %"$$find_27_1096" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$find_27", align 8 + store %TName_Option_ByStr20* %"$$find_27_1096", %TName_Option_ByStr20** %search, align 8 + %"$gasrem_1097" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1098" = icmp ugt i64 2, %"$gasrem_1097" + br i1 %"$gascmp_1098", label %"$out_of_gas_1099", label %"$have_gas_1100" -"$out_of_gas_1260": ; preds = %"$have_gas_1246" +"$out_of_gas_1099": ; preds = %"$have_gas_1085" call void @_out_of_gas() - br label %"$have_gas_1261" + br label %"$have_gas_1100" -"$have_gas_1261": ; preds = %"$out_of_gas_1260", %"$have_gas_1246" - %"$consume_1262" = sub i64 %"$gasrem_1258", 2 - store i64 %"$consume_1262", i64* @_gasrem, align 8 - %"$search_1264" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %search, align 8 - %"$search_tag_1265" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$search_1264", i32 0, i32 0 - %"$search_tag_1266" = load i8, i8* %"$search_tag_1265", align 1 - switch i8 %"$search_tag_1266", label %"$empty_default_1267" [ - i8 0, label %"$Some_1268" - i8 1, label %"$None_1280" +"$have_gas_1100": ; preds = %"$out_of_gas_1099", %"$have_gas_1085" + %"$consume_1101" = sub i64 %"$gasrem_1097", 2 + store i64 %"$consume_1101", i64* @_gasrem, align 8 + %"$search_1103" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %search, align 8 + %"$search_tag_1104" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$search_1103", i32 0, i32 0 + %"$search_tag_1105" = load i8, i8* %"$search_tag_1104", align 1 + switch i8 %"$search_tag_1105", label %"$empty_default_1106" [ + i8 0, label %"$Some_1107" + i8 1, label %"$None_1119" ] -"$Some_1268": ; preds = %"$have_gas_1261" - %"$search_1269" = bitcast %TName_Option_ByStr20* %"$search_1264" to %CName_Some_ByStr20* - %"$$search_3_gep_1270" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$search_1269", i32 0, i32 1 - %"$$search_3_load_1271" = load [20 x i8], [20 x i8]* %"$$search_3_gep_1270", align 1 +"$Some_1107": ; preds = %"$have_gas_1100" + %"$search_1108" = bitcast %TName_Option_ByStr20* %"$search_1103" to %CName_Some_ByStr20* + %"$$search_3_gep_1109" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$search_1108", i32 0, i32 1 + %"$$search_3_load_1110" = load [20 x i8], [20 x i8]* %"$$search_3_gep_1109", align 1 %"$search_3" = alloca [20 x i8], align 1 - store [20 x i8] %"$$search_3_load_1271", [20 x i8]* %"$search_3", align 1 - %"$gasrem_1272" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1273" = icmp ugt i64 1, %"$gasrem_1272" - br i1 %"$gascmp_1273", label %"$out_of_gas_1274", label %"$have_gas_1275" - -"$out_of_gas_1274": ; preds = %"$Some_1268" - call void @_out_of_gas() - br label %"$have_gas_1275" - -"$have_gas_1275": ; preds = %"$out_of_gas_1274", %"$Some_1268" - %"$consume_1276" = sub i64 %"$gasrem_1272", 1 - store i64 %"$consume_1276", i64* @_gasrem, align 8 - %"$adtval_1277_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1277_salloc" = call i8* @_salloc(i8* %"$adtval_1277_load", i64 1) - %"$adtval_1277" = bitcast i8* %"$adtval_1277_salloc" to %CName_True* - %"$adtgep_1278" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1277", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1278", align 1 - %"$adtptr_1279" = bitcast %CName_True* %"$adtval_1277" to %TName_Bool* - store %TName_Bool* %"$adtptr_1279", %TName_Bool** %"$retval_189", align 8 - br label %"$matchsucc_1263" - -"$None_1280": ; preds = %"$have_gas_1261" - %"$search_1281" = bitcast %TName_Option_ByStr20* %"$search_1264" to %CName_None_ByStr20* - %"$gasrem_1282" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1283" = icmp ugt i64 1, %"$gasrem_1282" - br i1 %"$gascmp_1283", label %"$out_of_gas_1284", label %"$have_gas_1285" - -"$out_of_gas_1284": ; preds = %"$None_1280" - call void @_out_of_gas() - br label %"$have_gas_1285" - -"$have_gas_1285": ; preds = %"$out_of_gas_1284", %"$None_1280" - %"$consume_1286" = sub i64 %"$gasrem_1282", 1 - store i64 %"$consume_1286", i64* @_gasrem, align 8 - %"$adtval_1287_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1287_salloc" = call i8* @_salloc(i8* %"$adtval_1287_load", i64 1) - %"$adtval_1287" = bitcast i8* %"$adtval_1287_salloc" to %CName_False* - %"$adtgep_1288" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1287", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1288", align 1 - %"$adtptr_1289" = bitcast %CName_False* %"$adtval_1287" to %TName_Bool* - store %TName_Bool* %"$adtptr_1289", %TName_Bool** %"$retval_189", align 8 - br label %"$matchsucc_1263" - -"$empty_default_1267": ; preds = %"$have_gas_1261" - br label %"$matchsucc_1263" - -"$matchsucc_1263": ; preds = %"$have_gas_1285", %"$have_gas_1275", %"$empty_default_1267" - %"$$retval_189_1290" = load %TName_Bool*, %TName_Bool** %"$retval_189", align 8 - ret %TName_Bool* %"$$retval_189_1290" + store [20 x i8] %"$$search_3_load_1110", [20 x i8]* %"$search_3", align 1 + %"$gasrem_1111" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1112" = icmp ugt i64 1, %"$gasrem_1111" + br i1 %"$gascmp_1112", label %"$out_of_gas_1113", label %"$have_gas_1114" + +"$out_of_gas_1113": ; preds = %"$Some_1107" + call void @_out_of_gas() + br label %"$have_gas_1114" + +"$have_gas_1114": ; preds = %"$out_of_gas_1113", %"$Some_1107" + %"$consume_1115" = sub i64 %"$gasrem_1111", 1 + store i64 %"$consume_1115", i64* @_gasrem, align 8 + %"$adtval_1116_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1116_salloc" = call i8* @_salloc(i8* %"$adtval_1116_load", i64 1) + %"$adtval_1116" = bitcast i8* %"$adtval_1116_salloc" to %CName_True* + %"$adtgep_1117" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_1116", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1117", align 1 + %"$adtptr_1118" = bitcast %CName_True* %"$adtval_1116" to %TName_Bool* + store %TName_Bool* %"$adtptr_1118", %TName_Bool** %"$retval_100", align 8 + br label %"$matchsucc_1102" + +"$None_1119": ; preds = %"$have_gas_1100" + %"$search_1120" = bitcast %TName_Option_ByStr20* %"$search_1103" to %CName_None_ByStr20* + %"$gasrem_1121" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1122" = icmp ugt i64 1, %"$gasrem_1121" + br i1 %"$gascmp_1122", label %"$out_of_gas_1123", label %"$have_gas_1124" + +"$out_of_gas_1123": ; preds = %"$None_1119" + call void @_out_of_gas() + br label %"$have_gas_1124" + +"$have_gas_1124": ; preds = %"$out_of_gas_1123", %"$None_1119" + %"$consume_1125" = sub i64 %"$gasrem_1121", 1 + store i64 %"$consume_1125", i64* @_gasrem, align 8 + %"$adtval_1126_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1126_salloc" = call i8* @_salloc(i8* %"$adtval_1126_load", i64 1) + %"$adtval_1126" = bitcast i8* %"$adtval_1126_salloc" to %CName_False* + %"$adtgep_1127" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_1126", i32 0, i32 0 + store i8 1, i8* %"$adtgep_1127", align 1 + %"$adtptr_1128" = bitcast %CName_False* %"$adtval_1126" to %TName_Bool* + store %TName_Bool* %"$adtptr_1128", %TName_Bool** %"$retval_100", align 8 + br label %"$matchsucc_1102" + +"$empty_default_1106": ; preds = %"$have_gas_1100" + br label %"$matchsucc_1102" + +"$matchsucc_1102": ; preds = %"$have_gas_1124", %"$have_gas_1114", %"$empty_default_1106" + %"$$retval_100_1129" = load %TName_Bool*, %TName_Bool** %"$retval_100", align 8 + ret %TName_Bool* %"$$retval_100_1129" } -define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_186"(%"$$fundef_186_env_441"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) { +define internal { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_97"(%"$$fundef_97_env_310"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) { entry: - %"$$fundef_186_env_ListUtils.list_find_1202" = getelementptr inbounds %"$$fundef_186_env_441", %"$$fundef_186_env_441"* %0, i32 0, i32 0 - %"$ListUtils.list_find_envload_1203" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_186_env_ListUtils.list_find_1202", align 8 + %"$$fundef_97_env_ListUtils.list_find_1041" = getelementptr inbounds %"$$fundef_97_env_310", %"$$fundef_97_env_310"* %0, i32 0, i32 0 + %"$ListUtils.list_find_envload_1042" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_97_env_ListUtils.list_find_1041", align 8 %ListUtils.list_find = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_envload_1203", { i8*, i8* }** %ListUtils.list_find, align 8 - %"$retval_187" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_1204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1205" = icmp ugt i64 1, %"$gasrem_1204" - br i1 %"$gascmp_1205", label %"$out_of_gas_1206", label %"$have_gas_1207" - -"$out_of_gas_1206": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1207" - -"$have_gas_1207": ; preds = %"$out_of_gas_1206", %entry - %"$consume_1208" = sub i64 %"$gasrem_1204", 1 - store i64 %"$consume_1208", i64* @_gasrem, align 8 - %"$$fundef_188_envp_1209_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_188_envp_1209_salloc" = call i8* @_salloc(i8* %"$$fundef_188_envp_1209_load", i64 24) - %"$$fundef_188_envp_1209" = bitcast i8* %"$$fundef_188_envp_1209_salloc" to %"$$fundef_188_env_440"* - %"$$fundef_188_env_voidp_1211" = bitcast %"$$fundef_188_env_440"* %"$$fundef_188_envp_1209" to i8* - %"$$fundef_188_cloval_1212" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Bool* (%"$$fundef_188_env_440"*, %TName_List_ByStr20*)* @"$fundef_188" to %TName_Bool* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_188_env_voidp_1211", 1 - %"$$fundef_188_env_ListUtils.list_find_1213" = getelementptr inbounds %"$$fundef_188_env_440", %"$$fundef_188_env_440"* %"$$fundef_188_envp_1209", i32 0, i32 0 - %"$ListUtils.list_find_1214" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_1214", { i8*, i8* }** %"$$fundef_188_env_ListUtils.list_find_1213", align 8 - %"$$fundef_188_env_p_1215" = getelementptr inbounds %"$$fundef_188_env_440", %"$$fundef_188_env_440"* %"$$fundef_188_envp_1209", i32 0, i32 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_188_env_p_1215", align 8 - store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_188_cloval_1212", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_187", align 8 - %"$$retval_187_1216" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_187", align 8 - ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_187_1216" + store { i8*, i8* }* %"$ListUtils.list_find_envload_1042", { i8*, i8* }** %ListUtils.list_find, align 8 + %"$retval_98" = alloca { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_1043" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1044" = icmp ugt i64 1, %"$gasrem_1043" + br i1 %"$gascmp_1044", label %"$out_of_gas_1045", label %"$have_gas_1046" + +"$out_of_gas_1045": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1046" + +"$have_gas_1046": ; preds = %"$out_of_gas_1045", %entry + %"$consume_1047" = sub i64 %"$gasrem_1043", 1 + store i64 %"$consume_1047", i64* @_gasrem, align 8 + %"$$fundef_99_envp_1048_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_99_envp_1048_salloc" = call i8* @_salloc(i8* %"$$fundef_99_envp_1048_load", i64 24) + %"$$fundef_99_envp_1048" = bitcast i8* %"$$fundef_99_envp_1048_salloc" to %"$$fundef_99_env_309"* + %"$$fundef_99_env_voidp_1050" = bitcast %"$$fundef_99_env_309"* %"$$fundef_99_envp_1048" to i8* + %"$$fundef_99_cloval_1051" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Bool* (%"$$fundef_99_env_309"*, %TName_List_ByStr20*)* @"$fundef_99" to %TName_Bool* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_99_env_voidp_1050", 1 + %"$$fundef_99_env_ListUtils.list_find_1052" = getelementptr inbounds %"$$fundef_99_env_309", %"$$fundef_99_env_309"* %"$$fundef_99_envp_1048", i32 0, i32 0 + %"$ListUtils.list_find_1053" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 + store { i8*, i8* }* %"$ListUtils.list_find_1053", { i8*, i8* }** %"$$fundef_99_env_ListUtils.list_find_1052", align 8 + %"$$fundef_99_env_p_1054" = getelementptr inbounds %"$$fundef_99_env_309", %"$$fundef_99_env_309"* %"$$fundef_99_envp_1048", i32 0, i32 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_99_env_p_1054", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_99_cloval_1051", { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_98", align 8 + %"$$retval_98_1055" = load { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_98", align 8 + ret { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_98_1055" } -define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_184"(%"$$fundef_184_env_442"* %0) { +define internal { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_95"(%"$$fundef_95_env_311"* %0) { entry: - %"$$fundef_184_env_ListUtils.list_find_1188" = getelementptr inbounds %"$$fundef_184_env_442", %"$$fundef_184_env_442"* %0, i32 0, i32 0 - %"$ListUtils.list_find_envload_1189" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_184_env_ListUtils.list_find_1188", align 8 + %"$$fundef_95_env_ListUtils.list_find_1027" = getelementptr inbounds %"$$fundef_95_env_311", %"$$fundef_95_env_311"* %0, i32 0, i32 0 + %"$ListUtils.list_find_envload_1028" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_95_env_ListUtils.list_find_1027", align 8 %ListUtils.list_find = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_envload_1189", { i8*, i8* }** %ListUtils.list_find, align 8 - %"$retval_185" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1190" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1191" = icmp ugt i64 1, %"$gasrem_1190" - br i1 %"$gascmp_1191", label %"$out_of_gas_1192", label %"$have_gas_1193" - -"$out_of_gas_1192": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1193" - -"$have_gas_1193": ; preds = %"$out_of_gas_1192", %entry - %"$consume_1194" = sub i64 %"$gasrem_1190", 1 - store i64 %"$consume_1194", i64* @_gasrem, align 8 - %"$$fundef_186_envp_1195_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_186_envp_1195_salloc" = call i8* @_salloc(i8* %"$$fundef_186_envp_1195_load", i64 8) - %"$$fundef_186_envp_1195" = bitcast i8* %"$$fundef_186_envp_1195_salloc" to %"$$fundef_186_env_441"* - %"$$fundef_186_env_voidp_1197" = bitcast %"$$fundef_186_env_441"* %"$$fundef_186_envp_1195" to i8* - %"$$fundef_186_cloval_1198" = insertvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_186_env_441"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_186" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_186_env_voidp_1197", 1 - %"$$fundef_186_env_ListUtils.list_find_1199" = getelementptr inbounds %"$$fundef_186_env_441", %"$$fundef_186_env_441"* %"$$fundef_186_envp_1195", i32 0, i32 0 - %"$ListUtils.list_find_1200" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_1200", { i8*, i8* }** %"$$fundef_186_env_ListUtils.list_find_1199", align 8 - store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_186_cloval_1198", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_185", align 8 - %"$$retval_185_1201" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_185", align 8 - ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_185_1201" + store { i8*, i8* }* %"$ListUtils.list_find_envload_1028", { i8*, i8* }** %ListUtils.list_find, align 8 + %"$retval_96" = alloca { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 + %"$gasrem_1029" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1030" = icmp ugt i64 1, %"$gasrem_1029" + br i1 %"$gascmp_1030", label %"$out_of_gas_1031", label %"$have_gas_1032" + +"$out_of_gas_1031": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1032" + +"$have_gas_1032": ; preds = %"$out_of_gas_1031", %entry + %"$consume_1033" = sub i64 %"$gasrem_1029", 1 + store i64 %"$consume_1033", i64* @_gasrem, align 8 + %"$$fundef_97_envp_1034_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_97_envp_1034_salloc" = call i8* @_salloc(i8* %"$$fundef_97_envp_1034_load", i64 8) + %"$$fundef_97_envp_1034" = bitcast i8* %"$$fundef_97_envp_1034_salloc" to %"$$fundef_97_env_310"* + %"$$fundef_97_env_voidp_1036" = bitcast %"$$fundef_97_env_310"* %"$$fundef_97_envp_1034" to i8* + %"$$fundef_97_cloval_1037" = insertvalue { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_97_env_310"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_97" to { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_97_env_voidp_1036", 1 + %"$$fundef_97_env_ListUtils.list_find_1038" = getelementptr inbounds %"$$fundef_97_env_310", %"$$fundef_97_env_310"* %"$$fundef_97_envp_1034", i32 0, i32 0 + %"$ListUtils.list_find_1039" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_find, align 8 + store { i8*, i8* }* %"$ListUtils.list_find_1039", { i8*, i8* }** %"$$fundef_97_env_ListUtils.list_find_1038", align 8 + store { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_97_cloval_1037", { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_96", align 8 + %"$$retval_96_1040" = load { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_96", align 8 + ret { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_96_1040" } -define internal %TName_Option_ByStr20* @"$fundef_198"(%"$$fundef_198_env_443"* %0, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1) { +define internal %TName_Option_ByStr20* @"$fundef_109"(%"$$fundef_109_env_312"* %0, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1) { entry: - %"$$fundef_198_env_init_1130" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %0, i32 0, i32 0 - %"$init_envload_1131" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_198_env_init_1130", align 8 + %"$$fundef_109_env_init_969" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %0, i32 0, i32 0 + %"$init_envload_970" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_109_env_init_969", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1131", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_198_env_p_1132" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %0, i32 0, i32 1 - %"$p_envload_1133" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_198_env_p_1132", align 8 + store %TName_Option_ByStr20* %"$init_envload_970", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_109_env_p_971" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %0, i32 0, i32 1 + %"$p_envload_972" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_109_env_p_971", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1133", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$$fundef_198_env_x_1134" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %0, i32 0, i32 2 - %"$x_envload_1135" = load [20 x i8], [20 x i8]* %"$$fundef_198_env_x_1134", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_972", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$$fundef_109_env_x_973" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %0, i32 0, i32 2 + %"$x_envload_974" = load [20 x i8], [20 x i8]* %"$$fundef_109_env_x_973", align 1 %x = alloca [20 x i8], align 1 - store [20 x i8] %"$x_envload_1135", [20 x i8]* %x, align 1 - %"$retval_199" = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_1136" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1137" = icmp ugt i64 1, %"$gasrem_1136" - br i1 %"$gascmp_1137", label %"$out_of_gas_1138", label %"$have_gas_1139" + store [20 x i8] %"$x_envload_974", [20 x i8]* %x, align 1 + %"$retval_110" = alloca %TName_Option_ByStr20*, align 8 + %"$gasrem_975" = load i64, i64* @_gasrem, align 8 + %"$gascmp_976" = icmp ugt i64 1, %"$gasrem_975" + br i1 %"$gascmp_976", label %"$out_of_gas_977", label %"$have_gas_978" -"$out_of_gas_1138": ; preds = %entry +"$out_of_gas_977": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1139" + br label %"$have_gas_978" -"$have_gas_1139": ; preds = %"$out_of_gas_1138", %entry - %"$consume_1140" = sub i64 %"$gasrem_1136", 1 - store i64 %"$consume_1140", i64* @_gasrem, align 8 +"$have_gas_978": ; preds = %"$out_of_gas_977", %entry + %"$consume_979" = sub i64 %"$gasrem_975", 1 + store i64 %"$consume_979", i64* @_gasrem, align 8 %p_x = alloca %TName_Bool*, align 8 - %"$gasrem_1141" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1142" = icmp ugt i64 1, %"$gasrem_1141" - br i1 %"$gascmp_1142", label %"$out_of_gas_1143", label %"$have_gas_1144" + %"$gasrem_980" = load i64, i64* @_gasrem, align 8 + %"$gascmp_981" = icmp ugt i64 1, %"$gasrem_980" + br i1 %"$gascmp_981", label %"$out_of_gas_982", label %"$have_gas_983" -"$out_of_gas_1143": ; preds = %"$have_gas_1139" +"$out_of_gas_982": ; preds = %"$have_gas_978" call void @_out_of_gas() - br label %"$have_gas_1144" + br label %"$have_gas_983" -"$have_gas_1144": ; preds = %"$out_of_gas_1143", %"$have_gas_1139" - %"$consume_1145" = sub i64 %"$gasrem_1141", 1 - store i64 %"$consume_1145", i64* @_gasrem, align 8 +"$have_gas_983": ; preds = %"$out_of_gas_982", %"$have_gas_978" + %"$consume_984" = sub i64 %"$gasrem_980", 1 + store i64 %"$consume_984", i64* @_gasrem, align 8 %"$p_22" = alloca %TName_Bool*, align 8 - %"$p_1146" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$p_fptr_1147" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1146", 0 - %"$p_envptr_1148" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1146", 1 - %"$p_x_1149" = alloca [20 x i8], align 1 - %"$x_1150" = load [20 x i8], [20 x i8]* %x, align 1 - store [20 x i8] %"$x_1150", [20 x i8]* %"$p_x_1149", align 1 - %"$p_call_1151" = call %TName_Bool* %"$p_fptr_1147"(i8* %"$p_envptr_1148", [20 x i8]* %"$p_x_1149") - store %TName_Bool* %"$p_call_1151", %TName_Bool** %"$p_22", align 8 - %"$$p_22_1152" = load %TName_Bool*, %TName_Bool** %"$p_22", align 8 - store %TName_Bool* %"$$p_22_1152", %TName_Bool** %p_x, align 8 - %"$gasrem_1153" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1154" = icmp ugt i64 2, %"$gasrem_1153" - br i1 %"$gascmp_1154", label %"$out_of_gas_1155", label %"$have_gas_1156" - -"$out_of_gas_1155": ; preds = %"$have_gas_1144" - call void @_out_of_gas() - br label %"$have_gas_1156" - -"$have_gas_1156": ; preds = %"$out_of_gas_1155", %"$have_gas_1144" - %"$consume_1157" = sub i64 %"$gasrem_1153", 2 - store i64 %"$consume_1157", i64* @_gasrem, align 8 - %"$p_x_1159" = load %TName_Bool*, %TName_Bool** %p_x, align 8 - %"$p_x_tag_1160" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$p_x_1159", i32 0, i32 0 - %"$p_x_tag_1161" = load i8, i8* %"$p_x_tag_1160", align 1 - switch i8 %"$p_x_tag_1161", label %"$empty_default_1162" [ - i8 0, label %"$True_1163" - i8 1, label %"$False_1175" + %"$p_985" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$p_fptr_986" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_985", 0 + %"$p_envptr_987" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_985", 1 + %"$p_x_988" = alloca [20 x i8], align 1 + %"$x_989" = load [20 x i8], [20 x i8]* %x, align 1 + store [20 x i8] %"$x_989", [20 x i8]* %"$p_x_988", align 1 + %"$p_call_990" = call %TName_Bool* %"$p_fptr_986"(i8* %"$p_envptr_987", [20 x i8]* %"$p_x_988") + store %TName_Bool* %"$p_call_990", %TName_Bool** %"$p_22", align 8 + %"$$p_22_991" = load %TName_Bool*, %TName_Bool** %"$p_22", align 8 + store %TName_Bool* %"$$p_22_991", %TName_Bool** %p_x, align 8 + %"$gasrem_992" = load i64, i64* @_gasrem, align 8 + %"$gascmp_993" = icmp ugt i64 2, %"$gasrem_992" + br i1 %"$gascmp_993", label %"$out_of_gas_994", label %"$have_gas_995" + +"$out_of_gas_994": ; preds = %"$have_gas_983" + call void @_out_of_gas() + br label %"$have_gas_995" + +"$have_gas_995": ; preds = %"$out_of_gas_994", %"$have_gas_983" + %"$consume_996" = sub i64 %"$gasrem_992", 2 + store i64 %"$consume_996", i64* @_gasrem, align 8 + %"$p_x_998" = load %TName_Bool*, %TName_Bool** %p_x, align 8 + %"$p_x_tag_999" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$p_x_998", i32 0, i32 0 + %"$p_x_tag_1000" = load i8, i8* %"$p_x_tag_999", align 1 + switch i8 %"$p_x_tag_1000", label %"$empty_default_1001" [ + i8 0, label %"$True_1002" + i8 1, label %"$False_1014" ] -"$True_1163": ; preds = %"$have_gas_1156" - %"$p_x_1164" = bitcast %TName_Bool* %"$p_x_1159" to %CName_True* - %"$gasrem_1165" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1166" = icmp ugt i64 1, %"$gasrem_1165" - br i1 %"$gascmp_1166", label %"$out_of_gas_1167", label %"$have_gas_1168" - -"$out_of_gas_1167": ; preds = %"$True_1163" - call void @_out_of_gas() - br label %"$have_gas_1168" - -"$have_gas_1168": ; preds = %"$out_of_gas_1167", %"$True_1163" - %"$consume_1169" = sub i64 %"$gasrem_1165", 1 - store i64 %"$consume_1169", i64* @_gasrem, align 8 - %"$x_1170" = load [20 x i8], [20 x i8]* %x, align 1 - %"$adtval_1171_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1171_salloc" = call i8* @_salloc(i8* %"$adtval_1171_load", i64 21) - %"$adtval_1171" = bitcast i8* %"$adtval_1171_salloc" to %CName_Some_ByStr20* - %"$adtgep_1172" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1171", i32 0, i32 0 - store i8 0, i8* %"$adtgep_1172", align 1 - %"$adtgep_1173" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1171", i32 0, i32 1 - store [20 x i8] %"$x_1170", [20 x i8]* %"$adtgep_1173", align 1 - %"$adtptr_1174" = bitcast %CName_Some_ByStr20* %"$adtval_1171" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$adtptr_1174", %TName_Option_ByStr20** %"$retval_199", align 8 - br label %"$matchsucc_1158" - -"$False_1175": ; preds = %"$have_gas_1156" - %"$p_x_1176" = bitcast %TName_Bool* %"$p_x_1159" to %CName_False* - %"$gasrem_1177" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1178" = icmp ugt i64 1, %"$gasrem_1177" - br i1 %"$gascmp_1178", label %"$out_of_gas_1179", label %"$have_gas_1180" - -"$out_of_gas_1179": ; preds = %"$False_1175" - call void @_out_of_gas() - br label %"$have_gas_1180" - -"$have_gas_1180": ; preds = %"$out_of_gas_1179", %"$False_1175" - %"$consume_1181" = sub i64 %"$gasrem_1177", 1 - store i64 %"$consume_1181", i64* @_gasrem, align 8 +"$True_1002": ; preds = %"$have_gas_995" + %"$p_x_1003" = bitcast %TName_Bool* %"$p_x_998" to %CName_True* + %"$gasrem_1004" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1005" = icmp ugt i64 1, %"$gasrem_1004" + br i1 %"$gascmp_1005", label %"$out_of_gas_1006", label %"$have_gas_1007" + +"$out_of_gas_1006": ; preds = %"$True_1002" + call void @_out_of_gas() + br label %"$have_gas_1007" + +"$have_gas_1007": ; preds = %"$out_of_gas_1006", %"$True_1002" + %"$consume_1008" = sub i64 %"$gasrem_1004", 1 + store i64 %"$consume_1008", i64* @_gasrem, align 8 + %"$x_1009" = load [20 x i8], [20 x i8]* %x, align 1 + %"$adtval_1010_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_1010_salloc" = call i8* @_salloc(i8* %"$adtval_1010_load", i64 21) + %"$adtval_1010" = bitcast i8* %"$adtval_1010_salloc" to %CName_Some_ByStr20* + %"$adtgep_1011" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1010", i32 0, i32 0 + store i8 0, i8* %"$adtgep_1011", align 1 + %"$adtgep_1012" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$adtval_1010", i32 0, i32 1 + store [20 x i8] %"$x_1009", [20 x i8]* %"$adtgep_1012", align 1 + %"$adtptr_1013" = bitcast %CName_Some_ByStr20* %"$adtval_1010" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$adtptr_1013", %TName_Option_ByStr20** %"$retval_110", align 8 + br label %"$matchsucc_997" + +"$False_1014": ; preds = %"$have_gas_995" + %"$p_x_1015" = bitcast %TName_Bool* %"$p_x_998" to %CName_False* + %"$gasrem_1016" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1017" = icmp ugt i64 1, %"$gasrem_1016" + br i1 %"$gascmp_1017", label %"$out_of_gas_1018", label %"$have_gas_1019" + +"$out_of_gas_1018": ; preds = %"$False_1014" + call void @_out_of_gas() + br label %"$have_gas_1019" + +"$have_gas_1019": ; preds = %"$out_of_gas_1018", %"$False_1014" + %"$consume_1020" = sub i64 %"$gasrem_1016", 1 + store i64 %"$consume_1020", i64* @_gasrem, align 8 %"$recurse_23" = alloca %TName_Option_ByStr20*, align 8 - %"$recurse_fptr_1182" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 0 - %"$recurse_envptr_1183" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 1 - %"$init_1184" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - %"$recurse_call_1185" = call %TName_Option_ByStr20* %"$recurse_fptr_1182"(i8* %"$recurse_envptr_1183", %TName_Option_ByStr20* %"$init_1184") - store %TName_Option_ByStr20* %"$recurse_call_1185", %TName_Option_ByStr20** %"$recurse_23", align 8 - %"$$recurse_23_1186" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$recurse_23", align 8 - store %TName_Option_ByStr20* %"$$recurse_23_1186", %TName_Option_ByStr20** %"$retval_199", align 8 - br label %"$matchsucc_1158" - -"$empty_default_1162": ; preds = %"$have_gas_1156" - br label %"$matchsucc_1158" - -"$matchsucc_1158": ; preds = %"$have_gas_1180", %"$have_gas_1168", %"$empty_default_1162" - %"$$retval_199_1187" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_199", align 8 - ret %TName_Option_ByStr20* %"$$retval_199_1187" + %"$recurse_fptr_1021" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 0 + %"$recurse_envptr_1022" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %1, 1 + %"$init_1023" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + %"$recurse_call_1024" = call %TName_Option_ByStr20* %"$recurse_fptr_1021"(i8* %"$recurse_envptr_1022", %TName_Option_ByStr20* %"$init_1023") + store %TName_Option_ByStr20* %"$recurse_call_1024", %TName_Option_ByStr20** %"$recurse_23", align 8 + %"$$recurse_23_1025" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$recurse_23", align 8 + store %TName_Option_ByStr20* %"$$recurse_23_1025", %TName_Option_ByStr20** %"$retval_110", align 8 + br label %"$matchsucc_997" + +"$empty_default_1001": ; preds = %"$have_gas_995" + br label %"$matchsucc_997" + +"$matchsucc_997": ; preds = %"$have_gas_1019", %"$have_gas_1007", %"$empty_default_1001" + %"$$retval_110_1026" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_110", align 8 + ret %TName_Option_ByStr20* %"$$retval_110_1026" } -define internal { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_196"(%"$$fundef_196_env_444"* %0, [20 x i8]* %1) { +define internal { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_107"(%"$$fundef_107_env_313"* %0, [20 x i8]* %1) { entry: %x = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_196_env_init_1111" = getelementptr inbounds %"$$fundef_196_env_444", %"$$fundef_196_env_444"* %0, i32 0, i32 0 - %"$init_envload_1112" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_196_env_init_1111", align 8 + %"$$fundef_107_env_init_950" = getelementptr inbounds %"$$fundef_107_env_313", %"$$fundef_107_env_313"* %0, i32 0, i32 0 + %"$init_envload_951" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_107_env_init_950", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1112", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_196_env_p_1113" = getelementptr inbounds %"$$fundef_196_env_444", %"$$fundef_196_env_444"* %0, i32 0, i32 1 - %"$p_envload_1114" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_196_env_p_1113", align 8 + store %TName_Option_ByStr20* %"$init_envload_951", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_107_env_p_952" = getelementptr inbounds %"$$fundef_107_env_313", %"$$fundef_107_env_313"* %0, i32 0, i32 1 + %"$p_envload_953" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_107_env_p_952", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1114", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$retval_197" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$gasrem_1115" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1116" = icmp ugt i64 1, %"$gasrem_1115" - br i1 %"$gascmp_1116", label %"$out_of_gas_1117", label %"$have_gas_1118" - -"$out_of_gas_1117": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1118" - -"$have_gas_1118": ; preds = %"$out_of_gas_1117", %entry - %"$consume_1119" = sub i64 %"$gasrem_1115", 1 - store i64 %"$consume_1119", i64* @_gasrem, align 8 - %"$$fundef_198_envp_1120_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_198_envp_1120_salloc" = call i8* @_salloc(i8* %"$$fundef_198_envp_1120_load", i64 48) - %"$$fundef_198_envp_1120" = bitcast i8* %"$$fundef_198_envp_1120_salloc" to %"$$fundef_198_env_443"* - %"$$fundef_198_env_voidp_1122" = bitcast %"$$fundef_198_env_443"* %"$$fundef_198_envp_1120" to i8* - %"$$fundef_198_cloval_1123" = insertvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* bitcast (%TName_Option_ByStr20* (%"$$fundef_198_env_443"*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_198" to %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* undef }, i8* %"$$fundef_198_env_voidp_1122", 1 - %"$$fundef_198_env_init_1124" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %"$$fundef_198_envp_1120", i32 0, i32 0 - %"$init_1125" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1125", %TName_Option_ByStr20** %"$$fundef_198_env_init_1124", align 8 - %"$$fundef_198_env_p_1126" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %"$$fundef_198_envp_1120", i32 0, i32 1 - %"$p_1127" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1127", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_198_env_p_1126", align 8 - %"$$fundef_198_env_x_1128" = getelementptr inbounds %"$$fundef_198_env_443", %"$$fundef_198_env_443"* %"$$fundef_198_envp_1120", i32 0, i32 2 - store [20 x i8] %x, [20 x i8]* %"$$fundef_198_env_x_1128", align 1 - store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$fundef_198_cloval_1123", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_197", align 8 - %"$$retval_197_1129" = load { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_197", align 8 - ret { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_197_1129" + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_953", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$retval_108" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 + %"$gasrem_954" = load i64, i64* @_gasrem, align 8 + %"$gascmp_955" = icmp ugt i64 1, %"$gasrem_954" + br i1 %"$gascmp_955", label %"$out_of_gas_956", label %"$have_gas_957" + +"$out_of_gas_956": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_957" + +"$have_gas_957": ; preds = %"$out_of_gas_956", %entry + %"$consume_958" = sub i64 %"$gasrem_954", 1 + store i64 %"$consume_958", i64* @_gasrem, align 8 + %"$$fundef_109_envp_959_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_109_envp_959_salloc" = call i8* @_salloc(i8* %"$$fundef_109_envp_959_load", i64 48) + %"$$fundef_109_envp_959" = bitcast i8* %"$$fundef_109_envp_959_salloc" to %"$$fundef_109_env_312"* + %"$$fundef_109_env_voidp_961" = bitcast %"$$fundef_109_env_312"* %"$$fundef_109_envp_959" to i8* + %"$$fundef_109_cloval_962" = insertvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* bitcast (%TName_Option_ByStr20* (%"$$fundef_109_env_312"*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_109" to %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* undef }, i8* %"$$fundef_109_env_voidp_961", 1 + %"$$fundef_109_env_init_963" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %"$$fundef_109_envp_959", i32 0, i32 0 + %"$init_964" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_964", %TName_Option_ByStr20** %"$$fundef_109_env_init_963", align 8 + %"$$fundef_109_env_p_965" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %"$$fundef_109_envp_959", i32 0, i32 1 + %"$p_966" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_966", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_109_env_p_965", align 8 + %"$$fundef_109_env_x_967" = getelementptr inbounds %"$$fundef_109_env_312", %"$$fundef_109_env_312"* %"$$fundef_109_envp_959", i32 0, i32 2 + store [20 x i8] %x, [20 x i8]* %"$$fundef_109_env_x_967", align 1 + store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$fundef_109_cloval_962", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_108", align 8 + %"$$retval_108_968" = load { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_108", align 8 + ret { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_108_968" } -define internal { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_194"(%"$$fundef_194_env_445"* %0, %TName_Option_ByStr20* %1) { +define internal { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } @"$fundef_105"(%"$$fundef_105_env_314"* %0, %TName_Option_ByStr20* %1) { entry: - %"$$fundef_194_env_init_1093" = getelementptr inbounds %"$$fundef_194_env_445", %"$$fundef_194_env_445"* %0, i32 0, i32 0 - %"$init_envload_1094" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_194_env_init_1093", align 8 + %"$$fundef_105_env_init_932" = getelementptr inbounds %"$$fundef_105_env_314", %"$$fundef_105_env_314"* %0, i32 0, i32 0 + %"$init_envload_933" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_105_env_init_932", align 8 %init = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$init_envload_1094", %TName_Option_ByStr20** %init, align 8 - %"$$fundef_194_env_p_1095" = getelementptr inbounds %"$$fundef_194_env_445", %"$$fundef_194_env_445"* %0, i32 0, i32 1 - %"$p_envload_1096" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_194_env_p_1095", align 8 + store %TName_Option_ByStr20* %"$init_envload_933", %TName_Option_ByStr20** %init, align 8 + %"$$fundef_105_env_p_934" = getelementptr inbounds %"$$fundef_105_env_314", %"$$fundef_105_env_314"* %0, i32 0, i32 1 + %"$p_envload_935" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_105_env_p_934", align 8 %p = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_1096", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - %"$retval_195" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_1097" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1098" = icmp ugt i64 1, %"$gasrem_1097" - br i1 %"$gascmp_1098", label %"$out_of_gas_1099", label %"$have_gas_1100" - -"$out_of_gas_1099": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1100" - -"$have_gas_1100": ; preds = %"$out_of_gas_1099", %entry - %"$consume_1101" = sub i64 %"$gasrem_1097", 1 - store i64 %"$consume_1101", i64* @_gasrem, align 8 - %"$$fundef_196_envp_1102_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_196_envp_1102_salloc" = call i8* @_salloc(i8* %"$$fundef_196_envp_1102_load", i64 24) - %"$$fundef_196_envp_1102" = bitcast i8* %"$$fundef_196_envp_1102_salloc" to %"$$fundef_196_env_444"* - %"$$fundef_196_env_voidp_1104" = bitcast %"$$fundef_196_env_444"* %"$$fundef_196_envp_1102" to i8* - %"$$fundef_196_cloval_1105" = insertvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (%"$$fundef_196_env_444"*, [20 x i8]*)* @"$fundef_196" to { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_196_env_voidp_1104", 1 - %"$$fundef_196_env_init_1106" = getelementptr inbounds %"$$fundef_196_env_444", %"$$fundef_196_env_444"* %"$$fundef_196_envp_1102", i32 0, i32 0 - %"$init_1107" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1107", %TName_Option_ByStr20** %"$$fundef_196_env_init_1106", align 8 - %"$$fundef_196_env_p_1108" = getelementptr inbounds %"$$fundef_196_env_444", %"$$fundef_196_env_444"* %"$$fundef_196_envp_1102", i32 0, i32 1 - %"$p_1109" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_1109", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_196_env_p_1108", align 8 - store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_196_cloval_1105", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_195", align 8 - %"$$retval_195_1110" = load { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_195", align 8 - ret { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_195_1110" + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_envload_935", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + %"$retval_106" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 + %"$gasrem_936" = load i64, i64* @_gasrem, align 8 + %"$gascmp_937" = icmp ugt i64 1, %"$gasrem_936" + br i1 %"$gascmp_937", label %"$out_of_gas_938", label %"$have_gas_939" + +"$out_of_gas_938": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_939" + +"$have_gas_939": ; preds = %"$out_of_gas_938", %entry + %"$consume_940" = sub i64 %"$gasrem_936", 1 + store i64 %"$consume_940", i64* @_gasrem, align 8 + %"$$fundef_107_envp_941_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_107_envp_941_salloc" = call i8* @_salloc(i8* %"$$fundef_107_envp_941_load", i64 24) + %"$$fundef_107_envp_941" = bitcast i8* %"$$fundef_107_envp_941_salloc" to %"$$fundef_107_env_313"* + %"$$fundef_107_env_voidp_943" = bitcast %"$$fundef_107_env_313"* %"$$fundef_107_envp_941" to i8* + %"$$fundef_107_cloval_944" = insertvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (%"$$fundef_107_env_313"*, [20 x i8]*)* @"$fundef_107" to { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_107_env_voidp_943", 1 + %"$$fundef_107_env_init_945" = getelementptr inbounds %"$$fundef_107_env_313", %"$$fundef_107_env_313"* %"$$fundef_107_envp_941", i32 0, i32 0 + %"$init_946" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_946", %TName_Option_ByStr20** %"$$fundef_107_env_init_945", align 8 + %"$$fundef_107_env_p_947" = getelementptr inbounds %"$$fundef_107_env_313", %"$$fundef_107_env_313"* %"$$fundef_107_envp_941", i32 0, i32 1 + %"$p_948" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %p, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$p_948", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_107_env_p_947", align 8 + store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_107_cloval_944", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_106", align 8 + %"$$retval_106_949" = load { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$retval_106", align 8 + ret { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$retval_106_949" } -define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_192"(%"$$fundef_192_env_446"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) { +define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_103"(%"$$fundef_103_env_315"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) { entry: - %"$$fundef_192_env_list_foldk_1021" = getelementptr inbounds %"$$fundef_192_env_446", %"$$fundef_192_env_446"* %0, i32 0, i32 0 - %"$list_foldk_envload_1022" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_192_env_list_foldk_1021", align 8 + %"$$fundef_103_env_list_foldk_860" = getelementptr inbounds %"$$fundef_103_env_315", %"$$fundef_103_env_315"* %0, i32 0, i32 0 + %"$list_foldk_envload_861" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_103_env_list_foldk_860", align 8 %list_foldk = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldk_envload_1022", { i8*, i8* }** %list_foldk, align 8 - %"$retval_193" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_1023" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1024" = icmp ugt i64 1, %"$gasrem_1023" - br i1 %"$gascmp_1024", label %"$out_of_gas_1025", label %"$have_gas_1026" + store { i8*, i8* }* %"$list_foldk_envload_861", { i8*, i8* }** %list_foldk, align 8 + %"$retval_104" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_862" = load i64, i64* @_gasrem, align 8 + %"$gascmp_863" = icmp ugt i64 1, %"$gasrem_862" + br i1 %"$gascmp_863", label %"$out_of_gas_864", label %"$have_gas_865" -"$out_of_gas_1025": ; preds = %entry +"$out_of_gas_864": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_1026" + br label %"$have_gas_865" -"$have_gas_1026": ; preds = %"$out_of_gas_1025", %entry - %"$consume_1027" = sub i64 %"$gasrem_1023", 1 - store i64 %"$consume_1027", i64* @_gasrem, align 8 +"$have_gas_865": ; preds = %"$out_of_gas_864", %entry + %"$consume_866" = sub i64 %"$gasrem_862", 1 + store i64 %"$consume_866", i64* @_gasrem, align 8 %foldk = alloca { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$gasrem_1028" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1029" = icmp ugt i64 1, %"$gasrem_1028" - br i1 %"$gascmp_1029", label %"$out_of_gas_1030", label %"$have_gas_1031" - -"$out_of_gas_1030": ; preds = %"$have_gas_1026" - call void @_out_of_gas() - br label %"$have_gas_1031" - -"$have_gas_1031": ; preds = %"$out_of_gas_1030", %"$have_gas_1026" - %"$consume_1032" = sub i64 %"$gasrem_1028", 1 - store i64 %"$consume_1032", i64* @_gasrem, align 8 - %"$list_foldk_1033" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 - %"$list_foldk_1034" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_1033", i32 0 - %"$list_foldk_1035" = bitcast { i8*, i8* }* %"$list_foldk_1034" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldk_1036" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldk_1035", align 8 - %"$list_foldk_fptr_1037" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_1036", 0 - %"$list_foldk_envptr_1038" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_1036", 1 - %"$list_foldk_call_1039" = call { i8*, i8* }* %"$list_foldk_fptr_1037"(i8* %"$list_foldk_envptr_1038") - %"$list_foldk_1040" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_call_1039", i32 2 - %"$list_foldk_1041" = bitcast { i8*, i8* }* %"$list_foldk_1040" to { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldk_1042" = load { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldk_1041", align 8 - %"$list_foldk_fptr_1043" = extractvalue { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_1042", 0 - %"$list_foldk_envptr_1044" = extractvalue { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_1042", 1 - %"$list_foldk_call_1045" = call { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$list_foldk_fptr_1043"(i8* %"$list_foldk_envptr_1044") - store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$list_foldk_call_1045", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %foldk, align 8 - %"$gasrem_1046" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1047" = icmp ugt i64 1, %"$gasrem_1046" - br i1 %"$gascmp_1047", label %"$out_of_gas_1048", label %"$have_gas_1049" - -"$out_of_gas_1048": ; preds = %"$have_gas_1031" - call void @_out_of_gas() - br label %"$have_gas_1049" - -"$have_gas_1049": ; preds = %"$out_of_gas_1048", %"$have_gas_1031" - %"$consume_1050" = sub i64 %"$gasrem_1046", 1 - store i64 %"$consume_1050", i64* @_gasrem, align 8 + %"$gasrem_867" = load i64, i64* @_gasrem, align 8 + %"$gascmp_868" = icmp ugt i64 1, %"$gasrem_867" + br i1 %"$gascmp_868", label %"$out_of_gas_869", label %"$have_gas_870" + +"$out_of_gas_869": ; preds = %"$have_gas_865" + call void @_out_of_gas() + br label %"$have_gas_870" + +"$have_gas_870": ; preds = %"$out_of_gas_869", %"$have_gas_865" + %"$consume_871" = sub i64 %"$gasrem_867", 1 + store i64 %"$consume_871", i64* @_gasrem, align 8 + %"$list_foldk_872" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 + %"$list_foldk_873" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_872", i32 0 + %"$list_foldk_874" = bitcast { i8*, i8* }* %"$list_foldk_873" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldk_875" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldk_874", align 8 + %"$list_foldk_fptr_876" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_875", 0 + %"$list_foldk_envptr_877" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldk_875", 1 + %"$list_foldk_call_878" = call { i8*, i8* }* %"$list_foldk_fptr_876"(i8* %"$list_foldk_envptr_877") + %"$list_foldk_879" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldk_call_878", i32 2 + %"$list_foldk_880" = bitcast { i8*, i8* }* %"$list_foldk_879" to { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldk_881" = load { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldk_880", align 8 + %"$list_foldk_fptr_882" = extractvalue { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_881", 0 + %"$list_foldk_envptr_883" = extractvalue { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldk_881", 1 + %"$list_foldk_call_884" = call { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$list_foldk_fptr_882"(i8* %"$list_foldk_envptr_883") + store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$list_foldk_call_884", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %foldk, align 8 + %"$gasrem_885" = load i64, i64* @_gasrem, align 8 + %"$gascmp_886" = icmp ugt i64 1, %"$gasrem_885" + br i1 %"$gascmp_886", label %"$out_of_gas_887", label %"$have_gas_888" + +"$out_of_gas_887": ; preds = %"$have_gas_870" + call void @_out_of_gas() + br label %"$have_gas_888" + +"$have_gas_888": ; preds = %"$out_of_gas_887", %"$have_gas_870" + %"$consume_889" = sub i64 %"$gasrem_885", 1 + store i64 %"$consume_889", i64* @_gasrem, align 8 %init = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_1051" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1052" = icmp ugt i64 1, %"$gasrem_1051" - br i1 %"$gascmp_1052", label %"$out_of_gas_1053", label %"$have_gas_1054" - -"$out_of_gas_1053": ; preds = %"$have_gas_1049" - call void @_out_of_gas() - br label %"$have_gas_1054" - -"$have_gas_1054": ; preds = %"$out_of_gas_1053", %"$have_gas_1049" - %"$consume_1055" = sub i64 %"$gasrem_1051", 1 - store i64 %"$consume_1055", i64* @_gasrem, align 8 - %"$adtval_1056_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_1056_salloc" = call i8* @_salloc(i8* %"$adtval_1056_load", i64 1) - %"$adtval_1056" = bitcast i8* %"$adtval_1056_salloc" to %CName_None_ByStr20* - %"$adtgep_1057" = getelementptr inbounds %CName_None_ByStr20, %CName_None_ByStr20* %"$adtval_1056", i32 0, i32 0 - store i8 1, i8* %"$adtgep_1057", align 1 - %"$adtptr_1058" = bitcast %CName_None_ByStr20* %"$adtval_1056" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$adtptr_1058", %TName_Option_ByStr20** %init, align 8 - %"$gasrem_1059" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1060" = icmp ugt i64 1, %"$gasrem_1059" - br i1 %"$gascmp_1060", label %"$out_of_gas_1061", label %"$have_gas_1062" - -"$out_of_gas_1061": ; preds = %"$have_gas_1054" - call void @_out_of_gas() - br label %"$have_gas_1062" - -"$have_gas_1062": ; preds = %"$out_of_gas_1061", %"$have_gas_1054" - %"$consume_1063" = sub i64 %"$gasrem_1059", 1 - store i64 %"$consume_1063", i64* @_gasrem, align 8 + %"$gasrem_890" = load i64, i64* @_gasrem, align 8 + %"$gascmp_891" = icmp ugt i64 1, %"$gasrem_890" + br i1 %"$gascmp_891", label %"$out_of_gas_892", label %"$have_gas_893" + +"$out_of_gas_892": ; preds = %"$have_gas_888" + call void @_out_of_gas() + br label %"$have_gas_893" + +"$have_gas_893": ; preds = %"$out_of_gas_892", %"$have_gas_888" + %"$consume_894" = sub i64 %"$gasrem_890", 1 + store i64 %"$consume_894", i64* @_gasrem, align 8 + %"$adtval_895_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_895_salloc" = call i8* @_salloc(i8* %"$adtval_895_load", i64 1) + %"$adtval_895" = bitcast i8* %"$adtval_895_salloc" to %CName_None_ByStr20* + %"$adtgep_896" = getelementptr inbounds %CName_None_ByStr20, %CName_None_ByStr20* %"$adtval_895", i32 0, i32 0 + store i8 1, i8* %"$adtgep_896", align 1 + %"$adtptr_897" = bitcast %CName_None_ByStr20* %"$adtval_895" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$adtptr_897", %TName_Option_ByStr20** %init, align 8 + %"$gasrem_898" = load i64, i64* @_gasrem, align 8 + %"$gascmp_899" = icmp ugt i64 1, %"$gasrem_898" + br i1 %"$gascmp_899", label %"$out_of_gas_900", label %"$have_gas_901" + +"$out_of_gas_900": ; preds = %"$have_gas_893" + call void @_out_of_gas() + br label %"$have_gas_901" + +"$have_gas_901": ; preds = %"$out_of_gas_900", %"$have_gas_893" + %"$consume_902" = sub i64 %"$gasrem_898", 1 + store i64 %"$consume_902", i64* @_gasrem, align 8 %predicate_step = alloca { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_1064" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1065" = icmp ugt i64 1, %"$gasrem_1064" - br i1 %"$gascmp_1065", label %"$out_of_gas_1066", label %"$have_gas_1067" - -"$out_of_gas_1066": ; preds = %"$have_gas_1062" - call void @_out_of_gas() - br label %"$have_gas_1067" - -"$have_gas_1067": ; preds = %"$out_of_gas_1066", %"$have_gas_1062" - %"$consume_1068" = sub i64 %"$gasrem_1064", 1 - store i64 %"$consume_1068", i64* @_gasrem, align 8 - %"$$fundef_194_envp_1069_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_194_envp_1069_salloc" = call i8* @_salloc(i8* %"$$fundef_194_envp_1069_load", i64 24) - %"$$fundef_194_envp_1069" = bitcast i8* %"$$fundef_194_envp_1069_salloc" to %"$$fundef_194_env_445"* - %"$$fundef_194_env_voidp_1071" = bitcast %"$$fundef_194_env_445"* %"$$fundef_194_envp_1069" to i8* - %"$$fundef_194_cloval_1072" = insertvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)* bitcast ({ { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_194_env_445"*, %TName_Option_ByStr20*)* @"$fundef_194" to { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_194_env_voidp_1071", 1 - %"$$fundef_194_env_init_1073" = getelementptr inbounds %"$$fundef_194_env_445", %"$$fundef_194_env_445"* %"$$fundef_194_envp_1069", i32 0, i32 0 - %"$init_1074" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - store %TName_Option_ByStr20* %"$init_1074", %TName_Option_ByStr20** %"$$fundef_194_env_init_1073", align 8 - %"$$fundef_194_env_p_1075" = getelementptr inbounds %"$$fundef_194_env_445", %"$$fundef_194_env_445"* %"$$fundef_194_envp_1069", i32 0, i32 1 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_194_env_p_1075", align 8 - store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_194_cloval_1072", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %predicate_step, align 8 - %"$gasrem_1076" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1077" = icmp ugt i64 1, %"$gasrem_1076" - br i1 %"$gascmp_1077", label %"$out_of_gas_1078", label %"$have_gas_1079" - -"$out_of_gas_1078": ; preds = %"$have_gas_1067" - call void @_out_of_gas() - br label %"$have_gas_1079" - -"$have_gas_1079": ; preds = %"$out_of_gas_1078", %"$have_gas_1067" - %"$consume_1080" = sub i64 %"$gasrem_1076", 1 - store i64 %"$consume_1080", i64* @_gasrem, align 8 + %"$gasrem_903" = load i64, i64* @_gasrem, align 8 + %"$gascmp_904" = icmp ugt i64 1, %"$gasrem_903" + br i1 %"$gascmp_904", label %"$out_of_gas_905", label %"$have_gas_906" + +"$out_of_gas_905": ; preds = %"$have_gas_901" + call void @_out_of_gas() + br label %"$have_gas_906" + +"$have_gas_906": ; preds = %"$out_of_gas_905", %"$have_gas_901" + %"$consume_907" = sub i64 %"$gasrem_903", 1 + store i64 %"$consume_907", i64* @_gasrem, align 8 + %"$$fundef_105_envp_908_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_105_envp_908_salloc" = call i8* @_salloc(i8* %"$$fundef_105_envp_908_load", i64 24) + %"$$fundef_105_envp_908" = bitcast i8* %"$$fundef_105_envp_908_salloc" to %"$$fundef_105_env_314"* + %"$$fundef_105_env_voidp_910" = bitcast %"$$fundef_105_env_314"* %"$$fundef_105_envp_908" to i8* + %"$$fundef_105_cloval_911" = insertvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)* bitcast ({ { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_105_env_314"*, %TName_Option_ByStr20*)* @"$fundef_105" to { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_105_env_voidp_910", 1 + %"$$fundef_105_env_init_912" = getelementptr inbounds %"$$fundef_105_env_314", %"$$fundef_105_env_314"* %"$$fundef_105_envp_908", i32 0, i32 0 + %"$init_913" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + store %TName_Option_ByStr20* %"$init_913", %TName_Option_ByStr20** %"$$fundef_105_env_init_912", align 8 + %"$$fundef_105_env_p_914" = getelementptr inbounds %"$$fundef_105_env_314", %"$$fundef_105_env_314"* %"$$fundef_105_envp_908", i32 0, i32 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_105_env_p_914", align 8 + store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_105_cloval_911", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %predicate_step, align 8 + %"$gasrem_915" = load i64, i64* @_gasrem, align 8 + %"$gascmp_916" = icmp ugt i64 1, %"$gasrem_915" + br i1 %"$gascmp_916", label %"$out_of_gas_917", label %"$have_gas_918" + +"$out_of_gas_917": ; preds = %"$have_gas_906" + call void @_out_of_gas() + br label %"$have_gas_918" + +"$have_gas_918": ; preds = %"$out_of_gas_917", %"$have_gas_906" + %"$consume_919" = sub i64 %"$gasrem_915", 1 + store i64 %"$consume_919", i64* @_gasrem, align 8 %"$foldk_24" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$foldk_1081" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %foldk, align 8 - %"$foldk_fptr_1082" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$foldk_1081", 0 - %"$foldk_envptr_1083" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$foldk_1081", 1 - %"$predicate_step_1084" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %predicate_step, align 8 - %"$foldk_call_1085" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_fptr_1082"(i8* %"$foldk_envptr_1083", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$predicate_step_1084") - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_call_1085", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_24", align 8 + %"$foldk_920" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %foldk, align 8 + %"$foldk_fptr_921" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$foldk_920", 0 + %"$foldk_envptr_922" = extractvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$foldk_920", 1 + %"$predicate_step_923" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %predicate_step, align 8 + %"$foldk_call_924" = call { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_fptr_921"(i8* %"$foldk_envptr_922", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$predicate_step_923") + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$foldk_call_924", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_24", align 8 %"$foldk_25" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$foldk_24_1086" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_24", align 8 - %"$$foldk_24_fptr_1087" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_24_1086", 0 - %"$$foldk_24_envptr_1088" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_24_1086", 1 - %"$init_1089" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 - %"$$foldk_24_call_1090" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_24_fptr_1087"(i8* %"$$foldk_24_envptr_1088", %TName_Option_ByStr20* %"$init_1089") - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_24_call_1090", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_25", align 8 - %"$$foldk_25_1091" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_25", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_25_1091", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_193", align 8 - %"$$retval_193_1092" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_193", align 8 - ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_193_1092" + %"$$foldk_24_925" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$foldk_24", align 8 + %"$$foldk_24_fptr_926" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_24_925", 0 + %"$$foldk_24_envptr_927" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$foldk_24_925", 1 + %"$init_928" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %init, align 8 + %"$$foldk_24_call_929" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_24_fptr_926"(i8* %"$$foldk_24_envptr_927", %TName_Option_ByStr20* %"$init_928") + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_24_call_929", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_25", align 8 + %"$$foldk_25_930" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldk_25", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldk_25_930", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_104", align 8 + %"$$retval_104_931" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_104", align 8 + ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_104_931" } -define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_190"(%"$$fundef_190_env_447"* %0) { +define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_101"(%"$$fundef_101_env_316"* %0) { entry: - %"$$fundef_190_env_list_foldk_1007" = getelementptr inbounds %"$$fundef_190_env_447", %"$$fundef_190_env_447"* %0, i32 0, i32 0 - %"$list_foldk_envload_1008" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_190_env_list_foldk_1007", align 8 + %"$$fundef_101_env_list_foldk_846" = getelementptr inbounds %"$$fundef_101_env_316", %"$$fundef_101_env_316"* %0, i32 0, i32 0 + %"$list_foldk_envload_847" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_101_env_list_foldk_846", align 8 %list_foldk = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldk_envload_1008", { i8*, i8* }** %list_foldk, align 8 - %"$retval_191" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_1009" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1010" = icmp ugt i64 1, %"$gasrem_1009" - br i1 %"$gascmp_1010", label %"$out_of_gas_1011", label %"$have_gas_1012" - -"$out_of_gas_1011": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_1012" - -"$have_gas_1012": ; preds = %"$out_of_gas_1011", %entry - %"$consume_1013" = sub i64 %"$gasrem_1009", 1 - store i64 %"$consume_1013", i64* @_gasrem, align 8 - %"$$fundef_192_envp_1014_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_192_envp_1014_salloc" = call i8* @_salloc(i8* %"$$fundef_192_envp_1014_load", i64 8) - %"$$fundef_192_envp_1014" = bitcast i8* %"$$fundef_192_envp_1014_salloc" to %"$$fundef_192_env_446"* - %"$$fundef_192_env_voidp_1016" = bitcast %"$$fundef_192_env_446"* %"$$fundef_192_envp_1014" to i8* - %"$$fundef_192_cloval_1017" = insertvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_192_env_446"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_192" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_192_env_voidp_1016", 1 - %"$$fundef_192_env_list_foldk_1018" = getelementptr inbounds %"$$fundef_192_env_446", %"$$fundef_192_env_446"* %"$$fundef_192_envp_1014", i32 0, i32 0 - %"$list_foldk_1019" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 - store { i8*, i8* }* %"$list_foldk_1019", { i8*, i8* }** %"$$fundef_192_env_list_foldk_1018", align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_192_cloval_1017", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_191", align 8 - %"$$retval_191_1020" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_191", align 8 - ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_191_1020" + store { i8*, i8* }* %"$list_foldk_envload_847", { i8*, i8* }** %list_foldk, align 8 + %"$retval_102" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 + %"$gasrem_848" = load i64, i64* @_gasrem, align 8 + %"$gascmp_849" = icmp ugt i64 1, %"$gasrem_848" + br i1 %"$gascmp_849", label %"$out_of_gas_850", label %"$have_gas_851" + +"$out_of_gas_850": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_851" + +"$have_gas_851": ; preds = %"$out_of_gas_850", %entry + %"$consume_852" = sub i64 %"$gasrem_848", 1 + store i64 %"$consume_852", i64* @_gasrem, align 8 + %"$$fundef_103_envp_853_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_103_envp_853_salloc" = call i8* @_salloc(i8* %"$$fundef_103_envp_853_load", i64 8) + %"$$fundef_103_envp_853" = bitcast i8* %"$$fundef_103_envp_853_salloc" to %"$$fundef_103_env_315"* + %"$$fundef_103_env_voidp_855" = bitcast %"$$fundef_103_env_315"* %"$$fundef_103_envp_853" to i8* + %"$$fundef_103_cloval_856" = insertvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_103_env_315"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_103" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_103_env_voidp_855", 1 + %"$$fundef_103_env_list_foldk_857" = getelementptr inbounds %"$$fundef_103_env_315", %"$$fundef_103_env_315"* %"$$fundef_103_envp_853", i32 0, i32 0 + %"$list_foldk_858" = load { i8*, i8* }*, { i8*, i8* }** %list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_858", { i8*, i8* }** %"$$fundef_103_env_list_foldk_857", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_103_cloval_856", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_102", align 8 + %"$$retval_102_859" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_102", align 8 + ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_102_859" } -define internal %TName_List_ByStr20* @"$fundef_206"(%"$$fundef_206_env_448"* %0, %TName_List_ByStr20* %1) { +define internal %TName_List_ByStr20* @"$fundef_117"(%"$$fundef_117_env_317"* %0, %TName_List_ByStr20* %1) { entry: - %"$$fundef_206_env_f_955" = getelementptr inbounds %"$$fundef_206_env_448", %"$$fundef_206_env_448"* %0, i32 0, i32 0 - %"$f_envload_956" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_206_env_f_955", align 8 + %"$$fundef_117_env_f_794" = getelementptr inbounds %"$$fundef_117_env_317", %"$$fundef_117_env_317"* %0, i32 0, i32 0 + %"$f_envload_795" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_117_env_f_794", align 8 %f = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_956", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$$fundef_206_env_h_957" = getelementptr inbounds %"$$fundef_206_env_448", %"$$fundef_206_env_448"* %0, i32 0, i32 1 - %"$h_envload_958" = load [20 x i8], [20 x i8]* %"$$fundef_206_env_h_957", align 1 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_795", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$$fundef_117_env_h_796" = getelementptr inbounds %"$$fundef_117_env_317", %"$$fundef_117_env_317"* %0, i32 0, i32 1 + %"$h_envload_797" = load [20 x i8], [20 x i8]* %"$$fundef_117_env_h_796", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_envload_958", [20 x i8]* %h, align 1 - %"$retval_207" = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_959" = load i64, i64* @_gasrem, align 8 - %"$gascmp_960" = icmp ugt i64 1, %"$gasrem_959" - br i1 %"$gascmp_960", label %"$out_of_gas_961", label %"$have_gas_962" + store [20 x i8] %"$h_envload_797", [20 x i8]* %h, align 1 + %"$retval_118" = alloca %TName_List_ByStr20*, align 8 + %"$gasrem_798" = load i64, i64* @_gasrem, align 8 + %"$gascmp_799" = icmp ugt i64 1, %"$gasrem_798" + br i1 %"$gascmp_799", label %"$out_of_gas_800", label %"$have_gas_801" -"$out_of_gas_961": ; preds = %entry +"$out_of_gas_800": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_962" + br label %"$have_gas_801" -"$have_gas_962": ; preds = %"$out_of_gas_961", %entry - %"$consume_963" = sub i64 %"$gasrem_959", 1 - store i64 %"$consume_963", i64* @_gasrem, align 8 +"$have_gas_801": ; preds = %"$out_of_gas_800", %entry + %"$consume_802" = sub i64 %"$gasrem_798", 1 + store i64 %"$consume_802", i64* @_gasrem, align 8 %h1 = alloca %TName_Bool*, align 8 - %"$gasrem_964" = load i64, i64* @_gasrem, align 8 - %"$gascmp_965" = icmp ugt i64 1, %"$gasrem_964" - br i1 %"$gascmp_965", label %"$out_of_gas_966", label %"$have_gas_967" + %"$gasrem_803" = load i64, i64* @_gasrem, align 8 + %"$gascmp_804" = icmp ugt i64 1, %"$gasrem_803" + br i1 %"$gascmp_804", label %"$out_of_gas_805", label %"$have_gas_806" -"$out_of_gas_966": ; preds = %"$have_gas_962" +"$out_of_gas_805": ; preds = %"$have_gas_801" call void @_out_of_gas() - br label %"$have_gas_967" + br label %"$have_gas_806" -"$have_gas_967": ; preds = %"$out_of_gas_966", %"$have_gas_962" - %"$consume_968" = sub i64 %"$gasrem_964", 1 - store i64 %"$consume_968", i64* @_gasrem, align 8 +"$have_gas_806": ; preds = %"$out_of_gas_805", %"$have_gas_801" + %"$consume_807" = sub i64 %"$gasrem_803", 1 + store i64 %"$consume_807", i64* @_gasrem, align 8 %"$f_19" = alloca %TName_Bool*, align 8 - %"$f_969" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$f_fptr_970" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_969", 0 - %"$f_envptr_971" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_969", 1 - %"$f_h_972" = alloca [20 x i8], align 1 - %"$h_973" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_973", [20 x i8]* %"$f_h_972", align 1 - %"$f_call_974" = call %TName_Bool* %"$f_fptr_970"(i8* %"$f_envptr_971", [20 x i8]* %"$f_h_972") - store %TName_Bool* %"$f_call_974", %TName_Bool** %"$f_19", align 8 - %"$$f_19_975" = load %TName_Bool*, %TName_Bool** %"$f_19", align 8 - store %TName_Bool* %"$$f_19_975", %TName_Bool** %h1, align 8 - %"$gasrem_976" = load i64, i64* @_gasrem, align 8 - %"$gascmp_977" = icmp ugt i64 2, %"$gasrem_976" - br i1 %"$gascmp_977", label %"$out_of_gas_978", label %"$have_gas_979" - -"$out_of_gas_978": ; preds = %"$have_gas_967" - call void @_out_of_gas() - br label %"$have_gas_979" - -"$have_gas_979": ; preds = %"$out_of_gas_978", %"$have_gas_967" - %"$consume_980" = sub i64 %"$gasrem_976", 2 - store i64 %"$consume_980", i64* @_gasrem, align 8 - %"$h1_982" = load %TName_Bool*, %TName_Bool** %h1, align 8 - %"$h1_tag_983" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$h1_982", i32 0, i32 0 - %"$h1_tag_984" = load i8, i8* %"$h1_tag_983", align 1 - switch i8 %"$h1_tag_984", label %"$empty_default_985" [ - i8 0, label %"$True_986" - i8 1, label %"$False_999" + %"$f_808" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$f_fptr_809" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_808", 0 + %"$f_envptr_810" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_808", 1 + %"$f_h_811" = alloca [20 x i8], align 1 + %"$h_812" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_812", [20 x i8]* %"$f_h_811", align 1 + %"$f_call_813" = call %TName_Bool* %"$f_fptr_809"(i8* %"$f_envptr_810", [20 x i8]* %"$f_h_811") + store %TName_Bool* %"$f_call_813", %TName_Bool** %"$f_19", align 8 + %"$$f_19_814" = load %TName_Bool*, %TName_Bool** %"$f_19", align 8 + store %TName_Bool* %"$$f_19_814", %TName_Bool** %h1, align 8 + %"$gasrem_815" = load i64, i64* @_gasrem, align 8 + %"$gascmp_816" = icmp ugt i64 2, %"$gasrem_815" + br i1 %"$gascmp_816", label %"$out_of_gas_817", label %"$have_gas_818" + +"$out_of_gas_817": ; preds = %"$have_gas_806" + call void @_out_of_gas() + br label %"$have_gas_818" + +"$have_gas_818": ; preds = %"$out_of_gas_817", %"$have_gas_806" + %"$consume_819" = sub i64 %"$gasrem_815", 2 + store i64 %"$consume_819", i64* @_gasrem, align 8 + %"$h1_821" = load %TName_Bool*, %TName_Bool** %h1, align 8 + %"$h1_tag_822" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$h1_821", i32 0, i32 0 + %"$h1_tag_823" = load i8, i8* %"$h1_tag_822", align 1 + switch i8 %"$h1_tag_823", label %"$empty_default_824" [ + i8 0, label %"$True_825" + i8 1, label %"$False_838" ] -"$True_986": ; preds = %"$have_gas_979" - %"$h1_987" = bitcast %TName_Bool* %"$h1_982" to %CName_True* - %"$gasrem_988" = load i64, i64* @_gasrem, align 8 - %"$gascmp_989" = icmp ugt i64 1, %"$gasrem_988" - br i1 %"$gascmp_989", label %"$out_of_gas_990", label %"$have_gas_991" - -"$out_of_gas_990": ; preds = %"$True_986" - call void @_out_of_gas() - br label %"$have_gas_991" - -"$have_gas_991": ; preds = %"$out_of_gas_990", %"$True_986" - %"$consume_992" = sub i64 %"$gasrem_988", 1 - store i64 %"$consume_992", i64* @_gasrem, align 8 - %"$h_993" = load [20 x i8], [20 x i8]* %h, align 1 - %"$adtval_994_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_994_salloc" = call i8* @_salloc(i8* %"$adtval_994_load", i64 29) - %"$adtval_994" = bitcast i8* %"$adtval_994_salloc" to %CName_Cons_ByStr20* - %"$adtgep_995" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_994", i32 0, i32 0 - store i8 0, i8* %"$adtgep_995", align 1 - %"$adtgep_996" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_994", i32 0, i32 1 - store [20 x i8] %"$h_993", [20 x i8]* %"$adtgep_996", align 1 - %"$adtgep_997" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_994", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$adtgep_997", align 8 - %"$adtptr_998" = bitcast %CName_Cons_ByStr20* %"$adtval_994" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_998", %TName_List_ByStr20** %"$retval_207", align 8 - br label %"$matchsucc_981" - -"$False_999": ; preds = %"$have_gas_979" - %"$h1_1000" = bitcast %TName_Bool* %"$h1_982" to %CName_False* - %"$gasrem_1001" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1002" = icmp ugt i64 1, %"$gasrem_1001" - br i1 %"$gascmp_1002", label %"$out_of_gas_1003", label %"$have_gas_1004" - -"$out_of_gas_1003": ; preds = %"$False_999" - call void @_out_of_gas() - br label %"$have_gas_1004" - -"$have_gas_1004": ; preds = %"$out_of_gas_1003", %"$False_999" - %"$consume_1005" = sub i64 %"$gasrem_1001", 1 - store i64 %"$consume_1005", i64* @_gasrem, align 8 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$retval_207", align 8 - br label %"$matchsucc_981" - -"$empty_default_985": ; preds = %"$have_gas_979" - br label %"$matchsucc_981" - -"$matchsucc_981": ; preds = %"$have_gas_1004", %"$have_gas_991", %"$empty_default_985" - %"$$retval_207_1006" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_207", align 8 - ret %TName_List_ByStr20* %"$$retval_207_1006" +"$True_825": ; preds = %"$have_gas_818" + %"$h1_826" = bitcast %TName_Bool* %"$h1_821" to %CName_True* + %"$gasrem_827" = load i64, i64* @_gasrem, align 8 + %"$gascmp_828" = icmp ugt i64 1, %"$gasrem_827" + br i1 %"$gascmp_828", label %"$out_of_gas_829", label %"$have_gas_830" + +"$out_of_gas_829": ; preds = %"$True_825" + call void @_out_of_gas() + br label %"$have_gas_830" + +"$have_gas_830": ; preds = %"$out_of_gas_829", %"$True_825" + %"$consume_831" = sub i64 %"$gasrem_827", 1 + store i64 %"$consume_831", i64* @_gasrem, align 8 + %"$h_832" = load [20 x i8], [20 x i8]* %h, align 1 + %"$adtval_833_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_833_salloc" = call i8* @_salloc(i8* %"$adtval_833_load", i64 29) + %"$adtval_833" = bitcast i8* %"$adtval_833_salloc" to %CName_Cons_ByStr20* + %"$adtgep_834" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_833", i32 0, i32 0 + store i8 0, i8* %"$adtgep_834", align 1 + %"$adtgep_835" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_833", i32 0, i32 1 + store [20 x i8] %"$h_832", [20 x i8]* %"$adtgep_835", align 1 + %"$adtgep_836" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_833", i32 0, i32 2 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$adtgep_836", align 8 + %"$adtptr_837" = bitcast %CName_Cons_ByStr20* %"$adtval_833" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_837", %TName_List_ByStr20** %"$retval_118", align 8 + br label %"$matchsucc_820" + +"$False_838": ; preds = %"$have_gas_818" + %"$h1_839" = bitcast %TName_Bool* %"$h1_821" to %CName_False* + %"$gasrem_840" = load i64, i64* @_gasrem, align 8 + %"$gascmp_841" = icmp ugt i64 1, %"$gasrem_840" + br i1 %"$gascmp_841", label %"$out_of_gas_842", label %"$have_gas_843" + +"$out_of_gas_842": ; preds = %"$False_838" + call void @_out_of_gas() + br label %"$have_gas_843" + +"$have_gas_843": ; preds = %"$out_of_gas_842", %"$False_838" + %"$consume_844" = sub i64 %"$gasrem_840", 1 + store i64 %"$consume_844", i64* @_gasrem, align 8 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$retval_118", align 8 + br label %"$matchsucc_820" + +"$empty_default_824": ; preds = %"$have_gas_818" + br label %"$matchsucc_820" + +"$matchsucc_820": ; preds = %"$have_gas_843", %"$have_gas_830", %"$empty_default_824" + %"$$retval_118_845" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_118", align 8 + ret %TName_List_ByStr20* %"$$retval_118_845" } -define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_204"(%"$$fundef_204_env_449"* %0, [20 x i8]* %1) { +define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_115"(%"$$fundef_115_env_318"* %0, [20 x i8]* %1) { entry: %h = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_204_env_f_940" = getelementptr inbounds %"$$fundef_204_env_449", %"$$fundef_204_env_449"* %0, i32 0, i32 0 - %"$f_envload_941" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_204_env_f_940", align 8 + %"$$fundef_115_env_f_779" = getelementptr inbounds %"$$fundef_115_env_318", %"$$fundef_115_env_318"* %0, i32 0, i32 0 + %"$f_envload_780" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_115_env_f_779", align 8 %f = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_941", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$retval_205" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_942" = load i64, i64* @_gasrem, align 8 - %"$gascmp_943" = icmp ugt i64 1, %"$gasrem_942" - br i1 %"$gascmp_943", label %"$out_of_gas_944", label %"$have_gas_945" - -"$out_of_gas_944": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_945" - -"$have_gas_945": ; preds = %"$out_of_gas_944", %entry - %"$consume_946" = sub i64 %"$gasrem_942", 1 - store i64 %"$consume_946", i64* @_gasrem, align 8 - %"$$fundef_206_envp_947_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_206_envp_947_salloc" = call i8* @_salloc(i8* %"$$fundef_206_envp_947_load", i64 40) - %"$$fundef_206_envp_947" = bitcast i8* %"$$fundef_206_envp_947_salloc" to %"$$fundef_206_env_448"* - %"$$fundef_206_env_voidp_949" = bitcast %"$$fundef_206_env_448"* %"$$fundef_206_envp_947" to i8* - %"$$fundef_206_cloval_950" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_206_env_448"*, %TName_List_ByStr20*)* @"$fundef_206" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_206_env_voidp_949", 1 - %"$$fundef_206_env_f_951" = getelementptr inbounds %"$$fundef_206_env_448", %"$$fundef_206_env_448"* %"$$fundef_206_envp_947", i32 0, i32 0 - %"$f_952" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_952", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_206_env_f_951", align 8 - %"$$fundef_206_env_h_953" = getelementptr inbounds %"$$fundef_206_env_448", %"$$fundef_206_env_448"* %"$$fundef_206_envp_947", i32 0, i32 1 - store [20 x i8] %h, [20 x i8]* %"$$fundef_206_env_h_953", align 1 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_206_cloval_950", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_205", align 8 - %"$$retval_205_954" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_205", align 8 - ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_205_954" + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_envload_780", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$retval_116" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_781" = load i64, i64* @_gasrem, align 8 + %"$gascmp_782" = icmp ugt i64 1, %"$gasrem_781" + br i1 %"$gascmp_782", label %"$out_of_gas_783", label %"$have_gas_784" + +"$out_of_gas_783": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_784" + +"$have_gas_784": ; preds = %"$out_of_gas_783", %entry + %"$consume_785" = sub i64 %"$gasrem_781", 1 + store i64 %"$consume_785", i64* @_gasrem, align 8 + %"$$fundef_117_envp_786_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_117_envp_786_salloc" = call i8* @_salloc(i8* %"$$fundef_117_envp_786_load", i64 40) + %"$$fundef_117_envp_786" = bitcast i8* %"$$fundef_117_envp_786_salloc" to %"$$fundef_117_env_317"* + %"$$fundef_117_env_voidp_788" = bitcast %"$$fundef_117_env_317"* %"$$fundef_117_envp_786" to i8* + %"$$fundef_117_cloval_789" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_117_env_317"*, %TName_List_ByStr20*)* @"$fundef_117" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_117_env_voidp_788", 1 + %"$$fundef_117_env_f_790" = getelementptr inbounds %"$$fundef_117_env_317", %"$$fundef_117_env_317"* %"$$fundef_117_envp_786", i32 0, i32 0 + %"$f_791" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %f, align 8 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$f_791", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_117_env_f_790", align 8 + %"$$fundef_117_env_h_792" = getelementptr inbounds %"$$fundef_117_env_317", %"$$fundef_117_env_317"* %"$$fundef_117_envp_786", i32 0, i32 1 + store [20 x i8] %h, [20 x i8]* %"$$fundef_117_env_h_792", align 1 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_117_cloval_789", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_116", align 8 + %"$$retval_116_793" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_116", align 8 + ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_116_793" } -define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_202"(%"$$fundef_202_env_450"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) { +define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_113"(%"$$fundef_113_env_319"* %0, { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1) { entry: - %"$$fundef_202_env_list_foldr_870" = getelementptr inbounds %"$$fundef_202_env_450", %"$$fundef_202_env_450"* %0, i32 0, i32 0 - %"$list_foldr_envload_871" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_202_env_list_foldr_870", align 8 + %"$$fundef_113_env_list_foldr_709" = getelementptr inbounds %"$$fundef_113_env_319", %"$$fundef_113_env_319"* %0, i32 0, i32 0 + %"$list_foldr_envload_710" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_113_env_list_foldr_709", align 8 %list_foldr = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldr_envload_871", { i8*, i8* }** %list_foldr, align 8 - %"$retval_203" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_873" = icmp ugt i64 1, %"$gasrem_872" - br i1 %"$gascmp_873", label %"$out_of_gas_874", label %"$have_gas_875" + store { i8*, i8* }* %"$list_foldr_envload_710", { i8*, i8* }** %list_foldr, align 8 + %"$retval_114" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_711" = load i64, i64* @_gasrem, align 8 + %"$gascmp_712" = icmp ugt i64 1, %"$gasrem_711" + br i1 %"$gascmp_712", label %"$out_of_gas_713", label %"$have_gas_714" -"$out_of_gas_874": ; preds = %entry +"$out_of_gas_713": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_875" + br label %"$have_gas_714" -"$have_gas_875": ; preds = %"$out_of_gas_874", %entry - %"$consume_876" = sub i64 %"$gasrem_872", 1 - store i64 %"$consume_876", i64* @_gasrem, align 8 +"$have_gas_714": ; preds = %"$out_of_gas_713", %entry + %"$consume_715" = sub i64 %"$gasrem_711", 1 + store i64 %"$consume_715", i64* @_gasrem, align 8 %foldr = alloca { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_877" = load i64, i64* @_gasrem, align 8 - %"$gascmp_878" = icmp ugt i64 1, %"$gasrem_877" - br i1 %"$gascmp_878", label %"$out_of_gas_879", label %"$have_gas_880" - -"$out_of_gas_879": ; preds = %"$have_gas_875" - call void @_out_of_gas() - br label %"$have_gas_880" - -"$have_gas_880": ; preds = %"$out_of_gas_879", %"$have_gas_875" - %"$consume_881" = sub i64 %"$gasrem_877", 1 - store i64 %"$consume_881", i64* @_gasrem, align 8 - %"$list_foldr_882" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 - %"$list_foldr_883" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_882", i32 0 - %"$list_foldr_884" = bitcast { i8*, i8* }* %"$list_foldr_883" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldr_885" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldr_884", align 8 - %"$list_foldr_fptr_886" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_885", 0 - %"$list_foldr_envptr_887" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_885", 1 - %"$list_foldr_call_888" = call { i8*, i8* }* %"$list_foldr_fptr_886"(i8* %"$list_foldr_envptr_887") - %"$list_foldr_889" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_call_888", i32 1 - %"$list_foldr_890" = bitcast { i8*, i8* }* %"$list_foldr_889" to { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldr_891" = load { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldr_890", align 8 - %"$list_foldr_fptr_892" = extractvalue { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldr_891", 0 - %"$list_foldr_envptr_893" = extractvalue { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldr_891", 1 - %"$list_foldr_call_894" = call { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$list_foldr_fptr_892"(i8* %"$list_foldr_envptr_893") - store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$list_foldr_call_894", { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %foldr, align 8 - %"$gasrem_895" = load i64, i64* @_gasrem, align 8 - %"$gascmp_896" = icmp ugt i64 1, %"$gasrem_895" - br i1 %"$gascmp_896", label %"$out_of_gas_897", label %"$have_gas_898" - -"$out_of_gas_897": ; preds = %"$have_gas_880" - call void @_out_of_gas() - br label %"$have_gas_898" - -"$have_gas_898": ; preds = %"$out_of_gas_897", %"$have_gas_880" - %"$consume_899" = sub i64 %"$gasrem_895", 1 - store i64 %"$consume_899", i64* @_gasrem, align 8 + %"$gasrem_716" = load i64, i64* @_gasrem, align 8 + %"$gascmp_717" = icmp ugt i64 1, %"$gasrem_716" + br i1 %"$gascmp_717", label %"$out_of_gas_718", label %"$have_gas_719" + +"$out_of_gas_718": ; preds = %"$have_gas_714" + call void @_out_of_gas() + br label %"$have_gas_719" + +"$have_gas_719": ; preds = %"$out_of_gas_718", %"$have_gas_714" + %"$consume_720" = sub i64 %"$gasrem_716", 1 + store i64 %"$consume_720", i64* @_gasrem, align 8 + %"$list_foldr_721" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 + %"$list_foldr_722" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_721", i32 0 + %"$list_foldr_723" = bitcast { i8*, i8* }* %"$list_foldr_722" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldr_724" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldr_723", align 8 + %"$list_foldr_fptr_725" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_724", 0 + %"$list_foldr_envptr_726" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldr_724", 1 + %"$list_foldr_call_727" = call { i8*, i8* }* %"$list_foldr_fptr_725"(i8* %"$list_foldr_envptr_726") + %"$list_foldr_728" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldr_call_727", i32 1 + %"$list_foldr_729" = bitcast { i8*, i8* }* %"$list_foldr_728" to { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldr_730" = load { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldr_729", align 8 + %"$list_foldr_fptr_731" = extractvalue { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldr_730", 0 + %"$list_foldr_envptr_732" = extractvalue { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldr_730", 1 + %"$list_foldr_call_733" = call { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$list_foldr_fptr_731"(i8* %"$list_foldr_envptr_732") + store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$list_foldr_call_733", { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %foldr, align 8 + %"$gasrem_734" = load i64, i64* @_gasrem, align 8 + %"$gascmp_735" = icmp ugt i64 1, %"$gasrem_734" + br i1 %"$gascmp_735", label %"$out_of_gas_736", label %"$have_gas_737" + +"$out_of_gas_736": ; preds = %"$have_gas_719" + call void @_out_of_gas() + br label %"$have_gas_737" + +"$have_gas_737": ; preds = %"$out_of_gas_736", %"$have_gas_719" + %"$consume_738" = sub i64 %"$gasrem_734", 1 + store i64 %"$consume_738", i64* @_gasrem, align 8 %iter = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_900" = load i64, i64* @_gasrem, align 8 - %"$gascmp_901" = icmp ugt i64 1, %"$gasrem_900" - br i1 %"$gascmp_901", label %"$out_of_gas_902", label %"$have_gas_903" - -"$out_of_gas_902": ; preds = %"$have_gas_898" - call void @_out_of_gas() - br label %"$have_gas_903" - -"$have_gas_903": ; preds = %"$out_of_gas_902", %"$have_gas_898" - %"$consume_904" = sub i64 %"$gasrem_900", 1 - store i64 %"$consume_904", i64* @_gasrem, align 8 - %"$$fundef_204_envp_905_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_204_envp_905_salloc" = call i8* @_salloc(i8* %"$$fundef_204_envp_905_load", i64 16) - %"$$fundef_204_envp_905" = bitcast i8* %"$$fundef_204_envp_905_salloc" to %"$$fundef_204_env_449"* - %"$$fundef_204_env_voidp_907" = bitcast %"$$fundef_204_env_449"* %"$$fundef_204_envp_905" to i8* - %"$$fundef_204_cloval_908" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_204_env_449"*, [20 x i8]*)* @"$fundef_204" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_204_env_voidp_907", 1 - %"$$fundef_204_env_f_909" = getelementptr inbounds %"$$fundef_204_env_449", %"$$fundef_204_env_449"* %"$$fundef_204_envp_905", i32 0, i32 0 - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_204_env_f_909", align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_204_cloval_908", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %iter, align 8 - %"$gasrem_910" = load i64, i64* @_gasrem, align 8 - %"$gascmp_911" = icmp ugt i64 1, %"$gasrem_910" - br i1 %"$gascmp_911", label %"$out_of_gas_912", label %"$have_gas_913" - -"$out_of_gas_912": ; preds = %"$have_gas_903" - call void @_out_of_gas() - br label %"$have_gas_913" - -"$have_gas_913": ; preds = %"$out_of_gas_912", %"$have_gas_903" - %"$consume_914" = sub i64 %"$gasrem_910", 1 - store i64 %"$consume_914", i64* @_gasrem, align 8 + %"$gasrem_739" = load i64, i64* @_gasrem, align 8 + %"$gascmp_740" = icmp ugt i64 1, %"$gasrem_739" + br i1 %"$gascmp_740", label %"$out_of_gas_741", label %"$have_gas_742" + +"$out_of_gas_741": ; preds = %"$have_gas_737" + call void @_out_of_gas() + br label %"$have_gas_742" + +"$have_gas_742": ; preds = %"$out_of_gas_741", %"$have_gas_737" + %"$consume_743" = sub i64 %"$gasrem_739", 1 + store i64 %"$consume_743", i64* @_gasrem, align 8 + %"$$fundef_115_envp_744_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_115_envp_744_salloc" = call i8* @_salloc(i8* %"$$fundef_115_envp_744_load", i64 16) + %"$$fundef_115_envp_744" = bitcast i8* %"$$fundef_115_envp_744_salloc" to %"$$fundef_115_env_318"* + %"$$fundef_115_env_voidp_746" = bitcast %"$$fundef_115_env_318"* %"$$fundef_115_envp_744" to i8* + %"$$fundef_115_cloval_747" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_115_env_318"*, [20 x i8]*)* @"$fundef_115" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_115_env_voidp_746", 1 + %"$$fundef_115_env_f_748" = getelementptr inbounds %"$$fundef_115_env_318", %"$$fundef_115_env_318"* %"$$fundef_115_envp_744", i32 0, i32 0 + store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %1, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$$fundef_115_env_f_748", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_115_cloval_747", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %iter, align 8 + %"$gasrem_749" = load i64, i64* @_gasrem, align 8 + %"$gascmp_750" = icmp ugt i64 1, %"$gasrem_749" + br i1 %"$gascmp_750", label %"$out_of_gas_751", label %"$have_gas_752" + +"$out_of_gas_751": ; preds = %"$have_gas_742" + call void @_out_of_gas() + br label %"$have_gas_752" + +"$have_gas_752": ; preds = %"$out_of_gas_751", %"$have_gas_742" + %"$consume_753" = sub i64 %"$gasrem_749", 1 + store i64 %"$consume_753", i64* @_gasrem, align 8 %init = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_915" = load i64, i64* @_gasrem, align 8 - %"$gascmp_916" = icmp ugt i64 1, %"$gasrem_915" - br i1 %"$gascmp_916", label %"$out_of_gas_917", label %"$have_gas_918" - -"$out_of_gas_917": ; preds = %"$have_gas_913" - call void @_out_of_gas() - br label %"$have_gas_918" - -"$have_gas_918": ; preds = %"$out_of_gas_917", %"$have_gas_913" - %"$consume_919" = sub i64 %"$gasrem_915", 1 - store i64 %"$consume_919", i64* @_gasrem, align 8 - %"$adtval_920_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_920_salloc" = call i8* @_salloc(i8* %"$adtval_920_load", i64 1) - %"$adtval_920" = bitcast i8* %"$adtval_920_salloc" to %CName_Nil_ByStr20* - %"$adtgep_921" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_920", i32 0, i32 0 - store i8 1, i8* %"$adtgep_921", align 1 - %"$adtptr_922" = bitcast %CName_Nil_ByStr20* %"$adtval_920" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_922", %TName_List_ByStr20** %init, align 8 - %"$gasrem_923" = load i64, i64* @_gasrem, align 8 - %"$gascmp_924" = icmp ugt i64 1, %"$gasrem_923" - br i1 %"$gascmp_924", label %"$out_of_gas_925", label %"$have_gas_926" - -"$out_of_gas_925": ; preds = %"$have_gas_918" - call void @_out_of_gas() - br label %"$have_gas_926" - -"$have_gas_926": ; preds = %"$out_of_gas_925", %"$have_gas_918" - %"$consume_927" = sub i64 %"$gasrem_923", 1 - store i64 %"$consume_927", i64* @_gasrem, align 8 + %"$gasrem_754" = load i64, i64* @_gasrem, align 8 + %"$gascmp_755" = icmp ugt i64 1, %"$gasrem_754" + br i1 %"$gascmp_755", label %"$out_of_gas_756", label %"$have_gas_757" + +"$out_of_gas_756": ; preds = %"$have_gas_752" + call void @_out_of_gas() + br label %"$have_gas_757" + +"$have_gas_757": ; preds = %"$out_of_gas_756", %"$have_gas_752" + %"$consume_758" = sub i64 %"$gasrem_754", 1 + store i64 %"$consume_758", i64* @_gasrem, align 8 + %"$adtval_759_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_759_salloc" = call i8* @_salloc(i8* %"$adtval_759_load", i64 1) + %"$adtval_759" = bitcast i8* %"$adtval_759_salloc" to %CName_Nil_ByStr20* + %"$adtgep_760" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_759", i32 0, i32 0 + store i8 1, i8* %"$adtgep_760", align 1 + %"$adtptr_761" = bitcast %CName_Nil_ByStr20* %"$adtval_759" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_761", %TName_List_ByStr20** %init, align 8 + %"$gasrem_762" = load i64, i64* @_gasrem, align 8 + %"$gascmp_763" = icmp ugt i64 1, %"$gasrem_762" + br i1 %"$gascmp_763", label %"$out_of_gas_764", label %"$have_gas_765" + +"$out_of_gas_764": ; preds = %"$have_gas_757" + call void @_out_of_gas() + br label %"$have_gas_765" + +"$have_gas_765": ; preds = %"$out_of_gas_764", %"$have_gas_757" + %"$consume_766" = sub i64 %"$gasrem_762", 1 + store i64 %"$consume_766", i64* @_gasrem, align 8 %"$foldr_20" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$foldr_928" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %foldr, align 8 - %"$foldr_fptr_929" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$foldr_928", 0 - %"$foldr_envptr_930" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$foldr_928", 1 - %"$iter_931" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %iter, align 8 - %"$foldr_call_932" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_fptr_929"(i8* %"$foldr_envptr_930", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$iter_931") - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_call_932", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_20", align 8 + %"$foldr_767" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %foldr, align 8 + %"$foldr_fptr_768" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$foldr_767", 0 + %"$foldr_envptr_769" = extractvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$foldr_767", 1 + %"$iter_770" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %iter, align 8 + %"$foldr_call_771" = call { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_fptr_768"(i8* %"$foldr_envptr_769", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$iter_770") + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$foldr_call_771", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_20", align 8 %"$foldr_21" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$foldr_20_933" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_20", align 8 - %"$$foldr_20_fptr_934" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_933", 0 - %"$$foldr_20_envptr_935" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_933", 1 - %"$init_936" = load %TName_List_ByStr20*, %TName_List_ByStr20** %init, align 8 - %"$$foldr_20_call_937" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_fptr_934"(i8* %"$$foldr_20_envptr_935", %TName_List_ByStr20* %"$init_936") - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_call_937", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_21", align 8 - %"$$foldr_21_938" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_21", align 8 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_21_938", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_203", align 8 - %"$$retval_203_939" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_203", align 8 - ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_203_939" + %"$$foldr_20_772" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_20", align 8 + %"$$foldr_20_fptr_773" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_772", 0 + %"$$foldr_20_envptr_774" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_772", 1 + %"$init_775" = load %TName_List_ByStr20*, %TName_List_ByStr20** %init, align 8 + %"$$foldr_20_call_776" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_fptr_773"(i8* %"$$foldr_20_envptr_774", %TName_List_ByStr20* %"$init_775") + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_20_call_776", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_21", align 8 + %"$$foldr_21_777" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldr_21", align 8 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldr_21_777", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_114", align 8 + %"$$retval_114_778" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_114", align 8 + ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_114_778" } -define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_200"(%"$$fundef_200_env_451"* %0) { +define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_111"(%"$$fundef_111_env_320"* %0) { entry: - %"$$fundef_200_env_list_foldr_856" = getelementptr inbounds %"$$fundef_200_env_451", %"$$fundef_200_env_451"* %0, i32 0, i32 0 - %"$list_foldr_envload_857" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_200_env_list_foldr_856", align 8 + %"$$fundef_111_env_list_foldr_695" = getelementptr inbounds %"$$fundef_111_env_320", %"$$fundef_111_env_320"* %0, i32 0, i32 0 + %"$list_foldr_envload_696" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_111_env_list_foldr_695", align 8 %list_foldr = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldr_envload_857", { i8*, i8* }** %list_foldr, align 8 - %"$retval_201" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_858" = load i64, i64* @_gasrem, align 8 - %"$gascmp_859" = icmp ugt i64 1, %"$gasrem_858" - br i1 %"$gascmp_859", label %"$out_of_gas_860", label %"$have_gas_861" - -"$out_of_gas_860": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_861" - -"$have_gas_861": ; preds = %"$out_of_gas_860", %entry - %"$consume_862" = sub i64 %"$gasrem_858", 1 - store i64 %"$consume_862", i64* @_gasrem, align 8 - %"$$fundef_202_envp_863_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_202_envp_863_salloc" = call i8* @_salloc(i8* %"$$fundef_202_envp_863_load", i64 8) - %"$$fundef_202_envp_863" = bitcast i8* %"$$fundef_202_envp_863_salloc" to %"$$fundef_202_env_450"* - %"$$fundef_202_env_voidp_865" = bitcast %"$$fundef_202_env_450"* %"$$fundef_202_envp_863" to i8* - %"$$fundef_202_cloval_866" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_202_env_450"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_202" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_202_env_voidp_865", 1 - %"$$fundef_202_env_list_foldr_867" = getelementptr inbounds %"$$fundef_202_env_450", %"$$fundef_202_env_450"* %"$$fundef_202_envp_863", i32 0, i32 0 - %"$list_foldr_868" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 - store { i8*, i8* }* %"$list_foldr_868", { i8*, i8* }** %"$$fundef_202_env_list_foldr_867", align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_202_cloval_866", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_201", align 8 - %"$$retval_201_869" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_201", align 8 - ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_201_869" + store { i8*, i8* }* %"$list_foldr_envload_696", { i8*, i8* }** %list_foldr, align 8 + %"$retval_112" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 + %"$gasrem_697" = load i64, i64* @_gasrem, align 8 + %"$gascmp_698" = icmp ugt i64 1, %"$gasrem_697" + br i1 %"$gascmp_698", label %"$out_of_gas_699", label %"$have_gas_700" + +"$out_of_gas_699": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_700" + +"$have_gas_700": ; preds = %"$out_of_gas_699", %entry + %"$consume_701" = sub i64 %"$gasrem_697", 1 + store i64 %"$consume_701", i64* @_gasrem, align 8 + %"$$fundef_113_envp_702_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_113_envp_702_salloc" = call i8* @_salloc(i8* %"$$fundef_113_envp_702_load", i64 8) + %"$$fundef_113_envp_702" = bitcast i8* %"$$fundef_113_envp_702_salloc" to %"$$fundef_113_env_319"* + %"$$fundef_113_env_voidp_704" = bitcast %"$$fundef_113_env_319"* %"$$fundef_113_envp_702" to i8* + %"$$fundef_113_cloval_705" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_113_env_319"*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })* @"$fundef_113" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*), i8* undef }, i8* %"$$fundef_113_env_voidp_704", 1 + %"$$fundef_113_env_list_foldr_706" = getelementptr inbounds %"$$fundef_113_env_319", %"$$fundef_113_env_319"* %"$$fundef_113_envp_702", i32 0, i32 0 + %"$list_foldr_707" = load { i8*, i8* }*, { i8*, i8* }** %list_foldr, align 8 + store { i8*, i8* }* %"$list_foldr_707", { i8*, i8* }** %"$$fundef_113_env_list_foldr_706", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$fundef_113_cloval_705", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_112", align 8 + %"$$retval_112_708" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_112", align 8 + ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_112_708" } -define internal %TName_Bool* @"$fundef_168"(%"$$fundef_168_env_452"* %0, %TName_Bool* %1) { +define internal %TName_Bool* @"$fundef_83"(%"$$fundef_83_env_321"* %0, %TName_Bool* %1) { entry: - %"$retval_169" = alloca %TName_Bool*, align 8 - %"$gasrem_826" = load i64, i64* @_gasrem, align 8 - %"$gascmp_827" = icmp ugt i64 2, %"$gasrem_826" - br i1 %"$gascmp_827", label %"$out_of_gas_828", label %"$have_gas_829" - -"$out_of_gas_828": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_829" - -"$have_gas_829": ; preds = %"$out_of_gas_828", %entry - %"$consume_830" = sub i64 %"$gasrem_826", 2 - store i64 %"$consume_830", i64* @_gasrem, align 8 - %"$b_tag_832" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 - %"$b_tag_833" = load i8, i8* %"$b_tag_832", align 1 - switch i8 %"$b_tag_833", label %"$empty_default_834" [ - i8 0, label %"$True_835" - i8 1, label %"$False_845" + %"$retval_84" = alloca %TName_Bool*, align 8 + %"$gasrem_665" = load i64, i64* @_gasrem, align 8 + %"$gascmp_666" = icmp ugt i64 2, %"$gasrem_665" + br i1 %"$gascmp_666", label %"$out_of_gas_667", label %"$have_gas_668" + +"$out_of_gas_667": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_668" + +"$have_gas_668": ; preds = %"$out_of_gas_667", %entry + %"$consume_669" = sub i64 %"$gasrem_665", 2 + store i64 %"$consume_669", i64* @_gasrem, align 8 + %"$b_tag_671" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_672" = load i8, i8* %"$b_tag_671", align 1 + switch i8 %"$b_tag_672", label %"$empty_default_673" [ + i8 0, label %"$True_674" + i8 1, label %"$False_684" ] -"$True_835": ; preds = %"$have_gas_829" - %"$b_836" = bitcast %TName_Bool* %1 to %CName_True* - %"$gasrem_837" = load i64, i64* @_gasrem, align 8 - %"$gascmp_838" = icmp ugt i64 1, %"$gasrem_837" - br i1 %"$gascmp_838", label %"$out_of_gas_839", label %"$have_gas_840" - -"$out_of_gas_839": ; preds = %"$True_835" - call void @_out_of_gas() - br label %"$have_gas_840" - -"$have_gas_840": ; preds = %"$out_of_gas_839", %"$True_835" - %"$consume_841" = sub i64 %"$gasrem_837", 1 - store i64 %"$consume_841", i64* @_gasrem, align 8 - %"$adtval_842_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_842_salloc" = call i8* @_salloc(i8* %"$adtval_842_load", i64 1) - %"$adtval_842" = bitcast i8* %"$adtval_842_salloc" to %CName_False* - %"$adtgep_843" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_842", i32 0, i32 0 - store i8 1, i8* %"$adtgep_843", align 1 - %"$adtptr_844" = bitcast %CName_False* %"$adtval_842" to %TName_Bool* - store %TName_Bool* %"$adtptr_844", %TName_Bool** %"$retval_169", align 8 - br label %"$matchsucc_831" - -"$False_845": ; preds = %"$have_gas_829" - %"$b_846" = bitcast %TName_Bool* %1 to %CName_False* - %"$gasrem_847" = load i64, i64* @_gasrem, align 8 - %"$gascmp_848" = icmp ugt i64 1, %"$gasrem_847" - br i1 %"$gascmp_848", label %"$out_of_gas_849", label %"$have_gas_850" - -"$out_of_gas_849": ; preds = %"$False_845" - call void @_out_of_gas() - br label %"$have_gas_850" - -"$have_gas_850": ; preds = %"$out_of_gas_849", %"$False_845" - %"$consume_851" = sub i64 %"$gasrem_847", 1 - store i64 %"$consume_851", i64* @_gasrem, align 8 - %"$adtval_852_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_852_salloc" = call i8* @_salloc(i8* %"$adtval_852_load", i64 1) - %"$adtval_852" = bitcast i8* %"$adtval_852_salloc" to %CName_True* - %"$adtgep_853" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_852", i32 0, i32 0 - store i8 0, i8* %"$adtgep_853", align 1 - %"$adtptr_854" = bitcast %CName_True* %"$adtval_852" to %TName_Bool* - store %TName_Bool* %"$adtptr_854", %TName_Bool** %"$retval_169", align 8 - br label %"$matchsucc_831" - -"$empty_default_834": ; preds = %"$have_gas_829" - br label %"$matchsucc_831" - -"$matchsucc_831": ; preds = %"$have_gas_850", %"$have_gas_840", %"$empty_default_834" - %"$$retval_169_855" = load %TName_Bool*, %TName_Bool** %"$retval_169", align 8 - ret %TName_Bool* %"$$retval_169_855" +"$True_674": ; preds = %"$have_gas_668" + %"$b_675" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_676" = load i64, i64* @_gasrem, align 8 + %"$gascmp_677" = icmp ugt i64 1, %"$gasrem_676" + br i1 %"$gascmp_677", label %"$out_of_gas_678", label %"$have_gas_679" + +"$out_of_gas_678": ; preds = %"$True_674" + call void @_out_of_gas() + br label %"$have_gas_679" + +"$have_gas_679": ; preds = %"$out_of_gas_678", %"$True_674" + %"$consume_680" = sub i64 %"$gasrem_676", 1 + store i64 %"$consume_680", i64* @_gasrem, align 8 + %"$adtval_681_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_681_salloc" = call i8* @_salloc(i8* %"$adtval_681_load", i64 1) + %"$adtval_681" = bitcast i8* %"$adtval_681_salloc" to %CName_False* + %"$adtgep_682" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_681", i32 0, i32 0 + store i8 1, i8* %"$adtgep_682", align 1 + %"$adtptr_683" = bitcast %CName_False* %"$adtval_681" to %TName_Bool* + store %TName_Bool* %"$adtptr_683", %TName_Bool** %"$retval_84", align 8 + br label %"$matchsucc_670" + +"$False_684": ; preds = %"$have_gas_668" + %"$b_685" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_686" = load i64, i64* @_gasrem, align 8 + %"$gascmp_687" = icmp ugt i64 1, %"$gasrem_686" + br i1 %"$gascmp_687", label %"$out_of_gas_688", label %"$have_gas_689" + +"$out_of_gas_688": ; preds = %"$False_684" + call void @_out_of_gas() + br label %"$have_gas_689" + +"$have_gas_689": ; preds = %"$out_of_gas_688", %"$False_684" + %"$consume_690" = sub i64 %"$gasrem_686", 1 + store i64 %"$consume_690", i64* @_gasrem, align 8 + %"$adtval_691_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_691_salloc" = call i8* @_salloc(i8* %"$adtval_691_load", i64 1) + %"$adtval_691" = bitcast i8* %"$adtval_691_salloc" to %CName_True* + %"$adtgep_692" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_691", i32 0, i32 0 + store i8 0, i8* %"$adtgep_692", align 1 + %"$adtptr_693" = bitcast %CName_True* %"$adtval_691" to %TName_Bool* + store %TName_Bool* %"$adtptr_693", %TName_Bool** %"$retval_84", align 8 + br label %"$matchsucc_670" + +"$empty_default_673": ; preds = %"$have_gas_668" + br label %"$matchsucc_670" + +"$matchsucc_670": ; preds = %"$have_gas_689", %"$have_gas_679", %"$empty_default_673" + %"$$retval_84_694" = load %TName_Bool*, %TName_Bool** %"$retval_84", align 8 + ret %TName_Bool* %"$$retval_84_694" } -define internal %TName_Bool* @"$fundef_172"(%"$$fundef_172_env_453"* %0, %TName_Bool* %1) { +define internal %TName_Bool* @"$fundef_85"(%"$$fundef_85_env_322"* %0, %TName_Bool* %1, %TName_Bool* %2) { entry: - %"$$fundef_172_env_b_796" = getelementptr inbounds %"$$fundef_172_env_453", %"$$fundef_172_env_453"* %0, i32 0, i32 0 - %"$b_envload_797" = load %TName_Bool*, %TName_Bool** %"$$fundef_172_env_b_796", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_797", %TName_Bool** %b, align 8 - %"$retval_173" = alloca %TName_Bool*, align 8 - %"$gasrem_798" = load i64, i64* @_gasrem, align 8 - %"$gascmp_799" = icmp ugt i64 2, %"$gasrem_798" - br i1 %"$gascmp_799", label %"$out_of_gas_800", label %"$have_gas_801" - -"$out_of_gas_800": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_801" - -"$have_gas_801": ; preds = %"$out_of_gas_800", %entry - %"$consume_802" = sub i64 %"$gasrem_798", 2 - store i64 %"$consume_802", i64* @_gasrem, align 8 - %"$b_804" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_805" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_804", i32 0, i32 0 - %"$b_tag_806" = load i8, i8* %"$b_tag_805", align 1 - switch i8 %"$b_tag_806", label %"$empty_default_807" [ - i8 0, label %"$True_808" - i8 1, label %"$False_818" + %"$retval_86" = alloca %TName_Bool*, align 8 + %"$gasrem_638" = load i64, i64* @_gasrem, align 8 + %"$gascmp_639" = icmp ugt i64 2, %"$gasrem_638" + br i1 %"$gascmp_639", label %"$out_of_gas_640", label %"$have_gas_641" + +"$out_of_gas_640": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_641" + +"$have_gas_641": ; preds = %"$out_of_gas_640", %entry + %"$consume_642" = sub i64 %"$gasrem_638", 2 + store i64 %"$consume_642", i64* @_gasrem, align 8 + %"$b_tag_644" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_645" = load i8, i8* %"$b_tag_644", align 1 + switch i8 %"$b_tag_645", label %"$empty_default_646" [ + i8 0, label %"$True_647" + i8 1, label %"$False_657" ] -"$True_808": ; preds = %"$have_gas_801" - %"$b_809" = bitcast %TName_Bool* %"$b_804" to %CName_True* - %"$gasrem_810" = load i64, i64* @_gasrem, align 8 - %"$gascmp_811" = icmp ugt i64 1, %"$gasrem_810" - br i1 %"$gascmp_811", label %"$out_of_gas_812", label %"$have_gas_813" - -"$out_of_gas_812": ; preds = %"$True_808" - call void @_out_of_gas() - br label %"$have_gas_813" - -"$have_gas_813": ; preds = %"$out_of_gas_812", %"$True_808" - %"$consume_814" = sub i64 %"$gasrem_810", 1 - store i64 %"$consume_814", i64* @_gasrem, align 8 - %"$adtval_815_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_815_salloc" = call i8* @_salloc(i8* %"$adtval_815_load", i64 1) - %"$adtval_815" = bitcast i8* %"$adtval_815_salloc" to %CName_True* - %"$adtgep_816" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_815", i32 0, i32 0 - store i8 0, i8* %"$adtgep_816", align 1 - %"$adtptr_817" = bitcast %CName_True* %"$adtval_815" to %TName_Bool* - store %TName_Bool* %"$adtptr_817", %TName_Bool** %"$retval_173", align 8 - br label %"$matchsucc_803" - -"$False_818": ; preds = %"$have_gas_801" - %"$b_819" = bitcast %TName_Bool* %"$b_804" to %CName_False* - %"$gasrem_820" = load i64, i64* @_gasrem, align 8 - %"$gascmp_821" = icmp ugt i64 1, %"$gasrem_820" - br i1 %"$gascmp_821", label %"$out_of_gas_822", label %"$have_gas_823" - -"$out_of_gas_822": ; preds = %"$False_818" - call void @_out_of_gas() - br label %"$have_gas_823" - -"$have_gas_823": ; preds = %"$out_of_gas_822", %"$False_818" - %"$consume_824" = sub i64 %"$gasrem_820", 1 - store i64 %"$consume_824", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_173", align 8 - br label %"$matchsucc_803" - -"$empty_default_807": ; preds = %"$have_gas_801" - br label %"$matchsucc_803" - -"$matchsucc_803": ; preds = %"$have_gas_823", %"$have_gas_813", %"$empty_default_807" - %"$$retval_173_825" = load %TName_Bool*, %TName_Bool** %"$retval_173", align 8 - ret %TName_Bool* %"$$retval_173_825" -} - -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_170"(%"$$fundef_170_env_454"* %0, %TName_Bool* %1) { -entry: - %"$retval_171" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_785" = load i64, i64* @_gasrem, align 8 - %"$gascmp_786" = icmp ugt i64 1, %"$gasrem_785" - br i1 %"$gascmp_786", label %"$out_of_gas_787", label %"$have_gas_788" - -"$out_of_gas_787": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_788" - -"$have_gas_788": ; preds = %"$out_of_gas_787", %entry - %"$consume_789" = sub i64 %"$gasrem_785", 1 - store i64 %"$consume_789", i64* @_gasrem, align 8 - %"$$fundef_172_envp_790_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_172_envp_790_salloc" = call i8* @_salloc(i8* %"$$fundef_172_envp_790_load", i64 8) - %"$$fundef_172_envp_790" = bitcast i8* %"$$fundef_172_envp_790_salloc" to %"$$fundef_172_env_453"* - %"$$fundef_172_env_voidp_792" = bitcast %"$$fundef_172_env_453"* %"$$fundef_172_envp_790" to i8* - %"$$fundef_172_cloval_793" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_172_env_453"*, %TName_Bool*)* @"$fundef_172" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_172_env_voidp_792", 1 - %"$$fundef_172_env_b_794" = getelementptr inbounds %"$$fundef_172_env_453", %"$$fundef_172_env_453"* %"$$fundef_172_envp_790", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_172_env_b_794", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_172_cloval_793", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_171", align 8 - %"$$retval_171_795" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_171", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_171_795" +"$True_647": ; preds = %"$have_gas_641" + %"$b_648" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_649" = load i64, i64* @_gasrem, align 8 + %"$gascmp_650" = icmp ugt i64 1, %"$gasrem_649" + br i1 %"$gascmp_650", label %"$out_of_gas_651", label %"$have_gas_652" + +"$out_of_gas_651": ; preds = %"$True_647" + call void @_out_of_gas() + br label %"$have_gas_652" + +"$have_gas_652": ; preds = %"$out_of_gas_651", %"$True_647" + %"$consume_653" = sub i64 %"$gasrem_649", 1 + store i64 %"$consume_653", i64* @_gasrem, align 8 + %"$adtval_654_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_654_salloc" = call i8* @_salloc(i8* %"$adtval_654_load", i64 1) + %"$adtval_654" = bitcast i8* %"$adtval_654_salloc" to %CName_True* + %"$adtgep_655" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_654", i32 0, i32 0 + store i8 0, i8* %"$adtgep_655", align 1 + %"$adtptr_656" = bitcast %CName_True* %"$adtval_654" to %TName_Bool* + store %TName_Bool* %"$adtptr_656", %TName_Bool** %"$retval_86", align 8 + br label %"$matchsucc_643" + +"$False_657": ; preds = %"$have_gas_641" + %"$b_658" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_659" = load i64, i64* @_gasrem, align 8 + %"$gascmp_660" = icmp ugt i64 1, %"$gasrem_659" + br i1 %"$gascmp_660", label %"$out_of_gas_661", label %"$have_gas_662" + +"$out_of_gas_661": ; preds = %"$False_657" + call void @_out_of_gas() + br label %"$have_gas_662" + +"$have_gas_662": ; preds = %"$out_of_gas_661", %"$False_657" + %"$consume_663" = sub i64 %"$gasrem_659", 1 + store i64 %"$consume_663", i64* @_gasrem, align 8 + store %TName_Bool* %2, %TName_Bool** %"$retval_86", align 8 + br label %"$matchsucc_643" + +"$empty_default_646": ; preds = %"$have_gas_641" + br label %"$matchsucc_643" + +"$matchsucc_643": ; preds = %"$have_gas_662", %"$have_gas_652", %"$empty_default_646" + %"$$retval_86_664" = load %TName_Bool*, %TName_Bool** %"$retval_86", align 8 + ret %TName_Bool* %"$$retval_86_664" } -define internal %TName_Bool* @"$fundef_176"(%"$$fundef_176_env_455"* %0, %TName_Bool* %1) { +define internal %TName_Bool* @"$fundef_87"(%"$$fundef_87_env_323"* %0, %TName_Bool* %1, %TName_Bool* %2) { entry: - %"$$fundef_176_env_b_755" = getelementptr inbounds %"$$fundef_176_env_455", %"$$fundef_176_env_455"* %0, i32 0, i32 0 - %"$b_envload_756" = load %TName_Bool*, %TName_Bool** %"$$fundef_176_env_b_755", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_756", %TName_Bool** %b, align 8 - %"$retval_177" = alloca %TName_Bool*, align 8 - %"$gasrem_757" = load i64, i64* @_gasrem, align 8 - %"$gascmp_758" = icmp ugt i64 2, %"$gasrem_757" - br i1 %"$gascmp_758", label %"$out_of_gas_759", label %"$have_gas_760" - -"$out_of_gas_759": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_760" - -"$have_gas_760": ; preds = %"$out_of_gas_759", %entry - %"$consume_761" = sub i64 %"$gasrem_757", 2 - store i64 %"$consume_761", i64* @_gasrem, align 8 - %"$b_763" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_764" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_763", i32 0, i32 0 - %"$b_tag_765" = load i8, i8* %"$b_tag_764", align 1 - switch i8 %"$b_tag_765", label %"$empty_default_766" [ - i8 1, label %"$False_767" - i8 0, label %"$True_777" + %"$retval_88" = alloca %TName_Bool*, align 8 + %"$gasrem_611" = load i64, i64* @_gasrem, align 8 + %"$gascmp_612" = icmp ugt i64 2, %"$gasrem_611" + br i1 %"$gascmp_612", label %"$out_of_gas_613", label %"$have_gas_614" + +"$out_of_gas_613": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_614" + +"$have_gas_614": ; preds = %"$out_of_gas_613", %entry + %"$consume_615" = sub i64 %"$gasrem_611", 2 + store i64 %"$consume_615", i64* @_gasrem, align 8 + %"$b_tag_617" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_618" = load i8, i8* %"$b_tag_617", align 1 + switch i8 %"$b_tag_618", label %"$empty_default_619" [ + i8 1, label %"$False_620" + i8 0, label %"$True_630" ] -"$False_767": ; preds = %"$have_gas_760" - %"$b_768" = bitcast %TName_Bool* %"$b_763" to %CName_False* - %"$gasrem_769" = load i64, i64* @_gasrem, align 8 - %"$gascmp_770" = icmp ugt i64 1, %"$gasrem_769" - br i1 %"$gascmp_770", label %"$out_of_gas_771", label %"$have_gas_772" - -"$out_of_gas_771": ; preds = %"$False_767" - call void @_out_of_gas() - br label %"$have_gas_772" - -"$have_gas_772": ; preds = %"$out_of_gas_771", %"$False_767" - %"$consume_773" = sub i64 %"$gasrem_769", 1 - store i64 %"$consume_773", i64* @_gasrem, align 8 - %"$adtval_774_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_774_salloc" = call i8* @_salloc(i8* %"$adtval_774_load", i64 1) - %"$adtval_774" = bitcast i8* %"$adtval_774_salloc" to %CName_False* - %"$adtgep_775" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_774", i32 0, i32 0 - store i8 1, i8* %"$adtgep_775", align 1 - %"$adtptr_776" = bitcast %CName_False* %"$adtval_774" to %TName_Bool* - store %TName_Bool* %"$adtptr_776", %TName_Bool** %"$retval_177", align 8 - br label %"$matchsucc_762" - -"$True_777": ; preds = %"$have_gas_760" - %"$b_778" = bitcast %TName_Bool* %"$b_763" to %CName_True* - %"$gasrem_779" = load i64, i64* @_gasrem, align 8 - %"$gascmp_780" = icmp ugt i64 1, %"$gasrem_779" - br i1 %"$gascmp_780", label %"$out_of_gas_781", label %"$have_gas_782" - -"$out_of_gas_781": ; preds = %"$True_777" - call void @_out_of_gas() - br label %"$have_gas_782" - -"$have_gas_782": ; preds = %"$out_of_gas_781", %"$True_777" - %"$consume_783" = sub i64 %"$gasrem_779", 1 - store i64 %"$consume_783", i64* @_gasrem, align 8 - store %TName_Bool* %1, %TName_Bool** %"$retval_177", align 8 - br label %"$matchsucc_762" - -"$empty_default_766": ; preds = %"$have_gas_760" - br label %"$matchsucc_762" - -"$matchsucc_762": ; preds = %"$have_gas_782", %"$have_gas_772", %"$empty_default_766" - %"$$retval_177_784" = load %TName_Bool*, %TName_Bool** %"$retval_177", align 8 - ret %TName_Bool* %"$$retval_177_784" -} - -define internal { %TName_Bool* (i8*, %TName_Bool*)*, i8* } @"$fundef_174"(%"$$fundef_174_env_456"* %0, %TName_Bool* %1) { -entry: - %"$retval_175" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_744" = load i64, i64* @_gasrem, align 8 - %"$gascmp_745" = icmp ugt i64 1, %"$gasrem_744" - br i1 %"$gascmp_745", label %"$out_of_gas_746", label %"$have_gas_747" - -"$out_of_gas_746": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_747" - -"$have_gas_747": ; preds = %"$out_of_gas_746", %entry - %"$consume_748" = sub i64 %"$gasrem_744", 1 - store i64 %"$consume_748", i64* @_gasrem, align 8 - %"$$fundef_176_envp_749_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_176_envp_749_salloc" = call i8* @_salloc(i8* %"$$fundef_176_envp_749_load", i64 8) - %"$$fundef_176_envp_749" = bitcast i8* %"$$fundef_176_envp_749_salloc" to %"$$fundef_176_env_455"* - %"$$fundef_176_env_voidp_751" = bitcast %"$$fundef_176_env_455"* %"$$fundef_176_envp_749" to i8* - %"$$fundef_176_cloval_752" = insertvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_176_env_455"*, %TName_Bool*)* @"$fundef_176" to %TName_Bool* (i8*, %TName_Bool*)*), i8* undef }, i8* %"$$fundef_176_env_voidp_751", 1 - %"$$fundef_176_env_b_753" = getelementptr inbounds %"$$fundef_176_env_455", %"$$fundef_176_env_455"* %"$$fundef_176_envp_749", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_176_env_b_753", align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$fundef_176_cloval_752", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_175", align 8 - %"$$retval_175_754" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$retval_175", align 8 - ret { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$retval_175_754" +"$False_620": ; preds = %"$have_gas_614" + %"$b_621" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_622" = load i64, i64* @_gasrem, align 8 + %"$gascmp_623" = icmp ugt i64 1, %"$gasrem_622" + br i1 %"$gascmp_623", label %"$out_of_gas_624", label %"$have_gas_625" + +"$out_of_gas_624": ; preds = %"$False_620" + call void @_out_of_gas() + br label %"$have_gas_625" + +"$have_gas_625": ; preds = %"$out_of_gas_624", %"$False_620" + %"$consume_626" = sub i64 %"$gasrem_622", 1 + store i64 %"$consume_626", i64* @_gasrem, align 8 + %"$adtval_627_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_627_salloc" = call i8* @_salloc(i8* %"$adtval_627_load", i64 1) + %"$adtval_627" = bitcast i8* %"$adtval_627_salloc" to %CName_False* + %"$adtgep_628" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_627", i32 0, i32 0 + store i8 1, i8* %"$adtgep_628", align 1 + %"$adtptr_629" = bitcast %CName_False* %"$adtval_627" to %TName_Bool* + store %TName_Bool* %"$adtptr_629", %TName_Bool** %"$retval_88", align 8 + br label %"$matchsucc_616" + +"$True_630": ; preds = %"$have_gas_614" + %"$b_631" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_632" = load i64, i64* @_gasrem, align 8 + %"$gascmp_633" = icmp ugt i64 1, %"$gasrem_632" + br i1 %"$gascmp_633", label %"$out_of_gas_634", label %"$have_gas_635" + +"$out_of_gas_634": ; preds = %"$True_630" + call void @_out_of_gas() + br label %"$have_gas_635" + +"$have_gas_635": ; preds = %"$out_of_gas_634", %"$True_630" + %"$consume_636" = sub i64 %"$gasrem_632", 1 + store i64 %"$consume_636", i64* @_gasrem, align 8 + store %TName_Bool* %2, %TName_Bool** %"$retval_88", align 8 + br label %"$matchsucc_616" + +"$empty_default_619": ; preds = %"$have_gas_614" + br label %"$matchsucc_616" + +"$matchsucc_616": ; preds = %"$have_gas_635", %"$have_gas_625", %"$empty_default_619" + %"$$retval_88_637" = load %TName_Bool*, %TName_Bool** %"$retval_88", align 8 + ret %TName_Bool* %"$$retval_88_637" } -define internal %TName_Option_ByStr20* @"$fundef_156"(%"$$fundef_156_env_457"* %0, %TName_Option_ByStr20* %1) { +define internal %TName_Option_ByStr20* @"$fundef_71"(%"$$fundef_71_env_324"* %0, %TName_Option_ByStr20* %1) { entry: - %"$$fundef_156_env_g_724" = getelementptr inbounds %"$$fundef_156_env_457", %"$$fundef_156_env_457"* %0, i32 0, i32 0 - %"$g_envload_725" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_156_env_g_724", align 8 + %"$$fundef_71_env_g_591" = getelementptr inbounds %"$$fundef_71_env_324", %"$$fundef_71_env_324"* %0, i32 0, i32 0 + %"$g_envload_592" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_71_env_g_591", align 8 %g = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_725", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_156_env_t_726" = getelementptr inbounds %"$$fundef_156_env_457", %"$$fundef_156_env_457"* %0, i32 0, i32 1 - %"$t_envload_727" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_156_env_t_726", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_592", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_71_env_t_593" = getelementptr inbounds %"$$fundef_71_env_324", %"$$fundef_71_env_324"* %0, i32 0, i32 1 + %"$t_envload_594" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_71_env_t_593", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_envload_727", %TName_List_ByStr20** %t, align 8 - %"$retval_157" = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_728" = load i64, i64* @_gasrem, align 8 - %"$gascmp_729" = icmp ugt i64 1, %"$gasrem_728" - br i1 %"$gascmp_729", label %"$out_of_gas_730", label %"$have_gas_731" + store %TName_List_ByStr20* %"$t_envload_594", %TName_List_ByStr20** %t, align 8 + %"$retval_72" = alloca %TName_Option_ByStr20*, align 8 + %"$gasrem_595" = load i64, i64* @_gasrem, align 8 + %"$gascmp_596" = icmp ugt i64 1, %"$gasrem_595" + br i1 %"$gascmp_596", label %"$out_of_gas_597", label %"$have_gas_598" -"$out_of_gas_730": ; preds = %entry +"$out_of_gas_597": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_731" + br label %"$have_gas_598" -"$have_gas_731": ; preds = %"$out_of_gas_730", %entry - %"$consume_732" = sub i64 %"$gasrem_728", 1 - store i64 %"$consume_732", i64* @_gasrem, align 8 +"$have_gas_598": ; preds = %"$out_of_gas_597", %entry + %"$consume_599" = sub i64 %"$gasrem_595", 1 + store i64 %"$consume_599", i64* @_gasrem, align 8 %"$g_14" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$g_733" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$g_fptr_734" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_733", 0 - %"$g_envptr_735" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_733", 1 - %"$g_call_736" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_734"(i8* %"$g_envptr_735", %TName_Option_ByStr20* %1) - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_736", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_14", align 8 + %"$g_600" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$g_fptr_601" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_600", 0 + %"$g_envptr_602" = extractvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_600", 1 + %"$g_call_603" = call { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_601"(i8* %"$g_envptr_602", %TName_Option_ByStr20* %1) + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_603", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_14", align 8 %"$g_15" = alloca %TName_Option_ByStr20*, align 8 - %"$$g_14_737" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_14", align 8 - %"$$g_14_fptr_738" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_14_737", 0 - %"$$g_14_envptr_739" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_14_737", 1 - %"$t_740" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - %"$$g_14_call_741" = call %TName_Option_ByStr20* %"$$g_14_fptr_738"(i8* %"$$g_14_envptr_739", %TName_List_ByStr20* %"$t_740") - store %TName_Option_ByStr20* %"$$g_14_call_741", %TName_Option_ByStr20** %"$g_15", align 8 - %"$$g_15_742" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$g_15", align 8 - store %TName_Option_ByStr20* %"$$g_15_742", %TName_Option_ByStr20** %"$retval_157", align 8 - %"$$retval_157_743" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_157", align 8 - ret %TName_Option_ByStr20* %"$$retval_157_743" + %"$$g_14_604" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_14", align 8 + %"$$g_14_fptr_605" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_14_604", 0 + %"$$g_14_envptr_606" = extractvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_14_604", 1 + %"$t_607" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + %"$$g_14_call_608" = call %TName_Option_ByStr20* %"$$g_14_fptr_605"(i8* %"$$g_14_envptr_606", %TName_List_ByStr20* %"$t_607") + store %TName_Option_ByStr20* %"$$g_14_call_608", %TName_Option_ByStr20** %"$g_15", align 8 + %"$$g_15_609" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$g_15", align 8 + store %TName_Option_ByStr20* %"$$g_15_609", %TName_Option_ByStr20** %"$retval_72", align 8 + %"$$retval_72_610" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_72", align 8 + ret %TName_Option_ByStr20* %"$$retval_72_610" } -define internal %TName_Option_ByStr20* @"$fundef_154"(%"$$fundef_154_env_458"* %0, %TName_List_ByStr20* %1) { +define internal %TName_Option_ByStr20* @"$fundef_69"(%"$$fundef_69_env_325"* %0, %TName_List_ByStr20* %1) { entry: - %"$$fundef_154_env_f_654" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %0, i32 0, i32 0 - %"$f_envload_655" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_154_env_f_654", align 8 + %"$$fundef_69_env_f_521" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %0, i32 0, i32 0 + %"$f_envload_522" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_69_env_f_521", align 8 %f = alloca { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_envload_655", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 - %"$$fundef_154_env_g_656" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %0, i32 0, i32 1 - %"$g_envload_657" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_154_env_g_656", align 8 + store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_envload_522", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 + %"$$fundef_69_env_g_523" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %0, i32 0, i32 1 + %"$g_envload_524" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_69_env_g_523", align 8 %g = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_657", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_154_env_z_658" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %0, i32 0, i32 2 - %"$z_envload_659" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_154_env_z_658", align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_524", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_69_env_z_525" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %0, i32 0, i32 2 + %"$z_envload_526" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$$fundef_69_env_z_525", align 8 %z = alloca %TName_Option_ByStr20*, align 8 - store %TName_Option_ByStr20* %"$z_envload_659", %TName_Option_ByStr20** %z, align 8 - %"$retval_155" = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_660" = load i64, i64* @_gasrem, align 8 - %"$gascmp_661" = icmp ugt i64 2, %"$gasrem_660" - br i1 %"$gascmp_661", label %"$out_of_gas_662", label %"$have_gas_663" - -"$out_of_gas_662": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_663" - -"$have_gas_663": ; preds = %"$out_of_gas_662", %entry - %"$consume_664" = sub i64 %"$gasrem_660", 2 - store i64 %"$consume_664", i64* @_gasrem, align 8 - %"$l_tag_666" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 - %"$l_tag_667" = load i8, i8* %"$l_tag_666", align 1 - switch i8 %"$l_tag_667", label %"$empty_default_668" [ - i8 0, label %"$Cons_669" - i8 1, label %"$Nil_715" + store %TName_Option_ByStr20* %"$z_envload_526", %TName_Option_ByStr20** %z, align 8 + %"$retval_70" = alloca %TName_Option_ByStr20*, align 8 + %"$gasrem_527" = load i64, i64* @_gasrem, align 8 + %"$gascmp_528" = icmp ugt i64 2, %"$gasrem_527" + br i1 %"$gascmp_528", label %"$out_of_gas_529", label %"$have_gas_530" + +"$out_of_gas_529": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_530" + +"$have_gas_530": ; preds = %"$out_of_gas_529", %entry + %"$consume_531" = sub i64 %"$gasrem_527", 2 + store i64 %"$consume_531", i64* @_gasrem, align 8 + %"$l_tag_533" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 + %"$l_tag_534" = load i8, i8* %"$l_tag_533", align 1 + switch i8 %"$l_tag_534", label %"$empty_default_535" [ + i8 0, label %"$Cons_536" + i8 1, label %"$Nil_582" ] -"$Cons_669": ; preds = %"$have_gas_663" - %"$l_670" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* - %"$h_gep_671" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_670", i32 0, i32 1 - %"$h_load_672" = load [20 x i8], [20 x i8]* %"$h_gep_671", align 1 +"$Cons_536": ; preds = %"$have_gas_530" + %"$l_537" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* + %"$h_gep_538" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_537", i32 0, i32 1 + %"$h_load_539" = load [20 x i8], [20 x i8]* %"$h_gep_538", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_load_672", [20 x i8]* %h, align 1 - %"$t_gep_673" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_670", i32 0, i32 2 - %"$t_load_674" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_673", align 8 + store [20 x i8] %"$h_load_539", [20 x i8]* %h, align 1 + %"$t_gep_540" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_537", i32 0, i32 2 + %"$t_load_541" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_540", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_load_674", %TName_List_ByStr20** %t, align 8 - %"$gasrem_675" = load i64, i64* @_gasrem, align 8 - %"$gascmp_676" = icmp ugt i64 1, %"$gasrem_675" - br i1 %"$gascmp_676", label %"$out_of_gas_677", label %"$have_gas_678" + store %TName_List_ByStr20* %"$t_load_541", %TName_List_ByStr20** %t, align 8 + %"$gasrem_542" = load i64, i64* @_gasrem, align 8 + %"$gascmp_543" = icmp ugt i64 1, %"$gasrem_542" + br i1 %"$gascmp_543", label %"$out_of_gas_544", label %"$have_gas_545" -"$out_of_gas_677": ; preds = %"$Cons_669" +"$out_of_gas_544": ; preds = %"$Cons_536" call void @_out_of_gas() - br label %"$have_gas_678" + br label %"$have_gas_545" -"$have_gas_678": ; preds = %"$out_of_gas_677", %"$Cons_669" - %"$consume_679" = sub i64 %"$gasrem_675", 1 - store i64 %"$consume_679", i64* @_gasrem, align 8 +"$have_gas_545": ; preds = %"$out_of_gas_544", %"$Cons_536" + %"$consume_546" = sub i64 %"$gasrem_542", 1 + store i64 %"$consume_546", i64* @_gasrem, align 8 %partial = alloca { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_680" = load i64, i64* @_gasrem, align 8 - %"$gascmp_681" = icmp ugt i64 1, %"$gasrem_680" - br i1 %"$gascmp_681", label %"$out_of_gas_682", label %"$have_gas_683" - -"$out_of_gas_682": ; preds = %"$have_gas_678" - call void @_out_of_gas() - br label %"$have_gas_683" - -"$have_gas_683": ; preds = %"$out_of_gas_682", %"$have_gas_678" - %"$consume_684" = sub i64 %"$gasrem_680", 1 - store i64 %"$consume_684", i64* @_gasrem, align 8 - %"$$fundef_156_envp_685_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_156_envp_685_salloc" = call i8* @_salloc(i8* %"$$fundef_156_envp_685_load", i64 24) - %"$$fundef_156_envp_685" = bitcast i8* %"$$fundef_156_envp_685_salloc" to %"$$fundef_156_env_457"* - %"$$fundef_156_env_voidp_687" = bitcast %"$$fundef_156_env_457"* %"$$fundef_156_envp_685" to i8* - %"$$fundef_156_cloval_688" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_156_env_457"*, %TName_Option_ByStr20*)* @"$fundef_156" to %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_156_env_voidp_687", 1 - %"$$fundef_156_env_g_689" = getelementptr inbounds %"$$fundef_156_env_457", %"$$fundef_156_env_457"* %"$$fundef_156_envp_685", i32 0, i32 0 - %"$g_690" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_690", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_156_env_g_689", align 8 - %"$$fundef_156_env_t_691" = getelementptr inbounds %"$$fundef_156_env_457", %"$$fundef_156_env_457"* %"$$fundef_156_envp_685", i32 0, i32 1 - %"$t_692" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - store %TName_List_ByStr20* %"$t_692", %TName_List_ByStr20** %"$$fundef_156_env_t_691", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_156_cloval_688", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 - %"$gasrem_693" = load i64, i64* @_gasrem, align 8 - %"$gascmp_694" = icmp ugt i64 1, %"$gasrem_693" - br i1 %"$gascmp_694", label %"$out_of_gas_695", label %"$have_gas_696" - -"$out_of_gas_695": ; preds = %"$have_gas_683" - call void @_out_of_gas() - br label %"$have_gas_696" - -"$have_gas_696": ; preds = %"$out_of_gas_695", %"$have_gas_683" - %"$consume_697" = sub i64 %"$gasrem_693", 1 - store i64 %"$consume_697", i64* @_gasrem, align 8 + %"$gasrem_547" = load i64, i64* @_gasrem, align 8 + %"$gascmp_548" = icmp ugt i64 1, %"$gasrem_547" + br i1 %"$gascmp_548", label %"$out_of_gas_549", label %"$have_gas_550" + +"$out_of_gas_549": ; preds = %"$have_gas_545" + call void @_out_of_gas() + br label %"$have_gas_550" + +"$have_gas_550": ; preds = %"$out_of_gas_549", %"$have_gas_545" + %"$consume_551" = sub i64 %"$gasrem_547", 1 + store i64 %"$consume_551", i64* @_gasrem, align 8 + %"$$fundef_71_envp_552_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_71_envp_552_salloc" = call i8* @_salloc(i8* %"$$fundef_71_envp_552_load", i64 24) + %"$$fundef_71_envp_552" = bitcast i8* %"$$fundef_71_envp_552_salloc" to %"$$fundef_71_env_324"* + %"$$fundef_71_env_voidp_554" = bitcast %"$$fundef_71_env_324"* %"$$fundef_71_envp_552" to i8* + %"$$fundef_71_cloval_555" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_71_env_324"*, %TName_Option_ByStr20*)* @"$fundef_71" to %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_71_env_voidp_554", 1 + %"$$fundef_71_env_g_556" = getelementptr inbounds %"$$fundef_71_env_324", %"$$fundef_71_env_324"* %"$$fundef_71_envp_552", i32 0, i32 0 + %"$g_557" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_557", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_71_env_g_556", align 8 + %"$$fundef_71_env_t_558" = getelementptr inbounds %"$$fundef_71_env_324", %"$$fundef_71_env_324"* %"$$fundef_71_envp_552", i32 0, i32 1 + %"$t_559" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + store %TName_List_ByStr20* %"$t_559", %TName_List_ByStr20** %"$$fundef_71_env_t_558", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_71_cloval_555", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 + %"$gasrem_560" = load i64, i64* @_gasrem, align 8 + %"$gascmp_561" = icmp ugt i64 1, %"$gasrem_560" + br i1 %"$gascmp_561", label %"$out_of_gas_562", label %"$have_gas_563" + +"$out_of_gas_562": ; preds = %"$have_gas_550" + call void @_out_of_gas() + br label %"$have_gas_563" + +"$have_gas_563": ; preds = %"$out_of_gas_562", %"$have_gas_550" + %"$consume_564" = sub i64 %"$gasrem_560", 1 + store i64 %"$consume_564", i64* @_gasrem, align 8 %"$f_16" = alloca { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_698" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 - %"$f_fptr_699" = extractvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_698", 0 - %"$f_envptr_700" = extractvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_698", 1 - %"$z_701" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 - %"$f_call_702" = call { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_fptr_699"(i8* %"$f_envptr_700", %TName_Option_ByStr20* %"$z_701") - store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_call_702", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_16", align 8 + %"$f_565" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 + %"$f_fptr_566" = extractvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_565", 0 + %"$f_envptr_567" = extractvalue { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_565", 1 + %"$z_568" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 + %"$f_call_569" = call { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_fptr_566"(i8* %"$f_envptr_567", %TName_Option_ByStr20* %"$z_568") + store { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_call_569", { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_16", align 8 %"$f_17" = alloca { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$$f_16_703" = load { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_16", align 8 - %"$$f_16_fptr_704" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_16_703", 0 - %"$$f_16_envptr_705" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_16_703", 1 - %"$$f_16_h_706" = alloca [20 x i8], align 1 - %"$h_707" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_707", [20 x i8]* %"$$f_16_h_706", align 1 - %"$$f_16_call_708" = call { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_16_fptr_704"(i8* %"$$f_16_envptr_705", [20 x i8]* %"$$f_16_h_706") - store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_16_call_708", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_17", align 8 + %"$$f_16_570" = load { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$f_16", align 8 + %"$$f_16_fptr_571" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_16_570", 0 + %"$$f_16_envptr_572" = extractvalue { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$f_16_570", 1 + %"$$f_16_h_573" = alloca [20 x i8], align 1 + %"$h_574" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_574", [20 x i8]* %"$$f_16_h_573", align 1 + %"$$f_16_call_575" = call { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_16_fptr_571"(i8* %"$$f_16_envptr_572", [20 x i8]* %"$$f_16_h_573") + store { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_16_call_575", { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_17", align 8 %"$f_18" = alloca %TName_Option_ByStr20*, align 8 - %"$$f_17_709" = load { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_17", align 8 - %"$$f_17_fptr_710" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_17_709", 0 - %"$$f_17_envptr_711" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_17_709", 1 - %"$partial_712" = load { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 - %"$$f_17_call_713" = call %TName_Option_ByStr20* %"$$f_17_fptr_710"(i8* %"$$f_17_envptr_711", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$partial_712") - store %TName_Option_ByStr20* %"$$f_17_call_713", %TName_Option_ByStr20** %"$f_18", align 8 - %"$$f_18_714" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$f_18", align 8 - store %TName_Option_ByStr20* %"$$f_18_714", %TName_Option_ByStr20** %"$retval_155", align 8 - br label %"$matchsucc_665" - -"$Nil_715": ; preds = %"$have_gas_663" - %"$l_716" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* - %"$gasrem_717" = load i64, i64* @_gasrem, align 8 - %"$gascmp_718" = icmp ugt i64 1, %"$gasrem_717" - br i1 %"$gascmp_718", label %"$out_of_gas_719", label %"$have_gas_720" - -"$out_of_gas_719": ; preds = %"$Nil_715" - call void @_out_of_gas() - br label %"$have_gas_720" - -"$have_gas_720": ; preds = %"$out_of_gas_719", %"$Nil_715" - %"$consume_721" = sub i64 %"$gasrem_717", 1 - store i64 %"$consume_721", i64* @_gasrem, align 8 - %"$z_722" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 - store %TName_Option_ByStr20* %"$z_722", %TName_Option_ByStr20** %"$retval_155", align 8 - br label %"$matchsucc_665" - -"$empty_default_668": ; preds = %"$have_gas_663" - br label %"$matchsucc_665" - -"$matchsucc_665": ; preds = %"$have_gas_720", %"$have_gas_696", %"$empty_default_668" - %"$$retval_155_723" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_155", align 8 - ret %TName_Option_ByStr20* %"$$retval_155_723" + %"$$f_17_576" = load { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$f_17", align 8 + %"$$f_17_fptr_577" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_17_576", 0 + %"$$f_17_envptr_578" = extractvalue { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$f_17_576", 1 + %"$partial_579" = load { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* }* %partial, align 8 + %"$$f_17_call_580" = call %TName_Option_ByStr20* %"$$f_17_fptr_577"(i8* %"$$f_17_envptr_578", { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* } %"$partial_579") + store %TName_Option_ByStr20* %"$$f_17_call_580", %TName_Option_ByStr20** %"$f_18", align 8 + %"$$f_18_581" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$f_18", align 8 + store %TName_Option_ByStr20* %"$$f_18_581", %TName_Option_ByStr20** %"$retval_70", align 8 + br label %"$matchsucc_532" + +"$Nil_582": ; preds = %"$have_gas_530" + %"$l_583" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* + %"$gasrem_584" = load i64, i64* @_gasrem, align 8 + %"$gascmp_585" = icmp ugt i64 1, %"$gasrem_584" + br i1 %"$gascmp_585", label %"$out_of_gas_586", label %"$have_gas_587" + +"$out_of_gas_586": ; preds = %"$Nil_582" + call void @_out_of_gas() + br label %"$have_gas_587" + +"$have_gas_587": ; preds = %"$out_of_gas_586", %"$Nil_582" + %"$consume_588" = sub i64 %"$gasrem_584", 1 + store i64 %"$consume_588", i64* @_gasrem, align 8 + %"$z_589" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %z, align 8 + store %TName_Option_ByStr20* %"$z_589", %TName_Option_ByStr20** %"$retval_70", align 8 + br label %"$matchsucc_532" + +"$empty_default_535": ; preds = %"$have_gas_530" + br label %"$matchsucc_532" + +"$matchsucc_532": ; preds = %"$have_gas_587", %"$have_gas_563", %"$empty_default_535" + %"$$retval_70_590" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %"$retval_70", align 8 + ret %TName_Option_ByStr20* %"$$retval_70_590" } -define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_152"(%"$$fundef_152_env_459"* %0, %TName_Option_ByStr20* %1) { +define internal { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_67"(%"$$fundef_67_env_326"* %0, %TName_Option_ByStr20* %1) { entry: - %"$$fundef_152_env_f_635" = getelementptr inbounds %"$$fundef_152_env_459", %"$$fundef_152_env_459"* %0, i32 0, i32 0 - %"$f_envload_636" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_152_env_f_635", align 8 + %"$$fundef_67_env_f_502" = getelementptr inbounds %"$$fundef_67_env_326", %"$$fundef_67_env_326"* %0, i32 0, i32 0 + %"$f_envload_503" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_67_env_f_502", align 8 %f = alloca { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_envload_636", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 - %"$$fundef_152_env_g_637" = getelementptr inbounds %"$$fundef_152_env_459", %"$$fundef_152_env_459"* %0, i32 0, i32 1 - %"$g_envload_638" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_152_env_g_637", align 8 + store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_envload_503", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 + %"$$fundef_67_env_g_504" = getelementptr inbounds %"$$fundef_67_env_326", %"$$fundef_67_env_326"* %0, i32 0, i32 1 + %"$g_envload_505" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_67_env_g_504", align 8 %g = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_638", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$retval_153" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_639" = load i64, i64* @_gasrem, align 8 - %"$gascmp_640" = icmp ugt i64 1, %"$gasrem_639" - br i1 %"$gascmp_640", label %"$out_of_gas_641", label %"$have_gas_642" - -"$out_of_gas_641": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_642" - -"$have_gas_642": ; preds = %"$out_of_gas_641", %entry - %"$consume_643" = sub i64 %"$gasrem_639", 1 - store i64 %"$consume_643", i64* @_gasrem, align 8 - %"$$fundef_154_envp_644_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_154_envp_644_salloc" = call i8* @_salloc(i8* %"$$fundef_154_envp_644_load", i64 40) - %"$$fundef_154_envp_644" = bitcast i8* %"$$fundef_154_envp_644_salloc" to %"$$fundef_154_env_458"* - %"$$fundef_154_env_voidp_646" = bitcast %"$$fundef_154_env_458"* %"$$fundef_154_envp_644" to i8* - %"$$fundef_154_cloval_647" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_154_env_458"*, %TName_List_ByStr20*)* @"$fundef_154" to %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_154_env_voidp_646", 1 - %"$$fundef_154_env_f_648" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %"$$fundef_154_envp_644", i32 0, i32 0 - %"$f_649" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 - store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_649", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_154_env_f_648", align 8 - %"$$fundef_154_env_g_650" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %"$$fundef_154_envp_644", i32 0, i32 1 - %"$g_651" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_651", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_154_env_g_650", align 8 - %"$$fundef_154_env_z_652" = getelementptr inbounds %"$$fundef_154_env_458", %"$$fundef_154_env_458"* %"$$fundef_154_envp_644", i32 0, i32 2 - store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_154_env_z_652", align 8 - store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_154_cloval_647", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_153", align 8 - %"$$retval_153_653" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_153", align 8 - ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_153_653" + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_envload_505", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$retval_68" = alloca { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_506" = load i64, i64* @_gasrem, align 8 + %"$gascmp_507" = icmp ugt i64 1, %"$gasrem_506" + br i1 %"$gascmp_507", label %"$out_of_gas_508", label %"$have_gas_509" + +"$out_of_gas_508": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_509" + +"$have_gas_509": ; preds = %"$out_of_gas_508", %entry + %"$consume_510" = sub i64 %"$gasrem_506", 1 + store i64 %"$consume_510", i64* @_gasrem, align 8 + %"$$fundef_69_envp_511_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_69_envp_511_salloc" = call i8* @_salloc(i8* %"$$fundef_69_envp_511_load", i64 40) + %"$$fundef_69_envp_511" = bitcast i8* %"$$fundef_69_envp_511_salloc" to %"$$fundef_69_env_325"* + %"$$fundef_69_env_voidp_513" = bitcast %"$$fundef_69_env_325"* %"$$fundef_69_envp_511" to i8* + %"$$fundef_69_cloval_514" = insertvalue { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_Option_ByStr20* (%"$$fundef_69_env_325"*, %TName_List_ByStr20*)* @"$fundef_69" to %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_69_env_voidp_513", 1 + %"$$fundef_69_env_f_515" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %"$$fundef_69_envp_511", i32 0, i32 0 + %"$f_516" = load { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %f, align 8 + store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$f_516", { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_69_env_f_515", align 8 + %"$$fundef_69_env_g_517" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %"$$fundef_69_envp_511", i32 0, i32 1 + %"$g_518" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_518", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_69_env_g_517", align 8 + %"$$fundef_69_env_z_519" = getelementptr inbounds %"$$fundef_69_env_325", %"$$fundef_69_env_325"* %"$$fundef_69_envp_511", i32 0, i32 2 + store %TName_Option_ByStr20* %1, %TName_Option_ByStr20** %"$$fundef_69_env_z_519", align 8 + store { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_69_cloval_514", { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_68", align 8 + %"$$retval_68_520" = load { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_68", align 8 + ret { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_68_520" } -define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_150"(%"$$fundef_150_env_460"* %0, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %1) { +define internal { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } @"$fundef_65"(%"$$fundef_65_env_327"* %0, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %1) { entry: - %"$retval_151" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$gasrem_616" = load i64, i64* @_gasrem, align 8 - %"$gascmp_617" = icmp ugt i64 1, %"$gasrem_616" - br i1 %"$gascmp_617", label %"$out_of_gas_618", label %"$have_gas_619" - -"$out_of_gas_618": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_619" - -"$have_gas_619": ; preds = %"$out_of_gas_618", %entry - %"$consume_620" = sub i64 %"$gasrem_616", 1 - store i64 %"$consume_620", i64* @_gasrem, align 8 - %"$gasrem_621" = load i64, i64* @_gasrem, align 8 - %"$gascmp_622" = icmp ugt i64 1, %"$gasrem_621" - br i1 %"$gascmp_622", label %"$out_of_gas_623", label %"$have_gas_624" - -"$out_of_gas_623": ; preds = %"$have_gas_619" - call void @_out_of_gas() - br label %"$have_gas_624" - -"$have_gas_624": ; preds = %"$out_of_gas_623", %"$have_gas_619" - %"$consume_625" = sub i64 %"$gasrem_621", 1 - store i64 %"$consume_625", i64* @_gasrem, align 8 - %"$$fundef_152_envp_626_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_152_envp_626_salloc" = call i8* @_salloc(i8* %"$$fundef_152_envp_626_load", i64 32) - %"$$fundef_152_envp_626" = bitcast i8* %"$$fundef_152_envp_626_salloc" to %"$$fundef_152_env_459"* - %"$$fundef_152_env_voidp_628" = bitcast %"$$fundef_152_env_459"* %"$$fundef_152_envp_626" to i8* - %"$$fundef_152_cloval_629" = insertvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)* bitcast ({ %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_152_env_459"*, %TName_Option_ByStr20*)* @"$fundef_152" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_152_env_voidp_628", 1 + %"$retval_66" = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 + %"$gasrem_483" = load i64, i64* @_gasrem, align 8 + %"$gascmp_484" = icmp ugt i64 1, %"$gasrem_483" + br i1 %"$gascmp_484", label %"$out_of_gas_485", label %"$have_gas_486" + +"$out_of_gas_485": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_486" + +"$have_gas_486": ; preds = %"$out_of_gas_485", %entry + %"$consume_487" = sub i64 %"$gasrem_483", 1 + store i64 %"$consume_487", i64* @_gasrem, align 8 + %"$gasrem_488" = load i64, i64* @_gasrem, align 8 + %"$gascmp_489" = icmp ugt i64 1, %"$gasrem_488" + br i1 %"$gascmp_489", label %"$out_of_gas_490", label %"$have_gas_491" + +"$out_of_gas_490": ; preds = %"$have_gas_486" + call void @_out_of_gas() + br label %"$have_gas_491" + +"$have_gas_491": ; preds = %"$out_of_gas_490", %"$have_gas_486" + %"$consume_492" = sub i64 %"$gasrem_488", 1 + store i64 %"$consume_492", i64* @_gasrem, align 8 + %"$$fundef_67_envp_493_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_67_envp_493_salloc" = call i8* @_salloc(i8* %"$$fundef_67_envp_493_load", i64 32) + %"$$fundef_67_envp_493" = bitcast i8* %"$$fundef_67_envp_493_salloc" to %"$$fundef_67_env_326"* + %"$$fundef_67_env_voidp_495" = bitcast %"$$fundef_67_env_326"* %"$$fundef_67_envp_493" to i8* + %"$$fundef_67_cloval_496" = insertvalue { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)* bitcast ({ %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_67_env_326"*, %TName_Option_ByStr20*)* @"$fundef_67" to { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*), i8* undef }, i8* %"$$fundef_67_env_voidp_495", 1 %g = alloca { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_152_cloval_629", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_152_env_f_630" = getelementptr inbounds %"$$fundef_152_env_459", %"$$fundef_152_env_459"* %"$$fundef_152_envp_626", i32 0, i32 0 - store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %1, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_152_env_f_630", align 8 - %"$$fundef_152_env_g_631" = getelementptr inbounds %"$$fundef_152_env_459", %"$$fundef_152_env_459"* %"$$fundef_152_envp_626", i32 0, i32 1 - %"$g_632" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_632", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_152_env_g_631", align 8 - %"$g_633" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_633", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_151", align 8 - %"$$retval_151_634" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_151", align 8 - ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_151_634" + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$fundef_67_cloval_496", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_67_env_f_497" = getelementptr inbounds %"$$fundef_67_env_326", %"$$fundef_67_env_326"* %"$$fundef_67_envp_493", i32 0, i32 0 + store { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %1, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_67_env_f_497", align 8 + %"$$fundef_67_env_g_498" = getelementptr inbounds %"$$fundef_67_env_326", %"$$fundef_67_env_326"* %"$$fundef_67_envp_493", i32 0, i32 1 + %"$g_499" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_499", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$$fundef_67_env_g_498", align 8 + %"$g_500" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$g_500", { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_66", align 8 + %"$$retval_66_501" = load { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$retval_66", align 8 + ret { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$retval_66_501" } -define internal { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_148"(%"$$fundef_148_env_461"* %0) { +define internal { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } @"$fundef_63"(%"$$fundef_63_env_328"* %0) { entry: - %"$retval_149" = alloca { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 - %"$gasrem_607" = load i64, i64* @_gasrem, align 8 - %"$gascmp_608" = icmp ugt i64 1, %"$gasrem_607" - br i1 %"$gascmp_608", label %"$out_of_gas_609", label %"$have_gas_610" + %"$retval_64" = alloca { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, align 8 + %"$gasrem_474" = load i64, i64* @_gasrem, align 8 + %"$gascmp_475" = icmp ugt i64 1, %"$gasrem_474" + br i1 %"$gascmp_475", label %"$out_of_gas_476", label %"$have_gas_477" -"$out_of_gas_609": ; preds = %entry +"$out_of_gas_476": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_610" + br label %"$have_gas_477" -"$have_gas_610": ; preds = %"$out_of_gas_609", %entry - %"$consume_611" = sub i64 %"$gasrem_607", 1 - store i64 %"$consume_611", i64* @_gasrem, align 8 - store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* bitcast ({ { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (%"$$fundef_150_env_460"*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_150" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* null }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_149", align 8 - %"$$retval_149_615" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_149", align 8 - ret { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_149_615" +"$have_gas_477": ; preds = %"$out_of_gas_476", %entry + %"$consume_478" = sub i64 %"$gasrem_474", 1 + store i64 %"$consume_478", i64* @_gasrem, align 8 + store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* bitcast ({ { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (%"$$fundef_65_env_327"*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })* @"$fundef_65" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*), i8* null }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_64", align 8 + %"$$retval_64_482" = load { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }, { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* }* %"$retval_64", align 8 + ret { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } %"$$retval_64_482" } -define internal { i8*, i8* }* @"$fundef_146"(%"$$fundef_146_env_462"* %0) { +define internal { i8*, i8* }* @"$fundef_61"(%"$$fundef_61_env_329"* %0) { entry: - %"$retval_147" = alloca { i8*, i8* }*, align 8 - %"$gasrem_595" = load i64, i64* @_gasrem, align 8 - %"$gascmp_596" = icmp ugt i64 1, %"$gasrem_595" - br i1 %"$gascmp_596", label %"$out_of_gas_597", label %"$have_gas_598" - -"$out_of_gas_597": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_598" - -"$have_gas_598": ; preds = %"$out_of_gas_597", %entry - %"$consume_599" = sub i64 %"$gasrem_595", 1 - store i64 %"$consume_599", i64* @_gasrem, align 8 - %"$dyndisp_table_603_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_603_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_603_salloc_load", i64 48) - %"$dyndisp_table_603_salloc" = bitcast i8* %"$dyndisp_table_603_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_603" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_603_salloc" to { i8*, i8* }* - %"$dyndisp_gep_604" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_603", i32 2 - %"$dyndisp_pcast_605" = bitcast { i8*, i8* }* %"$dyndisp_gep_604" to { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (%"$$fundef_148_env_461"*)* @"$fundef_148" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_605", align 8 - store { i8*, i8* }* %"$dyndisp_table_603", { i8*, i8* }** %"$retval_147", align 8 - %"$$retval_147_606" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_147", align 8 - ret { i8*, i8* }* %"$$retval_147_606" + %"$retval_62" = alloca { i8*, i8* }*, align 8 + %"$gasrem_462" = load i64, i64* @_gasrem, align 8 + %"$gascmp_463" = icmp ugt i64 1, %"$gasrem_462" + br i1 %"$gascmp_463", label %"$out_of_gas_464", label %"$have_gas_465" + +"$out_of_gas_464": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_465" + +"$have_gas_465": ; preds = %"$out_of_gas_464", %entry + %"$consume_466" = sub i64 %"$gasrem_462", 1 + store i64 %"$consume_466", i64* @_gasrem, align 8 + %"$dyndisp_table_470_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_470_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_470_salloc_load", i64 48) + %"$dyndisp_table_470_salloc" = bitcast i8* %"$dyndisp_table_470_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_470" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_470_salloc" to { i8*, i8* }* + %"$dyndisp_gep_471" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_470", i32 2 + %"$dyndisp_pcast_472" = bitcast { i8*, i8* }* %"$dyndisp_gep_471" to { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (%"$$fundef_63_env_328"*)* @"$fundef_63" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, { { { %TName_Option_ByStr20* (i8*, { %TName_Option_ByStr20* (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_472", align 8 + store { i8*, i8* }* %"$dyndisp_table_470", { i8*, i8* }** %"$retval_62", align 8 + %"$$retval_62_473" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_62", align 8 + ret { i8*, i8* }* %"$$retval_62_473" } -define internal %TName_List_ByStr20* @"$fundef_166"(%"$$fundef_166_env_463"* %0, %TName_List_ByStr20* %1) { +define internal %TName_List_ByStr20* @"$fundef_81"(%"$$fundef_81_env_330"* %0, %TName_List_ByStr20* %1) { entry: - %"$$fundef_166_env_f_527" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %0, i32 0, i32 0 - %"$f_envload_528" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_166_env_f_527", align 8 + %"$$fundef_81_env_f_394" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %0, i32 0, i32 0 + %"$f_envload_395" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_81_env_f_394", align 8 %f = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_528", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$$fundef_166_env_g_529" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %0, i32 0, i32 1 - %"$g_envload_530" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_166_env_g_529", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_395", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$$fundef_81_env_g_396" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %0, i32 0, i32 1 + %"$g_envload_397" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_81_env_g_396", align 8 %g = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_envload_530", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_166_env_z_531" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %0, i32 0, i32 2 - %"$z_envload_532" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_166_env_z_531", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_envload_397", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_81_env_z_398" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %0, i32 0, i32 2 + %"$z_envload_399" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$$fundef_81_env_z_398", align 8 %z = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$z_envload_532", %TName_List_ByStr20** %z, align 8 - %"$retval_167" = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_533" = load i64, i64* @_gasrem, align 8 - %"$gascmp_534" = icmp ugt i64 2, %"$gasrem_533" - br i1 %"$gascmp_534", label %"$out_of_gas_535", label %"$have_gas_536" - -"$out_of_gas_535": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_536" - -"$have_gas_536": ; preds = %"$out_of_gas_535", %entry - %"$consume_537" = sub i64 %"$gasrem_533", 2 - store i64 %"$consume_537", i64* @_gasrem, align 8 - %"$l_tag_539" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 - %"$l_tag_540" = load i8, i8* %"$l_tag_539", align 1 - switch i8 %"$l_tag_540", label %"$empty_default_541" [ - i8 0, label %"$Cons_542" - i8 1, label %"$Nil_586" + store %TName_List_ByStr20* %"$z_envload_399", %TName_List_ByStr20** %z, align 8 + %"$retval_82" = alloca %TName_List_ByStr20*, align 8 + %"$gasrem_400" = load i64, i64* @_gasrem, align 8 + %"$gascmp_401" = icmp ugt i64 2, %"$gasrem_400" + br i1 %"$gascmp_401", label %"$out_of_gas_402", label %"$have_gas_403" + +"$out_of_gas_402": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_403" + +"$have_gas_403": ; preds = %"$out_of_gas_402", %entry + %"$consume_404" = sub i64 %"$gasrem_400", 2 + store i64 %"$consume_404", i64* @_gasrem, align 8 + %"$l_tag_406" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 + %"$l_tag_407" = load i8, i8* %"$l_tag_406", align 1 + switch i8 %"$l_tag_407", label %"$empty_default_408" [ + i8 0, label %"$Cons_409" + i8 1, label %"$Nil_453" ] -"$Cons_542": ; preds = %"$have_gas_536" - %"$l_543" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* - %"$h_gep_544" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_543", i32 0, i32 1 - %"$h_load_545" = load [20 x i8], [20 x i8]* %"$h_gep_544", align 1 +"$Cons_409": ; preds = %"$have_gas_403" + %"$l_410" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* + %"$h_gep_411" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_410", i32 0, i32 1 + %"$h_load_412" = load [20 x i8], [20 x i8]* %"$h_gep_411", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_load_545", [20 x i8]* %h, align 1 - %"$t_gep_546" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_543", i32 0, i32 2 - %"$t_load_547" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_546", align 8 + store [20 x i8] %"$h_load_412", [20 x i8]* %h, align 1 + %"$t_gep_413" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_410", i32 0, i32 2 + %"$t_load_414" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_413", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_load_547", %TName_List_ByStr20** %t, align 8 - %"$gasrem_548" = load i64, i64* @_gasrem, align 8 - %"$gascmp_549" = icmp ugt i64 1, %"$gasrem_548" - br i1 %"$gascmp_549", label %"$out_of_gas_550", label %"$have_gas_551" + store %TName_List_ByStr20* %"$t_load_414", %TName_List_ByStr20** %t, align 8 + %"$gasrem_415" = load i64, i64* @_gasrem, align 8 + %"$gascmp_416" = icmp ugt i64 1, %"$gasrem_415" + br i1 %"$gascmp_416", label %"$out_of_gas_417", label %"$have_gas_418" -"$out_of_gas_550": ; preds = %"$Cons_542" +"$out_of_gas_417": ; preds = %"$Cons_409" call void @_out_of_gas() - br label %"$have_gas_551" + br label %"$have_gas_418" -"$have_gas_551": ; preds = %"$out_of_gas_550", %"$Cons_542" - %"$consume_552" = sub i64 %"$gasrem_548", 1 - store i64 %"$consume_552", i64* @_gasrem, align 8 +"$have_gas_418": ; preds = %"$out_of_gas_417", %"$Cons_409" + %"$consume_419" = sub i64 %"$gasrem_415", 1 + store i64 %"$consume_419", i64* @_gasrem, align 8 %res = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_553" = load i64, i64* @_gasrem, align 8 - %"$gascmp_554" = icmp ugt i64 1, %"$gasrem_553" - br i1 %"$gascmp_554", label %"$out_of_gas_555", label %"$have_gas_556" + %"$gasrem_420" = load i64, i64* @_gasrem, align 8 + %"$gascmp_421" = icmp ugt i64 1, %"$gasrem_420" + br i1 %"$gascmp_421", label %"$out_of_gas_422", label %"$have_gas_423" -"$out_of_gas_555": ; preds = %"$have_gas_551" +"$out_of_gas_422": ; preds = %"$have_gas_418" call void @_out_of_gas() - br label %"$have_gas_556" + br label %"$have_gas_423" -"$have_gas_556": ; preds = %"$out_of_gas_555", %"$have_gas_551" - %"$consume_557" = sub i64 %"$gasrem_553", 1 - store i64 %"$consume_557", i64* @_gasrem, align 8 +"$have_gas_423": ; preds = %"$out_of_gas_422", %"$have_gas_418" + %"$consume_424" = sub i64 %"$gasrem_420", 1 + store i64 %"$consume_424", i64* @_gasrem, align 8 %"$g_10" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$g_558" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - %"$g_fptr_559" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_558", 0 - %"$g_envptr_560" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_558", 1 - %"$z_561" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 - %"$g_call_562" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_559"(i8* %"$g_envptr_560", %TName_List_ByStr20* %"$z_561") - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_562", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_10", align 8 + %"$g_425" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + %"$g_fptr_426" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_425", 0 + %"$g_envptr_427" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_425", 1 + %"$z_428" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 + %"$g_call_429" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_426"(i8* %"$g_envptr_427", %TName_List_ByStr20* %"$z_428") + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_429", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_10", align 8 %"$g_11" = alloca %TName_List_ByStr20*, align 8 - %"$$g_10_563" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_10", align 8 - %"$$g_10_fptr_564" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_10_563", 0 - %"$$g_10_envptr_565" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_10_563", 1 - %"$t_566" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - %"$$g_10_call_567" = call %TName_List_ByStr20* %"$$g_10_fptr_564"(i8* %"$$g_10_envptr_565", %TName_List_ByStr20* %"$t_566") - store %TName_List_ByStr20* %"$$g_10_call_567", %TName_List_ByStr20** %"$g_11", align 8 - %"$$g_11_568" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$g_11", align 8 - store %TName_List_ByStr20* %"$$g_11_568", %TName_List_ByStr20** %res, align 8 - %"$gasrem_569" = load i64, i64* @_gasrem, align 8 - %"$gascmp_570" = icmp ugt i64 1, %"$gasrem_569" - br i1 %"$gascmp_570", label %"$out_of_gas_571", label %"$have_gas_572" - -"$out_of_gas_571": ; preds = %"$have_gas_556" - call void @_out_of_gas() - br label %"$have_gas_572" - -"$have_gas_572": ; preds = %"$out_of_gas_571", %"$have_gas_556" - %"$consume_573" = sub i64 %"$gasrem_569", 1 - store i64 %"$consume_573", i64* @_gasrem, align 8 + %"$$g_10_430" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_10", align 8 + %"$$g_10_fptr_431" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_10_430", 0 + %"$$g_10_envptr_432" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_10_430", 1 + %"$t_433" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + %"$$g_10_call_434" = call %TName_List_ByStr20* %"$$g_10_fptr_431"(i8* %"$$g_10_envptr_432", %TName_List_ByStr20* %"$t_433") + store %TName_List_ByStr20* %"$$g_10_call_434", %TName_List_ByStr20** %"$g_11", align 8 + %"$$g_11_435" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$g_11", align 8 + store %TName_List_ByStr20* %"$$g_11_435", %TName_List_ByStr20** %res, align 8 + %"$gasrem_436" = load i64, i64* @_gasrem, align 8 + %"$gascmp_437" = icmp ugt i64 1, %"$gasrem_436" + br i1 %"$gascmp_437", label %"$out_of_gas_438", label %"$have_gas_439" + +"$out_of_gas_438": ; preds = %"$have_gas_423" + call void @_out_of_gas() + br label %"$have_gas_439" + +"$have_gas_439": ; preds = %"$out_of_gas_438", %"$have_gas_423" + %"$consume_440" = sub i64 %"$gasrem_436", 1 + store i64 %"$consume_440", i64* @_gasrem, align 8 %"$f_12" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$f_574" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$f_fptr_575" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_574", 0 - %"$f_envptr_576" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_574", 1 - %"$f_h_577" = alloca [20 x i8], align 1 - %"$h_578" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_578", [20 x i8]* %"$f_h_577", align 1 - %"$f_call_579" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_575"(i8* %"$f_envptr_576", [20 x i8]* %"$f_h_577") - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_579", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_12", align 8 + %"$f_441" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$f_fptr_442" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_441", 0 + %"$f_envptr_443" = extractvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_441", 1 + %"$f_h_444" = alloca [20 x i8], align 1 + %"$h_445" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_445", [20 x i8]* %"$f_h_444", align 1 + %"$f_call_446" = call { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_442"(i8* %"$f_envptr_443", [20 x i8]* %"$f_h_444") + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_446", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_12", align 8 %"$f_13" = alloca %TName_List_ByStr20*, align 8 - %"$$f_12_580" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_12", align 8 - %"$$f_12_fptr_581" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_12_580", 0 - %"$$f_12_envptr_582" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_12_580", 1 - %"$res_583" = load %TName_List_ByStr20*, %TName_List_ByStr20** %res, align 8 - %"$$f_12_call_584" = call %TName_List_ByStr20* %"$$f_12_fptr_581"(i8* %"$$f_12_envptr_582", %TName_List_ByStr20* %"$res_583") - store %TName_List_ByStr20* %"$$f_12_call_584", %TName_List_ByStr20** %"$f_13", align 8 - %"$$f_13_585" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$f_13", align 8 - store %TName_List_ByStr20* %"$$f_13_585", %TName_List_ByStr20** %"$retval_167", align 8 - br label %"$matchsucc_538" - -"$Nil_586": ; preds = %"$have_gas_536" - %"$l_587" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* - %"$gasrem_588" = load i64, i64* @_gasrem, align 8 - %"$gascmp_589" = icmp ugt i64 1, %"$gasrem_588" - br i1 %"$gascmp_589", label %"$out_of_gas_590", label %"$have_gas_591" - -"$out_of_gas_590": ; preds = %"$Nil_586" - call void @_out_of_gas() - br label %"$have_gas_591" - -"$have_gas_591": ; preds = %"$out_of_gas_590", %"$Nil_586" - %"$consume_592" = sub i64 %"$gasrem_588", 1 - store i64 %"$consume_592", i64* @_gasrem, align 8 - %"$z_593" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 - store %TName_List_ByStr20* %"$z_593", %TName_List_ByStr20** %"$retval_167", align 8 - br label %"$matchsucc_538" - -"$empty_default_541": ; preds = %"$have_gas_536" - br label %"$matchsucc_538" - -"$matchsucc_538": ; preds = %"$have_gas_591", %"$have_gas_572", %"$empty_default_541" - %"$$retval_167_594" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_167", align 8 - ret %TName_List_ByStr20* %"$$retval_167_594" + %"$$f_12_447" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$f_12", align 8 + %"$$f_12_fptr_448" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_12_447", 0 + %"$$f_12_envptr_449" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$f_12_447", 1 + %"$res_450" = load %TName_List_ByStr20*, %TName_List_ByStr20** %res, align 8 + %"$$f_12_call_451" = call %TName_List_ByStr20* %"$$f_12_fptr_448"(i8* %"$$f_12_envptr_449", %TName_List_ByStr20* %"$res_450") + store %TName_List_ByStr20* %"$$f_12_call_451", %TName_List_ByStr20** %"$f_13", align 8 + %"$$f_13_452" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$f_13", align 8 + store %TName_List_ByStr20* %"$$f_13_452", %TName_List_ByStr20** %"$retval_82", align 8 + br label %"$matchsucc_405" + +"$Nil_453": ; preds = %"$have_gas_403" + %"$l_454" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* + %"$gasrem_455" = load i64, i64* @_gasrem, align 8 + %"$gascmp_456" = icmp ugt i64 1, %"$gasrem_455" + br i1 %"$gascmp_456", label %"$out_of_gas_457", label %"$have_gas_458" + +"$out_of_gas_457": ; preds = %"$Nil_453" + call void @_out_of_gas() + br label %"$have_gas_458" + +"$have_gas_458": ; preds = %"$out_of_gas_457", %"$Nil_453" + %"$consume_459" = sub i64 %"$gasrem_455", 1 + store i64 %"$consume_459", i64* @_gasrem, align 8 + %"$z_460" = load %TName_List_ByStr20*, %TName_List_ByStr20** %z, align 8 + store %TName_List_ByStr20* %"$z_460", %TName_List_ByStr20** %"$retval_82", align 8 + br label %"$matchsucc_405" + +"$empty_default_408": ; preds = %"$have_gas_403" + br label %"$matchsucc_405" + +"$matchsucc_405": ; preds = %"$have_gas_458", %"$have_gas_439", %"$empty_default_408" + %"$$retval_82_461" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$retval_82", align 8 + ret %TName_List_ByStr20* %"$$retval_82_461" } -define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_164"(%"$$fundef_164_env_464"* %0, %TName_List_ByStr20* %1) { +define internal { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_79"(%"$$fundef_79_env_331"* %0, %TName_List_ByStr20* %1) { entry: - %"$$fundef_164_env_f_508" = getelementptr inbounds %"$$fundef_164_env_464", %"$$fundef_164_env_464"* %0, i32 0, i32 0 - %"$f_envload_509" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_164_env_f_508", align 8 + %"$$fundef_79_env_f_375" = getelementptr inbounds %"$$fundef_79_env_331", %"$$fundef_79_env_331"* %0, i32 0, i32 0 + %"$f_envload_376" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_79_env_f_375", align 8 %f = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_509", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - %"$$fundef_164_env_g_510" = getelementptr inbounds %"$$fundef_164_env_464", %"$$fundef_164_env_464"* %0, i32 0, i32 1 - %"$g_envload_511" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_164_env_g_510", align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_envload_376", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + %"$$fundef_79_env_g_377" = getelementptr inbounds %"$$fundef_79_env_331", %"$$fundef_79_env_331"* %0, i32 0, i32 1 + %"$g_envload_378" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_79_env_g_377", align 8 %g = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_envload_511", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - %"$retval_165" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_512" = load i64, i64* @_gasrem, align 8 - %"$gascmp_513" = icmp ugt i64 1, %"$gasrem_512" - br i1 %"$gascmp_513", label %"$out_of_gas_514", label %"$have_gas_515" - -"$out_of_gas_514": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_515" - -"$have_gas_515": ; preds = %"$out_of_gas_514", %entry - %"$consume_516" = sub i64 %"$gasrem_512", 1 - store i64 %"$consume_516", i64* @_gasrem, align 8 - %"$$fundef_166_envp_517_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_166_envp_517_salloc" = call i8* @_salloc(i8* %"$$fundef_166_envp_517_load", i64 40) - %"$$fundef_166_envp_517" = bitcast i8* %"$$fundef_166_envp_517_salloc" to %"$$fundef_166_env_463"* - %"$$fundef_166_env_voidp_519" = bitcast %"$$fundef_166_env_463"* %"$$fundef_166_envp_517" to i8* - %"$$fundef_166_cloval_520" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_166_env_463"*, %TName_List_ByStr20*)* @"$fundef_166" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_166_env_voidp_519", 1 - %"$$fundef_166_env_f_521" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %"$$fundef_166_envp_517", i32 0, i32 0 - %"$f_522" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_522", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_166_env_f_521", align 8 - %"$$fundef_166_env_g_523" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %"$$fundef_166_envp_517", i32 0, i32 1 - %"$g_524" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_524", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_166_env_g_523", align 8 - %"$$fundef_166_env_z_525" = getelementptr inbounds %"$$fundef_166_env_463", %"$$fundef_166_env_463"* %"$$fundef_166_envp_517", i32 0, i32 2 - store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_166_env_z_525", align 8 - store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_166_cloval_520", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_165", align 8 - %"$$retval_165_526" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_165", align 8 - ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_165_526" + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_envload_378", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + %"$retval_80" = alloca { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_379" = load i64, i64* @_gasrem, align 8 + %"$gascmp_380" = icmp ugt i64 1, %"$gasrem_379" + br i1 %"$gascmp_380", label %"$out_of_gas_381", label %"$have_gas_382" + +"$out_of_gas_381": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_382" + +"$have_gas_382": ; preds = %"$out_of_gas_381", %entry + %"$consume_383" = sub i64 %"$gasrem_379", 1 + store i64 %"$consume_383", i64* @_gasrem, align 8 + %"$$fundef_81_envp_384_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_81_envp_384_salloc" = call i8* @_salloc(i8* %"$$fundef_81_envp_384_load", i64 40) + %"$$fundef_81_envp_384" = bitcast i8* %"$$fundef_81_envp_384_salloc" to %"$$fundef_81_env_330"* + %"$$fundef_81_env_voidp_386" = bitcast %"$$fundef_81_env_330"* %"$$fundef_81_envp_384" to i8* + %"$$fundef_81_cloval_387" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)* bitcast (%TName_List_ByStr20* (%"$$fundef_81_env_330"*, %TName_List_ByStr20*)* @"$fundef_81" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_81_env_voidp_386", 1 + %"$$fundef_81_env_f_388" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %"$$fundef_81_envp_384", i32 0, i32 0 + %"$f_389" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %f, align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$f_389", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_81_env_f_388", align 8 + %"$$fundef_81_env_g_390" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %"$$fundef_81_envp_384", i32 0, i32 1 + %"$g_391" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_391", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_81_env_g_390", align 8 + %"$$fundef_81_env_z_392" = getelementptr inbounds %"$$fundef_81_env_330", %"$$fundef_81_env_330"* %"$$fundef_81_envp_384", i32 0, i32 2 + store %TName_List_ByStr20* %1, %TName_List_ByStr20** %"$$fundef_81_env_z_392", align 8 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_81_cloval_387", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_80", align 8 + %"$$retval_80_393" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_80", align 8 + ret { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_80_393" } -define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_162"(%"$$fundef_162_env_465"* %0, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) { +define internal { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_77"(%"$$fundef_77_env_332"* %0, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1) { entry: - %"$retval_163" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_489" = load i64, i64* @_gasrem, align 8 - %"$gascmp_490" = icmp ugt i64 1, %"$gasrem_489" - br i1 %"$gascmp_490", label %"$out_of_gas_491", label %"$have_gas_492" - -"$out_of_gas_491": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_492" - -"$have_gas_492": ; preds = %"$out_of_gas_491", %entry - %"$consume_493" = sub i64 %"$gasrem_489", 1 - store i64 %"$consume_493", i64* @_gasrem, align 8 - %"$gasrem_494" = load i64, i64* @_gasrem, align 8 - %"$gascmp_495" = icmp ugt i64 1, %"$gasrem_494" - br i1 %"$gascmp_495", label %"$out_of_gas_496", label %"$have_gas_497" - -"$out_of_gas_496": ; preds = %"$have_gas_492" - call void @_out_of_gas() - br label %"$have_gas_497" - -"$have_gas_497": ; preds = %"$out_of_gas_496", %"$have_gas_492" - %"$consume_498" = sub i64 %"$gasrem_494", 1 - store i64 %"$consume_498", i64* @_gasrem, align 8 - %"$$fundef_164_envp_499_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_164_envp_499_salloc" = call i8* @_salloc(i8* %"$$fundef_164_envp_499_load", i64 32) - %"$$fundef_164_envp_499" = bitcast i8* %"$$fundef_164_envp_499_salloc" to %"$$fundef_164_env_464"* - %"$$fundef_164_env_voidp_501" = bitcast %"$$fundef_164_env_464"* %"$$fundef_164_envp_499" to i8* - %"$$fundef_164_cloval_502" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_164_env_464"*, %TName_List_ByStr20*)* @"$fundef_164" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_164_env_voidp_501", 1 + %"$retval_78" = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_356" = load i64, i64* @_gasrem, align 8 + %"$gascmp_357" = icmp ugt i64 1, %"$gasrem_356" + br i1 %"$gascmp_357", label %"$out_of_gas_358", label %"$have_gas_359" + +"$out_of_gas_358": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_359" + +"$have_gas_359": ; preds = %"$out_of_gas_358", %entry + %"$consume_360" = sub i64 %"$gasrem_356", 1 + store i64 %"$consume_360", i64* @_gasrem, align 8 + %"$gasrem_361" = load i64, i64* @_gasrem, align 8 + %"$gascmp_362" = icmp ugt i64 1, %"$gasrem_361" + br i1 %"$gascmp_362", label %"$out_of_gas_363", label %"$have_gas_364" + +"$out_of_gas_363": ; preds = %"$have_gas_359" + call void @_out_of_gas() + br label %"$have_gas_364" + +"$have_gas_364": ; preds = %"$out_of_gas_363", %"$have_gas_359" + %"$consume_365" = sub i64 %"$gasrem_361", 1 + store i64 %"$consume_365", i64* @_gasrem, align 8 + %"$$fundef_79_envp_366_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_79_envp_366_salloc" = call i8* @_salloc(i8* %"$$fundef_79_envp_366_load", i64 32) + %"$$fundef_79_envp_366" = bitcast i8* %"$$fundef_79_envp_366_salloc" to %"$$fundef_79_env_331"* + %"$$fundef_79_env_voidp_368" = bitcast %"$$fundef_79_env_331"* %"$$fundef_79_envp_366" to i8* + %"$$fundef_79_cloval_369" = insertvalue { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)* bitcast ({ %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_79_env_331"*, %TName_List_ByStr20*)* @"$fundef_79" to { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_79_env_voidp_368", 1 %g = alloca { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_164_cloval_502", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - %"$$fundef_164_env_f_503" = getelementptr inbounds %"$$fundef_164_env_464", %"$$fundef_164_env_464"* %"$$fundef_164_envp_499", i32 0, i32 0 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_164_env_f_503", align 8 - %"$$fundef_164_env_g_504" = getelementptr inbounds %"$$fundef_164_env_464", %"$$fundef_164_env_464"* %"$$fundef_164_envp_499", i32 0, i32 1 - %"$g_505" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_505", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_164_env_g_504", align 8 - %"$g_506" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 - store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_506", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_163", align 8 - %"$$retval_163_507" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_163", align 8 - ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_163_507" + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_79_cloval_369", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + %"$$fundef_79_env_f_370" = getelementptr inbounds %"$$fundef_79_env_331", %"$$fundef_79_env_331"* %"$$fundef_79_envp_366", i32 0, i32 0 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %1, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_79_env_f_370", align 8 + %"$$fundef_79_env_g_371" = getelementptr inbounds %"$$fundef_79_env_331", %"$$fundef_79_env_331"* %"$$fundef_79_envp_366", i32 0, i32 1 + %"$g_372" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_372", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_79_env_g_371", align 8 + %"$g_373" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %g, align 8 + store { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$g_373", { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_78", align 8 + %"$$retval_78_374" = load { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_78", align 8 + ret { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_78_374" } -define internal { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_160"(%"$$fundef_160_env_466"* %0) { +define internal { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } @"$fundef_75"(%"$$fundef_75_env_333"* %0) { entry: - %"$retval_161" = alloca { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 - %"$gasrem_480" = load i64, i64* @_gasrem, align 8 - %"$gascmp_481" = icmp ugt i64 1, %"$gasrem_480" - br i1 %"$gascmp_481", label %"$out_of_gas_482", label %"$have_gas_483" + %"$retval_76" = alloca { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, align 8 + %"$gasrem_347" = load i64, i64* @_gasrem, align 8 + %"$gascmp_348" = icmp ugt i64 1, %"$gasrem_347" + br i1 %"$gascmp_348", label %"$out_of_gas_349", label %"$have_gas_350" -"$out_of_gas_482": ; preds = %entry +"$out_of_gas_349": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_483" + br label %"$have_gas_350" -"$have_gas_483": ; preds = %"$out_of_gas_482", %entry - %"$consume_484" = sub i64 %"$gasrem_480", 1 - store i64 %"$consume_484", i64* @_gasrem, align 8 - store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })* bitcast ({ { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_162_env_465"*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_162" to { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*), i8* null }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_161", align 8 - %"$$retval_161_488" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_161", align 8 - ret { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_161_488" +"$have_gas_350": ; preds = %"$out_of_gas_349", %entry + %"$consume_351" = sub i64 %"$gasrem_347", 1 + store i64 %"$consume_351", i64* @_gasrem, align 8 + store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })* bitcast ({ { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_77_env_332"*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })* @"$fundef_77" to { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*), i8* null }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_76", align 8 + %"$$retval_76_355" = load { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }, { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* }* %"$retval_76", align 8 + ret { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } %"$$retval_76_355" } -define internal { i8*, i8* }* @"$fundef_158"(%"$$fundef_158_env_467"* %0) { +define internal { i8*, i8* }* @"$fundef_73"(%"$$fundef_73_env_334"* %0) { entry: - %"$retval_159" = alloca { i8*, i8* }*, align 8 - %"$gasrem_468" = load i64, i64* @_gasrem, align 8 - %"$gascmp_469" = icmp ugt i64 1, %"$gasrem_468" - br i1 %"$gascmp_469", label %"$out_of_gas_470", label %"$have_gas_471" - -"$out_of_gas_470": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_471" - -"$have_gas_471": ; preds = %"$out_of_gas_470", %entry - %"$consume_472" = sub i64 %"$gasrem_468", 1 - store i64 %"$consume_472", i64* @_gasrem, align 8 - %"$dyndisp_table_476_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_476_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_476_salloc_load", i64 48) - %"$dyndisp_table_476_salloc" = bitcast i8* %"$dyndisp_table_476_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_476" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_476_salloc" to { i8*, i8* }* - %"$dyndisp_gep_477" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_476", i32 1 - %"$dyndisp_pcast_478" = bitcast { i8*, i8* }* %"$dyndisp_gep_477" to { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_160_env_466"*)* @"$fundef_160" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_478", align 8 - store { i8*, i8* }* %"$dyndisp_table_476", { i8*, i8* }** %"$retval_159", align 8 - %"$$retval_159_479" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_159", align 8 - ret { i8*, i8* }* %"$$retval_159_479" + %"$retval_74" = alloca { i8*, i8* }*, align 8 + %"$gasrem_335" = load i64, i64* @_gasrem, align 8 + %"$gascmp_336" = icmp ugt i64 1, %"$gasrem_335" + br i1 %"$gascmp_336", label %"$out_of_gas_337", label %"$have_gas_338" + +"$out_of_gas_337": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_338" + +"$have_gas_338": ; preds = %"$out_of_gas_337", %entry + %"$consume_339" = sub i64 %"$gasrem_335", 1 + store i64 %"$consume_339", i64* @_gasrem, align 8 + %"$dyndisp_table_343_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_343_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_343_salloc_load", i64 48) + %"$dyndisp_table_343_salloc" = bitcast i8* %"$dyndisp_table_343_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_343" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_343_salloc" to { i8*, i8* }* + %"$dyndisp_gep_344" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_343", i32 1 + %"$dyndisp_pcast_345" = bitcast { i8*, i8* }* %"$dyndisp_gep_344" to { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_75_env_333"*)* @"$fundef_75" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_345", align 8 + store { i8*, i8* }* %"$dyndisp_table_343", { i8*, i8* }** %"$retval_74", align 8 + %"$$retval_74_346" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_74", align 8 + ret { i8*, i8* }* %"$$retval_74_346" } declare void @_out_of_gas() @@ -4424,677 +3755,677 @@ declare i8* @_concat_ByStrX(i8*, i32, i8*, i32, i8*) define void @_init_libs() { entry: - %"$gasrem_2372" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2373" = icmp ugt i64 1, %"$gasrem_2372" - br i1 %"$gascmp_2373", label %"$out_of_gas_2374", label %"$have_gas_2375" - -"$out_of_gas_2374": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2375" - -"$have_gas_2375": ; preds = %"$out_of_gas_2374", %entry - %"$consume_2376" = sub i64 %"$gasrem_2372", 1 - store i64 %"$consume_2376", i64* @_gasrem, align 8 - %"$dyndisp_table_2380_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2380_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2380_salloc_load", i64 48) - %"$dyndisp_table_2380_salloc" = bitcast i8* %"$dyndisp_table_2380_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2380" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2380_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2381" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2380", i32 0 - %"$dyndisp_pcast_2382" = bitcast { i8*, i8* }* %"$dyndisp_gep_2381" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_158_env_467"*)* @"$fundef_158" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_2382", align 8 - store { i8*, i8* }* %"$dyndisp_table_2380", { i8*, i8* }** @list_foldr, align 8 - %"$gasrem_2383" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2384" = icmp ugt i64 1, %"$gasrem_2383" - br i1 %"$gascmp_2384", label %"$out_of_gas_2385", label %"$have_gas_2386" - -"$out_of_gas_2385": ; preds = %"$have_gas_2375" - call void @_out_of_gas() - br label %"$have_gas_2386" - -"$have_gas_2386": ; preds = %"$out_of_gas_2385", %"$have_gas_2375" - %"$consume_2387" = sub i64 %"$gasrem_2383", 1 - store i64 %"$consume_2387", i64* @_gasrem, align 8 - %"$dyndisp_table_2391_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2391_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2391_salloc_load", i64 48) - %"$dyndisp_table_2391_salloc" = bitcast i8* %"$dyndisp_table_2391_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2391" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2391_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2392" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2391", i32 0 - %"$dyndisp_pcast_2393" = bitcast { i8*, i8* }* %"$dyndisp_gep_2392" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_146_env_462"*)* @"$fundef_146" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_2393", align 8 - store { i8*, i8* }* %"$dyndisp_table_2391", { i8*, i8* }** @list_foldk, align 8 - %"$gasrem_2394" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2395" = icmp ugt i64 1, %"$gasrem_2394" - br i1 %"$gascmp_2395", label %"$out_of_gas_2396", label %"$have_gas_2397" - -"$out_of_gas_2396": ; preds = %"$have_gas_2386" - call void @_out_of_gas() - br label %"$have_gas_2397" - -"$have_gas_2397": ; preds = %"$out_of_gas_2396", %"$have_gas_2386" - %"$consume_2398" = sub i64 %"$gasrem_2394", 1 - store i64 %"$consume_2398", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_174_env_456"*, %TName_Bool*)* @"$fundef_174" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$gasrem_2402" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2403" = icmp ugt i64 1, %"$gasrem_2402" - br i1 %"$gascmp_2403", label %"$out_of_gas_2404", label %"$have_gas_2405" - -"$out_of_gas_2404": ; preds = %"$have_gas_2397" - call void @_out_of_gas() - br label %"$have_gas_2405" - -"$have_gas_2405": ; preds = %"$out_of_gas_2404", %"$have_gas_2397" - %"$consume_2406" = sub i64 %"$gasrem_2402", 1 - store i64 %"$consume_2406", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_170_env_454"*, %TName_Bool*)* @"$fundef_170" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 - %"$gasrem_2410" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2411" = icmp ugt i64 1, %"$gasrem_2410" - br i1 %"$gascmp_2411", label %"$out_of_gas_2412", label %"$have_gas_2413" - -"$out_of_gas_2412": ; preds = %"$have_gas_2405" - call void @_out_of_gas() - br label %"$have_gas_2413" - -"$have_gas_2413": ; preds = %"$out_of_gas_2412", %"$have_gas_2405" - %"$consume_2414" = sub i64 %"$gasrem_2410", 1 - store i64 %"$consume_2414", i64* @_gasrem, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_168_env_452"*, %TName_Bool*)* @"$fundef_168" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$gasrem_2418" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2419" = icmp ugt i64 1, %"$gasrem_2418" - br i1 %"$gascmp_2419", label %"$out_of_gas_2420", label %"$have_gas_2421" - -"$out_of_gas_2420": ; preds = %"$have_gas_2413" - call void @_out_of_gas() - br label %"$have_gas_2421" - -"$have_gas_2421": ; preds = %"$out_of_gas_2420", %"$have_gas_2413" - %"$consume_2422" = sub i64 %"$gasrem_2418", 1 - store i64 %"$consume_2422", i64* @_gasrem, align 8 - %"$$fundef_200_envp_2423_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_200_envp_2423_salloc" = call i8* @_salloc(i8* %"$$fundef_200_envp_2423_load", i64 8) - %"$$fundef_200_envp_2423" = bitcast i8* %"$$fundef_200_envp_2423_salloc" to %"$$fundef_200_env_451"* - %"$$fundef_200_env_voidp_2425" = bitcast %"$$fundef_200_env_451"* %"$$fundef_200_envp_2423" to i8* - %"$$fundef_200_cloval_2426" = insertvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_200_env_451"*)* @"$fundef_200" to { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_200_env_voidp_2425", 1 - %"$$fundef_200_env_list_foldr_2427" = getelementptr inbounds %"$$fundef_200_env_451", %"$$fundef_200_env_451"* %"$$fundef_200_envp_2423", i32 0, i32 0 - %"$list_foldr_2428" = load { i8*, i8* }*, { i8*, i8* }** @list_foldr, align 8 - store { i8*, i8* }* %"$list_foldr_2428", { i8*, i8* }** %"$$fundef_200_env_list_foldr_2427", align 8 - %"$dyndisp_table_2429_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2429_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2429_salloc_load", i64 48) - %"$dyndisp_table_2429_salloc" = bitcast i8* %"$dyndisp_table_2429_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2429" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2429_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2430" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2429", i32 0 - %"$dyndisp_pcast_2431" = bitcast { i8*, i8* }* %"$dyndisp_gep_2430" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_200_cloval_2426", { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2431", align 8 - store { i8*, i8* }* %"$dyndisp_table_2429", { i8*, i8* }** @ListUtils.list_filter, align 8 - %"$gasrem_2432" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2433" = icmp ugt i64 1, %"$gasrem_2432" - br i1 %"$gascmp_2433", label %"$out_of_gas_2434", label %"$have_gas_2435" - -"$out_of_gas_2434": ; preds = %"$have_gas_2421" - call void @_out_of_gas() - br label %"$have_gas_2435" - -"$have_gas_2435": ; preds = %"$out_of_gas_2434", %"$have_gas_2421" - %"$consume_2436" = sub i64 %"$gasrem_2432", 1 - store i64 %"$consume_2436", i64* @_gasrem, align 8 - %"$$fundef_190_envp_2437_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_190_envp_2437_salloc" = call i8* @_salloc(i8* %"$$fundef_190_envp_2437_load", i64 8) - %"$$fundef_190_envp_2437" = bitcast i8* %"$$fundef_190_envp_2437_salloc" to %"$$fundef_190_env_447"* - %"$$fundef_190_env_voidp_2439" = bitcast %"$$fundef_190_env_447"* %"$$fundef_190_envp_2437" to i8* - %"$$fundef_190_cloval_2440" = insertvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_190_env_447"*)* @"$fundef_190" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_190_env_voidp_2439", 1 - %"$$fundef_190_env_list_foldk_2441" = getelementptr inbounds %"$$fundef_190_env_447", %"$$fundef_190_env_447"* %"$$fundef_190_envp_2437", i32 0, i32 0 - %"$list_foldk_2442" = load { i8*, i8* }*, { i8*, i8* }** @list_foldk, align 8 - store { i8*, i8* }* %"$list_foldk_2442", { i8*, i8* }** %"$$fundef_190_env_list_foldk_2441", align 8 - %"$dyndisp_table_2443_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2443_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2443_salloc_load", i64 48) - %"$dyndisp_table_2443_salloc" = bitcast i8* %"$dyndisp_table_2443_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2443" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2443_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2444" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2443", i32 0 - %"$dyndisp_pcast_2445" = bitcast { i8*, i8* }* %"$dyndisp_gep_2444" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_190_cloval_2440", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2445", align 8 - store { i8*, i8* }* %"$dyndisp_table_2443", { i8*, i8* }** @ListUtils.list_find, align 8 - %"$gasrem_2446" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2447" = icmp ugt i64 1, %"$gasrem_2446" - br i1 %"$gascmp_2447", label %"$out_of_gas_2448", label %"$have_gas_2449" - -"$out_of_gas_2448": ; preds = %"$have_gas_2435" - call void @_out_of_gas() - br label %"$have_gas_2449" - -"$have_gas_2449": ; preds = %"$out_of_gas_2448", %"$have_gas_2435" - %"$consume_2450" = sub i64 %"$gasrem_2446", 1 - store i64 %"$consume_2450", i64* @_gasrem, align 8 - %"$$fundef_184_envp_2451_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_184_envp_2451_salloc" = call i8* @_salloc(i8* %"$$fundef_184_envp_2451_load", i64 8) - %"$$fundef_184_envp_2451" = bitcast i8* %"$$fundef_184_envp_2451_salloc" to %"$$fundef_184_env_442"* - %"$$fundef_184_env_voidp_2453" = bitcast %"$$fundef_184_env_442"* %"$$fundef_184_envp_2451" to i8* - %"$$fundef_184_cloval_2454" = insertvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_184_env_442"*)* @"$fundef_184" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_184_env_voidp_2453", 1 - %"$$fundef_184_env_ListUtils.list_find_2455" = getelementptr inbounds %"$$fundef_184_env_442", %"$$fundef_184_env_442"* %"$$fundef_184_envp_2451", i32 0, i32 0 - %"$ListUtils.list_find_2456" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_find, align 8 - store { i8*, i8* }* %"$ListUtils.list_find_2456", { i8*, i8* }** %"$$fundef_184_env_ListUtils.list_find_2455", align 8 - %"$dyndisp_table_2457_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2457_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2457_salloc_load", i64 48) - %"$dyndisp_table_2457_salloc" = bitcast i8* %"$dyndisp_table_2457_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2457" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2457_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2458" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2457", i32 0 - %"$dyndisp_pcast_2459" = bitcast { i8*, i8* }* %"$dyndisp_gep_2458" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_184_cloval_2454", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2459", align 8 - store { i8*, i8* }* %"$dyndisp_table_2457", { i8*, i8* }** @ListUtils.list_exists, align 8 - %"$gasrem_2460" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2461" = icmp ugt i64 1, %"$gasrem_2460" - br i1 %"$gascmp_2461", label %"$out_of_gas_2462", label %"$have_gas_2463" - -"$out_of_gas_2462": ; preds = %"$have_gas_2449" - call void @_out_of_gas() - br label %"$have_gas_2463" - -"$have_gas_2463": ; preds = %"$out_of_gas_2462", %"$have_gas_2449" - %"$consume_2464" = sub i64 %"$gasrem_2460", 1 - store i64 %"$consume_2464", i64* @_gasrem, align 8 - %"$$fundef_178_envp_2465_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_178_envp_2465_salloc" = call i8* @_salloc(i8* %"$$fundef_178_envp_2465_load", i64 8) - %"$$fundef_178_envp_2465" = bitcast i8* %"$$fundef_178_envp_2465_salloc" to %"$$fundef_178_env_439"* - %"$$fundef_178_env_voidp_2467" = bitcast %"$$fundef_178_env_439"* %"$$fundef_178_envp_2465" to i8* - %"$$fundef_178_cloval_2468" = insertvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_178_env_439"*)* @"$fundef_178" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_178_env_voidp_2467", 1 - %"$$fundef_178_env_ListUtils.list_exists_2469" = getelementptr inbounds %"$$fundef_178_env_439", %"$$fundef_178_env_439"* %"$$fundef_178_envp_2465", i32 0, i32 0 - %"$ListUtils.list_exists_2470" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_exists, align 8 - store { i8*, i8* }* %"$ListUtils.list_exists_2470", { i8*, i8* }** %"$$fundef_178_env_ListUtils.list_exists_2469", align 8 - %"$dyndisp_table_2471_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_2471_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2471_salloc_load", i64 48) - %"$dyndisp_table_2471_salloc" = bitcast i8* %"$dyndisp_table_2471_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_2471" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2471_salloc" to { i8*, i8* }* - %"$dyndisp_gep_2472" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2471", i32 0 - %"$dyndisp_pcast_2473" = bitcast { i8*, i8* }* %"$dyndisp_gep_2472" to { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_178_cloval_2468", { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2473", align 8 - store { i8*, i8* }* %"$dyndisp_table_2471", { i8*, i8* }** @ListUtils.list_mem, align 8 - %"$gasrem_2474" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2475" = icmp ugt i64 1, %"$gasrem_2474" - br i1 %"$gascmp_2475", label %"$out_of_gas_2476", label %"$have_gas_2477" - -"$out_of_gas_2476": ; preds = %"$have_gas_2463" - call void @_out_of_gas() - br label %"$have_gas_2477" - -"$have_gas_2477": ; preds = %"$out_of_gas_2476", %"$have_gas_2463" - %"$consume_2478" = sub i64 %"$gasrem_2474", 1 - store i64 %"$consume_2478", i64* @_gasrem, align 8 + %"$gasrem_1925" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1926" = icmp ugt i64 1, %"$gasrem_1925" + br i1 %"$gascmp_1926", label %"$out_of_gas_1927", label %"$have_gas_1928" + +"$out_of_gas_1927": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_1928" + +"$have_gas_1928": ; preds = %"$out_of_gas_1927", %entry + %"$consume_1929" = sub i64 %"$gasrem_1925", 1 + store i64 %"$consume_1929", i64* @_gasrem, align 8 + %"$dyndisp_table_1933_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1933_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1933_salloc_load", i64 48) + %"$dyndisp_table_1933_salloc" = bitcast i8* %"$dyndisp_table_1933_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1933" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1933_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1934" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1933", i32 0 + %"$dyndisp_pcast_1935" = bitcast { i8*, i8* }* %"$dyndisp_gep_1934" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_73_env_334"*)* @"$fundef_73" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_1935", align 8 + store { i8*, i8* }* %"$dyndisp_table_1933", { i8*, i8* }** @list_foldr, align 8 + %"$gasrem_1936" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1937" = icmp ugt i64 1, %"$gasrem_1936" + br i1 %"$gascmp_1937", label %"$out_of_gas_1938", label %"$have_gas_1939" + +"$out_of_gas_1938": ; preds = %"$have_gas_1928" + call void @_out_of_gas() + br label %"$have_gas_1939" + +"$have_gas_1939": ; preds = %"$out_of_gas_1938", %"$have_gas_1928" + %"$consume_1940" = sub i64 %"$gasrem_1936", 1 + store i64 %"$consume_1940", i64* @_gasrem, align 8 + %"$dyndisp_table_1944_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1944_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1944_salloc_load", i64 48) + %"$dyndisp_table_1944_salloc" = bitcast i8* %"$dyndisp_table_1944_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1944" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1944_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1945" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1944", i32 0 + %"$dyndisp_pcast_1946" = bitcast { i8*, i8* }* %"$dyndisp_gep_1945" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_61_env_329"*)* @"$fundef_61" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_1946", align 8 + store { i8*, i8* }* %"$dyndisp_table_1944", { i8*, i8* }** @list_foldk, align 8 + %"$gasrem_1947" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1948" = icmp ugt i64 2, %"$gasrem_1947" + br i1 %"$gascmp_1948", label %"$out_of_gas_1949", label %"$have_gas_1950" + +"$out_of_gas_1949": ; preds = %"$have_gas_1939" + call void @_out_of_gas() + br label %"$have_gas_1950" + +"$have_gas_1950": ; preds = %"$out_of_gas_1949", %"$have_gas_1939" + %"$consume_1951" = sub i64 %"$gasrem_1947", 2 + store i64 %"$consume_1951", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_87_env_323"*, %TName_Bool*, %TName_Bool*)* @"$fundef_87" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$gasrem_1955" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1956" = icmp ugt i64 2, %"$gasrem_1955" + br i1 %"$gascmp_1956", label %"$out_of_gas_1957", label %"$have_gas_1958" + +"$out_of_gas_1957": ; preds = %"$have_gas_1950" + call void @_out_of_gas() + br label %"$have_gas_1958" + +"$have_gas_1958": ; preds = %"$out_of_gas_1957", %"$have_gas_1950" + %"$consume_1959" = sub i64 %"$gasrem_1955", 2 + store i64 %"$consume_1959", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_85_env_322"*, %TName_Bool*, %TName_Bool*)* @"$fundef_85" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 + %"$gasrem_1963" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1964" = icmp ugt i64 1, %"$gasrem_1963" + br i1 %"$gascmp_1964", label %"$out_of_gas_1965", label %"$have_gas_1966" + +"$out_of_gas_1965": ; preds = %"$have_gas_1958" + call void @_out_of_gas() + br label %"$have_gas_1966" + +"$have_gas_1966": ; preds = %"$out_of_gas_1965", %"$have_gas_1958" + %"$consume_1967" = sub i64 %"$gasrem_1963", 1 + store i64 %"$consume_1967", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_83_env_321"*, %TName_Bool*)* @"$fundef_83" to %TName_Bool* (i8*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$gasrem_1971" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1972" = icmp ugt i64 1, %"$gasrem_1971" + br i1 %"$gascmp_1972", label %"$out_of_gas_1973", label %"$have_gas_1974" + +"$out_of_gas_1973": ; preds = %"$have_gas_1966" + call void @_out_of_gas() + br label %"$have_gas_1974" + +"$have_gas_1974": ; preds = %"$out_of_gas_1973", %"$have_gas_1966" + %"$consume_1975" = sub i64 %"$gasrem_1971", 1 + store i64 %"$consume_1975", i64* @_gasrem, align 8 + %"$$fundef_111_envp_1976_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_111_envp_1976_salloc" = call i8* @_salloc(i8* %"$$fundef_111_envp_1976_load", i64 8) + %"$$fundef_111_envp_1976" = bitcast i8* %"$$fundef_111_envp_1976_salloc" to %"$$fundef_111_env_320"* + %"$$fundef_111_env_voidp_1978" = bitcast %"$$fundef_111_env_320"* %"$$fundef_111_envp_1976" to i8* + %"$$fundef_111_cloval_1979" = insertvalue { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_111_env_320"*)* @"$fundef_111" to { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_111_env_voidp_1978", 1 + %"$$fundef_111_env_list_foldr_1980" = getelementptr inbounds %"$$fundef_111_env_320", %"$$fundef_111_env_320"* %"$$fundef_111_envp_1976", i32 0, i32 0 + %"$list_foldr_1981" = load { i8*, i8* }*, { i8*, i8* }** @list_foldr, align 8 + store { i8*, i8* }* %"$list_foldr_1981", { i8*, i8* }** %"$$fundef_111_env_list_foldr_1980", align 8 + %"$dyndisp_table_1982_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1982_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1982_salloc_load", i64 48) + %"$dyndisp_table_1982_salloc" = bitcast i8* %"$dyndisp_table_1982_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1982" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1982_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1983" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1982", i32 0 + %"$dyndisp_pcast_1984" = bitcast { i8*, i8* }* %"$dyndisp_gep_1983" to { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_111_cloval_1979", { { { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1984", align 8 + store { i8*, i8* }* %"$dyndisp_table_1982", { i8*, i8* }** @ListUtils.list_filter, align 8 + %"$gasrem_1985" = load i64, i64* @_gasrem, align 8 + %"$gascmp_1986" = icmp ugt i64 1, %"$gasrem_1985" + br i1 %"$gascmp_1986", label %"$out_of_gas_1987", label %"$have_gas_1988" + +"$out_of_gas_1987": ; preds = %"$have_gas_1974" + call void @_out_of_gas() + br label %"$have_gas_1988" + +"$have_gas_1988": ; preds = %"$out_of_gas_1987", %"$have_gas_1974" + %"$consume_1989" = sub i64 %"$gasrem_1985", 1 + store i64 %"$consume_1989", i64* @_gasrem, align 8 + %"$$fundef_101_envp_1990_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_101_envp_1990_salloc" = call i8* @_salloc(i8* %"$$fundef_101_envp_1990_load", i64 8) + %"$$fundef_101_envp_1990" = bitcast i8* %"$$fundef_101_envp_1990_salloc" to %"$$fundef_101_env_316"* + %"$$fundef_101_env_voidp_1992" = bitcast %"$$fundef_101_env_316"* %"$$fundef_101_envp_1990" to i8* + %"$$fundef_101_cloval_1993" = insertvalue { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_101_env_316"*)* @"$fundef_101" to { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_101_env_voidp_1992", 1 + %"$$fundef_101_env_list_foldk_1994" = getelementptr inbounds %"$$fundef_101_env_316", %"$$fundef_101_env_316"* %"$$fundef_101_envp_1990", i32 0, i32 0 + %"$list_foldk_1995" = load { i8*, i8* }*, { i8*, i8* }** @list_foldk, align 8 + store { i8*, i8* }* %"$list_foldk_1995", { i8*, i8* }** %"$$fundef_101_env_list_foldk_1994", align 8 + %"$dyndisp_table_1996_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_1996_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_1996_salloc_load", i64 48) + %"$dyndisp_table_1996_salloc" = bitcast i8* %"$dyndisp_table_1996_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_1996" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_1996_salloc" to { i8*, i8* }* + %"$dyndisp_gep_1997" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_1996", i32 0 + %"$dyndisp_pcast_1998" = bitcast { i8*, i8* }* %"$dyndisp_gep_1997" to { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_101_cloval_1993", { { { %TName_Option_ByStr20* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_1998", align 8 + store { i8*, i8* }* %"$dyndisp_table_1996", { i8*, i8* }** @ListUtils.list_find, align 8 + %"$gasrem_1999" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2000" = icmp ugt i64 1, %"$gasrem_1999" + br i1 %"$gascmp_2000", label %"$out_of_gas_2001", label %"$have_gas_2002" + +"$out_of_gas_2001": ; preds = %"$have_gas_1988" + call void @_out_of_gas() + br label %"$have_gas_2002" + +"$have_gas_2002": ; preds = %"$out_of_gas_2001", %"$have_gas_1988" + %"$consume_2003" = sub i64 %"$gasrem_1999", 1 + store i64 %"$consume_2003", i64* @_gasrem, align 8 + %"$$fundef_95_envp_2004_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_95_envp_2004_salloc" = call i8* @_salloc(i8* %"$$fundef_95_envp_2004_load", i64 8) + %"$$fundef_95_envp_2004" = bitcast i8* %"$$fundef_95_envp_2004_salloc" to %"$$fundef_95_env_311"* + %"$$fundef_95_env_voidp_2006" = bitcast %"$$fundef_95_env_311"* %"$$fundef_95_envp_2004" to i8* + %"$$fundef_95_cloval_2007" = insertvalue { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_95_env_311"*)* @"$fundef_95" to { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_95_env_voidp_2006", 1 + %"$$fundef_95_env_ListUtils.list_find_2008" = getelementptr inbounds %"$$fundef_95_env_311", %"$$fundef_95_env_311"* %"$$fundef_95_envp_2004", i32 0, i32 0 + %"$ListUtils.list_find_2009" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_find, align 8 + store { i8*, i8* }* %"$ListUtils.list_find_2009", { i8*, i8* }** %"$$fundef_95_env_ListUtils.list_find_2008", align 8 + %"$dyndisp_table_2010_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_2010_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2010_salloc_load", i64 48) + %"$dyndisp_table_2010_salloc" = bitcast i8* %"$dyndisp_table_2010_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_2010" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2010_salloc" to { i8*, i8* }* + %"$dyndisp_gep_2011" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2010", i32 0 + %"$dyndisp_pcast_2012" = bitcast { i8*, i8* }* %"$dyndisp_gep_2011" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_95_cloval_2007", { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, { %TName_Bool* (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2012", align 8 + store { i8*, i8* }* %"$dyndisp_table_2010", { i8*, i8* }** @ListUtils.list_exists, align 8 + %"$gasrem_2013" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2014" = icmp ugt i64 1, %"$gasrem_2013" + br i1 %"$gascmp_2014", label %"$out_of_gas_2015", label %"$have_gas_2016" + +"$out_of_gas_2015": ; preds = %"$have_gas_2002" + call void @_out_of_gas() + br label %"$have_gas_2016" + +"$have_gas_2016": ; preds = %"$out_of_gas_2015", %"$have_gas_2002" + %"$consume_2017" = sub i64 %"$gasrem_2013", 1 + store i64 %"$consume_2017", i64* @_gasrem, align 8 + %"$$fundef_89_envp_2018_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_89_envp_2018_salloc" = call i8* @_salloc(i8* %"$$fundef_89_envp_2018_load", i64 8) + %"$$fundef_89_envp_2018" = bitcast i8* %"$$fundef_89_envp_2018_salloc" to %"$$fundef_89_env_308"* + %"$$fundef_89_env_voidp_2020" = bitcast %"$$fundef_89_env_308"* %"$$fundef_89_envp_2018" to i8* + %"$$fundef_89_cloval_2021" = insertvalue { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)* bitcast ({ { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (%"$$fundef_89_env_308"*)* @"$fundef_89" to { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_89_env_voidp_2020", 1 + %"$$fundef_89_env_ListUtils.list_exists_2022" = getelementptr inbounds %"$$fundef_89_env_308", %"$$fundef_89_env_308"* %"$$fundef_89_envp_2018", i32 0, i32 0 + %"$ListUtils.list_exists_2023" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_exists, align 8 + store { i8*, i8* }* %"$ListUtils.list_exists_2023", { i8*, i8* }** %"$$fundef_89_env_ListUtils.list_exists_2022", align 8 + %"$dyndisp_table_2024_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_2024_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_2024_salloc_load", i64 48) + %"$dyndisp_table_2024_salloc" = bitcast i8* %"$dyndisp_table_2024_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_2024" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_2024_salloc" to { i8*, i8* }* + %"$dyndisp_gep_2025" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_2024", i32 0 + %"$dyndisp_pcast_2026" = bitcast { i8*, i8* }* %"$dyndisp_gep_2025" to { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_89_cloval_2021", { { { { %TName_Bool* (i8*, %TName_List_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_2026", align 8 + store { i8*, i8* }* %"$dyndisp_table_2024", { i8*, i8* }** @ListUtils.list_mem, align 8 + %"$gasrem_2027" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2028" = icmp ugt i64 1, %"$gasrem_2027" + br i1 %"$gascmp_2028", label %"$out_of_gas_2029", label %"$have_gas_2030" + +"$out_of_gas_2029": ; preds = %"$have_gas_2016" + call void @_out_of_gas() + br label %"$have_gas_2030" + +"$have_gas_2030": ; preds = %"$out_of_gas_2029", %"$have_gas_2016" + %"$consume_2031" = sub i64 %"$gasrem_2027", 1 + store i64 %"$consume_2031", i64* @_gasrem, align 8 store [20 x i8] zeroinitializer, [20 x i8]* @ud-registry.zeroByStr20, align 1 - %"$gasrem_2479" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2480" = icmp ugt i64 1, %"$gasrem_2479" - br i1 %"$gascmp_2480", label %"$out_of_gas_2481", label %"$have_gas_2482" - -"$out_of_gas_2481": ; preds = %"$have_gas_2477" - call void @_out_of_gas() - br label %"$have_gas_2482" - -"$have_gas_2482": ; preds = %"$out_of_gas_2481", %"$have_gas_2477" - %"$consume_2483" = sub i64 %"$gasrem_2479", 1 - store i64 %"$consume_2483", i64* @_gasrem, align 8 - %"$adtval_2484_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2484_salloc" = call i8* @_salloc(i8* %"$adtval_2484_load", i64 1) - %"$adtval_2484" = bitcast i8* %"$adtval_2484_salloc" to %CName_Nil_ByStr20* - %"$adtgep_2485" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_2484", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2485", align 1 - %"$adtptr_2486" = bitcast %CName_Nil_ByStr20* %"$adtval_2484" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_2486", %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 - %"$gasrem_2487" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2488" = icmp ugt i64 1, %"$gasrem_2487" - br i1 %"$gascmp_2488", label %"$out_of_gas_2489", label %"$have_gas_2490" - -"$out_of_gas_2489": ; preds = %"$have_gas_2482" - call void @_out_of_gas() - br label %"$have_gas_2490" - -"$have_gas_2490": ; preds = %"$out_of_gas_2489", %"$have_gas_2482" - %"$consume_2491" = sub i64 %"$gasrem_2487", 1 - store i64 %"$consume_2491", i64* @_gasrem, align 8 - %"$adtval_2492_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2492_salloc" = call i8* @_salloc(i8* %"$adtval_2492_load", i64 1) - %"$adtval_2492" = bitcast i8* %"$adtval_2492_salloc" to %CName_Nil_Message* - %"$adtgep_2493" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_2492", i32 0, i32 0 - store i8 1, i8* %"$adtgep_2493", align 1 - %"$adtptr_2494" = bitcast %CName_Nil_Message* %"$adtval_2492" to %TName_List_Message* - store %TName_List_Message* %"$adtptr_2494", %TName_List_Message** @ud-registry.nilMessage, align 8 - %"$gasrem_2495" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2496" = icmp ugt i64 1, %"$gasrem_2495" - br i1 %"$gascmp_2496", label %"$out_of_gas_2497", label %"$have_gas_2498" - -"$out_of_gas_2497": ; preds = %"$have_gas_2490" - call void @_out_of_gas() - br label %"$have_gas_2498" - -"$have_gas_2498": ; preds = %"$out_of_gas_2497", %"$have_gas_2490" - %"$consume_2499" = sub i64 %"$gasrem_2495", 1 - store i64 %"$consume_2499", i64* @_gasrem, align 8 - %"$$fundef_270_envp_2500_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_270_envp_2500_salloc" = call i8* @_salloc(i8* %"$$fundef_270_envp_2500_load", i64 8) - %"$$fundef_270_envp_2500" = bitcast i8* %"$$fundef_270_envp_2500_salloc" to %"$$fundef_270_env_436"* - %"$$fundef_270_env_voidp_2502" = bitcast %"$$fundef_270_env_436"* %"$$fundef_270_envp_2500" to i8* - %"$$fundef_270_cloval_2503" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_270_env_436"*, i8*)* @"$fundef_270" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_270_env_voidp_2502", 1 - %"$$fundef_270_env_ud-registry.nilMessage_2504" = getelementptr inbounds %"$$fundef_270_env_436", %"$$fundef_270_env_436"* %"$$fundef_270_envp_2500", i32 0, i32 0 - %"$ud-registry.nilMessage_2505" = load %TName_List_Message*, %TName_List_Message** @ud-registry.nilMessage, align 8 - store %TName_List_Message* %"$ud-registry.nilMessage_2505", %TName_List_Message** %"$$fundef_270_env_ud-registry.nilMessage_2504", align 8 - store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_270_cloval_2503", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$gasrem_2506" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2507" = icmp ugt i64 1, %"$gasrem_2506" - br i1 %"$gascmp_2507", label %"$out_of_gas_2508", label %"$have_gas_2509" - -"$out_of_gas_2508": ; preds = %"$have_gas_2498" - call void @_out_of_gas() - br label %"$have_gas_2509" - -"$have_gas_2509": ; preds = %"$out_of_gas_2508", %"$have_gas_2498" - %"$consume_2510" = sub i64 %"$gasrem_2506", 1 - store i64 %"$consume_2510", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Bool* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_266_env_435"*, [20 x i8]*)* @"$fundef_266" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* null }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eqByStr20, align 8 - %"$gasrem_2514" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2515" = icmp ugt i64 1, %"$gasrem_2514" - br i1 %"$gascmp_2515", label %"$out_of_gas_2516", label %"$have_gas_2517" - -"$out_of_gas_2516": ; preds = %"$have_gas_2509" - call void @_out_of_gas() - br label %"$have_gas_2517" - -"$have_gas_2517": ; preds = %"$out_of_gas_2516", %"$have_gas_2509" - %"$consume_2518" = sub i64 %"$gasrem_2514", 1 - store i64 %"$consume_2518", i64* @_gasrem, align 8 - %"$$fundef_262_envp_2519_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_262_envp_2519_salloc" = call i8* @_salloc(i8* %"$$fundef_262_envp_2519_load", i64 24) - %"$$fundef_262_envp_2519" = bitcast i8* %"$$fundef_262_envp_2519_salloc" to %"$$fundef_262_env_433"* - %"$$fundef_262_env_voidp_2521" = bitcast %"$$fundef_262_env_433"* %"$$fundef_262_envp_2519" to i8* - %"$$fundef_262_cloval_2522" = insertvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)* bitcast ({ %TName_Bool* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_262_env_433"*, %TName_List_ByStr20*)* @"$fundef_262" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_262_env_voidp_2521", 1 - %"$$fundef_262_env_ListUtils.list_mem_2523" = getelementptr inbounds %"$$fundef_262_env_433", %"$$fundef_262_env_433"* %"$$fundef_262_envp_2519", i32 0, i32 0 - %"$ListUtils.list_mem_2524" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_mem, align 8 - store { i8*, i8* }* %"$ListUtils.list_mem_2524", { i8*, i8* }** %"$$fundef_262_env_ListUtils.list_mem_2523", align 8 - %"$$fundef_262_env_ud-registry.eqByStr20_2525" = getelementptr inbounds %"$$fundef_262_env_433", %"$$fundef_262_env_433"* %"$$fundef_262_envp_2519", i32 0, i32 1 - %"$ud-registry.eqByStr20_2526" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eqByStr20, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_2526", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_262_env_ud-registry.eqByStr20_2525", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_262_cloval_2522", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8 - %"$gasrem_2527" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2528" = icmp ugt i64 1, %"$gasrem_2527" - br i1 %"$gascmp_2528", label %"$out_of_gas_2529", label %"$have_gas_2530" - -"$out_of_gas_2529": ; preds = %"$have_gas_2517" - call void @_out_of_gas() - br label %"$have_gas_2530" - -"$have_gas_2530": ; preds = %"$out_of_gas_2529", %"$have_gas_2517" - %"$consume_2531" = sub i64 %"$gasrem_2527", 1 - store i64 %"$consume_2531", i64* @_gasrem, align 8 - %"$$fundef_258_envp_2532_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_258_envp_2532_salloc" = call i8* @_salloc(i8* %"$$fundef_258_envp_2532_load", i64 32) - %"$$fundef_258_envp_2532" = bitcast i8* %"$$fundef_258_envp_2532_salloc" to %"$$fundef_258_env_431"* - %"$$fundef_258_env_voidp_2534" = bitcast %"$$fundef_258_env_431"* %"$$fundef_258_envp_2532" to i8* - %"$$fundef_258_cloval_2535" = insertvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)* bitcast ({ %TName_Bool* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_258_env_431"*, %TName_List_ByStr20*)* @"$fundef_258" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_258_env_voidp_2534", 1 - %"$$fundef_258_env_BoolUtils.negb_2536" = getelementptr inbounds %"$$fundef_258_env_431", %"$$fundef_258_env_431"* %"$$fundef_258_envp_2532", i32 0, i32 0 - %"$BoolUtils.negb_2537" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2537", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_258_env_BoolUtils.negb_2536", align 8 - %"$$fundef_258_env_ud-registry.listByStr20Contains_2538" = getelementptr inbounds %"$$fundef_258_env_431", %"$$fundef_258_env_431"* %"$$fundef_258_envp_2532", i32 0, i32 1 - %"$ud-registry.listByStr20Contains_2539" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2539", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_258_env_ud-registry.listByStr20Contains_2538", align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_258_cloval_2535", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Excludes, align 8 - %"$gasrem_2540" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2541" = icmp ugt i64 1, %"$gasrem_2540" - br i1 %"$gascmp_2541", label %"$out_of_gas_2542", label %"$have_gas_2543" - -"$out_of_gas_2542": ; preds = %"$have_gas_2530" - call void @_out_of_gas() - br label %"$have_gas_2543" - -"$have_gas_2543": ; preds = %"$out_of_gas_2542", %"$have_gas_2530" - %"$consume_2544" = sub i64 %"$gasrem_2540", 1 - store i64 %"$consume_2544", i64* @_gasrem, align 8 - %"$$fundef_252_envp_2545_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_252_envp_2545_salloc" = call i8* @_salloc(i8* %"$$fundef_252_envp_2545_load", i64 24) - %"$$fundef_252_envp_2545" = bitcast i8* %"$$fundef_252_envp_2545_salloc" to %"$$fundef_252_env_429"* - %"$$fundef_252_env_voidp_2547" = bitcast %"$$fundef_252_env_429"* %"$$fundef_252_envp_2545" to i8* - %"$$fundef_252_cloval_2548" = insertvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)* bitcast ({ %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_252_env_429"*, %TName_List_ByStr20*)* @"$fundef_252" to { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_252_env_voidp_2547", 1 - %"$$fundef_252_env_BoolUtils.negb_2549" = getelementptr inbounds %"$$fundef_252_env_429", %"$$fundef_252_env_429"* %"$$fundef_252_envp_2545", i32 0, i32 0 - %"$BoolUtils.negb_2550" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2550", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_252_env_BoolUtils.negb_2549", align 8 - %"$$fundef_252_env_ListUtils.list_filter_2551" = getelementptr inbounds %"$$fundef_252_env_429", %"$$fundef_252_env_429"* %"$$fundef_252_envp_2545", i32 0, i32 1 - %"$ListUtils.list_filter_2552" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_filter, align 8 - store { i8*, i8* }* %"$ListUtils.list_filter_2552", { i8*, i8* }** %"$$fundef_252_env_ListUtils.list_filter_2551", align 8 - store { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_252_cloval_2548", { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8 - %"$gasrem_2553" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2554" = icmp ugt i64 1, %"$gasrem_2553" - br i1 %"$gascmp_2554", label %"$out_of_gas_2555", label %"$have_gas_2556" - -"$out_of_gas_2555": ; preds = %"$have_gas_2543" - call void @_out_of_gas() - br label %"$have_gas_2556" - -"$have_gas_2556": ; preds = %"$out_of_gas_2555", %"$have_gas_2543" - %"$consume_2557" = sub i64 %"$gasrem_2553", 1 - store i64 %"$consume_2557", i64* @_gasrem, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ %TName_Bool* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_248_env_426"*, %TName_Bool*)* @"$fundef_248" to { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8 - %"$gasrem_2561" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2562" = icmp ugt i64 1, %"$gasrem_2561" - br i1 %"$gascmp_2562", label %"$out_of_gas_2563", label %"$have_gas_2564" - -"$out_of_gas_2563": ; preds = %"$have_gas_2556" - call void @_out_of_gas() - br label %"$have_gas_2564" - -"$have_gas_2564": ; preds = %"$out_of_gas_2563", %"$have_gas_2556" - %"$consume_2565" = sub i64 %"$gasrem_2561", 1 - store i64 %"$consume_2565", i64* @_gasrem, align 8 - store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ i8* (i8*, %TName_Bool*)*, i8* } (%"$$fundef_244_env_424"*, [20 x i8]*)* @"$fundef_244" to { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*), i8* null }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eAdminSet, align 8 - %"$gasrem_2569" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2570" = icmp ugt i64 1, %"$gasrem_2569" - br i1 %"$gascmp_2570", label %"$out_of_gas_2571", label %"$have_gas_2572" - -"$out_of_gas_2571": ; preds = %"$have_gas_2564" - call void @_out_of_gas() - br label %"$have_gas_2572" - -"$have_gas_2572": ; preds = %"$out_of_gas_2571", %"$have_gas_2564" - %"$consume_2573" = sub i64 %"$gasrem_2569", 1 - store i64 %"$consume_2573", i64* @_gasrem, align 8 - store { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_238_env_422"*, [20 x i8]*)* @"$fundef_238" to { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* null }, { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApprovedFor, align 8 - %"$gasrem_2577" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2578" = icmp ugt i64 1, %"$gasrem_2577" - br i1 %"$gascmp_2578", label %"$out_of_gas_2579", label %"$have_gas_2580" + %"$gasrem_2032" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2033" = icmp ugt i64 1, %"$gasrem_2032" + br i1 %"$gascmp_2033", label %"$out_of_gas_2034", label %"$have_gas_2035" + +"$out_of_gas_2034": ; preds = %"$have_gas_2030" + call void @_out_of_gas() + br label %"$have_gas_2035" + +"$have_gas_2035": ; preds = %"$out_of_gas_2034", %"$have_gas_2030" + %"$consume_2036" = sub i64 %"$gasrem_2032", 1 + store i64 %"$consume_2036", i64* @_gasrem, align 8 + %"$adtval_2037_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2037_salloc" = call i8* @_salloc(i8* %"$adtval_2037_load", i64 1) + %"$adtval_2037" = bitcast i8* %"$adtval_2037_salloc" to %CName_Nil_ByStr20* + %"$adtgep_2038" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_2037", i32 0, i32 0 + store i8 1, i8* %"$adtgep_2038", align 1 + %"$adtptr_2039" = bitcast %CName_Nil_ByStr20* %"$adtval_2037" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_2039", %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 + %"$gasrem_2040" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2041" = icmp ugt i64 1, %"$gasrem_2040" + br i1 %"$gascmp_2041", label %"$out_of_gas_2042", label %"$have_gas_2043" + +"$out_of_gas_2042": ; preds = %"$have_gas_2035" + call void @_out_of_gas() + br label %"$have_gas_2043" + +"$have_gas_2043": ; preds = %"$out_of_gas_2042", %"$have_gas_2035" + %"$consume_2044" = sub i64 %"$gasrem_2040", 1 + store i64 %"$consume_2044", i64* @_gasrem, align 8 + %"$adtval_2045_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2045_salloc" = call i8* @_salloc(i8* %"$adtval_2045_load", i64 1) + %"$adtval_2045" = bitcast i8* %"$adtval_2045_salloc" to %CName_Nil_Message* + %"$adtgep_2046" = getelementptr inbounds %CName_Nil_Message, %CName_Nil_Message* %"$adtval_2045", i32 0, i32 0 + store i8 1, i8* %"$adtgep_2046", align 1 + %"$adtptr_2047" = bitcast %CName_Nil_Message* %"$adtval_2045" to %TName_List_Message* + store %TName_List_Message* %"$adtptr_2047", %TName_List_Message** @ud-registry.nilMessage, align 8 + %"$gasrem_2048" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2049" = icmp ugt i64 1, %"$gasrem_2048" + br i1 %"$gascmp_2049", label %"$out_of_gas_2050", label %"$have_gas_2051" + +"$out_of_gas_2050": ; preds = %"$have_gas_2043" + call void @_out_of_gas() + br label %"$have_gas_2051" + +"$have_gas_2051": ; preds = %"$out_of_gas_2050", %"$have_gas_2043" + %"$consume_2052" = sub i64 %"$gasrem_2048", 1 + store i64 %"$consume_2052", i64* @_gasrem, align 8 + %"$$fundef_153_envp_2053_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_153_envp_2053_salloc" = call i8* @_salloc(i8* %"$$fundef_153_envp_2053_load", i64 8) + %"$$fundef_153_envp_2053" = bitcast i8* %"$$fundef_153_envp_2053_salloc" to %"$$fundef_153_env_305"* + %"$$fundef_153_env_voidp_2055" = bitcast %"$$fundef_153_env_305"* %"$$fundef_153_envp_2053" to i8* + %"$$fundef_153_cloval_2056" = insertvalue { %TName_List_Message* (i8*, i8*)*, i8* } { %TName_List_Message* (i8*, i8*)* bitcast (%TName_List_Message* (%"$$fundef_153_env_305"*, i8*)* @"$fundef_153" to %TName_List_Message* (i8*, i8*)*), i8* undef }, i8* %"$$fundef_153_env_voidp_2055", 1 + %"$$fundef_153_env_ud-registry.nilMessage_2057" = getelementptr inbounds %"$$fundef_153_env_305", %"$$fundef_153_env_305"* %"$$fundef_153_envp_2053", i32 0, i32 0 + %"$ud-registry.nilMessage_2058" = load %TName_List_Message*, %TName_List_Message** @ud-registry.nilMessage, align 8 + store %TName_List_Message* %"$ud-registry.nilMessage_2058", %TName_List_Message** %"$$fundef_153_env_ud-registry.nilMessage_2057", align 8 + store { %TName_List_Message* (i8*, i8*)*, i8* } %"$$fundef_153_cloval_2056", { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$gasrem_2059" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2060" = icmp ugt i64 1, %"$gasrem_2059" + br i1 %"$gascmp_2060", label %"$out_of_gas_2061", label %"$have_gas_2062" + +"$out_of_gas_2061": ; preds = %"$have_gas_2051" + call void @_out_of_gas() + br label %"$have_gas_2062" + +"$have_gas_2062": ; preds = %"$out_of_gas_2061", %"$have_gas_2051" + %"$consume_2063" = sub i64 %"$gasrem_2059", 1 + store i64 %"$consume_2063", i64* @_gasrem, align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ %TName_Bool* (i8*, [20 x i8]*)*, i8* } (%"$$fundef_149_env_304"*, [20 x i8]*)* @"$fundef_149" to { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* null }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eqByStr20, align 8 + %"$gasrem_2067" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2068" = icmp ugt i64 2, %"$gasrem_2067" + br i1 %"$gascmp_2068", label %"$out_of_gas_2069", label %"$have_gas_2070" + +"$out_of_gas_2069": ; preds = %"$have_gas_2062" + call void @_out_of_gas() + br label %"$have_gas_2070" + +"$have_gas_2070": ; preds = %"$out_of_gas_2069", %"$have_gas_2062" + %"$consume_2071" = sub i64 %"$gasrem_2067", 2 + store i64 %"$consume_2071", i64* @_gasrem, align 8 + %"$$fundef_147_envp_2072_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_147_envp_2072_salloc" = call i8* @_salloc(i8* %"$$fundef_147_envp_2072_load", i64 24) + %"$$fundef_147_envp_2072" = bitcast i8* %"$$fundef_147_envp_2072_salloc" to %"$$fundef_147_env_302"* + %"$$fundef_147_env_voidp_2074" = bitcast %"$$fundef_147_env_302"* %"$$fundef_147_envp_2072" to i8* + %"$$fundef_147_cloval_2075" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_147_env_302"*, %TName_List_ByStr20*, [20 x i8]*)* @"$fundef_147" to %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_147_env_voidp_2074", 1 + %"$$fundef_147_env_ListUtils.list_mem_2076" = getelementptr inbounds %"$$fundef_147_env_302", %"$$fundef_147_env_302"* %"$$fundef_147_envp_2072", i32 0, i32 0 + %"$ListUtils.list_mem_2077" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_mem, align 8 + store { i8*, i8* }* %"$ListUtils.list_mem_2077", { i8*, i8* }** %"$$fundef_147_env_ListUtils.list_mem_2076", align 8 + %"$$fundef_147_env_ud-registry.eqByStr20_2078" = getelementptr inbounds %"$$fundef_147_env_302", %"$$fundef_147_env_302"* %"$$fundef_147_envp_2072", i32 0, i32 1 + %"$ud-registry.eqByStr20_2079" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eqByStr20, align 8 + store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eqByStr20_2079", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$$fundef_147_env_ud-registry.eqByStr20_2078", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$$fundef_147_cloval_2075", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8 + %"$gasrem_2080" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2081" = icmp ugt i64 2, %"$gasrem_2080" + br i1 %"$gascmp_2081", label %"$out_of_gas_2082", label %"$have_gas_2083" + +"$out_of_gas_2082": ; preds = %"$have_gas_2070" + call void @_out_of_gas() + br label %"$have_gas_2083" + +"$have_gas_2083": ; preds = %"$out_of_gas_2082", %"$have_gas_2070" + %"$consume_2084" = sub i64 %"$gasrem_2080", 2 + store i64 %"$consume_2084", i64* @_gasrem, align 8 + %"$$fundef_145_envp_2085_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_145_envp_2085_salloc" = call i8* @_salloc(i8* %"$$fundef_145_envp_2085_load", i64 32) + %"$$fundef_145_envp_2085" = bitcast i8* %"$$fundef_145_envp_2085_salloc" to %"$$fundef_145_env_301"* + %"$$fundef_145_env_voidp_2087" = bitcast %"$$fundef_145_env_301"* %"$$fundef_145_envp_2085" to i8* + %"$$fundef_145_cloval_2088" = insertvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)* bitcast (%TName_Bool* (%"$$fundef_145_env_301"*, %TName_List_ByStr20*, [20 x i8]*)* @"$fundef_145" to %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_145_env_voidp_2087", 1 + %"$$fundef_145_env_BoolUtils.negb_2089" = getelementptr inbounds %"$$fundef_145_env_301", %"$$fundef_145_env_301"* %"$$fundef_145_envp_2085", i32 0, i32 0 + %"$BoolUtils.negb_2090" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2090", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_145_env_BoolUtils.negb_2089", align 8 + %"$$fundef_145_env_ud-registry.listByStr20Contains_2091" = getelementptr inbounds %"$$fundef_145_env_301", %"$$fundef_145_env_301"* %"$$fundef_145_envp_2085", i32 0, i32 1 + %"$ud-registry.listByStr20Contains_2092" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_2092", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %"$$fundef_145_env_ud-registry.listByStr20Contains_2091", align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$$fundef_145_cloval_2088", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Excludes, align 8 + %"$gasrem_2093" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2094" = icmp ugt i64 2, %"$gasrem_2093" + br i1 %"$gascmp_2094", label %"$out_of_gas_2095", label %"$have_gas_2096" + +"$out_of_gas_2095": ; preds = %"$have_gas_2083" + call void @_out_of_gas() + br label %"$have_gas_2096" + +"$have_gas_2096": ; preds = %"$out_of_gas_2095", %"$have_gas_2083" + %"$consume_2097" = sub i64 %"$gasrem_2093", 2 + store i64 %"$consume_2097", i64* @_gasrem, align 8 + %"$$fundef_141_envp_2098_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_141_envp_2098_salloc" = call i8* @_salloc(i8* %"$$fundef_141_envp_2098_load", i64 24) + %"$$fundef_141_envp_2098" = bitcast i8* %"$$fundef_141_envp_2098_salloc" to %"$$fundef_141_env_300"* + %"$$fundef_141_env_voidp_2100" = bitcast %"$$fundef_141_env_300"* %"$$fundef_141_envp_2098" to i8* + %"$$fundef_141_cloval_2101" = insertvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)* bitcast (%TName_List_ByStr20* (%"$$fundef_141_env_300"*, %TName_List_ByStr20*, [20 x i8]*)* @"$fundef_141" to %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_141_env_voidp_2100", 1 + %"$$fundef_141_env_BoolUtils.negb_2102" = getelementptr inbounds %"$$fundef_141_env_300", %"$$fundef_141_env_300"* %"$$fundef_141_envp_2098", i32 0, i32 0 + %"$BoolUtils.negb_2103" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2103", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$$fundef_141_env_BoolUtils.negb_2102", align 8 + %"$$fundef_141_env_ListUtils.list_filter_2104" = getelementptr inbounds %"$$fundef_141_env_300", %"$$fundef_141_env_300"* %"$$fundef_141_envp_2098", i32 0, i32 1 + %"$ListUtils.list_filter_2105" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_filter, align 8 + store { i8*, i8* }* %"$ListUtils.list_filter_2105", { i8*, i8* }** %"$$fundef_141_env_ListUtils.list_filter_2104", align 8 + store { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$$fundef_141_cloval_2101", { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8 + %"$gasrem_2106" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2107" = icmp ugt i64 2, %"$gasrem_2106" + br i1 %"$gascmp_2107", label %"$out_of_gas_2108", label %"$have_gas_2109" -"$out_of_gas_2579": ; preds = %"$have_gas_2572" +"$out_of_gas_2108": ; preds = %"$have_gas_2096" call void @_out_of_gas() - br label %"$have_gas_2580" + br label %"$have_gas_2109" -"$have_gas_2580": ; preds = %"$out_of_gas_2579", %"$have_gas_2572" - %"$consume_2581" = sub i64 %"$gasrem_2577", 1 - store i64 %"$consume_2581", i64* @_gasrem, align 8 - store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_236_env_419"*, [20 x i8]*)* @"$fundef_236" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8 - %"$gasrem_2585" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2586" = icmp ugt i64 1, %"$gasrem_2585" - br i1 %"$gascmp_2586", label %"$out_of_gas_2587", label %"$have_gas_2588" - -"$out_of_gas_2587": ; preds = %"$have_gas_2580" - call void @_out_of_gas() - br label %"$have_gas_2588" - -"$have_gas_2588": ; preds = %"$out_of_gas_2587", %"$have_gas_2580" - %"$consume_2589" = sub i64 %"$gasrem_2585", 1 - store i64 %"$consume_2589", i64* @_gasrem, align 8 - store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_234_env_418"*, [20 x i8]*)* @"$fundef_234" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8 - %"$gasrem_2593" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2594" = icmp ugt i64 1, %"$gasrem_2593" - br i1 %"$gascmp_2594", label %"$out_of_gas_2595", label %"$have_gas_2596" - -"$out_of_gas_2595": ; preds = %"$have_gas_2588" - call void @_out_of_gas() - br label %"$have_gas_2596" - -"$have_gas_2596": ; preds = %"$out_of_gas_2595", %"$have_gas_2588" - %"$consume_2597" = sub i64 %"$gasrem_2593", 1 - store i64 %"$consume_2597", i64* @_gasrem, align 8 - store { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)* bitcast ({ i8* (i8*, %String)*, i8* } (%"$$fundef_230_env_417"*, [32 x i8]*)* @"$fundef_230" to { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*), i8* null }, { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eNewDomain, align 8 - %"$gasrem_2601" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2602" = icmp ugt i64 1, %"$gasrem_2601" - br i1 %"$gascmp_2602", label %"$out_of_gas_2603", label %"$have_gas_2604" - -"$out_of_gas_2603": ; preds = %"$have_gas_2596" - call void @_out_of_gas() - br label %"$have_gas_2604" - -"$have_gas_2604": ; preds = %"$out_of_gas_2603", %"$have_gas_2596" - %"$consume_2605" = sub i64 %"$gasrem_2601", 1 - store i64 %"$consume_2605", i64* @_gasrem, align 8 - store { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)* bitcast ({ { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_224_env_415"*, [32 x i8]*)* @"$fundef_224" to { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*), i8* null }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$gasrem_2609" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2610" = icmp ugt i64 1, %"$gasrem_2609" - br i1 %"$gascmp_2610", label %"$out_of_gas_2611", label %"$have_gas_2612" - -"$out_of_gas_2611": ; preds = %"$have_gas_2604" - call void @_out_of_gas() - br label %"$have_gas_2612" - -"$have_gas_2612": ; preds = %"$out_of_gas_2611", %"$have_gas_2604" - %"$consume_2613" = sub i64 %"$gasrem_2609", 1 - store i64 %"$consume_2613", i64* @_gasrem, align 8 - store { i8* (i8*, %String)*, i8* } { i8* (i8*, %String)* bitcast (i8* (%"$$fundef_222_env_412"*, %String)* @"$fundef_222" to i8* (i8*, %String)*), i8* null }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$gasrem_2617" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2618" = icmp ugt i64 1, %"$gasrem_2617" - br i1 %"$gascmp_2618", label %"$out_of_gas_2619", label %"$have_gas_2620" - -"$out_of_gas_2619": ; preds = %"$have_gas_2612" - call void @_out_of_gas() - br label %"$have_gas_2620" - -"$have_gas_2620": ; preds = %"$out_of_gas_2619", %"$have_gas_2612" - %"$consume_2621" = sub i64 %"$gasrem_2617", 1 - store i64 %"$consume_2621", i64* @_gasrem, align 8 - %"$$fundef_220_envp_2622_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_220_envp_2622_salloc" = call i8* @_salloc(i8* %"$$fundef_220_envp_2622_load", i64 20) - %"$$fundef_220_envp_2622" = bitcast i8* %"$$fundef_220_envp_2622_salloc" to %"$$fundef_220_env_411"* - %"$$fundef_220_env_voidp_2624" = bitcast %"$$fundef_220_env_411"* %"$$fundef_220_envp_2622" to i8* - %"$$fundef_220_cloval_2625" = insertvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)* bitcast (void (%"$$fundef_220_env_411"*, [20 x i8]*, %TName_Option_ud-registry.Record*)* @"$fundef_220" to void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*), i8* undef }, i8* %"$$fundef_220_env_voidp_2624", 1 - %"$$fundef_220_env_ud-registry.zeroByStr20_2626" = getelementptr inbounds %"$$fundef_220_env_411", %"$$fundef_220_env_411"* %"$$fundef_220_envp_2622", i32 0, i32 0 - %"$ud-registry.zeroByStr20_2627" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_2627", [20 x i8]* %"$$fundef_220_env_ud-registry.zeroByStr20_2626", align 1 - store { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$$fundef_220_cloval_2625", { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$gasrem_2628" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2629" = icmp ugt i64 1, %"$gasrem_2628" - br i1 %"$gascmp_2629", label %"$out_of_gas_2630", label %"$have_gas_2631" - -"$out_of_gas_2630": ; preds = %"$have_gas_2620" - call void @_out_of_gas() - br label %"$have_gas_2631" - -"$have_gas_2631": ; preds = %"$out_of_gas_2630", %"$have_gas_2620" - %"$consume_2632" = sub i64 %"$gasrem_2628", 1 - store i64 %"$consume_2632", i64* @_gasrem, align 8 - store { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)* bitcast ({ void (i8*, [32 x i8]*, %String)*, i8* } (%"$$fundef_216_env_410"*, [32 x i8]*)* @"$fundef_216" to { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*), i8* null }, { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.parentLabelToNode, align 8 - %"$gasrem_2636" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2637" = icmp ugt i64 1, %"$gasrem_2636" - br i1 %"$gascmp_2637", label %"$out_of_gas_2638", label %"$have_gas_2639" - -"$out_of_gas_2638": ; preds = %"$have_gas_2631" - call void @_out_of_gas() - br label %"$have_gas_2639" - -"$have_gas_2639": ; preds = %"$out_of_gas_2638", %"$have_gas_2631" - %"$consume_2640" = sub i64 %"$gasrem_2636", 1 - store i64 %"$consume_2640", i64* @_gasrem, align 8 - %"$$fundef_208_envp_2641_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_208_envp_2641_salloc" = call i8* @_salloc(i8* %"$$fundef_208_envp_2641_load", i64 32) - %"$$fundef_208_envp_2641" = bitcast i8* %"$$fundef_208_envp_2641_salloc" to %"$$fundef_208_env_408"* - %"$$fundef_208_env_voidp_2643" = bitcast %"$$fundef_208_env_408"* %"$$fundef_208_envp_2641" to i8* - %"$$fundef_208_cloval_2644" = insertvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)* bitcast ({ { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (%"$$fundef_208_env_408"*, [20 x i8]*)* @"$fundef_208" to { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_208_env_voidp_2643", 1 - %"$$fundef_208_env_BoolUtils.orb_2645" = getelementptr inbounds %"$$fundef_208_env_408", %"$$fundef_208_env_408"* %"$$fundef_208_envp_2641", i32 0, i32 0 - %"$BoolUtils.orb_2646" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 - store { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2646", { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %"$$fundef_208_env_BoolUtils.orb_2645", align 8 - %"$$fundef_208_env_ud-registry.listByStr20Contains_2647" = getelementptr inbounds %"$$fundef_208_env_408", %"$$fundef_208_env_408"* %"$$fundef_208_envp_2641", i32 0, i32 1 - %"$ud-registry.listByStr20Contains_2648" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8 - store { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2648", { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* %"$$fundef_208_env_ud-registry.listByStr20Contains_2647", align 8 - store { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$fundef_208_cloval_2644", { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.getIsOAO, align 8 +"$have_gas_2109": ; preds = %"$out_of_gas_2108", %"$have_gas_2096" + %"$consume_2110" = sub i64 %"$gasrem_2106", 2 + store i64 %"$consume_2110", i64* @_gasrem, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)* bitcast (%TName_Bool* (%"$$fundef_139_env_298"*, %TName_Bool*, %TName_Bool*)* @"$fundef_139" to %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*), i8* null }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8 + %"$gasrem_2114" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2115" = icmp ugt i64 2, %"$gasrem_2114" + br i1 %"$gascmp_2115", label %"$out_of_gas_2116", label %"$have_gas_2117" + +"$out_of_gas_2116": ; preds = %"$have_gas_2109" + call void @_out_of_gas() + br label %"$have_gas_2117" + +"$have_gas_2117": ; preds = %"$out_of_gas_2116", %"$have_gas_2109" + %"$consume_2118" = sub i64 %"$gasrem_2114", 2 + store i64 %"$consume_2118", i64* @_gasrem, align 8 + store { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } { i8* (i8*, [20 x i8]*, %TName_Bool*)* bitcast (i8* (%"$$fundef_137_env_297"*, [20 x i8]*, %TName_Bool*)* @"$fundef_137" to i8* (i8*, [20 x i8]*, %TName_Bool*)*), i8* null }, { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-registry.eAdminSet, align 8 + %"$gasrem_2122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2123" = icmp ugt i64 3, %"$gasrem_2122" + br i1 %"$gascmp_2123", label %"$out_of_gas_2124", label %"$have_gas_2125" + +"$out_of_gas_2124": ; preds = %"$have_gas_2117" + call void @_out_of_gas() + br label %"$have_gas_2125" + +"$have_gas_2125": ; preds = %"$out_of_gas_2124", %"$have_gas_2117" + %"$consume_2126" = sub i64 %"$gasrem_2122", 3 + store i64 %"$consume_2126", i64* @_gasrem, align 8 + store { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* } { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)* bitcast (i8* (%"$$fundef_135_env_296"*, [20 x i8]*, [20 x i8]*, %TName_Bool*)* @"$fundef_135" to i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*), i8* null }, { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-registry.eApprovedFor, align 8 + %"$gasrem_2130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2131" = icmp ugt i64 1, %"$gasrem_2130" + br i1 %"$gascmp_2131", label %"$out_of_gas_2132", label %"$have_gas_2133" + +"$out_of_gas_2132": ; preds = %"$have_gas_2125" + call void @_out_of_gas() + br label %"$have_gas_2133" + +"$have_gas_2133": ; preds = %"$out_of_gas_2132", %"$have_gas_2125" + %"$consume_2134" = sub i64 %"$gasrem_2130", 1 + store i64 %"$consume_2134", i64* @_gasrem, align 8 + store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_133_env_295"*, [20 x i8]*)* @"$fundef_133" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8 + %"$gasrem_2138" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2139" = icmp ugt i64 1, %"$gasrem_2138" + br i1 %"$gascmp_2139", label %"$out_of_gas_2140", label %"$have_gas_2141" + +"$out_of_gas_2140": ; preds = %"$have_gas_2133" + call void @_out_of_gas() + br label %"$have_gas_2141" + +"$have_gas_2141": ; preds = %"$out_of_gas_2140", %"$have_gas_2133" + %"$consume_2142" = sub i64 %"$gasrem_2138", 1 + store i64 %"$consume_2142", i64* @_gasrem, align 8 + store { i8* (i8*, [20 x i8]*)*, i8* } { i8* (i8*, [20 x i8]*)* bitcast (i8* (%"$$fundef_131_env_294"*, [20 x i8]*)* @"$fundef_131" to i8* (i8*, [20 x i8]*)*), i8* null }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8 + %"$gasrem_2146" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2147" = icmp ugt i64 2, %"$gasrem_2146" + br i1 %"$gascmp_2147", label %"$out_of_gas_2148", label %"$have_gas_2149" + +"$out_of_gas_2148": ; preds = %"$have_gas_2141" + call void @_out_of_gas() + br label %"$have_gas_2149" + +"$have_gas_2149": ; preds = %"$out_of_gas_2148", %"$have_gas_2141" + %"$consume_2150" = sub i64 %"$gasrem_2146", 2 + store i64 %"$consume_2150", i64* @_gasrem, align 8 + store { i8* (i8*, [32 x i8]*, %String)*, i8* } { i8* (i8*, [32 x i8]*, %String)* bitcast (i8* (%"$$fundef_129_env_293"*, [32 x i8]*, %String)* @"$fundef_129" to i8* (i8*, [32 x i8]*, %String)*), i8* null }, { i8* (i8*, [32 x i8]*, %String)*, i8* }* @ud-registry.eNewDomain, align 8 + %"$gasrem_2154" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2155" = icmp ugt i64 3, %"$gasrem_2154" + br i1 %"$gascmp_2155", label %"$out_of_gas_2156", label %"$have_gas_2157" + +"$out_of_gas_2156": ; preds = %"$have_gas_2149" + call void @_out_of_gas() + br label %"$have_gas_2157" + +"$have_gas_2157": ; preds = %"$out_of_gas_2156", %"$have_gas_2149" + %"$consume_2158" = sub i64 %"$gasrem_2154", 3 + store i64 %"$consume_2158", i64* @_gasrem, align 8 + store { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)* bitcast (i8* (%"$$fundef_127_env_292"*, [32 x i8]*, [20 x i8]*, [20 x i8]*)* @"$fundef_127" to i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*), i8* null }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$gasrem_2162" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2163" = icmp ugt i64 1, %"$gasrem_2162" + br i1 %"$gascmp_2163", label %"$out_of_gas_2164", label %"$have_gas_2165" + +"$out_of_gas_2164": ; preds = %"$have_gas_2157" + call void @_out_of_gas() + br label %"$have_gas_2165" + +"$have_gas_2165": ; preds = %"$out_of_gas_2164", %"$have_gas_2157" + %"$consume_2166" = sub i64 %"$gasrem_2162", 1 + store i64 %"$consume_2166", i64* @_gasrem, align 8 + store { i8* (i8*, %String)*, i8* } { i8* (i8*, %String)* bitcast (i8* (%"$$fundef_125_env_291"*, %String)* @"$fundef_125" to i8* (i8*, %String)*), i8* null }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$gasrem_2170" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2171" = icmp ugt i64 1, %"$gasrem_2170" + br i1 %"$gascmp_2171", label %"$out_of_gas_2172", label %"$have_gas_2173" + +"$out_of_gas_2172": ; preds = %"$have_gas_2165" + call void @_out_of_gas() + br label %"$have_gas_2173" + +"$have_gas_2173": ; preds = %"$out_of_gas_2172", %"$have_gas_2165" + %"$consume_2174" = sub i64 %"$gasrem_2170", 1 + store i64 %"$consume_2174", i64* @_gasrem, align 8 + %"$$fundef_123_envp_2175_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_123_envp_2175_salloc" = call i8* @_salloc(i8* %"$$fundef_123_envp_2175_load", i64 20) + %"$$fundef_123_envp_2175" = bitcast i8* %"$$fundef_123_envp_2175_salloc" to %"$$fundef_123_env_290"* + %"$$fundef_123_env_voidp_2177" = bitcast %"$$fundef_123_env_290"* %"$$fundef_123_envp_2175" to i8* + %"$$fundef_123_cloval_2178" = insertvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)* bitcast (void (%"$$fundef_123_env_290"*, [20 x i8]*, %TName_Option_ud-registry.Record*)* @"$fundef_123" to void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*), i8* undef }, i8* %"$$fundef_123_env_voidp_2177", 1 + %"$$fundef_123_env_ud-registry.zeroByStr20_2179" = getelementptr inbounds %"$$fundef_123_env_290", %"$$fundef_123_env_290"* %"$$fundef_123_envp_2175", i32 0, i32 0 + %"$ud-registry.zeroByStr20_2180" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_2180", [20 x i8]* %"$$fundef_123_env_ud-registry.zeroByStr20_2179", align 1 + store { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$$fundef_123_cloval_2178", { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$gasrem_2181" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2182" = icmp ugt i64 2, %"$gasrem_2181" + br i1 %"$gascmp_2182", label %"$out_of_gas_2183", label %"$have_gas_2184" + +"$out_of_gas_2183": ; preds = %"$have_gas_2173" + call void @_out_of_gas() + br label %"$have_gas_2184" + +"$have_gas_2184": ; preds = %"$out_of_gas_2183", %"$have_gas_2173" + %"$consume_2185" = sub i64 %"$gasrem_2181", 2 + store i64 %"$consume_2185", i64* @_gasrem, align 8 + store { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } { void (i8*, [32 x i8]*, [32 x i8]*, %String)* bitcast (void (%"$$fundef_121_env_289"*, [32 x i8]*, [32 x i8]*, %String)* @"$fundef_121" to void (i8*, [32 x i8]*, [32 x i8]*, %String)*), i8* null }, { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }* @ud-registry.parentLabelToNode, align 8 + %"$gasrem_2189" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2190" = icmp ugt i64 4, %"$gasrem_2189" + br i1 %"$gascmp_2190", label %"$out_of_gas_2191", label %"$have_gas_2192" + +"$out_of_gas_2191": ; preds = %"$have_gas_2184" + call void @_out_of_gas() + br label %"$have_gas_2192" + +"$have_gas_2192": ; preds = %"$out_of_gas_2191", %"$have_gas_2184" + %"$consume_2193" = sub i64 %"$gasrem_2189", 4 + store i64 %"$consume_2193", i64* @_gasrem, align 8 + %"$$fundef_119_envp_2194_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_119_envp_2194_salloc" = call i8* @_salloc(i8* %"$$fundef_119_envp_2194_load", i64 32) + %"$$fundef_119_envp_2194" = bitcast i8* %"$$fundef_119_envp_2194_salloc" to %"$$fundef_119_env_288"* + %"$$fundef_119_env_voidp_2196" = bitcast %"$$fundef_119_env_288"* %"$$fundef_119_envp_2194" to i8* + %"$$fundef_119_cloval_2197" = insertvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)* bitcast (%TName_Bool* (%"$$fundef_119_env_288"*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)* @"$fundef_119" to %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*), i8* undef }, i8* %"$$fundef_119_env_voidp_2196", 1 + %"$$fundef_119_env_BoolUtils.orb_2198" = getelementptr inbounds %"$$fundef_119_env_288", %"$$fundef_119_env_288"* %"$$fundef_119_envp_2194", i32 0, i32 0 + %"$BoolUtils.orb_2199" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 + store { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_2199", { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* %"$$fundef_119_env_BoolUtils.orb_2198", align 8 + %"$$fundef_119_env_ud-registry.listByStr20Contains_2200" = getelementptr inbounds %"$$fundef_119_env_288", %"$$fundef_119_env_288"* %"$$fundef_119_envp_2194", i32 0, i32 1 + %"$ud-registry.listByStr20Contains_2201" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8 + store { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_2201", { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* %"$$fundef_119_env_ud-registry.listByStr20Contains_2200", align 8 + store { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$fundef_119_cloval_2197", { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }* @ud-registry.getIsOAO, align 8 ret void } define void @_init_state() { entry: - %"$records_272" = alloca %Map_ByStr32_ud-registry.Record*, align 8 - %"$gasrem_2649" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2650" = icmp ugt i64 1, %"$gasrem_2649" - br i1 %"$gascmp_2650", label %"$out_of_gas_2651", label %"$have_gas_2652" + %"$records_155" = alloca %Map_ByStr32_ud-registry.Record*, align 8 + %"$gasrem_2202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2203" = icmp ugt i64 1, %"$gasrem_2202" + br i1 %"$gascmp_2203", label %"$out_of_gas_2204", label %"$have_gas_2205" -"$out_of_gas_2651": ; preds = %entry +"$out_of_gas_2204": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_2652" + br label %"$have_gas_2205" -"$have_gas_2652": ; preds = %"$out_of_gas_2651", %entry - %"$consume_2653" = sub i64 %"$gasrem_2649", 1 - store i64 %"$consume_2653", i64* @_gasrem, align 8 +"$have_gas_2205": ; preds = %"$out_of_gas_2204", %entry + %"$consume_2206" = sub i64 %"$gasrem_2202", 1 + store i64 %"$consume_2206", i64* @_gasrem, align 8 %empty = alloca %Map_ByStr32_ud-registry.Record*, align 8 - %"$gasrem_2654" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2655" = icmp ugt i64 1, %"$gasrem_2654" - br i1 %"$gascmp_2655", label %"$out_of_gas_2656", label %"$have_gas_2657" + %"$gasrem_2207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2208" = icmp ugt i64 1, %"$gasrem_2207" + br i1 %"$gascmp_2208", label %"$out_of_gas_2209", label %"$have_gas_2210" -"$out_of_gas_2656": ; preds = %"$have_gas_2652" +"$out_of_gas_2209": ; preds = %"$have_gas_2205" call void @_out_of_gas() - br label %"$have_gas_2657" + br label %"$have_gas_2210" -"$have_gas_2657": ; preds = %"$out_of_gas_2656", %"$have_gas_2652" - %"$consume_2658" = sub i64 %"$gasrem_2654", 1 - store i64 %"$consume_2658", i64* @_gasrem, align 8 - %"$execptr_load_2659" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2660" = call i8* @_new_empty_map(i8* %"$execptr_load_2659") - %"$_new_empty_map_2661" = bitcast i8* %"$_new_empty_map_call_2660" to %Map_ByStr32_ud-registry.Record* - store %Map_ByStr32_ud-registry.Record* %"$_new_empty_map_2661", %Map_ByStr32_ud-registry.Record** %empty, align 8 - %"$gasrem_2662" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2663" = icmp ugt i64 1, %"$gasrem_2662" - br i1 %"$gascmp_2663", label %"$out_of_gas_2664", label %"$have_gas_2665" +"$have_gas_2210": ; preds = %"$out_of_gas_2209", %"$have_gas_2205" + %"$consume_2211" = sub i64 %"$gasrem_2207", 1 + store i64 %"$consume_2211", i64* @_gasrem, align 8 + %"$execptr_load_2212" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2213" = call i8* @_new_empty_map(i8* %"$execptr_load_2212") + %"$_new_empty_map_2214" = bitcast i8* %"$_new_empty_map_call_2213" to %Map_ByStr32_ud-registry.Record* + store %Map_ByStr32_ud-registry.Record* %"$_new_empty_map_2214", %Map_ByStr32_ud-registry.Record** %empty, align 8 + %"$gasrem_2215" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2216" = icmp ugt i64 1, %"$gasrem_2215" + br i1 %"$gascmp_2216", label %"$out_of_gas_2217", label %"$have_gas_2218" -"$out_of_gas_2664": ; preds = %"$have_gas_2657" +"$out_of_gas_2217": ; preds = %"$have_gas_2210" call void @_out_of_gas() - br label %"$have_gas_2665" + br label %"$have_gas_2218" -"$have_gas_2665": ; preds = %"$out_of_gas_2664", %"$have_gas_2657" - %"$consume_2666" = sub i64 %"$gasrem_2662", 1 - store i64 %"$consume_2666", i64* @_gasrem, align 8 +"$have_gas_2218": ; preds = %"$out_of_gas_2217", %"$have_gas_2210" + %"$consume_2219" = sub i64 %"$gasrem_2215", 1 + store i64 %"$consume_2219", i64* @_gasrem, align 8 %rootRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_2667" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2668" = icmp ugt i64 1, %"$gasrem_2667" - br i1 %"$gascmp_2668", label %"$out_of_gas_2669", label %"$have_gas_2670" - -"$out_of_gas_2669": ; preds = %"$have_gas_2665" - call void @_out_of_gas() - br label %"$have_gas_2670" - -"$have_gas_2670": ; preds = %"$out_of_gas_2669", %"$have_gas_2665" - %"$consume_2671" = sub i64 %"$gasrem_2667", 1 - store i64 %"$consume_2671", i64* @_gasrem, align 8 - %"$initialOwner_2672" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 - %"$ud-registry.zeroByStr20_2673" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - %"$adtval_2674_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2674_salloc" = call i8* @_salloc(i8* %"$adtval_2674_load", i64 41) - %"$adtval_2674" = bitcast i8* %"$adtval_2674_salloc" to %CName_ud-registry.Record* - %"$adtgep_2675" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2674", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2675", align 1 - %"$adtgep_2676" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2674", i32 0, i32 1 - store [20 x i8] %"$initialOwner_2672", [20 x i8]* %"$adtgep_2676", align 1 - %"$adtgep_2677" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2674", i32 0, i32 2 - store [20 x i8] %"$ud-registry.zeroByStr20_2673", [20 x i8]* %"$adtgep_2677", align 1 - %"$adtptr_2678" = bitcast %CName_ud-registry.Record* %"$adtval_2674" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_2678", %TName_ud-registry.Record** %rootRecord, align 8 - %"$empty_2679" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 - %"$$empty_2679_2680" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_2679" to i8* - %"$_lengthof_call_2681" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_325", i8* %"$$empty_2679_2680") - %"$gasadd_2682" = add i64 1, %"$_lengthof_call_2681" - %"$gasrem_2683" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2684" = icmp ugt i64 %"$gasadd_2682", %"$gasrem_2683" - br i1 %"$gascmp_2684", label %"$out_of_gas_2685", label %"$have_gas_2686" - -"$out_of_gas_2685": ; preds = %"$have_gas_2670" - call void @_out_of_gas() - br label %"$have_gas_2686" - -"$have_gas_2686": ; preds = %"$out_of_gas_2685", %"$have_gas_2670" - %"$consume_2687" = sub i64 %"$gasrem_2683", %"$gasadd_2682" - store i64 %"$consume_2687", i64* @_gasrem, align 8 - %"$execptr_load_2688" = load i8*, i8** @_execptr, align 8 - %"$empty_2689" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 - %"$$empty_2689_2690" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_2689" to i8* - %"$put_rootNode_2691" = alloca [32 x i8], align 1 - %"$rootNode_2692" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 - store [32 x i8] %"$rootNode_2692", [32 x i8]* %"$put_rootNode_2691", align 1 - %"$$put_rootNode_2691_2693" = bitcast [32 x i8]* %"$put_rootNode_2691" to i8* - %"$rootRecord_2694" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %rootRecord, align 8 - %"$$rootRecord_2694_2695" = bitcast %TName_ud-registry.Record* %"$rootRecord_2694" to i8* - %"$put_call_2696" = call i8* @_put(i8* %"$execptr_load_2688", %_TyDescrTy_Typ* @"$TyDescr_Map_325", i8* %"$$empty_2689_2690", i8* %"$$put_rootNode_2691_2693", i8* %"$$rootRecord_2694_2695") - %"$put_2697" = bitcast i8* %"$put_call_2696" to %Map_ByStr32_ud-registry.Record* - store %Map_ByStr32_ud-registry.Record* %"$put_2697", %Map_ByStr32_ud-registry.Record** %"$records_272", align 8 - %"$execptr_load_2698" = load i8*, i8** @_execptr, align 8 - %"$$records_272_2700" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %"$records_272", align 8 - %"$update_value_2701" = bitcast %Map_ByStr32_ud-registry.Record* %"$$records_272_2700" to i8* - call void @_update_field(i8* %"$execptr_load_2698", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_2699", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 0, i8* null, i8* %"$update_value_2701") - %"$registrar_273" = alloca [20 x i8], align 1 - %"$gasrem_2702" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2703" = icmp ugt i64 1, %"$gasrem_2702" - br i1 %"$gascmp_2703", label %"$out_of_gas_2704", label %"$have_gas_2705" - -"$out_of_gas_2704": ; preds = %"$have_gas_2686" - call void @_out_of_gas() - br label %"$have_gas_2705" - -"$have_gas_2705": ; preds = %"$out_of_gas_2704", %"$have_gas_2686" - %"$consume_2706" = sub i64 %"$gasrem_2702", 1 - store i64 %"$consume_2706", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_2707" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_2707", [20 x i8]* %"$registrar_273", align 1 - %"$execptr_load_2708" = load i8*, i8** @_execptr, align 8 - %"$$registrar_273_2710" = load [20 x i8], [20 x i8]* %"$registrar_273", align 1 - %"$update_value_2711" = alloca [20 x i8], align 1 - store [20 x i8] %"$$registrar_273_2710", [20 x i8]* %"$update_value_2711", align 1 - %"$update_value_2712" = bitcast [20 x i8]* %"$update_value_2711" to i8* - call void @_update_field(i8* %"$execptr_load_2708", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_2709", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i32 0, i8* null, i8* %"$update_value_2712") - %"$approvals_274" = alloca %Map_ByStr32_ByStr20*, align 8 - %"$gasrem_2713" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2714" = icmp ugt i64 1, %"$gasrem_2713" - br i1 %"$gascmp_2714", label %"$out_of_gas_2715", label %"$have_gas_2716" - -"$out_of_gas_2715": ; preds = %"$have_gas_2705" - call void @_out_of_gas() - br label %"$have_gas_2716" - -"$have_gas_2716": ; preds = %"$out_of_gas_2715", %"$have_gas_2705" - %"$consume_2717" = sub i64 %"$gasrem_2713", 1 - store i64 %"$consume_2717", i64* @_gasrem, align 8 - %"$execptr_load_2718" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2719" = call i8* @_new_empty_map(i8* %"$execptr_load_2718") - %"$_new_empty_map_2720" = bitcast i8* %"$_new_empty_map_call_2719" to %Map_ByStr32_ByStr20* - store %Map_ByStr32_ByStr20* %"$_new_empty_map_2720", %Map_ByStr32_ByStr20** %"$approvals_274", align 8 - %"$execptr_load_2721" = load i8*, i8** @_execptr, align 8 - %"$$approvals_274_2723" = load %Map_ByStr32_ByStr20*, %Map_ByStr32_ByStr20** %"$approvals_274", align 8 - %"$update_value_2724" = bitcast %Map_ByStr32_ByStr20* %"$$approvals_274_2723" to i8* - call void @_update_field(i8* %"$execptr_load_2721", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_2722", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 0, i8* null, i8* %"$update_value_2724") - %"$operators_275" = alloca %"Map_ByStr20_List_(ByStr20)"*, align 8 - %"$gasrem_2725" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2726" = icmp ugt i64 1, %"$gasrem_2725" - br i1 %"$gascmp_2726", label %"$out_of_gas_2727", label %"$have_gas_2728" - -"$out_of_gas_2727": ; preds = %"$have_gas_2716" - call void @_out_of_gas() - br label %"$have_gas_2728" - -"$have_gas_2728": ; preds = %"$out_of_gas_2727", %"$have_gas_2716" - %"$consume_2729" = sub i64 %"$gasrem_2725", 1 - store i64 %"$consume_2729", i64* @_gasrem, align 8 - %"$execptr_load_2730" = load i8*, i8** @_execptr, align 8 - %"$_new_empty_map_call_2731" = call i8* @_new_empty_map(i8* %"$execptr_load_2730") - %"$_new_empty_map_2732" = bitcast i8* %"$_new_empty_map_call_2731" to %"Map_ByStr20_List_(ByStr20)"* - store %"Map_ByStr20_List_(ByStr20)"* %"$_new_empty_map_2732", %"Map_ByStr20_List_(ByStr20)"** %"$operators_275", align 8 - %"$execptr_load_2733" = load i8*, i8** @_execptr, align 8 - %"$$operators_275_2735" = load %"Map_ByStr20_List_(ByStr20)"*, %"Map_ByStr20_List_(ByStr20)"** %"$operators_275", align 8 - %"$update_value_2736" = bitcast %"Map_ByStr20_List_(ByStr20)"* %"$$operators_275_2735" to i8* - call void @_update_field(i8* %"$execptr_load_2733", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_2734", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 0, i8* null, i8* %"$update_value_2736") - %"$admins_276" = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_2737" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2738" = icmp ugt i64 1, %"$gasrem_2737" - br i1 %"$gascmp_2738", label %"$out_of_gas_2739", label %"$have_gas_2740" - -"$out_of_gas_2739": ; preds = %"$have_gas_2728" - call void @_out_of_gas() - br label %"$have_gas_2740" - -"$have_gas_2740": ; preds = %"$out_of_gas_2739", %"$have_gas_2728" - %"$consume_2741" = sub i64 %"$gasrem_2737", 1 - store i64 %"$consume_2741", i64* @_gasrem, align 8 - %"$initialOwner_2742" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 - %"$ud-registry.nilByStr20_2743" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 - %"$adtval_2744_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2744_salloc" = call i8* @_salloc(i8* %"$adtval_2744_load", i64 29) - %"$adtval_2744" = bitcast i8* %"$adtval_2744_salloc" to %CName_Cons_ByStr20* - %"$adtgep_2745" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2744", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2745", align 1 - %"$adtgep_2746" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2744", i32 0, i32 1 - store [20 x i8] %"$initialOwner_2742", [20 x i8]* %"$adtgep_2746", align 1 - %"$adtgep_2747" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2744", i32 0, i32 2 - store %TName_List_ByStr20* %"$ud-registry.nilByStr20_2743", %TName_List_ByStr20** %"$adtgep_2747", align 8 - %"$adtptr_2748" = bitcast %CName_Cons_ByStr20* %"$adtval_2744" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_2748", %TName_List_ByStr20** %"$admins_276", align 8 - %"$execptr_load_2749" = load i8*, i8** @_execptr, align 8 - %"$$admins_276_2751" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$admins_276", align 8 - %"$update_value_2752" = bitcast %TName_List_ByStr20* %"$$admins_276_2751" to i8* - call void @_update_field(i8* %"$execptr_load_2749", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2750", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i32 0, i8* null, i8* %"$update_value_2752") + %"$gasrem_2220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2221" = icmp ugt i64 1, %"$gasrem_2220" + br i1 %"$gascmp_2221", label %"$out_of_gas_2222", label %"$have_gas_2223" + +"$out_of_gas_2222": ; preds = %"$have_gas_2218" + call void @_out_of_gas() + br label %"$have_gas_2223" + +"$have_gas_2223": ; preds = %"$out_of_gas_2222", %"$have_gas_2218" + %"$consume_2224" = sub i64 %"$gasrem_2220", 1 + store i64 %"$consume_2224", i64* @_gasrem, align 8 + %"$initialOwner_2225" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 + %"$ud-registry.zeroByStr20_2226" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + %"$adtval_2227_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2227_salloc" = call i8* @_salloc(i8* %"$adtval_2227_load", i64 41) + %"$adtval_2227" = bitcast i8* %"$adtval_2227_salloc" to %CName_ud-registry.Record* + %"$adtgep_2228" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2227", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2228", align 1 + %"$adtgep_2229" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2227", i32 0, i32 1 + store [20 x i8] %"$initialOwner_2225", [20 x i8]* %"$adtgep_2229", align 1 + %"$adtgep_2230" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_2227", i32 0, i32 2 + store [20 x i8] %"$ud-registry.zeroByStr20_2226", [20 x i8]* %"$adtgep_2230", align 1 + %"$adtptr_2231" = bitcast %CName_ud-registry.Record* %"$adtval_2227" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_2231", %TName_ud-registry.Record** %rootRecord, align 8 + %"$empty_2232" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 + %"$$empty_2232_2233" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_2232" to i8* + %"$_lengthof_call_2234" = call i64 @_lengthof(%_TyDescrTy_Typ* @"$TyDescr_Map_208", i8* %"$$empty_2232_2233") + %"$gasadd_2235" = add i64 1, %"$_lengthof_call_2234" + %"$gasrem_2236" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2237" = icmp ugt i64 %"$gasadd_2235", %"$gasrem_2236" + br i1 %"$gascmp_2237", label %"$out_of_gas_2238", label %"$have_gas_2239" + +"$out_of_gas_2238": ; preds = %"$have_gas_2223" + call void @_out_of_gas() + br label %"$have_gas_2239" + +"$have_gas_2239": ; preds = %"$out_of_gas_2238", %"$have_gas_2223" + %"$consume_2240" = sub i64 %"$gasrem_2236", %"$gasadd_2235" + store i64 %"$consume_2240", i64* @_gasrem, align 8 + %"$execptr_load_2241" = load i8*, i8** @_execptr, align 8 + %"$empty_2242" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %empty, align 8 + %"$$empty_2242_2243" = bitcast %Map_ByStr32_ud-registry.Record* %"$empty_2242" to i8* + %"$put_rootNode_2244" = alloca [32 x i8], align 1 + %"$rootNode_2245" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 + store [32 x i8] %"$rootNode_2245", [32 x i8]* %"$put_rootNode_2244", align 1 + %"$$put_rootNode_2244_2246" = bitcast [32 x i8]* %"$put_rootNode_2244" to i8* + %"$rootRecord_2247" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %rootRecord, align 8 + %"$$rootRecord_2247_2248" = bitcast %TName_ud-registry.Record* %"$rootRecord_2247" to i8* + %"$put_call_2249" = call i8* @_put(i8* %"$execptr_load_2241", %_TyDescrTy_Typ* @"$TyDescr_Map_208", i8* %"$$empty_2242_2243", i8* %"$$put_rootNode_2244_2246", i8* %"$$rootRecord_2247_2248") + %"$put_2250" = bitcast i8* %"$put_call_2249" to %Map_ByStr32_ud-registry.Record* + store %Map_ByStr32_ud-registry.Record* %"$put_2250", %Map_ByStr32_ud-registry.Record** %"$records_155", align 8 + %"$execptr_load_2251" = load i8*, i8** @_execptr, align 8 + %"$$records_155_2253" = load %Map_ByStr32_ud-registry.Record*, %Map_ByStr32_ud-registry.Record** %"$records_155", align 8 + %"$update_value_2254" = bitcast %Map_ByStr32_ud-registry.Record* %"$$records_155_2253" to i8* + call void @_update_field(i8* %"$execptr_load_2251", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_2252", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 0, i8* null, i8* %"$update_value_2254") + %"$registrar_156" = alloca [20 x i8], align 1 + %"$gasrem_2255" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2256" = icmp ugt i64 1, %"$gasrem_2255" + br i1 %"$gascmp_2256", label %"$out_of_gas_2257", label %"$have_gas_2258" + +"$out_of_gas_2257": ; preds = %"$have_gas_2239" + call void @_out_of_gas() + br label %"$have_gas_2258" + +"$have_gas_2258": ; preds = %"$out_of_gas_2257", %"$have_gas_2239" + %"$consume_2259" = sub i64 %"$gasrem_2255", 1 + store i64 %"$consume_2259", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_2260" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_2260", [20 x i8]* %"$registrar_156", align 1 + %"$execptr_load_2261" = load i8*, i8** @_execptr, align 8 + %"$$registrar_156_2263" = load [20 x i8], [20 x i8]* %"$registrar_156", align 1 + %"$update_value_2264" = alloca [20 x i8], align 1 + store [20 x i8] %"$$registrar_156_2263", [20 x i8]* %"$update_value_2264", align 1 + %"$update_value_2265" = bitcast [20 x i8]* %"$update_value_2264" to i8* + call void @_update_field(i8* %"$execptr_load_2261", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_2262", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i32 0, i8* null, i8* %"$update_value_2265") + %"$approvals_157" = alloca %Map_ByStr32_ByStr20*, align 8 + %"$gasrem_2266" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2267" = icmp ugt i64 1, %"$gasrem_2266" + br i1 %"$gascmp_2267", label %"$out_of_gas_2268", label %"$have_gas_2269" + +"$out_of_gas_2268": ; preds = %"$have_gas_2258" + call void @_out_of_gas() + br label %"$have_gas_2269" + +"$have_gas_2269": ; preds = %"$out_of_gas_2268", %"$have_gas_2258" + %"$consume_2270" = sub i64 %"$gasrem_2266", 1 + store i64 %"$consume_2270", i64* @_gasrem, align 8 + %"$execptr_load_2271" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2272" = call i8* @_new_empty_map(i8* %"$execptr_load_2271") + %"$_new_empty_map_2273" = bitcast i8* %"$_new_empty_map_call_2272" to %Map_ByStr32_ByStr20* + store %Map_ByStr32_ByStr20* %"$_new_empty_map_2273", %Map_ByStr32_ByStr20** %"$approvals_157", align 8 + %"$execptr_load_2274" = load i8*, i8** @_execptr, align 8 + %"$$approvals_157_2276" = load %Map_ByStr32_ByStr20*, %Map_ByStr32_ByStr20** %"$approvals_157", align 8 + %"$update_value_2277" = bitcast %Map_ByStr32_ByStr20* %"$$approvals_157_2276" to i8* + call void @_update_field(i8* %"$execptr_load_2274", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_2275", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 0, i8* null, i8* %"$update_value_2277") + %"$operators_158" = alloca %"Map_ByStr20_List_(ByStr20)"*, align 8 + %"$gasrem_2278" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2279" = icmp ugt i64 1, %"$gasrem_2278" + br i1 %"$gascmp_2279", label %"$out_of_gas_2280", label %"$have_gas_2281" + +"$out_of_gas_2280": ; preds = %"$have_gas_2269" + call void @_out_of_gas() + br label %"$have_gas_2281" + +"$have_gas_2281": ; preds = %"$out_of_gas_2280", %"$have_gas_2269" + %"$consume_2282" = sub i64 %"$gasrem_2278", 1 + store i64 %"$consume_2282", i64* @_gasrem, align 8 + %"$execptr_load_2283" = load i8*, i8** @_execptr, align 8 + %"$_new_empty_map_call_2284" = call i8* @_new_empty_map(i8* %"$execptr_load_2283") + %"$_new_empty_map_2285" = bitcast i8* %"$_new_empty_map_call_2284" to %"Map_ByStr20_List_(ByStr20)"* + store %"Map_ByStr20_List_(ByStr20)"* %"$_new_empty_map_2285", %"Map_ByStr20_List_(ByStr20)"** %"$operators_158", align 8 + %"$execptr_load_2286" = load i8*, i8** @_execptr, align 8 + %"$$operators_158_2288" = load %"Map_ByStr20_List_(ByStr20)"*, %"Map_ByStr20_List_(ByStr20)"** %"$operators_158", align 8 + %"$update_value_2289" = bitcast %"Map_ByStr20_List_(ByStr20)"* %"$$operators_158_2288" to i8* + call void @_update_field(i8* %"$execptr_load_2286", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_2287", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 0, i8* null, i8* %"$update_value_2289") + %"$admins_159" = alloca %TName_List_ByStr20*, align 8 + %"$gasrem_2290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2291" = icmp ugt i64 1, %"$gasrem_2290" + br i1 %"$gascmp_2291", label %"$out_of_gas_2292", label %"$have_gas_2293" + +"$out_of_gas_2292": ; preds = %"$have_gas_2281" + call void @_out_of_gas() + br label %"$have_gas_2293" + +"$have_gas_2293": ; preds = %"$out_of_gas_2292", %"$have_gas_2281" + %"$consume_2294" = sub i64 %"$gasrem_2290", 1 + store i64 %"$consume_2294", i64* @_gasrem, align 8 + %"$initialOwner_2295" = load [20 x i8], [20 x i8]* @_cparam_initialOwner, align 1 + %"$ud-registry.nilByStr20_2296" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 + %"$adtval_2297_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2297_salloc" = call i8* @_salloc(i8* %"$adtval_2297_load", i64 29) + %"$adtval_2297" = bitcast i8* %"$adtval_2297_salloc" to %CName_Cons_ByStr20* + %"$adtgep_2298" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2297", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2298", align 1 + %"$adtgep_2299" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2297", i32 0, i32 1 + store [20 x i8] %"$initialOwner_2295", [20 x i8]* %"$adtgep_2299", align 1 + %"$adtgep_2300" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2297", i32 0, i32 2 + store %TName_List_ByStr20* %"$ud-registry.nilByStr20_2296", %TName_List_ByStr20** %"$adtgep_2300", align 8 + %"$adtptr_2301" = bitcast %CName_Cons_ByStr20* %"$adtval_2297" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_2301", %TName_List_ByStr20** %"$admins_159", align 8 + %"$execptr_load_2302" = load i8*, i8** @_execptr, align 8 + %"$$admins_159_2304" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$admins_159", align 8 + %"$update_value_2305" = bitcast %TName_List_ByStr20* %"$$admins_159_2304" to i8* + call void @_update_field(i8* %"$execptr_load_2302", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2303", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i32 0, i8* null, i8* %"$update_value_2305") ret void } @@ -5106,447 +4437,402 @@ declare i8* @_put(i8*, %_TyDescrTy_Typ*, i8*, i8*, i8*) declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) -define internal void @"$setAdmin_2753"(%Uint128 %_amount, [20 x i8]* %"$_origin_2754", [20 x i8]* %"$_sender_2755", [20 x i8]* %"$address_2756", %TName_Bool* %isApproved) { +define internal void @"$setAdmin_2306"(%Uint128 %_amount, [20 x i8]* %"$_origin_2307", [20 x i8]* %"$_sender_2308", [20 x i8]* %"$address_2309", %TName_Bool* %isApproved) { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2754", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2755", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_2756", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2307", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2308", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_2309", align 1 %currentAdmins = alloca %TName_List_ByStr20*, align 8 - %"$execptr_load_2758" = load i8*, i8** @_execptr, align 8 - %"$currentAdmins_call_2759" = call i8* @_fetch_field(i8* %"$execptr_load_2758", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2757", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i32 0, i8* null, i32 1) - %"$currentAdmins_2760" = bitcast i8* %"$currentAdmins_call_2759" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$currentAdmins_2760", %TName_List_ByStr20** %currentAdmins, align 8 - %"$currentAdmins_2761" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$$currentAdmins_2761_2762" = bitcast %TName_List_ByStr20* %"$currentAdmins_2761" to i8* - %"$_literal_cost_call_2763" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i8* %"$$currentAdmins_2761_2762") - %"$gasadd_2764" = add i64 %"$_literal_cost_call_2763", 0 - %"$gasrem_2765" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2766" = icmp ugt i64 %"$gasadd_2764", %"$gasrem_2765" - br i1 %"$gascmp_2766", label %"$out_of_gas_2767", label %"$have_gas_2768" - -"$out_of_gas_2767": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_2768" - -"$have_gas_2768": ; preds = %"$out_of_gas_2767", %entry - %"$consume_2769" = sub i64 %"$gasrem_2765", %"$gasadd_2764" - store i64 %"$consume_2769", i64* @_gasrem, align 8 - %"$gasrem_2770" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2771" = icmp ugt i64 1, %"$gasrem_2770" - br i1 %"$gascmp_2771", label %"$out_of_gas_2772", label %"$have_gas_2773" - -"$out_of_gas_2772": ; preds = %"$have_gas_2768" - call void @_out_of_gas() - br label %"$have_gas_2773" - -"$have_gas_2773": ; preds = %"$out_of_gas_2772", %"$have_gas_2768" - %"$consume_2774" = sub i64 %"$gasrem_2770", 1 - store i64 %"$consume_2774", i64* @_gasrem, align 8 + %"$execptr_load_2311" = load i8*, i8** @_execptr, align 8 + %"$currentAdmins_call_2312" = call i8* @_fetch_field(i8* %"$execptr_load_2311", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2310", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i32 0, i8* null, i32 1) + %"$currentAdmins_2313" = bitcast i8* %"$currentAdmins_call_2312" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$currentAdmins_2313", %TName_List_ByStr20** %currentAdmins, align 8 + %"$currentAdmins_2314" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$$currentAdmins_2314_2315" = bitcast %TName_List_ByStr20* %"$currentAdmins_2314" to i8* + %"$_literal_cost_call_2316" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i8* %"$$currentAdmins_2314_2315") + %"$gasadd_2317" = add i64 %"$_literal_cost_call_2316", 0 + %"$gasrem_2318" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2319" = icmp ugt i64 %"$gasadd_2317", %"$gasrem_2318" + br i1 %"$gascmp_2319", label %"$out_of_gas_2320", label %"$have_gas_2321" + +"$out_of_gas_2320": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2321" + +"$have_gas_2321": ; preds = %"$out_of_gas_2320", %entry + %"$consume_2322" = sub i64 %"$gasrem_2318", %"$gasadd_2317" + store i64 %"$consume_2322", i64* @_gasrem, align 8 + %"$gasrem_2323" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2324" = icmp ugt i64 1, %"$gasrem_2323" + br i1 %"$gascmp_2324", label %"$out_of_gas_2325", label %"$have_gas_2326" + +"$out_of_gas_2325": ; preds = %"$have_gas_2321" + call void @_out_of_gas() + br label %"$have_gas_2326" + +"$have_gas_2326": ; preds = %"$out_of_gas_2325", %"$have_gas_2321" + %"$consume_2327" = sub i64 %"$gasrem_2323", 1 + store i64 %"$consume_2327", i64* @_gasrem, align 8 %isSenderAdmin = alloca %TName_Bool*, align 8 - %"$gasrem_2775" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2776" = icmp ugt i64 1, %"$gasrem_2775" - br i1 %"$gascmp_2776", label %"$out_of_gas_2777", label %"$have_gas_2778" - -"$out_of_gas_2777": ; preds = %"$have_gas_2773" - call void @_out_of_gas() - br label %"$have_gas_2778" - -"$have_gas_2778": ; preds = %"$out_of_gas_2777", %"$have_gas_2773" - %"$consume_2779" = sub i64 %"$gasrem_2775", 1 - store i64 %"$consume_2779", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Contains_54" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_2780" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8 - %"$ud-registry.listByStr20Contains_fptr_2781" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2780", 0 - %"$ud-registry.listByStr20Contains_envptr_2782" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_2780", 1 - %"$currentAdmins_2783" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Contains_call_2784" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_2781"(i8* %"$ud-registry.listByStr20Contains_envptr_2782", %TName_List_ByStr20* %"$currentAdmins_2783") - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_2784", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_54", align 8 - %"$ud-registry.listByStr20Contains_55" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_54_2785" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_54", align 8 - %"$$ud-registry.listByStr20Contains_54_fptr_2786" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_54_2785", 0 - %"$$ud-registry.listByStr20Contains_54_envptr_2787" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_54_2785", 1 - %"$$ud-registry.listByStr20Contains_54__sender_2788" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_54__sender_2788", align 1 - %"$$ud-registry.listByStr20Contains_54_call_2789" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_54_fptr_2786"(i8* %"$$ud-registry.listByStr20Contains_54_envptr_2787", [20 x i8]* %"$$ud-registry.listByStr20Contains_54__sender_2788") - store %TName_Bool* %"$$ud-registry.listByStr20Contains_54_call_2789", %TName_Bool** %"$ud-registry.listByStr20Contains_55", align 8 - %"$$ud-registry.listByStr20Contains_55_2790" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_55", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_55_2790", %TName_Bool** %isSenderAdmin, align 8 - %"$gasrem_2791" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2792" = icmp ugt i64 2, %"$gasrem_2791" - br i1 %"$gascmp_2792", label %"$out_of_gas_2793", label %"$have_gas_2794" - -"$out_of_gas_2793": ; preds = %"$have_gas_2778" - call void @_out_of_gas() - br label %"$have_gas_2794" - -"$have_gas_2794": ; preds = %"$out_of_gas_2793", %"$have_gas_2778" - %"$consume_2795" = sub i64 %"$gasrem_2791", 2 - store i64 %"$consume_2795", i64* @_gasrem, align 8 - %"$isSenderAdmin_2797" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$isSenderAdmin_tag_2798" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_2797", i32 0, i32 0 - %"$isSenderAdmin_tag_2799" = load i8, i8* %"$isSenderAdmin_tag_2798", align 1 - switch i8 %"$isSenderAdmin_tag_2799", label %"$empty_default_2800" [ - i8 0, label %"$True_2801" - i8 1, label %"$False_2943" + %"$gasrem_2328" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2329" = icmp ugt i64 1, %"$gasrem_2328" + br i1 %"$gascmp_2329", label %"$out_of_gas_2330", label %"$have_gas_2331" + +"$out_of_gas_2330": ; preds = %"$have_gas_2326" + call void @_out_of_gas() + br label %"$have_gas_2331" + +"$have_gas_2331": ; preds = %"$out_of_gas_2330", %"$have_gas_2326" + %"$consume_2332" = sub i64 %"$gasrem_2328", 1 + store i64 %"$consume_2332", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Contains_2333" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8 + %"$ud-registry.listByStr20Contains_fptr_2334" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_2333", 0 + %"$ud-registry.listByStr20Contains_envptr_2335" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_2333", 1 + %"$currentAdmins_2336" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Contains__sender_2337" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.listByStr20Contains__sender_2337", align 1 + %"$ud-registry.listByStr20Contains_call_2338" = call %TName_Bool* %"$ud-registry.listByStr20Contains_fptr_2334"(i8* %"$ud-registry.listByStr20Contains_envptr_2335", %TName_List_ByStr20* %"$currentAdmins_2336", [20 x i8]* %"$ud-registry.listByStr20Contains__sender_2337") + store %TName_Bool* %"$ud-registry.listByStr20Contains_call_2338", %TName_Bool** %isSenderAdmin, align 8 + %"$gasrem_2339" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2340" = icmp ugt i64 2, %"$gasrem_2339" + br i1 %"$gascmp_2340", label %"$out_of_gas_2341", label %"$have_gas_2342" + +"$out_of_gas_2341": ; preds = %"$have_gas_2331" + call void @_out_of_gas() + br label %"$have_gas_2342" + +"$have_gas_2342": ; preds = %"$out_of_gas_2341", %"$have_gas_2331" + %"$consume_2343" = sub i64 %"$gasrem_2339", 2 + store i64 %"$consume_2343", i64* @_gasrem, align 8 + %"$isSenderAdmin_2345" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$isSenderAdmin_tag_2346" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderAdmin_2345", i32 0, i32 0 + %"$isSenderAdmin_tag_2347" = load i8, i8* %"$isSenderAdmin_tag_2346", align 1 + switch i8 %"$isSenderAdmin_tag_2347", label %"$empty_default_2348" [ + i8 0, label %"$True_2349" + i8 1, label %"$False_2471" ] -"$True_2801": ; preds = %"$have_gas_2794" - %"$isSenderAdmin_2802" = bitcast %TName_Bool* %"$isSenderAdmin_2797" to %CName_True* - %"$gasrem_2803" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2804" = icmp ugt i64 1, %"$gasrem_2803" - br i1 %"$gascmp_2804", label %"$out_of_gas_2805", label %"$have_gas_2806" +"$True_2349": ; preds = %"$have_gas_2342" + %"$isSenderAdmin_2350" = bitcast %TName_Bool* %"$isSenderAdmin_2345" to %CName_True* + %"$gasrem_2351" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2352" = icmp ugt i64 1, %"$gasrem_2351" + br i1 %"$gascmp_2352", label %"$out_of_gas_2353", label %"$have_gas_2354" -"$out_of_gas_2805": ; preds = %"$True_2801" +"$out_of_gas_2353": ; preds = %"$True_2349" call void @_out_of_gas() - br label %"$have_gas_2806" + br label %"$have_gas_2354" -"$have_gas_2806": ; preds = %"$out_of_gas_2805", %"$True_2801" - %"$consume_2807" = sub i64 %"$gasrem_2803", 1 - store i64 %"$consume_2807", i64* @_gasrem, align 8 +"$have_gas_2354": ; preds = %"$out_of_gas_2353", %"$True_2349" + %"$consume_2355" = sub i64 %"$gasrem_2351", 1 + store i64 %"$consume_2355", i64* @_gasrem, align 8 %needsToChange = alloca %TName_Bool*, align 8 - %"$gasrem_2808" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2809" = icmp ugt i64 1, %"$gasrem_2808" - br i1 %"$gascmp_2809", label %"$out_of_gas_2810", label %"$have_gas_2811" + %"$gasrem_2356" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2357" = icmp ugt i64 1, %"$gasrem_2356" + br i1 %"$gascmp_2357", label %"$out_of_gas_2358", label %"$have_gas_2359" -"$out_of_gas_2810": ; preds = %"$have_gas_2806" +"$out_of_gas_2358": ; preds = %"$have_gas_2354" call void @_out_of_gas() - br label %"$have_gas_2811" + br label %"$have_gas_2359" -"$have_gas_2811": ; preds = %"$out_of_gas_2810", %"$have_gas_2806" - %"$consume_2812" = sub i64 %"$gasrem_2808", 1 - store i64 %"$consume_2812", i64* @_gasrem, align 8 +"$have_gas_2359": ; preds = %"$out_of_gas_2358", %"$have_gas_2354" + %"$consume_2360" = sub i64 %"$gasrem_2356", 1 + store i64 %"$consume_2360", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_2813" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2814" = icmp ugt i64 1, %"$gasrem_2813" - br i1 %"$gascmp_2814", label %"$out_of_gas_2815", label %"$have_gas_2816" - -"$out_of_gas_2815": ; preds = %"$have_gas_2811" - call void @_out_of_gas() - br label %"$have_gas_2816" - -"$have_gas_2816": ; preds = %"$out_of_gas_2815", %"$have_gas_2811" - %"$consume_2817" = sub i64 %"$gasrem_2813", 1 - store i64 %"$consume_2817", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Excludes_49" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Excludes_2818" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Excludes, align 8 - %"$ud-registry.listByStr20Excludes_fptr_2819" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_2818", 0 - %"$ud-registry.listByStr20Excludes_envptr_2820" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_2818", 1 - %"$currentAdmins_2821" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Excludes_call_2822" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_fptr_2819"(i8* %"$ud-registry.listByStr20Excludes_envptr_2820", %TName_List_ByStr20* %"$currentAdmins_2821") - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_call_2822", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_49", align 8 - %"$ud-registry.listByStr20Excludes_50" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Excludes_49_2823" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_49", align 8 - %"$$ud-registry.listByStr20Excludes_49_fptr_2824" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_49_2823", 0 - %"$$ud-registry.listByStr20Excludes_49_envptr_2825" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_49_2823", 1 - %"$$ud-registry.listByStr20Excludes_49_address_2826" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20Excludes_49_address_2826", align 1 - %"$$ud-registry.listByStr20Excludes_49_call_2827" = call %TName_Bool* %"$$ud-registry.listByStr20Excludes_49_fptr_2824"(i8* %"$$ud-registry.listByStr20Excludes_49_envptr_2825", [20 x i8]* %"$$ud-registry.listByStr20Excludes_49_address_2826") - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_49_call_2827", %TName_Bool** %"$ud-registry.listByStr20Excludes_50", align 8 - %"$$ud-registry.listByStr20Excludes_50_2828" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Excludes_50", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_50_2828", %TName_Bool** %b, align 8 - %"$gasrem_2829" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2830" = icmp ugt i64 1, %"$gasrem_2829" - br i1 %"$gascmp_2830", label %"$out_of_gas_2831", label %"$have_gas_2832" - -"$out_of_gas_2831": ; preds = %"$have_gas_2816" - call void @_out_of_gas() - br label %"$have_gas_2832" - -"$have_gas_2832": ; preds = %"$out_of_gas_2831", %"$have_gas_2816" - %"$consume_2833" = sub i64 %"$gasrem_2829", 1 - store i64 %"$consume_2833", i64* @_gasrem, align 8 - %"$ud-registry.xandb_51" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-registry.xandb_2834" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8 - %"$ud-registry.xandb_fptr_2835" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2834", 0 - %"$ud-registry.xandb_envptr_2836" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2834", 1 - %"$b_2837" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$ud-registry.xandb_call_2838" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_fptr_2835"(i8* %"$ud-registry.xandb_envptr_2836", %TName_Bool* %"$b_2837") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_call_2838", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_51", align 8 - %"$ud-registry.xandb_52" = alloca %TName_Bool*, align 8 - %"$$ud-registry.xandb_51_2839" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_51", align 8 - %"$$ud-registry.xandb_51_fptr_2840" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_51_2839", 0 - %"$$ud-registry.xandb_51_envptr_2841" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_51_2839", 1 - %"$$ud-registry.xandb_51_call_2842" = call %TName_Bool* %"$$ud-registry.xandb_51_fptr_2840"(i8* %"$$ud-registry.xandb_51_envptr_2841", %TName_Bool* %isApproved) - store %TName_Bool* %"$$ud-registry.xandb_51_call_2842", %TName_Bool** %"$ud-registry.xandb_52", align 8 - %"$$ud-registry.xandb_52_2843" = load %TName_Bool*, %TName_Bool** %"$ud-registry.xandb_52", align 8 - store %TName_Bool* %"$$ud-registry.xandb_52_2843", %TName_Bool** %needsToChange, align 8 - %"$gasrem_2844" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2845" = icmp ugt i64 2, %"$gasrem_2844" - br i1 %"$gascmp_2845", label %"$out_of_gas_2846", label %"$have_gas_2847" - -"$out_of_gas_2846": ; preds = %"$have_gas_2832" - call void @_out_of_gas() - br label %"$have_gas_2847" - -"$have_gas_2847": ; preds = %"$out_of_gas_2846", %"$have_gas_2832" - %"$consume_2848" = sub i64 %"$gasrem_2844", 2 - store i64 %"$consume_2848", i64* @_gasrem, align 8 - %"$needsToChange_2850" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 - %"$needsToChange_tag_2851" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_2850", i32 0, i32 0 - %"$needsToChange_tag_2852" = load i8, i8* %"$needsToChange_tag_2851", align 1 - switch i8 %"$needsToChange_tag_2852", label %"$default_2853" [ - i8 0, label %"$True_2854" + %"$gasrem_2361" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2362" = icmp ugt i64 1, %"$gasrem_2361" + br i1 %"$gascmp_2362", label %"$out_of_gas_2363", label %"$have_gas_2364" + +"$out_of_gas_2363": ; preds = %"$have_gas_2359" + call void @_out_of_gas() + br label %"$have_gas_2364" + +"$have_gas_2364": ; preds = %"$out_of_gas_2363", %"$have_gas_2359" + %"$consume_2365" = sub i64 %"$gasrem_2361", 1 + store i64 %"$consume_2365", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Excludes_2366" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Excludes, align 8 + %"$ud-registry.listByStr20Excludes_fptr_2367" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_2366", 0 + %"$ud-registry.listByStr20Excludes_envptr_2368" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_2366", 1 + %"$currentAdmins_2369" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Excludes_address_2370" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.listByStr20Excludes_address_2370", align 1 + %"$ud-registry.listByStr20Excludes_call_2371" = call %TName_Bool* %"$ud-registry.listByStr20Excludes_fptr_2367"(i8* %"$ud-registry.listByStr20Excludes_envptr_2368", %TName_List_ByStr20* %"$currentAdmins_2369", [20 x i8]* %"$ud-registry.listByStr20Excludes_address_2370") + store %TName_Bool* %"$ud-registry.listByStr20Excludes_call_2371", %TName_Bool** %b, align 8 + %"$gasrem_2372" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2373" = icmp ugt i64 1, %"$gasrem_2372" + br i1 %"$gascmp_2373", label %"$out_of_gas_2374", label %"$have_gas_2375" + +"$out_of_gas_2374": ; preds = %"$have_gas_2364" + call void @_out_of_gas() + br label %"$have_gas_2375" + +"$have_gas_2375": ; preds = %"$out_of_gas_2374", %"$have_gas_2364" + %"$consume_2376" = sub i64 %"$gasrem_2372", 1 + store i64 %"$consume_2376", i64* @_gasrem, align 8 + %"$ud-registry.xandb_2377" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8 + %"$ud-registry.xandb_fptr_2378" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2377", 0 + %"$ud-registry.xandb_envptr_2379" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2377", 1 + %"$b_2380" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$ud-registry.xandb_call_2381" = call %TName_Bool* %"$ud-registry.xandb_fptr_2378"(i8* %"$ud-registry.xandb_envptr_2379", %TName_Bool* %"$b_2380", %TName_Bool* %isApproved) + store %TName_Bool* %"$ud-registry.xandb_call_2381", %TName_Bool** %needsToChange, align 8 + %"$gasrem_2382" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2383" = icmp ugt i64 2, %"$gasrem_2382" + br i1 %"$gascmp_2383", label %"$out_of_gas_2384", label %"$have_gas_2385" + +"$out_of_gas_2384": ; preds = %"$have_gas_2375" + call void @_out_of_gas() + br label %"$have_gas_2385" + +"$have_gas_2385": ; preds = %"$out_of_gas_2384", %"$have_gas_2375" + %"$consume_2386" = sub i64 %"$gasrem_2382", 2 + store i64 %"$consume_2386", i64* @_gasrem, align 8 + %"$needsToChange_2388" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 + %"$needsToChange_tag_2389" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_2388", i32 0, i32 0 + %"$needsToChange_tag_2390" = load i8, i8* %"$needsToChange_tag_2389", align 1 + switch i8 %"$needsToChange_tag_2390", label %"$default_2391" [ + i8 0, label %"$True_2392" ] -"$True_2854": ; preds = %"$have_gas_2847" - %"$needsToChange_2855" = bitcast %TName_Bool* %"$needsToChange_2850" to %CName_True* - %"$gasrem_2856" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2857" = icmp ugt i64 1, %"$gasrem_2856" - br i1 %"$gascmp_2857", label %"$out_of_gas_2858", label %"$have_gas_2859" +"$True_2392": ; preds = %"$have_gas_2385" + %"$needsToChange_2393" = bitcast %TName_Bool* %"$needsToChange_2388" to %CName_True* + %"$gasrem_2394" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2395" = icmp ugt i64 1, %"$gasrem_2394" + br i1 %"$gascmp_2395", label %"$out_of_gas_2396", label %"$have_gas_2397" -"$out_of_gas_2858": ; preds = %"$True_2854" +"$out_of_gas_2396": ; preds = %"$True_2392" call void @_out_of_gas() - br label %"$have_gas_2859" + br label %"$have_gas_2397" -"$have_gas_2859": ; preds = %"$out_of_gas_2858", %"$True_2854" - %"$consume_2860" = sub i64 %"$gasrem_2856", 1 - store i64 %"$consume_2860", i64* @_gasrem, align 8 +"$have_gas_2397": ; preds = %"$out_of_gas_2396", %"$True_2392" + %"$consume_2398" = sub i64 %"$gasrem_2394", 1 + store i64 %"$consume_2398", i64* @_gasrem, align 8 %newAdmins = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_2861" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2862" = icmp ugt i64 2, %"$gasrem_2861" - br i1 %"$gascmp_2862", label %"$out_of_gas_2863", label %"$have_gas_2864" - -"$out_of_gas_2863": ; preds = %"$have_gas_2859" - call void @_out_of_gas() - br label %"$have_gas_2864" - -"$have_gas_2864": ; preds = %"$out_of_gas_2863", %"$have_gas_2859" - %"$consume_2865" = sub i64 %"$gasrem_2861", 2 - store i64 %"$consume_2865", i64* @_gasrem, align 8 - %"$isApproved_tag_2867" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 - %"$isApproved_tag_2868" = load i8, i8* %"$isApproved_tag_2867", align 1 - switch i8 %"$isApproved_tag_2868", label %"$empty_default_2869" [ - i8 0, label %"$True_2870" - i8 1, label %"$False_2883" + %"$gasrem_2399" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2400" = icmp ugt i64 2, %"$gasrem_2399" + br i1 %"$gascmp_2400", label %"$out_of_gas_2401", label %"$have_gas_2402" + +"$out_of_gas_2401": ; preds = %"$have_gas_2397" + call void @_out_of_gas() + br label %"$have_gas_2402" + +"$have_gas_2402": ; preds = %"$out_of_gas_2401", %"$have_gas_2397" + %"$consume_2403" = sub i64 %"$gasrem_2399", 2 + store i64 %"$consume_2403", i64* @_gasrem, align 8 + %"$isApproved_tag_2405" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 + %"$isApproved_tag_2406" = load i8, i8* %"$isApproved_tag_2405", align 1 + switch i8 %"$isApproved_tag_2406", label %"$empty_default_2407" [ + i8 0, label %"$True_2408" + i8 1, label %"$False_2421" ] -"$True_2870": ; preds = %"$have_gas_2864" - %"$isApproved_2871" = bitcast %TName_Bool* %isApproved to %CName_True* - %"$gasrem_2872" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2873" = icmp ugt i64 1, %"$gasrem_2872" - br i1 %"$gascmp_2873", label %"$out_of_gas_2874", label %"$have_gas_2875" - -"$out_of_gas_2874": ; preds = %"$True_2870" - call void @_out_of_gas() - br label %"$have_gas_2875" - -"$have_gas_2875": ; preds = %"$out_of_gas_2874", %"$True_2870" - %"$consume_2876" = sub i64 %"$gasrem_2872", 1 - store i64 %"$consume_2876", i64* @_gasrem, align 8 - %"$currentAdmins_2877" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$adtval_2878_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_2878_salloc" = call i8* @_salloc(i8* %"$adtval_2878_load", i64 29) - %"$adtval_2878" = bitcast i8* %"$adtval_2878_salloc" to %CName_Cons_ByStr20* - %"$adtgep_2879" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2878", i32 0, i32 0 - store i8 0, i8* %"$adtgep_2879", align 1 - %"$adtgep_2880" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2878", i32 0, i32 1 - store [20 x i8] %address, [20 x i8]* %"$adtgep_2880", align 1 - %"$adtgep_2881" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2878", i32 0, i32 2 - store %TName_List_ByStr20* %"$currentAdmins_2877", %TName_List_ByStr20** %"$adtgep_2881", align 8 - %"$adtptr_2882" = bitcast %CName_Cons_ByStr20* %"$adtval_2878" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_2882", %TName_List_ByStr20** %newAdmins, align 8 - br label %"$matchsucc_2866" - -"$False_2883": ; preds = %"$have_gas_2864" - %"$isApproved_2884" = bitcast %TName_Bool* %isApproved to %CName_False* - %"$gasrem_2885" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2886" = icmp ugt i64 1, %"$gasrem_2885" - br i1 %"$gascmp_2886", label %"$out_of_gas_2887", label %"$have_gas_2888" - -"$out_of_gas_2887": ; preds = %"$False_2883" - call void @_out_of_gas() - br label %"$have_gas_2888" - -"$have_gas_2888": ; preds = %"$out_of_gas_2887", %"$False_2883" - %"$consume_2889" = sub i64 %"$gasrem_2885", 1 - store i64 %"$consume_2889", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20FilterOut_47" = alloca { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20FilterOut_2890" = load { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8 - %"$ud-registry.listByStr20FilterOut_fptr_2891" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_2890", 0 - %"$ud-registry.listByStr20FilterOut_envptr_2892" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_2890", 1 - %"$currentAdmins_2893" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20FilterOut_call_2894" = call { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_fptr_2891"(i8* %"$ud-registry.listByStr20FilterOut_envptr_2892", %TName_List_ByStr20* %"$currentAdmins_2893") - store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_call_2894", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_47", align 8 - %"$ud-registry.listByStr20FilterOut_48" = alloca %TName_List_ByStr20*, align 8 - %"$$ud-registry.listByStr20FilterOut_47_2895" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_47", align 8 - %"$$ud-registry.listByStr20FilterOut_47_fptr_2896" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_47_2895", 0 - %"$$ud-registry.listByStr20FilterOut_47_envptr_2897" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_47_2895", 1 - %"$$ud-registry.listByStr20FilterOut_47_address_2898" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20FilterOut_47_address_2898", align 1 - %"$$ud-registry.listByStr20FilterOut_47_call_2899" = call %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_47_fptr_2896"(i8* %"$$ud-registry.listByStr20FilterOut_47_envptr_2897", [20 x i8]* %"$$ud-registry.listByStr20FilterOut_47_address_2898") - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_47_call_2899", %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_48", align 8 - %"$$ud-registry.listByStr20FilterOut_48_2900" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_48", align 8 - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_48_2900", %TName_List_ByStr20** %newAdmins, align 8 - br label %"$matchsucc_2866" - -"$empty_default_2869": ; preds = %"$have_gas_2864" - br label %"$matchsucc_2866" - -"$matchsucc_2866": ; preds = %"$have_gas_2888", %"$have_gas_2875", %"$empty_default_2869" - %"$newAdmins_2901" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 - %"$$newAdmins_2901_2902" = bitcast %TName_List_ByStr20* %"$newAdmins_2901" to i8* - %"$_literal_cost_call_2903" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i8* %"$$newAdmins_2901_2902") - %"$gasrem_2904" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2905" = icmp ugt i64 %"$_literal_cost_call_2903", %"$gasrem_2904" - br i1 %"$gascmp_2905", label %"$out_of_gas_2906", label %"$have_gas_2907" - -"$out_of_gas_2906": ; preds = %"$matchsucc_2866" - call void @_out_of_gas() - br label %"$have_gas_2907" - -"$have_gas_2907": ; preds = %"$out_of_gas_2906", %"$matchsucc_2866" - %"$consume_2908" = sub i64 %"$gasrem_2904", %"$_literal_cost_call_2903" - store i64 %"$consume_2908", i64* @_gasrem, align 8 - %"$execptr_load_2909" = load i8*, i8** @_execptr, align 8 - %"$newAdmins_2911" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 - %"$update_value_2912" = bitcast %TName_List_ByStr20* %"$newAdmins_2911" to i8* - call void @_update_field(i8* %"$execptr_load_2909", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2910", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i32 0, i8* null, i8* %"$update_value_2912") - %"$gasrem_2913" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2914" = icmp ugt i64 1, %"$gasrem_2913" - br i1 %"$gascmp_2914", label %"$out_of_gas_2915", label %"$have_gas_2916" - -"$out_of_gas_2915": ; preds = %"$have_gas_2907" - call void @_out_of_gas() - br label %"$have_gas_2916" - -"$have_gas_2916": ; preds = %"$out_of_gas_2915", %"$have_gas_2907" - %"$consume_2917" = sub i64 %"$gasrem_2913", 1 - store i64 %"$consume_2917", i64* @_gasrem, align 8 - %e = alloca i8*, align 8 - %"$gasrem_2918" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2919" = icmp ugt i64 1, %"$gasrem_2918" - br i1 %"$gascmp_2919", label %"$out_of_gas_2920", label %"$have_gas_2921" - -"$out_of_gas_2920": ; preds = %"$have_gas_2916" - call void @_out_of_gas() - br label %"$have_gas_2921" - -"$have_gas_2921": ; preds = %"$out_of_gas_2920", %"$have_gas_2916" - %"$consume_2922" = sub i64 %"$gasrem_2918", 1 - store i64 %"$consume_2922", i64* @_gasrem, align 8 - %"$ud-registry.eAdminSet_45" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-registry.eAdminSet_2923" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eAdminSet, align 8 - %"$ud-registry.eAdminSet_fptr_2924" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eAdminSet_2923", 0 - %"$ud-registry.eAdminSet_envptr_2925" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eAdminSet_2923", 1 - %"$ud-registry.eAdminSet_address_2926" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-registry.eAdminSet_address_2926", align 1 - %"$ud-registry.eAdminSet_call_2927" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_fptr_2924"(i8* %"$ud-registry.eAdminSet_envptr_2925", [20 x i8]* %"$ud-registry.eAdminSet_address_2926") - store { i8* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_call_2927", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eAdminSet_45", align 8 - %"$ud-registry.eAdminSet_46" = alloca i8*, align 8 - %"$$ud-registry.eAdminSet_45_2928" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eAdminSet_45", align 8 - %"$$ud-registry.eAdminSet_45_fptr_2929" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eAdminSet_45_2928", 0 - %"$$ud-registry.eAdminSet_45_envptr_2930" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eAdminSet_45_2928", 1 - %"$$ud-registry.eAdminSet_45_call_2931" = call i8* %"$$ud-registry.eAdminSet_45_fptr_2929"(i8* %"$$ud-registry.eAdminSet_45_envptr_2930", %TName_Bool* %isApproved) - store i8* %"$$ud-registry.eAdminSet_45_call_2931", i8** %"$ud-registry.eAdminSet_46", align 8 - %"$$ud-registry.eAdminSet_46_2932" = load i8*, i8** %"$ud-registry.eAdminSet_46", align 8 - store i8* %"$$ud-registry.eAdminSet_46_2932", i8** %e, align 8 - %"$e_2933" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_2935" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_2933") - %"$gasrem_2936" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2937" = icmp ugt i64 %"$_literal_cost_call_2935", %"$gasrem_2936" - br i1 %"$gascmp_2937", label %"$out_of_gas_2938", label %"$have_gas_2939" - -"$out_of_gas_2938": ; preds = %"$have_gas_2921" - call void @_out_of_gas() - br label %"$have_gas_2939" - -"$have_gas_2939": ; preds = %"$out_of_gas_2938", %"$have_gas_2921" - %"$consume_2940" = sub i64 %"$gasrem_2936", %"$_literal_cost_call_2935" - store i64 %"$consume_2940", i64* @_gasrem, align 8 - %"$execptr_load_2941" = load i8*, i8** @_execptr, align 8 - %"$e_2942" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_2941", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_2942") - br label %"$matchsucc_2849" +"$True_2408": ; preds = %"$have_gas_2402" + %"$isApproved_2409" = bitcast %TName_Bool* %isApproved to %CName_True* + %"$gasrem_2410" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2411" = icmp ugt i64 1, %"$gasrem_2410" + br i1 %"$gascmp_2411", label %"$out_of_gas_2412", label %"$have_gas_2413" + +"$out_of_gas_2412": ; preds = %"$True_2408" + call void @_out_of_gas() + br label %"$have_gas_2413" + +"$have_gas_2413": ; preds = %"$out_of_gas_2412", %"$True_2408" + %"$consume_2414" = sub i64 %"$gasrem_2410", 1 + store i64 %"$consume_2414", i64* @_gasrem, align 8 + %"$currentAdmins_2415" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$adtval_2416_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2416_salloc" = call i8* @_salloc(i8* %"$adtval_2416_load", i64 29) + %"$adtval_2416" = bitcast i8* %"$adtval_2416_salloc" to %CName_Cons_ByStr20* + %"$adtgep_2417" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2416", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2417", align 1 + %"$adtgep_2418" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2416", i32 0, i32 1 + store [20 x i8] %address, [20 x i8]* %"$adtgep_2418", align 1 + %"$adtgep_2419" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2416", i32 0, i32 2 + store %TName_List_ByStr20* %"$currentAdmins_2415", %TName_List_ByStr20** %"$adtgep_2419", align 8 + %"$adtptr_2420" = bitcast %CName_Cons_ByStr20* %"$adtval_2416" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_2420", %TName_List_ByStr20** %newAdmins, align 8 + br label %"$matchsucc_2404" + +"$False_2421": ; preds = %"$have_gas_2402" + %"$isApproved_2422" = bitcast %TName_Bool* %isApproved to %CName_False* + %"$gasrem_2423" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2424" = icmp ugt i64 1, %"$gasrem_2423" + br i1 %"$gascmp_2424", label %"$out_of_gas_2425", label %"$have_gas_2426" + +"$out_of_gas_2425": ; preds = %"$False_2421" + call void @_out_of_gas() + br label %"$have_gas_2426" + +"$have_gas_2426": ; preds = %"$out_of_gas_2425", %"$False_2421" + %"$consume_2427" = sub i64 %"$gasrem_2423", 1 + store i64 %"$consume_2427", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20FilterOut_2428" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8 + %"$ud-registry.listByStr20FilterOut_fptr_2429" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_2428", 0 + %"$ud-registry.listByStr20FilterOut_envptr_2430" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_2428", 1 + %"$currentAdmins_2431" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20FilterOut_address_2432" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.listByStr20FilterOut_address_2432", align 1 + %"$ud-registry.listByStr20FilterOut_call_2433" = call %TName_List_ByStr20* %"$ud-registry.listByStr20FilterOut_fptr_2429"(i8* %"$ud-registry.listByStr20FilterOut_envptr_2430", %TName_List_ByStr20* %"$currentAdmins_2431", [20 x i8]* %"$ud-registry.listByStr20FilterOut_address_2432") + store %TName_List_ByStr20* %"$ud-registry.listByStr20FilterOut_call_2433", %TName_List_ByStr20** %newAdmins, align 8 + br label %"$matchsucc_2404" + +"$empty_default_2407": ; preds = %"$have_gas_2402" + br label %"$matchsucc_2404" + +"$matchsucc_2404": ; preds = %"$have_gas_2426", %"$have_gas_2413", %"$empty_default_2407" + %"$newAdmins_2434" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 + %"$$newAdmins_2434_2435" = bitcast %TName_List_ByStr20* %"$newAdmins_2434" to i8* + %"$_literal_cost_call_2436" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i8* %"$$newAdmins_2434_2435") + %"$gasrem_2437" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2438" = icmp ugt i64 %"$_literal_cost_call_2436", %"$gasrem_2437" + br i1 %"$gascmp_2438", label %"$out_of_gas_2439", label %"$have_gas_2440" + +"$out_of_gas_2439": ; preds = %"$matchsucc_2404" + call void @_out_of_gas() + br label %"$have_gas_2440" + +"$have_gas_2440": ; preds = %"$out_of_gas_2439", %"$matchsucc_2404" + %"$consume_2441" = sub i64 %"$gasrem_2437", %"$_literal_cost_call_2436" + store i64 %"$consume_2441", i64* @_gasrem, align 8 + %"$execptr_load_2442" = load i8*, i8** @_execptr, align 8 + %"$newAdmins_2444" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newAdmins, align 8 + %"$update_value_2445" = bitcast %TName_List_ByStr20* %"$newAdmins_2444" to i8* + call void @_update_field(i8* %"$execptr_load_2442", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_2443", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i32 0, i8* null, i8* %"$update_value_2445") + %"$gasrem_2446" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2447" = icmp ugt i64 1, %"$gasrem_2446" + br i1 %"$gascmp_2447", label %"$out_of_gas_2448", label %"$have_gas_2449" + +"$out_of_gas_2448": ; preds = %"$have_gas_2440" + call void @_out_of_gas() + br label %"$have_gas_2449" -"$default_2853": ; preds = %"$have_gas_2847" +"$have_gas_2449": ; preds = %"$out_of_gas_2448", %"$have_gas_2440" + %"$consume_2450" = sub i64 %"$gasrem_2446", 1 + store i64 %"$consume_2450", i64* @_gasrem, align 8 + %e = alloca i8*, align 8 + %"$gasrem_2451" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2452" = icmp ugt i64 1, %"$gasrem_2451" + br i1 %"$gascmp_2452", label %"$out_of_gas_2453", label %"$have_gas_2454" + +"$out_of_gas_2453": ; preds = %"$have_gas_2449" + call void @_out_of_gas() + br label %"$have_gas_2454" + +"$have_gas_2454": ; preds = %"$out_of_gas_2453", %"$have_gas_2449" + %"$consume_2455" = sub i64 %"$gasrem_2451", 1 + store i64 %"$consume_2455", i64* @_gasrem, align 8 + %"$ud-registry.eAdminSet_2456" = load { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }, { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-registry.eAdminSet, align 8 + %"$ud-registry.eAdminSet_fptr_2457" = extractvalue { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_2456", 0 + %"$ud-registry.eAdminSet_envptr_2458" = extractvalue { i8* (i8*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-registry.eAdminSet_2456", 1 + %"$ud-registry.eAdminSet_address_2459" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.eAdminSet_address_2459", align 1 + %"$ud-registry.eAdminSet_call_2460" = call i8* %"$ud-registry.eAdminSet_fptr_2457"(i8* %"$ud-registry.eAdminSet_envptr_2458", [20 x i8]* %"$ud-registry.eAdminSet_address_2459", %TName_Bool* %isApproved) + store i8* %"$ud-registry.eAdminSet_call_2460", i8** %e, align 8 + %"$e_2461" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_2463" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2461") + %"$gasrem_2464" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2465" = icmp ugt i64 %"$_literal_cost_call_2463", %"$gasrem_2464" + br i1 %"$gascmp_2465", label %"$out_of_gas_2466", label %"$have_gas_2467" + +"$out_of_gas_2466": ; preds = %"$have_gas_2454" + call void @_out_of_gas() + br label %"$have_gas_2467" + +"$have_gas_2467": ; preds = %"$out_of_gas_2466", %"$have_gas_2454" + %"$consume_2468" = sub i64 %"$gasrem_2464", %"$_literal_cost_call_2463" + store i64 %"$consume_2468", i64* @_gasrem, align 8 + %"$execptr_load_2469" = load i8*, i8** @_execptr, align 8 + %"$e_2470" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_2469", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2470") + br label %"$matchsucc_2387" + +"$default_2391": ; preds = %"$have_gas_2385" br label %"$joinp_4" -"$joinp_4": ; preds = %"$default_2853" - br label %"$matchsucc_2849" +"$joinp_4": ; preds = %"$default_2391" + br label %"$matchsucc_2387" -"$matchsucc_2849": ; preds = %"$have_gas_2939", %"$joinp_4" - br label %"$matchsucc_2796" +"$matchsucc_2387": ; preds = %"$have_gas_2467", %"$joinp_4" + br label %"$matchsucc_2344" -"$False_2943": ; preds = %"$have_gas_2794" - %"$isSenderAdmin_2944" = bitcast %TName_Bool* %"$isSenderAdmin_2797" to %CName_False* - %"$gasrem_2945" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2946" = icmp ugt i64 1, %"$gasrem_2945" - br i1 %"$gascmp_2946", label %"$out_of_gas_2947", label %"$have_gas_2948" +"$False_2471": ; preds = %"$have_gas_2342" + %"$isSenderAdmin_2472" = bitcast %TName_Bool* %"$isSenderAdmin_2345" to %CName_False* + %"$gasrem_2473" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2474" = icmp ugt i64 1, %"$gasrem_2473" + br i1 %"$gascmp_2474", label %"$out_of_gas_2475", label %"$have_gas_2476" -"$out_of_gas_2947": ; preds = %"$False_2943" +"$out_of_gas_2475": ; preds = %"$False_2471" call void @_out_of_gas() - br label %"$have_gas_2948" + br label %"$have_gas_2476" -"$have_gas_2948": ; preds = %"$out_of_gas_2947", %"$False_2943" - %"$consume_2949" = sub i64 %"$gasrem_2945", 1 - store i64 %"$consume_2949", i64* @_gasrem, align 8 +"$have_gas_2476": ; preds = %"$out_of_gas_2475", %"$False_2471" + %"$consume_2477" = sub i64 %"$gasrem_2473", 1 + store i64 %"$consume_2477", i64* @_gasrem, align 8 %e1 = alloca i8*, align 8 - %"$gasrem_2950" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2951" = icmp ugt i64 1, %"$gasrem_2950" - br i1 %"$gascmp_2951", label %"$out_of_gas_2952", label %"$have_gas_2953" + %"$gasrem_2478" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2479" = icmp ugt i64 1, %"$gasrem_2478" + br i1 %"$gascmp_2479", label %"$out_of_gas_2480", label %"$have_gas_2481" -"$out_of_gas_2952": ; preds = %"$have_gas_2948" +"$out_of_gas_2480": ; preds = %"$have_gas_2476" call void @_out_of_gas() - br label %"$have_gas_2953" + br label %"$have_gas_2481" -"$have_gas_2953": ; preds = %"$out_of_gas_2952", %"$have_gas_2948" - %"$consume_2954" = sub i64 %"$gasrem_2950", 1 - store i64 %"$consume_2954", i64* @_gasrem, align 8 +"$have_gas_2481": ; preds = %"$out_of_gas_2480", %"$have_gas_2476" + %"$consume_2482" = sub i64 %"$gasrem_2478", 1 + store i64 %"$consume_2482", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_2955" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2956" = icmp ugt i64 1, %"$gasrem_2955" - br i1 %"$gascmp_2956", label %"$out_of_gas_2957", label %"$have_gas_2958" - -"$out_of_gas_2957": ; preds = %"$have_gas_2953" - call void @_out_of_gas() - br label %"$have_gas_2958" - -"$have_gas_2958": ; preds = %"$out_of_gas_2957", %"$have_gas_2953" - %"$consume_2959" = sub i64 %"$gasrem_2955", 1 - store i64 %"$consume_2959", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_2960", i32 0, i32 0), i32 26 }, %String* %m, align 8 - %"$gasrem_2961" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2962" = icmp ugt i64 1, %"$gasrem_2961" - br i1 %"$gascmp_2962", label %"$out_of_gas_2963", label %"$have_gas_2964" - -"$out_of_gas_2963": ; preds = %"$have_gas_2958" - call void @_out_of_gas() - br label %"$have_gas_2964" - -"$have_gas_2964": ; preds = %"$out_of_gas_2963", %"$have_gas_2958" - %"$consume_2965" = sub i64 %"$gasrem_2961", 1 - store i64 %"$consume_2965", i64* @_gasrem, align 8 - %"$ud-registry.eError_53" = alloca i8*, align 8 - %"$ud-registry.eError_2966" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_2967" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2966", 0 - %"$ud-registry.eError_envptr_2968" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2966", 1 - %"$m_2969" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_2970" = call i8* %"$ud-registry.eError_fptr_2967"(i8* %"$ud-registry.eError_envptr_2968", %String %"$m_2969") - store i8* %"$ud-registry.eError_call_2970", i8** %"$ud-registry.eError_53", align 8 - %"$$ud-registry.eError_53_2971" = load i8*, i8** %"$ud-registry.eError_53", align 8 - store i8* %"$$ud-registry.eError_53_2971", i8** %e1, align 8 - %"$e_2972" = load i8*, i8** %e1, align 8 - %"$_literal_cost_call_2974" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_2972") - %"$gasrem_2975" = load i64, i64* @_gasrem, align 8 - %"$gascmp_2976" = icmp ugt i64 %"$_literal_cost_call_2974", %"$gasrem_2975" - br i1 %"$gascmp_2976", label %"$out_of_gas_2977", label %"$have_gas_2978" - -"$out_of_gas_2977": ; preds = %"$have_gas_2964" - call void @_out_of_gas() - br label %"$have_gas_2978" - -"$have_gas_2978": ; preds = %"$out_of_gas_2977", %"$have_gas_2964" - %"$consume_2979" = sub i64 %"$gasrem_2975", %"$_literal_cost_call_2974" - store i64 %"$consume_2979", i64* @_gasrem, align 8 - %"$execptr_load_2980" = load i8*, i8** @_execptr, align 8 - %"$e_2981" = load i8*, i8** %e1, align 8 - call void @_event(i8* %"$execptr_load_2980", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_2981") - br label %"$matchsucc_2796" - -"$empty_default_2800": ; preds = %"$have_gas_2794" - br label %"$matchsucc_2796" - -"$matchsucc_2796": ; preds = %"$have_gas_2978", %"$matchsucc_2849", %"$empty_default_2800" + %"$gasrem_2483" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2484" = icmp ugt i64 1, %"$gasrem_2483" + br i1 %"$gascmp_2484", label %"$out_of_gas_2485", label %"$have_gas_2486" + +"$out_of_gas_2485": ; preds = %"$have_gas_2481" + call void @_out_of_gas() + br label %"$have_gas_2486" + +"$have_gas_2486": ; preds = %"$out_of_gas_2485", %"$have_gas_2481" + %"$consume_2487" = sub i64 %"$gasrem_2483", 1 + store i64 %"$consume_2487", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @"$stringlit_2488", i32 0, i32 0), i32 26 }, %String* %m, align 8 + %"$gasrem_2489" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2490" = icmp ugt i64 1, %"$gasrem_2489" + br i1 %"$gascmp_2490", label %"$out_of_gas_2491", label %"$have_gas_2492" + +"$out_of_gas_2491": ; preds = %"$have_gas_2486" + call void @_out_of_gas() + br label %"$have_gas_2492" + +"$have_gas_2492": ; preds = %"$out_of_gas_2491", %"$have_gas_2486" + %"$consume_2493" = sub i64 %"$gasrem_2489", 1 + store i64 %"$consume_2493", i64* @_gasrem, align 8 + %"$ud-registry.eError_37" = alloca i8*, align 8 + %"$ud-registry.eError_2494" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_2495" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2494", 0 + %"$ud-registry.eError_envptr_2496" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2494", 1 + %"$m_2497" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_2498" = call i8* %"$ud-registry.eError_fptr_2495"(i8* %"$ud-registry.eError_envptr_2496", %String %"$m_2497") + store i8* %"$ud-registry.eError_call_2498", i8** %"$ud-registry.eError_37", align 8 + %"$$ud-registry.eError_37_2499" = load i8*, i8** %"$ud-registry.eError_37", align 8 + store i8* %"$$ud-registry.eError_37_2499", i8** %e1, align 8 + %"$e_2500" = load i8*, i8** %e1, align 8 + %"$_literal_cost_call_2502" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2500") + %"$gasrem_2503" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2504" = icmp ugt i64 %"$_literal_cost_call_2502", %"$gasrem_2503" + br i1 %"$gascmp_2504", label %"$out_of_gas_2505", label %"$have_gas_2506" + +"$out_of_gas_2505": ; preds = %"$have_gas_2492" + call void @_out_of_gas() + br label %"$have_gas_2506" + +"$have_gas_2506": ; preds = %"$out_of_gas_2505", %"$have_gas_2492" + %"$consume_2507" = sub i64 %"$gasrem_2503", %"$_literal_cost_call_2502" + store i64 %"$consume_2507", i64* @_gasrem, align 8 + %"$execptr_load_2508" = load i8*, i8** @_execptr, align 8 + %"$e_2509" = load i8*, i8** %e1, align 8 + call void @_event(i8* %"$execptr_load_2508", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2509") + br label %"$matchsucc_2344" + +"$empty_default_2348": ; preds = %"$have_gas_2342" + br label %"$matchsucc_2344" + +"$matchsucc_2344": ; preds = %"$have_gas_2506", %"$matchsucc_2387", %"$empty_default_2348" ret void } @@ -5556,1591 +4842,1513 @@ declare void @_event(i8*, %_TyDescrTy_Typ*, i8*) define void @setAdmin(i8* %0) { entry: - %"$_amount_2983" = getelementptr i8, i8* %0, i32 0 - %"$_amount_2984" = bitcast i8* %"$_amount_2983" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_2984", align 8 - %"$_origin_2985" = getelementptr i8, i8* %0, i32 16 - %"$_origin_2986" = bitcast i8* %"$_origin_2985" to [20 x i8]* - %"$_sender_2987" = getelementptr i8, i8* %0, i32 36 - %"$_sender_2988" = bitcast i8* %"$_sender_2987" to [20 x i8]* - %"$address_2989" = getelementptr i8, i8* %0, i32 56 - %"$address_2990" = bitcast i8* %"$address_2989" to [20 x i8]* - %"$isApproved_2991" = getelementptr i8, i8* %0, i32 76 - %"$isApproved_2992" = bitcast i8* %"$isApproved_2991" to %TName_Bool** - %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_2992", align 8 - call void @"$setAdmin_2753"(%Uint128 %_amount, [20 x i8]* %"$_origin_2986", [20 x i8]* %"$_sender_2988", [20 x i8]* %"$address_2990", %TName_Bool* %isApproved) + %"$_amount_2511" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2512" = bitcast i8* %"$_amount_2511" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2512", align 8 + %"$_origin_2513" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2514" = bitcast i8* %"$_origin_2513" to [20 x i8]* + %"$_sender_2515" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2516" = bitcast i8* %"$_sender_2515" to [20 x i8]* + %"$address_2517" = getelementptr i8, i8* %0, i32 56 + %"$address_2518" = bitcast i8* %"$address_2517" to [20 x i8]* + %"$isApproved_2519" = getelementptr i8, i8* %0, i32 76 + %"$isApproved_2520" = bitcast i8* %"$isApproved_2519" to %TName_Bool** + %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_2520", align 8 + call void @"$setAdmin_2306"(%Uint128 %_amount, [20 x i8]* %"$_origin_2514", [20 x i8]* %"$_sender_2516", [20 x i8]* %"$address_2518", %TName_Bool* %isApproved) ret void } -define internal void @"$approve_2993"(%Uint128 %_amount, [20 x i8]* %"$_origin_2994", [20 x i8]* %"$_sender_2995", [32 x i8]* %"$node_2996", [20 x i8]* %"$address_2997") { +define internal void @"$approve_2521"(%Uint128 %_amount, [20 x i8]* %"$_origin_2522", [20 x i8]* %"$_sender_2523", [32 x i8]* %"$node_2524", [20 x i8]* %"$address_2525") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_2994", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_2995", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_2996", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_2997", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2522", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2523", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_2524", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_2525", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_2998_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_2998_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2998_salloc_load", i64 32) - %"$indices_buf_2998_salloc" = bitcast i8* %"$indices_buf_2998_salloc_salloc" to [32 x i8]* - %"$indices_buf_2998" = bitcast [32 x i8]* %"$indices_buf_2998_salloc" to i8* - %"$indices_gep_2999" = getelementptr i8, i8* %"$indices_buf_2998", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_2999" to [32 x i8]* + %"$indices_buf_2526_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2526_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2526_salloc_load", i64 32) + %"$indices_buf_2526_salloc" = bitcast i8* %"$indices_buf_2526_salloc_salloc" to [32 x i8]* + %"$indices_buf_2526" = bitcast [32 x i8]* %"$indices_buf_2526_salloc" to i8* + %"$indices_gep_2527" = getelementptr i8, i8* %"$indices_buf_2526", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2527" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_3001" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_3002" = call i8* @_fetch_field(i8* %"$execptr_load_3001", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3000", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_2998", i32 1) - %"$maybeRecord_3003" = bitcast i8* %"$maybeRecord_call_3002" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_3003", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_3004" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_3004_3005" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3004" to i8* - %"$_literal_cost_call_3006" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_3004_3005") - %"$gasadd_3007" = add i64 %"$_literal_cost_call_3006", 0 - %"$gasadd_3008" = add i64 %"$gasadd_3007", 1 - %"$gasrem_3009" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3010" = icmp ugt i64 %"$gasadd_3008", %"$gasrem_3009" - br i1 %"$gascmp_3010", label %"$out_of_gas_3011", label %"$have_gas_3012" - -"$out_of_gas_3011": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3012" - -"$have_gas_3012": ; preds = %"$out_of_gas_3011", %entry - %"$consume_3013" = sub i64 %"$gasrem_3009", %"$gasadd_3008" - store i64 %"$consume_3013", i64* @_gasrem, align 8 - %"$gasrem_3014" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3015" = icmp ugt i64 1, %"$gasrem_3014" - br i1 %"$gascmp_3015", label %"$out_of_gas_3016", label %"$have_gas_3017" - -"$out_of_gas_3016": ; preds = %"$have_gas_3012" - call void @_out_of_gas() - br label %"$have_gas_3017" - -"$have_gas_3017": ; preds = %"$out_of_gas_3016", %"$have_gas_3012" - %"$consume_3018" = sub i64 %"$gasrem_3014", 1 - store i64 %"$consume_3018", i64* @_gasrem, align 8 + %"$execptr_load_2529" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_2530" = call i8* @_fetch_field(i8* %"$execptr_load_2529", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_2528", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_2526", i32 1) + %"$maybeRecord_2531" = bitcast i8* %"$maybeRecord_call_2530" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_2531", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_2532" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_2532_2533" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_2532" to i8* + %"$_literal_cost_call_2534" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_2532_2533") + %"$gasadd_2535" = add i64 %"$_literal_cost_call_2534", 0 + %"$gasadd_2536" = add i64 %"$gasadd_2535", 1 + %"$gasrem_2537" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2538" = icmp ugt i64 %"$gasadd_2536", %"$gasrem_2537" + br i1 %"$gascmp_2538", label %"$out_of_gas_2539", label %"$have_gas_2540" + +"$out_of_gas_2539": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2540" + +"$have_gas_2540": ; preds = %"$out_of_gas_2539", %entry + %"$consume_2541" = sub i64 %"$gasrem_2537", %"$gasadd_2536" + store i64 %"$consume_2541", i64* @_gasrem, align 8 + %"$gasrem_2542" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2543" = icmp ugt i64 1, %"$gasrem_2542" + br i1 %"$gascmp_2543", label %"$out_of_gas_2544", label %"$have_gas_2545" + +"$out_of_gas_2544": ; preds = %"$have_gas_2540" + call void @_out_of_gas() + br label %"$have_gas_2545" + +"$have_gas_2545": ; preds = %"$out_of_gas_2544", %"$have_gas_2540" + %"$consume_2546" = sub i64 %"$gasrem_2542", 1 + store i64 %"$consume_2546", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_3019" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3020" = icmp ugt i64 1, %"$gasrem_3019" - br i1 %"$gascmp_3020", label %"$out_of_gas_3021", label %"$have_gas_3022" + %"$gasrem_2547" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2548" = icmp ugt i64 1, %"$gasrem_2547" + br i1 %"$gascmp_2548", label %"$out_of_gas_2549", label %"$have_gas_2550" + +"$out_of_gas_2549": ; preds = %"$have_gas_2545" + call void @_out_of_gas() + br label %"$have_gas_2550" + +"$have_gas_2550": ; preds = %"$out_of_gas_2549", %"$have_gas_2545" + %"$consume_2551" = sub i64 %"$gasrem_2547", 1 + store i64 %"$consume_2551", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_38" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_2552" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_2553" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_2552", 0 + %"$ud-registry.recordMemberOwner_envptr_2554" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_2552", 1 + %"$maybeRecord_2555" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_2556" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_2553"(i8* %"$ud-registry.recordMemberOwner_envptr_2554", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_2556", %TName_Option_ud-registry.Record* %"$maybeRecord_2555") + %"$ud-registry.recordMemberOwner_ret_2557" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_2556", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_2557", [20 x i8]* %"$ud-registry.recordMemberOwner_38", align 1 + %"$$ud-registry.recordMemberOwner_38_2558" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_38", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_38_2558", [20 x i8]* %recordOwner, align 1 + %"$gasrem_2559" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2560" = icmp ugt i64 1, %"$gasrem_2559" + br i1 %"$gascmp_2560", label %"$out_of_gas_2561", label %"$have_gas_2562" + +"$out_of_gas_2561": ; preds = %"$have_gas_2550" + call void @_out_of_gas() + br label %"$have_gas_2562" + +"$have_gas_2562": ; preds = %"$out_of_gas_2561", %"$have_gas_2550" + %"$consume_2563" = sub i64 %"$gasrem_2559", 1 + store i64 %"$consume_2563", i64* @_gasrem, align 8 + %isSenderNodeOwner = alloca %TName_Bool*, align 8 + %"$gasrem_2564" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2565" = icmp ugt i64 20, %"$gasrem_2564" + br i1 %"$gascmp_2565", label %"$out_of_gas_2566", label %"$have_gas_2567" + +"$out_of_gas_2566": ; preds = %"$have_gas_2562" + call void @_out_of_gas() + br label %"$have_gas_2567" + +"$have_gas_2567": ; preds = %"$out_of_gas_2566", %"$have_gas_2562" + %"$consume_2568" = sub i64 %"$gasrem_2564", 20 + store i64 %"$consume_2568", i64* @_gasrem, align 8 + %"$execptr_load_2569" = load i8*, i8** @_execptr, align 8 + %"$eq__sender_2570" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_2570", align 1 + %"$$eq__sender_2570_2571" = bitcast [20 x i8]* %"$eq__sender_2570" to i8* + %"$eq_recordOwner_2572" = alloca [20 x i8], align 1 + %"$recordOwner_2573" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_2573", [20 x i8]* %"$eq_recordOwner_2572", align 1 + %"$$eq_recordOwner_2572_2574" = bitcast [20 x i8]* %"$eq_recordOwner_2572" to i8* + %"$eq_call_2575" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_2569", i32 20, i8* %"$$eq__sender_2570_2571", i8* %"$$eq_recordOwner_2572_2574") + store %TName_Bool* %"$eq_call_2575", %TName_Bool** %isSenderNodeOwner, align 8 + %"$gasrem_2577" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2578" = icmp ugt i64 2, %"$gasrem_2577" + br i1 %"$gascmp_2578", label %"$out_of_gas_2579", label %"$have_gas_2580" -"$out_of_gas_3021": ; preds = %"$have_gas_3017" +"$out_of_gas_2579": ; preds = %"$have_gas_2567" call void @_out_of_gas() - br label %"$have_gas_3022" + br label %"$have_gas_2580" -"$have_gas_3022": ; preds = %"$out_of_gas_3021", %"$have_gas_3017" - %"$consume_3023" = sub i64 %"$gasrem_3019", 1 - store i64 %"$consume_3023", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_59" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_3024" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_3025" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3024", 0 - %"$ud-registry.recordMemberOwner_envptr_3026" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3024", 1 - %"$maybeRecord_3027" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_3028" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_3025"(i8* %"$ud-registry.recordMemberOwner_envptr_3026", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3028", %TName_Option_ud-registry.Record* %"$maybeRecord_3027") - %"$ud-registry.recordMemberOwner_ret_3029" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3028", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3029", [20 x i8]* %"$ud-registry.recordMemberOwner_59", align 1 - %"$$ud-registry.recordMemberOwner_59_3030" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_59", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_59_3030", [20 x i8]* %recordOwner, align 1 - %"$gasrem_3031" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3032" = icmp ugt i64 1, %"$gasrem_3031" - br i1 %"$gascmp_3032", label %"$out_of_gas_3033", label %"$have_gas_3034" - -"$out_of_gas_3033": ; preds = %"$have_gas_3022" - call void @_out_of_gas() - br label %"$have_gas_3034" - -"$have_gas_3034": ; preds = %"$out_of_gas_3033", %"$have_gas_3022" - %"$consume_3035" = sub i64 %"$gasrem_3031", 1 - store i64 %"$consume_3035", i64* @_gasrem, align 8 - %isSenderNodeOwner = alloca %TName_Bool*, align 8 - %"$gasrem_3036" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3037" = icmp ugt i64 20, %"$gasrem_3036" - br i1 %"$gascmp_3037", label %"$out_of_gas_3038", label %"$have_gas_3039" - -"$out_of_gas_3038": ; preds = %"$have_gas_3034" - call void @_out_of_gas() - br label %"$have_gas_3039" - -"$have_gas_3039": ; preds = %"$out_of_gas_3038", %"$have_gas_3034" - %"$consume_3040" = sub i64 %"$gasrem_3036", 20 - store i64 %"$consume_3040", i64* @_gasrem, align 8 - %"$execptr_load_3041" = load i8*, i8** @_execptr, align 8 - %"$eq__sender_3042" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_3042", align 1 - %"$$eq__sender_3042_3043" = bitcast [20 x i8]* %"$eq__sender_3042" to i8* - %"$eq_recordOwner_3044" = alloca [20 x i8], align 1 - %"$recordOwner_3045" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_3045", [20 x i8]* %"$eq_recordOwner_3044", align 1 - %"$$eq_recordOwner_3044_3046" = bitcast [20 x i8]* %"$eq_recordOwner_3044" to i8* - %"$eq_call_3047" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_3041", i32 20, i8* %"$$eq__sender_3042_3043", i8* %"$$eq_recordOwner_3044_3046") - store %TName_Bool* %"$eq_call_3047", %TName_Bool** %isSenderNodeOwner, align 8 - %"$gasrem_3049" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3050" = icmp ugt i64 2, %"$gasrem_3049" - br i1 %"$gascmp_3050", label %"$out_of_gas_3051", label %"$have_gas_3052" - -"$out_of_gas_3051": ; preds = %"$have_gas_3039" - call void @_out_of_gas() - br label %"$have_gas_3052" - -"$have_gas_3052": ; preds = %"$out_of_gas_3051", %"$have_gas_3039" - %"$consume_3053" = sub i64 %"$gasrem_3049", 2 - store i64 %"$consume_3053", i64* @_gasrem, align 8 - %"$isSenderNodeOwner_3055" = load %TName_Bool*, %TName_Bool** %isSenderNodeOwner, align 8 - %"$isSenderNodeOwner_tag_3056" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderNodeOwner_3055", i32 0, i32 0 - %"$isSenderNodeOwner_tag_3057" = load i8, i8* %"$isSenderNodeOwner_tag_3056", align 1 - switch i8 %"$isSenderNodeOwner_tag_3057", label %"$empty_default_3058" [ - i8 0, label %"$True_3059" - i8 1, label %"$False_3197" +"$have_gas_2580": ; preds = %"$out_of_gas_2579", %"$have_gas_2567" + %"$consume_2581" = sub i64 %"$gasrem_2577", 2 + store i64 %"$consume_2581", i64* @_gasrem, align 8 + %"$isSenderNodeOwner_2583" = load %TName_Bool*, %TName_Bool** %isSenderNodeOwner, align 8 + %"$isSenderNodeOwner_tag_2584" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderNodeOwner_2583", i32 0, i32 0 + %"$isSenderNodeOwner_tag_2585" = load i8, i8* %"$isSenderNodeOwner_tag_2584", align 1 + switch i8 %"$isSenderNodeOwner_tag_2585", label %"$empty_default_2586" [ + i8 0, label %"$True_2587" + i8 1, label %"$False_2725" ] -"$True_3059": ; preds = %"$have_gas_3052" - %"$isSenderNodeOwner_3060" = bitcast %TName_Bool* %"$isSenderNodeOwner_3055" to %CName_True* +"$True_2587": ; preds = %"$have_gas_2580" + %"$isSenderNodeOwner_2588" = bitcast %TName_Bool* %"$isSenderNodeOwner_2583" to %CName_True* %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_3061_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3061_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3061_salloc_load", i64 32) - %"$indices_buf_3061_salloc" = bitcast i8* %"$indices_buf_3061_salloc_salloc" to [32 x i8]* - %"$indices_buf_3061" = bitcast [32 x i8]* %"$indices_buf_3061_salloc" to i8* - %"$indices_gep_3062" = getelementptr i8, i8* %"$indices_buf_3061", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_3062" to [32 x i8]* + %"$indices_buf_2589_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2589_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2589_salloc_load", i64 32) + %"$indices_buf_2589_salloc" = bitcast i8* %"$indices_buf_2589_salloc_salloc" to [32 x i8]* + %"$indices_buf_2589" = bitcast [32 x i8]* %"$indices_buf_2589_salloc" to i8* + %"$indices_gep_2590" = getelementptr i8, i8* %"$indices_buf_2589", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_2590" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_3064" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_3065" = call i8* @_fetch_field(i8* %"$execptr_load_3064", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3063", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_3061", i32 1) - %"$maybeApproved_3066" = bitcast i8* %"$maybeApproved_call_3065" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_3066", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_3067" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_3067_3068" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3067" to i8* - %"$_literal_cost_call_3069" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_3067_3068") - %"$gasadd_3070" = add i64 %"$_literal_cost_call_3069", 0 - %"$gasadd_3071" = add i64 %"$gasadd_3070", 1 - %"$gasrem_3072" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3073" = icmp ugt i64 %"$gasadd_3071", %"$gasrem_3072" - br i1 %"$gascmp_3073", label %"$out_of_gas_3074", label %"$have_gas_3075" - -"$out_of_gas_3074": ; preds = %"$True_3059" - call void @_out_of_gas() - br label %"$have_gas_3075" - -"$have_gas_3075": ; preds = %"$out_of_gas_3074", %"$True_3059" - %"$consume_3076" = sub i64 %"$gasrem_3072", %"$gasadd_3071" - store i64 %"$consume_3076", i64* @_gasrem, align 8 - %"$gasrem_3077" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3078" = icmp ugt i64 1, %"$gasrem_3077" - br i1 %"$gascmp_3078", label %"$out_of_gas_3079", label %"$have_gas_3080" - -"$out_of_gas_3079": ; preds = %"$have_gas_3075" - call void @_out_of_gas() - br label %"$have_gas_3080" - -"$have_gas_3080": ; preds = %"$out_of_gas_3079", %"$have_gas_3075" - %"$consume_3081" = sub i64 %"$gasrem_3077", 1 - store i64 %"$consume_3081", i64* @_gasrem, align 8 + %"$execptr_load_2592" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_2593" = call i8* @_fetch_field(i8* %"$execptr_load_2592", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_2591", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_2589", i32 1) + %"$maybeApproved_2594" = bitcast i8* %"$maybeApproved_call_2593" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_2594", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_2595" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_2595_2596" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2595" to i8* + %"$_literal_cost_call_2597" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_2595_2596") + %"$gasadd_2598" = add i64 %"$_literal_cost_call_2597", 0 + %"$gasadd_2599" = add i64 %"$gasadd_2598", 1 + %"$gasrem_2600" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2601" = icmp ugt i64 %"$gasadd_2599", %"$gasrem_2600" + br i1 %"$gascmp_2601", label %"$out_of_gas_2602", label %"$have_gas_2603" + +"$out_of_gas_2602": ; preds = %"$True_2587" + call void @_out_of_gas() + br label %"$have_gas_2603" + +"$have_gas_2603": ; preds = %"$out_of_gas_2602", %"$True_2587" + %"$consume_2604" = sub i64 %"$gasrem_2600", %"$gasadd_2599" + store i64 %"$consume_2604", i64* @_gasrem, align 8 + %"$gasrem_2605" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2606" = icmp ugt i64 1, %"$gasrem_2605" + br i1 %"$gascmp_2606", label %"$out_of_gas_2607", label %"$have_gas_2608" + +"$out_of_gas_2607": ; preds = %"$have_gas_2603" + call void @_out_of_gas() + br label %"$have_gas_2608" + +"$have_gas_2608": ; preds = %"$out_of_gas_2607", %"$have_gas_2603" + %"$consume_2609" = sub i64 %"$gasrem_2605", 1 + store i64 %"$consume_2609", i64* @_gasrem, align 8 %currentlyApproved = alloca [20 x i8], align 1 - %"$gasrem_3082" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3083" = icmp ugt i64 2, %"$gasrem_3082" - br i1 %"$gascmp_3083", label %"$out_of_gas_3084", label %"$have_gas_3085" - -"$out_of_gas_3084": ; preds = %"$have_gas_3080" - call void @_out_of_gas() - br label %"$have_gas_3085" - -"$have_gas_3085": ; preds = %"$out_of_gas_3084", %"$have_gas_3080" - %"$consume_3086" = sub i64 %"$gasrem_3082", 2 - store i64 %"$consume_3086", i64* @_gasrem, align 8 - %"$maybeApproved_3088" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_tag_3089" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_3088", i32 0, i32 0 - %"$maybeApproved_tag_3090" = load i8, i8* %"$maybeApproved_tag_3089", align 1 - switch i8 %"$maybeApproved_tag_3090", label %"$empty_default_3091" [ - i8 1, label %"$None_3092" - i8 0, label %"$Some_3100" + %"$gasrem_2610" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2611" = icmp ugt i64 2, %"$gasrem_2610" + br i1 %"$gascmp_2611", label %"$out_of_gas_2612", label %"$have_gas_2613" + +"$out_of_gas_2612": ; preds = %"$have_gas_2608" + call void @_out_of_gas() + br label %"$have_gas_2613" + +"$have_gas_2613": ; preds = %"$out_of_gas_2612", %"$have_gas_2608" + %"$consume_2614" = sub i64 %"$gasrem_2610", 2 + store i64 %"$consume_2614", i64* @_gasrem, align 8 + %"$maybeApproved_2616" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_tag_2617" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_2616", i32 0, i32 0 + %"$maybeApproved_tag_2618" = load i8, i8* %"$maybeApproved_tag_2617", align 1 + switch i8 %"$maybeApproved_tag_2618", label %"$empty_default_2619" [ + i8 1, label %"$None_2620" + i8 0, label %"$Some_2628" ] -"$None_3092": ; preds = %"$have_gas_3085" - %"$maybeApproved_3093" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3088" to %CName_None_ByStr20* - %"$gasrem_3094" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3095" = icmp ugt i64 1, %"$gasrem_3094" - br i1 %"$gascmp_3095", label %"$out_of_gas_3096", label %"$have_gas_3097" +"$None_2620": ; preds = %"$have_gas_2613" + %"$maybeApproved_2621" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2616" to %CName_None_ByStr20* + %"$gasrem_2622" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2623" = icmp ugt i64 1, %"$gasrem_2622" + br i1 %"$gascmp_2623", label %"$out_of_gas_2624", label %"$have_gas_2625" -"$out_of_gas_3096": ; preds = %"$None_3092" +"$out_of_gas_2624": ; preds = %"$None_2620" call void @_out_of_gas() - br label %"$have_gas_3097" + br label %"$have_gas_2625" -"$have_gas_3097": ; preds = %"$out_of_gas_3096", %"$None_3092" - %"$consume_3098" = sub i64 %"$gasrem_3094", 1 - store i64 %"$consume_3098", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_3099" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_3099", [20 x i8]* %currentlyApproved, align 1 - br label %"$matchsucc_3087" +"$have_gas_2625": ; preds = %"$out_of_gas_2624", %"$None_2620" + %"$consume_2626" = sub i64 %"$gasrem_2622", 1 + store i64 %"$consume_2626", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_2627" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_2627", [20 x i8]* %currentlyApproved, align 1 + br label %"$matchsucc_2615" -"$Some_3100": ; preds = %"$have_gas_3085" - %"$maybeApproved_3101" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3088" to %CName_Some_ByStr20* - %"$approved_gep_3102" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_3101", i32 0, i32 1 - %"$approved_load_3103" = load [20 x i8], [20 x i8]* %"$approved_gep_3102", align 1 +"$Some_2628": ; preds = %"$have_gas_2613" + %"$maybeApproved_2629" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2616" to %CName_Some_ByStr20* + %"$approved_gep_2630" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_2629", i32 0, i32 1 + %"$approved_load_2631" = load [20 x i8], [20 x i8]* %"$approved_gep_2630", align 1 %approved = alloca [20 x i8], align 1 - store [20 x i8] %"$approved_load_3103", [20 x i8]* %approved, align 1 - %"$gasrem_3104" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3105" = icmp ugt i64 1, %"$gasrem_3104" - br i1 %"$gascmp_3105", label %"$out_of_gas_3106", label %"$have_gas_3107" + store [20 x i8] %"$approved_load_2631", [20 x i8]* %approved, align 1 + %"$gasrem_2632" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2633" = icmp ugt i64 1, %"$gasrem_2632" + br i1 %"$gascmp_2633", label %"$out_of_gas_2634", label %"$have_gas_2635" -"$out_of_gas_3106": ; preds = %"$Some_3100" +"$out_of_gas_2634": ; preds = %"$Some_2628" call void @_out_of_gas() - br label %"$have_gas_3107" + br label %"$have_gas_2635" -"$have_gas_3107": ; preds = %"$out_of_gas_3106", %"$Some_3100" - %"$consume_3108" = sub i64 %"$gasrem_3104", 1 - store i64 %"$consume_3108", i64* @_gasrem, align 8 - %"$approved_3109" = load [20 x i8], [20 x i8]* %approved, align 1 - store [20 x i8] %"$approved_3109", [20 x i8]* %currentlyApproved, align 1 - br label %"$matchsucc_3087" +"$have_gas_2635": ; preds = %"$out_of_gas_2634", %"$Some_2628" + %"$consume_2636" = sub i64 %"$gasrem_2632", 1 + store i64 %"$consume_2636", i64* @_gasrem, align 8 + %"$approved_2637" = load [20 x i8], [20 x i8]* %approved, align 1 + store [20 x i8] %"$approved_2637", [20 x i8]* %currentlyApproved, align 1 + br label %"$matchsucc_2615" -"$empty_default_3091": ; preds = %"$have_gas_3085" - br label %"$matchsucc_3087" +"$empty_default_2619": ; preds = %"$have_gas_2613" + br label %"$matchsucc_2615" -"$matchsucc_3087": ; preds = %"$have_gas_3107", %"$have_gas_3097", %"$empty_default_3091" - %"$gasrem_3110" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3111" = icmp ugt i64 1, %"$gasrem_3110" - br i1 %"$gascmp_3111", label %"$out_of_gas_3112", label %"$have_gas_3113" +"$matchsucc_2615": ; preds = %"$have_gas_2635", %"$have_gas_2625", %"$empty_default_2619" + %"$gasrem_2638" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2639" = icmp ugt i64 1, %"$gasrem_2638" + br i1 %"$gascmp_2639", label %"$out_of_gas_2640", label %"$have_gas_2641" -"$out_of_gas_3112": ; preds = %"$matchsucc_3087" +"$out_of_gas_2640": ; preds = %"$matchsucc_2615" call void @_out_of_gas() - br label %"$have_gas_3113" + br label %"$have_gas_2641" -"$have_gas_3113": ; preds = %"$out_of_gas_3112", %"$matchsucc_3087" - %"$consume_3114" = sub i64 %"$gasrem_3110", 1 - store i64 %"$consume_3114", i64* @_gasrem, align 8 +"$have_gas_2641": ; preds = %"$out_of_gas_2640", %"$matchsucc_2615" + %"$consume_2642" = sub i64 %"$gasrem_2638", 1 + store i64 %"$consume_2642", i64* @_gasrem, align 8 %needsToChange = alloca %TName_Bool*, align 8 - %"$gasrem_3115" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3116" = icmp ugt i64 1, %"$gasrem_3115" - br i1 %"$gascmp_3116", label %"$out_of_gas_3117", label %"$have_gas_3118" + %"$gasrem_2643" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2644" = icmp ugt i64 1, %"$gasrem_2643" + br i1 %"$gascmp_2644", label %"$out_of_gas_2645", label %"$have_gas_2646" -"$out_of_gas_3117": ; preds = %"$have_gas_3113" +"$out_of_gas_2645": ; preds = %"$have_gas_2641" call void @_out_of_gas() - br label %"$have_gas_3118" + br label %"$have_gas_2646" -"$have_gas_3118": ; preds = %"$out_of_gas_3117", %"$have_gas_3113" - %"$consume_3119" = sub i64 %"$gasrem_3115", 1 - store i64 %"$consume_3119", i64* @_gasrem, align 8 +"$have_gas_2646": ; preds = %"$out_of_gas_2645", %"$have_gas_2641" + %"$consume_2647" = sub i64 %"$gasrem_2643", 1 + store i64 %"$consume_2647", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_3120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3121" = icmp ugt i64 20, %"$gasrem_3120" - br i1 %"$gascmp_3121", label %"$out_of_gas_3122", label %"$have_gas_3123" - -"$out_of_gas_3122": ; preds = %"$have_gas_3118" - call void @_out_of_gas() - br label %"$have_gas_3123" - -"$have_gas_3123": ; preds = %"$out_of_gas_3122", %"$have_gas_3118" - %"$consume_3124" = sub i64 %"$gasrem_3120", 20 - store i64 %"$consume_3124", i64* @_gasrem, align 8 - %"$execptr_load_3125" = load i8*, i8** @_execptr, align 8 - %"$eq_currentlyApproved_3126" = alloca [20 x i8], align 1 - %"$currentlyApproved_3127" = load [20 x i8], [20 x i8]* %currentlyApproved, align 1 - store [20 x i8] %"$currentlyApproved_3127", [20 x i8]* %"$eq_currentlyApproved_3126", align 1 - %"$$eq_currentlyApproved_3126_3128" = bitcast [20 x i8]* %"$eq_currentlyApproved_3126" to i8* - %"$eq_address_3129" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$eq_address_3129", align 1 - %"$$eq_address_3129_3130" = bitcast [20 x i8]* %"$eq_address_3129" to i8* - %"$eq_call_3131" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_3125", i32 20, i8* %"$$eq_currentlyApproved_3126_3128", i8* %"$$eq_address_3129_3130") - store %TName_Bool* %"$eq_call_3131", %TName_Bool** %b, align 8 - %"$gasrem_3133" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3134" = icmp ugt i64 1, %"$gasrem_3133" - br i1 %"$gascmp_3134", label %"$out_of_gas_3135", label %"$have_gas_3136" - -"$out_of_gas_3135": ; preds = %"$have_gas_3123" - call void @_out_of_gas() - br label %"$have_gas_3136" - -"$have_gas_3136": ; preds = %"$out_of_gas_3135", %"$have_gas_3123" - %"$consume_3137" = sub i64 %"$gasrem_3133", 1 - store i64 %"$consume_3137", i64* @_gasrem, align 8 - %"$BoolUtils.negb_57" = alloca %TName_Bool*, align 8 - %"$BoolUtils.negb_3138" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 - %"$BoolUtils.negb_fptr_3139" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_3138", 0 - %"$BoolUtils.negb_envptr_3140" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_3138", 1 - %"$b_3141" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$BoolUtils.negb_call_3142" = call %TName_Bool* %"$BoolUtils.negb_fptr_3139"(i8* %"$BoolUtils.negb_envptr_3140", %TName_Bool* %"$b_3141") - store %TName_Bool* %"$BoolUtils.negb_call_3142", %TName_Bool** %"$BoolUtils.negb_57", align 8 - %"$$BoolUtils.negb_57_3143" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_57", align 8 - store %TName_Bool* %"$$BoolUtils.negb_57_3143", %TName_Bool** %needsToChange, align 8 - %"$gasrem_3144" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3145" = icmp ugt i64 2, %"$gasrem_3144" - br i1 %"$gascmp_3145", label %"$out_of_gas_3146", label %"$have_gas_3147" - -"$out_of_gas_3146": ; preds = %"$have_gas_3136" - call void @_out_of_gas() - br label %"$have_gas_3147" - -"$have_gas_3147": ; preds = %"$out_of_gas_3146", %"$have_gas_3136" - %"$consume_3148" = sub i64 %"$gasrem_3144", 2 - store i64 %"$consume_3148", i64* @_gasrem, align 8 - %"$needsToChange_3150" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 - %"$needsToChange_tag_3151" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_3150", i32 0, i32 0 - %"$needsToChange_tag_3152" = load i8, i8* %"$needsToChange_tag_3151", align 1 - switch i8 %"$needsToChange_tag_3152", label %"$default_3153" [ - i8 0, label %"$True_3154" + %"$gasrem_2648" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2649" = icmp ugt i64 20, %"$gasrem_2648" + br i1 %"$gascmp_2649", label %"$out_of_gas_2650", label %"$have_gas_2651" + +"$out_of_gas_2650": ; preds = %"$have_gas_2646" + call void @_out_of_gas() + br label %"$have_gas_2651" + +"$have_gas_2651": ; preds = %"$out_of_gas_2650", %"$have_gas_2646" + %"$consume_2652" = sub i64 %"$gasrem_2648", 20 + store i64 %"$consume_2652", i64* @_gasrem, align 8 + %"$execptr_load_2653" = load i8*, i8** @_execptr, align 8 + %"$eq_currentlyApproved_2654" = alloca [20 x i8], align 1 + %"$currentlyApproved_2655" = load [20 x i8], [20 x i8]* %currentlyApproved, align 1 + store [20 x i8] %"$currentlyApproved_2655", [20 x i8]* %"$eq_currentlyApproved_2654", align 1 + %"$$eq_currentlyApproved_2654_2656" = bitcast [20 x i8]* %"$eq_currentlyApproved_2654" to i8* + %"$eq_address_2657" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$eq_address_2657", align 1 + %"$$eq_address_2657_2658" = bitcast [20 x i8]* %"$eq_address_2657" to i8* + %"$eq_call_2659" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_2653", i32 20, i8* %"$$eq_currentlyApproved_2654_2656", i8* %"$$eq_address_2657_2658") + store %TName_Bool* %"$eq_call_2659", %TName_Bool** %b, align 8 + %"$gasrem_2661" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2662" = icmp ugt i64 1, %"$gasrem_2661" + br i1 %"$gascmp_2662", label %"$out_of_gas_2663", label %"$have_gas_2664" + +"$out_of_gas_2663": ; preds = %"$have_gas_2651" + call void @_out_of_gas() + br label %"$have_gas_2664" + +"$have_gas_2664": ; preds = %"$out_of_gas_2663", %"$have_gas_2651" + %"$consume_2665" = sub i64 %"$gasrem_2661", 1 + store i64 %"$consume_2665", i64* @_gasrem, align 8 + %"$BoolUtils.negb_39" = alloca %TName_Bool*, align 8 + %"$BoolUtils.negb_2666" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* @BoolUtils.negb, align 8 + %"$BoolUtils.negb_fptr_2667" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2666", 0 + %"$BoolUtils.negb_envptr_2668" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.negb_2666", 1 + %"$b_2669" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$BoolUtils.negb_call_2670" = call %TName_Bool* %"$BoolUtils.negb_fptr_2667"(i8* %"$BoolUtils.negb_envptr_2668", %TName_Bool* %"$b_2669") + store %TName_Bool* %"$BoolUtils.negb_call_2670", %TName_Bool** %"$BoolUtils.negb_39", align 8 + %"$$BoolUtils.negb_39_2671" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.negb_39", align 8 + store %TName_Bool* %"$$BoolUtils.negb_39_2671", %TName_Bool** %needsToChange, align 8 + %"$gasrem_2672" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2673" = icmp ugt i64 2, %"$gasrem_2672" + br i1 %"$gascmp_2673", label %"$out_of_gas_2674", label %"$have_gas_2675" + +"$out_of_gas_2674": ; preds = %"$have_gas_2664" + call void @_out_of_gas() + br label %"$have_gas_2675" + +"$have_gas_2675": ; preds = %"$out_of_gas_2674", %"$have_gas_2664" + %"$consume_2676" = sub i64 %"$gasrem_2672", 2 + store i64 %"$consume_2676", i64* @_gasrem, align 8 + %"$needsToChange_2678" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 + %"$needsToChange_tag_2679" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_2678", i32 0, i32 0 + %"$needsToChange_tag_2680" = load i8, i8* %"$needsToChange_tag_2679", align 1 + switch i8 %"$needsToChange_tag_2680", label %"$default_2681" [ + i8 0, label %"$True_2682" ] -"$True_3154": ; preds = %"$have_gas_3147" - %"$needsToChange_3155" = bitcast %TName_Bool* %"$needsToChange_3150" to %CName_True* - %"$_literal_cost_address_3156" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_3156", align 1 - %"$$_literal_cost_address_3156_3157" = bitcast [20 x i8]* %"$_literal_cost_address_3156" to i8* - %"$_literal_cost_call_3158" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i8* %"$$_literal_cost_address_3156_3157") - %"$gasadd_3159" = add i64 %"$_literal_cost_call_3158", 1 - %"$gasrem_3160" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3161" = icmp ugt i64 %"$gasadd_3159", %"$gasrem_3160" - br i1 %"$gascmp_3161", label %"$out_of_gas_3162", label %"$have_gas_3163" - -"$out_of_gas_3162": ; preds = %"$True_3154" - call void @_out_of_gas() - br label %"$have_gas_3163" - -"$have_gas_3163": ; preds = %"$out_of_gas_3162", %"$True_3154" - %"$consume_3164" = sub i64 %"$gasrem_3160", %"$gasadd_3159" - store i64 %"$consume_3164", i64* @_gasrem, align 8 - %"$indices_buf_3165_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3165_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3165_salloc_load", i64 32) - %"$indices_buf_3165_salloc" = bitcast i8* %"$indices_buf_3165_salloc_salloc" to [32 x i8]* - %"$indices_buf_3165" = bitcast [32 x i8]* %"$indices_buf_3165_salloc" to i8* - %"$indices_gep_3166" = getelementptr i8, i8* %"$indices_buf_3165", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_3166" to [32 x i8]* +"$True_2682": ; preds = %"$have_gas_2675" + %"$needsToChange_2683" = bitcast %TName_Bool* %"$needsToChange_2678" to %CName_True* + %"$_literal_cost_address_2684" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_2684", align 1 + %"$$_literal_cost_address_2684_2685" = bitcast [20 x i8]* %"$_literal_cost_address_2684" to i8* + %"$_literal_cost_call_2686" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i8* %"$$_literal_cost_address_2684_2685") + %"$gasadd_2687" = add i64 %"$_literal_cost_call_2686", 1 + %"$gasrem_2688" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2689" = icmp ugt i64 %"$gasadd_2687", %"$gasrem_2688" + br i1 %"$gascmp_2689", label %"$out_of_gas_2690", label %"$have_gas_2691" + +"$out_of_gas_2690": ; preds = %"$True_2682" + call void @_out_of_gas() + br label %"$have_gas_2691" + +"$have_gas_2691": ; preds = %"$out_of_gas_2690", %"$True_2682" + %"$consume_2692" = sub i64 %"$gasrem_2688", %"$gasadd_2687" + store i64 %"$consume_2692", i64* @_gasrem, align 8 + %"$indices_buf_2693_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2693_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2693_salloc_load", i64 32) + %"$indices_buf_2693_salloc" = bitcast i8* %"$indices_buf_2693_salloc_salloc" to [32 x i8]* + %"$indices_buf_2693" = bitcast [32 x i8]* %"$indices_buf_2693_salloc" to i8* + %"$indices_gep_2694" = getelementptr i8, i8* %"$indices_buf_2693", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_2694" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast2, align 1 - %"$execptr_load_3167" = load i8*, i8** @_execptr, align 8 - %"$update_value_3169" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$update_value_3169", align 1 - %"$update_value_3170" = bitcast [20 x i8]* %"$update_value_3169" to i8* - call void @_update_field(i8* %"$execptr_load_3167", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3168", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_3165", i8* %"$update_value_3170") - %"$gasrem_3171" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3172" = icmp ugt i64 1, %"$gasrem_3171" - br i1 %"$gascmp_3172", label %"$out_of_gas_3173", label %"$have_gas_3174" - -"$out_of_gas_3173": ; preds = %"$have_gas_3163" - call void @_out_of_gas() - br label %"$have_gas_3174" - -"$have_gas_3174": ; preds = %"$out_of_gas_3173", %"$have_gas_3163" - %"$consume_3175" = sub i64 %"$gasrem_3171", 1 - store i64 %"$consume_3175", i64* @_gasrem, align 8 + %"$execptr_load_2695" = load i8*, i8** @_execptr, align 8 + %"$update_value_2697" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$update_value_2697", align 1 + %"$update_value_2698" = bitcast [20 x i8]* %"$update_value_2697" to i8* + call void @_update_field(i8* %"$execptr_load_2695", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_2696", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_2693", i8* %"$update_value_2698") + %"$gasrem_2699" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2700" = icmp ugt i64 1, %"$gasrem_2699" + br i1 %"$gascmp_2700", label %"$out_of_gas_2701", label %"$have_gas_2702" + +"$out_of_gas_2701": ; preds = %"$have_gas_2691" + call void @_out_of_gas() + br label %"$have_gas_2702" + +"$have_gas_2702": ; preds = %"$out_of_gas_2701", %"$have_gas_2691" + %"$consume_2703" = sub i64 %"$gasrem_2699", 1 + store i64 %"$consume_2703", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_3176" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3177" = icmp ugt i64 1, %"$gasrem_3176" - br i1 %"$gascmp_3177", label %"$out_of_gas_3178", label %"$have_gas_3179" - -"$out_of_gas_3178": ; preds = %"$have_gas_3174" - call void @_out_of_gas() - br label %"$have_gas_3179" - -"$have_gas_3179": ; preds = %"$out_of_gas_3178", %"$have_gas_3174" - %"$consume_3180" = sub i64 %"$gasrem_3176", 1 - store i64 %"$consume_3180", i64* @_gasrem, align 8 - %"$ud-registry.eApproved_56" = alloca i8*, align 8 - %"$ud-registry.eApproved_3181" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8 - %"$ud-registry.eApproved_fptr_3182" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_3181", 0 - %"$ud-registry.eApproved_envptr_3183" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_3181", 1 - %"$ud-registry.eApproved_address_3184" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-registry.eApproved_address_3184", align 1 - %"$ud-registry.eApproved_call_3185" = call i8* %"$ud-registry.eApproved_fptr_3182"(i8* %"$ud-registry.eApproved_envptr_3183", [20 x i8]* %"$ud-registry.eApproved_address_3184") - store i8* %"$ud-registry.eApproved_call_3185", i8** %"$ud-registry.eApproved_56", align 8 - %"$$ud-registry.eApproved_56_3186" = load i8*, i8** %"$ud-registry.eApproved_56", align 8 - store i8* %"$$ud-registry.eApproved_56_3186", i8** %e, align 8 - %"$e_3187" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_3189" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3187") - %"$gasrem_3190" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3191" = icmp ugt i64 %"$_literal_cost_call_3189", %"$gasrem_3190" - br i1 %"$gascmp_3191", label %"$out_of_gas_3192", label %"$have_gas_3193" - -"$out_of_gas_3192": ; preds = %"$have_gas_3179" - call void @_out_of_gas() - br label %"$have_gas_3193" - -"$have_gas_3193": ; preds = %"$out_of_gas_3192", %"$have_gas_3179" - %"$consume_3194" = sub i64 %"$gasrem_3190", %"$_literal_cost_call_3189" - store i64 %"$consume_3194", i64* @_gasrem, align 8 - %"$execptr_load_3195" = load i8*, i8** @_execptr, align 8 - %"$e_3196" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_3195", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3196") - br label %"$matchsucc_3149" - -"$default_3153": ; preds = %"$have_gas_3147" + %"$gasrem_2704" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2705" = icmp ugt i64 1, %"$gasrem_2704" + br i1 %"$gascmp_2705", label %"$out_of_gas_2706", label %"$have_gas_2707" + +"$out_of_gas_2706": ; preds = %"$have_gas_2702" + call void @_out_of_gas() + br label %"$have_gas_2707" + +"$have_gas_2707": ; preds = %"$out_of_gas_2706", %"$have_gas_2702" + %"$consume_2708" = sub i64 %"$gasrem_2704", 1 + store i64 %"$consume_2708", i64* @_gasrem, align 8 + %"$ud-registry.eApproved_40" = alloca i8*, align 8 + %"$ud-registry.eApproved_2709" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApproved, align 8 + %"$ud-registry.eApproved_fptr_2710" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_2709", 0 + %"$ud-registry.eApproved_envptr_2711" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApproved_2709", 1 + %"$ud-registry.eApproved_address_2712" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.eApproved_address_2712", align 1 + %"$ud-registry.eApproved_call_2713" = call i8* %"$ud-registry.eApproved_fptr_2710"(i8* %"$ud-registry.eApproved_envptr_2711", [20 x i8]* %"$ud-registry.eApproved_address_2712") + store i8* %"$ud-registry.eApproved_call_2713", i8** %"$ud-registry.eApproved_40", align 8 + %"$$ud-registry.eApproved_40_2714" = load i8*, i8** %"$ud-registry.eApproved_40", align 8 + store i8* %"$$ud-registry.eApproved_40_2714", i8** %e, align 8 + %"$e_2715" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_2717" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2715") + %"$gasrem_2718" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2719" = icmp ugt i64 %"$_literal_cost_call_2717", %"$gasrem_2718" + br i1 %"$gascmp_2719", label %"$out_of_gas_2720", label %"$have_gas_2721" + +"$out_of_gas_2720": ; preds = %"$have_gas_2707" + call void @_out_of_gas() + br label %"$have_gas_2721" + +"$have_gas_2721": ; preds = %"$out_of_gas_2720", %"$have_gas_2707" + %"$consume_2722" = sub i64 %"$gasrem_2718", %"$_literal_cost_call_2717" + store i64 %"$consume_2722", i64* @_gasrem, align 8 + %"$execptr_load_2723" = load i8*, i8** @_execptr, align 8 + %"$e_2724" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_2723", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2724") + br label %"$matchsucc_2677" + +"$default_2681": ; preds = %"$have_gas_2675" br label %"$joinp_5" -"$joinp_5": ; preds = %"$default_3153" - br label %"$matchsucc_3149" +"$joinp_5": ; preds = %"$default_2681" + br label %"$matchsucc_2677" -"$matchsucc_3149": ; preds = %"$have_gas_3193", %"$joinp_5" - br label %"$matchsucc_3054" +"$matchsucc_2677": ; preds = %"$have_gas_2721", %"$joinp_5" + br label %"$matchsucc_2582" -"$False_3197": ; preds = %"$have_gas_3052" - %"$isSenderNodeOwner_3198" = bitcast %TName_Bool* %"$isSenderNodeOwner_3055" to %CName_False* - %"$gasrem_3199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3200" = icmp ugt i64 1, %"$gasrem_3199" - br i1 %"$gascmp_3200", label %"$out_of_gas_3201", label %"$have_gas_3202" +"$False_2725": ; preds = %"$have_gas_2580" + %"$isSenderNodeOwner_2726" = bitcast %TName_Bool* %"$isSenderNodeOwner_2583" to %CName_False* + %"$gasrem_2727" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2728" = icmp ugt i64 1, %"$gasrem_2727" + br i1 %"$gascmp_2728", label %"$out_of_gas_2729", label %"$have_gas_2730" -"$out_of_gas_3201": ; preds = %"$False_3197" +"$out_of_gas_2729": ; preds = %"$False_2725" call void @_out_of_gas() - br label %"$have_gas_3202" + br label %"$have_gas_2730" -"$have_gas_3202": ; preds = %"$out_of_gas_3201", %"$False_3197" - %"$consume_3203" = sub i64 %"$gasrem_3199", 1 - store i64 %"$consume_3203", i64* @_gasrem, align 8 +"$have_gas_2730": ; preds = %"$out_of_gas_2729", %"$False_2725" + %"$consume_2731" = sub i64 %"$gasrem_2727", 1 + store i64 %"$consume_2731", i64* @_gasrem, align 8 %e3 = alloca i8*, align 8 - %"$gasrem_3204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3205" = icmp ugt i64 1, %"$gasrem_3204" - br i1 %"$gascmp_3205", label %"$out_of_gas_3206", label %"$have_gas_3207" + %"$gasrem_2732" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2733" = icmp ugt i64 1, %"$gasrem_2732" + br i1 %"$gascmp_2733", label %"$out_of_gas_2734", label %"$have_gas_2735" -"$out_of_gas_3206": ; preds = %"$have_gas_3202" +"$out_of_gas_2734": ; preds = %"$have_gas_2730" call void @_out_of_gas() - br label %"$have_gas_3207" + br label %"$have_gas_2735" -"$have_gas_3207": ; preds = %"$out_of_gas_3206", %"$have_gas_3202" - %"$consume_3208" = sub i64 %"$gasrem_3204", 1 - store i64 %"$consume_3208", i64* @_gasrem, align 8 +"$have_gas_2735": ; preds = %"$out_of_gas_2734", %"$have_gas_2730" + %"$consume_2736" = sub i64 %"$gasrem_2732", 1 + store i64 %"$consume_2736", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_3209" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3210" = icmp ugt i64 1, %"$gasrem_3209" - br i1 %"$gascmp_3210", label %"$out_of_gas_3211", label %"$have_gas_3212" - -"$out_of_gas_3211": ; preds = %"$have_gas_3207" - call void @_out_of_gas() - br label %"$have_gas_3212" - -"$have_gas_3212": ; preds = %"$out_of_gas_3211", %"$have_gas_3207" - %"$consume_3213" = sub i64 %"$gasrem_3209", 1 - store i64 %"$consume_3213", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_3214", i32 0, i32 0), i32 21 }, %String* %m, align 8 - %"$gasrem_3215" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3216" = icmp ugt i64 1, %"$gasrem_3215" - br i1 %"$gascmp_3216", label %"$out_of_gas_3217", label %"$have_gas_3218" - -"$out_of_gas_3217": ; preds = %"$have_gas_3212" - call void @_out_of_gas() - br label %"$have_gas_3218" - -"$have_gas_3218": ; preds = %"$out_of_gas_3217", %"$have_gas_3212" - %"$consume_3219" = sub i64 %"$gasrem_3215", 1 - store i64 %"$consume_3219", i64* @_gasrem, align 8 - %"$ud-registry.eError_58" = alloca i8*, align 8 - %"$ud-registry.eError_3220" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_3221" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3220", 0 - %"$ud-registry.eError_envptr_3222" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3220", 1 - %"$m_3223" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_3224" = call i8* %"$ud-registry.eError_fptr_3221"(i8* %"$ud-registry.eError_envptr_3222", %String %"$m_3223") - store i8* %"$ud-registry.eError_call_3224", i8** %"$ud-registry.eError_58", align 8 - %"$$ud-registry.eError_58_3225" = load i8*, i8** %"$ud-registry.eError_58", align 8 - store i8* %"$$ud-registry.eError_58_3225", i8** %e3, align 8 - %"$e_3226" = load i8*, i8** %e3, align 8 - %"$_literal_cost_call_3228" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3226") - %"$gasrem_3229" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3230" = icmp ugt i64 %"$_literal_cost_call_3228", %"$gasrem_3229" - br i1 %"$gascmp_3230", label %"$out_of_gas_3231", label %"$have_gas_3232" + %"$gasrem_2737" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2738" = icmp ugt i64 1, %"$gasrem_2737" + br i1 %"$gascmp_2738", label %"$out_of_gas_2739", label %"$have_gas_2740" -"$out_of_gas_3231": ; preds = %"$have_gas_3218" +"$out_of_gas_2739": ; preds = %"$have_gas_2735" call void @_out_of_gas() - br label %"$have_gas_3232" - -"$have_gas_3232": ; preds = %"$out_of_gas_3231", %"$have_gas_3218" - %"$consume_3233" = sub i64 %"$gasrem_3229", %"$_literal_cost_call_3228" - store i64 %"$consume_3233", i64* @_gasrem, align 8 - %"$execptr_load_3234" = load i8*, i8** @_execptr, align 8 - %"$e_3235" = load i8*, i8** %e3, align 8 - call void @_event(i8* %"$execptr_load_3234", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3235") - br label %"$matchsucc_3054" - -"$empty_default_3058": ; preds = %"$have_gas_3052" - br label %"$matchsucc_3054" + br label %"$have_gas_2740" -"$matchsucc_3054": ; preds = %"$have_gas_3232", %"$matchsucc_3149", %"$empty_default_3058" +"$have_gas_2740": ; preds = %"$out_of_gas_2739", %"$have_gas_2735" + %"$consume_2741" = sub i64 %"$gasrem_2737", 1 + store i64 %"$consume_2741", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"$stringlit_2742", i32 0, i32 0), i32 21 }, %String* %m, align 8 + %"$gasrem_2743" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2744" = icmp ugt i64 1, %"$gasrem_2743" + br i1 %"$gascmp_2744", label %"$out_of_gas_2745", label %"$have_gas_2746" + +"$out_of_gas_2745": ; preds = %"$have_gas_2740" + call void @_out_of_gas() + br label %"$have_gas_2746" + +"$have_gas_2746": ; preds = %"$out_of_gas_2745", %"$have_gas_2740" + %"$consume_2747" = sub i64 %"$gasrem_2743", 1 + store i64 %"$consume_2747", i64* @_gasrem, align 8 + %"$ud-registry.eError_41" = alloca i8*, align 8 + %"$ud-registry.eError_2748" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_2749" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2748", 0 + %"$ud-registry.eError_envptr_2750" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_2748", 1 + %"$m_2751" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_2752" = call i8* %"$ud-registry.eError_fptr_2749"(i8* %"$ud-registry.eError_envptr_2750", %String %"$m_2751") + store i8* %"$ud-registry.eError_call_2752", i8** %"$ud-registry.eError_41", align 8 + %"$$ud-registry.eError_41_2753" = load i8*, i8** %"$ud-registry.eError_41", align 8 + store i8* %"$$ud-registry.eError_41_2753", i8** %e3, align 8 + %"$e_2754" = load i8*, i8** %e3, align 8 + %"$_literal_cost_call_2756" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2754") + %"$gasrem_2757" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2758" = icmp ugt i64 %"$_literal_cost_call_2756", %"$gasrem_2757" + br i1 %"$gascmp_2758", label %"$out_of_gas_2759", label %"$have_gas_2760" + +"$out_of_gas_2759": ; preds = %"$have_gas_2746" + call void @_out_of_gas() + br label %"$have_gas_2760" + +"$have_gas_2760": ; preds = %"$out_of_gas_2759", %"$have_gas_2746" + %"$consume_2761" = sub i64 %"$gasrem_2757", %"$_literal_cost_call_2756" + store i64 %"$consume_2761", i64* @_gasrem, align 8 + %"$execptr_load_2762" = load i8*, i8** @_execptr, align 8 + %"$e_2763" = load i8*, i8** %e3, align 8 + call void @_event(i8* %"$execptr_load_2762", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2763") + br label %"$matchsucc_2582" + +"$empty_default_2586": ; preds = %"$have_gas_2580" + br label %"$matchsucc_2582" + +"$matchsucc_2582": ; preds = %"$have_gas_2760", %"$matchsucc_2677", %"$empty_default_2586" ret void } define void @approve(i8* %0) { entry: - %"$_amount_3237" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3238" = bitcast i8* %"$_amount_3237" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3238", align 8 - %"$_origin_3239" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3240" = bitcast i8* %"$_origin_3239" to [20 x i8]* - %"$_sender_3241" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3242" = bitcast i8* %"$_sender_3241" to [20 x i8]* - %"$node_3243" = getelementptr i8, i8* %0, i32 56 - %"$node_3244" = bitcast i8* %"$node_3243" to [32 x i8]* - %"$address_3245" = getelementptr i8, i8* %0, i32 88 - %"$address_3246" = bitcast i8* %"$address_3245" to [20 x i8]* - call void @"$approve_2993"(%Uint128 %_amount, [20 x i8]* %"$_origin_3240", [20 x i8]* %"$_sender_3242", [32 x i8]* %"$node_3244", [20 x i8]* %"$address_3246") + %"$_amount_2765" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2766" = bitcast i8* %"$_amount_2765" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2766", align 8 + %"$_origin_2767" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2768" = bitcast i8* %"$_origin_2767" to [20 x i8]* + %"$_sender_2769" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2770" = bitcast i8* %"$_sender_2769" to [20 x i8]* + %"$node_2771" = getelementptr i8, i8* %0, i32 56 + %"$node_2772" = bitcast i8* %"$node_2771" to [32 x i8]* + %"$address_2773" = getelementptr i8, i8* %0, i32 88 + %"$address_2774" = bitcast i8* %"$address_2773" to [20 x i8]* + call void @"$approve_2521"(%Uint128 %_amount, [20 x i8]* %"$_origin_2768", [20 x i8]* %"$_sender_2770", [32 x i8]* %"$node_2772", [20 x i8]* %"$address_2774") ret void } -define internal void @"$approveFor_3247"(%Uint128 %_amount, [20 x i8]* %"$_origin_3248", [20 x i8]* %"$_sender_3249", [20 x i8]* %"$address_3250", %TName_Bool* %isApproved) { +define internal void @"$approveFor_2775"(%Uint128 %_amount, [20 x i8]* %"$_origin_2776", [20 x i8]* %"$_sender_2777", [20 x i8]* %"$address_2778", %TName_Bool* %isApproved) { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3248", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3249", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_3250", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2776", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2777", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_2778", align 1 %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_3251_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3251_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3251_salloc_load", i64 20) - %"$indices_buf_3251_salloc" = bitcast i8* %"$indices_buf_3251_salloc_salloc" to [20 x i8]* - %"$indices_buf_3251" = bitcast [20 x i8]* %"$indices_buf_3251_salloc" to i8* - %"$indices_gep_3252" = getelementptr i8, i8* %"$indices_buf_3251", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3252" to [20 x i8]* + %"$indices_buf_2779_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2779_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2779_salloc_load", i64 20) + %"$indices_buf_2779_salloc" = bitcast i8* %"$indices_buf_2779_salloc_salloc" to [20 x i8]* + %"$indices_buf_2779" = bitcast [20 x i8]* %"$indices_buf_2779_salloc" to i8* + %"$indices_gep_2780" = getelementptr i8, i8* %"$indices_buf_2779", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2780" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast, align 1 - %"$execptr_load_3254" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_3255" = call i8* @_fetch_field(i8* %"$execptr_load_3254", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3253", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_3251", i32 1) - %"$maybeOperators_3256" = bitcast i8* %"$maybeOperators_call_3255" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3256", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_3257" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_3257_3258" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3257" to i8* - %"$_literal_cost_call_3259" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", i8* %"$$maybeOperators_3257_3258") - %"$gasadd_3260" = add i64 %"$_literal_cost_call_3259", 0 - %"$gasadd_3261" = add i64 %"$gasadd_3260", 1 - %"$gasrem_3262" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3263" = icmp ugt i64 %"$gasadd_3261", %"$gasrem_3262" - br i1 %"$gascmp_3263", label %"$out_of_gas_3264", label %"$have_gas_3265" - -"$out_of_gas_3264": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3265" - -"$have_gas_3265": ; preds = %"$out_of_gas_3264", %entry - %"$consume_3266" = sub i64 %"$gasrem_3262", %"$gasadd_3261" - store i64 %"$consume_3266", i64* @_gasrem, align 8 - %"$gasrem_3267" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3268" = icmp ugt i64 1, %"$gasrem_3267" - br i1 %"$gascmp_3268", label %"$out_of_gas_3269", label %"$have_gas_3270" - -"$out_of_gas_3269": ; preds = %"$have_gas_3265" - call void @_out_of_gas() - br label %"$have_gas_3270" - -"$have_gas_3270": ; preds = %"$out_of_gas_3269", %"$have_gas_3265" - %"$consume_3271" = sub i64 %"$gasrem_3267", 1 - store i64 %"$consume_3271", i64* @_gasrem, align 8 + %"$execptr_load_2782" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_2783" = call i8* @_fetch_field(i8* %"$execptr_load_2782", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_2781", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_2779", i32 1) + %"$maybeOperators_2784" = bitcast i8* %"$maybeOperators_call_2783" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_2784", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_2785" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_2785_2786" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_2785" to i8* + %"$_literal_cost_call_2787" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", i8* %"$$maybeOperators_2785_2786") + %"$gasadd_2788" = add i64 %"$_literal_cost_call_2787", 0 + %"$gasadd_2789" = add i64 %"$gasadd_2788", 1 + %"$gasrem_2790" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2791" = icmp ugt i64 %"$gasadd_2789", %"$gasrem_2790" + br i1 %"$gascmp_2791", label %"$out_of_gas_2792", label %"$have_gas_2793" + +"$out_of_gas_2792": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2793" + +"$have_gas_2793": ; preds = %"$out_of_gas_2792", %entry + %"$consume_2794" = sub i64 %"$gasrem_2790", %"$gasadd_2789" + store i64 %"$consume_2794", i64* @_gasrem, align 8 + %"$gasrem_2795" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2796" = icmp ugt i64 1, %"$gasrem_2795" + br i1 %"$gascmp_2796", label %"$out_of_gas_2797", label %"$have_gas_2798" + +"$out_of_gas_2797": ; preds = %"$have_gas_2793" + call void @_out_of_gas() + br label %"$have_gas_2798" + +"$have_gas_2798": ; preds = %"$out_of_gas_2797", %"$have_gas_2793" + %"$consume_2799" = sub i64 %"$gasrem_2795", 1 + store i64 %"$consume_2799", i64* @_gasrem, align 8 %currentOperators = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_3272" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3273" = icmp ugt i64 2, %"$gasrem_3272" - br i1 %"$gascmp_3273", label %"$out_of_gas_3274", label %"$have_gas_3275" - -"$out_of_gas_3274": ; preds = %"$have_gas_3270" - call void @_out_of_gas() - br label %"$have_gas_3275" - -"$have_gas_3275": ; preds = %"$out_of_gas_3274", %"$have_gas_3270" - %"$consume_3276" = sub i64 %"$gasrem_3272", 2 - store i64 %"$consume_3276", i64* @_gasrem, align 8 - %"$maybeOperators_3278" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_tag_3279" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3278", i32 0, i32 0 - %"$maybeOperators_tag_3280" = load i8, i8* %"$maybeOperators_tag_3279", align 1 - switch i8 %"$maybeOperators_tag_3280", label %"$empty_default_3281" [ - i8 1, label %"$None_3282" - i8 0, label %"$Some_3290" + %"$gasrem_2800" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2801" = icmp ugt i64 2, %"$gasrem_2800" + br i1 %"$gascmp_2801", label %"$out_of_gas_2802", label %"$have_gas_2803" + +"$out_of_gas_2802": ; preds = %"$have_gas_2798" + call void @_out_of_gas() + br label %"$have_gas_2803" + +"$have_gas_2803": ; preds = %"$out_of_gas_2802", %"$have_gas_2798" + %"$consume_2804" = sub i64 %"$gasrem_2800", 2 + store i64 %"$consume_2804", i64* @_gasrem, align 8 + %"$maybeOperators_2806" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_tag_2807" = getelementptr inbounds %"TName_Option_List_(ByStr20)", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_2806", i32 0, i32 0 + %"$maybeOperators_tag_2808" = load i8, i8* %"$maybeOperators_tag_2807", align 1 + switch i8 %"$maybeOperators_tag_2808", label %"$empty_default_2809" [ + i8 1, label %"$None_2810" + i8 0, label %"$Some_2818" ] -"$None_3282": ; preds = %"$have_gas_3275" - %"$maybeOperators_3283" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3278" to %"CName_None_List_(ByStr20)"* - %"$gasrem_3284" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3285" = icmp ugt i64 1, %"$gasrem_3284" - br i1 %"$gascmp_3285", label %"$out_of_gas_3286", label %"$have_gas_3287" +"$None_2810": ; preds = %"$have_gas_2803" + %"$maybeOperators_2811" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_2806" to %"CName_None_List_(ByStr20)"* + %"$gasrem_2812" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2813" = icmp ugt i64 1, %"$gasrem_2812" + br i1 %"$gascmp_2813", label %"$out_of_gas_2814", label %"$have_gas_2815" -"$out_of_gas_3286": ; preds = %"$None_3282" +"$out_of_gas_2814": ; preds = %"$None_2810" call void @_out_of_gas() - br label %"$have_gas_3287" + br label %"$have_gas_2815" -"$have_gas_3287": ; preds = %"$out_of_gas_3286", %"$None_3282" - %"$consume_3288" = sub i64 %"$gasrem_3284", 1 - store i64 %"$consume_3288", i64* @_gasrem, align 8 - %"$ud-registry.nilByStr20_3289" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 - store %TName_List_ByStr20* %"$ud-registry.nilByStr20_3289", %TName_List_ByStr20** %currentOperators, align 8 - br label %"$matchsucc_3277" +"$have_gas_2815": ; preds = %"$out_of_gas_2814", %"$None_2810" + %"$consume_2816" = sub i64 %"$gasrem_2812", 1 + store i64 %"$consume_2816", i64* @_gasrem, align 8 + %"$ud-registry.nilByStr20_2817" = load %TName_List_ByStr20*, %TName_List_ByStr20** @ud-registry.nilByStr20, align 8 + store %TName_List_ByStr20* %"$ud-registry.nilByStr20_2817", %TName_List_ByStr20** %currentOperators, align 8 + br label %"$matchsucc_2805" -"$Some_3290": ; preds = %"$have_gas_3275" - %"$maybeOperators_3291" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3278" to %"CName_Some_List_(ByStr20)"* - %"$ops_gep_3292" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_3291", i32 0, i32 1 - %"$ops_load_3293" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ops_gep_3292", align 8 +"$Some_2818": ; preds = %"$have_gas_2803" + %"$maybeOperators_2819" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_2806" to %"CName_Some_List_(ByStr20)"* + %"$ops_gep_2820" = getelementptr inbounds %"CName_Some_List_(ByStr20)", %"CName_Some_List_(ByStr20)"* %"$maybeOperators_2819", i32 0, i32 1 + %"$ops_load_2821" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ops_gep_2820", align 8 %ops = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$ops_load_3293", %TName_List_ByStr20** %ops, align 8 - %"$gasrem_3294" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3295" = icmp ugt i64 1, %"$gasrem_3294" - br i1 %"$gascmp_3295", label %"$out_of_gas_3296", label %"$have_gas_3297" + store %TName_List_ByStr20* %"$ops_load_2821", %TName_List_ByStr20** %ops, align 8 + %"$gasrem_2822" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2823" = icmp ugt i64 1, %"$gasrem_2822" + br i1 %"$gascmp_2823", label %"$out_of_gas_2824", label %"$have_gas_2825" -"$out_of_gas_3296": ; preds = %"$Some_3290" +"$out_of_gas_2824": ; preds = %"$Some_2818" call void @_out_of_gas() - br label %"$have_gas_3297" + br label %"$have_gas_2825" -"$have_gas_3297": ; preds = %"$out_of_gas_3296", %"$Some_3290" - %"$consume_3298" = sub i64 %"$gasrem_3294", 1 - store i64 %"$consume_3298", i64* @_gasrem, align 8 - %"$ops_3299" = load %TName_List_ByStr20*, %TName_List_ByStr20** %ops, align 8 - store %TName_List_ByStr20* %"$ops_3299", %TName_List_ByStr20** %currentOperators, align 8 - br label %"$matchsucc_3277" +"$have_gas_2825": ; preds = %"$out_of_gas_2824", %"$Some_2818" + %"$consume_2826" = sub i64 %"$gasrem_2822", 1 + store i64 %"$consume_2826", i64* @_gasrem, align 8 + %"$ops_2827" = load %TName_List_ByStr20*, %TName_List_ByStr20** %ops, align 8 + store %TName_List_ByStr20* %"$ops_2827", %TName_List_ByStr20** %currentOperators, align 8 + br label %"$matchsucc_2805" -"$empty_default_3281": ; preds = %"$have_gas_3275" - br label %"$matchsucc_3277" +"$empty_default_2809": ; preds = %"$have_gas_2803" + br label %"$matchsucc_2805" -"$matchsucc_3277": ; preds = %"$have_gas_3297", %"$have_gas_3287", %"$empty_default_3281" - %"$gasrem_3300" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3301" = icmp ugt i64 1, %"$gasrem_3300" - br i1 %"$gascmp_3301", label %"$out_of_gas_3302", label %"$have_gas_3303" +"$matchsucc_2805": ; preds = %"$have_gas_2825", %"$have_gas_2815", %"$empty_default_2809" + %"$gasrem_2828" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2829" = icmp ugt i64 1, %"$gasrem_2828" + br i1 %"$gascmp_2829", label %"$out_of_gas_2830", label %"$have_gas_2831" -"$out_of_gas_3302": ; preds = %"$matchsucc_3277" +"$out_of_gas_2830": ; preds = %"$matchsucc_2805" call void @_out_of_gas() - br label %"$have_gas_3303" + br label %"$have_gas_2831" -"$have_gas_3303": ; preds = %"$out_of_gas_3302", %"$matchsucc_3277" - %"$consume_3304" = sub i64 %"$gasrem_3300", 1 - store i64 %"$consume_3304", i64* @_gasrem, align 8 +"$have_gas_2831": ; preds = %"$out_of_gas_2830", %"$matchsucc_2805" + %"$consume_2832" = sub i64 %"$gasrem_2828", 1 + store i64 %"$consume_2832", i64* @_gasrem, align 8 %needsToChange = alloca %TName_Bool*, align 8 - %"$gasrem_3305" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3306" = icmp ugt i64 1, %"$gasrem_3305" - br i1 %"$gascmp_3306", label %"$out_of_gas_3307", label %"$have_gas_3308" + %"$gasrem_2833" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2834" = icmp ugt i64 1, %"$gasrem_2833" + br i1 %"$gascmp_2834", label %"$out_of_gas_2835", label %"$have_gas_2836" -"$out_of_gas_3307": ; preds = %"$have_gas_3303" +"$out_of_gas_2835": ; preds = %"$have_gas_2831" call void @_out_of_gas() - br label %"$have_gas_3308" + br label %"$have_gas_2836" -"$have_gas_3308": ; preds = %"$out_of_gas_3307", %"$have_gas_3303" - %"$consume_3309" = sub i64 %"$gasrem_3305", 1 - store i64 %"$consume_3309", i64* @_gasrem, align 8 +"$have_gas_2836": ; preds = %"$out_of_gas_2835", %"$have_gas_2831" + %"$consume_2837" = sub i64 %"$gasrem_2833", 1 + store i64 %"$consume_2837", i64* @_gasrem, align 8 %b = alloca %TName_Bool*, align 8 - %"$gasrem_3310" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3311" = icmp ugt i64 1, %"$gasrem_3310" - br i1 %"$gascmp_3311", label %"$out_of_gas_3312", label %"$have_gas_3313" - -"$out_of_gas_3312": ; preds = %"$have_gas_3308" - call void @_out_of_gas() - br label %"$have_gas_3313" - -"$have_gas_3313": ; preds = %"$out_of_gas_3312", %"$have_gas_3308" - %"$consume_3314" = sub i64 %"$gasrem_3310", 1 - store i64 %"$consume_3314", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Excludes_65" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Excludes_3315" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Excludes, align 8 - %"$ud-registry.listByStr20Excludes_fptr_3316" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_3315", 0 - %"$ud-registry.listByStr20Excludes_envptr_3317" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Excludes_3315", 1 - %"$currentOperators_3318" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 - %"$ud-registry.listByStr20Excludes_call_3319" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_fptr_3316"(i8* %"$ud-registry.listByStr20Excludes_envptr_3317", %TName_List_ByStr20* %"$currentOperators_3318") - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_call_3319", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_65", align 8 - %"$ud-registry.listByStr20Excludes_66" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Excludes_65_3320" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Excludes_65", align 8 - %"$$ud-registry.listByStr20Excludes_65_fptr_3321" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_65_3320", 0 - %"$$ud-registry.listByStr20Excludes_65_envptr_3322" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Excludes_65_3320", 1 - %"$$ud-registry.listByStr20Excludes_65_address_3323" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20Excludes_65_address_3323", align 1 - %"$$ud-registry.listByStr20Excludes_65_call_3324" = call %TName_Bool* %"$$ud-registry.listByStr20Excludes_65_fptr_3321"(i8* %"$$ud-registry.listByStr20Excludes_65_envptr_3322", [20 x i8]* %"$$ud-registry.listByStr20Excludes_65_address_3323") - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_65_call_3324", %TName_Bool** %"$ud-registry.listByStr20Excludes_66", align 8 - %"$$ud-registry.listByStr20Excludes_66_3325" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Excludes_66", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Excludes_66_3325", %TName_Bool** %b, align 8 - %"$gasrem_3326" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3327" = icmp ugt i64 1, %"$gasrem_3326" - br i1 %"$gascmp_3327", label %"$out_of_gas_3328", label %"$have_gas_3329" - -"$out_of_gas_3328": ; preds = %"$have_gas_3313" - call void @_out_of_gas() - br label %"$have_gas_3329" - -"$have_gas_3329": ; preds = %"$out_of_gas_3328", %"$have_gas_3313" - %"$consume_3330" = sub i64 %"$gasrem_3326", 1 - store i64 %"$consume_3330", i64* @_gasrem, align 8 - %"$ud-registry.xandb_67" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$ud-registry.xandb_3331" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8 - %"$ud-registry.xandb_fptr_3332" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_3331", 0 - %"$ud-registry.xandb_envptr_3333" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_3331", 1 - %"$b_3334" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$ud-registry.xandb_call_3335" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_fptr_3332"(i8* %"$ud-registry.xandb_envptr_3333", %TName_Bool* %"$b_3334") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_call_3335", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_67", align 8 - %"$ud-registry.xandb_68" = alloca %TName_Bool*, align 8 - %"$$ud-registry.xandb_67_3336" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.xandb_67", align 8 - %"$$ud-registry.xandb_67_fptr_3337" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_67_3336", 0 - %"$$ud-registry.xandb_67_envptr_3338" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.xandb_67_3336", 1 - %"$$ud-registry.xandb_67_call_3339" = call %TName_Bool* %"$$ud-registry.xandb_67_fptr_3337"(i8* %"$$ud-registry.xandb_67_envptr_3338", %TName_Bool* %isApproved) - store %TName_Bool* %"$$ud-registry.xandb_67_call_3339", %TName_Bool** %"$ud-registry.xandb_68", align 8 - %"$$ud-registry.xandb_68_3340" = load %TName_Bool*, %TName_Bool** %"$ud-registry.xandb_68", align 8 - store %TName_Bool* %"$$ud-registry.xandb_68_3340", %TName_Bool** %needsToChange, align 8 - %"$gasrem_3341" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3342" = icmp ugt i64 2, %"$gasrem_3341" - br i1 %"$gascmp_3342", label %"$out_of_gas_3343", label %"$have_gas_3344" - -"$out_of_gas_3343": ; preds = %"$have_gas_3329" - call void @_out_of_gas() - br label %"$have_gas_3344" - -"$have_gas_3344": ; preds = %"$out_of_gas_3343", %"$have_gas_3329" - %"$consume_3345" = sub i64 %"$gasrem_3341", 2 - store i64 %"$consume_3345", i64* @_gasrem, align 8 - %"$needsToChange_3347" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 - %"$needsToChange_tag_3348" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_3347", i32 0, i32 0 - %"$needsToChange_tag_3349" = load i8, i8* %"$needsToChange_tag_3348", align 1 - switch i8 %"$needsToChange_tag_3349", label %"$default_3350" [ - i8 0, label %"$True_3351" + %"$gasrem_2838" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2839" = icmp ugt i64 1, %"$gasrem_2838" + br i1 %"$gascmp_2839", label %"$out_of_gas_2840", label %"$have_gas_2841" + +"$out_of_gas_2840": ; preds = %"$have_gas_2836" + call void @_out_of_gas() + br label %"$have_gas_2841" + +"$have_gas_2841": ; preds = %"$out_of_gas_2840", %"$have_gas_2836" + %"$consume_2842" = sub i64 %"$gasrem_2838", 1 + store i64 %"$consume_2842", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Excludes_2843" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Excludes, align 8 + %"$ud-registry.listByStr20Excludes_fptr_2844" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_2843", 0 + %"$ud-registry.listByStr20Excludes_envptr_2845" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Excludes_2843", 1 + %"$currentOperators_2846" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 + %"$ud-registry.listByStr20Excludes_address_2847" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.listByStr20Excludes_address_2847", align 1 + %"$ud-registry.listByStr20Excludes_call_2848" = call %TName_Bool* %"$ud-registry.listByStr20Excludes_fptr_2844"(i8* %"$ud-registry.listByStr20Excludes_envptr_2845", %TName_List_ByStr20* %"$currentOperators_2846", [20 x i8]* %"$ud-registry.listByStr20Excludes_address_2847") + store %TName_Bool* %"$ud-registry.listByStr20Excludes_call_2848", %TName_Bool** %b, align 8 + %"$gasrem_2849" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2850" = icmp ugt i64 1, %"$gasrem_2849" + br i1 %"$gascmp_2850", label %"$out_of_gas_2851", label %"$have_gas_2852" + +"$out_of_gas_2851": ; preds = %"$have_gas_2841" + call void @_out_of_gas() + br label %"$have_gas_2852" + +"$have_gas_2852": ; preds = %"$out_of_gas_2851", %"$have_gas_2841" + %"$consume_2853" = sub i64 %"$gasrem_2849", 1 + store i64 %"$consume_2853", i64* @_gasrem, align 8 + %"$ud-registry.xandb_2854" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @ud-registry.xandb, align 8 + %"$ud-registry.xandb_fptr_2855" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2854", 0 + %"$ud-registry.xandb_envptr_2856" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$ud-registry.xandb_2854", 1 + %"$b_2857" = load %TName_Bool*, %TName_Bool** %b, align 8 + %"$ud-registry.xandb_call_2858" = call %TName_Bool* %"$ud-registry.xandb_fptr_2855"(i8* %"$ud-registry.xandb_envptr_2856", %TName_Bool* %"$b_2857", %TName_Bool* %isApproved) + store %TName_Bool* %"$ud-registry.xandb_call_2858", %TName_Bool** %needsToChange, align 8 + %"$gasrem_2859" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2860" = icmp ugt i64 2, %"$gasrem_2859" + br i1 %"$gascmp_2860", label %"$out_of_gas_2861", label %"$have_gas_2862" + +"$out_of_gas_2861": ; preds = %"$have_gas_2852" + call void @_out_of_gas() + br label %"$have_gas_2862" + +"$have_gas_2862": ; preds = %"$out_of_gas_2861", %"$have_gas_2852" + %"$consume_2863" = sub i64 %"$gasrem_2859", 2 + store i64 %"$consume_2863", i64* @_gasrem, align 8 + %"$needsToChange_2865" = load %TName_Bool*, %TName_Bool** %needsToChange, align 8 + %"$needsToChange_tag_2866" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$needsToChange_2865", i32 0, i32 0 + %"$needsToChange_tag_2867" = load i8, i8* %"$needsToChange_tag_2866", align 1 + switch i8 %"$needsToChange_tag_2867", label %"$default_2868" [ + i8 0, label %"$True_2869" ] -"$True_3351": ; preds = %"$have_gas_3344" - %"$needsToChange_3352" = bitcast %TName_Bool* %"$needsToChange_3347" to %CName_True* - %"$gasrem_3353" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3354" = icmp ugt i64 1, %"$gasrem_3353" - br i1 %"$gascmp_3354", label %"$out_of_gas_3355", label %"$have_gas_3356" +"$True_2869": ; preds = %"$have_gas_2862" + %"$needsToChange_2870" = bitcast %TName_Bool* %"$needsToChange_2865" to %CName_True* + %"$gasrem_2871" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2872" = icmp ugt i64 1, %"$gasrem_2871" + br i1 %"$gascmp_2872", label %"$out_of_gas_2873", label %"$have_gas_2874" -"$out_of_gas_3355": ; preds = %"$True_3351" +"$out_of_gas_2873": ; preds = %"$True_2869" call void @_out_of_gas() - br label %"$have_gas_3356" + br label %"$have_gas_2874" -"$have_gas_3356": ; preds = %"$out_of_gas_3355", %"$True_3351" - %"$consume_3357" = sub i64 %"$gasrem_3353", 1 - store i64 %"$consume_3357", i64* @_gasrem, align 8 +"$have_gas_2874": ; preds = %"$out_of_gas_2873", %"$True_2869" + %"$consume_2875" = sub i64 %"$gasrem_2871", 1 + store i64 %"$consume_2875", i64* @_gasrem, align 8 %newOperators = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_3358" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3359" = icmp ugt i64 2, %"$gasrem_3358" - br i1 %"$gascmp_3359", label %"$out_of_gas_3360", label %"$have_gas_3361" - -"$out_of_gas_3360": ; preds = %"$have_gas_3356" - call void @_out_of_gas() - br label %"$have_gas_3361" - -"$have_gas_3361": ; preds = %"$out_of_gas_3360", %"$have_gas_3356" - %"$consume_3362" = sub i64 %"$gasrem_3358", 2 - store i64 %"$consume_3362", i64* @_gasrem, align 8 - %"$isApproved_tag_3364" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 - %"$isApproved_tag_3365" = load i8, i8* %"$isApproved_tag_3364", align 1 - switch i8 %"$isApproved_tag_3365", label %"$empty_default_3366" [ - i8 0, label %"$True_3367" - i8 1, label %"$False_3380" + %"$gasrem_2876" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2877" = icmp ugt i64 2, %"$gasrem_2876" + br i1 %"$gascmp_2877", label %"$out_of_gas_2878", label %"$have_gas_2879" + +"$out_of_gas_2878": ; preds = %"$have_gas_2874" + call void @_out_of_gas() + br label %"$have_gas_2879" + +"$have_gas_2879": ; preds = %"$out_of_gas_2878", %"$have_gas_2874" + %"$consume_2880" = sub i64 %"$gasrem_2876", 2 + store i64 %"$consume_2880", i64* @_gasrem, align 8 + %"$isApproved_tag_2882" = getelementptr inbounds %TName_Bool, %TName_Bool* %isApproved, i32 0, i32 0 + %"$isApproved_tag_2883" = load i8, i8* %"$isApproved_tag_2882", align 1 + switch i8 %"$isApproved_tag_2883", label %"$empty_default_2884" [ + i8 0, label %"$True_2885" + i8 1, label %"$False_2898" ] -"$True_3367": ; preds = %"$have_gas_3361" - %"$isApproved_3368" = bitcast %TName_Bool* %isApproved to %CName_True* - %"$gasrem_3369" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3370" = icmp ugt i64 1, %"$gasrem_3369" - br i1 %"$gascmp_3370", label %"$out_of_gas_3371", label %"$have_gas_3372" - -"$out_of_gas_3371": ; preds = %"$True_3367" - call void @_out_of_gas() - br label %"$have_gas_3372" - -"$have_gas_3372": ; preds = %"$out_of_gas_3371", %"$True_3367" - %"$consume_3373" = sub i64 %"$gasrem_3369", 1 - store i64 %"$consume_3373", i64* @_gasrem, align 8 - %"$currentOperators_3374" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 - %"$adtval_3375_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3375_salloc" = call i8* @_salloc(i8* %"$adtval_3375_load", i64 29) - %"$adtval_3375" = bitcast i8* %"$adtval_3375_salloc" to %CName_Cons_ByStr20* - %"$adtgep_3376" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_3375", i32 0, i32 0 - store i8 0, i8* %"$adtgep_3376", align 1 - %"$adtgep_3377" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_3375", i32 0, i32 1 - store [20 x i8] %address, [20 x i8]* %"$adtgep_3377", align 1 - %"$adtgep_3378" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_3375", i32 0, i32 2 - store %TName_List_ByStr20* %"$currentOperators_3374", %TName_List_ByStr20** %"$adtgep_3378", align 8 - %"$adtptr_3379" = bitcast %CName_Cons_ByStr20* %"$adtval_3375" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_3379", %TName_List_ByStr20** %newOperators, align 8 - br label %"$matchsucc_3363" - -"$False_3380": ; preds = %"$have_gas_3361" - %"$isApproved_3381" = bitcast %TName_Bool* %isApproved to %CName_False* - %"$gasrem_3382" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3383" = icmp ugt i64 1, %"$gasrem_3382" - br i1 %"$gascmp_3383", label %"$out_of_gas_3384", label %"$have_gas_3385" - -"$out_of_gas_3384": ; preds = %"$False_3380" - call void @_out_of_gas() - br label %"$have_gas_3385" - -"$have_gas_3385": ; preds = %"$out_of_gas_3384", %"$False_3380" - %"$consume_3386" = sub i64 %"$gasrem_3382", 1 - store i64 %"$consume_3386", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20FilterOut_63" = alloca { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20FilterOut_3387" = load { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8 - %"$ud-registry.listByStr20FilterOut_fptr_3388" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_3387", 0 - %"$ud-registry.listByStr20FilterOut_envptr_3389" = extractvalue { { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20FilterOut_3387", 1 - %"$currentOperators_3390" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 - %"$ud-registry.listByStr20FilterOut_call_3391" = call { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_fptr_3388"(i8* %"$ud-registry.listByStr20FilterOut_envptr_3389", %TName_List_ByStr20* %"$currentOperators_3390") - store { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_call_3391", { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_63", align 8 - %"$ud-registry.listByStr20FilterOut_64" = alloca %TName_List_ByStr20*, align 8 - %"$$ud-registry.listByStr20FilterOut_63_3392" = load { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20FilterOut_63", align 8 - %"$$ud-registry.listByStr20FilterOut_63_fptr_3393" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_63_3392", 0 - %"$$ud-registry.listByStr20FilterOut_63_envptr_3394" = extractvalue { %TName_List_ByStr20* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20FilterOut_63_3392", 1 - %"$$ud-registry.listByStr20FilterOut_63_address_3395" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.listByStr20FilterOut_63_address_3395", align 1 - %"$$ud-registry.listByStr20FilterOut_63_call_3396" = call %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_63_fptr_3393"(i8* %"$$ud-registry.listByStr20FilterOut_63_envptr_3394", [20 x i8]* %"$$ud-registry.listByStr20FilterOut_63_address_3395") - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_63_call_3396", %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_64", align 8 - %"$$ud-registry.listByStr20FilterOut_64_3397" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$ud-registry.listByStr20FilterOut_64", align 8 - store %TName_List_ByStr20* %"$$ud-registry.listByStr20FilterOut_64_3397", %TName_List_ByStr20** %newOperators, align 8 - br label %"$matchsucc_3363" - -"$empty_default_3366": ; preds = %"$have_gas_3361" - br label %"$matchsucc_3363" - -"$matchsucc_3363": ; preds = %"$have_gas_3385", %"$have_gas_3372", %"$empty_default_3366" - %"$newOperators_3398" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 - %"$$newOperators_3398_3399" = bitcast %TName_List_ByStr20* %"$newOperators_3398" to i8* - %"$_literal_cost_call_3400" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i8* %"$$newOperators_3398_3399") - %"$gasadd_3401" = add i64 %"$_literal_cost_call_3400", 1 - %"$gasrem_3402" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3403" = icmp ugt i64 %"$gasadd_3401", %"$gasrem_3402" - br i1 %"$gascmp_3403", label %"$out_of_gas_3404", label %"$have_gas_3405" - -"$out_of_gas_3404": ; preds = %"$matchsucc_3363" - call void @_out_of_gas() - br label %"$have_gas_3405" - -"$have_gas_3405": ; preds = %"$out_of_gas_3404", %"$matchsucc_3363" - %"$consume_3406" = sub i64 %"$gasrem_3402", %"$gasadd_3401" - store i64 %"$consume_3406", i64* @_gasrem, align 8 - %"$indices_buf_3407_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3407_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3407_salloc_load", i64 20) - %"$indices_buf_3407_salloc" = bitcast i8* %"$indices_buf_3407_salloc_salloc" to [20 x i8]* - %"$indices_buf_3407" = bitcast [20 x i8]* %"$indices_buf_3407_salloc" to i8* - %"$indices_gep_3408" = getelementptr i8, i8* %"$indices_buf_3407", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_3408" to [20 x i8]* +"$True_2885": ; preds = %"$have_gas_2879" + %"$isApproved_2886" = bitcast %TName_Bool* %isApproved to %CName_True* + %"$gasrem_2887" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2888" = icmp ugt i64 1, %"$gasrem_2887" + br i1 %"$gascmp_2888", label %"$out_of_gas_2889", label %"$have_gas_2890" + +"$out_of_gas_2889": ; preds = %"$True_2885" + call void @_out_of_gas() + br label %"$have_gas_2890" + +"$have_gas_2890": ; preds = %"$out_of_gas_2889", %"$True_2885" + %"$consume_2891" = sub i64 %"$gasrem_2887", 1 + store i64 %"$consume_2891", i64* @_gasrem, align 8 + %"$currentOperators_2892" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 + %"$adtval_2893_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_2893_salloc" = call i8* @_salloc(i8* %"$adtval_2893_load", i64 29) + %"$adtval_2893" = bitcast i8* %"$adtval_2893_salloc" to %CName_Cons_ByStr20* + %"$adtgep_2894" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2893", i32 0, i32 0 + store i8 0, i8* %"$adtgep_2894", align 1 + %"$adtgep_2895" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2893", i32 0, i32 1 + store [20 x i8] %address, [20 x i8]* %"$adtgep_2895", align 1 + %"$adtgep_2896" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$adtval_2893", i32 0, i32 2 + store %TName_List_ByStr20* %"$currentOperators_2892", %TName_List_ByStr20** %"$adtgep_2896", align 8 + %"$adtptr_2897" = bitcast %CName_Cons_ByStr20* %"$adtval_2893" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_2897", %TName_List_ByStr20** %newOperators, align 8 + br label %"$matchsucc_2881" + +"$False_2898": ; preds = %"$have_gas_2879" + %"$isApproved_2899" = bitcast %TName_Bool* %isApproved to %CName_False* + %"$gasrem_2900" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2901" = icmp ugt i64 1, %"$gasrem_2900" + br i1 %"$gascmp_2901", label %"$out_of_gas_2902", label %"$have_gas_2903" + +"$out_of_gas_2902": ; preds = %"$False_2898" + call void @_out_of_gas() + br label %"$have_gas_2903" + +"$have_gas_2903": ; preds = %"$out_of_gas_2902", %"$False_2898" + %"$consume_2904" = sub i64 %"$gasrem_2900", 1 + store i64 %"$consume_2904", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20FilterOut_2905" = load { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20FilterOut, align 8 + %"$ud-registry.listByStr20FilterOut_fptr_2906" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_2905", 0 + %"$ud-registry.listByStr20FilterOut_envptr_2907" = extractvalue { %TName_List_ByStr20* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20FilterOut_2905", 1 + %"$currentOperators_2908" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentOperators, align 8 + %"$ud-registry.listByStr20FilterOut_address_2909" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.listByStr20FilterOut_address_2909", align 1 + %"$ud-registry.listByStr20FilterOut_call_2910" = call %TName_List_ByStr20* %"$ud-registry.listByStr20FilterOut_fptr_2906"(i8* %"$ud-registry.listByStr20FilterOut_envptr_2907", %TName_List_ByStr20* %"$currentOperators_2908", [20 x i8]* %"$ud-registry.listByStr20FilterOut_address_2909") + store %TName_List_ByStr20* %"$ud-registry.listByStr20FilterOut_call_2910", %TName_List_ByStr20** %newOperators, align 8 + br label %"$matchsucc_2881" + +"$empty_default_2884": ; preds = %"$have_gas_2879" + br label %"$matchsucc_2881" + +"$matchsucc_2881": ; preds = %"$have_gas_2903", %"$have_gas_2890", %"$empty_default_2884" + %"$newOperators_2911" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 + %"$$newOperators_2911_2912" = bitcast %TName_List_ByStr20* %"$newOperators_2911" to i8* + %"$_literal_cost_call_2913" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i8* %"$$newOperators_2911_2912") + %"$gasadd_2914" = add i64 %"$_literal_cost_call_2913", 1 + %"$gasrem_2915" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2916" = icmp ugt i64 %"$gasadd_2914", %"$gasrem_2915" + br i1 %"$gascmp_2916", label %"$out_of_gas_2917", label %"$have_gas_2918" + +"$out_of_gas_2917": ; preds = %"$matchsucc_2881" + call void @_out_of_gas() + br label %"$have_gas_2918" + +"$have_gas_2918": ; preds = %"$out_of_gas_2917", %"$matchsucc_2881" + %"$consume_2919" = sub i64 %"$gasrem_2915", %"$gasadd_2914" + store i64 %"$consume_2919", i64* @_gasrem, align 8 + %"$indices_buf_2920_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2920_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2920_salloc_load", i64 20) + %"$indices_buf_2920_salloc" = bitcast i8* %"$indices_buf_2920_salloc_salloc" to [20 x i8]* + %"$indices_buf_2920" = bitcast [20 x i8]* %"$indices_buf_2920_salloc" to i8* + %"$indices_gep_2921" = getelementptr i8, i8* %"$indices_buf_2920", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_2921" to [20 x i8]* store [20 x i8] %_sender, [20 x i8]* %indices_cast1, align 1 - %"$execptr_load_3409" = load i8*, i8** @_execptr, align 8 - %"$newOperators_3411" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 - %"$update_value_3412" = bitcast %TName_List_ByStr20* %"$newOperators_3411" to i8* - call void @_update_field(i8* %"$execptr_load_3409", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3410", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_3407", i8* %"$update_value_3412") - %"$gasrem_3413" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3414" = icmp ugt i64 1, %"$gasrem_3413" - br i1 %"$gascmp_3414", label %"$out_of_gas_3415", label %"$have_gas_3416" + %"$execptr_load_2922" = load i8*, i8** @_execptr, align 8 + %"$newOperators_2924" = load %TName_List_ByStr20*, %TName_List_ByStr20** %newOperators, align 8 + %"$update_value_2925" = bitcast %TName_List_ByStr20* %"$newOperators_2924" to i8* + call void @_update_field(i8* %"$execptr_load_2922", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_2923", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_2920", i8* %"$update_value_2925") + %"$gasrem_2926" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2927" = icmp ugt i64 1, %"$gasrem_2926" + br i1 %"$gascmp_2927", label %"$out_of_gas_2928", label %"$have_gas_2929" -"$out_of_gas_3415": ; preds = %"$have_gas_3405" +"$out_of_gas_2928": ; preds = %"$have_gas_2918" call void @_out_of_gas() - br label %"$have_gas_3416" + br label %"$have_gas_2929" -"$have_gas_3416": ; preds = %"$out_of_gas_3415", %"$have_gas_3405" - %"$consume_3417" = sub i64 %"$gasrem_3413", 1 - store i64 %"$consume_3417", i64* @_gasrem, align 8 +"$have_gas_2929": ; preds = %"$out_of_gas_2928", %"$have_gas_2918" + %"$consume_2930" = sub i64 %"$gasrem_2926", 1 + store i64 %"$consume_2930", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_3418" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3419" = icmp ugt i64 1, %"$gasrem_3418" - br i1 %"$gascmp_3419", label %"$out_of_gas_3420", label %"$have_gas_3421" - -"$out_of_gas_3420": ; preds = %"$have_gas_3416" - call void @_out_of_gas() - br label %"$have_gas_3421" - -"$have_gas_3421": ; preds = %"$out_of_gas_3420", %"$have_gas_3416" - %"$consume_3422" = sub i64 %"$gasrem_3418", 1 - store i64 %"$consume_3422", i64* @_gasrem, align 8 - %"$ud-registry.eApprovedFor_60" = alloca { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eApprovedFor_3423" = load { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.eApprovedFor, align 8 - %"$ud-registry.eApprovedFor_fptr_3424" = extractvalue { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_3423", 0 - %"$ud-registry.eApprovedFor_envptr_3425" = extractvalue { { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_3423", 1 - %"$ud-registry.eApprovedFor__sender_3426" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.eApprovedFor__sender_3426", align 1 - %"$ud-registry.eApprovedFor_call_3427" = call { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_fptr_3424"(i8* %"$ud-registry.eApprovedFor_envptr_3425", [20 x i8]* %"$ud-registry.eApprovedFor__sender_3426") - store { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eApprovedFor_call_3427", { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eApprovedFor_60", align 8 - %"$ud-registry.eApprovedFor_61" = alloca { i8* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$$ud-registry.eApprovedFor_60_3428" = load { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eApprovedFor_60", align 8 - %"$$ud-registry.eApprovedFor_60_fptr_3429" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eApprovedFor_60_3428", 0 - %"$$ud-registry.eApprovedFor_60_envptr_3430" = extractvalue { { i8* (i8*, %TName_Bool*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eApprovedFor_60_3428", 1 - %"$$ud-registry.eApprovedFor_60_address_3431" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$$ud-registry.eApprovedFor_60_address_3431", align 1 - %"$$ud-registry.eApprovedFor_60_call_3432" = call { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_60_fptr_3429"(i8* %"$$ud-registry.eApprovedFor_60_envptr_3430", [20 x i8]* %"$$ud-registry.eApprovedFor_60_address_3431") - store { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_60_call_3432", { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eApprovedFor_61", align 8 - %"$ud-registry.eApprovedFor_62" = alloca i8*, align 8 - %"$$ud-registry.eApprovedFor_61_3433" = load { i8* (i8*, %TName_Bool*)*, i8* }, { i8* (i8*, %TName_Bool*)*, i8* }* %"$ud-registry.eApprovedFor_61", align 8 - %"$$ud-registry.eApprovedFor_61_fptr_3434" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_61_3433", 0 - %"$$ud-registry.eApprovedFor_61_envptr_3435" = extractvalue { i8* (i8*, %TName_Bool*)*, i8* } %"$$ud-registry.eApprovedFor_61_3433", 1 - %"$$ud-registry.eApprovedFor_61_call_3436" = call i8* %"$$ud-registry.eApprovedFor_61_fptr_3434"(i8* %"$$ud-registry.eApprovedFor_61_envptr_3435", %TName_Bool* %isApproved) - store i8* %"$$ud-registry.eApprovedFor_61_call_3436", i8** %"$ud-registry.eApprovedFor_62", align 8 - %"$$ud-registry.eApprovedFor_62_3437" = load i8*, i8** %"$ud-registry.eApprovedFor_62", align 8 - store i8* %"$$ud-registry.eApprovedFor_62_3437", i8** %e, align 8 - %"$e_3438" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_3440" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3438") - %"$gasrem_3441" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3442" = icmp ugt i64 %"$_literal_cost_call_3440", %"$gasrem_3441" - br i1 %"$gascmp_3442", label %"$out_of_gas_3443", label %"$have_gas_3444" - -"$out_of_gas_3443": ; preds = %"$have_gas_3421" - call void @_out_of_gas() - br label %"$have_gas_3444" - -"$have_gas_3444": ; preds = %"$out_of_gas_3443", %"$have_gas_3421" - %"$consume_3445" = sub i64 %"$gasrem_3441", %"$_literal_cost_call_3440" - store i64 %"$consume_3445", i64* @_gasrem, align 8 - %"$execptr_load_3446" = load i8*, i8** @_execptr, align 8 - %"$e_3447" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_3446", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3447") - br label %"$matchsucc_3346" - -"$default_3350": ; preds = %"$have_gas_3344" + %"$gasrem_2931" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2932" = icmp ugt i64 1, %"$gasrem_2931" + br i1 %"$gascmp_2932", label %"$out_of_gas_2933", label %"$have_gas_2934" + +"$out_of_gas_2933": ; preds = %"$have_gas_2929" + call void @_out_of_gas() + br label %"$have_gas_2934" + +"$have_gas_2934": ; preds = %"$out_of_gas_2933", %"$have_gas_2929" + %"$consume_2935" = sub i64 %"$gasrem_2931", 1 + store i64 %"$consume_2935", i64* @_gasrem, align 8 + %"$ud-registry.eApprovedFor_2936" = load { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* }, { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* }* @ud-registry.eApprovedFor, align 8 + %"$ud-registry.eApprovedFor_fptr_2937" = extractvalue { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-registry.eApprovedFor_2936", 0 + %"$ud-registry.eApprovedFor_envptr_2938" = extractvalue { i8* (i8*, [20 x i8]*, [20 x i8]*, %TName_Bool*)*, i8* } %"$ud-registry.eApprovedFor_2936", 1 + %"$ud-registry.eApprovedFor__sender_2939" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.eApprovedFor__sender_2939", align 1 + %"$ud-registry.eApprovedFor_address_2940" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.eApprovedFor_address_2940", align 1 + %"$ud-registry.eApprovedFor_call_2941" = call i8* %"$ud-registry.eApprovedFor_fptr_2937"(i8* %"$ud-registry.eApprovedFor_envptr_2938", [20 x i8]* %"$ud-registry.eApprovedFor__sender_2939", [20 x i8]* %"$ud-registry.eApprovedFor_address_2940", %TName_Bool* %isApproved) + store i8* %"$ud-registry.eApprovedFor_call_2941", i8** %e, align 8 + %"$e_2942" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_2944" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2942") + %"$gasrem_2945" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2946" = icmp ugt i64 %"$_literal_cost_call_2944", %"$gasrem_2945" + br i1 %"$gascmp_2946", label %"$out_of_gas_2947", label %"$have_gas_2948" + +"$out_of_gas_2947": ; preds = %"$have_gas_2934" + call void @_out_of_gas() + br label %"$have_gas_2948" + +"$have_gas_2948": ; preds = %"$out_of_gas_2947", %"$have_gas_2934" + %"$consume_2949" = sub i64 %"$gasrem_2945", %"$_literal_cost_call_2944" + store i64 %"$consume_2949", i64* @_gasrem, align 8 + %"$execptr_load_2950" = load i8*, i8** @_execptr, align 8 + %"$e_2951" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_2950", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_2951") + br label %"$matchsucc_2864" + +"$default_2868": ; preds = %"$have_gas_2862" br label %"$joinp_6" -"$joinp_6": ; preds = %"$default_3350" - br label %"$matchsucc_3346" +"$joinp_6": ; preds = %"$default_2868" + br label %"$matchsucc_2864" -"$matchsucc_3346": ; preds = %"$have_gas_3444", %"$joinp_6" +"$matchsucc_2864": ; preds = %"$have_gas_2948", %"$joinp_6" ret void } define void @approveFor(i8* %0) { entry: - %"$_amount_3449" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3450" = bitcast i8* %"$_amount_3449" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3450", align 8 - %"$_origin_3451" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3452" = bitcast i8* %"$_origin_3451" to [20 x i8]* - %"$_sender_3453" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3454" = bitcast i8* %"$_sender_3453" to [20 x i8]* - %"$address_3455" = getelementptr i8, i8* %0, i32 56 - %"$address_3456" = bitcast i8* %"$address_3455" to [20 x i8]* - %"$isApproved_3457" = getelementptr i8, i8* %0, i32 76 - %"$isApproved_3458" = bitcast i8* %"$isApproved_3457" to %TName_Bool** - %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_3458", align 8 - call void @"$approveFor_3247"(%Uint128 %_amount, [20 x i8]* %"$_origin_3452", [20 x i8]* %"$_sender_3454", [20 x i8]* %"$address_3456", %TName_Bool* %isApproved) + %"$_amount_2953" = getelementptr i8, i8* %0, i32 0 + %"$_amount_2954" = bitcast i8* %"$_amount_2953" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_2954", align 8 + %"$_origin_2955" = getelementptr i8, i8* %0, i32 16 + %"$_origin_2956" = bitcast i8* %"$_origin_2955" to [20 x i8]* + %"$_sender_2957" = getelementptr i8, i8* %0, i32 36 + %"$_sender_2958" = bitcast i8* %"$_sender_2957" to [20 x i8]* + %"$address_2959" = getelementptr i8, i8* %0, i32 56 + %"$address_2960" = bitcast i8* %"$address_2959" to [20 x i8]* + %"$isApproved_2961" = getelementptr i8, i8* %0, i32 76 + %"$isApproved_2962" = bitcast i8* %"$isApproved_2961" to %TName_Bool** + %isApproved = load %TName_Bool*, %TName_Bool** %"$isApproved_2962", align 8 + call void @"$approveFor_2775"(%Uint128 %_amount, [20 x i8]* %"$_origin_2956", [20 x i8]* %"$_sender_2958", [20 x i8]* %"$address_2960", %TName_Bool* %isApproved) ret void } -define internal void @"$configureNode_3459"(%Uint128 %_amount, [20 x i8]* %"$_origin_3460", [20 x i8]* %"$_sender_3461", [32 x i8]* %"$node_3462", [20 x i8]* %"$owner_3463", [20 x i8]* %"$resolver_3464") { +define internal void @"$configureNode_2963"(%Uint128 %_amount, [20 x i8]* %"$_origin_2964", [20 x i8]* %"$_sender_2965", [32 x i8]* %"$node_2966", [20 x i8]* %"$owner_2967", [20 x i8]* %"$resolver_2968") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3460", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3461", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_3462", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_3463", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_3464", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_2964", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_2965", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_2966", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_2967", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_2968", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_3465_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3465_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3465_salloc_load", i64 32) - %"$indices_buf_3465_salloc" = bitcast i8* %"$indices_buf_3465_salloc_salloc" to [32 x i8]* - %"$indices_buf_3465" = bitcast [32 x i8]* %"$indices_buf_3465_salloc" to i8* - %"$indices_gep_3466" = getelementptr i8, i8* %"$indices_buf_3465", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3466" to [32 x i8]* + %"$indices_buf_2969_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2969_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2969_salloc_load", i64 32) + %"$indices_buf_2969_salloc" = bitcast i8* %"$indices_buf_2969_salloc_salloc" to [32 x i8]* + %"$indices_buf_2969" = bitcast [32 x i8]* %"$indices_buf_2969_salloc" to i8* + %"$indices_gep_2970" = getelementptr i8, i8* %"$indices_buf_2969", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_2970" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_3468" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_3469" = call i8* @_fetch_field(i8* %"$execptr_load_3468", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3467", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_3465", i32 1) - %"$maybeRecord_3470" = bitcast i8* %"$maybeRecord_call_3469" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_3470", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_3471" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_3471_3472" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3471" to i8* - %"$_literal_cost_call_3473" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_3471_3472") - %"$gasadd_3474" = add i64 %"$_literal_cost_call_3473", 0 - %"$gasadd_3475" = add i64 %"$gasadd_3474", 1 - %"$gasrem_3476" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3477" = icmp ugt i64 %"$gasadd_3475", %"$gasrem_3476" - br i1 %"$gascmp_3477", label %"$out_of_gas_3478", label %"$have_gas_3479" - -"$out_of_gas_3478": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3479" - -"$have_gas_3479": ; preds = %"$out_of_gas_3478", %entry - %"$consume_3480" = sub i64 %"$gasrem_3476", %"$gasadd_3475" - store i64 %"$consume_3480", i64* @_gasrem, align 8 + %"$execptr_load_2972" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_2973" = call i8* @_fetch_field(i8* %"$execptr_load_2972", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_2971", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_2969", i32 1) + %"$maybeRecord_2974" = bitcast i8* %"$maybeRecord_call_2973" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_2974", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_2975" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_2975_2976" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_2975" to i8* + %"$_literal_cost_call_2977" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_2975_2976") + %"$gasadd_2978" = add i64 %"$_literal_cost_call_2977", 0 + %"$gasadd_2979" = add i64 %"$gasadd_2978", 1 + %"$gasrem_2980" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2981" = icmp ugt i64 %"$gasadd_2979", %"$gasrem_2980" + br i1 %"$gascmp_2981", label %"$out_of_gas_2982", label %"$have_gas_2983" + +"$out_of_gas_2982": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_2983" + +"$have_gas_2983": ; preds = %"$out_of_gas_2982", %entry + %"$consume_2984" = sub i64 %"$gasrem_2980", %"$gasadd_2979" + store i64 %"$consume_2984", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_3481_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3481_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3481_salloc_load", i64 32) - %"$indices_buf_3481_salloc" = bitcast i8* %"$indices_buf_3481_salloc_salloc" to [32 x i8]* - %"$indices_buf_3481" = bitcast [32 x i8]* %"$indices_buf_3481_salloc" to i8* - %"$indices_gep_3482" = getelementptr i8, i8* %"$indices_buf_3481", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_3482" to [32 x i8]* + %"$indices_buf_2985_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_2985_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_2985_salloc_load", i64 32) + %"$indices_buf_2985_salloc" = bitcast i8* %"$indices_buf_2985_salloc_salloc" to [32 x i8]* + %"$indices_buf_2985" = bitcast [32 x i8]* %"$indices_buf_2985_salloc" to i8* + %"$indices_gep_2986" = getelementptr i8, i8* %"$indices_buf_2985", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_2986" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_3484" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_3485" = call i8* @_fetch_field(i8* %"$execptr_load_3484", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3483", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_3481", i32 1) - %"$maybeApproved_3486" = bitcast i8* %"$maybeApproved_call_3485" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_3486", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_3487" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_3487_3488" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3487" to i8* - %"$_literal_cost_call_3489" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_3487_3488") - %"$gasadd_3490" = add i64 %"$_literal_cost_call_3489", 0 - %"$gasadd_3491" = add i64 %"$gasadd_3490", 1 - %"$gasrem_3492" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3493" = icmp ugt i64 %"$gasadd_3491", %"$gasrem_3492" - br i1 %"$gascmp_3493", label %"$out_of_gas_3494", label %"$have_gas_3495" - -"$out_of_gas_3494": ; preds = %"$have_gas_3479" - call void @_out_of_gas() - br label %"$have_gas_3495" - -"$have_gas_3495": ; preds = %"$out_of_gas_3494", %"$have_gas_3479" - %"$consume_3496" = sub i64 %"$gasrem_3492", %"$gasadd_3491" - store i64 %"$consume_3496", i64* @_gasrem, align 8 - %"$gasrem_3497" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3498" = icmp ugt i64 1, %"$gasrem_3497" - br i1 %"$gascmp_3498", label %"$out_of_gas_3499", label %"$have_gas_3500" - -"$out_of_gas_3499": ; preds = %"$have_gas_3495" - call void @_out_of_gas() - br label %"$have_gas_3500" - -"$have_gas_3500": ; preds = %"$out_of_gas_3499", %"$have_gas_3495" - %"$consume_3501" = sub i64 %"$gasrem_3497", 1 - store i64 %"$consume_3501", i64* @_gasrem, align 8 + %"$execptr_load_2988" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_2989" = call i8* @_fetch_field(i8* %"$execptr_load_2988", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_2987", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_2985", i32 1) + %"$maybeApproved_2990" = bitcast i8* %"$maybeApproved_call_2989" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_2990", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_2991" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_2991_2992" = bitcast %TName_Option_ByStr20* %"$maybeApproved_2991" to i8* + %"$_literal_cost_call_2993" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_2991_2992") + %"$gasadd_2994" = add i64 %"$_literal_cost_call_2993", 0 + %"$gasadd_2995" = add i64 %"$gasadd_2994", 1 + %"$gasrem_2996" = load i64, i64* @_gasrem, align 8 + %"$gascmp_2997" = icmp ugt i64 %"$gasadd_2995", %"$gasrem_2996" + br i1 %"$gascmp_2997", label %"$out_of_gas_2998", label %"$have_gas_2999" + +"$out_of_gas_2998": ; preds = %"$have_gas_2983" + call void @_out_of_gas() + br label %"$have_gas_2999" + +"$have_gas_2999": ; preds = %"$out_of_gas_2998", %"$have_gas_2983" + %"$consume_3000" = sub i64 %"$gasrem_2996", %"$gasadd_2995" + store i64 %"$consume_3000", i64* @_gasrem, align 8 + %"$gasrem_3001" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3002" = icmp ugt i64 1, %"$gasrem_3001" + br i1 %"$gascmp_3002", label %"$out_of_gas_3003", label %"$have_gas_3004" + +"$out_of_gas_3003": ; preds = %"$have_gas_2999" + call void @_out_of_gas() + br label %"$have_gas_3004" + +"$have_gas_3004": ; preds = %"$out_of_gas_3003", %"$have_gas_2999" + %"$consume_3005" = sub i64 %"$gasrem_3001", 1 + store i64 %"$consume_3005", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_3502" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3503" = icmp ugt i64 1, %"$gasrem_3502" - br i1 %"$gascmp_3503", label %"$out_of_gas_3504", label %"$have_gas_3505" - -"$out_of_gas_3504": ; preds = %"$have_gas_3500" - call void @_out_of_gas() - br label %"$have_gas_3505" - -"$have_gas_3505": ; preds = %"$out_of_gas_3504", %"$have_gas_3500" - %"$consume_3506" = sub i64 %"$gasrem_3502", 1 - store i64 %"$consume_3506", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_79" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_3507" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_3508" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3507", 0 - %"$ud-registry.recordMemberOwner_envptr_3509" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3507", 1 - %"$maybeRecord_3510" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_3511" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_3508"(i8* %"$ud-registry.recordMemberOwner_envptr_3509", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3511", %TName_Option_ud-registry.Record* %"$maybeRecord_3510") - %"$ud-registry.recordMemberOwner_ret_3512" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3511", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3512", [20 x i8]* %"$ud-registry.recordMemberOwner_79", align 1 - %"$$ud-registry.recordMemberOwner_79_3513" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_79", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_79_3513", [20 x i8]* %recordOwner, align 1 + %"$gasrem_3006" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3007" = icmp ugt i64 1, %"$gasrem_3006" + br i1 %"$gascmp_3007", label %"$out_of_gas_3008", label %"$have_gas_3009" + +"$out_of_gas_3008": ; preds = %"$have_gas_3004" + call void @_out_of_gas() + br label %"$have_gas_3009" + +"$have_gas_3009": ; preds = %"$out_of_gas_3008", %"$have_gas_3004" + %"$consume_3010" = sub i64 %"$gasrem_3006", 1 + store i64 %"$consume_3010", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_42" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_3011" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_3012" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3011", 0 + %"$ud-registry.recordMemberOwner_envptr_3013" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3011", 1 + %"$maybeRecord_3014" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_3015" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_3012"(i8* %"$ud-registry.recordMemberOwner_envptr_3013", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3015", %TName_Option_ud-registry.Record* %"$maybeRecord_3014") + %"$ud-registry.recordMemberOwner_ret_3016" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3015", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3016", [20 x i8]* %"$ud-registry.recordMemberOwner_42", align 1 + %"$$ud-registry.recordMemberOwner_42_3017" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_42", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_42_3017", [20 x i8]* %recordOwner, align 1 %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_3514_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3514_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3514_salloc_load", i64 20) - %"$indices_buf_3514_salloc" = bitcast i8* %"$indices_buf_3514_salloc_salloc" to [20 x i8]* - %"$indices_buf_3514" = bitcast [20 x i8]* %"$indices_buf_3514_salloc" to i8* - %"$recordOwner_3515" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_3516" = getelementptr i8, i8* %"$indices_buf_3514", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_3516" to [20 x i8]* - store [20 x i8] %"$recordOwner_3515", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_3518" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_3519" = call i8* @_fetch_field(i8* %"$execptr_load_3518", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3517", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_3514", i32 1) - %"$maybeOperators_3520" = bitcast i8* %"$maybeOperators_call_3519" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3520", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_3521" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_3521_3522" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3521" to i8* - %"$_literal_cost_call_3523" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", i8* %"$$maybeOperators_3521_3522") - %"$gasadd_3524" = add i64 %"$_literal_cost_call_3523", 0 - %"$gasadd_3525" = add i64 %"$gasadd_3524", 1 - %"$gasrem_3526" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3527" = icmp ugt i64 %"$gasadd_3525", %"$gasrem_3526" - br i1 %"$gascmp_3527", label %"$out_of_gas_3528", label %"$have_gas_3529" - -"$out_of_gas_3528": ; preds = %"$have_gas_3505" - call void @_out_of_gas() - br label %"$have_gas_3529" - -"$have_gas_3529": ; preds = %"$out_of_gas_3528", %"$have_gas_3505" - %"$consume_3530" = sub i64 %"$gasrem_3526", %"$gasadd_3525" - store i64 %"$consume_3530", i64* @_gasrem, align 8 - %"$gasrem_3531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3532" = icmp ugt i64 1, %"$gasrem_3531" - br i1 %"$gascmp_3532", label %"$out_of_gas_3533", label %"$have_gas_3534" - -"$out_of_gas_3533": ; preds = %"$have_gas_3529" - call void @_out_of_gas() - br label %"$have_gas_3534" - -"$have_gas_3534": ; preds = %"$out_of_gas_3533", %"$have_gas_3529" - %"$consume_3535" = sub i64 %"$gasrem_3531", 1 - store i64 %"$consume_3535", i64* @_gasrem, align 8 + %"$indices_buf_3018_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3018_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3018_salloc_load", i64 20) + %"$indices_buf_3018_salloc" = bitcast i8* %"$indices_buf_3018_salloc_salloc" to [20 x i8]* + %"$indices_buf_3018" = bitcast [20 x i8]* %"$indices_buf_3018_salloc" to i8* + %"$recordOwner_3019" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_3020" = getelementptr i8, i8* %"$indices_buf_3018", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_3020" to [20 x i8]* + store [20 x i8] %"$recordOwner_3019", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_3022" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_3023" = call i8* @_fetch_field(i8* %"$execptr_load_3022", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3021", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_3018", i32 1) + %"$maybeOperators_3024" = bitcast i8* %"$maybeOperators_call_3023" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3024", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_3025" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_3025_3026" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3025" to i8* + %"$_literal_cost_call_3027" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", i8* %"$$maybeOperators_3025_3026") + %"$gasadd_3028" = add i64 %"$_literal_cost_call_3027", 0 + %"$gasadd_3029" = add i64 %"$gasadd_3028", 1 + %"$gasrem_3030" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3031" = icmp ugt i64 %"$gasadd_3029", %"$gasrem_3030" + br i1 %"$gascmp_3031", label %"$out_of_gas_3032", label %"$have_gas_3033" + +"$out_of_gas_3032": ; preds = %"$have_gas_3009" + call void @_out_of_gas() + br label %"$have_gas_3033" + +"$have_gas_3033": ; preds = %"$out_of_gas_3032", %"$have_gas_3009" + %"$consume_3034" = sub i64 %"$gasrem_3030", %"$gasadd_3029" + store i64 %"$consume_3034", i64* @_gasrem, align 8 + %"$gasrem_3035" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3036" = icmp ugt i64 1, %"$gasrem_3035" + br i1 %"$gascmp_3036", label %"$out_of_gas_3037", label %"$have_gas_3038" + +"$out_of_gas_3037": ; preds = %"$have_gas_3033" + call void @_out_of_gas() + br label %"$have_gas_3038" + +"$have_gas_3038": ; preds = %"$out_of_gas_3037", %"$have_gas_3033" + %"$consume_3039" = sub i64 %"$gasrem_3035", 1 + store i64 %"$consume_3039", i64* @_gasrem, align 8 %isSenderOAO = alloca %TName_Bool*, align 8 - %"$gasrem_3536" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3537" = icmp ugt i64 1, %"$gasrem_3536" - br i1 %"$gascmp_3537", label %"$out_of_gas_3538", label %"$have_gas_3539" - -"$out_of_gas_3538": ; preds = %"$have_gas_3534" - call void @_out_of_gas() - br label %"$have_gas_3539" - -"$have_gas_3539": ; preds = %"$out_of_gas_3538", %"$have_gas_3534" - %"$consume_3540" = sub i64 %"$gasrem_3536", 1 - store i64 %"$consume_3540", i64* @_gasrem, align 8 - %"$ud-registry.getIsOAO_75" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_3541" = load { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.getIsOAO, align 8 - %"$ud-registry.getIsOAO_fptr_3542" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_3541", 0 - %"$ud-registry.getIsOAO_envptr_3543" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_3541", 1 - %"$ud-registry.getIsOAO__sender_3544" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3544", align 1 - %"$ud-registry.getIsOAO_call_3545" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_3542"(i8* %"$ud-registry.getIsOAO_envptr_3543", [20 x i8]* %"$ud-registry.getIsOAO__sender_3544") - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_3545", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_75", align 8 - %"$ud-registry.getIsOAO_76" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_75_3546" = load { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_75", align 8 - %"$$ud-registry.getIsOAO_75_fptr_3547" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_75_3546", 0 - %"$$ud-registry.getIsOAO_75_envptr_3548" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_75_3546", 1 - %"$$ud-registry.getIsOAO_75_recordOwner_3549" = alloca [20 x i8], align 1 - %"$recordOwner_3550" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_3550", [20 x i8]* %"$$ud-registry.getIsOAO_75_recordOwner_3549", align 1 - %"$$ud-registry.getIsOAO_75_call_3551" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_75_fptr_3547"(i8* %"$$ud-registry.getIsOAO_75_envptr_3548", [20 x i8]* %"$$ud-registry.getIsOAO_75_recordOwner_3549") - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_75_call_3551", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_76", align 8 - %"$ud-registry.getIsOAO_77" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_76_3552" = load { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_76", align 8 - %"$$ud-registry.getIsOAO_76_fptr_3553" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_76_3552", 0 - %"$$ud-registry.getIsOAO_76_envptr_3554" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_76_3552", 1 - %"$maybeApproved_3555" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_76_call_3556" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_76_fptr_3553"(i8* %"$$ud-registry.getIsOAO_76_envptr_3554", %TName_Option_ByStr20* %"$maybeApproved_3555") - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_76_call_3556", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_77", align 8 - %"$ud-registry.getIsOAO_78" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_77_3557" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_77", align 8 - %"$$ud-registry.getIsOAO_77_fptr_3558" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_77_3557", 0 - %"$$ud-registry.getIsOAO_77_envptr_3559" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_77_3557", 1 - %"$maybeOperators_3560" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_77_call_3561" = call %TName_Bool* %"$$ud-registry.getIsOAO_77_fptr_3558"(i8* %"$$ud-registry.getIsOAO_77_envptr_3559", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3560") - store %TName_Bool* %"$$ud-registry.getIsOAO_77_call_3561", %TName_Bool** %"$ud-registry.getIsOAO_78", align 8 - %"$$ud-registry.getIsOAO_78_3562" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_78", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_78_3562", %TName_Bool** %isSenderOAO, align 8 - %"$gasrem_3563" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3564" = icmp ugt i64 2, %"$gasrem_3563" - br i1 %"$gascmp_3564", label %"$out_of_gas_3565", label %"$have_gas_3566" - -"$out_of_gas_3565": ; preds = %"$have_gas_3539" - call void @_out_of_gas() - br label %"$have_gas_3566" - -"$have_gas_3566": ; preds = %"$out_of_gas_3565", %"$have_gas_3539" - %"$consume_3567" = sub i64 %"$gasrem_3563", 2 - store i64 %"$consume_3567", i64* @_gasrem, align 8 - %"$isSenderOAO_3569" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_3570" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3569", i32 0, i32 0 - %"$isSenderOAO_tag_3571" = load i8, i8* %"$isSenderOAO_tag_3570", align 1 - switch i8 %"$isSenderOAO_tag_3571", label %"$empty_default_3572" [ - i8 0, label %"$True_3573" - i8 1, label %"$False_3715" + %"$gasrem_3040" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3041" = icmp ugt i64 1, %"$gasrem_3040" + br i1 %"$gascmp_3041", label %"$out_of_gas_3042", label %"$have_gas_3043" + +"$out_of_gas_3042": ; preds = %"$have_gas_3038" + call void @_out_of_gas() + br label %"$have_gas_3043" + +"$have_gas_3043": ; preds = %"$out_of_gas_3042", %"$have_gas_3038" + %"$consume_3044" = sub i64 %"$gasrem_3040", 1 + store i64 %"$consume_3044", i64* @_gasrem, align 8 + %"$ud-registry.getIsOAO_3045" = load { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }* @ud-registry.getIsOAO, align 8 + %"$ud-registry.getIsOAO_fptr_3046" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3045", 0 + %"$ud-registry.getIsOAO_envptr_3047" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3045", 1 + %"$ud-registry.getIsOAO__sender_3048" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3048", align 1 + %"$ud-registry.getIsOAO_recordOwner_3049" = alloca [20 x i8], align 1 + %"$recordOwner_3050" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3050", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3049", align 1 + %"$maybeApproved_3051" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeOperators_3052" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$ud-registry.getIsOAO_call_3053" = call %TName_Bool* %"$ud-registry.getIsOAO_fptr_3046"(i8* %"$ud-registry.getIsOAO_envptr_3047", [20 x i8]* %"$ud-registry.getIsOAO__sender_3048", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3049", %TName_Option_ByStr20* %"$maybeApproved_3051", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3052") + store %TName_Bool* %"$ud-registry.getIsOAO_call_3053", %TName_Bool** %isSenderOAO, align 8 + %"$gasrem_3054" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3055" = icmp ugt i64 2, %"$gasrem_3054" + br i1 %"$gascmp_3055", label %"$out_of_gas_3056", label %"$have_gas_3057" + +"$out_of_gas_3056": ; preds = %"$have_gas_3043" + call void @_out_of_gas() + br label %"$have_gas_3057" + +"$have_gas_3057": ; preds = %"$out_of_gas_3056", %"$have_gas_3043" + %"$consume_3058" = sub i64 %"$gasrem_3054", 2 + store i64 %"$consume_3058", i64* @_gasrem, align 8 + %"$isSenderOAO_3060" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_3061" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3060", i32 0, i32 0 + %"$isSenderOAO_tag_3062" = load i8, i8* %"$isSenderOAO_tag_3061", align 1 + switch i8 %"$isSenderOAO_tag_3062", label %"$empty_default_3063" [ + i8 0, label %"$True_3064" + i8 1, label %"$False_3197" ] -"$True_3573": ; preds = %"$have_gas_3566" - %"$isSenderOAO_3574" = bitcast %TName_Bool* %"$isSenderOAO_3569" to %CName_True* - %"$gasrem_3575" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3576" = icmp ugt i64 1, %"$gasrem_3575" - br i1 %"$gascmp_3576", label %"$out_of_gas_3577", label %"$have_gas_3578" +"$True_3064": ; preds = %"$have_gas_3057" + %"$isSenderOAO_3065" = bitcast %TName_Bool* %"$isSenderOAO_3060" to %CName_True* + %"$gasrem_3066" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3067" = icmp ugt i64 1, %"$gasrem_3066" + br i1 %"$gascmp_3067", label %"$out_of_gas_3068", label %"$have_gas_3069" -"$out_of_gas_3577": ; preds = %"$True_3573" +"$out_of_gas_3068": ; preds = %"$True_3064" call void @_out_of_gas() - br label %"$have_gas_3578" + br label %"$have_gas_3069" -"$have_gas_3578": ; preds = %"$out_of_gas_3577", %"$True_3573" - %"$consume_3579" = sub i64 %"$gasrem_3575", 1 - store i64 %"$consume_3579", i64* @_gasrem, align 8 +"$have_gas_3069": ; preds = %"$out_of_gas_3068", %"$True_3064" + %"$consume_3070" = sub i64 %"$gasrem_3066", 1 + store i64 %"$consume_3070", i64* @_gasrem, align 8 %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_3580" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3581" = icmp ugt i64 1, %"$gasrem_3580" - br i1 %"$gascmp_3581", label %"$out_of_gas_3582", label %"$have_gas_3583" - -"$out_of_gas_3582": ; preds = %"$have_gas_3578" - call void @_out_of_gas() - br label %"$have_gas_3583" - -"$have_gas_3583": ; preds = %"$out_of_gas_3582", %"$have_gas_3578" - %"$consume_3584" = sub i64 %"$gasrem_3580", 1 - store i64 %"$consume_3584", i64* @_gasrem, align 8 - %"$adtval_3585_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3585_salloc" = call i8* @_salloc(i8* %"$adtval_3585_load", i64 41) - %"$adtval_3585" = bitcast i8* %"$adtval_3585_salloc" to %CName_ud-registry.Record* - %"$adtgep_3586" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3585", i32 0, i32 0 - store i8 0, i8* %"$adtgep_3586", align 1 - %"$adtgep_3587" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3585", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_3587", align 1 - %"$adtgep_3588" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3585", i32 0, i32 2 - store [20 x i8] %resolver, [20 x i8]* %"$adtgep_3588", align 1 - %"$adtptr_3589" = bitcast %CName_ud-registry.Record* %"$adtval_3585" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_3589", %TName_ud-registry.Record** %newRecord, align 8 - %"$newRecord_3590" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_3590_3591" = bitcast %TName_ud-registry.Record* %"$newRecord_3590" to i8* - %"$_literal_cost_call_3592" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", i8* %"$$newRecord_3590_3591") - %"$gasadd_3593" = add i64 %"$_literal_cost_call_3592", 1 - %"$gasrem_3594" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3595" = icmp ugt i64 %"$gasadd_3593", %"$gasrem_3594" - br i1 %"$gascmp_3595", label %"$out_of_gas_3596", label %"$have_gas_3597" - -"$out_of_gas_3596": ; preds = %"$have_gas_3583" - call void @_out_of_gas() - br label %"$have_gas_3597" - -"$have_gas_3597": ; preds = %"$out_of_gas_3596", %"$have_gas_3583" - %"$consume_3598" = sub i64 %"$gasrem_3594", %"$gasadd_3593" - store i64 %"$consume_3598", i64* @_gasrem, align 8 - %"$indices_buf_3599_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3599_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3599_salloc_load", i64 32) - %"$indices_buf_3599_salloc" = bitcast i8* %"$indices_buf_3599_salloc_salloc" to [32 x i8]* - %"$indices_buf_3599" = bitcast [32 x i8]* %"$indices_buf_3599_salloc" to i8* - %"$indices_gep_3600" = getelementptr i8, i8* %"$indices_buf_3599", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_3600" to [32 x i8]* + %"$gasrem_3071" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3072" = icmp ugt i64 1, %"$gasrem_3071" + br i1 %"$gascmp_3072", label %"$out_of_gas_3073", label %"$have_gas_3074" + +"$out_of_gas_3073": ; preds = %"$have_gas_3069" + call void @_out_of_gas() + br label %"$have_gas_3074" + +"$have_gas_3074": ; preds = %"$out_of_gas_3073", %"$have_gas_3069" + %"$consume_3075" = sub i64 %"$gasrem_3071", 1 + store i64 %"$consume_3075", i64* @_gasrem, align 8 + %"$adtval_3076_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3076_salloc" = call i8* @_salloc(i8* %"$adtval_3076_load", i64 41) + %"$adtval_3076" = bitcast i8* %"$adtval_3076_salloc" to %CName_ud-registry.Record* + %"$adtgep_3077" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3076", i32 0, i32 0 + store i8 0, i8* %"$adtgep_3077", align 1 + %"$adtgep_3078" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3076", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_3078", align 1 + %"$adtgep_3079" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3076", i32 0, i32 2 + store [20 x i8] %resolver, [20 x i8]* %"$adtgep_3079", align 1 + %"$adtptr_3080" = bitcast %CName_ud-registry.Record* %"$adtval_3076" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_3080", %TName_ud-registry.Record** %newRecord, align 8 + %"$newRecord_3081" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_3081_3082" = bitcast %TName_ud-registry.Record* %"$newRecord_3081" to i8* + %"$_literal_cost_call_3083" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", i8* %"$$newRecord_3081_3082") + %"$gasadd_3084" = add i64 %"$_literal_cost_call_3083", 1 + %"$gasrem_3085" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3086" = icmp ugt i64 %"$gasadd_3084", %"$gasrem_3085" + br i1 %"$gascmp_3086", label %"$out_of_gas_3087", label %"$have_gas_3088" + +"$out_of_gas_3087": ; preds = %"$have_gas_3074" + call void @_out_of_gas() + br label %"$have_gas_3088" + +"$have_gas_3088": ; preds = %"$out_of_gas_3087", %"$have_gas_3074" + %"$consume_3089" = sub i64 %"$gasrem_3085", %"$gasadd_3084" + store i64 %"$consume_3089", i64* @_gasrem, align 8 + %"$indices_buf_3090_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3090_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3090_salloc_load", i64 32) + %"$indices_buf_3090_salloc" = bitcast i8* %"$indices_buf_3090_salloc_salloc" to [32 x i8]* + %"$indices_buf_3090" = bitcast [32 x i8]* %"$indices_buf_3090_salloc" to i8* + %"$indices_gep_3091" = getelementptr i8, i8* %"$indices_buf_3090", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_3091" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_3601" = load i8*, i8** @_execptr, align 8 - %"$newRecord_3603" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_3604" = bitcast %TName_ud-registry.Record* %"$newRecord_3603" to i8* - call void @_update_field(i8* %"$execptr_load_3601", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3602", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_3599", i8* %"$update_value_3604") - %"$gasrem_3605" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3606" = icmp ugt i64 1, %"$gasrem_3605" - br i1 %"$gascmp_3606", label %"$out_of_gas_3607", label %"$have_gas_3608" + %"$execptr_load_3092" = load i8*, i8** @_execptr, align 8 + %"$newRecord_3094" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_3095" = bitcast %TName_ud-registry.Record* %"$newRecord_3094" to i8* + call void @_update_field(i8* %"$execptr_load_3092", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3093", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3090", i8* %"$update_value_3095") + %"$gasrem_3096" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3097" = icmp ugt i64 1, %"$gasrem_3096" + br i1 %"$gascmp_3097", label %"$out_of_gas_3098", label %"$have_gas_3099" -"$out_of_gas_3607": ; preds = %"$have_gas_3597" +"$out_of_gas_3098": ; preds = %"$have_gas_3088" call void @_out_of_gas() - br label %"$have_gas_3608" + br label %"$have_gas_3099" -"$have_gas_3608": ; preds = %"$out_of_gas_3607", %"$have_gas_3597" - %"$consume_3609" = sub i64 %"$gasrem_3605", 1 - store i64 %"$consume_3609", i64* @_gasrem, align 8 +"$have_gas_3099": ; preds = %"$out_of_gas_3098", %"$have_gas_3088" + %"$consume_3100" = sub i64 %"$gasrem_3096", 1 + store i64 %"$consume_3100", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_3610" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3611" = icmp ugt i64 1, %"$gasrem_3610" - br i1 %"$gascmp_3611", label %"$out_of_gas_3612", label %"$have_gas_3613" - -"$out_of_gas_3612": ; preds = %"$have_gas_3608" - call void @_out_of_gas() - br label %"$have_gas_3613" - -"$have_gas_3613": ; preds = %"$out_of_gas_3612", %"$have_gas_3608" - %"$consume_3614" = sub i64 %"$gasrem_3610", 1 - store i64 %"$consume_3614", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_70" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_3615" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_3616" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_3615", 0 - %"$ud-registry.eConfigured_envptr_3617" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_3615", 1 - %"$ud-registry.eConfigured_node_3618" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_3618", align 1 - %"$ud-registry.eConfigured_call_3619" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_3616"(i8* %"$ud-registry.eConfigured_envptr_3617", [32 x i8]* %"$ud-registry.eConfigured_node_3618") - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_3619", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_70", align 8 - %"$ud-registry.eConfigured_71" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_70_3620" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_70", align 8 - %"$$ud-registry.eConfigured_70_fptr_3621" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_70_3620", 0 - %"$$ud-registry.eConfigured_70_envptr_3622" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_70_3620", 1 - %"$$ud-registry.eConfigured_70_owner_3623" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_70_owner_3623", align 1 - %"$$ud-registry.eConfigured_70_call_3624" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_70_fptr_3621"(i8* %"$$ud-registry.eConfigured_70_envptr_3622", [20 x i8]* %"$$ud-registry.eConfigured_70_owner_3623") - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_70_call_3624", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_71", align 8 - %"$ud-registry.eConfigured_72" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_71_3625" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_71", align 8 - %"$$ud-registry.eConfigured_71_fptr_3626" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_71_3625", 0 - %"$$ud-registry.eConfigured_71_envptr_3627" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_71_3625", 1 - %"$$ud-registry.eConfigured_71_resolver_3628" = alloca [20 x i8], align 1 - store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_71_resolver_3628", align 1 - %"$$ud-registry.eConfigured_71_call_3629" = call i8* %"$$ud-registry.eConfigured_71_fptr_3626"(i8* %"$$ud-registry.eConfigured_71_envptr_3627", [20 x i8]* %"$$ud-registry.eConfigured_71_resolver_3628") - store i8* %"$$ud-registry.eConfigured_71_call_3629", i8** %"$ud-registry.eConfigured_72", align 8 - %"$$ud-registry.eConfigured_72_3630" = load i8*, i8** %"$ud-registry.eConfigured_72", align 8 - store i8* %"$$ud-registry.eConfigured_72_3630", i8** %e, align 8 - %"$e_3631" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_3633" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3631") - %"$gasrem_3634" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3635" = icmp ugt i64 %"$_literal_cost_call_3633", %"$gasrem_3634" - br i1 %"$gascmp_3635", label %"$out_of_gas_3636", label %"$have_gas_3637" - -"$out_of_gas_3636": ; preds = %"$have_gas_3613" - call void @_out_of_gas() - br label %"$have_gas_3637" - -"$have_gas_3637": ; preds = %"$out_of_gas_3636", %"$have_gas_3613" - %"$consume_3638" = sub i64 %"$gasrem_3634", %"$_literal_cost_call_3633" - store i64 %"$consume_3638", i64* @_gasrem, align 8 - %"$execptr_load_3639" = load i8*, i8** @_execptr, align 8 - %"$e_3640" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_3639", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3640") - %"$gasrem_3641" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3642" = icmp ugt i64 1, %"$gasrem_3641" - br i1 %"$gascmp_3642", label %"$out_of_gas_3643", label %"$have_gas_3644" - -"$out_of_gas_3643": ; preds = %"$have_gas_3637" - call void @_out_of_gas() - br label %"$have_gas_3644" - -"$have_gas_3644": ; preds = %"$out_of_gas_3643", %"$have_gas_3637" - %"$consume_3645" = sub i64 %"$gasrem_3641", 1 - store i64 %"$consume_3645", i64* @_gasrem, align 8 + %"$gasrem_3101" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3102" = icmp ugt i64 1, %"$gasrem_3101" + br i1 %"$gascmp_3102", label %"$out_of_gas_3103", label %"$have_gas_3104" + +"$out_of_gas_3103": ; preds = %"$have_gas_3099" + call void @_out_of_gas() + br label %"$have_gas_3104" + +"$have_gas_3104": ; preds = %"$out_of_gas_3103", %"$have_gas_3099" + %"$consume_3105" = sub i64 %"$gasrem_3101", 1 + store i64 %"$consume_3105", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_3106" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_3107" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3106", 0 + %"$ud-registry.eConfigured_envptr_3108" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3106", 1 + %"$ud-registry.eConfigured_node_3109" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_3109", align 1 + %"$ud-registry.eConfigured_owner_3110" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$ud-registry.eConfigured_owner_3110", align 1 + %"$ud-registry.eConfigured_resolver_3111" = alloca [20 x i8], align 1 + store [20 x i8] %resolver, [20 x i8]* %"$ud-registry.eConfigured_resolver_3111", align 1 + %"$ud-registry.eConfigured_call_3112" = call i8* %"$ud-registry.eConfigured_fptr_3107"(i8* %"$ud-registry.eConfigured_envptr_3108", [32 x i8]* %"$ud-registry.eConfigured_node_3109", [20 x i8]* %"$ud-registry.eConfigured_owner_3110", [20 x i8]* %"$ud-registry.eConfigured_resolver_3111") + store i8* %"$ud-registry.eConfigured_call_3112", i8** %e, align 8 + %"$e_3113" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_3115" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3113") + %"$gasrem_3116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3117" = icmp ugt i64 %"$_literal_cost_call_3115", %"$gasrem_3116" + br i1 %"$gascmp_3117", label %"$out_of_gas_3118", label %"$have_gas_3119" + +"$out_of_gas_3118": ; preds = %"$have_gas_3104" + call void @_out_of_gas() + br label %"$have_gas_3119" + +"$have_gas_3119": ; preds = %"$out_of_gas_3118", %"$have_gas_3104" + %"$consume_3120" = sub i64 %"$gasrem_3116", %"$_literal_cost_call_3115" + store i64 %"$consume_3120", i64* @_gasrem, align 8 + %"$execptr_load_3121" = load i8*, i8** @_execptr, align 8 + %"$e_3122" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_3121", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3122") + %"$gasrem_3123" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3124" = icmp ugt i64 1, %"$gasrem_3123" + br i1 %"$gascmp_3124", label %"$out_of_gas_3125", label %"$have_gas_3126" + +"$out_of_gas_3125": ; preds = %"$have_gas_3119" + call void @_out_of_gas() + br label %"$have_gas_3126" + +"$have_gas_3126": ; preds = %"$out_of_gas_3125", %"$have_gas_3119" + %"$consume_3127" = sub i64 %"$gasrem_3123", 1 + store i64 %"$consume_3127", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_3646" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3647" = icmp ugt i64 1, %"$gasrem_3646" - br i1 %"$gascmp_3647", label %"$out_of_gas_3648", label %"$have_gas_3649" + %"$gasrem_3128" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3129" = icmp ugt i64 1, %"$gasrem_3128" + br i1 %"$gascmp_3129", label %"$out_of_gas_3130", label %"$have_gas_3131" -"$out_of_gas_3648": ; preds = %"$have_gas_3644" +"$out_of_gas_3130": ; preds = %"$have_gas_3126" call void @_out_of_gas() - br label %"$have_gas_3649" + br label %"$have_gas_3131" -"$have_gas_3649": ; preds = %"$out_of_gas_3648", %"$have_gas_3644" - %"$consume_3650" = sub i64 %"$gasrem_3646", 1 - store i64 %"$consume_3650", i64* @_gasrem, align 8 +"$have_gas_3131": ; preds = %"$out_of_gas_3130", %"$have_gas_3126" + %"$consume_3132" = sub i64 %"$gasrem_3128", 1 + store i64 %"$consume_3132", i64* @_gasrem, align 8 %m = alloca i8*, align 8 - %"$gasrem_3651" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3652" = icmp ugt i64 1, %"$gasrem_3651" - br i1 %"$gascmp_3652", label %"$out_of_gas_3653", label %"$have_gas_3654" + %"$gasrem_3133" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3134" = icmp ugt i64 1, %"$gasrem_3133" + br i1 %"$gascmp_3134", label %"$out_of_gas_3135", label %"$have_gas_3136" -"$out_of_gas_3653": ; preds = %"$have_gas_3649" +"$out_of_gas_3135": ; preds = %"$have_gas_3131" call void @_out_of_gas() - br label %"$have_gas_3654" + br label %"$have_gas_3136" -"$have_gas_3654": ; preds = %"$out_of_gas_3653", %"$have_gas_3649" - %"$consume_3655" = sub i64 %"$gasrem_3651", 1 - store i64 %"$consume_3655", i64* @_gasrem, align 8 - %"$msgobj_3656_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3656_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3656_salloc_load", i64 225) - %"$msgobj_3656_salloc" = bitcast i8* %"$msgobj_3656_salloc_salloc" to [225 x i8]* - %"$msgobj_3656" = bitcast [225 x i8]* %"$msgobj_3656_salloc" to i8* - store i8 5, i8* %"$msgobj_3656", align 1 - %"$msgobj_fname_3658" = getelementptr i8, i8* %"$msgobj_3656", i32 1 - %"$msgobj_fname_3659" = bitcast i8* %"$msgobj_fname_3658" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3657", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3659", align 8 - %"$msgobj_td_3660" = getelementptr i8, i8* %"$msgobj_3656", i32 17 - %"$msgobj_td_3661" = bitcast i8* %"$msgobj_td_3660" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_3661", align 8 - %"$msgobj_v_3663" = getelementptr i8, i8* %"$msgobj_3656", i32 25 - %"$msgobj_v_3664" = bitcast i8* %"$msgobj_v_3663" to %String* - store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3662", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3664", align 8 - %"$msgobj_fname_3666" = getelementptr i8, i8* %"$msgobj_3656", i32 41 - %"$msgobj_fname_3667" = bitcast i8* %"$msgobj_fname_3666" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3665", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3667", align 8 - %"$msgobj_td_3668" = getelementptr i8, i8* %"$msgobj_3656", i32 57 - %"$msgobj_td_3669" = bitcast i8* %"$msgobj_td_3668" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_3669", align 8 - %"$msgobj_v_3670" = getelementptr i8, i8* %"$msgobj_3656", i32 65 - %"$msgobj_v_3671" = bitcast i8* %"$msgobj_v_3670" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3671", align 1 - %"$msgobj_fname_3673" = getelementptr i8, i8* %"$msgobj_3656", i32 97 - %"$msgobj_fname_3674" = bitcast i8* %"$msgobj_fname_3673" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3672", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3674", align 8 - %"$msgobj_td_3675" = getelementptr i8, i8* %"$msgobj_3656", i32 113 - %"$msgobj_td_3676" = bitcast i8* %"$msgobj_td_3675" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_3676", align 8 - %"$msgobj_v_3677" = getelementptr i8, i8* %"$msgobj_3656", i32 121 - %"$msgobj_v_3678" = bitcast i8* %"$msgobj_v_3677" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_3678", align 1 - %"$msgobj_fname_3680" = getelementptr i8, i8* %"$msgobj_3656", i32 141 - %"$msgobj_fname_3681" = bitcast i8* %"$msgobj_fname_3680" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3679", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3681", align 8 - %"$msgobj_td_3682" = getelementptr i8, i8* %"$msgobj_3656", i32 157 - %"$msgobj_td_3683" = bitcast i8* %"$msgobj_td_3682" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_3683", align 8 - %"$msgobj_v_3684" = getelementptr i8, i8* %"$msgobj_3656", i32 165 - %"$msgobj_v_3685" = bitcast i8* %"$msgobj_v_3684" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3685", align 8 - %"$msgobj_fname_3687" = getelementptr i8, i8* %"$msgobj_3656", i32 181 - %"$msgobj_fname_3688" = bitcast i8* %"$msgobj_fname_3687" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3686", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3688", align 8 - %"$msgobj_td_3689" = getelementptr i8, i8* %"$msgobj_3656", i32 197 - %"$msgobj_td_3690" = bitcast i8* %"$msgobj_td_3689" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_3690", align 8 - %"$msgobj_v_3691" = getelementptr i8, i8* %"$msgobj_3656", i32 205 - %"$msgobj_v_3692" = bitcast i8* %"$msgobj_v_3691" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3692", align 1 - store i8* %"$msgobj_3656", i8** %m, align 8 - %"$gasrem_3694" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3695" = icmp ugt i64 1, %"$gasrem_3694" - br i1 %"$gascmp_3695", label %"$out_of_gas_3696", label %"$have_gas_3697" - -"$out_of_gas_3696": ; preds = %"$have_gas_3654" - call void @_out_of_gas() - br label %"$have_gas_3697" - -"$have_gas_3697": ; preds = %"$out_of_gas_3696", %"$have_gas_3654" - %"$consume_3698" = sub i64 %"$gasrem_3694", 1 - store i64 %"$consume_3698", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_69" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_3699" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_3700" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3699", 0 - %"$ud-registry.oneMsg_envptr_3701" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3699", 1 - %"$m_3702" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_3703" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3700"(i8* %"$ud-registry.oneMsg_envptr_3701", i8* %"$m_3702") - store %TName_List_Message* %"$ud-registry.oneMsg_call_3703", %TName_List_Message** %"$ud-registry.oneMsg_69", align 8 - %"$$ud-registry.oneMsg_69_3704" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_69", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_69_3704", %TName_List_Message** %msgs, align 8 - %"$msgs_3705" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_3705_3706" = bitcast %TName_List_Message* %"$msgs_3705" to i8* - %"$_literal_cost_call_3707" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_3705_3706") - %"$gasrem_3708" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3709" = icmp ugt i64 %"$_literal_cost_call_3707", %"$gasrem_3708" - br i1 %"$gascmp_3709", label %"$out_of_gas_3710", label %"$have_gas_3711" - -"$out_of_gas_3710": ; preds = %"$have_gas_3697" - call void @_out_of_gas() - br label %"$have_gas_3711" - -"$have_gas_3711": ; preds = %"$out_of_gas_3710", %"$have_gas_3697" - %"$consume_3712" = sub i64 %"$gasrem_3708", %"$_literal_cost_call_3707" - store i64 %"$consume_3712", i64* @_gasrem, align 8 - %"$execptr_load_3713" = load i8*, i8** @_execptr, align 8 - %"$msgs_3714" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_3713", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_3714") - br label %"$matchsucc_3568" - -"$False_3715": ; preds = %"$have_gas_3566" - %"$isSenderOAO_3716" = bitcast %TName_Bool* %"$isSenderOAO_3569" to %CName_False* - %"$gasrem_3717" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3718" = icmp ugt i64 1, %"$gasrem_3717" - br i1 %"$gascmp_3718", label %"$out_of_gas_3719", label %"$have_gas_3720" - -"$out_of_gas_3719": ; preds = %"$False_3715" - call void @_out_of_gas() - br label %"$have_gas_3720" - -"$have_gas_3720": ; preds = %"$out_of_gas_3719", %"$False_3715" - %"$consume_3721" = sub i64 %"$gasrem_3717", 1 - store i64 %"$consume_3721", i64* @_gasrem, align 8 +"$have_gas_3136": ; preds = %"$out_of_gas_3135", %"$have_gas_3131" + %"$consume_3137" = sub i64 %"$gasrem_3133", 1 + store i64 %"$consume_3137", i64* @_gasrem, align 8 + %"$msgobj_3138_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3138_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3138_salloc_load", i64 225) + %"$msgobj_3138_salloc" = bitcast i8* %"$msgobj_3138_salloc_salloc" to [225 x i8]* + %"$msgobj_3138" = bitcast [225 x i8]* %"$msgobj_3138_salloc" to i8* + store i8 5, i8* %"$msgobj_3138", align 1 + %"$msgobj_fname_3140" = getelementptr i8, i8* %"$msgobj_3138", i32 1 + %"$msgobj_fname_3141" = bitcast i8* %"$msgobj_fname_3140" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3139", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3141", align 8 + %"$msgobj_td_3142" = getelementptr i8, i8* %"$msgobj_3138", i32 17 + %"$msgobj_td_3143" = bitcast i8* %"$msgobj_td_3142" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_3143", align 8 + %"$msgobj_v_3145" = getelementptr i8, i8* %"$msgobj_3138", i32 25 + %"$msgobj_v_3146" = bitcast i8* %"$msgobj_v_3145" to %String* + store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3144", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3146", align 8 + %"$msgobj_fname_3148" = getelementptr i8, i8* %"$msgobj_3138", i32 41 + %"$msgobj_fname_3149" = bitcast i8* %"$msgobj_fname_3148" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3147", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3149", align 8 + %"$msgobj_td_3150" = getelementptr i8, i8* %"$msgobj_3138", i32 57 + %"$msgobj_td_3151" = bitcast i8* %"$msgobj_td_3150" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_3151", align 8 + %"$msgobj_v_3152" = getelementptr i8, i8* %"$msgobj_3138", i32 65 + %"$msgobj_v_3153" = bitcast i8* %"$msgobj_v_3152" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3153", align 1 + %"$msgobj_fname_3155" = getelementptr i8, i8* %"$msgobj_3138", i32 97 + %"$msgobj_fname_3156" = bitcast i8* %"$msgobj_fname_3155" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3154", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3156", align 8 + %"$msgobj_td_3157" = getelementptr i8, i8* %"$msgobj_3138", i32 113 + %"$msgobj_td_3158" = bitcast i8* %"$msgobj_td_3157" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3158", align 8 + %"$msgobj_v_3159" = getelementptr i8, i8* %"$msgobj_3138", i32 121 + %"$msgobj_v_3160" = bitcast i8* %"$msgobj_v_3159" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_3160", align 1 + %"$msgobj_fname_3162" = getelementptr i8, i8* %"$msgobj_3138", i32 141 + %"$msgobj_fname_3163" = bitcast i8* %"$msgobj_fname_3162" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3161", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3163", align 8 + %"$msgobj_td_3164" = getelementptr i8, i8* %"$msgobj_3138", i32 157 + %"$msgobj_td_3165" = bitcast i8* %"$msgobj_td_3164" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_3165", align 8 + %"$msgobj_v_3166" = getelementptr i8, i8* %"$msgobj_3138", i32 165 + %"$msgobj_v_3167" = bitcast i8* %"$msgobj_v_3166" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3167", align 8 + %"$msgobj_fname_3169" = getelementptr i8, i8* %"$msgobj_3138", i32 181 + %"$msgobj_fname_3170" = bitcast i8* %"$msgobj_fname_3169" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3168", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3170", align 8 + %"$msgobj_td_3171" = getelementptr i8, i8* %"$msgobj_3138", i32 197 + %"$msgobj_td_3172" = bitcast i8* %"$msgobj_td_3171" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3172", align 8 + %"$msgobj_v_3173" = getelementptr i8, i8* %"$msgobj_3138", i32 205 + %"$msgobj_v_3174" = bitcast i8* %"$msgobj_v_3173" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3174", align 1 + store i8* %"$msgobj_3138", i8** %m, align 8 + %"$gasrem_3176" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3177" = icmp ugt i64 1, %"$gasrem_3176" + br i1 %"$gascmp_3177", label %"$out_of_gas_3178", label %"$have_gas_3179" + +"$out_of_gas_3178": ; preds = %"$have_gas_3136" + call void @_out_of_gas() + br label %"$have_gas_3179" + +"$have_gas_3179": ; preds = %"$out_of_gas_3178", %"$have_gas_3136" + %"$consume_3180" = sub i64 %"$gasrem_3176", 1 + store i64 %"$consume_3180", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_43" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_3181" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_3182" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3181", 0 + %"$ud-registry.oneMsg_envptr_3183" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3181", 1 + %"$m_3184" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_3185" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3182"(i8* %"$ud-registry.oneMsg_envptr_3183", i8* %"$m_3184") + store %TName_List_Message* %"$ud-registry.oneMsg_call_3185", %TName_List_Message** %"$ud-registry.oneMsg_43", align 8 + %"$$ud-registry.oneMsg_43_3186" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_43", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_43_3186", %TName_List_Message** %msgs, align 8 + %"$msgs_3187" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_3187_3188" = bitcast %TName_List_Message* %"$msgs_3187" to i8* + %"$_literal_cost_call_3189" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_3187_3188") + %"$gasrem_3190" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3191" = icmp ugt i64 %"$_literal_cost_call_3189", %"$gasrem_3190" + br i1 %"$gascmp_3191", label %"$out_of_gas_3192", label %"$have_gas_3193" + +"$out_of_gas_3192": ; preds = %"$have_gas_3179" + call void @_out_of_gas() + br label %"$have_gas_3193" + +"$have_gas_3193": ; preds = %"$out_of_gas_3192", %"$have_gas_3179" + %"$consume_3194" = sub i64 %"$gasrem_3190", %"$_literal_cost_call_3189" + store i64 %"$consume_3194", i64* @_gasrem, align 8 + %"$execptr_load_3195" = load i8*, i8** @_execptr, align 8 + %"$msgs_3196" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_3195", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_3196") + br label %"$matchsucc_3059" + +"$False_3197": ; preds = %"$have_gas_3057" + %"$isSenderOAO_3198" = bitcast %TName_Bool* %"$isSenderOAO_3060" to %CName_False* + %"$gasrem_3199" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3200" = icmp ugt i64 1, %"$gasrem_3199" + br i1 %"$gascmp_3200", label %"$out_of_gas_3201", label %"$have_gas_3202" + +"$out_of_gas_3201": ; preds = %"$False_3197" + call void @_out_of_gas() + br label %"$have_gas_3202" + +"$have_gas_3202": ; preds = %"$out_of_gas_3201", %"$False_3197" + %"$consume_3203" = sub i64 %"$gasrem_3199", 1 + store i64 %"$consume_3203", i64* @_gasrem, align 8 %e4 = alloca i8*, align 8 - %"$gasrem_3722" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3723" = icmp ugt i64 1, %"$gasrem_3722" - br i1 %"$gascmp_3723", label %"$out_of_gas_3724", label %"$have_gas_3725" + %"$gasrem_3204" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3205" = icmp ugt i64 1, %"$gasrem_3204" + br i1 %"$gascmp_3205", label %"$out_of_gas_3206", label %"$have_gas_3207" -"$out_of_gas_3724": ; preds = %"$have_gas_3720" +"$out_of_gas_3206": ; preds = %"$have_gas_3202" call void @_out_of_gas() - br label %"$have_gas_3725" + br label %"$have_gas_3207" -"$have_gas_3725": ; preds = %"$out_of_gas_3724", %"$have_gas_3720" - %"$consume_3726" = sub i64 %"$gasrem_3722", 1 - store i64 %"$consume_3726", i64* @_gasrem, align 8 +"$have_gas_3207": ; preds = %"$out_of_gas_3206", %"$have_gas_3202" + %"$consume_3208" = sub i64 %"$gasrem_3204", 1 + store i64 %"$consume_3208", i64* @_gasrem, align 8 %m5 = alloca %String, align 8 - %"$gasrem_3727" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3728" = icmp ugt i64 1, %"$gasrem_3727" - br i1 %"$gascmp_3728", label %"$out_of_gas_3729", label %"$have_gas_3730" - -"$out_of_gas_3729": ; preds = %"$have_gas_3725" - call void @_out_of_gas() - br label %"$have_gas_3730" - -"$have_gas_3730": ; preds = %"$out_of_gas_3729", %"$have_gas_3725" - %"$consume_3731" = sub i64 %"$gasrem_3727", 1 - store i64 %"$consume_3731", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_3732", i32 0, i32 0), i32 43 }, %String* %m5, align 8 - %"$gasrem_3733" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3734" = icmp ugt i64 1, %"$gasrem_3733" - br i1 %"$gascmp_3734", label %"$out_of_gas_3735", label %"$have_gas_3736" - -"$out_of_gas_3735": ; preds = %"$have_gas_3730" - call void @_out_of_gas() - br label %"$have_gas_3736" - -"$have_gas_3736": ; preds = %"$out_of_gas_3735", %"$have_gas_3730" - %"$consume_3737" = sub i64 %"$gasrem_3733", 1 - store i64 %"$consume_3737", i64* @_gasrem, align 8 - %"$ud-registry.eError_74" = alloca i8*, align 8 - %"$ud-registry.eError_3738" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_3739" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3738", 0 - %"$ud-registry.eError_envptr_3740" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3738", 1 - %"$m_3741" = load %String, %String* %m5, align 8 - %"$ud-registry.eError_call_3742" = call i8* %"$ud-registry.eError_fptr_3739"(i8* %"$ud-registry.eError_envptr_3740", %String %"$m_3741") - store i8* %"$ud-registry.eError_call_3742", i8** %"$ud-registry.eError_74", align 8 - %"$$ud-registry.eError_74_3743" = load i8*, i8** %"$ud-registry.eError_74", align 8 - store i8* %"$$ud-registry.eError_74_3743", i8** %e4, align 8 - %"$e_3744" = load i8*, i8** %e4, align 8 - %"$_literal_cost_call_3746" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3744") - %"$gasrem_3747" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3748" = icmp ugt i64 %"$_literal_cost_call_3746", %"$gasrem_3747" - br i1 %"$gascmp_3748", label %"$out_of_gas_3749", label %"$have_gas_3750" - -"$out_of_gas_3749": ; preds = %"$have_gas_3736" - call void @_out_of_gas() - br label %"$have_gas_3750" - -"$have_gas_3750": ; preds = %"$out_of_gas_3749", %"$have_gas_3736" - %"$consume_3751" = sub i64 %"$gasrem_3747", %"$_literal_cost_call_3746" - store i64 %"$consume_3751", i64* @_gasrem, align 8 - %"$execptr_load_3752" = load i8*, i8** @_execptr, align 8 - %"$e_3753" = load i8*, i8** %e4, align 8 - call void @_event(i8* %"$execptr_load_3752", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_3753") - %"$gasrem_3754" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3755" = icmp ugt i64 1, %"$gasrem_3754" - br i1 %"$gascmp_3755", label %"$out_of_gas_3756", label %"$have_gas_3757" - -"$out_of_gas_3756": ; preds = %"$have_gas_3750" - call void @_out_of_gas() - br label %"$have_gas_3757" - -"$have_gas_3757": ; preds = %"$out_of_gas_3756", %"$have_gas_3750" - %"$consume_3758" = sub i64 %"$gasrem_3754", 1 - store i64 %"$consume_3758", i64* @_gasrem, align 8 + %"$gasrem_3209" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3210" = icmp ugt i64 1, %"$gasrem_3209" + br i1 %"$gascmp_3210", label %"$out_of_gas_3211", label %"$have_gas_3212" + +"$out_of_gas_3211": ; preds = %"$have_gas_3207" + call void @_out_of_gas() + br label %"$have_gas_3212" + +"$have_gas_3212": ; preds = %"$out_of_gas_3211", %"$have_gas_3207" + %"$consume_3213" = sub i64 %"$gasrem_3209", 1 + store i64 %"$consume_3213", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_3214", i32 0, i32 0), i32 43 }, %String* %m5, align 8 + %"$gasrem_3215" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3216" = icmp ugt i64 1, %"$gasrem_3215" + br i1 %"$gascmp_3216", label %"$out_of_gas_3217", label %"$have_gas_3218" + +"$out_of_gas_3217": ; preds = %"$have_gas_3212" + call void @_out_of_gas() + br label %"$have_gas_3218" + +"$have_gas_3218": ; preds = %"$out_of_gas_3217", %"$have_gas_3212" + %"$consume_3219" = sub i64 %"$gasrem_3215", 1 + store i64 %"$consume_3219", i64* @_gasrem, align 8 + %"$ud-registry.eError_44" = alloca i8*, align 8 + %"$ud-registry.eError_3220" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_3221" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3220", 0 + %"$ud-registry.eError_envptr_3222" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3220", 1 + %"$m_3223" = load %String, %String* %m5, align 8 + %"$ud-registry.eError_call_3224" = call i8* %"$ud-registry.eError_fptr_3221"(i8* %"$ud-registry.eError_envptr_3222", %String %"$m_3223") + store i8* %"$ud-registry.eError_call_3224", i8** %"$ud-registry.eError_44", align 8 + %"$$ud-registry.eError_44_3225" = load i8*, i8** %"$ud-registry.eError_44", align 8 + store i8* %"$$ud-registry.eError_44_3225", i8** %e4, align 8 + %"$e_3226" = load i8*, i8** %e4, align 8 + %"$_literal_cost_call_3228" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3226") + %"$gasrem_3229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3230" = icmp ugt i64 %"$_literal_cost_call_3228", %"$gasrem_3229" + br i1 %"$gascmp_3230", label %"$out_of_gas_3231", label %"$have_gas_3232" + +"$out_of_gas_3231": ; preds = %"$have_gas_3218" + call void @_out_of_gas() + br label %"$have_gas_3232" + +"$have_gas_3232": ; preds = %"$out_of_gas_3231", %"$have_gas_3218" + %"$consume_3233" = sub i64 %"$gasrem_3229", %"$_literal_cost_call_3228" + store i64 %"$consume_3233", i64* @_gasrem, align 8 + %"$execptr_load_3234" = load i8*, i8** @_execptr, align 8 + %"$e_3235" = load i8*, i8** %e4, align 8 + call void @_event(i8* %"$execptr_load_3234", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3235") + %"$gasrem_3236" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3237" = icmp ugt i64 1, %"$gasrem_3236" + br i1 %"$gascmp_3237", label %"$out_of_gas_3238", label %"$have_gas_3239" + +"$out_of_gas_3238": ; preds = %"$have_gas_3232" + call void @_out_of_gas() + br label %"$have_gas_3239" + +"$have_gas_3239": ; preds = %"$out_of_gas_3238", %"$have_gas_3232" + %"$consume_3240" = sub i64 %"$gasrem_3236", 1 + store i64 %"$consume_3240", i64* @_gasrem, align 8 %msgs6 = alloca %TName_List_Message*, align 8 - %"$gasrem_3759" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3760" = icmp ugt i64 1, %"$gasrem_3759" - br i1 %"$gascmp_3760", label %"$out_of_gas_3761", label %"$have_gas_3762" + %"$gasrem_3241" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3242" = icmp ugt i64 1, %"$gasrem_3241" + br i1 %"$gascmp_3242", label %"$out_of_gas_3243", label %"$have_gas_3244" -"$out_of_gas_3761": ; preds = %"$have_gas_3757" +"$out_of_gas_3243": ; preds = %"$have_gas_3239" call void @_out_of_gas() - br label %"$have_gas_3762" + br label %"$have_gas_3244" -"$have_gas_3762": ; preds = %"$out_of_gas_3761", %"$have_gas_3757" - %"$consume_3763" = sub i64 %"$gasrem_3759", 1 - store i64 %"$consume_3763", i64* @_gasrem, align 8 +"$have_gas_3244": ; preds = %"$out_of_gas_3243", %"$have_gas_3239" + %"$consume_3245" = sub i64 %"$gasrem_3241", 1 + store i64 %"$consume_3245", i64* @_gasrem, align 8 %"$m_0" = alloca i8*, align 8 - %"$gasrem_3764" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3765" = icmp ugt i64 1, %"$gasrem_3764" - br i1 %"$gascmp_3765", label %"$out_of_gas_3766", label %"$have_gas_3767" - -"$out_of_gas_3766": ; preds = %"$have_gas_3762" - call void @_out_of_gas() - br label %"$have_gas_3767" - -"$have_gas_3767": ; preds = %"$out_of_gas_3766", %"$have_gas_3762" - %"$consume_3768" = sub i64 %"$gasrem_3764", 1 - store i64 %"$consume_3768", i64* @_gasrem, align 8 - %"$msgobj_3769_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_3769_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3769_salloc_load", i64 225) - %"$msgobj_3769_salloc" = bitcast i8* %"$msgobj_3769_salloc_salloc" to [225 x i8]* - %"$msgobj_3769" = bitcast [225 x i8]* %"$msgobj_3769_salloc" to i8* - store i8 5, i8* %"$msgobj_3769", align 1 - %"$msgobj_fname_3771" = getelementptr i8, i8* %"$msgobj_3769", i32 1 - %"$msgobj_fname_3772" = bitcast i8* %"$msgobj_fname_3771" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3770", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3772", align 8 - %"$msgobj_td_3773" = getelementptr i8, i8* %"$msgobj_3769", i32 17 - %"$msgobj_td_3774" = bitcast i8* %"$msgobj_td_3773" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_3774", align 8 - %"$msgobj_v_3776" = getelementptr i8, i8* %"$msgobj_3769", i32 25 - %"$msgobj_v_3777" = bitcast i8* %"$msgobj_v_3776" to %String* - store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3775", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3777", align 8 - %"$msgobj_fname_3779" = getelementptr i8, i8* %"$msgobj_3769", i32 41 - %"$msgobj_fname_3780" = bitcast i8* %"$msgobj_fname_3779" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3778", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3780", align 8 - %"$msgobj_td_3781" = getelementptr i8, i8* %"$msgobj_3769", i32 57 - %"$msgobj_td_3782" = bitcast i8* %"$msgobj_td_3781" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_3782", align 8 - %"$msgobj_v_3783" = getelementptr i8, i8* %"$msgobj_3769", i32 65 - %"$msgobj_v_3784" = bitcast i8* %"$msgobj_v_3783" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3784", align 1 - %"$msgobj_fname_3786" = getelementptr i8, i8* %"$msgobj_3769", i32 97 - %"$msgobj_fname_3787" = bitcast i8* %"$msgobj_fname_3786" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3785", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3787", align 8 - %"$msgobj_td_3788" = getelementptr i8, i8* %"$msgobj_3769", i32 113 - %"$msgobj_td_3789" = bitcast i8* %"$msgobj_td_3788" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_3789", align 8 - %"$recordOwner_3790" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$msgobj_v_3791" = getelementptr i8, i8* %"$msgobj_3769", i32 121 - %"$msgobj_v_3792" = bitcast i8* %"$msgobj_v_3791" to [20 x i8]* - store [20 x i8] %"$recordOwner_3790", [20 x i8]* %"$msgobj_v_3792", align 1 - %"$msgobj_fname_3794" = getelementptr i8, i8* %"$msgobj_3769", i32 141 - %"$msgobj_fname_3795" = bitcast i8* %"$msgobj_fname_3794" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3793", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3795", align 8 - %"$msgobj_td_3796" = getelementptr i8, i8* %"$msgobj_3769", i32 157 - %"$msgobj_td_3797" = bitcast i8* %"$msgobj_td_3796" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_3797", align 8 - %"$msgobj_v_3798" = getelementptr i8, i8* %"$msgobj_3769", i32 165 - %"$msgobj_v_3799" = bitcast i8* %"$msgobj_v_3798" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3799", align 8 - %"$msgobj_fname_3801" = getelementptr i8, i8* %"$msgobj_3769", i32 181 - %"$msgobj_fname_3802" = bitcast i8* %"$msgobj_fname_3801" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3800", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3802", align 8 - %"$msgobj_td_3803" = getelementptr i8, i8* %"$msgobj_3769", i32 197 - %"$msgobj_td_3804" = bitcast i8* %"$msgobj_td_3803" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_3804", align 8 - %"$msgobj_v_3805" = getelementptr i8, i8* %"$msgobj_3769", i32 205 - %"$msgobj_v_3806" = bitcast i8* %"$msgobj_v_3805" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3806", align 1 - store i8* %"$msgobj_3769", i8** %"$m_0", align 8 - %"$gasrem_3808" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3809" = icmp ugt i64 1, %"$gasrem_3808" - br i1 %"$gascmp_3809", label %"$out_of_gas_3810", label %"$have_gas_3811" - -"$out_of_gas_3810": ; preds = %"$have_gas_3767" - call void @_out_of_gas() - br label %"$have_gas_3811" - -"$have_gas_3811": ; preds = %"$out_of_gas_3810", %"$have_gas_3767" - %"$consume_3812" = sub i64 %"$gasrem_3808", 1 - store i64 %"$consume_3812", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_73" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_3813" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_3814" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3813", 0 - %"$ud-registry.oneMsg_envptr_3815" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3813", 1 - %"$$m_0_3816" = load i8*, i8** %"$m_0", align 8 - %"$ud-registry.oneMsg_call_3817" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3814"(i8* %"$ud-registry.oneMsg_envptr_3815", i8* %"$$m_0_3816") - store %TName_List_Message* %"$ud-registry.oneMsg_call_3817", %TName_List_Message** %"$ud-registry.oneMsg_73", align 8 - %"$$ud-registry.oneMsg_73_3818" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_73", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_73_3818", %TName_List_Message** %msgs6, align 8 - %"$msgs_3819" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 - %"$$msgs_3819_3820" = bitcast %TName_List_Message* %"$msgs_3819" to i8* - %"$_literal_cost_call_3821" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_3819_3820") - %"$gasrem_3822" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3823" = icmp ugt i64 %"$_literal_cost_call_3821", %"$gasrem_3822" - br i1 %"$gascmp_3823", label %"$out_of_gas_3824", label %"$have_gas_3825" - -"$out_of_gas_3824": ; preds = %"$have_gas_3811" - call void @_out_of_gas() - br label %"$have_gas_3825" - -"$have_gas_3825": ; preds = %"$out_of_gas_3824", %"$have_gas_3811" - %"$consume_3826" = sub i64 %"$gasrem_3822", %"$_literal_cost_call_3821" - store i64 %"$consume_3826", i64* @_gasrem, align 8 - %"$execptr_load_3827" = load i8*, i8** @_execptr, align 8 - %"$msgs_3828" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 - call void @_send(i8* %"$execptr_load_3827", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_3828") - br label %"$matchsucc_3568" - -"$empty_default_3572": ; preds = %"$have_gas_3566" - br label %"$matchsucc_3568" - -"$matchsucc_3568": ; preds = %"$have_gas_3825", %"$have_gas_3711", %"$empty_default_3572" + %"$gasrem_3246" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3247" = icmp ugt i64 1, %"$gasrem_3246" + br i1 %"$gascmp_3247", label %"$out_of_gas_3248", label %"$have_gas_3249" + +"$out_of_gas_3248": ; preds = %"$have_gas_3244" + call void @_out_of_gas() + br label %"$have_gas_3249" + +"$have_gas_3249": ; preds = %"$out_of_gas_3248", %"$have_gas_3244" + %"$consume_3250" = sub i64 %"$gasrem_3246", 1 + store i64 %"$consume_3250", i64* @_gasrem, align 8 + %"$msgobj_3251_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3251_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3251_salloc_load", i64 225) + %"$msgobj_3251_salloc" = bitcast i8* %"$msgobj_3251_salloc_salloc" to [225 x i8]* + %"$msgobj_3251" = bitcast [225 x i8]* %"$msgobj_3251_salloc" to i8* + store i8 5, i8* %"$msgobj_3251", align 1 + %"$msgobj_fname_3253" = getelementptr i8, i8* %"$msgobj_3251", i32 1 + %"$msgobj_fname_3254" = bitcast i8* %"$msgobj_fname_3253" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3252", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3254", align 8 + %"$msgobj_td_3255" = getelementptr i8, i8* %"$msgobj_3251", i32 17 + %"$msgobj_td_3256" = bitcast i8* %"$msgobj_td_3255" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_3256", align 8 + %"$msgobj_v_3258" = getelementptr i8, i8* %"$msgobj_3251", i32 25 + %"$msgobj_v_3259" = bitcast i8* %"$msgobj_v_3258" to %String* + store %String { i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"$stringlit_3257", i32 0, i32 0), i32 18 }, %String* %"$msgobj_v_3259", align 8 + %"$msgobj_fname_3261" = getelementptr i8, i8* %"$msgobj_3251", i32 41 + %"$msgobj_fname_3262" = bitcast i8* %"$msgobj_fname_3261" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3260", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3262", align 8 + %"$msgobj_td_3263" = getelementptr i8, i8* %"$msgobj_3251", i32 57 + %"$msgobj_td_3264" = bitcast i8* %"$msgobj_td_3263" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_3264", align 8 + %"$msgobj_v_3265" = getelementptr i8, i8* %"$msgobj_3251", i32 65 + %"$msgobj_v_3266" = bitcast i8* %"$msgobj_v_3265" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3266", align 1 + %"$msgobj_fname_3268" = getelementptr i8, i8* %"$msgobj_3251", i32 97 + %"$msgobj_fname_3269" = bitcast i8* %"$msgobj_fname_3268" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3267", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3269", align 8 + %"$msgobj_td_3270" = getelementptr i8, i8* %"$msgobj_3251", i32 113 + %"$msgobj_td_3271" = bitcast i8* %"$msgobj_td_3270" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3271", align 8 + %"$recordOwner_3272" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$msgobj_v_3273" = getelementptr i8, i8* %"$msgobj_3251", i32 121 + %"$msgobj_v_3274" = bitcast i8* %"$msgobj_v_3273" to [20 x i8]* + store [20 x i8] %"$recordOwner_3272", [20 x i8]* %"$msgobj_v_3274", align 1 + %"$msgobj_fname_3276" = getelementptr i8, i8* %"$msgobj_3251", i32 141 + %"$msgobj_fname_3277" = bitcast i8* %"$msgobj_fname_3276" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3275", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3277", align 8 + %"$msgobj_td_3278" = getelementptr i8, i8* %"$msgobj_3251", i32 157 + %"$msgobj_td_3279" = bitcast i8* %"$msgobj_td_3278" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_3279", align 8 + %"$msgobj_v_3280" = getelementptr i8, i8* %"$msgobj_3251", i32 165 + %"$msgobj_v_3281" = bitcast i8* %"$msgobj_v_3280" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3281", align 8 + %"$msgobj_fname_3283" = getelementptr i8, i8* %"$msgobj_3251", i32 181 + %"$msgobj_fname_3284" = bitcast i8* %"$msgobj_fname_3283" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3282", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3284", align 8 + %"$msgobj_td_3285" = getelementptr i8, i8* %"$msgobj_3251", i32 197 + %"$msgobj_td_3286" = bitcast i8* %"$msgobj_td_3285" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3286", align 8 + %"$msgobj_v_3287" = getelementptr i8, i8* %"$msgobj_3251", i32 205 + %"$msgobj_v_3288" = bitcast i8* %"$msgobj_v_3287" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3288", align 1 + store i8* %"$msgobj_3251", i8** %"$m_0", align 8 + %"$gasrem_3290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3291" = icmp ugt i64 1, %"$gasrem_3290" + br i1 %"$gascmp_3291", label %"$out_of_gas_3292", label %"$have_gas_3293" + +"$out_of_gas_3292": ; preds = %"$have_gas_3249" + call void @_out_of_gas() + br label %"$have_gas_3293" + +"$have_gas_3293": ; preds = %"$out_of_gas_3292", %"$have_gas_3249" + %"$consume_3294" = sub i64 %"$gasrem_3290", 1 + store i64 %"$consume_3294", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_45" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_3295" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_3296" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3295", 0 + %"$ud-registry.oneMsg_envptr_3297" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3295", 1 + %"$$m_0_3298" = load i8*, i8** %"$m_0", align 8 + %"$ud-registry.oneMsg_call_3299" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3296"(i8* %"$ud-registry.oneMsg_envptr_3297", i8* %"$$m_0_3298") + store %TName_List_Message* %"$ud-registry.oneMsg_call_3299", %TName_List_Message** %"$ud-registry.oneMsg_45", align 8 + %"$$ud-registry.oneMsg_45_3300" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_45", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_45_3300", %TName_List_Message** %msgs6, align 8 + %"$msgs_3301" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 + %"$$msgs_3301_3302" = bitcast %TName_List_Message* %"$msgs_3301" to i8* + %"$_literal_cost_call_3303" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_3301_3302") + %"$gasrem_3304" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3305" = icmp ugt i64 %"$_literal_cost_call_3303", %"$gasrem_3304" + br i1 %"$gascmp_3305", label %"$out_of_gas_3306", label %"$have_gas_3307" + +"$out_of_gas_3306": ; preds = %"$have_gas_3293" + call void @_out_of_gas() + br label %"$have_gas_3307" + +"$have_gas_3307": ; preds = %"$out_of_gas_3306", %"$have_gas_3293" + %"$consume_3308" = sub i64 %"$gasrem_3304", %"$_literal_cost_call_3303" + store i64 %"$consume_3308", i64* @_gasrem, align 8 + %"$execptr_load_3309" = load i8*, i8** @_execptr, align 8 + %"$msgs_3310" = load %TName_List_Message*, %TName_List_Message** %msgs6, align 8 + call void @_send(i8* %"$execptr_load_3309", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_3310") + br label %"$matchsucc_3059" + +"$empty_default_3063": ; preds = %"$have_gas_3057" + br label %"$matchsucc_3059" + +"$matchsucc_3059": ; preds = %"$have_gas_3307", %"$have_gas_3193", %"$empty_default_3063" ret void } @@ -7148,3554 +6356,3323 @@ declare void @_send(i8*, %_TyDescrTy_Typ*, %TName_List_Message*) define void @configureNode(i8* %0) { entry: - %"$_amount_3830" = getelementptr i8, i8* %0, i32 0 - %"$_amount_3831" = bitcast i8* %"$_amount_3830" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_3831", align 8 - %"$_origin_3832" = getelementptr i8, i8* %0, i32 16 - %"$_origin_3833" = bitcast i8* %"$_origin_3832" to [20 x i8]* - %"$_sender_3834" = getelementptr i8, i8* %0, i32 36 - %"$_sender_3835" = bitcast i8* %"$_sender_3834" to [20 x i8]* - %"$node_3836" = getelementptr i8, i8* %0, i32 56 - %"$node_3837" = bitcast i8* %"$node_3836" to [32 x i8]* - %"$owner_3838" = getelementptr i8, i8* %0, i32 88 - %"$owner_3839" = bitcast i8* %"$owner_3838" to [20 x i8]* - %"$resolver_3840" = getelementptr i8, i8* %0, i32 108 - %"$resolver_3841" = bitcast i8* %"$resolver_3840" to [20 x i8]* - call void @"$configureNode_3459"(%Uint128 %_amount, [20 x i8]* %"$_origin_3833", [20 x i8]* %"$_sender_3835", [32 x i8]* %"$node_3837", [20 x i8]* %"$owner_3839", [20 x i8]* %"$resolver_3841") + %"$_amount_3312" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3313" = bitcast i8* %"$_amount_3312" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3313", align 8 + %"$_origin_3314" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3315" = bitcast i8* %"$_origin_3314" to [20 x i8]* + %"$_sender_3316" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3317" = bitcast i8* %"$_sender_3316" to [20 x i8]* + %"$node_3318" = getelementptr i8, i8* %0, i32 56 + %"$node_3319" = bitcast i8* %"$node_3318" to [32 x i8]* + %"$owner_3320" = getelementptr i8, i8* %0, i32 88 + %"$owner_3321" = bitcast i8* %"$owner_3320" to [20 x i8]* + %"$resolver_3322" = getelementptr i8, i8* %0, i32 108 + %"$resolver_3323" = bitcast i8* %"$resolver_3322" to [20 x i8]* + call void @"$configureNode_2963"(%Uint128 %_amount, [20 x i8]* %"$_origin_3315", [20 x i8]* %"$_sender_3317", [32 x i8]* %"$node_3319", [20 x i8]* %"$owner_3321", [20 x i8]* %"$resolver_3323") ret void } -define internal void @"$configureResolver_3842"(%Uint128 %_amount, [20 x i8]* %"$_origin_3843", [20 x i8]* %"$_sender_3844", [32 x i8]* %"$node_3845", [20 x i8]* %"$resolver_3846") { +define internal void @"$configureResolver_3324"(%Uint128 %_amount, [20 x i8]* %"$_origin_3325", [20 x i8]* %"$_sender_3326", [32 x i8]* %"$node_3327", [20 x i8]* %"$resolver_3328") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_3843", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_3844", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_3845", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_3846", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3325", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3326", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_3327", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_3328", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_3847_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3847_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3847_salloc_load", i64 32) - %"$indices_buf_3847_salloc" = bitcast i8* %"$indices_buf_3847_salloc_salloc" to [32 x i8]* - %"$indices_buf_3847" = bitcast [32 x i8]* %"$indices_buf_3847_salloc" to i8* - %"$indices_gep_3848" = getelementptr i8, i8* %"$indices_buf_3847", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_3848" to [32 x i8]* + %"$indices_buf_3329_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3329_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3329_salloc_load", i64 32) + %"$indices_buf_3329_salloc" = bitcast i8* %"$indices_buf_3329_salloc_salloc" to [32 x i8]* + %"$indices_buf_3329" = bitcast [32 x i8]* %"$indices_buf_3329_salloc" to i8* + %"$indices_gep_3330" = getelementptr i8, i8* %"$indices_buf_3329", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3330" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_3850" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_3851" = call i8* @_fetch_field(i8* %"$execptr_load_3850", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3849", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_3847", i32 1) - %"$maybeRecord_3852" = bitcast i8* %"$maybeRecord_call_3851" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_3852", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_3853" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_3853_3854" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3853" to i8* - %"$_literal_cost_call_3855" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_3853_3854") - %"$gasadd_3856" = add i64 %"$_literal_cost_call_3855", 0 - %"$gasadd_3857" = add i64 %"$gasadd_3856", 1 - %"$gasrem_3858" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3859" = icmp ugt i64 %"$gasadd_3857", %"$gasrem_3858" - br i1 %"$gascmp_3859", label %"$out_of_gas_3860", label %"$have_gas_3861" - -"$out_of_gas_3860": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_3861" - -"$have_gas_3861": ; preds = %"$out_of_gas_3860", %entry - %"$consume_3862" = sub i64 %"$gasrem_3858", %"$gasadd_3857" - store i64 %"$consume_3862", i64* @_gasrem, align 8 + %"$execptr_load_3332" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_3333" = call i8* @_fetch_field(i8* %"$execptr_load_3332", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3331", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3329", i32 1) + %"$maybeRecord_3334" = bitcast i8* %"$maybeRecord_call_3333" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_3334", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_3335" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_3335_3336" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3335" to i8* + %"$_literal_cost_call_3337" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_3335_3336") + %"$gasadd_3338" = add i64 %"$_literal_cost_call_3337", 0 + %"$gasadd_3339" = add i64 %"$gasadd_3338", 1 + %"$gasrem_3340" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3341" = icmp ugt i64 %"$gasadd_3339", %"$gasrem_3340" + br i1 %"$gascmp_3341", label %"$out_of_gas_3342", label %"$have_gas_3343" + +"$out_of_gas_3342": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3343" + +"$have_gas_3343": ; preds = %"$out_of_gas_3342", %entry + %"$consume_3344" = sub i64 %"$gasrem_3340", %"$gasadd_3339" + store i64 %"$consume_3344", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_3863_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3863_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3863_salloc_load", i64 32) - %"$indices_buf_3863_salloc" = bitcast i8* %"$indices_buf_3863_salloc_salloc" to [32 x i8]* - %"$indices_buf_3863" = bitcast [32 x i8]* %"$indices_buf_3863_salloc" to i8* - %"$indices_gep_3864" = getelementptr i8, i8* %"$indices_buf_3863", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_3864" to [32 x i8]* + %"$indices_buf_3345_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3345_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3345_salloc_load", i64 32) + %"$indices_buf_3345_salloc" = bitcast i8* %"$indices_buf_3345_salloc_salloc" to [32 x i8]* + %"$indices_buf_3345" = bitcast [32 x i8]* %"$indices_buf_3345_salloc" to i8* + %"$indices_gep_3346" = getelementptr i8, i8* %"$indices_buf_3345", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_3346" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_3866" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_3867" = call i8* @_fetch_field(i8* %"$execptr_load_3866", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3865", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_3863", i32 1) - %"$maybeApproved_3868" = bitcast i8* %"$maybeApproved_call_3867" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_3868", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_3869" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_3869_3870" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3869" to i8* - %"$_literal_cost_call_3871" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_3869_3870") - %"$gasadd_3872" = add i64 %"$_literal_cost_call_3871", 0 - %"$gasadd_3873" = add i64 %"$gasadd_3872", 1 - %"$gasrem_3874" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3875" = icmp ugt i64 %"$gasadd_3873", %"$gasrem_3874" - br i1 %"$gascmp_3875", label %"$out_of_gas_3876", label %"$have_gas_3877" - -"$out_of_gas_3876": ; preds = %"$have_gas_3861" - call void @_out_of_gas() - br label %"$have_gas_3877" - -"$have_gas_3877": ; preds = %"$out_of_gas_3876", %"$have_gas_3861" - %"$consume_3878" = sub i64 %"$gasrem_3874", %"$gasadd_3873" - store i64 %"$consume_3878", i64* @_gasrem, align 8 - %"$gasrem_3879" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3880" = icmp ugt i64 1, %"$gasrem_3879" - br i1 %"$gascmp_3880", label %"$out_of_gas_3881", label %"$have_gas_3882" - -"$out_of_gas_3881": ; preds = %"$have_gas_3877" - call void @_out_of_gas() - br label %"$have_gas_3882" - -"$have_gas_3882": ; preds = %"$out_of_gas_3881", %"$have_gas_3877" - %"$consume_3883" = sub i64 %"$gasrem_3879", 1 - store i64 %"$consume_3883", i64* @_gasrem, align 8 + %"$execptr_load_3348" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_3349" = call i8* @_fetch_field(i8* %"$execptr_load_3348", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3347", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_3345", i32 1) + %"$maybeApproved_3350" = bitcast i8* %"$maybeApproved_call_3349" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_3350", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_3351" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_3351_3352" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3351" to i8* + %"$_literal_cost_call_3353" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_3351_3352") + %"$gasadd_3354" = add i64 %"$_literal_cost_call_3353", 0 + %"$gasadd_3355" = add i64 %"$gasadd_3354", 1 + %"$gasrem_3356" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3357" = icmp ugt i64 %"$gasadd_3355", %"$gasrem_3356" + br i1 %"$gascmp_3357", label %"$out_of_gas_3358", label %"$have_gas_3359" + +"$out_of_gas_3358": ; preds = %"$have_gas_3343" + call void @_out_of_gas() + br label %"$have_gas_3359" + +"$have_gas_3359": ; preds = %"$out_of_gas_3358", %"$have_gas_3343" + %"$consume_3360" = sub i64 %"$gasrem_3356", %"$gasadd_3355" + store i64 %"$consume_3360", i64* @_gasrem, align 8 + %"$gasrem_3361" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3362" = icmp ugt i64 1, %"$gasrem_3361" + br i1 %"$gascmp_3362", label %"$out_of_gas_3363", label %"$have_gas_3364" + +"$out_of_gas_3363": ; preds = %"$have_gas_3359" + call void @_out_of_gas() + br label %"$have_gas_3364" + +"$have_gas_3364": ; preds = %"$out_of_gas_3363", %"$have_gas_3359" + %"$consume_3365" = sub i64 %"$gasrem_3361", 1 + store i64 %"$consume_3365", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_3884" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3885" = icmp ugt i64 1, %"$gasrem_3884" - br i1 %"$gascmp_3885", label %"$out_of_gas_3886", label %"$have_gas_3887" - -"$out_of_gas_3886": ; preds = %"$have_gas_3882" - call void @_out_of_gas() - br label %"$have_gas_3887" - -"$have_gas_3887": ; preds = %"$out_of_gas_3886", %"$have_gas_3882" - %"$consume_3888" = sub i64 %"$gasrem_3884", 1 - store i64 %"$consume_3888", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_88" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_3889" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_3890" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3889", 0 - %"$ud-registry.recordMemberOwner_envptr_3891" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3889", 1 - %"$maybeRecord_3892" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_3893" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_3890"(i8* %"$ud-registry.recordMemberOwner_envptr_3891", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3893", %TName_Option_ud-registry.Record* %"$maybeRecord_3892") - %"$ud-registry.recordMemberOwner_ret_3894" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3893", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3894", [20 x i8]* %"$ud-registry.recordMemberOwner_88", align 1 - %"$$ud-registry.recordMemberOwner_88_3895" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_88", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_88_3895", [20 x i8]* %recordOwner, align 1 + %"$gasrem_3366" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3367" = icmp ugt i64 1, %"$gasrem_3366" + br i1 %"$gascmp_3367", label %"$out_of_gas_3368", label %"$have_gas_3369" + +"$out_of_gas_3368": ; preds = %"$have_gas_3364" + call void @_out_of_gas() + br label %"$have_gas_3369" + +"$have_gas_3369": ; preds = %"$out_of_gas_3368", %"$have_gas_3364" + %"$consume_3370" = sub i64 %"$gasrem_3366", 1 + store i64 %"$consume_3370", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_46" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_3371" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_3372" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3371", 0 + %"$ud-registry.recordMemberOwner_envptr_3373" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3371", 1 + %"$maybeRecord_3374" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_3375" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_3372"(i8* %"$ud-registry.recordMemberOwner_envptr_3373", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3375", %TName_Option_ud-registry.Record* %"$maybeRecord_3374") + %"$ud-registry.recordMemberOwner_ret_3376" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3375", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3376", [20 x i8]* %"$ud-registry.recordMemberOwner_46", align 1 + %"$$ud-registry.recordMemberOwner_46_3377" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_46", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_46_3377", [20 x i8]* %recordOwner, align 1 %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_3896_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3896_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3896_salloc_load", i64 20) - %"$indices_buf_3896_salloc" = bitcast i8* %"$indices_buf_3896_salloc_salloc" to [20 x i8]* - %"$indices_buf_3896" = bitcast [20 x i8]* %"$indices_buf_3896_salloc" to i8* - %"$recordOwner_3897" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_3898" = getelementptr i8, i8* %"$indices_buf_3896", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_3898" to [20 x i8]* - store [20 x i8] %"$recordOwner_3897", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_3900" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_3901" = call i8* @_fetch_field(i8* %"$execptr_load_3900", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3899", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_3896", i32 1) - %"$maybeOperators_3902" = bitcast i8* %"$maybeOperators_call_3901" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3902", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_3903" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_3903_3904" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3903" to i8* - %"$_literal_cost_call_3905" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", i8* %"$$maybeOperators_3903_3904") - %"$gasadd_3906" = add i64 %"$_literal_cost_call_3905", 0 - %"$gasadd_3907" = add i64 %"$gasadd_3906", 1 - %"$gasrem_3908" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3909" = icmp ugt i64 %"$gasadd_3907", %"$gasrem_3908" - br i1 %"$gascmp_3909", label %"$out_of_gas_3910", label %"$have_gas_3911" - -"$out_of_gas_3910": ; preds = %"$have_gas_3887" - call void @_out_of_gas() - br label %"$have_gas_3911" - -"$have_gas_3911": ; preds = %"$out_of_gas_3910", %"$have_gas_3887" - %"$consume_3912" = sub i64 %"$gasrem_3908", %"$gasadd_3907" - store i64 %"$consume_3912", i64* @_gasrem, align 8 - %"$gasrem_3913" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3914" = icmp ugt i64 1, %"$gasrem_3913" - br i1 %"$gascmp_3914", label %"$out_of_gas_3915", label %"$have_gas_3916" - -"$out_of_gas_3915": ; preds = %"$have_gas_3911" - call void @_out_of_gas() - br label %"$have_gas_3916" - -"$have_gas_3916": ; preds = %"$out_of_gas_3915", %"$have_gas_3911" - %"$consume_3917" = sub i64 %"$gasrem_3913", 1 - store i64 %"$consume_3917", i64* @_gasrem, align 8 + %"$indices_buf_3378_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3378_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3378_salloc_load", i64 20) + %"$indices_buf_3378_salloc" = bitcast i8* %"$indices_buf_3378_salloc_salloc" to [20 x i8]* + %"$indices_buf_3378" = bitcast [20 x i8]* %"$indices_buf_3378_salloc" to i8* + %"$recordOwner_3379" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_3380" = getelementptr i8, i8* %"$indices_buf_3378", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_3380" to [20 x i8]* + store [20 x i8] %"$recordOwner_3379", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_3382" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_3383" = call i8* @_fetch_field(i8* %"$execptr_load_3382", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3381", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_3378", i32 1) + %"$maybeOperators_3384" = bitcast i8* %"$maybeOperators_call_3383" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3384", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_3385" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_3385_3386" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3385" to i8* + %"$_literal_cost_call_3387" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", i8* %"$$maybeOperators_3385_3386") + %"$gasadd_3388" = add i64 %"$_literal_cost_call_3387", 0 + %"$gasadd_3389" = add i64 %"$gasadd_3388", 1 + %"$gasrem_3390" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3391" = icmp ugt i64 %"$gasadd_3389", %"$gasrem_3390" + br i1 %"$gascmp_3391", label %"$out_of_gas_3392", label %"$have_gas_3393" + +"$out_of_gas_3392": ; preds = %"$have_gas_3369" + call void @_out_of_gas() + br label %"$have_gas_3393" + +"$have_gas_3393": ; preds = %"$out_of_gas_3392", %"$have_gas_3369" + %"$consume_3394" = sub i64 %"$gasrem_3390", %"$gasadd_3389" + store i64 %"$consume_3394", i64* @_gasrem, align 8 + %"$gasrem_3395" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3396" = icmp ugt i64 1, %"$gasrem_3395" + br i1 %"$gascmp_3396", label %"$out_of_gas_3397", label %"$have_gas_3398" + +"$out_of_gas_3397": ; preds = %"$have_gas_3393" + call void @_out_of_gas() + br label %"$have_gas_3398" + +"$have_gas_3398": ; preds = %"$out_of_gas_3397", %"$have_gas_3393" + %"$consume_3399" = sub i64 %"$gasrem_3395", 1 + store i64 %"$consume_3399", i64* @_gasrem, align 8 %isSenderOAO = alloca %TName_Bool*, align 8 - %"$gasrem_3918" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3919" = icmp ugt i64 1, %"$gasrem_3918" - br i1 %"$gascmp_3919", label %"$out_of_gas_3920", label %"$have_gas_3921" - -"$out_of_gas_3920": ; preds = %"$have_gas_3916" - call void @_out_of_gas() - br label %"$have_gas_3921" - -"$have_gas_3921": ; preds = %"$out_of_gas_3920", %"$have_gas_3916" - %"$consume_3922" = sub i64 %"$gasrem_3918", 1 - store i64 %"$consume_3922", i64* @_gasrem, align 8 - %"$ud-registry.getIsOAO_84" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_3923" = load { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.getIsOAO, align 8 - %"$ud-registry.getIsOAO_fptr_3924" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_3923", 0 - %"$ud-registry.getIsOAO_envptr_3925" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_3923", 1 - %"$ud-registry.getIsOAO__sender_3926" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3926", align 1 - %"$ud-registry.getIsOAO_call_3927" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_3924"(i8* %"$ud-registry.getIsOAO_envptr_3925", [20 x i8]* %"$ud-registry.getIsOAO__sender_3926") - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_3927", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_84", align 8 - %"$ud-registry.getIsOAO_85" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_84_3928" = load { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_84", align 8 - %"$$ud-registry.getIsOAO_84_fptr_3929" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_84_3928", 0 - %"$$ud-registry.getIsOAO_84_envptr_3930" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_84_3928", 1 - %"$$ud-registry.getIsOAO_84_recordOwner_3931" = alloca [20 x i8], align 1 - %"$recordOwner_3932" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_3932", [20 x i8]* %"$$ud-registry.getIsOAO_84_recordOwner_3931", align 1 - %"$$ud-registry.getIsOAO_84_call_3933" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_84_fptr_3929"(i8* %"$$ud-registry.getIsOAO_84_envptr_3930", [20 x i8]* %"$$ud-registry.getIsOAO_84_recordOwner_3931") - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_84_call_3933", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_85", align 8 - %"$ud-registry.getIsOAO_86" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_85_3934" = load { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_85", align 8 - %"$$ud-registry.getIsOAO_85_fptr_3935" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_85_3934", 0 - %"$$ud-registry.getIsOAO_85_envptr_3936" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_85_3934", 1 - %"$maybeApproved_3937" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_85_call_3938" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_85_fptr_3935"(i8* %"$$ud-registry.getIsOAO_85_envptr_3936", %TName_Option_ByStr20* %"$maybeApproved_3937") - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_85_call_3938", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_86", align 8 - %"$ud-registry.getIsOAO_87" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_86_3939" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_86", align 8 - %"$$ud-registry.getIsOAO_86_fptr_3940" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_86_3939", 0 - %"$$ud-registry.getIsOAO_86_envptr_3941" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_86_3939", 1 - %"$maybeOperators_3942" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_86_call_3943" = call %TName_Bool* %"$$ud-registry.getIsOAO_86_fptr_3940"(i8* %"$$ud-registry.getIsOAO_86_envptr_3941", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3942") - store %TName_Bool* %"$$ud-registry.getIsOAO_86_call_3943", %TName_Bool** %"$ud-registry.getIsOAO_87", align 8 - %"$$ud-registry.getIsOAO_87_3944" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_87", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_87_3944", %TName_Bool** %isSenderOAO, align 8 - %"$gasrem_3945" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3946" = icmp ugt i64 2, %"$gasrem_3945" - br i1 %"$gascmp_3946", label %"$out_of_gas_3947", label %"$have_gas_3948" - -"$out_of_gas_3947": ; preds = %"$have_gas_3921" - call void @_out_of_gas() - br label %"$have_gas_3948" - -"$have_gas_3948": ; preds = %"$out_of_gas_3947", %"$have_gas_3921" - %"$consume_3949" = sub i64 %"$gasrem_3945", 2 - store i64 %"$consume_3949", i64* @_gasrem, align 8 - %"$isSenderOAO_3951" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_3952" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3951", i32 0, i32 0 - %"$isSenderOAO_tag_3953" = load i8, i8* %"$isSenderOAO_tag_3952", align 1 - switch i8 %"$isSenderOAO_tag_3953", label %"$empty_default_3954" [ - i8 0, label %"$True_3955" - i8 1, label %"$False_4025" + %"$gasrem_3400" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3401" = icmp ugt i64 1, %"$gasrem_3400" + br i1 %"$gascmp_3401", label %"$out_of_gas_3402", label %"$have_gas_3403" + +"$out_of_gas_3402": ; preds = %"$have_gas_3398" + call void @_out_of_gas() + br label %"$have_gas_3403" + +"$have_gas_3403": ; preds = %"$out_of_gas_3402", %"$have_gas_3398" + %"$consume_3404" = sub i64 %"$gasrem_3400", 1 + store i64 %"$consume_3404", i64* @_gasrem, align 8 + %"$ud-registry.getIsOAO_3405" = load { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }* @ud-registry.getIsOAO, align 8 + %"$ud-registry.getIsOAO_fptr_3406" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3405", 0 + %"$ud-registry.getIsOAO_envptr_3407" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3405", 1 + %"$ud-registry.getIsOAO__sender_3408" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3408", align 1 + %"$ud-registry.getIsOAO_recordOwner_3409" = alloca [20 x i8], align 1 + %"$recordOwner_3410" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3410", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3409", align 1 + %"$maybeApproved_3411" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeOperators_3412" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$ud-registry.getIsOAO_call_3413" = call %TName_Bool* %"$ud-registry.getIsOAO_fptr_3406"(i8* %"$ud-registry.getIsOAO_envptr_3407", [20 x i8]* %"$ud-registry.getIsOAO__sender_3408", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3409", %TName_Option_ByStr20* %"$maybeApproved_3411", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3412") + store %TName_Bool* %"$ud-registry.getIsOAO_call_3413", %TName_Bool** %isSenderOAO, align 8 + %"$gasrem_3414" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3415" = icmp ugt i64 2, %"$gasrem_3414" + br i1 %"$gascmp_3415", label %"$out_of_gas_3416", label %"$have_gas_3417" + +"$out_of_gas_3416": ; preds = %"$have_gas_3403" + call void @_out_of_gas() + br label %"$have_gas_3417" + +"$have_gas_3417": ; preds = %"$out_of_gas_3416", %"$have_gas_3403" + %"$consume_3418" = sub i64 %"$gasrem_3414", 2 + store i64 %"$consume_3418", i64* @_gasrem, align 8 + %"$isSenderOAO_3420" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_3421" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3420", i32 0, i32 0 + %"$isSenderOAO_tag_3422" = load i8, i8* %"$isSenderOAO_tag_3421", align 1 + switch i8 %"$isSenderOAO_tag_3422", label %"$empty_default_3423" [ + i8 0, label %"$True_3424" + i8 1, label %"$False_3485" ] -"$True_3955": ; preds = %"$have_gas_3948" - %"$isSenderOAO_3956" = bitcast %TName_Bool* %"$isSenderOAO_3951" to %CName_True* - %"$gasrem_3957" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3958" = icmp ugt i64 1, %"$gasrem_3957" - br i1 %"$gascmp_3958", label %"$out_of_gas_3959", label %"$have_gas_3960" +"$True_3424": ; preds = %"$have_gas_3417" + %"$isSenderOAO_3425" = bitcast %TName_Bool* %"$isSenderOAO_3420" to %CName_True* + %"$gasrem_3426" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3427" = icmp ugt i64 1, %"$gasrem_3426" + br i1 %"$gascmp_3427", label %"$out_of_gas_3428", label %"$have_gas_3429" -"$out_of_gas_3959": ; preds = %"$True_3955" +"$out_of_gas_3428": ; preds = %"$True_3424" call void @_out_of_gas() - br label %"$have_gas_3960" + br label %"$have_gas_3429" -"$have_gas_3960": ; preds = %"$out_of_gas_3959", %"$True_3955" - %"$consume_3961" = sub i64 %"$gasrem_3957", 1 - store i64 %"$consume_3961", i64* @_gasrem, align 8 +"$have_gas_3429": ; preds = %"$out_of_gas_3428", %"$True_3424" + %"$consume_3430" = sub i64 %"$gasrem_3426", 1 + store i64 %"$consume_3430", i64* @_gasrem, align 8 %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_3962" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3963" = icmp ugt i64 1, %"$gasrem_3962" - br i1 %"$gascmp_3963", label %"$out_of_gas_3964", label %"$have_gas_3965" - -"$out_of_gas_3964": ; preds = %"$have_gas_3960" - call void @_out_of_gas() - br label %"$have_gas_3965" - -"$have_gas_3965": ; preds = %"$out_of_gas_3964", %"$have_gas_3960" - %"$consume_3966" = sub i64 %"$gasrem_3962", 1 - store i64 %"$consume_3966", i64* @_gasrem, align 8 - %"$recordOwner_3967" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$adtval_3968_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_3968_salloc" = call i8* @_salloc(i8* %"$adtval_3968_load", i64 41) - %"$adtval_3968" = bitcast i8* %"$adtval_3968_salloc" to %CName_ud-registry.Record* - %"$adtgep_3969" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3968", i32 0, i32 0 - store i8 0, i8* %"$adtgep_3969", align 1 - %"$adtgep_3970" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3968", i32 0, i32 1 - store [20 x i8] %"$recordOwner_3967", [20 x i8]* %"$adtgep_3970", align 1 - %"$adtgep_3971" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3968", i32 0, i32 2 - store [20 x i8] %resolver, [20 x i8]* %"$adtgep_3971", align 1 - %"$adtptr_3972" = bitcast %CName_ud-registry.Record* %"$adtval_3968" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_3972", %TName_ud-registry.Record** %newRecord, align 8 - %"$newRecord_3973" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_3973_3974" = bitcast %TName_ud-registry.Record* %"$newRecord_3973" to i8* - %"$_literal_cost_call_3975" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", i8* %"$$newRecord_3973_3974") - %"$gasadd_3976" = add i64 %"$_literal_cost_call_3975", 1 - %"$gasrem_3977" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3978" = icmp ugt i64 %"$gasadd_3976", %"$gasrem_3977" - br i1 %"$gascmp_3978", label %"$out_of_gas_3979", label %"$have_gas_3980" - -"$out_of_gas_3979": ; preds = %"$have_gas_3965" - call void @_out_of_gas() - br label %"$have_gas_3980" - -"$have_gas_3980": ; preds = %"$out_of_gas_3979", %"$have_gas_3965" - %"$consume_3981" = sub i64 %"$gasrem_3977", %"$gasadd_3976" - store i64 %"$consume_3981", i64* @_gasrem, align 8 - %"$indices_buf_3982_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_3982_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3982_salloc_load", i64 32) - %"$indices_buf_3982_salloc" = bitcast i8* %"$indices_buf_3982_salloc_salloc" to [32 x i8]* - %"$indices_buf_3982" = bitcast [32 x i8]* %"$indices_buf_3982_salloc" to i8* - %"$indices_gep_3983" = getelementptr i8, i8* %"$indices_buf_3982", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_3983" to [32 x i8]* + %"$gasrem_3431" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3432" = icmp ugt i64 1, %"$gasrem_3431" + br i1 %"$gascmp_3432", label %"$out_of_gas_3433", label %"$have_gas_3434" + +"$out_of_gas_3433": ; preds = %"$have_gas_3429" + call void @_out_of_gas() + br label %"$have_gas_3434" + +"$have_gas_3434": ; preds = %"$out_of_gas_3433", %"$have_gas_3429" + %"$consume_3435" = sub i64 %"$gasrem_3431", 1 + store i64 %"$consume_3435", i64* @_gasrem, align 8 + %"$recordOwner_3436" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$adtval_3437_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3437_salloc" = call i8* @_salloc(i8* %"$adtval_3437_load", i64 41) + %"$adtval_3437" = bitcast i8* %"$adtval_3437_salloc" to %CName_ud-registry.Record* + %"$adtgep_3438" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3437", i32 0, i32 0 + store i8 0, i8* %"$adtgep_3438", align 1 + %"$adtgep_3439" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3437", i32 0, i32 1 + store [20 x i8] %"$recordOwner_3436", [20 x i8]* %"$adtgep_3439", align 1 + %"$adtgep_3440" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3437", i32 0, i32 2 + store [20 x i8] %resolver, [20 x i8]* %"$adtgep_3440", align 1 + %"$adtptr_3441" = bitcast %CName_ud-registry.Record* %"$adtval_3437" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_3441", %TName_ud-registry.Record** %newRecord, align 8 + %"$newRecord_3442" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_3442_3443" = bitcast %TName_ud-registry.Record* %"$newRecord_3442" to i8* + %"$_literal_cost_call_3444" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", i8* %"$$newRecord_3442_3443") + %"$gasadd_3445" = add i64 %"$_literal_cost_call_3444", 1 + %"$gasrem_3446" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3447" = icmp ugt i64 %"$gasadd_3445", %"$gasrem_3446" + br i1 %"$gascmp_3447", label %"$out_of_gas_3448", label %"$have_gas_3449" + +"$out_of_gas_3448": ; preds = %"$have_gas_3434" + call void @_out_of_gas() + br label %"$have_gas_3449" + +"$have_gas_3449": ; preds = %"$out_of_gas_3448", %"$have_gas_3434" + %"$consume_3450" = sub i64 %"$gasrem_3446", %"$gasadd_3445" + store i64 %"$consume_3450", i64* @_gasrem, align 8 + %"$indices_buf_3451_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3451_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3451_salloc_load", i64 32) + %"$indices_buf_3451_salloc" = bitcast i8* %"$indices_buf_3451_salloc_salloc" to [32 x i8]* + %"$indices_buf_3451" = bitcast [32 x i8]* %"$indices_buf_3451_salloc" to i8* + %"$indices_gep_3452" = getelementptr i8, i8* %"$indices_buf_3451", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_3452" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_3984" = load i8*, i8** @_execptr, align 8 - %"$newRecord_3986" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_3987" = bitcast %TName_ud-registry.Record* %"$newRecord_3986" to i8* - call void @_update_field(i8* %"$execptr_load_3984", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3985", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_3982", i8* %"$update_value_3987") - %"$gasrem_3988" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3989" = icmp ugt i64 1, %"$gasrem_3988" - br i1 %"$gascmp_3989", label %"$out_of_gas_3990", label %"$have_gas_3991" + %"$execptr_load_3453" = load i8*, i8** @_execptr, align 8 + %"$newRecord_3455" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_3456" = bitcast %TName_ud-registry.Record* %"$newRecord_3455" to i8* + call void @_update_field(i8* %"$execptr_load_3453", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3454", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3451", i8* %"$update_value_3456") + %"$gasrem_3457" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3458" = icmp ugt i64 1, %"$gasrem_3457" + br i1 %"$gascmp_3458", label %"$out_of_gas_3459", label %"$have_gas_3460" -"$out_of_gas_3990": ; preds = %"$have_gas_3980" +"$out_of_gas_3459": ; preds = %"$have_gas_3449" call void @_out_of_gas() - br label %"$have_gas_3991" + br label %"$have_gas_3460" -"$have_gas_3991": ; preds = %"$out_of_gas_3990", %"$have_gas_3980" - %"$consume_3992" = sub i64 %"$gasrem_3988", 1 - store i64 %"$consume_3992", i64* @_gasrem, align 8 +"$have_gas_3460": ; preds = %"$out_of_gas_3459", %"$have_gas_3449" + %"$consume_3461" = sub i64 %"$gasrem_3457", 1 + store i64 %"$consume_3461", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_3993" = load i64, i64* @_gasrem, align 8 - %"$gascmp_3994" = icmp ugt i64 1, %"$gasrem_3993" - br i1 %"$gascmp_3994", label %"$out_of_gas_3995", label %"$have_gas_3996" + %"$gasrem_3462" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3463" = icmp ugt i64 1, %"$gasrem_3462" + br i1 %"$gascmp_3463", label %"$out_of_gas_3464", label %"$have_gas_3465" + +"$out_of_gas_3464": ; preds = %"$have_gas_3460" + call void @_out_of_gas() + br label %"$have_gas_3465" + +"$have_gas_3465": ; preds = %"$out_of_gas_3464", %"$have_gas_3460" + %"$consume_3466" = sub i64 %"$gasrem_3462", 1 + store i64 %"$consume_3466", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_3467" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_3468" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3467", 0 + %"$ud-registry.eConfigured_envptr_3469" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3467", 1 + %"$ud-registry.eConfigured_node_3470" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_3470", align 1 + %"$ud-registry.eConfigured_recordOwner_3471" = alloca [20 x i8], align 1 + %"$recordOwner_3472" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3472", [20 x i8]* %"$ud-registry.eConfigured_recordOwner_3471", align 1 + %"$ud-registry.eConfigured_resolver_3473" = alloca [20 x i8], align 1 + store [20 x i8] %resolver, [20 x i8]* %"$ud-registry.eConfigured_resolver_3473", align 1 + %"$ud-registry.eConfigured_call_3474" = call i8* %"$ud-registry.eConfigured_fptr_3468"(i8* %"$ud-registry.eConfigured_envptr_3469", [32 x i8]* %"$ud-registry.eConfigured_node_3470", [20 x i8]* %"$ud-registry.eConfigured_recordOwner_3471", [20 x i8]* %"$ud-registry.eConfigured_resolver_3473") + store i8* %"$ud-registry.eConfigured_call_3474", i8** %e, align 8 + %"$e_3475" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_3477" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3475") + %"$gasrem_3478" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3479" = icmp ugt i64 %"$_literal_cost_call_3477", %"$gasrem_3478" + br i1 %"$gascmp_3479", label %"$out_of_gas_3480", label %"$have_gas_3481" + +"$out_of_gas_3480": ; preds = %"$have_gas_3465" + call void @_out_of_gas() + br label %"$have_gas_3481" + +"$have_gas_3481": ; preds = %"$out_of_gas_3480", %"$have_gas_3465" + %"$consume_3482" = sub i64 %"$gasrem_3478", %"$_literal_cost_call_3477" + store i64 %"$consume_3482", i64* @_gasrem, align 8 + %"$execptr_load_3483" = load i8*, i8** @_execptr, align 8 + %"$e_3484" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_3483", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3484") + br label %"$matchsucc_3419" + +"$False_3485": ; preds = %"$have_gas_3417" + %"$isSenderOAO_3486" = bitcast %TName_Bool* %"$isSenderOAO_3420" to %CName_False* + %"$gasrem_3487" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3488" = icmp ugt i64 1, %"$gasrem_3487" + br i1 %"$gascmp_3488", label %"$out_of_gas_3489", label %"$have_gas_3490" + +"$out_of_gas_3489": ; preds = %"$False_3485" + call void @_out_of_gas() + br label %"$have_gas_3490" + +"$have_gas_3490": ; preds = %"$out_of_gas_3489", %"$False_3485" + %"$consume_3491" = sub i64 %"$gasrem_3487", 1 + store i64 %"$consume_3491", i64* @_gasrem, align 8 + %e4 = alloca i8*, align 8 + %"$gasrem_3492" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3493" = icmp ugt i64 1, %"$gasrem_3492" + br i1 %"$gascmp_3493", label %"$out_of_gas_3494", label %"$have_gas_3495" -"$out_of_gas_3995": ; preds = %"$have_gas_3991" +"$out_of_gas_3494": ; preds = %"$have_gas_3490" call void @_out_of_gas() - br label %"$have_gas_3996" + br label %"$have_gas_3495" -"$have_gas_3996": ; preds = %"$out_of_gas_3995", %"$have_gas_3991" - %"$consume_3997" = sub i64 %"$gasrem_3993", 1 - store i64 %"$consume_3997", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_80" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_3998" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_3999" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_3998", 0 - %"$ud-registry.eConfigured_envptr_4000" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_3998", 1 - %"$ud-registry.eConfigured_node_4001" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_4001", align 1 - %"$ud-registry.eConfigured_call_4002" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_3999"(i8* %"$ud-registry.eConfigured_envptr_4000", [32 x i8]* %"$ud-registry.eConfigured_node_4001") - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_4002", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_80", align 8 - %"$ud-registry.eConfigured_81" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_80_4003" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_80", align 8 - %"$$ud-registry.eConfigured_80_fptr_4004" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_80_4003", 0 - %"$$ud-registry.eConfigured_80_envptr_4005" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_80_4003", 1 - %"$$ud-registry.eConfigured_80_recordOwner_4006" = alloca [20 x i8], align 1 - %"$recordOwner_4007" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_4007", [20 x i8]* %"$$ud-registry.eConfigured_80_recordOwner_4006", align 1 - %"$$ud-registry.eConfigured_80_call_4008" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_80_fptr_4004"(i8* %"$$ud-registry.eConfigured_80_envptr_4005", [20 x i8]* %"$$ud-registry.eConfigured_80_recordOwner_4006") - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_80_call_4008", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_81", align 8 - %"$ud-registry.eConfigured_82" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_81_4009" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_81", align 8 - %"$$ud-registry.eConfigured_81_fptr_4010" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_81_4009", 0 - %"$$ud-registry.eConfigured_81_envptr_4011" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_81_4009", 1 - %"$$ud-registry.eConfigured_81_resolver_4012" = alloca [20 x i8], align 1 - store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_81_resolver_4012", align 1 - %"$$ud-registry.eConfigured_81_call_4013" = call i8* %"$$ud-registry.eConfigured_81_fptr_4010"(i8* %"$$ud-registry.eConfigured_81_envptr_4011", [20 x i8]* %"$$ud-registry.eConfigured_81_resolver_4012") - store i8* %"$$ud-registry.eConfigured_81_call_4013", i8** %"$ud-registry.eConfigured_82", align 8 - %"$$ud-registry.eConfigured_82_4014" = load i8*, i8** %"$ud-registry.eConfigured_82", align 8 - store i8* %"$$ud-registry.eConfigured_82_4014", i8** %e, align 8 - %"$e_4015" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_4017" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4015") - %"$gasrem_4018" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4019" = icmp ugt i64 %"$_literal_cost_call_4017", %"$gasrem_4018" - br i1 %"$gascmp_4019", label %"$out_of_gas_4020", label %"$have_gas_4021" - -"$out_of_gas_4020": ; preds = %"$have_gas_3996" - call void @_out_of_gas() - br label %"$have_gas_4021" - -"$have_gas_4021": ; preds = %"$out_of_gas_4020", %"$have_gas_3996" - %"$consume_4022" = sub i64 %"$gasrem_4018", %"$_literal_cost_call_4017" - store i64 %"$consume_4022", i64* @_gasrem, align 8 - %"$execptr_load_4023" = load i8*, i8** @_execptr, align 8 - %"$e_4024" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_4023", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4024") - br label %"$matchsucc_3950" - -"$False_4025": ; preds = %"$have_gas_3948" - %"$isSenderOAO_4026" = bitcast %TName_Bool* %"$isSenderOAO_3951" to %CName_False* - %"$gasrem_4027" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4028" = icmp ugt i64 1, %"$gasrem_4027" - br i1 %"$gascmp_4028", label %"$out_of_gas_4029", label %"$have_gas_4030" - -"$out_of_gas_4029": ; preds = %"$False_4025" - call void @_out_of_gas() - br label %"$have_gas_4030" - -"$have_gas_4030": ; preds = %"$out_of_gas_4029", %"$False_4025" - %"$consume_4031" = sub i64 %"$gasrem_4027", 1 - store i64 %"$consume_4031", i64* @_gasrem, align 8 - %e4 = alloca i8*, align 8 - %"$gasrem_4032" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4033" = icmp ugt i64 1, %"$gasrem_4032" - br i1 %"$gascmp_4033", label %"$out_of_gas_4034", label %"$have_gas_4035" +"$have_gas_3495": ; preds = %"$out_of_gas_3494", %"$have_gas_3490" + %"$consume_3496" = sub i64 %"$gasrem_3492", 1 + store i64 %"$consume_3496", i64* @_gasrem, align 8 + %m = alloca %String, align 8 + %"$gasrem_3497" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3498" = icmp ugt i64 1, %"$gasrem_3497" + br i1 %"$gascmp_3498", label %"$out_of_gas_3499", label %"$have_gas_3500" -"$out_of_gas_4034": ; preds = %"$have_gas_4030" +"$out_of_gas_3499": ; preds = %"$have_gas_3495" call void @_out_of_gas() - br label %"$have_gas_4035" + br label %"$have_gas_3500" -"$have_gas_4035": ; preds = %"$out_of_gas_4034", %"$have_gas_4030" - %"$consume_4036" = sub i64 %"$gasrem_4032", 1 - store i64 %"$consume_4036", i64* @_gasrem, align 8 - %m = alloca %String, align 8 - %"$gasrem_4037" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4038" = icmp ugt i64 1, %"$gasrem_4037" - br i1 %"$gascmp_4038", label %"$out_of_gas_4039", label %"$have_gas_4040" - -"$out_of_gas_4039": ; preds = %"$have_gas_4035" - call void @_out_of_gas() - br label %"$have_gas_4040" - -"$have_gas_4040": ; preds = %"$out_of_gas_4039", %"$have_gas_4035" - %"$consume_4041" = sub i64 %"$gasrem_4037", 1 - store i64 %"$consume_4041", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_4042", i32 0, i32 0), i32 43 }, %String* %m, align 8 - %"$gasrem_4043" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4044" = icmp ugt i64 1, %"$gasrem_4043" - br i1 %"$gascmp_4044", label %"$out_of_gas_4045", label %"$have_gas_4046" - -"$out_of_gas_4045": ; preds = %"$have_gas_4040" - call void @_out_of_gas() - br label %"$have_gas_4046" - -"$have_gas_4046": ; preds = %"$out_of_gas_4045", %"$have_gas_4040" - %"$consume_4047" = sub i64 %"$gasrem_4043", 1 - store i64 %"$consume_4047", i64* @_gasrem, align 8 - %"$ud-registry.eError_83" = alloca i8*, align 8 - %"$ud-registry.eError_4048" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_4049" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4048", 0 - %"$ud-registry.eError_envptr_4050" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4048", 1 - %"$m_4051" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_4052" = call i8* %"$ud-registry.eError_fptr_4049"(i8* %"$ud-registry.eError_envptr_4050", %String %"$m_4051") - store i8* %"$ud-registry.eError_call_4052", i8** %"$ud-registry.eError_83", align 8 - %"$$ud-registry.eError_83_4053" = load i8*, i8** %"$ud-registry.eError_83", align 8 - store i8* %"$$ud-registry.eError_83_4053", i8** %e4, align 8 - %"$e_4054" = load i8*, i8** %e4, align 8 - %"$_literal_cost_call_4056" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4054") - %"$gasrem_4057" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4058" = icmp ugt i64 %"$_literal_cost_call_4056", %"$gasrem_4057" - br i1 %"$gascmp_4058", label %"$out_of_gas_4059", label %"$have_gas_4060" - -"$out_of_gas_4059": ; preds = %"$have_gas_4046" - call void @_out_of_gas() - br label %"$have_gas_4060" - -"$have_gas_4060": ; preds = %"$out_of_gas_4059", %"$have_gas_4046" - %"$consume_4061" = sub i64 %"$gasrem_4057", %"$_literal_cost_call_4056" - store i64 %"$consume_4061", i64* @_gasrem, align 8 - %"$execptr_load_4062" = load i8*, i8** @_execptr, align 8 - %"$e_4063" = load i8*, i8** %e4, align 8 - call void @_event(i8* %"$execptr_load_4062", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4063") - br label %"$matchsucc_3950" - -"$empty_default_3954": ; preds = %"$have_gas_3948" - br label %"$matchsucc_3950" - -"$matchsucc_3950": ; preds = %"$have_gas_4060", %"$have_gas_4021", %"$empty_default_3954" +"$have_gas_3500": ; preds = %"$out_of_gas_3499", %"$have_gas_3495" + %"$consume_3501" = sub i64 %"$gasrem_3497", 1 + store i64 %"$consume_3501", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_3502", i32 0, i32 0), i32 43 }, %String* %m, align 8 + %"$gasrem_3503" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3504" = icmp ugt i64 1, %"$gasrem_3503" + br i1 %"$gascmp_3504", label %"$out_of_gas_3505", label %"$have_gas_3506" + +"$out_of_gas_3505": ; preds = %"$have_gas_3500" + call void @_out_of_gas() + br label %"$have_gas_3506" + +"$have_gas_3506": ; preds = %"$out_of_gas_3505", %"$have_gas_3500" + %"$consume_3507" = sub i64 %"$gasrem_3503", 1 + store i64 %"$consume_3507", i64* @_gasrem, align 8 + %"$ud-registry.eError_47" = alloca i8*, align 8 + %"$ud-registry.eError_3508" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_3509" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3508", 0 + %"$ud-registry.eError_envptr_3510" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3508", 1 + %"$m_3511" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_3512" = call i8* %"$ud-registry.eError_fptr_3509"(i8* %"$ud-registry.eError_envptr_3510", %String %"$m_3511") + store i8* %"$ud-registry.eError_call_3512", i8** %"$ud-registry.eError_47", align 8 + %"$$ud-registry.eError_47_3513" = load i8*, i8** %"$ud-registry.eError_47", align 8 + store i8* %"$$ud-registry.eError_47_3513", i8** %e4, align 8 + %"$e_3514" = load i8*, i8** %e4, align 8 + %"$_literal_cost_call_3516" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3514") + %"$gasrem_3517" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3518" = icmp ugt i64 %"$_literal_cost_call_3516", %"$gasrem_3517" + br i1 %"$gascmp_3518", label %"$out_of_gas_3519", label %"$have_gas_3520" + +"$out_of_gas_3519": ; preds = %"$have_gas_3506" + call void @_out_of_gas() + br label %"$have_gas_3520" + +"$have_gas_3520": ; preds = %"$out_of_gas_3519", %"$have_gas_3506" + %"$consume_3521" = sub i64 %"$gasrem_3517", %"$_literal_cost_call_3516" + store i64 %"$consume_3521", i64* @_gasrem, align 8 + %"$execptr_load_3522" = load i8*, i8** @_execptr, align 8 + %"$e_3523" = load i8*, i8** %e4, align 8 + call void @_event(i8* %"$execptr_load_3522", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3523") + br label %"$matchsucc_3419" + +"$empty_default_3423": ; preds = %"$have_gas_3417" + br label %"$matchsucc_3419" + +"$matchsucc_3419": ; preds = %"$have_gas_3520", %"$have_gas_3481", %"$empty_default_3423" ret void } define void @configureResolver(i8* %0) { entry: - %"$_amount_4065" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4066" = bitcast i8* %"$_amount_4065" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4066", align 8 - %"$_origin_4067" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4068" = bitcast i8* %"$_origin_4067" to [20 x i8]* - %"$_sender_4069" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4070" = bitcast i8* %"$_sender_4069" to [20 x i8]* - %"$node_4071" = getelementptr i8, i8* %0, i32 56 - %"$node_4072" = bitcast i8* %"$node_4071" to [32 x i8]* - %"$resolver_4073" = getelementptr i8, i8* %0, i32 88 - %"$resolver_4074" = bitcast i8* %"$resolver_4073" to [20 x i8]* - call void @"$configureResolver_3842"(%Uint128 %_amount, [20 x i8]* %"$_origin_4068", [20 x i8]* %"$_sender_4070", [32 x i8]* %"$node_4072", [20 x i8]* %"$resolver_4074") + %"$_amount_3525" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3526" = bitcast i8* %"$_amount_3525" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3526", align 8 + %"$_origin_3527" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3528" = bitcast i8* %"$_origin_3527" to [20 x i8]* + %"$_sender_3529" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3530" = bitcast i8* %"$_sender_3529" to [20 x i8]* + %"$node_3531" = getelementptr i8, i8* %0, i32 56 + %"$node_3532" = bitcast i8* %"$node_3531" to [32 x i8]* + %"$resolver_3533" = getelementptr i8, i8* %0, i32 88 + %"$resolver_3534" = bitcast i8* %"$resolver_3533" to [20 x i8]* + call void @"$configureResolver_3324"(%Uint128 %_amount, [20 x i8]* %"$_origin_3528", [20 x i8]* %"$_sender_3530", [32 x i8]* %"$node_3532", [20 x i8]* %"$resolver_3534") ret void } -define internal void @"$transfer_4075"(%Uint128 %_amount, [20 x i8]* %"$_origin_4076", [20 x i8]* %"$_sender_4077", [32 x i8]* %"$node_4078", [20 x i8]* %"$owner_4079") { +define internal void @"$transfer_3535"(%Uint128 %_amount, [20 x i8]* %"$_origin_3536", [20 x i8]* %"$_sender_3537", [32 x i8]* %"$node_3538", [20 x i8]* %"$owner_3539") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4076", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4077", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_4078", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_4079", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3536", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3537", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_3538", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_3539", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_4080_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4080_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4080_salloc_load", i64 32) - %"$indices_buf_4080_salloc" = bitcast i8* %"$indices_buf_4080_salloc_salloc" to [32 x i8]* - %"$indices_buf_4080" = bitcast [32 x i8]* %"$indices_buf_4080_salloc" to i8* - %"$indices_gep_4081" = getelementptr i8, i8* %"$indices_buf_4080", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4081" to [32 x i8]* + %"$indices_buf_3540_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3540_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3540_salloc_load", i64 32) + %"$indices_buf_3540_salloc" = bitcast i8* %"$indices_buf_3540_salloc_salloc" to [32 x i8]* + %"$indices_buf_3540" = bitcast [32 x i8]* %"$indices_buf_3540_salloc" to i8* + %"$indices_gep_3541" = getelementptr i8, i8* %"$indices_buf_3540", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3541" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_4083" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_4084" = call i8* @_fetch_field(i8* %"$execptr_load_4083", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4082", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4080", i32 1) - %"$maybeRecord_4085" = bitcast i8* %"$maybeRecord_call_4084" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_4085", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_4086" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_4086_4087" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_4086" to i8* - %"$_literal_cost_call_4088" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_4086_4087") - %"$gasadd_4089" = add i64 %"$_literal_cost_call_4088", 0 - %"$gasadd_4090" = add i64 %"$gasadd_4089", 1 - %"$gasrem_4091" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4092" = icmp ugt i64 %"$gasadd_4090", %"$gasrem_4091" - br i1 %"$gascmp_4092", label %"$out_of_gas_4093", label %"$have_gas_4094" - -"$out_of_gas_4093": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4094" - -"$have_gas_4094": ; preds = %"$out_of_gas_4093", %entry - %"$consume_4095" = sub i64 %"$gasrem_4091", %"$gasadd_4090" - store i64 %"$consume_4095", i64* @_gasrem, align 8 + %"$execptr_load_3543" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_3544" = call i8* @_fetch_field(i8* %"$execptr_load_3543", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3542", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3540", i32 1) + %"$maybeRecord_3545" = bitcast i8* %"$maybeRecord_call_3544" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_3545", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_3546" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_3546_3547" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3546" to i8* + %"$_literal_cost_call_3548" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_3546_3547") + %"$gasadd_3549" = add i64 %"$_literal_cost_call_3548", 0 + %"$gasadd_3550" = add i64 %"$gasadd_3549", 1 + %"$gasrem_3551" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3552" = icmp ugt i64 %"$gasadd_3550", %"$gasrem_3551" + br i1 %"$gascmp_3552", label %"$out_of_gas_3553", label %"$have_gas_3554" + +"$out_of_gas_3553": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3554" + +"$have_gas_3554": ; preds = %"$out_of_gas_3553", %entry + %"$consume_3555" = sub i64 %"$gasrem_3551", %"$gasadd_3550" + store i64 %"$consume_3555", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_4096_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4096_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4096_salloc_load", i64 32) - %"$indices_buf_4096_salloc" = bitcast i8* %"$indices_buf_4096_salloc_salloc" to [32 x i8]* - %"$indices_buf_4096" = bitcast [32 x i8]* %"$indices_buf_4096_salloc" to i8* - %"$indices_gep_4097" = getelementptr i8, i8* %"$indices_buf_4096", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_4097" to [32 x i8]* + %"$indices_buf_3556_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3556_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3556_salloc_load", i64 32) + %"$indices_buf_3556_salloc" = bitcast i8* %"$indices_buf_3556_salloc_salloc" to [32 x i8]* + %"$indices_buf_3556" = bitcast [32 x i8]* %"$indices_buf_3556_salloc" to i8* + %"$indices_gep_3557" = getelementptr i8, i8* %"$indices_buf_3556", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_3557" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_4099" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_4100" = call i8* @_fetch_field(i8* %"$execptr_load_4099", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4098", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_4096", i32 1) - %"$maybeApproved_4101" = bitcast i8* %"$maybeApproved_call_4100" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_4101", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_4102" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_4102_4103" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4102" to i8* - %"$_literal_cost_call_4104" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_4102_4103") - %"$gasadd_4105" = add i64 %"$_literal_cost_call_4104", 0 - %"$gasadd_4106" = add i64 %"$gasadd_4105", 1 - %"$gasrem_4107" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4108" = icmp ugt i64 %"$gasadd_4106", %"$gasrem_4107" - br i1 %"$gascmp_4108", label %"$out_of_gas_4109", label %"$have_gas_4110" - -"$out_of_gas_4109": ; preds = %"$have_gas_4094" - call void @_out_of_gas() - br label %"$have_gas_4110" - -"$have_gas_4110": ; preds = %"$out_of_gas_4109", %"$have_gas_4094" - %"$consume_4111" = sub i64 %"$gasrem_4107", %"$gasadd_4106" - store i64 %"$consume_4111", i64* @_gasrem, align 8 - %"$gasrem_4112" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4113" = icmp ugt i64 1, %"$gasrem_4112" - br i1 %"$gascmp_4113", label %"$out_of_gas_4114", label %"$have_gas_4115" - -"$out_of_gas_4114": ; preds = %"$have_gas_4110" - call void @_out_of_gas() - br label %"$have_gas_4115" - -"$have_gas_4115": ; preds = %"$out_of_gas_4114", %"$have_gas_4110" - %"$consume_4116" = sub i64 %"$gasrem_4112", 1 - store i64 %"$consume_4116", i64* @_gasrem, align 8 + %"$execptr_load_3559" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_3560" = call i8* @_fetch_field(i8* %"$execptr_load_3559", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3558", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_3556", i32 1) + %"$maybeApproved_3561" = bitcast i8* %"$maybeApproved_call_3560" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_3561", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_3562" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_3562_3563" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3562" to i8* + %"$_literal_cost_call_3564" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_3562_3563") + %"$gasadd_3565" = add i64 %"$_literal_cost_call_3564", 0 + %"$gasadd_3566" = add i64 %"$gasadd_3565", 1 + %"$gasrem_3567" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3568" = icmp ugt i64 %"$gasadd_3566", %"$gasrem_3567" + br i1 %"$gascmp_3568", label %"$out_of_gas_3569", label %"$have_gas_3570" + +"$out_of_gas_3569": ; preds = %"$have_gas_3554" + call void @_out_of_gas() + br label %"$have_gas_3570" + +"$have_gas_3570": ; preds = %"$out_of_gas_3569", %"$have_gas_3554" + %"$consume_3571" = sub i64 %"$gasrem_3567", %"$gasadd_3566" + store i64 %"$consume_3571", i64* @_gasrem, align 8 + %"$gasrem_3572" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3573" = icmp ugt i64 1, %"$gasrem_3572" + br i1 %"$gascmp_3573", label %"$out_of_gas_3574", label %"$have_gas_3575" + +"$out_of_gas_3574": ; preds = %"$have_gas_3570" + call void @_out_of_gas() + br label %"$have_gas_3575" + +"$have_gas_3575": ; preds = %"$out_of_gas_3574", %"$have_gas_3570" + %"$consume_3576" = sub i64 %"$gasrem_3572", 1 + store i64 %"$consume_3576", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_4117" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4118" = icmp ugt i64 1, %"$gasrem_4117" - br i1 %"$gascmp_4118", label %"$out_of_gas_4119", label %"$have_gas_4120" - -"$out_of_gas_4119": ; preds = %"$have_gas_4115" - call void @_out_of_gas() - br label %"$have_gas_4120" - -"$have_gas_4120": ; preds = %"$out_of_gas_4119", %"$have_gas_4115" - %"$consume_4121" = sub i64 %"$gasrem_4117", 1 - store i64 %"$consume_4121", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_99" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_4122" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_4123" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4122", 0 - %"$ud-registry.recordMemberOwner_envptr_4124" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4122", 1 - %"$maybeRecord_4125" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_4126" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_4123"(i8* %"$ud-registry.recordMemberOwner_envptr_4124", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4126", %TName_Option_ud-registry.Record* %"$maybeRecord_4125") - %"$ud-registry.recordMemberOwner_ret_4127" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4126", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_4127", [20 x i8]* %"$ud-registry.recordMemberOwner_99", align 1 - %"$$ud-registry.recordMemberOwner_99_4128" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_99", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_99_4128", [20 x i8]* %recordOwner, align 1 + %"$gasrem_3577" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3578" = icmp ugt i64 1, %"$gasrem_3577" + br i1 %"$gascmp_3578", label %"$out_of_gas_3579", label %"$have_gas_3580" + +"$out_of_gas_3579": ; preds = %"$have_gas_3575" + call void @_out_of_gas() + br label %"$have_gas_3580" + +"$have_gas_3580": ; preds = %"$out_of_gas_3579", %"$have_gas_3575" + %"$consume_3581" = sub i64 %"$gasrem_3577", 1 + store i64 %"$consume_3581", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_48" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_3582" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_3583" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3582", 0 + %"$ud-registry.recordMemberOwner_envptr_3584" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3582", 1 + %"$maybeRecord_3585" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_3586" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_3583"(i8* %"$ud-registry.recordMemberOwner_envptr_3584", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3586", %TName_Option_ud-registry.Record* %"$maybeRecord_3585") + %"$ud-registry.recordMemberOwner_ret_3587" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3586", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3587", [20 x i8]* %"$ud-registry.recordMemberOwner_48", align 1 + %"$$ud-registry.recordMemberOwner_48_3588" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_48", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_48_3588", [20 x i8]* %recordOwner, align 1 %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_4129_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4129_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4129_salloc_load", i64 20) - %"$indices_buf_4129_salloc" = bitcast i8* %"$indices_buf_4129_salloc_salloc" to [20 x i8]* - %"$indices_buf_4129" = bitcast [20 x i8]* %"$indices_buf_4129_salloc" to i8* - %"$recordOwner_4130" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_4131" = getelementptr i8, i8* %"$indices_buf_4129", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_4131" to [20 x i8]* - store [20 x i8] %"$recordOwner_4130", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_4133" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_4134" = call i8* @_fetch_field(i8* %"$execptr_load_4133", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_4132", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_4129", i32 1) - %"$maybeOperators_4135" = bitcast i8* %"$maybeOperators_call_4134" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4135", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_4136" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_4136_4137" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4136" to i8* - %"$_literal_cost_call_4138" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", i8* %"$$maybeOperators_4136_4137") - %"$gasadd_4139" = add i64 %"$_literal_cost_call_4138", 0 - %"$gasadd_4140" = add i64 %"$gasadd_4139", 1 - %"$gasrem_4141" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4142" = icmp ugt i64 %"$gasadd_4140", %"$gasrem_4141" - br i1 %"$gascmp_4142", label %"$out_of_gas_4143", label %"$have_gas_4144" - -"$out_of_gas_4143": ; preds = %"$have_gas_4120" - call void @_out_of_gas() - br label %"$have_gas_4144" - -"$have_gas_4144": ; preds = %"$out_of_gas_4143", %"$have_gas_4120" - %"$consume_4145" = sub i64 %"$gasrem_4141", %"$gasadd_4140" - store i64 %"$consume_4145", i64* @_gasrem, align 8 - %"$gasrem_4146" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4147" = icmp ugt i64 1, %"$gasrem_4146" - br i1 %"$gascmp_4147", label %"$out_of_gas_4148", label %"$have_gas_4149" - -"$out_of_gas_4148": ; preds = %"$have_gas_4144" - call void @_out_of_gas() - br label %"$have_gas_4149" - -"$have_gas_4149": ; preds = %"$out_of_gas_4148", %"$have_gas_4144" - %"$consume_4150" = sub i64 %"$gasrem_4146", 1 - store i64 %"$consume_4150", i64* @_gasrem, align 8 + %"$indices_buf_3589_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3589_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3589_salloc_load", i64 20) + %"$indices_buf_3589_salloc" = bitcast i8* %"$indices_buf_3589_salloc_salloc" to [20 x i8]* + %"$indices_buf_3589" = bitcast [20 x i8]* %"$indices_buf_3589_salloc" to i8* + %"$recordOwner_3590" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_3591" = getelementptr i8, i8* %"$indices_buf_3589", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_3591" to [20 x i8]* + store [20 x i8] %"$recordOwner_3590", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_3593" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_3594" = call i8* @_fetch_field(i8* %"$execptr_load_3593", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3592", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_3589", i32 1) + %"$maybeOperators_3595" = bitcast i8* %"$maybeOperators_call_3594" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3595", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_3596" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_3596_3597" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3596" to i8* + %"$_literal_cost_call_3598" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", i8* %"$$maybeOperators_3596_3597") + %"$gasadd_3599" = add i64 %"$_literal_cost_call_3598", 0 + %"$gasadd_3600" = add i64 %"$gasadd_3599", 1 + %"$gasrem_3601" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3602" = icmp ugt i64 %"$gasadd_3600", %"$gasrem_3601" + br i1 %"$gascmp_3602", label %"$out_of_gas_3603", label %"$have_gas_3604" + +"$out_of_gas_3603": ; preds = %"$have_gas_3580" + call void @_out_of_gas() + br label %"$have_gas_3604" + +"$have_gas_3604": ; preds = %"$out_of_gas_3603", %"$have_gas_3580" + %"$consume_3605" = sub i64 %"$gasrem_3601", %"$gasadd_3600" + store i64 %"$consume_3605", i64* @_gasrem, align 8 + %"$gasrem_3606" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3607" = icmp ugt i64 1, %"$gasrem_3606" + br i1 %"$gascmp_3607", label %"$out_of_gas_3608", label %"$have_gas_3609" + +"$out_of_gas_3608": ; preds = %"$have_gas_3604" + call void @_out_of_gas() + br label %"$have_gas_3609" + +"$have_gas_3609": ; preds = %"$out_of_gas_3608", %"$have_gas_3604" + %"$consume_3610" = sub i64 %"$gasrem_3606", 1 + store i64 %"$consume_3610", i64* @_gasrem, align 8 %isSenderOAO = alloca %TName_Bool*, align 8 - %"$gasrem_4151" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4152" = icmp ugt i64 1, %"$gasrem_4151" - br i1 %"$gascmp_4152", label %"$out_of_gas_4153", label %"$have_gas_4154" - -"$out_of_gas_4153": ; preds = %"$have_gas_4149" - call void @_out_of_gas() - br label %"$have_gas_4154" - -"$have_gas_4154": ; preds = %"$out_of_gas_4153", %"$have_gas_4149" - %"$consume_4155" = sub i64 %"$gasrem_4151", 1 - store i64 %"$consume_4155", i64* @_gasrem, align 8 - %"$ud-registry.getIsOAO_95" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_4156" = load { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.getIsOAO, align 8 - %"$ud-registry.getIsOAO_fptr_4157" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_4156", 0 - %"$ud-registry.getIsOAO_envptr_4158" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_4156", 1 - %"$ud-registry.getIsOAO__sender_4159" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_4159", align 1 - %"$ud-registry.getIsOAO_call_4160" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_4157"(i8* %"$ud-registry.getIsOAO_envptr_4158", [20 x i8]* %"$ud-registry.getIsOAO__sender_4159") - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_4160", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_95", align 8 - %"$ud-registry.getIsOAO_96" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_95_4161" = load { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_95", align 8 - %"$$ud-registry.getIsOAO_95_fptr_4162" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_95_4161", 0 - %"$$ud-registry.getIsOAO_95_envptr_4163" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_95_4161", 1 - %"$$ud-registry.getIsOAO_95_recordOwner_4164" = alloca [20 x i8], align 1 - %"$recordOwner_4165" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_4165", [20 x i8]* %"$$ud-registry.getIsOAO_95_recordOwner_4164", align 1 - %"$$ud-registry.getIsOAO_95_call_4166" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_95_fptr_4162"(i8* %"$$ud-registry.getIsOAO_95_envptr_4163", [20 x i8]* %"$$ud-registry.getIsOAO_95_recordOwner_4164") - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_95_call_4166", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_96", align 8 - %"$ud-registry.getIsOAO_97" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_96_4167" = load { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_96", align 8 - %"$$ud-registry.getIsOAO_96_fptr_4168" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_96_4167", 0 - %"$$ud-registry.getIsOAO_96_envptr_4169" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_96_4167", 1 - %"$maybeApproved_4170" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_96_call_4171" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_96_fptr_4168"(i8* %"$$ud-registry.getIsOAO_96_envptr_4169", %TName_Option_ByStr20* %"$maybeApproved_4170") - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_96_call_4171", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_97", align 8 - %"$ud-registry.getIsOAO_98" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_97_4172" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_97", align 8 - %"$$ud-registry.getIsOAO_97_fptr_4173" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_97_4172", 0 - %"$$ud-registry.getIsOAO_97_envptr_4174" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_97_4172", 1 - %"$maybeOperators_4175" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_97_call_4176" = call %TName_Bool* %"$$ud-registry.getIsOAO_97_fptr_4173"(i8* %"$$ud-registry.getIsOAO_97_envptr_4174", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4175") - store %TName_Bool* %"$$ud-registry.getIsOAO_97_call_4176", %TName_Bool** %"$ud-registry.getIsOAO_98", align 8 - %"$$ud-registry.getIsOAO_98_4177" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_98", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_98_4177", %TName_Bool** %isSenderOAO, align 8 - %"$gasrem_4178" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4179" = icmp ugt i64 2, %"$gasrem_4178" - br i1 %"$gascmp_4179", label %"$out_of_gas_4180", label %"$have_gas_4181" - -"$out_of_gas_4180": ; preds = %"$have_gas_4154" - call void @_out_of_gas() - br label %"$have_gas_4181" - -"$have_gas_4181": ; preds = %"$out_of_gas_4180", %"$have_gas_4154" - %"$consume_4182" = sub i64 %"$gasrem_4178", 2 - store i64 %"$consume_4182", i64* @_gasrem, align 8 - %"$isSenderOAO_4184" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_4185" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_4184", i32 0, i32 0 - %"$isSenderOAO_tag_4186" = load i8, i8* %"$isSenderOAO_tag_4185", align 1 - switch i8 %"$isSenderOAO_tag_4186", label %"$empty_default_4187" [ - i8 0, label %"$True_4188" - i8 1, label %"$False_4341" + %"$gasrem_3611" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3612" = icmp ugt i64 1, %"$gasrem_3611" + br i1 %"$gascmp_3612", label %"$out_of_gas_3613", label %"$have_gas_3614" + +"$out_of_gas_3613": ; preds = %"$have_gas_3609" + call void @_out_of_gas() + br label %"$have_gas_3614" + +"$have_gas_3614": ; preds = %"$out_of_gas_3613", %"$have_gas_3609" + %"$consume_3615" = sub i64 %"$gasrem_3611", 1 + store i64 %"$consume_3615", i64* @_gasrem, align 8 + %"$ud-registry.getIsOAO_3616" = load { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }* @ud-registry.getIsOAO, align 8 + %"$ud-registry.getIsOAO_fptr_3617" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3616", 0 + %"$ud-registry.getIsOAO_envptr_3618" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3616", 1 + %"$ud-registry.getIsOAO__sender_3619" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3619", align 1 + %"$ud-registry.getIsOAO_recordOwner_3620" = alloca [20 x i8], align 1 + %"$recordOwner_3621" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3621", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3620", align 1 + %"$maybeApproved_3622" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeOperators_3623" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$ud-registry.getIsOAO_call_3624" = call %TName_Bool* %"$ud-registry.getIsOAO_fptr_3617"(i8* %"$ud-registry.getIsOAO_envptr_3618", [20 x i8]* %"$ud-registry.getIsOAO__sender_3619", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3620", %TName_Option_ByStr20* %"$maybeApproved_3622", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3623") + store %TName_Bool* %"$ud-registry.getIsOAO_call_3624", %TName_Bool** %isSenderOAO, align 8 + %"$gasrem_3625" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3626" = icmp ugt i64 2, %"$gasrem_3625" + br i1 %"$gascmp_3626", label %"$out_of_gas_3627", label %"$have_gas_3628" + +"$out_of_gas_3627": ; preds = %"$have_gas_3614" + call void @_out_of_gas() + br label %"$have_gas_3628" + +"$have_gas_3628": ; preds = %"$out_of_gas_3627", %"$have_gas_3614" + %"$consume_3629" = sub i64 %"$gasrem_3625", 2 + store i64 %"$consume_3629", i64* @_gasrem, align 8 + %"$isSenderOAO_3631" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_3632" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3631", i32 0, i32 0 + %"$isSenderOAO_tag_3633" = load i8, i8* %"$isSenderOAO_tag_3632", align 1 + switch i8 %"$isSenderOAO_tag_3633", label %"$empty_default_3634" [ + i8 0, label %"$True_3635" + i8 1, label %"$False_3779" ] -"$True_4188": ; preds = %"$have_gas_4181" - %"$isSenderOAO_4189" = bitcast %TName_Bool* %"$isSenderOAO_4184" to %CName_True* - %"$gasrem_4190" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4191" = icmp ugt i64 1, %"$gasrem_4190" - br i1 %"$gascmp_4191", label %"$out_of_gas_4192", label %"$have_gas_4193" - -"$out_of_gas_4192": ; preds = %"$True_4188" - call void @_out_of_gas() - br label %"$have_gas_4193" - -"$have_gas_4193": ; preds = %"$out_of_gas_4192", %"$True_4188" - %"$consume_4194" = sub i64 %"$gasrem_4190", 1 - store i64 %"$consume_4194", i64* @_gasrem, align 8 - %"$indices_buf_4195_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4195_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4195_salloc_load", i64 32) - %"$indices_buf_4195_salloc" = bitcast i8* %"$indices_buf_4195_salloc_salloc" to [32 x i8]* - %"$indices_buf_4195" = bitcast [32 x i8]* %"$indices_buf_4195_salloc" to i8* - %"$indices_gep_4196" = getelementptr i8, i8* %"$indices_buf_4195", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_4196" to [32 x i8]* +"$True_3635": ; preds = %"$have_gas_3628" + %"$isSenderOAO_3636" = bitcast %TName_Bool* %"$isSenderOAO_3631" to %CName_True* + %"$gasrem_3637" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3638" = icmp ugt i64 1, %"$gasrem_3637" + br i1 %"$gascmp_3638", label %"$out_of_gas_3639", label %"$have_gas_3640" + +"$out_of_gas_3639": ; preds = %"$True_3635" + call void @_out_of_gas() + br label %"$have_gas_3640" + +"$have_gas_3640": ; preds = %"$out_of_gas_3639", %"$True_3635" + %"$consume_3641" = sub i64 %"$gasrem_3637", 1 + store i64 %"$consume_3641", i64* @_gasrem, align 8 + %"$indices_buf_3642_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3642_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3642_salloc_load", i64 32) + %"$indices_buf_3642_salloc" = bitcast i8* %"$indices_buf_3642_salloc_salloc" to [32 x i8]* + %"$indices_buf_3642" = bitcast [32 x i8]* %"$indices_buf_3642_salloc" to i8* + %"$indices_gep_3643" = getelementptr i8, i8* %"$indices_buf_3642", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_3643" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_4197" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_4197", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4198", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_4195", i8* null) - %"$gasrem_4199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4200" = icmp ugt i64 1, %"$gasrem_4199" - br i1 %"$gascmp_4200", label %"$out_of_gas_4201", label %"$have_gas_4202" + %"$execptr_load_3644" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_3644", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3645", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_3642", i8* null) + %"$gasrem_3646" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3647" = icmp ugt i64 1, %"$gasrem_3646" + br i1 %"$gascmp_3647", label %"$out_of_gas_3648", label %"$have_gas_3649" -"$out_of_gas_4201": ; preds = %"$have_gas_4193" +"$out_of_gas_3648": ; preds = %"$have_gas_3640" call void @_out_of_gas() - br label %"$have_gas_4202" + br label %"$have_gas_3649" -"$have_gas_4202": ; preds = %"$out_of_gas_4201", %"$have_gas_4193" - %"$consume_4203" = sub i64 %"$gasrem_4199", 1 - store i64 %"$consume_4203", i64* @_gasrem, align 8 +"$have_gas_3649": ; preds = %"$out_of_gas_3648", %"$have_gas_3640" + %"$consume_3650" = sub i64 %"$gasrem_3646", 1 + store i64 %"$consume_3650", i64* @_gasrem, align 8 %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_4204" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4205" = icmp ugt i64 1, %"$gasrem_4204" - br i1 %"$gascmp_4205", label %"$out_of_gas_4206", label %"$have_gas_4207" - -"$out_of_gas_4206": ; preds = %"$have_gas_4202" - call void @_out_of_gas() - br label %"$have_gas_4207" - -"$have_gas_4207": ; preds = %"$out_of_gas_4206", %"$have_gas_4202" - %"$consume_4208" = sub i64 %"$gasrem_4204", 1 - store i64 %"$consume_4208", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_4209" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - %"$adtval_4210_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4210_salloc" = call i8* @_salloc(i8* %"$adtval_4210_load", i64 41) - %"$adtval_4210" = bitcast i8* %"$adtval_4210_salloc" to %CName_ud-registry.Record* - %"$adtgep_4211" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4210", i32 0, i32 0 - store i8 0, i8* %"$adtgep_4211", align 1 - %"$adtgep_4212" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4210", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_4212", align 1 - %"$adtgep_4213" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4210", i32 0, i32 2 - store [20 x i8] %"$ud-registry.zeroByStr20_4209", [20 x i8]* %"$adtgep_4213", align 1 - %"$adtptr_4214" = bitcast %CName_ud-registry.Record* %"$adtval_4210" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_4214", %TName_ud-registry.Record** %newRecord, align 8 - %"$newRecord_4215" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_4215_4216" = bitcast %TName_ud-registry.Record* %"$newRecord_4215" to i8* - %"$_literal_cost_call_4217" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", i8* %"$$newRecord_4215_4216") - %"$gasadd_4218" = add i64 %"$_literal_cost_call_4217", 1 - %"$gasrem_4219" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4220" = icmp ugt i64 %"$gasadd_4218", %"$gasrem_4219" - br i1 %"$gascmp_4220", label %"$out_of_gas_4221", label %"$have_gas_4222" - -"$out_of_gas_4221": ; preds = %"$have_gas_4207" - call void @_out_of_gas() - br label %"$have_gas_4222" - -"$have_gas_4222": ; preds = %"$out_of_gas_4221", %"$have_gas_4207" - %"$consume_4223" = sub i64 %"$gasrem_4219", %"$gasadd_4218" - store i64 %"$consume_4223", i64* @_gasrem, align 8 - %"$indices_buf_4224_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4224_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4224_salloc_load", i64 32) - %"$indices_buf_4224_salloc" = bitcast i8* %"$indices_buf_4224_salloc_salloc" to [32 x i8]* - %"$indices_buf_4224" = bitcast [32 x i8]* %"$indices_buf_4224_salloc" to i8* - %"$indices_gep_4225" = getelementptr i8, i8* %"$indices_buf_4224", i32 0 - %indices_cast4 = bitcast i8* %"$indices_gep_4225" to [32 x i8]* + %"$gasrem_3651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3652" = icmp ugt i64 1, %"$gasrem_3651" + br i1 %"$gascmp_3652", label %"$out_of_gas_3653", label %"$have_gas_3654" + +"$out_of_gas_3653": ; preds = %"$have_gas_3649" + call void @_out_of_gas() + br label %"$have_gas_3654" + +"$have_gas_3654": ; preds = %"$out_of_gas_3653", %"$have_gas_3649" + %"$consume_3655" = sub i64 %"$gasrem_3651", 1 + store i64 %"$consume_3655", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_3656" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + %"$adtval_3657_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_3657_salloc" = call i8* @_salloc(i8* %"$adtval_3657_load", i64 41) + %"$adtval_3657" = bitcast i8* %"$adtval_3657_salloc" to %CName_ud-registry.Record* + %"$adtgep_3658" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3657", i32 0, i32 0 + store i8 0, i8* %"$adtgep_3658", align 1 + %"$adtgep_3659" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3657", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_3659", align 1 + %"$adtgep_3660" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_3657", i32 0, i32 2 + store [20 x i8] %"$ud-registry.zeroByStr20_3656", [20 x i8]* %"$adtgep_3660", align 1 + %"$adtptr_3661" = bitcast %CName_ud-registry.Record* %"$adtval_3657" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_3661", %TName_ud-registry.Record** %newRecord, align 8 + %"$newRecord_3662" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_3662_3663" = bitcast %TName_ud-registry.Record* %"$newRecord_3662" to i8* + %"$_literal_cost_call_3664" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", i8* %"$$newRecord_3662_3663") + %"$gasadd_3665" = add i64 %"$_literal_cost_call_3664", 1 + %"$gasrem_3666" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3667" = icmp ugt i64 %"$gasadd_3665", %"$gasrem_3666" + br i1 %"$gascmp_3667", label %"$out_of_gas_3668", label %"$have_gas_3669" + +"$out_of_gas_3668": ; preds = %"$have_gas_3654" + call void @_out_of_gas() + br label %"$have_gas_3669" + +"$have_gas_3669": ; preds = %"$out_of_gas_3668", %"$have_gas_3654" + %"$consume_3670" = sub i64 %"$gasrem_3666", %"$gasadd_3665" + store i64 %"$consume_3670", i64* @_gasrem, align 8 + %"$indices_buf_3671_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3671_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3671_salloc_load", i64 32) + %"$indices_buf_3671_salloc" = bitcast i8* %"$indices_buf_3671_salloc_salloc" to [32 x i8]* + %"$indices_buf_3671" = bitcast [32 x i8]* %"$indices_buf_3671_salloc" to i8* + %"$indices_gep_3672" = getelementptr i8, i8* %"$indices_buf_3671", i32 0 + %indices_cast4 = bitcast i8* %"$indices_gep_3672" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast4, align 1 - %"$execptr_load_4226" = load i8*, i8** @_execptr, align 8 - %"$newRecord_4228" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_4229" = bitcast %TName_ud-registry.Record* %"$newRecord_4228" to i8* - call void @_update_field(i8* %"$execptr_load_4226", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4227", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4224", i8* %"$update_value_4229") - %"$gasrem_4230" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4231" = icmp ugt i64 1, %"$gasrem_4230" - br i1 %"$gascmp_4231", label %"$out_of_gas_4232", label %"$have_gas_4233" + %"$execptr_load_3673" = load i8*, i8** @_execptr, align 8 + %"$newRecord_3675" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_3676" = bitcast %TName_ud-registry.Record* %"$newRecord_3675" to i8* + call void @_update_field(i8* %"$execptr_load_3673", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3674", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3671", i8* %"$update_value_3676") + %"$gasrem_3677" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3678" = icmp ugt i64 1, %"$gasrem_3677" + br i1 %"$gascmp_3678", label %"$out_of_gas_3679", label %"$have_gas_3680" -"$out_of_gas_4232": ; preds = %"$have_gas_4222" +"$out_of_gas_3679": ; preds = %"$have_gas_3669" call void @_out_of_gas() - br label %"$have_gas_4233" + br label %"$have_gas_3680" -"$have_gas_4233": ; preds = %"$out_of_gas_4232", %"$have_gas_4222" - %"$consume_4234" = sub i64 %"$gasrem_4230", 1 - store i64 %"$consume_4234", i64* @_gasrem, align 8 +"$have_gas_3680": ; preds = %"$out_of_gas_3679", %"$have_gas_3669" + %"$consume_3681" = sub i64 %"$gasrem_3677", 1 + store i64 %"$consume_3681", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_4235" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4236" = icmp ugt i64 1, %"$gasrem_4235" - br i1 %"$gascmp_4236", label %"$out_of_gas_4237", label %"$have_gas_4238" - -"$out_of_gas_4237": ; preds = %"$have_gas_4233" - call void @_out_of_gas() - br label %"$have_gas_4238" - -"$have_gas_4238": ; preds = %"$out_of_gas_4237", %"$have_gas_4233" - %"$consume_4239" = sub i64 %"$gasrem_4235", 1 - store i64 %"$consume_4239", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_90" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_4240" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_4241" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_4240", 0 - %"$ud-registry.eConfigured_envptr_4242" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_4240", 1 - %"$ud-registry.eConfigured_node_4243" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_4243", align 1 - %"$ud-registry.eConfigured_call_4244" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_4241"(i8* %"$ud-registry.eConfigured_envptr_4242", [32 x i8]* %"$ud-registry.eConfigured_node_4243") - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_4244", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_90", align 8 - %"$ud-registry.eConfigured_91" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_90_4245" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_90", align 8 - %"$$ud-registry.eConfigured_90_fptr_4246" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_90_4245", 0 - %"$$ud-registry.eConfigured_90_envptr_4247" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_90_4245", 1 - %"$$ud-registry.eConfigured_90_owner_4248" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_90_owner_4248", align 1 - %"$$ud-registry.eConfigured_90_call_4249" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_90_fptr_4246"(i8* %"$$ud-registry.eConfigured_90_envptr_4247", [20 x i8]* %"$$ud-registry.eConfigured_90_owner_4248") - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_90_call_4249", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_91", align 8 - %"$ud-registry.eConfigured_92" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_91_4250" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_91", align 8 - %"$$ud-registry.eConfigured_91_fptr_4251" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_91_4250", 0 - %"$$ud-registry.eConfigured_91_envptr_4252" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_91_4250", 1 - %"$$ud-registry.eConfigured_91_ud-registry.zeroByStr20_4253" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_4254" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_4254", [20 x i8]* %"$$ud-registry.eConfigured_91_ud-registry.zeroByStr20_4253", align 1 - %"$$ud-registry.eConfigured_91_call_4255" = call i8* %"$$ud-registry.eConfigured_91_fptr_4251"(i8* %"$$ud-registry.eConfigured_91_envptr_4252", [20 x i8]* %"$$ud-registry.eConfigured_91_ud-registry.zeroByStr20_4253") - store i8* %"$$ud-registry.eConfigured_91_call_4255", i8** %"$ud-registry.eConfigured_92", align 8 - %"$$ud-registry.eConfigured_92_4256" = load i8*, i8** %"$ud-registry.eConfigured_92", align 8 - store i8* %"$$ud-registry.eConfigured_92_4256", i8** %e, align 8 - %"$e_4257" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_4259" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4257") - %"$gasrem_4260" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4261" = icmp ugt i64 %"$_literal_cost_call_4259", %"$gasrem_4260" - br i1 %"$gascmp_4261", label %"$out_of_gas_4262", label %"$have_gas_4263" - -"$out_of_gas_4262": ; preds = %"$have_gas_4238" - call void @_out_of_gas() - br label %"$have_gas_4263" - -"$have_gas_4263": ; preds = %"$out_of_gas_4262", %"$have_gas_4238" - %"$consume_4264" = sub i64 %"$gasrem_4260", %"$_literal_cost_call_4259" - store i64 %"$consume_4264", i64* @_gasrem, align 8 - %"$execptr_load_4265" = load i8*, i8** @_execptr, align 8 - %"$e_4266" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_4265", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4266") - %"$gasrem_4267" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4268" = icmp ugt i64 1, %"$gasrem_4267" - br i1 %"$gascmp_4268", label %"$out_of_gas_4269", label %"$have_gas_4270" - -"$out_of_gas_4269": ; preds = %"$have_gas_4263" - call void @_out_of_gas() - br label %"$have_gas_4270" - -"$have_gas_4270": ; preds = %"$out_of_gas_4269", %"$have_gas_4263" - %"$consume_4271" = sub i64 %"$gasrem_4267", 1 - store i64 %"$consume_4271", i64* @_gasrem, align 8 + %"$gasrem_3682" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3683" = icmp ugt i64 1, %"$gasrem_3682" + br i1 %"$gascmp_3683", label %"$out_of_gas_3684", label %"$have_gas_3685" + +"$out_of_gas_3684": ; preds = %"$have_gas_3680" + call void @_out_of_gas() + br label %"$have_gas_3685" + +"$have_gas_3685": ; preds = %"$out_of_gas_3684", %"$have_gas_3680" + %"$consume_3686" = sub i64 %"$gasrem_3682", 1 + store i64 %"$consume_3686", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_3687" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_3688" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3687", 0 + %"$ud-registry.eConfigured_envptr_3689" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_3687", 1 + %"$ud-registry.eConfigured_node_3690" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_3690", align 1 + %"$ud-registry.eConfigured_owner_3691" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$ud-registry.eConfigured_owner_3691", align 1 + %"$ud-registry.eConfigured_ud-registry.zeroByStr20_3692" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_3693" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_3693", [20 x i8]* %"$ud-registry.eConfigured_ud-registry.zeroByStr20_3692", align 1 + %"$ud-registry.eConfigured_call_3694" = call i8* %"$ud-registry.eConfigured_fptr_3688"(i8* %"$ud-registry.eConfigured_envptr_3689", [32 x i8]* %"$ud-registry.eConfigured_node_3690", [20 x i8]* %"$ud-registry.eConfigured_owner_3691", [20 x i8]* %"$ud-registry.eConfigured_ud-registry.zeroByStr20_3692") + store i8* %"$ud-registry.eConfigured_call_3694", i8** %e, align 8 + %"$e_3695" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_3697" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3695") + %"$gasrem_3698" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3699" = icmp ugt i64 %"$_literal_cost_call_3697", %"$gasrem_3698" + br i1 %"$gascmp_3699", label %"$out_of_gas_3700", label %"$have_gas_3701" + +"$out_of_gas_3700": ; preds = %"$have_gas_3685" + call void @_out_of_gas() + br label %"$have_gas_3701" + +"$have_gas_3701": ; preds = %"$out_of_gas_3700", %"$have_gas_3685" + %"$consume_3702" = sub i64 %"$gasrem_3698", %"$_literal_cost_call_3697" + store i64 %"$consume_3702", i64* @_gasrem, align 8 + %"$execptr_load_3703" = load i8*, i8** @_execptr, align 8 + %"$e_3704" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_3703", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3704") + %"$gasrem_3705" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3706" = icmp ugt i64 1, %"$gasrem_3705" + br i1 %"$gascmp_3706", label %"$out_of_gas_3707", label %"$have_gas_3708" + +"$out_of_gas_3707": ; preds = %"$have_gas_3701" + call void @_out_of_gas() + br label %"$have_gas_3708" + +"$have_gas_3708": ; preds = %"$out_of_gas_3707", %"$have_gas_3701" + %"$consume_3709" = sub i64 %"$gasrem_3705", 1 + store i64 %"$consume_3709", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_4272" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4273" = icmp ugt i64 1, %"$gasrem_4272" - br i1 %"$gascmp_4273", label %"$out_of_gas_4274", label %"$have_gas_4275" + %"$gasrem_3710" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3711" = icmp ugt i64 1, %"$gasrem_3710" + br i1 %"$gascmp_3711", label %"$out_of_gas_3712", label %"$have_gas_3713" -"$out_of_gas_4274": ; preds = %"$have_gas_4270" +"$out_of_gas_3712": ; preds = %"$have_gas_3708" call void @_out_of_gas() - br label %"$have_gas_4275" + br label %"$have_gas_3713" -"$have_gas_4275": ; preds = %"$out_of_gas_4274", %"$have_gas_4270" - %"$consume_4276" = sub i64 %"$gasrem_4272", 1 - store i64 %"$consume_4276", i64* @_gasrem, align 8 +"$have_gas_3713": ; preds = %"$out_of_gas_3712", %"$have_gas_3708" + %"$consume_3714" = sub i64 %"$gasrem_3710", 1 + store i64 %"$consume_3714", i64* @_gasrem, align 8 %m = alloca i8*, align 8 - %"$gasrem_4277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4278" = icmp ugt i64 1, %"$gasrem_4277" - br i1 %"$gascmp_4278", label %"$out_of_gas_4279", label %"$have_gas_4280" - -"$out_of_gas_4279": ; preds = %"$have_gas_4275" - call void @_out_of_gas() - br label %"$have_gas_4280" - -"$have_gas_4280": ; preds = %"$out_of_gas_4279", %"$have_gas_4275" - %"$consume_4281" = sub i64 %"$gasrem_4277", 1 - store i64 %"$consume_4281", i64* @_gasrem, align 8 - %"$msgobj_4282_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_4282_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4282_salloc_load", i64 225) - %"$msgobj_4282_salloc" = bitcast i8* %"$msgobj_4282_salloc_salloc" to [225 x i8]* - %"$msgobj_4282" = bitcast [225 x i8]* %"$msgobj_4282_salloc" to i8* - store i8 5, i8* %"$msgobj_4282", align 1 - %"$msgobj_fname_4284" = getelementptr i8, i8* %"$msgobj_4282", i32 1 - %"$msgobj_fname_4285" = bitcast i8* %"$msgobj_fname_4284" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4283", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4285", align 8 - %"$msgobj_td_4286" = getelementptr i8, i8* %"$msgobj_4282", i32 17 - %"$msgobj_td_4287" = bitcast i8* %"$msgobj_td_4286" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4287", align 8 - %"$msgobj_v_4289" = getelementptr i8, i8* %"$msgobj_4282", i32 25 - %"$msgobj_v_4290" = bitcast i8* %"$msgobj_v_4289" to %String* - store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_4288", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_4290", align 8 - %"$msgobj_fname_4292" = getelementptr i8, i8* %"$msgobj_4282", i32 41 - %"$msgobj_fname_4293" = bitcast i8* %"$msgobj_fname_4292" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4291", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4293", align 8 - %"$msgobj_td_4294" = getelementptr i8, i8* %"$msgobj_4282", i32 57 - %"$msgobj_td_4295" = bitcast i8* %"$msgobj_td_4294" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_4295", align 8 - %"$msgobj_v_4296" = getelementptr i8, i8* %"$msgobj_4282", i32 65 - %"$msgobj_v_4297" = bitcast i8* %"$msgobj_v_4296" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_4297", align 1 - %"$msgobj_fname_4299" = getelementptr i8, i8* %"$msgobj_4282", i32 97 - %"$msgobj_fname_4300" = bitcast i8* %"$msgobj_fname_4299" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4298", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4300", align 8 - %"$msgobj_td_4301" = getelementptr i8, i8* %"$msgobj_4282", i32 113 - %"$msgobj_td_4302" = bitcast i8* %"$msgobj_td_4301" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4302", align 8 - %"$msgobj_v_4303" = getelementptr i8, i8* %"$msgobj_4282", i32 121 - %"$msgobj_v_4304" = bitcast i8* %"$msgobj_v_4303" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_4304", align 1 - %"$msgobj_fname_4306" = getelementptr i8, i8* %"$msgobj_4282", i32 141 - %"$msgobj_fname_4307" = bitcast i8* %"$msgobj_fname_4306" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4305", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4307", align 8 - %"$msgobj_td_4308" = getelementptr i8, i8* %"$msgobj_4282", i32 157 - %"$msgobj_td_4309" = bitcast i8* %"$msgobj_td_4308" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_4309", align 8 - %"$msgobj_v_4310" = getelementptr i8, i8* %"$msgobj_4282", i32 165 - %"$msgobj_v_4311" = bitcast i8* %"$msgobj_v_4310" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4311", align 8 - %"$msgobj_fname_4313" = getelementptr i8, i8* %"$msgobj_4282", i32 181 - %"$msgobj_fname_4314" = bitcast i8* %"$msgobj_fname_4313" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4312", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4314", align 8 - %"$msgobj_td_4315" = getelementptr i8, i8* %"$msgobj_4282", i32 197 - %"$msgobj_td_4316" = bitcast i8* %"$msgobj_td_4315" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4316", align 8 - %"$msgobj_v_4317" = getelementptr i8, i8* %"$msgobj_4282", i32 205 - %"$msgobj_v_4318" = bitcast i8* %"$msgobj_v_4317" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4318", align 1 - store i8* %"$msgobj_4282", i8** %m, align 8 - %"$gasrem_4320" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4321" = icmp ugt i64 1, %"$gasrem_4320" - br i1 %"$gascmp_4321", label %"$out_of_gas_4322", label %"$have_gas_4323" - -"$out_of_gas_4322": ; preds = %"$have_gas_4280" - call void @_out_of_gas() - br label %"$have_gas_4323" - -"$have_gas_4323": ; preds = %"$out_of_gas_4322", %"$have_gas_4280" - %"$consume_4324" = sub i64 %"$gasrem_4320", 1 - store i64 %"$consume_4324", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_89" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_4325" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_4326" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4325", 0 - %"$ud-registry.oneMsg_envptr_4327" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4325", 1 - %"$m_4328" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_4329" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4326"(i8* %"$ud-registry.oneMsg_envptr_4327", i8* %"$m_4328") - store %TName_List_Message* %"$ud-registry.oneMsg_call_4329", %TName_List_Message** %"$ud-registry.oneMsg_89", align 8 - %"$$ud-registry.oneMsg_89_4330" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_89", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_89_4330", %TName_List_Message** %msgs, align 8 - %"$msgs_4331" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_4331_4332" = bitcast %TName_List_Message* %"$msgs_4331" to i8* - %"$_literal_cost_call_4333" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_4331_4332") - %"$gasrem_4334" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4335" = icmp ugt i64 %"$_literal_cost_call_4333", %"$gasrem_4334" - br i1 %"$gascmp_4335", label %"$out_of_gas_4336", label %"$have_gas_4337" - -"$out_of_gas_4336": ; preds = %"$have_gas_4323" - call void @_out_of_gas() - br label %"$have_gas_4337" - -"$have_gas_4337": ; preds = %"$out_of_gas_4336", %"$have_gas_4323" - %"$consume_4338" = sub i64 %"$gasrem_4334", %"$_literal_cost_call_4333" - store i64 %"$consume_4338", i64* @_gasrem, align 8 - %"$execptr_load_4339" = load i8*, i8** @_execptr, align 8 - %"$msgs_4340" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_4339", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_4340") - br label %"$matchsucc_4183" - -"$False_4341": ; preds = %"$have_gas_4181" - %"$isSenderOAO_4342" = bitcast %TName_Bool* %"$isSenderOAO_4184" to %CName_False* - %"$gasrem_4343" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4344" = icmp ugt i64 1, %"$gasrem_4343" - br i1 %"$gascmp_4344", label %"$out_of_gas_4345", label %"$have_gas_4346" - -"$out_of_gas_4345": ; preds = %"$False_4341" - call void @_out_of_gas() - br label %"$have_gas_4346" - -"$have_gas_4346": ; preds = %"$out_of_gas_4345", %"$False_4341" - %"$consume_4347" = sub i64 %"$gasrem_4343", 1 - store i64 %"$consume_4347", i64* @_gasrem, align 8 + %"$gasrem_3715" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3716" = icmp ugt i64 1, %"$gasrem_3715" + br i1 %"$gascmp_3716", label %"$out_of_gas_3717", label %"$have_gas_3718" + +"$out_of_gas_3717": ; preds = %"$have_gas_3713" + call void @_out_of_gas() + br label %"$have_gas_3718" + +"$have_gas_3718": ; preds = %"$out_of_gas_3717", %"$have_gas_3713" + %"$consume_3719" = sub i64 %"$gasrem_3715", 1 + store i64 %"$consume_3719", i64* @_gasrem, align 8 + %"$msgobj_3720_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3720_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3720_salloc_load", i64 225) + %"$msgobj_3720_salloc" = bitcast i8* %"$msgobj_3720_salloc_salloc" to [225 x i8]* + %"$msgobj_3720" = bitcast [225 x i8]* %"$msgobj_3720_salloc" to i8* + store i8 5, i8* %"$msgobj_3720", align 1 + %"$msgobj_fname_3722" = getelementptr i8, i8* %"$msgobj_3720", i32 1 + %"$msgobj_fname_3723" = bitcast i8* %"$msgobj_fname_3722" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3721", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3723", align 8 + %"$msgobj_td_3724" = getelementptr i8, i8* %"$msgobj_3720", i32 17 + %"$msgobj_td_3725" = bitcast i8* %"$msgobj_td_3724" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_3725", align 8 + %"$msgobj_v_3727" = getelementptr i8, i8* %"$msgobj_3720", i32 25 + %"$msgobj_v_3728" = bitcast i8* %"$msgobj_v_3727" to %String* + store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_3726", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_3728", align 8 + %"$msgobj_fname_3730" = getelementptr i8, i8* %"$msgobj_3720", i32 41 + %"$msgobj_fname_3731" = bitcast i8* %"$msgobj_fname_3730" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3729", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3731", align 8 + %"$msgobj_td_3732" = getelementptr i8, i8* %"$msgobj_3720", i32 57 + %"$msgobj_td_3733" = bitcast i8* %"$msgobj_td_3732" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_3733", align 8 + %"$msgobj_v_3734" = getelementptr i8, i8* %"$msgobj_3720", i32 65 + %"$msgobj_v_3735" = bitcast i8* %"$msgobj_v_3734" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3735", align 1 + %"$msgobj_fname_3737" = getelementptr i8, i8* %"$msgobj_3720", i32 97 + %"$msgobj_fname_3738" = bitcast i8* %"$msgobj_fname_3737" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3736", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3738", align 8 + %"$msgobj_td_3739" = getelementptr i8, i8* %"$msgobj_3720", i32 113 + %"$msgobj_td_3740" = bitcast i8* %"$msgobj_td_3739" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3740", align 8 + %"$msgobj_v_3741" = getelementptr i8, i8* %"$msgobj_3720", i32 121 + %"$msgobj_v_3742" = bitcast i8* %"$msgobj_v_3741" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_3742", align 1 + %"$msgobj_fname_3744" = getelementptr i8, i8* %"$msgobj_3720", i32 141 + %"$msgobj_fname_3745" = bitcast i8* %"$msgobj_fname_3744" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3743", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3745", align 8 + %"$msgobj_td_3746" = getelementptr i8, i8* %"$msgobj_3720", i32 157 + %"$msgobj_td_3747" = bitcast i8* %"$msgobj_td_3746" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_3747", align 8 + %"$msgobj_v_3748" = getelementptr i8, i8* %"$msgobj_3720", i32 165 + %"$msgobj_v_3749" = bitcast i8* %"$msgobj_v_3748" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3749", align 8 + %"$msgobj_fname_3751" = getelementptr i8, i8* %"$msgobj_3720", i32 181 + %"$msgobj_fname_3752" = bitcast i8* %"$msgobj_fname_3751" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3750", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3752", align 8 + %"$msgobj_td_3753" = getelementptr i8, i8* %"$msgobj_3720", i32 197 + %"$msgobj_td_3754" = bitcast i8* %"$msgobj_td_3753" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3754", align 8 + %"$msgobj_v_3755" = getelementptr i8, i8* %"$msgobj_3720", i32 205 + %"$msgobj_v_3756" = bitcast i8* %"$msgobj_v_3755" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3756", align 1 + store i8* %"$msgobj_3720", i8** %m, align 8 + %"$gasrem_3758" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3759" = icmp ugt i64 1, %"$gasrem_3758" + br i1 %"$gascmp_3759", label %"$out_of_gas_3760", label %"$have_gas_3761" + +"$out_of_gas_3760": ; preds = %"$have_gas_3718" + call void @_out_of_gas() + br label %"$have_gas_3761" + +"$have_gas_3761": ; preds = %"$out_of_gas_3760", %"$have_gas_3718" + %"$consume_3762" = sub i64 %"$gasrem_3758", 1 + store i64 %"$consume_3762", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_49" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_3763" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_3764" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3763", 0 + %"$ud-registry.oneMsg_envptr_3765" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3763", 1 + %"$m_3766" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_3767" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3764"(i8* %"$ud-registry.oneMsg_envptr_3765", i8* %"$m_3766") + store %TName_List_Message* %"$ud-registry.oneMsg_call_3767", %TName_List_Message** %"$ud-registry.oneMsg_49", align 8 + %"$$ud-registry.oneMsg_49_3768" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_49", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_49_3768", %TName_List_Message** %msgs, align 8 + %"$msgs_3769" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_3769_3770" = bitcast %TName_List_Message* %"$msgs_3769" to i8* + %"$_literal_cost_call_3771" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_3769_3770") + %"$gasrem_3772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3773" = icmp ugt i64 %"$_literal_cost_call_3771", %"$gasrem_3772" + br i1 %"$gascmp_3773", label %"$out_of_gas_3774", label %"$have_gas_3775" + +"$out_of_gas_3774": ; preds = %"$have_gas_3761" + call void @_out_of_gas() + br label %"$have_gas_3775" + +"$have_gas_3775": ; preds = %"$out_of_gas_3774", %"$have_gas_3761" + %"$consume_3776" = sub i64 %"$gasrem_3772", %"$_literal_cost_call_3771" + store i64 %"$consume_3776", i64* @_gasrem, align 8 + %"$execptr_load_3777" = load i8*, i8** @_execptr, align 8 + %"$msgs_3778" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_3777", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_3778") + br label %"$matchsucc_3630" + +"$False_3779": ; preds = %"$have_gas_3628" + %"$isSenderOAO_3780" = bitcast %TName_Bool* %"$isSenderOAO_3631" to %CName_False* + %"$gasrem_3781" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3782" = icmp ugt i64 1, %"$gasrem_3781" + br i1 %"$gascmp_3782", label %"$out_of_gas_3783", label %"$have_gas_3784" + +"$out_of_gas_3783": ; preds = %"$False_3779" + call void @_out_of_gas() + br label %"$have_gas_3784" + +"$have_gas_3784": ; preds = %"$out_of_gas_3783", %"$False_3779" + %"$consume_3785" = sub i64 %"$gasrem_3781", 1 + store i64 %"$consume_3785", i64* @_gasrem, align 8 %e5 = alloca i8*, align 8 - %"$gasrem_4348" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4349" = icmp ugt i64 1, %"$gasrem_4348" - br i1 %"$gascmp_4349", label %"$out_of_gas_4350", label %"$have_gas_4351" + %"$gasrem_3786" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3787" = icmp ugt i64 1, %"$gasrem_3786" + br i1 %"$gascmp_3787", label %"$out_of_gas_3788", label %"$have_gas_3789" -"$out_of_gas_4350": ; preds = %"$have_gas_4346" +"$out_of_gas_3788": ; preds = %"$have_gas_3784" call void @_out_of_gas() - br label %"$have_gas_4351" + br label %"$have_gas_3789" -"$have_gas_4351": ; preds = %"$out_of_gas_4350", %"$have_gas_4346" - %"$consume_4352" = sub i64 %"$gasrem_4348", 1 - store i64 %"$consume_4352", i64* @_gasrem, align 8 +"$have_gas_3789": ; preds = %"$out_of_gas_3788", %"$have_gas_3784" + %"$consume_3790" = sub i64 %"$gasrem_3786", 1 + store i64 %"$consume_3790", i64* @_gasrem, align 8 %m6 = alloca %String, align 8 - %"$gasrem_4353" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4354" = icmp ugt i64 1, %"$gasrem_4353" - br i1 %"$gascmp_4354", label %"$out_of_gas_4355", label %"$have_gas_4356" - -"$out_of_gas_4355": ; preds = %"$have_gas_4351" - call void @_out_of_gas() - br label %"$have_gas_4356" - -"$have_gas_4356": ; preds = %"$out_of_gas_4355", %"$have_gas_4351" - %"$consume_4357" = sub i64 %"$gasrem_4353", 1 - store i64 %"$consume_4357", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_4358", i32 0, i32 0), i32 43 }, %String* %m6, align 8 - %"$gasrem_4359" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4360" = icmp ugt i64 1, %"$gasrem_4359" - br i1 %"$gascmp_4360", label %"$out_of_gas_4361", label %"$have_gas_4362" - -"$out_of_gas_4361": ; preds = %"$have_gas_4356" - call void @_out_of_gas() - br label %"$have_gas_4362" - -"$have_gas_4362": ; preds = %"$out_of_gas_4361", %"$have_gas_4356" - %"$consume_4363" = sub i64 %"$gasrem_4359", 1 - store i64 %"$consume_4363", i64* @_gasrem, align 8 - %"$ud-registry.eError_94" = alloca i8*, align 8 - %"$ud-registry.eError_4364" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_4365" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4364", 0 - %"$ud-registry.eError_envptr_4366" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4364", 1 - %"$m_4367" = load %String, %String* %m6, align 8 - %"$ud-registry.eError_call_4368" = call i8* %"$ud-registry.eError_fptr_4365"(i8* %"$ud-registry.eError_envptr_4366", %String %"$m_4367") - store i8* %"$ud-registry.eError_call_4368", i8** %"$ud-registry.eError_94", align 8 - %"$$ud-registry.eError_94_4369" = load i8*, i8** %"$ud-registry.eError_94", align 8 - store i8* %"$$ud-registry.eError_94_4369", i8** %e5, align 8 - %"$e_4370" = load i8*, i8** %e5, align 8 - %"$_literal_cost_call_4372" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4370") - %"$gasrem_4373" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4374" = icmp ugt i64 %"$_literal_cost_call_4372", %"$gasrem_4373" - br i1 %"$gascmp_4374", label %"$out_of_gas_4375", label %"$have_gas_4376" - -"$out_of_gas_4375": ; preds = %"$have_gas_4362" - call void @_out_of_gas() - br label %"$have_gas_4376" - -"$have_gas_4376": ; preds = %"$out_of_gas_4375", %"$have_gas_4362" - %"$consume_4377" = sub i64 %"$gasrem_4373", %"$_literal_cost_call_4372" - store i64 %"$consume_4377", i64* @_gasrem, align 8 - %"$execptr_load_4378" = load i8*, i8** @_execptr, align 8 - %"$e_4379" = load i8*, i8** %e5, align 8 - call void @_event(i8* %"$execptr_load_4378", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4379") - %"$gasrem_4380" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4381" = icmp ugt i64 1, %"$gasrem_4380" - br i1 %"$gascmp_4381", label %"$out_of_gas_4382", label %"$have_gas_4383" - -"$out_of_gas_4382": ; preds = %"$have_gas_4376" - call void @_out_of_gas() - br label %"$have_gas_4383" - -"$have_gas_4383": ; preds = %"$out_of_gas_4382", %"$have_gas_4376" - %"$consume_4384" = sub i64 %"$gasrem_4380", 1 - store i64 %"$consume_4384", i64* @_gasrem, align 8 + %"$gasrem_3791" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3792" = icmp ugt i64 1, %"$gasrem_3791" + br i1 %"$gascmp_3792", label %"$out_of_gas_3793", label %"$have_gas_3794" + +"$out_of_gas_3793": ; preds = %"$have_gas_3789" + call void @_out_of_gas() + br label %"$have_gas_3794" + +"$have_gas_3794": ; preds = %"$out_of_gas_3793", %"$have_gas_3789" + %"$consume_3795" = sub i64 %"$gasrem_3791", 1 + store i64 %"$consume_3795", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @"$stringlit_3796", i32 0, i32 0), i32 43 }, %String* %m6, align 8 + %"$gasrem_3797" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3798" = icmp ugt i64 1, %"$gasrem_3797" + br i1 %"$gascmp_3798", label %"$out_of_gas_3799", label %"$have_gas_3800" + +"$out_of_gas_3799": ; preds = %"$have_gas_3794" + call void @_out_of_gas() + br label %"$have_gas_3800" + +"$have_gas_3800": ; preds = %"$out_of_gas_3799", %"$have_gas_3794" + %"$consume_3801" = sub i64 %"$gasrem_3797", 1 + store i64 %"$consume_3801", i64* @_gasrem, align 8 + %"$ud-registry.eError_50" = alloca i8*, align 8 + %"$ud-registry.eError_3802" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_3803" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3802", 0 + %"$ud-registry.eError_envptr_3804" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_3802", 1 + %"$m_3805" = load %String, %String* %m6, align 8 + %"$ud-registry.eError_call_3806" = call i8* %"$ud-registry.eError_fptr_3803"(i8* %"$ud-registry.eError_envptr_3804", %String %"$m_3805") + store i8* %"$ud-registry.eError_call_3806", i8** %"$ud-registry.eError_50", align 8 + %"$$ud-registry.eError_50_3807" = load i8*, i8** %"$ud-registry.eError_50", align 8 + store i8* %"$$ud-registry.eError_50_3807", i8** %e5, align 8 + %"$e_3808" = load i8*, i8** %e5, align 8 + %"$_literal_cost_call_3810" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3808") + %"$gasrem_3811" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3812" = icmp ugt i64 %"$_literal_cost_call_3810", %"$gasrem_3811" + br i1 %"$gascmp_3812", label %"$out_of_gas_3813", label %"$have_gas_3814" + +"$out_of_gas_3813": ; preds = %"$have_gas_3800" + call void @_out_of_gas() + br label %"$have_gas_3814" + +"$have_gas_3814": ; preds = %"$out_of_gas_3813", %"$have_gas_3800" + %"$consume_3815" = sub i64 %"$gasrem_3811", %"$_literal_cost_call_3810" + store i64 %"$consume_3815", i64* @_gasrem, align 8 + %"$execptr_load_3816" = load i8*, i8** @_execptr, align 8 + %"$e_3817" = load i8*, i8** %e5, align 8 + call void @_event(i8* %"$execptr_load_3816", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_3817") + %"$gasrem_3818" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3819" = icmp ugt i64 1, %"$gasrem_3818" + br i1 %"$gascmp_3819", label %"$out_of_gas_3820", label %"$have_gas_3821" + +"$out_of_gas_3820": ; preds = %"$have_gas_3814" + call void @_out_of_gas() + br label %"$have_gas_3821" + +"$have_gas_3821": ; preds = %"$out_of_gas_3820", %"$have_gas_3814" + %"$consume_3822" = sub i64 %"$gasrem_3818", 1 + store i64 %"$consume_3822", i64* @_gasrem, align 8 %msgs7 = alloca %TName_List_Message*, align 8 - %"$gasrem_4385" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4386" = icmp ugt i64 1, %"$gasrem_4385" - br i1 %"$gascmp_4386", label %"$out_of_gas_4387", label %"$have_gas_4388" + %"$gasrem_3823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3824" = icmp ugt i64 1, %"$gasrem_3823" + br i1 %"$gascmp_3824", label %"$out_of_gas_3825", label %"$have_gas_3826" -"$out_of_gas_4387": ; preds = %"$have_gas_4383" +"$out_of_gas_3825": ; preds = %"$have_gas_3821" call void @_out_of_gas() - br label %"$have_gas_4388" + br label %"$have_gas_3826" -"$have_gas_4388": ; preds = %"$out_of_gas_4387", %"$have_gas_4383" - %"$consume_4389" = sub i64 %"$gasrem_4385", 1 - store i64 %"$consume_4389", i64* @_gasrem, align 8 +"$have_gas_3826": ; preds = %"$out_of_gas_3825", %"$have_gas_3821" + %"$consume_3827" = sub i64 %"$gasrem_3823", 1 + store i64 %"$consume_3827", i64* @_gasrem, align 8 %"$m_1" = alloca i8*, align 8 - %"$gasrem_4390" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4391" = icmp ugt i64 1, %"$gasrem_4390" - br i1 %"$gascmp_4391", label %"$out_of_gas_4392", label %"$have_gas_4393" - -"$out_of_gas_4392": ; preds = %"$have_gas_4388" - call void @_out_of_gas() - br label %"$have_gas_4393" - -"$have_gas_4393": ; preds = %"$out_of_gas_4392", %"$have_gas_4388" - %"$consume_4394" = sub i64 %"$gasrem_4390", 1 - store i64 %"$consume_4394", i64* @_gasrem, align 8 - %"$msgobj_4395_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_4395_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4395_salloc_load", i64 225) - %"$msgobj_4395_salloc" = bitcast i8* %"$msgobj_4395_salloc_salloc" to [225 x i8]* - %"$msgobj_4395" = bitcast [225 x i8]* %"$msgobj_4395_salloc" to i8* - store i8 5, i8* %"$msgobj_4395", align 1 - %"$msgobj_fname_4397" = getelementptr i8, i8* %"$msgobj_4395", i32 1 - %"$msgobj_fname_4398" = bitcast i8* %"$msgobj_fname_4397" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4396", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4398", align 8 - %"$msgobj_td_4399" = getelementptr i8, i8* %"$msgobj_4395", i32 17 - %"$msgobj_td_4400" = bitcast i8* %"$msgobj_td_4399" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4400", align 8 - %"$msgobj_v_4402" = getelementptr i8, i8* %"$msgobj_4395", i32 25 - %"$msgobj_v_4403" = bitcast i8* %"$msgobj_v_4402" to %String* - store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_4401", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_4403", align 8 - %"$msgobj_fname_4405" = getelementptr i8, i8* %"$msgobj_4395", i32 41 - %"$msgobj_fname_4406" = bitcast i8* %"$msgobj_fname_4405" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4404", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4406", align 8 - %"$msgobj_td_4407" = getelementptr i8, i8* %"$msgobj_4395", i32 57 - %"$msgobj_td_4408" = bitcast i8* %"$msgobj_td_4407" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_4408", align 8 - %"$msgobj_v_4409" = getelementptr i8, i8* %"$msgobj_4395", i32 65 - %"$msgobj_v_4410" = bitcast i8* %"$msgobj_v_4409" to [32 x i8]* - store [32 x i8] %node, [32 x i8]* %"$msgobj_v_4410", align 1 - %"$msgobj_fname_4412" = getelementptr i8, i8* %"$msgobj_4395", i32 97 - %"$msgobj_fname_4413" = bitcast i8* %"$msgobj_fname_4412" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4411", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4413", align 8 - %"$msgobj_td_4414" = getelementptr i8, i8* %"$msgobj_4395", i32 113 - %"$msgobj_td_4415" = bitcast i8* %"$msgobj_td_4414" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4415", align 8 - %"$msgobj_v_4416" = getelementptr i8, i8* %"$msgobj_4395", i32 121 - %"$msgobj_v_4417" = bitcast i8* %"$msgobj_v_4416" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_4417", align 1 - %"$msgobj_fname_4419" = getelementptr i8, i8* %"$msgobj_4395", i32 141 - %"$msgobj_fname_4420" = bitcast i8* %"$msgobj_fname_4419" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4418", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4420", align 8 - %"$msgobj_td_4421" = getelementptr i8, i8* %"$msgobj_4395", i32 157 - %"$msgobj_td_4422" = bitcast i8* %"$msgobj_td_4421" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_4422", align 8 - %"$msgobj_v_4423" = getelementptr i8, i8* %"$msgobj_4395", i32 165 - %"$msgobj_v_4424" = bitcast i8* %"$msgobj_v_4423" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4424", align 8 - %"$msgobj_fname_4426" = getelementptr i8, i8* %"$msgobj_4395", i32 181 - %"$msgobj_fname_4427" = bitcast i8* %"$msgobj_fname_4426" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4425", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4427", align 8 - %"$msgobj_td_4428" = getelementptr i8, i8* %"$msgobj_4395", i32 197 - %"$msgobj_td_4429" = bitcast i8* %"$msgobj_td_4428" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4429", align 8 - %"$msgobj_v_4430" = getelementptr i8, i8* %"$msgobj_4395", i32 205 - %"$msgobj_v_4431" = bitcast i8* %"$msgobj_v_4430" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4431", align 1 - store i8* %"$msgobj_4395", i8** %"$m_1", align 8 - %"$gasrem_4433" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4434" = icmp ugt i64 1, %"$gasrem_4433" - br i1 %"$gascmp_4434", label %"$out_of_gas_4435", label %"$have_gas_4436" - -"$out_of_gas_4435": ; preds = %"$have_gas_4393" - call void @_out_of_gas() - br label %"$have_gas_4436" - -"$have_gas_4436": ; preds = %"$out_of_gas_4435", %"$have_gas_4393" - %"$consume_4437" = sub i64 %"$gasrem_4433", 1 - store i64 %"$consume_4437", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_93" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_4438" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_4439" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4438", 0 - %"$ud-registry.oneMsg_envptr_4440" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4438", 1 - %"$$m_1_4441" = load i8*, i8** %"$m_1", align 8 - %"$ud-registry.oneMsg_call_4442" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4439"(i8* %"$ud-registry.oneMsg_envptr_4440", i8* %"$$m_1_4441") - store %TName_List_Message* %"$ud-registry.oneMsg_call_4442", %TName_List_Message** %"$ud-registry.oneMsg_93", align 8 - %"$$ud-registry.oneMsg_93_4443" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_93", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_93_4443", %TName_List_Message** %msgs7, align 8 - %"$msgs_4444" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 - %"$$msgs_4444_4445" = bitcast %TName_List_Message* %"$msgs_4444" to i8* - %"$_literal_cost_call_4446" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_4444_4445") - %"$gasrem_4447" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4448" = icmp ugt i64 %"$_literal_cost_call_4446", %"$gasrem_4447" - br i1 %"$gascmp_4448", label %"$out_of_gas_4449", label %"$have_gas_4450" - -"$out_of_gas_4449": ; preds = %"$have_gas_4436" - call void @_out_of_gas() - br label %"$have_gas_4450" - -"$have_gas_4450": ; preds = %"$out_of_gas_4449", %"$have_gas_4436" - %"$consume_4451" = sub i64 %"$gasrem_4447", %"$_literal_cost_call_4446" - store i64 %"$consume_4451", i64* @_gasrem, align 8 - %"$execptr_load_4452" = load i8*, i8** @_execptr, align 8 - %"$msgs_4453" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 - call void @_send(i8* %"$execptr_load_4452", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_4453") - br label %"$matchsucc_4183" - -"$empty_default_4187": ; preds = %"$have_gas_4181" - br label %"$matchsucc_4183" - -"$matchsucc_4183": ; preds = %"$have_gas_4450", %"$have_gas_4337", %"$empty_default_4187" + %"$gasrem_3828" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3829" = icmp ugt i64 1, %"$gasrem_3828" + br i1 %"$gascmp_3829", label %"$out_of_gas_3830", label %"$have_gas_3831" + +"$out_of_gas_3830": ; preds = %"$have_gas_3826" + call void @_out_of_gas() + br label %"$have_gas_3831" + +"$have_gas_3831": ; preds = %"$out_of_gas_3830", %"$have_gas_3826" + %"$consume_3832" = sub i64 %"$gasrem_3828", 1 + store i64 %"$consume_3832", i64* @_gasrem, align 8 + %"$msgobj_3833_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_3833_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_3833_salloc_load", i64 225) + %"$msgobj_3833_salloc" = bitcast i8* %"$msgobj_3833_salloc_salloc" to [225 x i8]* + %"$msgobj_3833" = bitcast [225 x i8]* %"$msgobj_3833_salloc" to i8* + store i8 5, i8* %"$msgobj_3833", align 1 + %"$msgobj_fname_3835" = getelementptr i8, i8* %"$msgobj_3833", i32 1 + %"$msgobj_fname_3836" = bitcast i8* %"$msgobj_fname_3835" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3834", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3836", align 8 + %"$msgobj_td_3837" = getelementptr i8, i8* %"$msgobj_3833", i32 17 + %"$msgobj_td_3838" = bitcast i8* %"$msgobj_td_3837" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_3838", align 8 + %"$msgobj_v_3840" = getelementptr i8, i8* %"$msgobj_3833", i32 25 + %"$msgobj_v_3841" = bitcast i8* %"$msgobj_v_3840" to %String* + store %String { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"$stringlit_3839", i32 0, i32 0), i32 17 }, %String* %"$msgobj_v_3841", align 8 + %"$msgobj_fname_3843" = getelementptr i8, i8* %"$msgobj_3833", i32 41 + %"$msgobj_fname_3844" = bitcast i8* %"$msgobj_fname_3843" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_3842", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_3844", align 8 + %"$msgobj_td_3845" = getelementptr i8, i8* %"$msgobj_3833", i32 57 + %"$msgobj_td_3846" = bitcast i8* %"$msgobj_td_3845" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_3846", align 8 + %"$msgobj_v_3847" = getelementptr i8, i8* %"$msgobj_3833", i32 65 + %"$msgobj_v_3848" = bitcast i8* %"$msgobj_v_3847" to [32 x i8]* + store [32 x i8] %node, [32 x i8]* %"$msgobj_v_3848", align 1 + %"$msgobj_fname_3850" = getelementptr i8, i8* %"$msgobj_3833", i32 97 + %"$msgobj_fname_3851" = bitcast i8* %"$msgobj_fname_3850" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_3849", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_3851", align 8 + %"$msgobj_td_3852" = getelementptr i8, i8* %"$msgobj_3833", i32 113 + %"$msgobj_td_3853" = bitcast i8* %"$msgobj_td_3852" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3853", align 8 + %"$msgobj_v_3854" = getelementptr i8, i8* %"$msgobj_3833", i32 121 + %"$msgobj_v_3855" = bitcast i8* %"$msgobj_v_3854" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_3855", align 1 + %"$msgobj_fname_3857" = getelementptr i8, i8* %"$msgobj_3833", i32 141 + %"$msgobj_fname_3858" = bitcast i8* %"$msgobj_fname_3857" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_3856", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_3858", align 8 + %"$msgobj_td_3859" = getelementptr i8, i8* %"$msgobj_3833", i32 157 + %"$msgobj_td_3860" = bitcast i8* %"$msgobj_td_3859" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_3860", align 8 + %"$msgobj_v_3861" = getelementptr i8, i8* %"$msgobj_3833", i32 165 + %"$msgobj_v_3862" = bitcast i8* %"$msgobj_v_3861" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_3862", align 8 + %"$msgobj_fname_3864" = getelementptr i8, i8* %"$msgobj_3833", i32 181 + %"$msgobj_fname_3865" = bitcast i8* %"$msgobj_fname_3864" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_3863", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_3865", align 8 + %"$msgobj_td_3866" = getelementptr i8, i8* %"$msgobj_3833", i32 197 + %"$msgobj_td_3867" = bitcast i8* %"$msgobj_td_3866" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_3867", align 8 + %"$msgobj_v_3868" = getelementptr i8, i8* %"$msgobj_3833", i32 205 + %"$msgobj_v_3869" = bitcast i8* %"$msgobj_v_3868" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_3869", align 1 + store i8* %"$msgobj_3833", i8** %"$m_1", align 8 + %"$gasrem_3871" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3872" = icmp ugt i64 1, %"$gasrem_3871" + br i1 %"$gascmp_3872", label %"$out_of_gas_3873", label %"$have_gas_3874" + +"$out_of_gas_3873": ; preds = %"$have_gas_3831" + call void @_out_of_gas() + br label %"$have_gas_3874" + +"$have_gas_3874": ; preds = %"$out_of_gas_3873", %"$have_gas_3831" + %"$consume_3875" = sub i64 %"$gasrem_3871", 1 + store i64 %"$consume_3875", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_51" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_3876" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_3877" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3876", 0 + %"$ud-registry.oneMsg_envptr_3878" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_3876", 1 + %"$$m_1_3879" = load i8*, i8** %"$m_1", align 8 + %"$ud-registry.oneMsg_call_3880" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_3877"(i8* %"$ud-registry.oneMsg_envptr_3878", i8* %"$$m_1_3879") + store %TName_List_Message* %"$ud-registry.oneMsg_call_3880", %TName_List_Message** %"$ud-registry.oneMsg_51", align 8 + %"$$ud-registry.oneMsg_51_3881" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_51", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_51_3881", %TName_List_Message** %msgs7, align 8 + %"$msgs_3882" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 + %"$$msgs_3882_3883" = bitcast %TName_List_Message* %"$msgs_3882" to i8* + %"$_literal_cost_call_3884" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_3882_3883") + %"$gasrem_3885" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3886" = icmp ugt i64 %"$_literal_cost_call_3884", %"$gasrem_3885" + br i1 %"$gascmp_3886", label %"$out_of_gas_3887", label %"$have_gas_3888" + +"$out_of_gas_3887": ; preds = %"$have_gas_3874" + call void @_out_of_gas() + br label %"$have_gas_3888" + +"$have_gas_3888": ; preds = %"$out_of_gas_3887", %"$have_gas_3874" + %"$consume_3889" = sub i64 %"$gasrem_3885", %"$_literal_cost_call_3884" + store i64 %"$consume_3889", i64* @_gasrem, align 8 + %"$execptr_load_3890" = load i8*, i8** @_execptr, align 8 + %"$msgs_3891" = load %TName_List_Message*, %TName_List_Message** %msgs7, align 8 + call void @_send(i8* %"$execptr_load_3890", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_3891") + br label %"$matchsucc_3630" + +"$empty_default_3634": ; preds = %"$have_gas_3628" + br label %"$matchsucc_3630" + +"$matchsucc_3630": ; preds = %"$have_gas_3888", %"$have_gas_3775", %"$empty_default_3634" ret void } define void @transfer(i8* %0) { entry: - %"$_amount_4455" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4456" = bitcast i8* %"$_amount_4455" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4456", align 8 - %"$_origin_4457" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4458" = bitcast i8* %"$_origin_4457" to [20 x i8]* - %"$_sender_4459" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4460" = bitcast i8* %"$_sender_4459" to [20 x i8]* - %"$node_4461" = getelementptr i8, i8* %0, i32 56 - %"$node_4462" = bitcast i8* %"$node_4461" to [32 x i8]* - %"$owner_4463" = getelementptr i8, i8* %0, i32 88 - %"$owner_4464" = bitcast i8* %"$owner_4463" to [20 x i8]* - call void @"$transfer_4075"(%Uint128 %_amount, [20 x i8]* %"$_origin_4458", [20 x i8]* %"$_sender_4460", [32 x i8]* %"$node_4462", [20 x i8]* %"$owner_4464") + %"$_amount_3893" = getelementptr i8, i8* %0, i32 0 + %"$_amount_3894" = bitcast i8* %"$_amount_3893" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_3894", align 8 + %"$_origin_3895" = getelementptr i8, i8* %0, i32 16 + %"$_origin_3896" = bitcast i8* %"$_origin_3895" to [20 x i8]* + %"$_sender_3897" = getelementptr i8, i8* %0, i32 36 + %"$_sender_3898" = bitcast i8* %"$_sender_3897" to [20 x i8]* + %"$node_3899" = getelementptr i8, i8* %0, i32 56 + %"$node_3900" = bitcast i8* %"$node_3899" to [32 x i8]* + %"$owner_3901" = getelementptr i8, i8* %0, i32 88 + %"$owner_3902" = bitcast i8* %"$owner_3901" to [20 x i8]* + call void @"$transfer_3535"(%Uint128 %_amount, [20 x i8]* %"$_origin_3896", [20 x i8]* %"$_sender_3898", [32 x i8]* %"$node_3900", [20 x i8]* %"$owner_3902") ret void } -define internal void @"$assign_4465"(%Uint128 %_amount, [20 x i8]* %"$_origin_4466", [20 x i8]* %"$_sender_4467", [32 x i8]* %"$parent_4468", %String %label, [20 x i8]* %"$owner_4469") { +define internal void @"$assign_3903"(%Uint128 %_amount, [20 x i8]* %"$_origin_3904", [20 x i8]* %"$_sender_3905", [32 x i8]* %"$parent_3906", %String %label, [20 x i8]* %"$owner_3907") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4466", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4467", align 1 - %parent = load [32 x i8], [32 x i8]* %"$parent_4468", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_4469", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_3904", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_3905", align 1 + %parent = load [32 x i8], [32 x i8]* %"$parent_3906", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_3907", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_4470_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4470_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4470_salloc_load", i64 32) - %"$indices_buf_4470_salloc" = bitcast i8* %"$indices_buf_4470_salloc_salloc" to [32 x i8]* - %"$indices_buf_4470" = bitcast [32 x i8]* %"$indices_buf_4470_salloc" to i8* - %"$indices_gep_4471" = getelementptr i8, i8* %"$indices_buf_4470", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4471" to [32 x i8]* + %"$indices_buf_3908_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3908_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3908_salloc_load", i64 32) + %"$indices_buf_3908_salloc" = bitcast i8* %"$indices_buf_3908_salloc_salloc" to [32 x i8]* + %"$indices_buf_3908" = bitcast [32 x i8]* %"$indices_buf_3908_salloc" to i8* + %"$indices_gep_3909" = getelementptr i8, i8* %"$indices_buf_3908", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_3909" to [32 x i8]* store [32 x i8] %parent, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_4473" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_4474" = call i8* @_fetch_field(i8* %"$execptr_load_4473", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4472", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4470", i32 1) - %"$maybeRecord_4475" = bitcast i8* %"$maybeRecord_call_4474" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_4475", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_4476" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_4476_4477" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_4476" to i8* - %"$_literal_cost_call_4478" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_4476_4477") - %"$gasadd_4479" = add i64 %"$_literal_cost_call_4478", 0 - %"$gasadd_4480" = add i64 %"$gasadd_4479", 1 - %"$gasrem_4481" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4482" = icmp ugt i64 %"$gasadd_4480", %"$gasrem_4481" - br i1 %"$gascmp_4482", label %"$out_of_gas_4483", label %"$have_gas_4484" - -"$out_of_gas_4483": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4484" - -"$have_gas_4484": ; preds = %"$out_of_gas_4483", %entry - %"$consume_4485" = sub i64 %"$gasrem_4481", %"$gasadd_4480" - store i64 %"$consume_4485", i64* @_gasrem, align 8 + %"$execptr_load_3911" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_3912" = call i8* @_fetch_field(i8* %"$execptr_load_3911", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_3910", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_3908", i32 1) + %"$maybeRecord_3913" = bitcast i8* %"$maybeRecord_call_3912" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_3913", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_3914" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_3914_3915" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_3914" to i8* + %"$_literal_cost_call_3916" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_3914_3915") + %"$gasadd_3917" = add i64 %"$_literal_cost_call_3916", 0 + %"$gasadd_3918" = add i64 %"$gasadd_3917", 1 + %"$gasrem_3919" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3920" = icmp ugt i64 %"$gasadd_3918", %"$gasrem_3919" + br i1 %"$gascmp_3920", label %"$out_of_gas_3921", label %"$have_gas_3922" + +"$out_of_gas_3921": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_3922" + +"$have_gas_3922": ; preds = %"$out_of_gas_3921", %entry + %"$consume_3923" = sub i64 %"$gasrem_3919", %"$gasadd_3918" + store i64 %"$consume_3923", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_4486_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4486_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4486_salloc_load", i64 32) - %"$indices_buf_4486_salloc" = bitcast i8* %"$indices_buf_4486_salloc_salloc" to [32 x i8]* - %"$indices_buf_4486" = bitcast [32 x i8]* %"$indices_buf_4486_salloc" to i8* - %"$indices_gep_4487" = getelementptr i8, i8* %"$indices_buf_4486", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_4487" to [32 x i8]* + %"$indices_buf_3924_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3924_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3924_salloc_load", i64 32) + %"$indices_buf_3924_salloc" = bitcast i8* %"$indices_buf_3924_salloc_salloc" to [32 x i8]* + %"$indices_buf_3924" = bitcast [32 x i8]* %"$indices_buf_3924_salloc" to i8* + %"$indices_gep_3925" = getelementptr i8, i8* %"$indices_buf_3924", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_3925" to [32 x i8]* store [32 x i8] %parent, [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_4489" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_4490" = call i8* @_fetch_field(i8* %"$execptr_load_4489", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4488", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_4486", i32 1) - %"$maybeApproved_4491" = bitcast i8* %"$maybeApproved_call_4490" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_4491", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_4492" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_4492_4493" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4492" to i8* - %"$_literal_cost_call_4494" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_4492_4493") - %"$gasadd_4495" = add i64 %"$_literal_cost_call_4494", 0 - %"$gasadd_4496" = add i64 %"$gasadd_4495", 1 - %"$gasrem_4497" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4498" = icmp ugt i64 %"$gasadd_4496", %"$gasrem_4497" - br i1 %"$gascmp_4498", label %"$out_of_gas_4499", label %"$have_gas_4500" - -"$out_of_gas_4499": ; preds = %"$have_gas_4484" - call void @_out_of_gas() - br label %"$have_gas_4500" - -"$have_gas_4500": ; preds = %"$out_of_gas_4499", %"$have_gas_4484" - %"$consume_4501" = sub i64 %"$gasrem_4497", %"$gasadd_4496" - store i64 %"$consume_4501", i64* @_gasrem, align 8 - %"$gasrem_4502" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4503" = icmp ugt i64 1, %"$gasrem_4502" - br i1 %"$gascmp_4503", label %"$out_of_gas_4504", label %"$have_gas_4505" - -"$out_of_gas_4504": ; preds = %"$have_gas_4500" - call void @_out_of_gas() - br label %"$have_gas_4505" - -"$have_gas_4505": ; preds = %"$out_of_gas_4504", %"$have_gas_4500" - %"$consume_4506" = sub i64 %"$gasrem_4502", 1 - store i64 %"$consume_4506", i64* @_gasrem, align 8 + %"$execptr_load_3927" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_3928" = call i8* @_fetch_field(i8* %"$execptr_load_3927", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_3926", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_3924", i32 1) + %"$maybeApproved_3929" = bitcast i8* %"$maybeApproved_call_3928" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_3929", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_3930" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_3930_3931" = bitcast %TName_Option_ByStr20* %"$maybeApproved_3930" to i8* + %"$_literal_cost_call_3932" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_3930_3931") + %"$gasadd_3933" = add i64 %"$_literal_cost_call_3932", 0 + %"$gasadd_3934" = add i64 %"$gasadd_3933", 1 + %"$gasrem_3935" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3936" = icmp ugt i64 %"$gasadd_3934", %"$gasrem_3935" + br i1 %"$gascmp_3936", label %"$out_of_gas_3937", label %"$have_gas_3938" + +"$out_of_gas_3937": ; preds = %"$have_gas_3922" + call void @_out_of_gas() + br label %"$have_gas_3938" + +"$have_gas_3938": ; preds = %"$out_of_gas_3937", %"$have_gas_3922" + %"$consume_3939" = sub i64 %"$gasrem_3935", %"$gasadd_3934" + store i64 %"$consume_3939", i64* @_gasrem, align 8 + %"$gasrem_3940" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3941" = icmp ugt i64 1, %"$gasrem_3940" + br i1 %"$gascmp_3941", label %"$out_of_gas_3942", label %"$have_gas_3943" + +"$out_of_gas_3942": ; preds = %"$have_gas_3938" + call void @_out_of_gas() + br label %"$have_gas_3943" + +"$have_gas_3943": ; preds = %"$out_of_gas_3942", %"$have_gas_3938" + %"$consume_3944" = sub i64 %"$gasrem_3940", 1 + store i64 %"$consume_3944", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_4507" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4508" = icmp ugt i64 1, %"$gasrem_4507" - br i1 %"$gascmp_4508", label %"$out_of_gas_4509", label %"$have_gas_4510" - -"$out_of_gas_4509": ; preds = %"$have_gas_4505" - call void @_out_of_gas() - br label %"$have_gas_4510" - -"$have_gas_4510": ; preds = %"$out_of_gas_4509", %"$have_gas_4505" - %"$consume_4511" = sub i64 %"$gasrem_4507", 1 - store i64 %"$consume_4511", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_114" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_4512" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_4513" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4512", 0 - %"$ud-registry.recordMemberOwner_envptr_4514" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4512", 1 - %"$maybeRecord_4515" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_4516" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_4513"(i8* %"$ud-registry.recordMemberOwner_envptr_4514", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4516", %TName_Option_ud-registry.Record* %"$maybeRecord_4515") - %"$ud-registry.recordMemberOwner_ret_4517" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4516", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_4517", [20 x i8]* %"$ud-registry.recordMemberOwner_114", align 1 - %"$$ud-registry.recordMemberOwner_114_4518" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_114", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_114_4518", [20 x i8]* %recordOwner, align 1 - %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 - %"$indices_buf_4519_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4519_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4519_salloc_load", i64 20) - %"$indices_buf_4519_salloc" = bitcast i8* %"$indices_buf_4519_salloc_salloc" to [20 x i8]* - %"$indices_buf_4519" = bitcast [20 x i8]* %"$indices_buf_4519_salloc" to i8* - %"$recordOwner_4520" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$indices_gep_4521" = getelementptr i8, i8* %"$indices_buf_4519", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_4521" to [20 x i8]* - store [20 x i8] %"$recordOwner_4520", [20 x i8]* %indices_cast2, align 1 - %"$execptr_load_4523" = load i8*, i8** @_execptr, align 8 - %"$maybeOperators_call_4524" = call i8* @_fetch_field(i8* %"$execptr_load_4523", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_4522", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_323", i32 1, i8* %"$indices_buf_4519", i32 1) - %"$maybeOperators_4525" = bitcast i8* %"$maybeOperators_call_4524" to %"TName_Option_List_(ByStr20)"* - store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4525", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$maybeOperators_4526" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$maybeOperators_4526_4527" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4526" to i8* - %"$_literal_cost_call_4528" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_315", i8* %"$$maybeOperators_4526_4527") - %"$gasadd_4529" = add i64 %"$_literal_cost_call_4528", 0 - %"$gasadd_4530" = add i64 %"$gasadd_4529", 1 - %"$gasrem_4531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4532" = icmp ugt i64 %"$gasadd_4530", %"$gasrem_4531" - br i1 %"$gascmp_4532", label %"$out_of_gas_4533", label %"$have_gas_4534" - -"$out_of_gas_4533": ; preds = %"$have_gas_4510" - call void @_out_of_gas() - br label %"$have_gas_4534" - -"$have_gas_4534": ; preds = %"$out_of_gas_4533", %"$have_gas_4510" - %"$consume_4535" = sub i64 %"$gasrem_4531", %"$gasadd_4530" - store i64 %"$consume_4535", i64* @_gasrem, align 8 - %"$gasrem_4536" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4537" = icmp ugt i64 1, %"$gasrem_4536" - br i1 %"$gascmp_4537", label %"$out_of_gas_4538", label %"$have_gas_4539" + %"$gasrem_3945" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3946" = icmp ugt i64 1, %"$gasrem_3945" + br i1 %"$gascmp_3946", label %"$out_of_gas_3947", label %"$have_gas_3948" -"$out_of_gas_4538": ; preds = %"$have_gas_4534" +"$out_of_gas_3947": ; preds = %"$have_gas_3943" call void @_out_of_gas() - br label %"$have_gas_4539" + br label %"$have_gas_3948" -"$have_gas_4539": ; preds = %"$out_of_gas_4538", %"$have_gas_4534" - %"$consume_4540" = sub i64 %"$gasrem_4536", 1 - store i64 %"$consume_4540", i64* @_gasrem, align 8 +"$have_gas_3948": ; preds = %"$out_of_gas_3947", %"$have_gas_3943" + %"$consume_3949" = sub i64 %"$gasrem_3945", 1 + store i64 %"$consume_3949", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_52" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_3950" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_3951" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3950", 0 + %"$ud-registry.recordMemberOwner_envptr_3952" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_3950", 1 + %"$maybeRecord_3953" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_3954" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_3951"(i8* %"$ud-registry.recordMemberOwner_envptr_3952", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3954", %TName_Option_ud-registry.Record* %"$maybeRecord_3953") + %"$ud-registry.recordMemberOwner_ret_3955" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_3954", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_3955", [20 x i8]* %"$ud-registry.recordMemberOwner_52", align 1 + %"$$ud-registry.recordMemberOwner_52_3956" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_52", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_52_3956", [20 x i8]* %recordOwner, align 1 + %maybeOperators = alloca %"TName_Option_List_(ByStr20)"*, align 8 + %"$indices_buf_3957_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_3957_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_3957_salloc_load", i64 20) + %"$indices_buf_3957_salloc" = bitcast i8* %"$indices_buf_3957_salloc_salloc" to [20 x i8]* + %"$indices_buf_3957" = bitcast [20 x i8]* %"$indices_buf_3957_salloc" to i8* + %"$recordOwner_3958" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$indices_gep_3959" = getelementptr i8, i8* %"$indices_buf_3957", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_3959" to [20 x i8]* + store [20 x i8] %"$recordOwner_3958", [20 x i8]* %indices_cast2, align 1 + %"$execptr_load_3961" = load i8*, i8** @_execptr, align 8 + %"$maybeOperators_call_3962" = call i8* @_fetch_field(i8* %"$execptr_load_3961", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$operators_3960", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_206", i32 1, i8* %"$indices_buf_3957", i32 1) + %"$maybeOperators_3963" = bitcast i8* %"$maybeOperators_call_3962" to %"TName_Option_List_(ByStr20)"* + store %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3963", %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$maybeOperators_3964" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$$maybeOperators_3964_3965" = bitcast %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3964" to i8* + %"$_literal_cost_call_3966" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_List_(ByStr20)_198", i8* %"$$maybeOperators_3964_3965") + %"$gasadd_3967" = add i64 %"$_literal_cost_call_3966", 0 + %"$gasadd_3968" = add i64 %"$gasadd_3967", 1 + %"$gasrem_3969" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3970" = icmp ugt i64 %"$gasadd_3968", %"$gasrem_3969" + br i1 %"$gascmp_3970", label %"$out_of_gas_3971", label %"$have_gas_3972" + +"$out_of_gas_3971": ; preds = %"$have_gas_3948" + call void @_out_of_gas() + br label %"$have_gas_3972" + +"$have_gas_3972": ; preds = %"$out_of_gas_3971", %"$have_gas_3948" + %"$consume_3973" = sub i64 %"$gasrem_3969", %"$gasadd_3968" + store i64 %"$consume_3973", i64* @_gasrem, align 8 + %"$gasrem_3974" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3975" = icmp ugt i64 1, %"$gasrem_3974" + br i1 %"$gascmp_3975", label %"$out_of_gas_3976", label %"$have_gas_3977" + +"$out_of_gas_3976": ; preds = %"$have_gas_3972" + call void @_out_of_gas() + br label %"$have_gas_3977" + +"$have_gas_3977": ; preds = %"$out_of_gas_3976", %"$have_gas_3972" + %"$consume_3978" = sub i64 %"$gasrem_3974", 1 + store i64 %"$consume_3978", i64* @_gasrem, align 8 %isSenderOAO = alloca %TName_Bool*, align 8 - %"$gasrem_4541" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4542" = icmp ugt i64 1, %"$gasrem_4541" - br i1 %"$gascmp_4542", label %"$out_of_gas_4543", label %"$have_gas_4544" + %"$gasrem_3979" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3980" = icmp ugt i64 1, %"$gasrem_3979" + br i1 %"$gascmp_3980", label %"$out_of_gas_3981", label %"$have_gas_3982" + +"$out_of_gas_3981": ; preds = %"$have_gas_3977" + call void @_out_of_gas() + br label %"$have_gas_3982" + +"$have_gas_3982": ; preds = %"$out_of_gas_3981", %"$have_gas_3977" + %"$consume_3983" = sub i64 %"$gasrem_3979", 1 + store i64 %"$consume_3983", i64* @_gasrem, align 8 + %"$ud-registry.getIsOAO_3984" = load { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* }* @ud-registry.getIsOAO, align 8 + %"$ud-registry.getIsOAO_fptr_3985" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3984", 0 + %"$ud-registry.getIsOAO_envptr_3986" = extractvalue { %TName_Bool* (i8*, [20 x i8]*, [20 x i8]*, %TName_Option_ByStr20*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$ud-registry.getIsOAO_3984", 1 + %"$ud-registry.getIsOAO__sender_3987" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_3987", align 1 + %"$ud-registry.getIsOAO_recordOwner_3988" = alloca [20 x i8], align 1 + %"$recordOwner_3989" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_3989", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3988", align 1 + %"$maybeApproved_3990" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeOperators_3991" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 + %"$ud-registry.getIsOAO_call_3992" = call %TName_Bool* %"$ud-registry.getIsOAO_fptr_3985"(i8* %"$ud-registry.getIsOAO_envptr_3986", [20 x i8]* %"$ud-registry.getIsOAO__sender_3987", [20 x i8]* %"$ud-registry.getIsOAO_recordOwner_3988", %TName_Option_ByStr20* %"$maybeApproved_3990", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_3991") + store %TName_Bool* %"$ud-registry.getIsOAO_call_3992", %TName_Bool** %isSenderOAO, align 8 + %"$gasrem_3993" = load i64, i64* @_gasrem, align 8 + %"$gascmp_3994" = icmp ugt i64 2, %"$gasrem_3993" + br i1 %"$gascmp_3994", label %"$out_of_gas_3995", label %"$have_gas_3996" -"$out_of_gas_4543": ; preds = %"$have_gas_4539" +"$out_of_gas_3995": ; preds = %"$have_gas_3982" call void @_out_of_gas() - br label %"$have_gas_4544" + br label %"$have_gas_3996" -"$have_gas_4544": ; preds = %"$out_of_gas_4543", %"$have_gas_4539" - %"$consume_4545" = sub i64 %"$gasrem_4541", 1 - store i64 %"$consume_4545", i64* @_gasrem, align 8 - %"$ud-registry.getIsOAO_110" = alloca { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.getIsOAO_4546" = load { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* @ud-registry.getIsOAO, align 8 - %"$ud-registry.getIsOAO_fptr_4547" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_4546", 0 - %"$ud-registry.getIsOAO_envptr_4548" = extractvalue { { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_4546", 1 - %"$ud-registry.getIsOAO__sender_4549" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.getIsOAO__sender_4549", align 1 - %"$ud-registry.getIsOAO_call_4550" = call { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_fptr_4547"(i8* %"$ud-registry.getIsOAO_envptr_4548", [20 x i8]* %"$ud-registry.getIsOAO__sender_4549") - store { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.getIsOAO_call_4550", { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_110", align 8 - %"$ud-registry.getIsOAO_111" = alloca { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_110_4551" = load { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.getIsOAO_110", align 8 - %"$$ud-registry.getIsOAO_110_fptr_4552" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_110_4551", 0 - %"$$ud-registry.getIsOAO_110_envptr_4553" = extractvalue { { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.getIsOAO_110_4551", 1 - %"$$ud-registry.getIsOAO_110_recordOwner_4554" = alloca [20 x i8], align 1 - %"$recordOwner_4555" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_4555", [20 x i8]* %"$$ud-registry.getIsOAO_110_recordOwner_4554", align 1 - %"$$ud-registry.getIsOAO_110_call_4556" = call { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_110_fptr_4552"(i8* %"$$ud-registry.getIsOAO_110_envptr_4553", [20 x i8]* %"$$ud-registry.getIsOAO_110_recordOwner_4554") - store { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_110_call_4556", { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_111", align 8 - %"$ud-registry.getIsOAO_112" = alloca { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, align 8 - %"$$ud-registry.getIsOAO_111_4557" = load { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* }* %"$ud-registry.getIsOAO_111", align 8 - %"$$ud-registry.getIsOAO_111_fptr_4558" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_111_4557", 0 - %"$$ud-registry.getIsOAO_111_envptr_4559" = extractvalue { { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } (i8*, %TName_Option_ByStr20*)*, i8* } %"$$ud-registry.getIsOAO_111_4557", 1 - %"$maybeApproved_4560" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$ud-registry.getIsOAO_111_call_4561" = call { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_111_fptr_4558"(i8* %"$$ud-registry.getIsOAO_111_envptr_4559", %TName_Option_ByStr20* %"$maybeApproved_4560") - store { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_111_call_4561", { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_112", align 8 - %"$ud-registry.getIsOAO_113" = alloca %TName_Bool*, align 8 - %"$$ud-registry.getIsOAO_112_4562" = load { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }, { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* }* %"$ud-registry.getIsOAO_112", align 8 - %"$$ud-registry.getIsOAO_112_fptr_4563" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_112_4562", 0 - %"$$ud-registry.getIsOAO_112_envptr_4564" = extractvalue { %TName_Bool* (i8*, %"TName_Option_List_(ByStr20)"*)*, i8* } %"$$ud-registry.getIsOAO_112_4562", 1 - %"$maybeOperators_4565" = load %"TName_Option_List_(ByStr20)"*, %"TName_Option_List_(ByStr20)"** %maybeOperators, align 8 - %"$$ud-registry.getIsOAO_112_call_4566" = call %TName_Bool* %"$$ud-registry.getIsOAO_112_fptr_4563"(i8* %"$$ud-registry.getIsOAO_112_envptr_4564", %"TName_Option_List_(ByStr20)"* %"$maybeOperators_4565") - store %TName_Bool* %"$$ud-registry.getIsOAO_112_call_4566", %TName_Bool** %"$ud-registry.getIsOAO_113", align 8 - %"$$ud-registry.getIsOAO_113_4567" = load %TName_Bool*, %TName_Bool** %"$ud-registry.getIsOAO_113", align 8 - store %TName_Bool* %"$$ud-registry.getIsOAO_113_4567", %TName_Bool** %isSenderOAO, align 8 - %"$gasrem_4568" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4569" = icmp ugt i64 2, %"$gasrem_4568" - br i1 %"$gascmp_4569", label %"$out_of_gas_4570", label %"$have_gas_4571" - -"$out_of_gas_4570": ; preds = %"$have_gas_4544" - call void @_out_of_gas() - br label %"$have_gas_4571" - -"$have_gas_4571": ; preds = %"$out_of_gas_4570", %"$have_gas_4544" - %"$consume_4572" = sub i64 %"$gasrem_4568", 2 - store i64 %"$consume_4572", i64* @_gasrem, align 8 - %"$isSenderOAO_4574" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 - %"$isSenderOAO_tag_4575" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_4574", i32 0, i32 0 - %"$isSenderOAO_tag_4576" = load i8, i8* %"$isSenderOAO_tag_4575", align 1 - switch i8 %"$isSenderOAO_tag_4576", label %"$empty_default_4577" [ - i8 0, label %"$True_4578" - i8 1, label %"$False_4821" +"$have_gas_3996": ; preds = %"$out_of_gas_3995", %"$have_gas_3982" + %"$consume_3997" = sub i64 %"$gasrem_3993", 2 + store i64 %"$consume_3997", i64* @_gasrem, align 8 + %"$isSenderOAO_3999" = load %TName_Bool*, %TName_Bool** %isSenderOAO, align 8 + %"$isSenderOAO_tag_4000" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isSenderOAO_3999", i32 0, i32 0 + %"$isSenderOAO_tag_4001" = load i8, i8* %"$isSenderOAO_tag_4000", align 1 + switch i8 %"$isSenderOAO_tag_4001", label %"$empty_default_4002" [ + i8 0, label %"$True_4003" + i8 1, label %"$False_4227" ] -"$True_4578": ; preds = %"$have_gas_4571" - %"$isSenderOAO_4579" = bitcast %TName_Bool* %"$isSenderOAO_4574" to %CName_True* - %"$gasrem_4580" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4581" = icmp ugt i64 1, %"$gasrem_4580" - br i1 %"$gascmp_4581", label %"$out_of_gas_4582", label %"$have_gas_4583" +"$True_4003": ; preds = %"$have_gas_3996" + %"$isSenderOAO_4004" = bitcast %TName_Bool* %"$isSenderOAO_3999" to %CName_True* + %"$gasrem_4005" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4006" = icmp ugt i64 1, %"$gasrem_4005" + br i1 %"$gascmp_4006", label %"$out_of_gas_4007", label %"$have_gas_4008" -"$out_of_gas_4582": ; preds = %"$True_4578" +"$out_of_gas_4007": ; preds = %"$True_4003" call void @_out_of_gas() - br label %"$have_gas_4583" + br label %"$have_gas_4008" -"$have_gas_4583": ; preds = %"$out_of_gas_4582", %"$True_4578" - %"$consume_4584" = sub i64 %"$gasrem_4580", 1 - store i64 %"$consume_4584", i64* @_gasrem, align 8 +"$have_gas_4008": ; preds = %"$out_of_gas_4007", %"$True_4003" + %"$consume_4009" = sub i64 %"$gasrem_4005", 1 + store i64 %"$consume_4009", i64* @_gasrem, align 8 %node = alloca [32 x i8], align 1 - %"$gasrem_4585" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4586" = icmp ugt i64 1, %"$gasrem_4585" - br i1 %"$gascmp_4586", label %"$out_of_gas_4587", label %"$have_gas_4588" - -"$out_of_gas_4587": ; preds = %"$have_gas_4583" - call void @_out_of_gas() - br label %"$have_gas_4588" - -"$have_gas_4588": ; preds = %"$out_of_gas_4587", %"$have_gas_4583" - %"$consume_4589" = sub i64 %"$gasrem_4585", 1 - store i64 %"$consume_4589", i64* @_gasrem, align 8 - %"$ud-registry.parentLabelToNode_106" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$ud-registry.parentLabelToNode_4590" = load { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.parentLabelToNode, align 8 - %"$ud-registry.parentLabelToNode_fptr_4591" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_4590", 0 - %"$ud-registry.parentLabelToNode_envptr_4592" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_4590", 1 - %"$ud-registry.parentLabelToNode_parent_4593" = alloca [32 x i8], align 1 - store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4593", align 1 - %"$ud-registry.parentLabelToNode_call_4594" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_4591"(i8* %"$ud-registry.parentLabelToNode_envptr_4592", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4593") - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_4594", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_106", align 8 - %"$ud-registry.parentLabelToNode_107" = alloca [32 x i8], align 1 - %"$$ud-registry.parentLabelToNode_106_4595" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_106", align 8 - %"$$ud-registry.parentLabelToNode_106_fptr_4596" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_106_4595", 0 - %"$$ud-registry.parentLabelToNode_106_envptr_4597" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_106_4595", 1 - %"$$ud-registry.parentLabelToNode_106_retalloca_4598" = alloca [32 x i8], align 1 - call void %"$$ud-registry.parentLabelToNode_106_fptr_4596"(i8* %"$$ud-registry.parentLabelToNode_106_envptr_4597", [32 x i8]* %"$$ud-registry.parentLabelToNode_106_retalloca_4598", %String %label) - %"$$ud-registry.parentLabelToNode_106_ret_4599" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_106_retalloca_4598", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_106_ret_4599", [32 x i8]* %"$ud-registry.parentLabelToNode_107", align 1 - %"$$ud-registry.parentLabelToNode_107_4600" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_107", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_107_4600", [32 x i8]* %node, align 1 + %"$gasrem_4010" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4011" = icmp ugt i64 1, %"$gasrem_4010" + br i1 %"$gascmp_4011", label %"$out_of_gas_4012", label %"$have_gas_4013" + +"$out_of_gas_4012": ; preds = %"$have_gas_4008" + call void @_out_of_gas() + br label %"$have_gas_4013" + +"$have_gas_4013": ; preds = %"$out_of_gas_4012", %"$have_gas_4008" + %"$consume_4014" = sub i64 %"$gasrem_4010", 1 + store i64 %"$consume_4014", i64* @_gasrem, align 8 + %"$ud-registry.parentLabelToNode_4015" = load { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }* @ud-registry.parentLabelToNode, align 8 + %"$ud-registry.parentLabelToNode_fptr_4016" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4015", 0 + %"$ud-registry.parentLabelToNode_envptr_4017" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4015", 1 + %"$ud-registry.parentLabelToNode_parent_4018" = alloca [32 x i8], align 1 + store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4018", align 1 + %"$ud-registry.parentLabelToNode_retalloca_4019" = alloca [32 x i8], align 1 + call void %"$ud-registry.parentLabelToNode_fptr_4016"(i8* %"$ud-registry.parentLabelToNode_envptr_4017", [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4019", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4018", %String %label) + %"$ud-registry.parentLabelToNode_ret_4020" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4019", align 1 + store [32 x i8] %"$ud-registry.parentLabelToNode_ret_4020", [32 x i8]* %node, align 1 %recordExists = alloca %TName_Bool*, align 8 - %"$indices_buf_4601_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4601_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4601_salloc_load", i64 32) - %"$indices_buf_4601_salloc" = bitcast i8* %"$indices_buf_4601_salloc_salloc" to [32 x i8]* - %"$indices_buf_4601" = bitcast [32 x i8]* %"$indices_buf_4601_salloc" to i8* - %"$node_4602" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_4603" = getelementptr i8, i8* %"$indices_buf_4601", i32 0 - %indices_cast3 = bitcast i8* %"$indices_gep_4603" to [32 x i8]* - store [32 x i8] %"$node_4602", [32 x i8]* %indices_cast3, align 1 - %"$execptr_load_4605" = load i8*, i8** @_execptr, align 8 - %"$recordExists_call_4606" = call i8* @_fetch_field(i8* %"$execptr_load_4605", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4604", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4601", i32 0) - %"$recordExists_4607" = bitcast i8* %"$recordExists_call_4606" to %TName_Bool* - store %TName_Bool* %"$recordExists_4607", %TName_Bool** %recordExists, align 8 - %"$recordExists_4608" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$$recordExists_4608_4609" = bitcast %TName_Bool* %"$recordExists_4608" to i8* - %"$_literal_cost_call_4610" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321", i8* %"$$recordExists_4608_4609") - %"$gasadd_4611" = add i64 %"$_literal_cost_call_4610", 0 - %"$gasadd_4612" = add i64 %"$gasadd_4611", 1 - %"$gasrem_4613" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4614" = icmp ugt i64 %"$gasadd_4612", %"$gasrem_4613" - br i1 %"$gascmp_4614", label %"$out_of_gas_4615", label %"$have_gas_4616" - -"$out_of_gas_4615": ; preds = %"$have_gas_4588" - call void @_out_of_gas() - br label %"$have_gas_4616" - -"$have_gas_4616": ; preds = %"$out_of_gas_4615", %"$have_gas_4588" - %"$consume_4617" = sub i64 %"$gasrem_4613", %"$gasadd_4612" - store i64 %"$consume_4617", i64* @_gasrem, align 8 - %"$gasrem_4618" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4619" = icmp ugt i64 2, %"$gasrem_4618" - br i1 %"$gascmp_4619", label %"$out_of_gas_4620", label %"$have_gas_4621" - -"$out_of_gas_4620": ; preds = %"$have_gas_4616" - call void @_out_of_gas() - br label %"$have_gas_4621" - -"$have_gas_4621": ; preds = %"$out_of_gas_4620", %"$have_gas_4616" - %"$consume_4622" = sub i64 %"$gasrem_4618", 2 - store i64 %"$consume_4622", i64* @_gasrem, align 8 - %"$recordExists_4624" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$recordExists_tag_4625" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_4624", i32 0, i32 0 - %"$recordExists_tag_4626" = load i8, i8* %"$recordExists_tag_4625", align 1 - switch i8 %"$recordExists_tag_4626", label %"$default_4627" [ - i8 1, label %"$False_4628" + %"$indices_buf_4021_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4021_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4021_salloc_load", i64 32) + %"$indices_buf_4021_salloc" = bitcast i8* %"$indices_buf_4021_salloc_salloc" to [32 x i8]* + %"$indices_buf_4021" = bitcast [32 x i8]* %"$indices_buf_4021_salloc" to i8* + %"$node_4022" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4023" = getelementptr i8, i8* %"$indices_buf_4021", i32 0 + %indices_cast3 = bitcast i8* %"$indices_gep_4023" to [32 x i8]* + store [32 x i8] %"$node_4022", [32 x i8]* %indices_cast3, align 1 + %"$execptr_load_4025" = load i8*, i8** @_execptr, align 8 + %"$recordExists_call_4026" = call i8* @_fetch_field(i8* %"$execptr_load_4025", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4024", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4021", i32 0) + %"$recordExists_4027" = bitcast i8* %"$recordExists_call_4026" to %TName_Bool* + store %TName_Bool* %"$recordExists_4027", %TName_Bool** %recordExists, align 8 + %"$recordExists_4028" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$$recordExists_4028_4029" = bitcast %TName_Bool* %"$recordExists_4028" to i8* + %"$_literal_cost_call_4030" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204", i8* %"$$recordExists_4028_4029") + %"$gasadd_4031" = add i64 %"$_literal_cost_call_4030", 0 + %"$gasadd_4032" = add i64 %"$gasadd_4031", 1 + %"$gasrem_4033" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4034" = icmp ugt i64 %"$gasadd_4032", %"$gasrem_4033" + br i1 %"$gascmp_4034", label %"$out_of_gas_4035", label %"$have_gas_4036" + +"$out_of_gas_4035": ; preds = %"$have_gas_4013" + call void @_out_of_gas() + br label %"$have_gas_4036" + +"$have_gas_4036": ; preds = %"$out_of_gas_4035", %"$have_gas_4013" + %"$consume_4037" = sub i64 %"$gasrem_4033", %"$gasadd_4032" + store i64 %"$consume_4037", i64* @_gasrem, align 8 + %"$gasrem_4038" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4039" = icmp ugt i64 2, %"$gasrem_4038" + br i1 %"$gascmp_4039", label %"$out_of_gas_4040", label %"$have_gas_4041" + +"$out_of_gas_4040": ; preds = %"$have_gas_4036" + call void @_out_of_gas() + br label %"$have_gas_4041" + +"$have_gas_4041": ; preds = %"$out_of_gas_4040", %"$have_gas_4036" + %"$consume_4042" = sub i64 %"$gasrem_4038", 2 + store i64 %"$consume_4042", i64* @_gasrem, align 8 + %"$recordExists_4044" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$recordExists_tag_4045" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_4044", i32 0, i32 0 + %"$recordExists_tag_4046" = load i8, i8* %"$recordExists_tag_4045", align 1 + switch i8 %"$recordExists_tag_4046", label %"$default_4047" [ + i8 1, label %"$False_4048" ] -"$False_4628": ; preds = %"$have_gas_4621" - %"$recordExists_4629" = bitcast %TName_Bool* %"$recordExists_4624" to %CName_False* - %"$gasrem_4630" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4631" = icmp ugt i64 1, %"$gasrem_4630" - br i1 %"$gascmp_4631", label %"$out_of_gas_4632", label %"$have_gas_4633" +"$False_4048": ; preds = %"$have_gas_4041" + %"$recordExists_4049" = bitcast %TName_Bool* %"$recordExists_4044" to %CName_False* + %"$gasrem_4050" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4051" = icmp ugt i64 1, %"$gasrem_4050" + br i1 %"$gascmp_4051", label %"$out_of_gas_4052", label %"$have_gas_4053" -"$out_of_gas_4632": ; preds = %"$False_4628" +"$out_of_gas_4052": ; preds = %"$False_4048" call void @_out_of_gas() - br label %"$have_gas_4633" + br label %"$have_gas_4053" -"$have_gas_4633": ; preds = %"$out_of_gas_4632", %"$False_4628" - %"$consume_4634" = sub i64 %"$gasrem_4630", 1 - store i64 %"$consume_4634", i64* @_gasrem, align 8 +"$have_gas_4053": ; preds = %"$out_of_gas_4052", %"$False_4048" + %"$consume_4054" = sub i64 %"$gasrem_4050", 1 + store i64 %"$consume_4054", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_4635" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4636" = icmp ugt i64 1, %"$gasrem_4635" - br i1 %"$gascmp_4636", label %"$out_of_gas_4637", label %"$have_gas_4638" - -"$out_of_gas_4637": ; preds = %"$have_gas_4633" - call void @_out_of_gas() - br label %"$have_gas_4638" - -"$have_gas_4638": ; preds = %"$out_of_gas_4637", %"$have_gas_4633" - %"$consume_4639" = sub i64 %"$gasrem_4635", 1 - store i64 %"$consume_4639", i64* @_gasrem, align 8 - %"$ud-registry.eNewDomain_104" = alloca { i8* (i8*, %String)*, i8* }, align 8 - %"$ud-registry.eNewDomain_4640" = load { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eNewDomain, align 8 - %"$ud-registry.eNewDomain_fptr_4641" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_4640", 0 - %"$ud-registry.eNewDomain_envptr_4642" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_4640", 1 - %"$ud-registry.eNewDomain_parent_4643" = alloca [32 x i8], align 1 - store [32 x i8] %parent, [32 x i8]* %"$ud-registry.eNewDomain_parent_4643", align 1 - %"$ud-registry.eNewDomain_call_4644" = call { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_fptr_4641"(i8* %"$ud-registry.eNewDomain_envptr_4642", [32 x i8]* %"$ud-registry.eNewDomain_parent_4643") - store { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_call_4644", { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_104", align 8 - %"$ud-registry.eNewDomain_105" = alloca i8*, align 8 - %"$$ud-registry.eNewDomain_104_4645" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_104", align 8 - %"$$ud-registry.eNewDomain_104_fptr_4646" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_104_4645", 0 - %"$$ud-registry.eNewDomain_104_envptr_4647" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_104_4645", 1 - %"$$ud-registry.eNewDomain_104_call_4648" = call i8* %"$$ud-registry.eNewDomain_104_fptr_4646"(i8* %"$$ud-registry.eNewDomain_104_envptr_4647", %String %label) - store i8* %"$$ud-registry.eNewDomain_104_call_4648", i8** %"$ud-registry.eNewDomain_105", align 8 - %"$$ud-registry.eNewDomain_105_4649" = load i8*, i8** %"$ud-registry.eNewDomain_105", align 8 - store i8* %"$$ud-registry.eNewDomain_105_4649", i8** %e, align 8 - %"$e_4650" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_4652" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4650") - %"$gasrem_4653" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4654" = icmp ugt i64 %"$_literal_cost_call_4652", %"$gasrem_4653" - br i1 %"$gascmp_4654", label %"$out_of_gas_4655", label %"$have_gas_4656" + %"$gasrem_4055" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4056" = icmp ugt i64 1, %"$gasrem_4055" + br i1 %"$gascmp_4056", label %"$out_of_gas_4057", label %"$have_gas_4058" + +"$out_of_gas_4057": ; preds = %"$have_gas_4053" + call void @_out_of_gas() + br label %"$have_gas_4058" + +"$have_gas_4058": ; preds = %"$out_of_gas_4057", %"$have_gas_4053" + %"$consume_4059" = sub i64 %"$gasrem_4055", 1 + store i64 %"$consume_4059", i64* @_gasrem, align 8 + %"$ud-registry.eNewDomain_4060" = load { i8* (i8*, [32 x i8]*, %String)*, i8* }, { i8* (i8*, [32 x i8]*, %String)*, i8* }* @ud-registry.eNewDomain, align 8 + %"$ud-registry.eNewDomain_fptr_4061" = extractvalue { i8* (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.eNewDomain_4060", 0 + %"$ud-registry.eNewDomain_envptr_4062" = extractvalue { i8* (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.eNewDomain_4060", 1 + %"$ud-registry.eNewDomain_parent_4063" = alloca [32 x i8], align 1 + store [32 x i8] %parent, [32 x i8]* %"$ud-registry.eNewDomain_parent_4063", align 1 + %"$ud-registry.eNewDomain_call_4064" = call i8* %"$ud-registry.eNewDomain_fptr_4061"(i8* %"$ud-registry.eNewDomain_envptr_4062", [32 x i8]* %"$ud-registry.eNewDomain_parent_4063", %String %label) + store i8* %"$ud-registry.eNewDomain_call_4064", i8** %e, align 8 + %"$e_4065" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_4067" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4065") + %"$gasrem_4068" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4069" = icmp ugt i64 %"$_literal_cost_call_4067", %"$gasrem_4068" + br i1 %"$gascmp_4069", label %"$out_of_gas_4070", label %"$have_gas_4071" + +"$out_of_gas_4070": ; preds = %"$have_gas_4058" + call void @_out_of_gas() + br label %"$have_gas_4071" + +"$have_gas_4071": ; preds = %"$out_of_gas_4070", %"$have_gas_4058" + %"$consume_4072" = sub i64 %"$gasrem_4068", %"$_literal_cost_call_4067" + store i64 %"$consume_4072", i64* @_gasrem, align 8 + %"$execptr_load_4073" = load i8*, i8** @_execptr, align 8 + %"$e_4074" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_4073", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4074") + br label %"$matchsucc_4043" + +"$default_4047": ; preds = %"$have_gas_4041" + br label %"$joinp_7" -"$out_of_gas_4655": ; preds = %"$have_gas_4638" - call void @_out_of_gas() - br label %"$have_gas_4656" +"$joinp_7": ; preds = %"$default_4047" + br label %"$matchsucc_4043" -"$have_gas_4656": ; preds = %"$out_of_gas_4655", %"$have_gas_4638" - %"$consume_4657" = sub i64 %"$gasrem_4653", %"$_literal_cost_call_4652" - store i64 %"$consume_4657", i64* @_gasrem, align 8 - %"$execptr_load_4658" = load i8*, i8** @_execptr, align 8 - %"$e_4659" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_4658", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4659") - br label %"$matchsucc_4623" +"$matchsucc_4043": ; preds = %"$have_gas_4071", %"$joinp_7" + %"$gasrem_4075" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4076" = icmp ugt i64 1, %"$gasrem_4075" + br i1 %"$gascmp_4076", label %"$out_of_gas_4077", label %"$have_gas_4078" -"$default_4627": ; preds = %"$have_gas_4621" - br label %"$joinp_7" +"$out_of_gas_4077": ; preds = %"$matchsucc_4043" + call void @_out_of_gas() + br label %"$have_gas_4078" -"$joinp_7": ; preds = %"$default_4627" - br label %"$matchsucc_4623" - -"$matchsucc_4623": ; preds = %"$have_gas_4656", %"$joinp_7" - %"$gasrem_4660" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4661" = icmp ugt i64 1, %"$gasrem_4660" - br i1 %"$gascmp_4661", label %"$out_of_gas_4662", label %"$have_gas_4663" - -"$out_of_gas_4662": ; preds = %"$matchsucc_4623" - call void @_out_of_gas() - br label %"$have_gas_4663" - -"$have_gas_4663": ; preds = %"$out_of_gas_4662", %"$matchsucc_4623" - %"$consume_4664" = sub i64 %"$gasrem_4660", 1 - store i64 %"$consume_4664", i64* @_gasrem, align 8 - %"$indices_buf_4665_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4665_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4665_salloc_load", i64 32) - %"$indices_buf_4665_salloc" = bitcast i8* %"$indices_buf_4665_salloc_salloc" to [32 x i8]* - %"$indices_buf_4665" = bitcast [32 x i8]* %"$indices_buf_4665_salloc" to i8* - %"$node_4666" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_4667" = getelementptr i8, i8* %"$indices_buf_4665", i32 0 - %indices_cast4 = bitcast i8* %"$indices_gep_4667" to [32 x i8]* - store [32 x i8] %"$node_4666", [32 x i8]* %indices_cast4, align 1 - %"$execptr_load_4668" = load i8*, i8** @_execptr, align 8 - call void @_update_field(i8* %"$execptr_load_4668", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4669", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_4665", i8* null) - %"$gasrem_4670" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4671" = icmp ugt i64 1, %"$gasrem_4670" - br i1 %"$gascmp_4671", label %"$out_of_gas_4672", label %"$have_gas_4673" - -"$out_of_gas_4672": ; preds = %"$have_gas_4663" - call void @_out_of_gas() - br label %"$have_gas_4673" - -"$have_gas_4673": ; preds = %"$out_of_gas_4672", %"$have_gas_4663" - %"$consume_4674" = sub i64 %"$gasrem_4670", 1 - store i64 %"$consume_4674", i64* @_gasrem, align 8 - %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_4675" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4676" = icmp ugt i64 1, %"$gasrem_4675" - br i1 %"$gascmp_4676", label %"$out_of_gas_4677", label %"$have_gas_4678" - -"$out_of_gas_4677": ; preds = %"$have_gas_4673" - call void @_out_of_gas() - br label %"$have_gas_4678" - -"$have_gas_4678": ; preds = %"$out_of_gas_4677", %"$have_gas_4673" - %"$consume_4679" = sub i64 %"$gasrem_4675", 1 - store i64 %"$consume_4679", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_4680" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - %"$adtval_4681_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_4681_salloc" = call i8* @_salloc(i8* %"$adtval_4681_load", i64 41) - %"$adtval_4681" = bitcast i8* %"$adtval_4681_salloc" to %CName_ud-registry.Record* - %"$adtgep_4682" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4681", i32 0, i32 0 - store i8 0, i8* %"$adtgep_4682", align 1 - %"$adtgep_4683" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4681", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_4683", align 1 - %"$adtgep_4684" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4681", i32 0, i32 2 - store [20 x i8] %"$ud-registry.zeroByStr20_4680", [20 x i8]* %"$adtgep_4684", align 1 - %"$adtptr_4685" = bitcast %CName_ud-registry.Record* %"$adtval_4681" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_4685", %TName_ud-registry.Record** %newRecord, align 8 - %"$newRecord_4686" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_4686_4687" = bitcast %TName_ud-registry.Record* %"$newRecord_4686" to i8* - %"$_literal_cost_call_4688" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", i8* %"$$newRecord_4686_4687") - %"$gasadd_4689" = add i64 %"$_literal_cost_call_4688", 1 - %"$gasrem_4690" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4691" = icmp ugt i64 %"$gasadd_4689", %"$gasrem_4690" - br i1 %"$gascmp_4691", label %"$out_of_gas_4692", label %"$have_gas_4693" - -"$out_of_gas_4692": ; preds = %"$have_gas_4678" - call void @_out_of_gas() - br label %"$have_gas_4693" - -"$have_gas_4693": ; preds = %"$out_of_gas_4692", %"$have_gas_4678" - %"$consume_4694" = sub i64 %"$gasrem_4690", %"$gasadd_4689" - store i64 %"$consume_4694", i64* @_gasrem, align 8 - %"$indices_buf_4695_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4695_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4695_salloc_load", i64 32) - %"$indices_buf_4695_salloc" = bitcast i8* %"$indices_buf_4695_salloc_salloc" to [32 x i8]* - %"$indices_buf_4695" = bitcast [32 x i8]* %"$indices_buf_4695_salloc" to i8* - %"$node_4696" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_4697" = getelementptr i8, i8* %"$indices_buf_4695", i32 0 - %indices_cast5 = bitcast i8* %"$indices_gep_4697" to [32 x i8]* - store [32 x i8] %"$node_4696", [32 x i8]* %indices_cast5, align 1 - %"$execptr_load_4698" = load i8*, i8** @_execptr, align 8 - %"$newRecord_4700" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_4701" = bitcast %TName_ud-registry.Record* %"$newRecord_4700" to i8* - call void @_update_field(i8* %"$execptr_load_4698", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4699", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4695", i8* %"$update_value_4701") - %"$gasrem_4702" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4703" = icmp ugt i64 1, %"$gasrem_4702" - br i1 %"$gascmp_4703", label %"$out_of_gas_4704", label %"$have_gas_4705" - -"$out_of_gas_4704": ; preds = %"$have_gas_4693" - call void @_out_of_gas() - br label %"$have_gas_4705" - -"$have_gas_4705": ; preds = %"$out_of_gas_4704", %"$have_gas_4693" - %"$consume_4706" = sub i64 %"$gasrem_4702", 1 - store i64 %"$consume_4706", i64* @_gasrem, align 8 - %e6 = alloca i8*, align 8 - %"$gasrem_4707" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4708" = icmp ugt i64 1, %"$gasrem_4707" - br i1 %"$gascmp_4708", label %"$out_of_gas_4709", label %"$have_gas_4710" - -"$out_of_gas_4709": ; preds = %"$have_gas_4705" - call void @_out_of_gas() - br label %"$have_gas_4710" - -"$have_gas_4710": ; preds = %"$out_of_gas_4709", %"$have_gas_4705" - %"$consume_4711" = sub i64 %"$gasrem_4707", 1 - store i64 %"$consume_4711", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_101" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_4712" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_4713" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_4712", 0 - %"$ud-registry.eConfigured_envptr_4714" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_4712", 1 - %"$ud-registry.eConfigured_node_4715" = alloca [32 x i8], align 1 - %"$node_4716" = load [32 x i8], [32 x i8]* %node, align 1 - store [32 x i8] %"$node_4716", [32 x i8]* %"$ud-registry.eConfigured_node_4715", align 1 - %"$ud-registry.eConfigured_call_4717" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_4713"(i8* %"$ud-registry.eConfigured_envptr_4714", [32 x i8]* %"$ud-registry.eConfigured_node_4715") - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_4717", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_101", align 8 - %"$ud-registry.eConfigured_102" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_101_4718" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_101", align 8 - %"$$ud-registry.eConfigured_101_fptr_4719" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_101_4718", 0 - %"$$ud-registry.eConfigured_101_envptr_4720" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_101_4718", 1 - %"$$ud-registry.eConfigured_101_owner_4721" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_101_owner_4721", align 1 - %"$$ud-registry.eConfigured_101_call_4722" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_101_fptr_4719"(i8* %"$$ud-registry.eConfigured_101_envptr_4720", [20 x i8]* %"$$ud-registry.eConfigured_101_owner_4721") - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_101_call_4722", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_102", align 8 - %"$ud-registry.eConfigured_103" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_102_4723" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_102", align 8 - %"$$ud-registry.eConfigured_102_fptr_4724" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_102_4723", 0 - %"$$ud-registry.eConfigured_102_envptr_4725" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_102_4723", 1 - %"$$ud-registry.eConfigured_102_ud-registry.zeroByStr20_4726" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_4727" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_4727", [20 x i8]* %"$$ud-registry.eConfigured_102_ud-registry.zeroByStr20_4726", align 1 - %"$$ud-registry.eConfigured_102_call_4728" = call i8* %"$$ud-registry.eConfigured_102_fptr_4724"(i8* %"$$ud-registry.eConfigured_102_envptr_4725", [20 x i8]* %"$$ud-registry.eConfigured_102_ud-registry.zeroByStr20_4726") - store i8* %"$$ud-registry.eConfigured_102_call_4728", i8** %"$ud-registry.eConfigured_103", align 8 - %"$$ud-registry.eConfigured_103_4729" = load i8*, i8** %"$ud-registry.eConfigured_103", align 8 - store i8* %"$$ud-registry.eConfigured_103_4729", i8** %e6, align 8 - %"$e_4730" = load i8*, i8** %e6, align 8 - %"$_literal_cost_call_4732" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4730") - %"$gasrem_4733" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4734" = icmp ugt i64 %"$_literal_cost_call_4732", %"$gasrem_4733" - br i1 %"$gascmp_4734", label %"$out_of_gas_4735", label %"$have_gas_4736" - -"$out_of_gas_4735": ; preds = %"$have_gas_4710" - call void @_out_of_gas() - br label %"$have_gas_4736" - -"$have_gas_4736": ; preds = %"$out_of_gas_4735", %"$have_gas_4710" - %"$consume_4737" = sub i64 %"$gasrem_4733", %"$_literal_cost_call_4732" - store i64 %"$consume_4737", i64* @_gasrem, align 8 - %"$execptr_load_4738" = load i8*, i8** @_execptr, align 8 - %"$e_4739" = load i8*, i8** %e6, align 8 - call void @_event(i8* %"$execptr_load_4738", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4739") - %"$gasrem_4740" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4741" = icmp ugt i64 1, %"$gasrem_4740" - br i1 %"$gascmp_4741", label %"$out_of_gas_4742", label %"$have_gas_4743" - -"$out_of_gas_4742": ; preds = %"$have_gas_4736" - call void @_out_of_gas() - br label %"$have_gas_4743" - -"$have_gas_4743": ; preds = %"$out_of_gas_4742", %"$have_gas_4736" - %"$consume_4744" = sub i64 %"$gasrem_4740", 1 - store i64 %"$consume_4744", i64* @_gasrem, align 8 - %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_4745" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4746" = icmp ugt i64 1, %"$gasrem_4745" - br i1 %"$gascmp_4746", label %"$out_of_gas_4747", label %"$have_gas_4748" +"$have_gas_4078": ; preds = %"$out_of_gas_4077", %"$matchsucc_4043" + %"$consume_4079" = sub i64 %"$gasrem_4075", 1 + store i64 %"$consume_4079", i64* @_gasrem, align 8 + %"$indices_buf_4080_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4080_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4080_salloc_load", i64 32) + %"$indices_buf_4080_salloc" = bitcast i8* %"$indices_buf_4080_salloc_salloc" to [32 x i8]* + %"$indices_buf_4080" = bitcast [32 x i8]* %"$indices_buf_4080_salloc" to i8* + %"$node_4081" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4082" = getelementptr i8, i8* %"$indices_buf_4080", i32 0 + %indices_cast4 = bitcast i8* %"$indices_gep_4082" to [32 x i8]* + store [32 x i8] %"$node_4081", [32 x i8]* %indices_cast4, align 1 + %"$execptr_load_4083" = load i8*, i8** @_execptr, align 8 + call void @_update_field(i8* %"$execptr_load_4083", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4084", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_4080", i8* null) + %"$gasrem_4085" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4086" = icmp ugt i64 1, %"$gasrem_4085" + br i1 %"$gascmp_4086", label %"$out_of_gas_4087", label %"$have_gas_4088" -"$out_of_gas_4747": ; preds = %"$have_gas_4743" +"$out_of_gas_4087": ; preds = %"$have_gas_4078" call void @_out_of_gas() - br label %"$have_gas_4748" + br label %"$have_gas_4088" -"$have_gas_4748": ; preds = %"$out_of_gas_4747", %"$have_gas_4743" - %"$consume_4749" = sub i64 %"$gasrem_4745", 1 - store i64 %"$consume_4749", i64* @_gasrem, align 8 - %m = alloca i8*, align 8 - %"$gasrem_4750" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4751" = icmp ugt i64 1, %"$gasrem_4750" - br i1 %"$gascmp_4751", label %"$out_of_gas_4752", label %"$have_gas_4753" - -"$out_of_gas_4752": ; preds = %"$have_gas_4748" - call void @_out_of_gas() - br label %"$have_gas_4753" - -"$have_gas_4753": ; preds = %"$out_of_gas_4752", %"$have_gas_4748" - %"$consume_4754" = sub i64 %"$gasrem_4750", 1 - store i64 %"$consume_4754", i64* @_gasrem, align 8 - %"$msgobj_4755_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_4755_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4755_salloc_load", i64 265) - %"$msgobj_4755_salloc" = bitcast i8* %"$msgobj_4755_salloc_salloc" to [265 x i8]* - %"$msgobj_4755" = bitcast [265 x i8]* %"$msgobj_4755_salloc" to i8* - store i8 6, i8* %"$msgobj_4755", align 1 - %"$msgobj_fname_4757" = getelementptr i8, i8* %"$msgobj_4755", i32 1 - %"$msgobj_fname_4758" = bitcast i8* %"$msgobj_fname_4757" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4756", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4758", align 8 - %"$msgobj_td_4759" = getelementptr i8, i8* %"$msgobj_4755", i32 17 - %"$msgobj_td_4760" = bitcast i8* %"$msgobj_td_4759" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4760", align 8 - %"$msgobj_v_4762" = getelementptr i8, i8* %"$msgobj_4755", i32 25 - %"$msgobj_v_4763" = bitcast i8* %"$msgobj_v_4762" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_4761", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_4763", align 8 - %"$msgobj_fname_4765" = getelementptr i8, i8* %"$msgobj_4755", i32 41 - %"$msgobj_fname_4766" = bitcast i8* %"$msgobj_fname_4765" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_4764", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_4766", align 8 - %"$msgobj_td_4767" = getelementptr i8, i8* %"$msgobj_4755", i32 57 - %"$msgobj_td_4768" = bitcast i8* %"$msgobj_td_4767" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_4768", align 8 - %"$msgobj_v_4769" = getelementptr i8, i8* %"$msgobj_4755", i32 65 - %"$msgobj_v_4770" = bitcast i8* %"$msgobj_v_4769" to [32 x i8]* - store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_4770", align 1 - %"$msgobj_fname_4772" = getelementptr i8, i8* %"$msgobj_4755", i32 97 - %"$msgobj_fname_4773" = bitcast i8* %"$msgobj_fname_4772" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4771", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4773", align 8 - %"$msgobj_td_4774" = getelementptr i8, i8* %"$msgobj_4755", i32 113 - %"$msgobj_td_4775" = bitcast i8* %"$msgobj_td_4774" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4775", align 8 - %"$msgobj_v_4776" = getelementptr i8, i8* %"$msgobj_4755", i32 121 - %"$msgobj_v_4777" = bitcast i8* %"$msgobj_v_4776" to %String* - store %String %label, %String* %"$msgobj_v_4777", align 8 - %"$msgobj_fname_4779" = getelementptr i8, i8* %"$msgobj_4755", i32 137 - %"$msgobj_fname_4780" = bitcast i8* %"$msgobj_fname_4779" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4778", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4780", align 8 - %"$msgobj_td_4781" = getelementptr i8, i8* %"$msgobj_4755", i32 153 - %"$msgobj_td_4782" = bitcast i8* %"$msgobj_td_4781" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4782", align 8 - %"$msgobj_v_4783" = getelementptr i8, i8* %"$msgobj_4755", i32 161 - %"$msgobj_v_4784" = bitcast i8* %"$msgobj_v_4783" to [20 x i8]* - store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_4784", align 1 - %"$msgobj_fname_4786" = getelementptr i8, i8* %"$msgobj_4755", i32 181 - %"$msgobj_fname_4787" = bitcast i8* %"$msgobj_fname_4786" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4785", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4787", align 8 - %"$msgobj_td_4788" = getelementptr i8, i8* %"$msgobj_4755", i32 197 - %"$msgobj_td_4789" = bitcast i8* %"$msgobj_td_4788" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_4789", align 8 - %"$msgobj_v_4790" = getelementptr i8, i8* %"$msgobj_4755", i32 205 - %"$msgobj_v_4791" = bitcast i8* %"$msgobj_v_4790" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4791", align 8 - %"$msgobj_fname_4793" = getelementptr i8, i8* %"$msgobj_4755", i32 221 - %"$msgobj_fname_4794" = bitcast i8* %"$msgobj_fname_4793" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4792", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4794", align 8 - %"$msgobj_td_4795" = getelementptr i8, i8* %"$msgobj_4755", i32 237 - %"$msgobj_td_4796" = bitcast i8* %"$msgobj_td_4795" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4796", align 8 - %"$msgobj_v_4797" = getelementptr i8, i8* %"$msgobj_4755", i32 245 - %"$msgobj_v_4798" = bitcast i8* %"$msgobj_v_4797" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4798", align 1 - store i8* %"$msgobj_4755", i8** %m, align 8 - %"$gasrem_4800" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4801" = icmp ugt i64 1, %"$gasrem_4800" - br i1 %"$gascmp_4801", label %"$out_of_gas_4802", label %"$have_gas_4803" - -"$out_of_gas_4802": ; preds = %"$have_gas_4753" - call void @_out_of_gas() - br label %"$have_gas_4803" - -"$have_gas_4803": ; preds = %"$out_of_gas_4802", %"$have_gas_4753" - %"$consume_4804" = sub i64 %"$gasrem_4800", 1 - store i64 %"$consume_4804", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_100" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_4805" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_4806" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4805", 0 - %"$ud-registry.oneMsg_envptr_4807" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4805", 1 - %"$m_4808" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_4809" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4806"(i8* %"$ud-registry.oneMsg_envptr_4807", i8* %"$m_4808") - store %TName_List_Message* %"$ud-registry.oneMsg_call_4809", %TName_List_Message** %"$ud-registry.oneMsg_100", align 8 - %"$$ud-registry.oneMsg_100_4810" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_100", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_100_4810", %TName_List_Message** %msgs, align 8 - %"$msgs_4811" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_4811_4812" = bitcast %TName_List_Message* %"$msgs_4811" to i8* - %"$_literal_cost_call_4813" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_4811_4812") - %"$gasrem_4814" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4815" = icmp ugt i64 %"$_literal_cost_call_4813", %"$gasrem_4814" - br i1 %"$gascmp_4815", label %"$out_of_gas_4816", label %"$have_gas_4817" - -"$out_of_gas_4816": ; preds = %"$have_gas_4803" - call void @_out_of_gas() - br label %"$have_gas_4817" - -"$have_gas_4817": ; preds = %"$out_of_gas_4816", %"$have_gas_4803" - %"$consume_4818" = sub i64 %"$gasrem_4814", %"$_literal_cost_call_4813" - store i64 %"$consume_4818", i64* @_gasrem, align 8 - %"$execptr_load_4819" = load i8*, i8** @_execptr, align 8 - %"$msgs_4820" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_4819", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_4820") - br label %"$matchsucc_4573" - -"$False_4821": ; preds = %"$have_gas_4571" - %"$isSenderOAO_4822" = bitcast %TName_Bool* %"$isSenderOAO_4574" to %CName_False* - %"$gasrem_4823" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4824" = icmp ugt i64 1, %"$gasrem_4823" - br i1 %"$gascmp_4824", label %"$out_of_gas_4825", label %"$have_gas_4826" +"$have_gas_4088": ; preds = %"$out_of_gas_4087", %"$have_gas_4078" + %"$consume_4089" = sub i64 %"$gasrem_4085", 1 + store i64 %"$consume_4089", i64* @_gasrem, align 8 + %newRecord = alloca %TName_ud-registry.Record*, align 8 + %"$gasrem_4090" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4091" = icmp ugt i64 1, %"$gasrem_4090" + br i1 %"$gascmp_4091", label %"$out_of_gas_4092", label %"$have_gas_4093" + +"$out_of_gas_4092": ; preds = %"$have_gas_4088" + call void @_out_of_gas() + br label %"$have_gas_4093" + +"$have_gas_4093": ; preds = %"$out_of_gas_4092", %"$have_gas_4088" + %"$consume_4094" = sub i64 %"$gasrem_4090", 1 + store i64 %"$consume_4094", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_4095" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + %"$adtval_4096_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4096_salloc" = call i8* @_salloc(i8* %"$adtval_4096_load", i64 41) + %"$adtval_4096" = bitcast i8* %"$adtval_4096_salloc" to %CName_ud-registry.Record* + %"$adtgep_4097" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4096", i32 0, i32 0 + store i8 0, i8* %"$adtgep_4097", align 1 + %"$adtgep_4098" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4096", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_4098", align 1 + %"$adtgep_4099" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4096", i32 0, i32 2 + store [20 x i8] %"$ud-registry.zeroByStr20_4095", [20 x i8]* %"$adtgep_4099", align 1 + %"$adtptr_4100" = bitcast %CName_ud-registry.Record* %"$adtval_4096" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_4100", %TName_ud-registry.Record** %newRecord, align 8 + %"$newRecord_4101" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_4101_4102" = bitcast %TName_ud-registry.Record* %"$newRecord_4101" to i8* + %"$_literal_cost_call_4103" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", i8* %"$$newRecord_4101_4102") + %"$gasadd_4104" = add i64 %"$_literal_cost_call_4103", 1 + %"$gasrem_4105" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4106" = icmp ugt i64 %"$gasadd_4104", %"$gasrem_4105" + br i1 %"$gascmp_4106", label %"$out_of_gas_4107", label %"$have_gas_4108" + +"$out_of_gas_4107": ; preds = %"$have_gas_4093" + call void @_out_of_gas() + br label %"$have_gas_4108" + +"$have_gas_4108": ; preds = %"$out_of_gas_4107", %"$have_gas_4093" + %"$consume_4109" = sub i64 %"$gasrem_4105", %"$gasadd_4104" + store i64 %"$consume_4109", i64* @_gasrem, align 8 + %"$indices_buf_4110_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4110_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4110_salloc_load", i64 32) + %"$indices_buf_4110_salloc" = bitcast i8* %"$indices_buf_4110_salloc_salloc" to [32 x i8]* + %"$indices_buf_4110" = bitcast [32 x i8]* %"$indices_buf_4110_salloc" to i8* + %"$node_4111" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4112" = getelementptr i8, i8* %"$indices_buf_4110", i32 0 + %indices_cast5 = bitcast i8* %"$indices_gep_4112" to [32 x i8]* + store [32 x i8] %"$node_4111", [32 x i8]* %indices_cast5, align 1 + %"$execptr_load_4113" = load i8*, i8** @_execptr, align 8 + %"$newRecord_4115" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_4116" = bitcast %TName_ud-registry.Record* %"$newRecord_4115" to i8* + call void @_update_field(i8* %"$execptr_load_4113", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4114", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4110", i8* %"$update_value_4116") + %"$gasrem_4117" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4118" = icmp ugt i64 1, %"$gasrem_4117" + br i1 %"$gascmp_4118", label %"$out_of_gas_4119", label %"$have_gas_4120" -"$out_of_gas_4825": ; preds = %"$False_4821" +"$out_of_gas_4119": ; preds = %"$have_gas_4108" call void @_out_of_gas() - br label %"$have_gas_4826" + br label %"$have_gas_4120" -"$have_gas_4826": ; preds = %"$out_of_gas_4825", %"$False_4821" - %"$consume_4827" = sub i64 %"$gasrem_4823", 1 - store i64 %"$consume_4827", i64* @_gasrem, align 8 - %e7 = alloca i8*, align 8 - %"$gasrem_4828" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4829" = icmp ugt i64 1, %"$gasrem_4828" - br i1 %"$gascmp_4829", label %"$out_of_gas_4830", label %"$have_gas_4831" +"$have_gas_4120": ; preds = %"$out_of_gas_4119", %"$have_gas_4108" + %"$consume_4121" = sub i64 %"$gasrem_4117", 1 + store i64 %"$consume_4121", i64* @_gasrem, align 8 + %e6 = alloca i8*, align 8 + %"$gasrem_4122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4123" = icmp ugt i64 1, %"$gasrem_4122" + br i1 %"$gascmp_4123", label %"$out_of_gas_4124", label %"$have_gas_4125" + +"$out_of_gas_4124": ; preds = %"$have_gas_4120" + call void @_out_of_gas() + br label %"$have_gas_4125" + +"$have_gas_4125": ; preds = %"$out_of_gas_4124", %"$have_gas_4120" + %"$consume_4126" = sub i64 %"$gasrem_4122", 1 + store i64 %"$consume_4126", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_4127" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_4128" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_4127", 0 + %"$ud-registry.eConfigured_envptr_4129" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_4127", 1 + %"$ud-registry.eConfigured_node_4130" = alloca [32 x i8], align 1 + %"$node_4131" = load [32 x i8], [32 x i8]* %node, align 1 + store [32 x i8] %"$node_4131", [32 x i8]* %"$ud-registry.eConfigured_node_4130", align 1 + %"$ud-registry.eConfigured_owner_4132" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$ud-registry.eConfigured_owner_4132", align 1 + %"$ud-registry.eConfigured_ud-registry.zeroByStr20_4133" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_4134" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_4134", [20 x i8]* %"$ud-registry.eConfigured_ud-registry.zeroByStr20_4133", align 1 + %"$ud-registry.eConfigured_call_4135" = call i8* %"$ud-registry.eConfigured_fptr_4128"(i8* %"$ud-registry.eConfigured_envptr_4129", [32 x i8]* %"$ud-registry.eConfigured_node_4130", [20 x i8]* %"$ud-registry.eConfigured_owner_4132", [20 x i8]* %"$ud-registry.eConfigured_ud-registry.zeroByStr20_4133") + store i8* %"$ud-registry.eConfigured_call_4135", i8** %e6, align 8 + %"$e_4136" = load i8*, i8** %e6, align 8 + %"$_literal_cost_call_4138" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4136") + %"$gasrem_4139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4140" = icmp ugt i64 %"$_literal_cost_call_4138", %"$gasrem_4139" + br i1 %"$gascmp_4140", label %"$out_of_gas_4141", label %"$have_gas_4142" + +"$out_of_gas_4141": ; preds = %"$have_gas_4125" + call void @_out_of_gas() + br label %"$have_gas_4142" + +"$have_gas_4142": ; preds = %"$out_of_gas_4141", %"$have_gas_4125" + %"$consume_4143" = sub i64 %"$gasrem_4139", %"$_literal_cost_call_4138" + store i64 %"$consume_4143", i64* @_gasrem, align 8 + %"$execptr_load_4144" = load i8*, i8** @_execptr, align 8 + %"$e_4145" = load i8*, i8** %e6, align 8 + call void @_event(i8* %"$execptr_load_4144", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4145") + %"$gasrem_4146" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4147" = icmp ugt i64 1, %"$gasrem_4146" + br i1 %"$gascmp_4147", label %"$out_of_gas_4148", label %"$have_gas_4149" -"$out_of_gas_4830": ; preds = %"$have_gas_4826" +"$out_of_gas_4148": ; preds = %"$have_gas_4142" call void @_out_of_gas() - br label %"$have_gas_4831" + br label %"$have_gas_4149" -"$have_gas_4831": ; preds = %"$out_of_gas_4830", %"$have_gas_4826" - %"$consume_4832" = sub i64 %"$gasrem_4828", 1 - store i64 %"$consume_4832", i64* @_gasrem, align 8 - %m8 = alloca %String, align 8 - %"$gasrem_4833" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4834" = icmp ugt i64 1, %"$gasrem_4833" - br i1 %"$gascmp_4834", label %"$out_of_gas_4835", label %"$have_gas_4836" +"$have_gas_4149": ; preds = %"$out_of_gas_4148", %"$have_gas_4142" + %"$consume_4150" = sub i64 %"$gasrem_4146", 1 + store i64 %"$consume_4150", i64* @_gasrem, align 8 + %msgs = alloca %TName_List_Message*, align 8 + %"$gasrem_4151" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4152" = icmp ugt i64 1, %"$gasrem_4151" + br i1 %"$gascmp_4152", label %"$out_of_gas_4153", label %"$have_gas_4154" -"$out_of_gas_4835": ; preds = %"$have_gas_4831" +"$out_of_gas_4153": ; preds = %"$have_gas_4149" call void @_out_of_gas() - br label %"$have_gas_4836" + br label %"$have_gas_4154" -"$have_gas_4836": ; preds = %"$out_of_gas_4835", %"$have_gas_4831" - %"$consume_4837" = sub i64 %"$gasrem_4833", 1 - store i64 %"$consume_4837", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @"$stringlit_4838", i32 0, i32 0), i32 45 }, %String* %m8, align 8 - %"$gasrem_4839" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4840" = icmp ugt i64 1, %"$gasrem_4839" - br i1 %"$gascmp_4840", label %"$out_of_gas_4841", label %"$have_gas_4842" - -"$out_of_gas_4841": ; preds = %"$have_gas_4836" - call void @_out_of_gas() - br label %"$have_gas_4842" - -"$have_gas_4842": ; preds = %"$out_of_gas_4841", %"$have_gas_4836" - %"$consume_4843" = sub i64 %"$gasrem_4839", 1 - store i64 %"$consume_4843", i64* @_gasrem, align 8 - %"$ud-registry.eError_109" = alloca i8*, align 8 - %"$ud-registry.eError_4844" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_4845" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4844", 0 - %"$ud-registry.eError_envptr_4846" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4844", 1 - %"$m_4847" = load %String, %String* %m8, align 8 - %"$ud-registry.eError_call_4848" = call i8* %"$ud-registry.eError_fptr_4845"(i8* %"$ud-registry.eError_envptr_4846", %String %"$m_4847") - store i8* %"$ud-registry.eError_call_4848", i8** %"$ud-registry.eError_109", align 8 - %"$$ud-registry.eError_109_4849" = load i8*, i8** %"$ud-registry.eError_109", align 8 - store i8* %"$$ud-registry.eError_109_4849", i8** %e7, align 8 - %"$e_4850" = load i8*, i8** %e7, align 8 - %"$_literal_cost_call_4852" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4850") - %"$gasrem_4853" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4854" = icmp ugt i64 %"$_literal_cost_call_4852", %"$gasrem_4853" - br i1 %"$gascmp_4854", label %"$out_of_gas_4855", label %"$have_gas_4856" - -"$out_of_gas_4855": ; preds = %"$have_gas_4842" - call void @_out_of_gas() - br label %"$have_gas_4856" - -"$have_gas_4856": ; preds = %"$out_of_gas_4855", %"$have_gas_4842" - %"$consume_4857" = sub i64 %"$gasrem_4853", %"$_literal_cost_call_4852" - store i64 %"$consume_4857", i64* @_gasrem, align 8 - %"$execptr_load_4858" = load i8*, i8** @_execptr, align 8 - %"$e_4859" = load i8*, i8** %e7, align 8 - call void @_event(i8* %"$execptr_load_4858", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_4859") - %"$gasrem_4860" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4861" = icmp ugt i64 1, %"$gasrem_4860" - br i1 %"$gascmp_4861", label %"$out_of_gas_4862", label %"$have_gas_4863" +"$have_gas_4154": ; preds = %"$out_of_gas_4153", %"$have_gas_4149" + %"$consume_4155" = sub i64 %"$gasrem_4151", 1 + store i64 %"$consume_4155", i64* @_gasrem, align 8 + %m = alloca i8*, align 8 + %"$gasrem_4156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4157" = icmp ugt i64 1, %"$gasrem_4156" + br i1 %"$gascmp_4157", label %"$out_of_gas_4158", label %"$have_gas_4159" + +"$out_of_gas_4158": ; preds = %"$have_gas_4154" + call void @_out_of_gas() + br label %"$have_gas_4159" + +"$have_gas_4159": ; preds = %"$out_of_gas_4158", %"$have_gas_4154" + %"$consume_4160" = sub i64 %"$gasrem_4156", 1 + store i64 %"$consume_4160", i64* @_gasrem, align 8 + %"$msgobj_4161_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_4161_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4161_salloc_load", i64 265) + %"$msgobj_4161_salloc" = bitcast i8* %"$msgobj_4161_salloc_salloc" to [265 x i8]* + %"$msgobj_4161" = bitcast [265 x i8]* %"$msgobj_4161_salloc" to i8* + store i8 6, i8* %"$msgobj_4161", align 1 + %"$msgobj_fname_4163" = getelementptr i8, i8* %"$msgobj_4161", i32 1 + %"$msgobj_fname_4164" = bitcast i8* %"$msgobj_fname_4163" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4162", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4164", align 8 + %"$msgobj_td_4165" = getelementptr i8, i8* %"$msgobj_4161", i32 17 + %"$msgobj_td_4166" = bitcast i8* %"$msgobj_td_4165" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_4166", align 8 + %"$msgobj_v_4168" = getelementptr i8, i8* %"$msgobj_4161", i32 25 + %"$msgobj_v_4169" = bitcast i8* %"$msgobj_v_4168" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_4167", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_4169", align 8 + %"$msgobj_fname_4171" = getelementptr i8, i8* %"$msgobj_4161", i32 41 + %"$msgobj_fname_4172" = bitcast i8* %"$msgobj_fname_4171" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_4170", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_4172", align 8 + %"$msgobj_td_4173" = getelementptr i8, i8* %"$msgobj_4161", i32 57 + %"$msgobj_td_4174" = bitcast i8* %"$msgobj_td_4173" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_4174", align 8 + %"$msgobj_v_4175" = getelementptr i8, i8* %"$msgobj_4161", i32 65 + %"$msgobj_v_4176" = bitcast i8* %"$msgobj_v_4175" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_4176", align 1 + %"$msgobj_fname_4178" = getelementptr i8, i8* %"$msgobj_4161", i32 97 + %"$msgobj_fname_4179" = bitcast i8* %"$msgobj_fname_4178" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4177", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4179", align 8 + %"$msgobj_td_4180" = getelementptr i8, i8* %"$msgobj_4161", i32 113 + %"$msgobj_td_4181" = bitcast i8* %"$msgobj_td_4180" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_4181", align 8 + %"$msgobj_v_4182" = getelementptr i8, i8* %"$msgobj_4161", i32 121 + %"$msgobj_v_4183" = bitcast i8* %"$msgobj_v_4182" to %String* + store %String %label, %String* %"$msgobj_v_4183", align 8 + %"$msgobj_fname_4185" = getelementptr i8, i8* %"$msgobj_4161", i32 137 + %"$msgobj_fname_4186" = bitcast i8* %"$msgobj_fname_4185" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4184", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4186", align 8 + %"$msgobj_td_4187" = getelementptr i8, i8* %"$msgobj_4161", i32 153 + %"$msgobj_td_4188" = bitcast i8* %"$msgobj_td_4187" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_4188", align 8 + %"$msgobj_v_4189" = getelementptr i8, i8* %"$msgobj_4161", i32 161 + %"$msgobj_v_4190" = bitcast i8* %"$msgobj_v_4189" to [20 x i8]* + store [20 x i8] %owner, [20 x i8]* %"$msgobj_v_4190", align 1 + %"$msgobj_fname_4192" = getelementptr i8, i8* %"$msgobj_4161", i32 181 + %"$msgobj_fname_4193" = bitcast i8* %"$msgobj_fname_4192" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4191", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4193", align 8 + %"$msgobj_td_4194" = getelementptr i8, i8* %"$msgobj_4161", i32 197 + %"$msgobj_td_4195" = bitcast i8* %"$msgobj_td_4194" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_4195", align 8 + %"$msgobj_v_4196" = getelementptr i8, i8* %"$msgobj_4161", i32 205 + %"$msgobj_v_4197" = bitcast i8* %"$msgobj_v_4196" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4197", align 8 + %"$msgobj_fname_4199" = getelementptr i8, i8* %"$msgobj_4161", i32 221 + %"$msgobj_fname_4200" = bitcast i8* %"$msgobj_fname_4199" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4198", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4200", align 8 + %"$msgobj_td_4201" = getelementptr i8, i8* %"$msgobj_4161", i32 237 + %"$msgobj_td_4202" = bitcast i8* %"$msgobj_td_4201" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_4202", align 8 + %"$msgobj_v_4203" = getelementptr i8, i8* %"$msgobj_4161", i32 245 + %"$msgobj_v_4204" = bitcast i8* %"$msgobj_v_4203" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4204", align 1 + store i8* %"$msgobj_4161", i8** %m, align 8 + %"$gasrem_4206" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4207" = icmp ugt i64 1, %"$gasrem_4206" + br i1 %"$gascmp_4207", label %"$out_of_gas_4208", label %"$have_gas_4209" + +"$out_of_gas_4208": ; preds = %"$have_gas_4159" + call void @_out_of_gas() + br label %"$have_gas_4209" + +"$have_gas_4209": ; preds = %"$out_of_gas_4208", %"$have_gas_4159" + %"$consume_4210" = sub i64 %"$gasrem_4206", 1 + store i64 %"$consume_4210", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_53" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_4211" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_4212" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4211", 0 + %"$ud-registry.oneMsg_envptr_4213" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4211", 1 + %"$m_4214" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_4215" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4212"(i8* %"$ud-registry.oneMsg_envptr_4213", i8* %"$m_4214") + store %TName_List_Message* %"$ud-registry.oneMsg_call_4215", %TName_List_Message** %"$ud-registry.oneMsg_53", align 8 + %"$$ud-registry.oneMsg_53_4216" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_53", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_53_4216", %TName_List_Message** %msgs, align 8 + %"$msgs_4217" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_4217_4218" = bitcast %TName_List_Message* %"$msgs_4217" to i8* + %"$_literal_cost_call_4219" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_4217_4218") + %"$gasrem_4220" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4221" = icmp ugt i64 %"$_literal_cost_call_4219", %"$gasrem_4220" + br i1 %"$gascmp_4221", label %"$out_of_gas_4222", label %"$have_gas_4223" + +"$out_of_gas_4222": ; preds = %"$have_gas_4209" + call void @_out_of_gas() + br label %"$have_gas_4223" + +"$have_gas_4223": ; preds = %"$out_of_gas_4222", %"$have_gas_4209" + %"$consume_4224" = sub i64 %"$gasrem_4220", %"$_literal_cost_call_4219" + store i64 %"$consume_4224", i64* @_gasrem, align 8 + %"$execptr_load_4225" = load i8*, i8** @_execptr, align 8 + %"$msgs_4226" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_4225", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_4226") + br label %"$matchsucc_3998" + +"$False_4227": ; preds = %"$have_gas_3996" + %"$isSenderOAO_4228" = bitcast %TName_Bool* %"$isSenderOAO_3999" to %CName_False* + %"$gasrem_4229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4230" = icmp ugt i64 1, %"$gasrem_4229" + br i1 %"$gascmp_4230", label %"$out_of_gas_4231", label %"$have_gas_4232" + +"$out_of_gas_4231": ; preds = %"$False_4227" + call void @_out_of_gas() + br label %"$have_gas_4232" + +"$have_gas_4232": ; preds = %"$out_of_gas_4231", %"$False_4227" + %"$consume_4233" = sub i64 %"$gasrem_4229", 1 + store i64 %"$consume_4233", i64* @_gasrem, align 8 + %e7 = alloca i8*, align 8 + %"$gasrem_4234" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4235" = icmp ugt i64 1, %"$gasrem_4234" + br i1 %"$gascmp_4235", label %"$out_of_gas_4236", label %"$have_gas_4237" -"$out_of_gas_4862": ; preds = %"$have_gas_4856" +"$out_of_gas_4236": ; preds = %"$have_gas_4232" call void @_out_of_gas() - br label %"$have_gas_4863" + br label %"$have_gas_4237" -"$have_gas_4863": ; preds = %"$out_of_gas_4862", %"$have_gas_4856" - %"$consume_4864" = sub i64 %"$gasrem_4860", 1 - store i64 %"$consume_4864", i64* @_gasrem, align 8 +"$have_gas_4237": ; preds = %"$out_of_gas_4236", %"$have_gas_4232" + %"$consume_4238" = sub i64 %"$gasrem_4234", 1 + store i64 %"$consume_4238", i64* @_gasrem, align 8 + %m8 = alloca %String, align 8 + %"$gasrem_4239" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4240" = icmp ugt i64 1, %"$gasrem_4239" + br i1 %"$gascmp_4240", label %"$out_of_gas_4241", label %"$have_gas_4242" + +"$out_of_gas_4241": ; preds = %"$have_gas_4237" + call void @_out_of_gas() + br label %"$have_gas_4242" + +"$have_gas_4242": ; preds = %"$out_of_gas_4241", %"$have_gas_4237" + %"$consume_4243" = sub i64 %"$gasrem_4239", 1 + store i64 %"$consume_4243", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @"$stringlit_4244", i32 0, i32 0), i32 45 }, %String* %m8, align 8 + %"$gasrem_4245" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4246" = icmp ugt i64 1, %"$gasrem_4245" + br i1 %"$gascmp_4246", label %"$out_of_gas_4247", label %"$have_gas_4248" + +"$out_of_gas_4247": ; preds = %"$have_gas_4242" + call void @_out_of_gas() + br label %"$have_gas_4248" + +"$have_gas_4248": ; preds = %"$out_of_gas_4247", %"$have_gas_4242" + %"$consume_4249" = sub i64 %"$gasrem_4245", 1 + store i64 %"$consume_4249", i64* @_gasrem, align 8 + %"$ud-registry.eError_54" = alloca i8*, align 8 + %"$ud-registry.eError_4250" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_4251" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4250", 0 + %"$ud-registry.eError_envptr_4252" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4250", 1 + %"$m_4253" = load %String, %String* %m8, align 8 + %"$ud-registry.eError_call_4254" = call i8* %"$ud-registry.eError_fptr_4251"(i8* %"$ud-registry.eError_envptr_4252", %String %"$m_4253") + store i8* %"$ud-registry.eError_call_4254", i8** %"$ud-registry.eError_54", align 8 + %"$$ud-registry.eError_54_4255" = load i8*, i8** %"$ud-registry.eError_54", align 8 + store i8* %"$$ud-registry.eError_54_4255", i8** %e7, align 8 + %"$e_4256" = load i8*, i8** %e7, align 8 + %"$_literal_cost_call_4258" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4256") + %"$gasrem_4259" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4260" = icmp ugt i64 %"$_literal_cost_call_4258", %"$gasrem_4259" + br i1 %"$gascmp_4260", label %"$out_of_gas_4261", label %"$have_gas_4262" + +"$out_of_gas_4261": ; preds = %"$have_gas_4248" + call void @_out_of_gas() + br label %"$have_gas_4262" + +"$have_gas_4262": ; preds = %"$out_of_gas_4261", %"$have_gas_4248" + %"$consume_4263" = sub i64 %"$gasrem_4259", %"$_literal_cost_call_4258" + store i64 %"$consume_4263", i64* @_gasrem, align 8 + %"$execptr_load_4264" = load i8*, i8** @_execptr, align 8 + %"$e_4265" = load i8*, i8** %e7, align 8 + call void @_event(i8* %"$execptr_load_4264", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4265") + %"$gasrem_4266" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4267" = icmp ugt i64 1, %"$gasrem_4266" + br i1 %"$gascmp_4267", label %"$out_of_gas_4268", label %"$have_gas_4269" + +"$out_of_gas_4268": ; preds = %"$have_gas_4262" + call void @_out_of_gas() + br label %"$have_gas_4269" + +"$have_gas_4269": ; preds = %"$out_of_gas_4268", %"$have_gas_4262" + %"$consume_4270" = sub i64 %"$gasrem_4266", 1 + store i64 %"$consume_4270", i64* @_gasrem, align 8 %msgs9 = alloca %TName_List_Message*, align 8 - %"$gasrem_4865" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4866" = icmp ugt i64 1, %"$gasrem_4865" - br i1 %"$gascmp_4866", label %"$out_of_gas_4867", label %"$have_gas_4868" + %"$gasrem_4271" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4272" = icmp ugt i64 1, %"$gasrem_4271" + br i1 %"$gascmp_4272", label %"$out_of_gas_4273", label %"$have_gas_4274" -"$out_of_gas_4867": ; preds = %"$have_gas_4863" +"$out_of_gas_4273": ; preds = %"$have_gas_4269" call void @_out_of_gas() - br label %"$have_gas_4868" + br label %"$have_gas_4274" -"$have_gas_4868": ; preds = %"$out_of_gas_4867", %"$have_gas_4863" - %"$consume_4869" = sub i64 %"$gasrem_4865", 1 - store i64 %"$consume_4869", i64* @_gasrem, align 8 +"$have_gas_4274": ; preds = %"$out_of_gas_4273", %"$have_gas_4269" + %"$consume_4275" = sub i64 %"$gasrem_4271", 1 + store i64 %"$consume_4275", i64* @_gasrem, align 8 %"$m_2" = alloca i8*, align 8 - %"$gasrem_4870" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4871" = icmp ugt i64 1, %"$gasrem_4870" - br i1 %"$gascmp_4871", label %"$out_of_gas_4872", label %"$have_gas_4873" - -"$out_of_gas_4872": ; preds = %"$have_gas_4868" - call void @_out_of_gas() - br label %"$have_gas_4873" - -"$have_gas_4873": ; preds = %"$out_of_gas_4872", %"$have_gas_4868" - %"$consume_4874" = sub i64 %"$gasrem_4870", 1 - store i64 %"$consume_4874", i64* @_gasrem, align 8 - %"$msgobj_4875_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_4875_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4875_salloc_load", i64 265) - %"$msgobj_4875_salloc" = bitcast i8* %"$msgobj_4875_salloc_salloc" to [265 x i8]* - %"$msgobj_4875" = bitcast [265 x i8]* %"$msgobj_4875_salloc" to i8* - store i8 6, i8* %"$msgobj_4875", align 1 - %"$msgobj_fname_4877" = getelementptr i8, i8* %"$msgobj_4875", i32 1 - %"$msgobj_fname_4878" = bitcast i8* %"$msgobj_fname_4877" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4876", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4878", align 8 - %"$msgobj_td_4879" = getelementptr i8, i8* %"$msgobj_4875", i32 17 - %"$msgobj_td_4880" = bitcast i8* %"$msgobj_td_4879" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4880", align 8 - %"$msgobj_v_4882" = getelementptr i8, i8* %"$msgobj_4875", i32 25 - %"$msgobj_v_4883" = bitcast i8* %"$msgobj_v_4882" to %String* - store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_4881", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_4883", align 8 - %"$msgobj_fname_4885" = getelementptr i8, i8* %"$msgobj_4875", i32 41 - %"$msgobj_fname_4886" = bitcast i8* %"$msgobj_fname_4885" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_4884", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_4886", align 8 - %"$msgobj_td_4887" = getelementptr i8, i8* %"$msgobj_4875", i32 57 - %"$msgobj_td_4888" = bitcast i8* %"$msgobj_td_4887" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_4888", align 8 - %"$msgobj_v_4889" = getelementptr i8, i8* %"$msgobj_4875", i32 65 - %"$msgobj_v_4890" = bitcast i8* %"$msgobj_v_4889" to [32 x i8]* - store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_4890", align 1 - %"$msgobj_fname_4892" = getelementptr i8, i8* %"$msgobj_4875", i32 97 - %"$msgobj_fname_4893" = bitcast i8* %"$msgobj_fname_4892" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4891", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4893", align 8 - %"$msgobj_td_4894" = getelementptr i8, i8* %"$msgobj_4875", i32 113 - %"$msgobj_td_4895" = bitcast i8* %"$msgobj_td_4894" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_4895", align 8 - %"$msgobj_v_4896" = getelementptr i8, i8* %"$msgobj_4875", i32 121 - %"$msgobj_v_4897" = bitcast i8* %"$msgobj_v_4896" to %String* - store %String %label, %String* %"$msgobj_v_4897", align 8 - %"$msgobj_fname_4899" = getelementptr i8, i8* %"$msgobj_4875", i32 137 - %"$msgobj_fname_4900" = bitcast i8* %"$msgobj_fname_4899" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4898", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4900", align 8 - %"$msgobj_td_4901" = getelementptr i8, i8* %"$msgobj_4875", i32 153 - %"$msgobj_td_4902" = bitcast i8* %"$msgobj_td_4901" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4902", align 8 - %"$recordOwner_4903" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - %"$msgobj_v_4904" = getelementptr i8, i8* %"$msgobj_4875", i32 161 - %"$msgobj_v_4905" = bitcast i8* %"$msgobj_v_4904" to [20 x i8]* - store [20 x i8] %"$recordOwner_4903", [20 x i8]* %"$msgobj_v_4905", align 1 - %"$msgobj_fname_4907" = getelementptr i8, i8* %"$msgobj_4875", i32 181 - %"$msgobj_fname_4908" = bitcast i8* %"$msgobj_fname_4907" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4906", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4908", align 8 - %"$msgobj_td_4909" = getelementptr i8, i8* %"$msgobj_4875", i32 197 - %"$msgobj_td_4910" = bitcast i8* %"$msgobj_td_4909" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_4910", align 8 - %"$msgobj_v_4911" = getelementptr i8, i8* %"$msgobj_4875", i32 205 - %"$msgobj_v_4912" = bitcast i8* %"$msgobj_v_4911" to %Uint128* - store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4912", align 8 - %"$msgobj_fname_4914" = getelementptr i8, i8* %"$msgobj_4875", i32 221 - %"$msgobj_fname_4915" = bitcast i8* %"$msgobj_fname_4914" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4913", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4915", align 8 - %"$msgobj_td_4916" = getelementptr i8, i8* %"$msgobj_4875", i32 237 - %"$msgobj_td_4917" = bitcast i8* %"$msgobj_td_4916" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_4917", align 8 - %"$msgobj_v_4918" = getelementptr i8, i8* %"$msgobj_4875", i32 245 - %"$msgobj_v_4919" = bitcast i8* %"$msgobj_v_4918" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4919", align 1 - store i8* %"$msgobj_4875", i8** %"$m_2", align 8 - %"$gasrem_4921" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4922" = icmp ugt i64 1, %"$gasrem_4921" - br i1 %"$gascmp_4922", label %"$out_of_gas_4923", label %"$have_gas_4924" - -"$out_of_gas_4923": ; preds = %"$have_gas_4873" - call void @_out_of_gas() - br label %"$have_gas_4924" - -"$have_gas_4924": ; preds = %"$out_of_gas_4923", %"$have_gas_4873" - %"$consume_4925" = sub i64 %"$gasrem_4921", 1 - store i64 %"$consume_4925", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_108" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_4926" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_4927" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4926", 0 - %"$ud-registry.oneMsg_envptr_4928" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4926", 1 - %"$$m_2_4929" = load i8*, i8** %"$m_2", align 8 - %"$ud-registry.oneMsg_call_4930" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4927"(i8* %"$ud-registry.oneMsg_envptr_4928", i8* %"$$m_2_4929") - store %TName_List_Message* %"$ud-registry.oneMsg_call_4930", %TName_List_Message** %"$ud-registry.oneMsg_108", align 8 - %"$$ud-registry.oneMsg_108_4931" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_108", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_108_4931", %TName_List_Message** %msgs9, align 8 - %"$msgs_4932" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 - %"$$msgs_4932_4933" = bitcast %TName_List_Message* %"$msgs_4932" to i8* - %"$_literal_cost_call_4934" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_4932_4933") - %"$gasrem_4935" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4936" = icmp ugt i64 %"$_literal_cost_call_4934", %"$gasrem_4935" - br i1 %"$gascmp_4936", label %"$out_of_gas_4937", label %"$have_gas_4938" - -"$out_of_gas_4937": ; preds = %"$have_gas_4924" - call void @_out_of_gas() - br label %"$have_gas_4938" - -"$have_gas_4938": ; preds = %"$out_of_gas_4937", %"$have_gas_4924" - %"$consume_4939" = sub i64 %"$gasrem_4935", %"$_literal_cost_call_4934" - store i64 %"$consume_4939", i64* @_gasrem, align 8 - %"$execptr_load_4940" = load i8*, i8** @_execptr, align 8 - %"$msgs_4941" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 - call void @_send(i8* %"$execptr_load_4940", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_4941") - br label %"$matchsucc_4573" - -"$empty_default_4577": ; preds = %"$have_gas_4571" - br label %"$matchsucc_4573" - -"$matchsucc_4573": ; preds = %"$have_gas_4938", %"$have_gas_4817", %"$empty_default_4577" + %"$gasrem_4276" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4277" = icmp ugt i64 1, %"$gasrem_4276" + br i1 %"$gascmp_4277", label %"$out_of_gas_4278", label %"$have_gas_4279" + +"$out_of_gas_4278": ; preds = %"$have_gas_4274" + call void @_out_of_gas() + br label %"$have_gas_4279" + +"$have_gas_4279": ; preds = %"$out_of_gas_4278", %"$have_gas_4274" + %"$consume_4280" = sub i64 %"$gasrem_4276", 1 + store i64 %"$consume_4280", i64* @_gasrem, align 8 + %"$msgobj_4281_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_4281_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_4281_salloc_load", i64 265) + %"$msgobj_4281_salloc" = bitcast i8* %"$msgobj_4281_salloc_salloc" to [265 x i8]* + %"$msgobj_4281" = bitcast [265 x i8]* %"$msgobj_4281_salloc" to i8* + store i8 6, i8* %"$msgobj_4281", align 1 + %"$msgobj_fname_4283" = getelementptr i8, i8* %"$msgobj_4281", i32 1 + %"$msgobj_fname_4284" = bitcast i8* %"$msgobj_fname_4283" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_4282", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_4284", align 8 + %"$msgobj_td_4285" = getelementptr i8, i8* %"$msgobj_4281", i32 17 + %"$msgobj_td_4286" = bitcast i8* %"$msgobj_td_4285" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_4286", align 8 + %"$msgobj_v_4288" = getelementptr i8, i8* %"$msgobj_4281", i32 25 + %"$msgobj_v_4289" = bitcast i8* %"$msgobj_v_4288" to %String* + store %String { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$stringlit_4287", i32 0, i32 0), i32 15 }, %String* %"$msgobj_v_4289", align 8 + %"$msgobj_fname_4291" = getelementptr i8, i8* %"$msgobj_4281", i32 41 + %"$msgobj_fname_4292" = bitcast i8* %"$msgobj_fname_4291" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_4290", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_4292", align 8 + %"$msgobj_td_4293" = getelementptr i8, i8* %"$msgobj_4281", i32 57 + %"$msgobj_td_4294" = bitcast i8* %"$msgobj_td_4293" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_4294", align 8 + %"$msgobj_v_4295" = getelementptr i8, i8* %"$msgobj_4281", i32 65 + %"$msgobj_v_4296" = bitcast i8* %"$msgobj_v_4295" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_4296", align 1 + %"$msgobj_fname_4298" = getelementptr i8, i8* %"$msgobj_4281", i32 97 + %"$msgobj_fname_4299" = bitcast i8* %"$msgobj_fname_4298" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4297", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4299", align 8 + %"$msgobj_td_4300" = getelementptr i8, i8* %"$msgobj_4281", i32 113 + %"$msgobj_td_4301" = bitcast i8* %"$msgobj_td_4300" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_4301", align 8 + %"$msgobj_v_4302" = getelementptr i8, i8* %"$msgobj_4281", i32 121 + %"$msgobj_v_4303" = bitcast i8* %"$msgobj_v_4302" to %String* + store %String %label, %String* %"$msgobj_v_4303", align 8 + %"$msgobj_fname_4305" = getelementptr i8, i8* %"$msgobj_4281", i32 137 + %"$msgobj_fname_4306" = bitcast i8* %"$msgobj_fname_4305" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_4304", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_4306", align 8 + %"$msgobj_td_4307" = getelementptr i8, i8* %"$msgobj_4281", i32 153 + %"$msgobj_td_4308" = bitcast i8* %"$msgobj_td_4307" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_4308", align 8 + %"$recordOwner_4309" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + %"$msgobj_v_4310" = getelementptr i8, i8* %"$msgobj_4281", i32 161 + %"$msgobj_v_4311" = bitcast i8* %"$msgobj_v_4310" to [20 x i8]* + store [20 x i8] %"$recordOwner_4309", [20 x i8]* %"$msgobj_v_4311", align 1 + %"$msgobj_fname_4313" = getelementptr i8, i8* %"$msgobj_4281", i32 181 + %"$msgobj_fname_4314" = bitcast i8* %"$msgobj_fname_4313" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_4312", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_4314", align 8 + %"$msgobj_td_4315" = getelementptr i8, i8* %"$msgobj_4281", i32 197 + %"$msgobj_td_4316" = bitcast i8* %"$msgobj_td_4315" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_4316", align 8 + %"$msgobj_v_4317" = getelementptr i8, i8* %"$msgobj_4281", i32 205 + %"$msgobj_v_4318" = bitcast i8* %"$msgobj_v_4317" to %Uint128* + store %Uint128 zeroinitializer, %Uint128* %"$msgobj_v_4318", align 8 + %"$msgobj_fname_4320" = getelementptr i8, i8* %"$msgobj_4281", i32 221 + %"$msgobj_fname_4321" = bitcast i8* %"$msgobj_fname_4320" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_4319", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_4321", align 8 + %"$msgobj_td_4322" = getelementptr i8, i8* %"$msgobj_4281", i32 237 + %"$msgobj_td_4323" = bitcast i8* %"$msgobj_td_4322" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_4323", align 8 + %"$msgobj_v_4324" = getelementptr i8, i8* %"$msgobj_4281", i32 245 + %"$msgobj_v_4325" = bitcast i8* %"$msgobj_v_4324" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_4325", align 1 + store i8* %"$msgobj_4281", i8** %"$m_2", align 8 + %"$gasrem_4327" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4328" = icmp ugt i64 1, %"$gasrem_4327" + br i1 %"$gascmp_4328", label %"$out_of_gas_4329", label %"$have_gas_4330" + +"$out_of_gas_4329": ; preds = %"$have_gas_4279" + call void @_out_of_gas() + br label %"$have_gas_4330" + +"$have_gas_4330": ; preds = %"$out_of_gas_4329", %"$have_gas_4279" + %"$consume_4331" = sub i64 %"$gasrem_4327", 1 + store i64 %"$consume_4331", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_55" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_4332" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_4333" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4332", 0 + %"$ud-registry.oneMsg_envptr_4334" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_4332", 1 + %"$$m_2_4335" = load i8*, i8** %"$m_2", align 8 + %"$ud-registry.oneMsg_call_4336" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_4333"(i8* %"$ud-registry.oneMsg_envptr_4334", i8* %"$$m_2_4335") + store %TName_List_Message* %"$ud-registry.oneMsg_call_4336", %TName_List_Message** %"$ud-registry.oneMsg_55", align 8 + %"$$ud-registry.oneMsg_55_4337" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_55", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_55_4337", %TName_List_Message** %msgs9, align 8 + %"$msgs_4338" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 + %"$$msgs_4338_4339" = bitcast %TName_List_Message* %"$msgs_4338" to i8* + %"$_literal_cost_call_4340" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_4338_4339") + %"$gasrem_4341" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4342" = icmp ugt i64 %"$_literal_cost_call_4340", %"$gasrem_4341" + br i1 %"$gascmp_4342", label %"$out_of_gas_4343", label %"$have_gas_4344" + +"$out_of_gas_4343": ; preds = %"$have_gas_4330" + call void @_out_of_gas() + br label %"$have_gas_4344" + +"$have_gas_4344": ; preds = %"$out_of_gas_4343", %"$have_gas_4330" + %"$consume_4345" = sub i64 %"$gasrem_4341", %"$_literal_cost_call_4340" + store i64 %"$consume_4345", i64* @_gasrem, align 8 + %"$execptr_load_4346" = load i8*, i8** @_execptr, align 8 + %"$msgs_4347" = load %TName_List_Message*, %TName_List_Message** %msgs9, align 8 + call void @_send(i8* %"$execptr_load_4346", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_4347") + br label %"$matchsucc_3998" + +"$empty_default_4002": ; preds = %"$have_gas_3996" + br label %"$matchsucc_3998" + +"$matchsucc_3998": ; preds = %"$have_gas_4344", %"$have_gas_4223", %"$empty_default_4002" ret void } define void @assign(i8* %0) { entry: - %"$_amount_4943" = getelementptr i8, i8* %0, i32 0 - %"$_amount_4944" = bitcast i8* %"$_amount_4943" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_4944", align 8 - %"$_origin_4945" = getelementptr i8, i8* %0, i32 16 - %"$_origin_4946" = bitcast i8* %"$_origin_4945" to [20 x i8]* - %"$_sender_4947" = getelementptr i8, i8* %0, i32 36 - %"$_sender_4948" = bitcast i8* %"$_sender_4947" to [20 x i8]* - %"$parent_4949" = getelementptr i8, i8* %0, i32 56 - %"$parent_4950" = bitcast i8* %"$parent_4949" to [32 x i8]* - %"$label_4951" = getelementptr i8, i8* %0, i32 88 - %"$label_4952" = bitcast i8* %"$label_4951" to %String* - %label = load %String, %String* %"$label_4952", align 8 - %"$owner_4953" = getelementptr i8, i8* %0, i32 104 - %"$owner_4954" = bitcast i8* %"$owner_4953" to [20 x i8]* - call void @"$assign_4465"(%Uint128 %_amount, [20 x i8]* %"$_origin_4946", [20 x i8]* %"$_sender_4948", [32 x i8]* %"$parent_4950", %String %label, [20 x i8]* %"$owner_4954") + %"$_amount_4349" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4350" = bitcast i8* %"$_amount_4349" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4350", align 8 + %"$_origin_4351" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4352" = bitcast i8* %"$_origin_4351" to [20 x i8]* + %"$_sender_4353" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4354" = bitcast i8* %"$_sender_4353" to [20 x i8]* + %"$parent_4355" = getelementptr i8, i8* %0, i32 56 + %"$parent_4356" = bitcast i8* %"$parent_4355" to [32 x i8]* + %"$label_4357" = getelementptr i8, i8* %0, i32 88 + %"$label_4358" = bitcast i8* %"$label_4357" to %String* + %label = load %String, %String* %"$label_4358", align 8 + %"$owner_4359" = getelementptr i8, i8* %0, i32 104 + %"$owner_4360" = bitcast i8* %"$owner_4359" to [20 x i8]* + call void @"$assign_3903"(%Uint128 %_amount, [20 x i8]* %"$_origin_4352", [20 x i8]* %"$_sender_4354", [32 x i8]* %"$parent_4356", %String %label, [20 x i8]* %"$owner_4360") ret void } -define internal void @"$bestow_4955"(%Uint128 %_amount, [20 x i8]* %"$_origin_4956", [20 x i8]* %"$_sender_4957", %String %label, [20 x i8]* %"$owner_4958", [20 x i8]* %"$resolver_4959") { +define internal void @"$bestow_4361"(%Uint128 %_amount, [20 x i8]* %"$_origin_4362", [20 x i8]* %"$_sender_4363", %String %label, [20 x i8]* %"$owner_4364", [20 x i8]* %"$resolver_4365") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_4956", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_4957", align 1 - %owner = load [20 x i8], [20 x i8]* %"$owner_4958", align 1 - %resolver = load [20 x i8], [20 x i8]* %"$resolver_4959", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4362", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4363", align 1 + %owner = load [20 x i8], [20 x i8]* %"$owner_4364", align 1 + %resolver = load [20 x i8], [20 x i8]* %"$resolver_4365", align 1 %currentAdmins = alloca %TName_List_ByStr20*, align 8 - %"$execptr_load_4961" = load i8*, i8** @_execptr, align 8 - %"$currentAdmins_call_4962" = call i8* @_fetch_field(i8* %"$execptr_load_4961", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4960", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i32 0, i8* null, i32 1) - %"$currentAdmins_4963" = bitcast i8* %"$currentAdmins_call_4962" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$currentAdmins_4963", %TName_List_ByStr20** %currentAdmins, align 8 - %"$currentAdmins_4964" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$$currentAdmins_4964_4965" = bitcast %TName_List_ByStr20* %"$currentAdmins_4964" to i8* - %"$_literal_cost_call_4966" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i8* %"$$currentAdmins_4964_4965") - %"$gasadd_4967" = add i64 %"$_literal_cost_call_4966", 0 - %"$gasrem_4968" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4969" = icmp ugt i64 %"$gasadd_4967", %"$gasrem_4968" - br i1 %"$gascmp_4969", label %"$out_of_gas_4970", label %"$have_gas_4971" - -"$out_of_gas_4970": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_4971" - -"$have_gas_4971": ; preds = %"$out_of_gas_4970", %entry - %"$consume_4972" = sub i64 %"$gasrem_4968", %"$gasadd_4967" - store i64 %"$consume_4972", i64* @_gasrem, align 8 - %"$gasrem_4973" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4974" = icmp ugt i64 1, %"$gasrem_4973" - br i1 %"$gascmp_4974", label %"$out_of_gas_4975", label %"$have_gas_4976" - -"$out_of_gas_4975": ; preds = %"$have_gas_4971" - call void @_out_of_gas() - br label %"$have_gas_4976" - -"$have_gas_4976": ; preds = %"$out_of_gas_4975", %"$have_gas_4971" - %"$consume_4977" = sub i64 %"$gasrem_4973", 1 - store i64 %"$consume_4977", i64* @_gasrem, align 8 + %"$execptr_load_4367" = load i8*, i8** @_execptr, align 8 + %"$currentAdmins_call_4368" = call i8* @_fetch_field(i8* %"$execptr_load_4367", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4366", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i32 0, i8* null, i32 1) + %"$currentAdmins_4369" = bitcast i8* %"$currentAdmins_call_4368" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$currentAdmins_4369", %TName_List_ByStr20** %currentAdmins, align 8 + %"$currentAdmins_4370" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$$currentAdmins_4370_4371" = bitcast %TName_List_ByStr20* %"$currentAdmins_4370" to i8* + %"$_literal_cost_call_4372" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i8* %"$$currentAdmins_4370_4371") + %"$gasadd_4373" = add i64 %"$_literal_cost_call_4372", 0 + %"$gasrem_4374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4375" = icmp ugt i64 %"$gasadd_4373", %"$gasrem_4374" + br i1 %"$gascmp_4375", label %"$out_of_gas_4376", label %"$have_gas_4377" + +"$out_of_gas_4376": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4377" + +"$have_gas_4377": ; preds = %"$out_of_gas_4376", %entry + %"$consume_4378" = sub i64 %"$gasrem_4374", %"$gasadd_4373" + store i64 %"$consume_4378", i64* @_gasrem, align 8 + %"$gasrem_4379" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4380" = icmp ugt i64 1, %"$gasrem_4379" + br i1 %"$gascmp_4380", label %"$out_of_gas_4381", label %"$have_gas_4382" + +"$out_of_gas_4381": ; preds = %"$have_gas_4377" + call void @_out_of_gas() + br label %"$have_gas_4382" + +"$have_gas_4382": ; preds = %"$out_of_gas_4381", %"$have_gas_4377" + %"$consume_4383" = sub i64 %"$gasrem_4379", 1 + store i64 %"$consume_4383", i64* @_gasrem, align 8 %node = alloca [32 x i8], align 1 - %"$gasrem_4978" = load i64, i64* @_gasrem, align 8 - %"$gascmp_4979" = icmp ugt i64 1, %"$gasrem_4978" - br i1 %"$gascmp_4979", label %"$out_of_gas_4980", label %"$have_gas_4981" - -"$out_of_gas_4980": ; preds = %"$have_gas_4976" - call void @_out_of_gas() - br label %"$have_gas_4981" - -"$have_gas_4981": ; preds = %"$out_of_gas_4980", %"$have_gas_4976" - %"$consume_4982" = sub i64 %"$gasrem_4978", 1 - store i64 %"$consume_4982", i64* @_gasrem, align 8 - %"$ud-registry.parentLabelToNode_132" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$ud-registry.parentLabelToNode_4983" = load { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.parentLabelToNode, align 8 - %"$ud-registry.parentLabelToNode_fptr_4984" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_4983", 0 - %"$ud-registry.parentLabelToNode_envptr_4985" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_4983", 1 - %"$ud-registry.parentLabelToNode_rootNode_4986" = alloca [32 x i8], align 1 - %"$rootNode_4987" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 - store [32 x i8] %"$rootNode_4987", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_4986", align 1 - %"$ud-registry.parentLabelToNode_call_4988" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_4984"(i8* %"$ud-registry.parentLabelToNode_envptr_4985", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_4986") - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_4988", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_132", align 8 - %"$ud-registry.parentLabelToNode_133" = alloca [32 x i8], align 1 - %"$$ud-registry.parentLabelToNode_132_4989" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_132", align 8 - %"$$ud-registry.parentLabelToNode_132_fptr_4990" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_132_4989", 0 - %"$$ud-registry.parentLabelToNode_132_envptr_4991" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_132_4989", 1 - %"$$ud-registry.parentLabelToNode_132_retalloca_4992" = alloca [32 x i8], align 1 - call void %"$$ud-registry.parentLabelToNode_132_fptr_4990"(i8* %"$$ud-registry.parentLabelToNode_132_envptr_4991", [32 x i8]* %"$$ud-registry.parentLabelToNode_132_retalloca_4992", %String %label) - %"$$ud-registry.parentLabelToNode_132_ret_4993" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_132_retalloca_4992", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_132_ret_4993", [32 x i8]* %"$ud-registry.parentLabelToNode_133", align 1 - %"$$ud-registry.parentLabelToNode_133_4994" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_133", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_133_4994", [32 x i8]* %node, align 1 + %"$gasrem_4384" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4385" = icmp ugt i64 1, %"$gasrem_4384" + br i1 %"$gascmp_4385", label %"$out_of_gas_4386", label %"$have_gas_4387" + +"$out_of_gas_4386": ; preds = %"$have_gas_4382" + call void @_out_of_gas() + br label %"$have_gas_4387" + +"$have_gas_4387": ; preds = %"$out_of_gas_4386", %"$have_gas_4382" + %"$consume_4388" = sub i64 %"$gasrem_4384", 1 + store i64 %"$consume_4388", i64* @_gasrem, align 8 + %"$ud-registry.parentLabelToNode_4389" = load { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }* @ud-registry.parentLabelToNode, align 8 + %"$ud-registry.parentLabelToNode_fptr_4390" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4389", 0 + %"$ud-registry.parentLabelToNode_envptr_4391" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4389", 1 + %"$ud-registry.parentLabelToNode_rootNode_4392" = alloca [32 x i8], align 1 + %"$rootNode_4393" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 + store [32 x i8] %"$rootNode_4393", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_4392", align 1 + %"$ud-registry.parentLabelToNode_retalloca_4394" = alloca [32 x i8], align 1 + call void %"$ud-registry.parentLabelToNode_fptr_4390"(i8* %"$ud-registry.parentLabelToNode_envptr_4391", [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4394", [32 x i8]* %"$ud-registry.parentLabelToNode_rootNode_4392", %String %label) + %"$ud-registry.parentLabelToNode_ret_4395" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4394", align 1 + store [32 x i8] %"$ud-registry.parentLabelToNode_ret_4395", [32 x i8]* %node, align 1 %recordExists = alloca %TName_Bool*, align 8 - %"$indices_buf_4995_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_4995_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4995_salloc_load", i64 32) - %"$indices_buf_4995_salloc" = bitcast i8* %"$indices_buf_4995_salloc_salloc" to [32 x i8]* - %"$indices_buf_4995" = bitcast [32 x i8]* %"$indices_buf_4995_salloc" to i8* - %"$node_4996" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_4997" = getelementptr i8, i8* %"$indices_buf_4995", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_4997" to [32 x i8]* - store [32 x i8] %"$node_4996", [32 x i8]* %indices_cast, align 1 - %"$execptr_load_4999" = load i8*, i8** @_execptr, align 8 - %"$recordExists_call_5000" = call i8* @_fetch_field(i8* %"$execptr_load_4999", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4998", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_4995", i32 0) - %"$recordExists_5001" = bitcast i8* %"$recordExists_call_5000" to %TName_Bool* - store %TName_Bool* %"$recordExists_5001", %TName_Bool** %recordExists, align 8 - %"$recordExists_5002" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$$recordExists_5002_5003" = bitcast %TName_Bool* %"$recordExists_5002" to i8* - %"$_literal_cost_call_5004" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_321", i8* %"$$recordExists_5002_5003") - %"$gasadd_5005" = add i64 %"$_literal_cost_call_5004", 0 - %"$gasadd_5006" = add i64 %"$gasadd_5005", 1 - %"$gasrem_5007" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5008" = icmp ugt i64 %"$gasadd_5006", %"$gasrem_5007" - br i1 %"$gascmp_5008", label %"$out_of_gas_5009", label %"$have_gas_5010" - -"$out_of_gas_5009": ; preds = %"$have_gas_4981" - call void @_out_of_gas() - br label %"$have_gas_5010" - -"$have_gas_5010": ; preds = %"$out_of_gas_5009", %"$have_gas_4981" - %"$consume_5011" = sub i64 %"$gasrem_5007", %"$gasadd_5006" - store i64 %"$consume_5011", i64* @_gasrem, align 8 + %"$indices_buf_4396_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4396_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4396_salloc_load", i64 32) + %"$indices_buf_4396_salloc" = bitcast i8* %"$indices_buf_4396_salloc_salloc" to [32 x i8]* + %"$indices_buf_4396" = bitcast [32 x i8]* %"$indices_buf_4396_salloc" to i8* + %"$node_4397" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4398" = getelementptr i8, i8* %"$indices_buf_4396", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4398" to [32 x i8]* + store [32 x i8] %"$node_4397", [32 x i8]* %indices_cast, align 1 + %"$execptr_load_4400" = load i8*, i8** @_execptr, align 8 + %"$recordExists_call_4401" = call i8* @_fetch_field(i8* %"$execptr_load_4400", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4399", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4396", i32 0) + %"$recordExists_4402" = bitcast i8* %"$recordExists_call_4401" to %TName_Bool* + store %TName_Bool* %"$recordExists_4402", %TName_Bool** %recordExists, align 8 + %"$recordExists_4403" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$$recordExists_4403_4404" = bitcast %TName_Bool* %"$recordExists_4403" to i8* + %"$_literal_cost_call_4405" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_204", i8* %"$$recordExists_4403_4404") + %"$gasadd_4406" = add i64 %"$_literal_cost_call_4405", 0 + %"$gasadd_4407" = add i64 %"$gasadd_4406", 1 + %"$gasrem_4408" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4409" = icmp ugt i64 %"$gasadd_4407", %"$gasrem_4408" + br i1 %"$gascmp_4409", label %"$out_of_gas_4410", label %"$have_gas_4411" + +"$out_of_gas_4410": ; preds = %"$have_gas_4387" + call void @_out_of_gas() + br label %"$have_gas_4411" + +"$have_gas_4411": ; preds = %"$out_of_gas_4410", %"$have_gas_4387" + %"$consume_4412" = sub i64 %"$gasrem_4408", %"$gasadd_4407" + store i64 %"$consume_4412", i64* @_gasrem, align 8 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_5012_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5012_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5012_salloc_load", i64 32) - %"$indices_buf_5012_salloc" = bitcast i8* %"$indices_buf_5012_salloc_salloc" to [32 x i8]* - %"$indices_buf_5012" = bitcast [32 x i8]* %"$indices_buf_5012_salloc" to i8* - %"$node_5013" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_5014" = getelementptr i8, i8* %"$indices_buf_5012", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_5014" to [32 x i8]* - store [32 x i8] %"$node_5013", [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_5016" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_5017" = call i8* @_fetch_field(i8* %"$execptr_load_5016", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5015", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_5012", i32 1) - %"$maybeRecord_5018" = bitcast i8* %"$maybeRecord_call_5017" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_5018", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_5019" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_5019_5020" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5019" to i8* - %"$_literal_cost_call_5021" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_5019_5020") - %"$gasadd_5022" = add i64 %"$_literal_cost_call_5021", 0 - %"$gasadd_5023" = add i64 %"$gasadd_5022", 1 - %"$gasrem_5024" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5025" = icmp ugt i64 %"$gasadd_5023", %"$gasrem_5024" - br i1 %"$gascmp_5025", label %"$out_of_gas_5026", label %"$have_gas_5027" - -"$out_of_gas_5026": ; preds = %"$have_gas_5010" - call void @_out_of_gas() - br label %"$have_gas_5027" - -"$have_gas_5027": ; preds = %"$out_of_gas_5026", %"$have_gas_5010" - %"$consume_5028" = sub i64 %"$gasrem_5024", %"$gasadd_5023" - store i64 %"$consume_5028", i64* @_gasrem, align 8 + %"$indices_buf_4413_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4413_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4413_salloc_load", i64 32) + %"$indices_buf_4413_salloc" = bitcast i8* %"$indices_buf_4413_salloc_salloc" to [32 x i8]* + %"$indices_buf_4413" = bitcast [32 x i8]* %"$indices_buf_4413_salloc" to i8* + %"$node_4414" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4415" = getelementptr i8, i8* %"$indices_buf_4413", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_4415" to [32 x i8]* + store [32 x i8] %"$node_4414", [32 x i8]* %indices_cast1, align 1 + %"$execptr_load_4417" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_4418" = call i8* @_fetch_field(i8* %"$execptr_load_4417", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4416", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4413", i32 1) + %"$maybeRecord_4419" = bitcast i8* %"$maybeRecord_call_4418" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_4419", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_4420" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_4420_4421" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_4420" to i8* + %"$_literal_cost_call_4422" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_4420_4421") + %"$gasadd_4423" = add i64 %"$_literal_cost_call_4422", 0 + %"$gasadd_4424" = add i64 %"$gasadd_4423", 1 + %"$gasrem_4425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4426" = icmp ugt i64 %"$gasadd_4424", %"$gasrem_4425" + br i1 %"$gascmp_4426", label %"$out_of_gas_4427", label %"$have_gas_4428" + +"$out_of_gas_4427": ; preds = %"$have_gas_4411" + call void @_out_of_gas() + br label %"$have_gas_4428" + +"$have_gas_4428": ; preds = %"$out_of_gas_4427", %"$have_gas_4411" + %"$consume_4429" = sub i64 %"$gasrem_4425", %"$gasadd_4424" + store i64 %"$consume_4429", i64* @_gasrem, align 8 %currentRegistrar = alloca [20 x i8], align 1 - %"$execptr_load_5030" = load i8*, i8** @_execptr, align 8 - %"$currentRegistrar_call_5031" = call i8* @_fetch_field(i8* %"$execptr_load_5030", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_5029", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i32 0, i8* null, i32 1) - %"$currentRegistrar_5032" = bitcast i8* %"$currentRegistrar_call_5031" to [20 x i8]* - %"$currentRegistrar_5033" = load [20 x i8], [20 x i8]* %"$currentRegistrar_5032", align 1 - store [20 x i8] %"$currentRegistrar_5033", [20 x i8]* %currentRegistrar, align 1 - %"$_literal_cost_currentRegistrar_5034" = alloca [20 x i8], align 1 - %"$currentRegistrar_5035" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_5035", [20 x i8]* %"$_literal_cost_currentRegistrar_5034", align 1 - %"$$_literal_cost_currentRegistrar_5034_5036" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_5034" to i8* - %"$_literal_cost_call_5037" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i8* %"$$_literal_cost_currentRegistrar_5034_5036") - %"$gasadd_5038" = add i64 %"$_literal_cost_call_5037", 0 - %"$gasrem_5039" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5040" = icmp ugt i64 %"$gasadd_5038", %"$gasrem_5039" - br i1 %"$gascmp_5040", label %"$out_of_gas_5041", label %"$have_gas_5042" - -"$out_of_gas_5041": ; preds = %"$have_gas_5027" - call void @_out_of_gas() - br label %"$have_gas_5042" - -"$have_gas_5042": ; preds = %"$out_of_gas_5041", %"$have_gas_5027" - %"$consume_5043" = sub i64 %"$gasrem_5039", %"$gasadd_5038" - store i64 %"$consume_5043", i64* @_gasrem, align 8 - %"$gasrem_5044" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5045" = icmp ugt i64 1, %"$gasrem_5044" - br i1 %"$gascmp_5045", label %"$out_of_gas_5046", label %"$have_gas_5047" - -"$out_of_gas_5046": ; preds = %"$have_gas_5042" - call void @_out_of_gas() - br label %"$have_gas_5047" - -"$have_gas_5047": ; preds = %"$out_of_gas_5046", %"$have_gas_5042" - %"$consume_5048" = sub i64 %"$gasrem_5044", 1 - store i64 %"$consume_5048", i64* @_gasrem, align 8 + %"$execptr_load_4431" = load i8*, i8** @_execptr, align 8 + %"$currentRegistrar_call_4432" = call i8* @_fetch_field(i8* %"$execptr_load_4431", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_4430", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i32 0, i8* null, i32 1) + %"$currentRegistrar_4433" = bitcast i8* %"$currentRegistrar_call_4432" to [20 x i8]* + %"$currentRegistrar_4434" = load [20 x i8], [20 x i8]* %"$currentRegistrar_4433", align 1 + store [20 x i8] %"$currentRegistrar_4434", [20 x i8]* %currentRegistrar, align 1 + %"$_literal_cost_currentRegistrar_4435" = alloca [20 x i8], align 1 + %"$currentRegistrar_4436" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_4436", [20 x i8]* %"$_literal_cost_currentRegistrar_4435", align 1 + %"$$_literal_cost_currentRegistrar_4435_4437" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_4435" to i8* + %"$_literal_cost_call_4438" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i8* %"$$_literal_cost_currentRegistrar_4435_4437") + %"$gasadd_4439" = add i64 %"$_literal_cost_call_4438", 0 + %"$gasrem_4440" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4441" = icmp ugt i64 %"$gasadd_4439", %"$gasrem_4440" + br i1 %"$gascmp_4441", label %"$out_of_gas_4442", label %"$have_gas_4443" + +"$out_of_gas_4442": ; preds = %"$have_gas_4428" + call void @_out_of_gas() + br label %"$have_gas_4443" + +"$have_gas_4443": ; preds = %"$out_of_gas_4442", %"$have_gas_4428" + %"$consume_4444" = sub i64 %"$gasrem_4440", %"$gasadd_4439" + store i64 %"$consume_4444", i64* @_gasrem, align 8 + %"$gasrem_4445" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4446" = icmp ugt i64 1, %"$gasrem_4445" + br i1 %"$gascmp_4446", label %"$out_of_gas_4447", label %"$have_gas_4448" + +"$out_of_gas_4447": ; preds = %"$have_gas_4443" + call void @_out_of_gas() + br label %"$have_gas_4448" + +"$have_gas_4448": ; preds = %"$out_of_gas_4447", %"$have_gas_4443" + %"$consume_4449" = sub i64 %"$gasrem_4445", 1 + store i64 %"$consume_4449", i64* @_gasrem, align 8 %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_5049" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5050" = icmp ugt i64 1, %"$gasrem_5049" - br i1 %"$gascmp_5050", label %"$out_of_gas_5051", label %"$have_gas_5052" + %"$gasrem_4450" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4451" = icmp ugt i64 1, %"$gasrem_4450" + br i1 %"$gascmp_4451", label %"$out_of_gas_4452", label %"$have_gas_4453" -"$out_of_gas_5051": ; preds = %"$have_gas_5047" +"$out_of_gas_4452": ; preds = %"$have_gas_4448" call void @_out_of_gas() - br label %"$have_gas_5052" + br label %"$have_gas_4453" -"$have_gas_5052": ; preds = %"$out_of_gas_5051", %"$have_gas_5047" - %"$consume_5053" = sub i64 %"$gasrem_5049", 1 - store i64 %"$consume_5053", i64* @_gasrem, align 8 +"$have_gas_4453": ; preds = %"$out_of_gas_4452", %"$have_gas_4448" + %"$consume_4454" = sub i64 %"$gasrem_4450", 1 + store i64 %"$consume_4454", i64* @_gasrem, align 8 %isSenderAdmin = alloca %TName_Bool*, align 8 - %"$gasrem_5054" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5055" = icmp ugt i64 1, %"$gasrem_5054" - br i1 %"$gascmp_5055", label %"$out_of_gas_5056", label %"$have_gas_5057" - -"$out_of_gas_5056": ; preds = %"$have_gas_5052" - call void @_out_of_gas() - br label %"$have_gas_5057" - -"$have_gas_5057": ; preds = %"$out_of_gas_5056", %"$have_gas_5052" - %"$consume_5058" = sub i64 %"$gasrem_5054", 1 - store i64 %"$consume_5058", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Contains_121" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_5059" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8 - %"$ud-registry.listByStr20Contains_fptr_5060" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_5059", 0 - %"$ud-registry.listByStr20Contains_envptr_5061" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_5059", 1 - %"$currentAdmins_5062" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Contains_call_5063" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_5060"(i8* %"$ud-registry.listByStr20Contains_envptr_5061", %TName_List_ByStr20* %"$currentAdmins_5062") - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_5063", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_121", align 8 - %"$ud-registry.listByStr20Contains_122" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_121_5064" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_121", align 8 - %"$$ud-registry.listByStr20Contains_121_fptr_5065" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_121_5064", 0 - %"$$ud-registry.listByStr20Contains_121_envptr_5066" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_121_5064", 1 - %"$$ud-registry.listByStr20Contains_121__sender_5067" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_121__sender_5067", align 1 - %"$$ud-registry.listByStr20Contains_121_call_5068" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_121_fptr_5065"(i8* %"$$ud-registry.listByStr20Contains_121_envptr_5066", [20 x i8]* %"$$ud-registry.listByStr20Contains_121__sender_5067") - store %TName_Bool* %"$$ud-registry.listByStr20Contains_121_call_5068", %TName_Bool** %"$ud-registry.listByStr20Contains_122", align 8 - %"$$ud-registry.listByStr20Contains_122_5069" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_122", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_122_5069", %TName_Bool** %isSenderAdmin, align 8 - %"$gasrem_5070" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5071" = icmp ugt i64 1, %"$gasrem_5070" - br i1 %"$gascmp_5071", label %"$out_of_gas_5072", label %"$have_gas_5073" - -"$out_of_gas_5072": ; preds = %"$have_gas_5057" - call void @_out_of_gas() - br label %"$have_gas_5073" - -"$have_gas_5073": ; preds = %"$out_of_gas_5072", %"$have_gas_5057" - %"$consume_5074" = sub i64 %"$gasrem_5070", 1 - store i64 %"$consume_5074", i64* @_gasrem, align 8 + %"$gasrem_4455" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4456" = icmp ugt i64 1, %"$gasrem_4455" + br i1 %"$gascmp_4456", label %"$out_of_gas_4457", label %"$have_gas_4458" + +"$out_of_gas_4457": ; preds = %"$have_gas_4453" + call void @_out_of_gas() + br label %"$have_gas_4458" + +"$have_gas_4458": ; preds = %"$out_of_gas_4457", %"$have_gas_4453" + %"$consume_4459" = sub i64 %"$gasrem_4455", 1 + store i64 %"$consume_4459", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Contains_4460" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8 + %"$ud-registry.listByStr20Contains_fptr_4461" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_4460", 0 + %"$ud-registry.listByStr20Contains_envptr_4462" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_4460", 1 + %"$currentAdmins_4463" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Contains__sender_4464" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.listByStr20Contains__sender_4464", align 1 + %"$ud-registry.listByStr20Contains_call_4465" = call %TName_Bool* %"$ud-registry.listByStr20Contains_fptr_4461"(i8* %"$ud-registry.listByStr20Contains_envptr_4462", %TName_List_ByStr20* %"$currentAdmins_4463", [20 x i8]* %"$ud-registry.listByStr20Contains__sender_4464") + store %TName_Bool* %"$ud-registry.listByStr20Contains_call_4465", %TName_Bool** %isSenderAdmin, align 8 + %"$gasrem_4466" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4467" = icmp ugt i64 1, %"$gasrem_4466" + br i1 %"$gascmp_4467", label %"$out_of_gas_4468", label %"$have_gas_4469" + +"$out_of_gas_4468": ; preds = %"$have_gas_4458" + call void @_out_of_gas() + br label %"$have_gas_4469" + +"$have_gas_4469": ; preds = %"$out_of_gas_4468", %"$have_gas_4458" + %"$consume_4470" = sub i64 %"$gasrem_4466", 1 + store i64 %"$consume_4470", i64* @_gasrem, align 8 %isSenderRegistrar = alloca %TName_Bool*, align 8 - %"$gasrem_5075" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5076" = icmp ugt i64 20, %"$gasrem_5075" - br i1 %"$gascmp_5076", label %"$out_of_gas_5077", label %"$have_gas_5078" - -"$out_of_gas_5077": ; preds = %"$have_gas_5073" - call void @_out_of_gas() - br label %"$have_gas_5078" - -"$have_gas_5078": ; preds = %"$out_of_gas_5077", %"$have_gas_5073" - %"$consume_5079" = sub i64 %"$gasrem_5075", 20 - store i64 %"$consume_5079", i64* @_gasrem, align 8 - %"$execptr_load_5080" = load i8*, i8** @_execptr, align 8 - %"$eq_currentRegistrar_5081" = alloca [20 x i8], align 1 - %"$currentRegistrar_5082" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_5082", [20 x i8]* %"$eq_currentRegistrar_5081", align 1 - %"$$eq_currentRegistrar_5081_5083" = bitcast [20 x i8]* %"$eq_currentRegistrar_5081" to i8* - %"$eq__sender_5084" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_5084", align 1 - %"$$eq__sender_5084_5085" = bitcast [20 x i8]* %"$eq__sender_5084" to i8* - %"$eq_call_5086" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5080", i32 20, i8* %"$$eq_currentRegistrar_5081_5083", i8* %"$$eq__sender_5084_5085") - store %TName_Bool* %"$eq_call_5086", %TName_Bool** %isSenderRegistrar, align 8 - %"$gasrem_5088" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5089" = icmp ugt i64 1, %"$gasrem_5088" - br i1 %"$gascmp_5089", label %"$out_of_gas_5090", label %"$have_gas_5091" - -"$out_of_gas_5090": ; preds = %"$have_gas_5078" - call void @_out_of_gas() - br label %"$have_gas_5091" - -"$have_gas_5091": ; preds = %"$out_of_gas_5090", %"$have_gas_5078" - %"$consume_5092" = sub i64 %"$gasrem_5088", 1 - store i64 %"$consume_5092", i64* @_gasrem, align 8 + %"$gasrem_4471" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4472" = icmp ugt i64 20, %"$gasrem_4471" + br i1 %"$gascmp_4472", label %"$out_of_gas_4473", label %"$have_gas_4474" + +"$out_of_gas_4473": ; preds = %"$have_gas_4469" + call void @_out_of_gas() + br label %"$have_gas_4474" + +"$have_gas_4474": ; preds = %"$out_of_gas_4473", %"$have_gas_4469" + %"$consume_4475" = sub i64 %"$gasrem_4471", 20 + store i64 %"$consume_4475", i64* @_gasrem, align 8 + %"$execptr_load_4476" = load i8*, i8** @_execptr, align 8 + %"$eq_currentRegistrar_4477" = alloca [20 x i8], align 1 + %"$currentRegistrar_4478" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_4478", [20 x i8]* %"$eq_currentRegistrar_4477", align 1 + %"$$eq_currentRegistrar_4477_4479" = bitcast [20 x i8]* %"$eq_currentRegistrar_4477" to i8* + %"$eq__sender_4480" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_4480", align 1 + %"$$eq__sender_4480_4481" = bitcast [20 x i8]* %"$eq__sender_4480" to i8* + %"$eq_call_4482" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4476", i32 20, i8* %"$$eq_currentRegistrar_4477_4479", i8* %"$$eq__sender_4480_4481") + store %TName_Bool* %"$eq_call_4482", %TName_Bool** %isSenderRegistrar, align 8 + %"$gasrem_4484" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4485" = icmp ugt i64 1, %"$gasrem_4484" + br i1 %"$gascmp_4485", label %"$out_of_gas_4486", label %"$have_gas_4487" + +"$out_of_gas_4486": ; preds = %"$have_gas_4474" + call void @_out_of_gas() + br label %"$have_gas_4487" + +"$have_gas_4487": ; preds = %"$out_of_gas_4486", %"$have_gas_4474" + %"$consume_4488" = sub i64 %"$gasrem_4484", 1 + store i64 %"$consume_4488", i64* @_gasrem, align 8 %isOkSender = alloca %TName_Bool*, align 8 - %"$gasrem_5093" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5094" = icmp ugt i64 1, %"$gasrem_5093" - br i1 %"$gascmp_5094", label %"$out_of_gas_5095", label %"$have_gas_5096" - -"$out_of_gas_5095": ; preds = %"$have_gas_5091" - call void @_out_of_gas() - br label %"$have_gas_5096" - -"$have_gas_5096": ; preds = %"$out_of_gas_5095", %"$have_gas_5091" - %"$consume_5097" = sub i64 %"$gasrem_5093", 1 - store i64 %"$consume_5097", i64* @_gasrem, align 8 - %"$BoolUtils.orb_123" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_5098" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 - %"$BoolUtils.orb_fptr_5099" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_5098", 0 - %"$BoolUtils.orb_envptr_5100" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_5098", 1 - %"$isSenderRegistrar_5101" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 - %"$BoolUtils.orb_call_5102" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_5099"(i8* %"$BoolUtils.orb_envptr_5100", %TName_Bool* %"$isSenderRegistrar_5101") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_5102", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_123", align 8 - %"$BoolUtils.orb_124" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_123_5103" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_123", align 8 - %"$$BoolUtils.orb_123_fptr_5104" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_123_5103", 0 - %"$$BoolUtils.orb_123_envptr_5105" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_123_5103", 1 - %"$isSenderAdmin_5106" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 - %"$$BoolUtils.orb_123_call_5107" = call %TName_Bool* %"$$BoolUtils.orb_123_fptr_5104"(i8* %"$$BoolUtils.orb_123_envptr_5105", %TName_Bool* %"$isSenderAdmin_5106") - store %TName_Bool* %"$$BoolUtils.orb_123_call_5107", %TName_Bool** %"$BoolUtils.orb_124", align 8 - %"$$BoolUtils.orb_124_5108" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_124", align 8 - store %TName_Bool* %"$$BoolUtils.orb_124_5108", %TName_Bool** %isOkSender, align 8 - %"$gasrem_5109" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5110" = icmp ugt i64 1, %"$gasrem_5109" - br i1 %"$gascmp_5110", label %"$out_of_gas_5111", label %"$have_gas_5112" - -"$out_of_gas_5111": ; preds = %"$have_gas_5096" - call void @_out_of_gas() - br label %"$have_gas_5112" - -"$have_gas_5112": ; preds = %"$out_of_gas_5111", %"$have_gas_5096" - %"$consume_5113" = sub i64 %"$gasrem_5109", 1 - store i64 %"$consume_5113", i64* @_gasrem, align 8 + %"$gasrem_4489" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4490" = icmp ugt i64 1, %"$gasrem_4489" + br i1 %"$gascmp_4490", label %"$out_of_gas_4491", label %"$have_gas_4492" + +"$out_of_gas_4491": ; preds = %"$have_gas_4487" + call void @_out_of_gas() + br label %"$have_gas_4492" + +"$have_gas_4492": ; preds = %"$out_of_gas_4491", %"$have_gas_4487" + %"$consume_4493" = sub i64 %"$gasrem_4489", 1 + store i64 %"$consume_4493", i64* @_gasrem, align 8 + %"$BoolUtils.orb_4494" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 + %"$BoolUtils.orb_fptr_4495" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_4494", 0 + %"$BoolUtils.orb_envptr_4496" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_4494", 1 + %"$isSenderRegistrar_4497" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 + %"$isSenderAdmin_4498" = load %TName_Bool*, %TName_Bool** %isSenderAdmin, align 8 + %"$BoolUtils.orb_call_4499" = call %TName_Bool* %"$BoolUtils.orb_fptr_4495"(i8* %"$BoolUtils.orb_envptr_4496", %TName_Bool* %"$isSenderRegistrar_4497", %TName_Bool* %"$isSenderAdmin_4498") + store %TName_Bool* %"$BoolUtils.orb_call_4499", %TName_Bool** %isOkSender, align 8 + %"$gasrem_4500" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4501" = icmp ugt i64 1, %"$gasrem_4500" + br i1 %"$gascmp_4501", label %"$out_of_gas_4502", label %"$have_gas_4503" + +"$out_of_gas_4502": ; preds = %"$have_gas_4492" + call void @_out_of_gas() + br label %"$have_gas_4503" + +"$have_gas_4503": ; preds = %"$out_of_gas_4502", %"$have_gas_4492" + %"$consume_4504" = sub i64 %"$gasrem_4500", 1 + store i64 %"$consume_4504", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_5114" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5115" = icmp ugt i64 1, %"$gasrem_5114" - br i1 %"$gascmp_5115", label %"$out_of_gas_5116", label %"$have_gas_5117" - -"$out_of_gas_5116": ; preds = %"$have_gas_5112" - call void @_out_of_gas() - br label %"$have_gas_5117" - -"$have_gas_5117": ; preds = %"$out_of_gas_5116", %"$have_gas_5112" - %"$consume_5118" = sub i64 %"$gasrem_5114", 1 - store i64 %"$consume_5118", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_125" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_5119" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_5120" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5119", 0 - %"$ud-registry.recordMemberOwner_envptr_5121" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5119", 1 - %"$maybeRecord_5122" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_5123" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_5120"(i8* %"$ud-registry.recordMemberOwner_envptr_5121", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5123", %TName_Option_ud-registry.Record* %"$maybeRecord_5122") - %"$ud-registry.recordMemberOwner_ret_5124" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5123", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_5124", [20 x i8]* %"$ud-registry.recordMemberOwner_125", align 1 - %"$$ud-registry.recordMemberOwner_125_5125" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_125", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_125_5125", [20 x i8]* %recordOwner, align 1 - %"$gasrem_5126" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5127" = icmp ugt i64 1, %"$gasrem_5126" - br i1 %"$gascmp_5127", label %"$out_of_gas_5128", label %"$have_gas_5129" - -"$out_of_gas_5128": ; preds = %"$have_gas_5117" - call void @_out_of_gas() - br label %"$have_gas_5129" - -"$have_gas_5129": ; preds = %"$out_of_gas_5128", %"$have_gas_5117" - %"$consume_5130" = sub i64 %"$gasrem_5126", 1 - store i64 %"$consume_5130", i64* @_gasrem, align 8 + %"$gasrem_4505" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4506" = icmp ugt i64 1, %"$gasrem_4505" + br i1 %"$gascmp_4506", label %"$out_of_gas_4507", label %"$have_gas_4508" + +"$out_of_gas_4507": ; preds = %"$have_gas_4503" + call void @_out_of_gas() + br label %"$have_gas_4508" + +"$have_gas_4508": ; preds = %"$out_of_gas_4507", %"$have_gas_4503" + %"$consume_4509" = sub i64 %"$gasrem_4505", 1 + store i64 %"$consume_4509", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_56" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_4510" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_4511" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4510", 0 + %"$ud-registry.recordMemberOwner_envptr_4512" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4510", 1 + %"$maybeRecord_4513" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_4514" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_4511"(i8* %"$ud-registry.recordMemberOwner_envptr_4512", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4514", %TName_Option_ud-registry.Record* %"$maybeRecord_4513") + %"$ud-registry.recordMemberOwner_ret_4515" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4514", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_4515", [20 x i8]* %"$ud-registry.recordMemberOwner_56", align 1 + %"$$ud-registry.recordMemberOwner_56_4516" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_56", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_56_4516", [20 x i8]* %recordOwner, align 1 + %"$gasrem_4517" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4518" = icmp ugt i64 1, %"$gasrem_4517" + br i1 %"$gascmp_4518", label %"$out_of_gas_4519", label %"$have_gas_4520" + +"$out_of_gas_4519": ; preds = %"$have_gas_4508" + call void @_out_of_gas() + br label %"$have_gas_4520" + +"$have_gas_4520": ; preds = %"$out_of_gas_4519", %"$have_gas_4508" + %"$consume_4521" = sub i64 %"$gasrem_4517", 1 + store i64 %"$consume_4521", i64* @_gasrem, align 8 %recordIsUnowned = alloca %TName_Bool*, align 8 - %"$gasrem_5131" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5132" = icmp ugt i64 20, %"$gasrem_5131" - br i1 %"$gascmp_5132", label %"$out_of_gas_5133", label %"$have_gas_5134" - -"$out_of_gas_5133": ; preds = %"$have_gas_5129" - call void @_out_of_gas() - br label %"$have_gas_5134" - -"$have_gas_5134": ; preds = %"$out_of_gas_5133", %"$have_gas_5129" - %"$consume_5135" = sub i64 %"$gasrem_5131", 20 - store i64 %"$consume_5135", i64* @_gasrem, align 8 - %"$execptr_load_5136" = load i8*, i8** @_execptr, align 8 - %"$eq_recordOwner_5137" = alloca [20 x i8], align 1 - %"$recordOwner_5138" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_5138", [20 x i8]* %"$eq_recordOwner_5137", align 1 - %"$$eq_recordOwner_5137_5139" = bitcast [20 x i8]* %"$eq_recordOwner_5137" to i8* - %"$eq_ud-registry.zeroByStr20_5140" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_5141" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_5141", [20 x i8]* %"$eq_ud-registry.zeroByStr20_5140", align 1 - %"$$eq_ud-registry.zeroByStr20_5140_5142" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_5140" to i8* - %"$eq_call_5143" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5136", i32 20, i8* %"$$eq_recordOwner_5137_5139", i8* %"$$eq_ud-registry.zeroByStr20_5140_5142") - store %TName_Bool* %"$eq_call_5143", %TName_Bool** %recordIsUnowned, align 8 - %"$gasrem_5145" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5146" = icmp ugt i64 1, %"$gasrem_5145" - br i1 %"$gascmp_5146", label %"$out_of_gas_5147", label %"$have_gas_5148" - -"$out_of_gas_5147": ; preds = %"$have_gas_5134" - call void @_out_of_gas() - br label %"$have_gas_5148" - -"$have_gas_5148": ; preds = %"$out_of_gas_5147", %"$have_gas_5134" - %"$consume_5149" = sub i64 %"$gasrem_5145", 1 - store i64 %"$consume_5149", i64* @_gasrem, align 8 + %"$gasrem_4522" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4523" = icmp ugt i64 20, %"$gasrem_4522" + br i1 %"$gascmp_4523", label %"$out_of_gas_4524", label %"$have_gas_4525" + +"$out_of_gas_4524": ; preds = %"$have_gas_4520" + call void @_out_of_gas() + br label %"$have_gas_4525" + +"$have_gas_4525": ; preds = %"$out_of_gas_4524", %"$have_gas_4520" + %"$consume_4526" = sub i64 %"$gasrem_4522", 20 + store i64 %"$consume_4526", i64* @_gasrem, align 8 + %"$execptr_load_4527" = load i8*, i8** @_execptr, align 8 + %"$eq_recordOwner_4528" = alloca [20 x i8], align 1 + %"$recordOwner_4529" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_4529", [20 x i8]* %"$eq_recordOwner_4528", align 1 + %"$$eq_recordOwner_4528_4530" = bitcast [20 x i8]* %"$eq_recordOwner_4528" to i8* + %"$eq_ud-registry.zeroByStr20_4531" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_4532" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_4532", [20 x i8]* %"$eq_ud-registry.zeroByStr20_4531", align 1 + %"$$eq_ud-registry.zeroByStr20_4531_4533" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_4531" to i8* + %"$eq_call_4534" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4527", i32 20, i8* %"$$eq_recordOwner_4528_4530", i8* %"$$eq_ud-registry.zeroByStr20_4531_4533") + store %TName_Bool* %"$eq_call_4534", %TName_Bool** %recordIsUnowned, align 8 + %"$gasrem_4536" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4537" = icmp ugt i64 1, %"$gasrem_4536" + br i1 %"$gascmp_4537", label %"$out_of_gas_4538", label %"$have_gas_4539" + +"$out_of_gas_4538": ; preds = %"$have_gas_4525" + call void @_out_of_gas() + br label %"$have_gas_4539" + +"$have_gas_4539": ; preds = %"$out_of_gas_4538", %"$have_gas_4525" + %"$consume_4540" = sub i64 %"$gasrem_4536", 1 + store i64 %"$consume_4540", i64* @_gasrem, align 8 %recordIsOwnedByRegistrar = alloca %TName_Bool*, align 8 - %"$gasrem_5150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5151" = icmp ugt i64 20, %"$gasrem_5150" - br i1 %"$gascmp_5151", label %"$out_of_gas_5152", label %"$have_gas_5153" - -"$out_of_gas_5152": ; preds = %"$have_gas_5148" - call void @_out_of_gas() - br label %"$have_gas_5153" - -"$have_gas_5153": ; preds = %"$out_of_gas_5152", %"$have_gas_5148" - %"$consume_5154" = sub i64 %"$gasrem_5150", 20 - store i64 %"$consume_5154", i64* @_gasrem, align 8 - %"$execptr_load_5155" = load i8*, i8** @_execptr, align 8 - %"$eq_recordOwner_5156" = alloca [20 x i8], align 1 - %"$recordOwner_5157" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_5157", [20 x i8]* %"$eq_recordOwner_5156", align 1 - %"$$eq_recordOwner_5156_5158" = bitcast [20 x i8]* %"$eq_recordOwner_5156" to i8* - %"$eq_currentRegistrar_5159" = alloca [20 x i8], align 1 - %"$currentRegistrar_5160" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_5160", [20 x i8]* %"$eq_currentRegistrar_5159", align 1 - %"$$eq_currentRegistrar_5159_5161" = bitcast [20 x i8]* %"$eq_currentRegistrar_5159" to i8* - %"$eq_call_5162" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5155", i32 20, i8* %"$$eq_recordOwner_5156_5158", i8* %"$$eq_currentRegistrar_5159_5161") - store %TName_Bool* %"$eq_call_5162", %TName_Bool** %recordIsOwnedByRegistrar, align 8 - %"$gasrem_5164" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5165" = icmp ugt i64 1, %"$gasrem_5164" - br i1 %"$gascmp_5165", label %"$out_of_gas_5166", label %"$have_gas_5167" - -"$out_of_gas_5166": ; preds = %"$have_gas_5153" - call void @_out_of_gas() - br label %"$have_gas_5167" - -"$have_gas_5167": ; preds = %"$out_of_gas_5166", %"$have_gas_5153" - %"$consume_5168" = sub i64 %"$gasrem_5164", 1 - store i64 %"$consume_5168", i64* @_gasrem, align 8 + %"$gasrem_4541" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4542" = icmp ugt i64 20, %"$gasrem_4541" + br i1 %"$gascmp_4542", label %"$out_of_gas_4543", label %"$have_gas_4544" + +"$out_of_gas_4543": ; preds = %"$have_gas_4539" + call void @_out_of_gas() + br label %"$have_gas_4544" + +"$have_gas_4544": ; preds = %"$out_of_gas_4543", %"$have_gas_4539" + %"$consume_4545" = sub i64 %"$gasrem_4541", 20 + store i64 %"$consume_4545", i64* @_gasrem, align 8 + %"$execptr_load_4546" = load i8*, i8** @_execptr, align 8 + %"$eq_recordOwner_4547" = alloca [20 x i8], align 1 + %"$recordOwner_4548" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_4548", [20 x i8]* %"$eq_recordOwner_4547", align 1 + %"$$eq_recordOwner_4547_4549" = bitcast [20 x i8]* %"$eq_recordOwner_4547" to i8* + %"$eq_currentRegistrar_4550" = alloca [20 x i8], align 1 + %"$currentRegistrar_4551" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_4551", [20 x i8]* %"$eq_currentRegistrar_4550", align 1 + %"$$eq_currentRegistrar_4550_4552" = bitcast [20 x i8]* %"$eq_currentRegistrar_4550" to i8* + %"$eq_call_4553" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4546", i32 20, i8* %"$$eq_recordOwner_4547_4549", i8* %"$$eq_currentRegistrar_4550_4552") + store %TName_Bool* %"$eq_call_4553", %TName_Bool** %recordIsOwnedByRegistrar, align 8 + %"$gasrem_4555" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4556" = icmp ugt i64 1, %"$gasrem_4555" + br i1 %"$gascmp_4556", label %"$out_of_gas_4557", label %"$have_gas_4558" + +"$out_of_gas_4557": ; preds = %"$have_gas_4544" + call void @_out_of_gas() + br label %"$have_gas_4558" + +"$have_gas_4558": ; preds = %"$out_of_gas_4557", %"$have_gas_4544" + %"$consume_4559" = sub i64 %"$gasrem_4555", 1 + store i64 %"$consume_4559", i64* @_gasrem, align 8 %isRegistrarSenderAndOwned = alloca %TName_Bool*, align 8 - %"$gasrem_5169" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5170" = icmp ugt i64 1, %"$gasrem_5169" - br i1 %"$gascmp_5170", label %"$out_of_gas_5171", label %"$have_gas_5172" - -"$out_of_gas_5171": ; preds = %"$have_gas_5167" - call void @_out_of_gas() - br label %"$have_gas_5172" - -"$have_gas_5172": ; preds = %"$out_of_gas_5171", %"$have_gas_5167" - %"$consume_5173" = sub i64 %"$gasrem_5169", 1 - store i64 %"$consume_5173", i64* @_gasrem, align 8 - %"$BoolUtils.andb_126" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_5174" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_5175" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5174", 0 - %"$BoolUtils.andb_envptr_5176" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5174", 1 - %"$recordIsOwnedByRegistrar_5177" = load %TName_Bool*, %TName_Bool** %recordIsOwnedByRegistrar, align 8 - %"$BoolUtils.andb_call_5178" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_5175"(i8* %"$BoolUtils.andb_envptr_5176", %TName_Bool* %"$recordIsOwnedByRegistrar_5177") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_5178", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_126", align 8 - %"$BoolUtils.andb_127" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_126_5179" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_126", align 8 - %"$$BoolUtils.andb_126_fptr_5180" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_126_5179", 0 - %"$$BoolUtils.andb_126_envptr_5181" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_126_5179", 1 - %"$isSenderRegistrar_5182" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 - %"$$BoolUtils.andb_126_call_5183" = call %TName_Bool* %"$$BoolUtils.andb_126_fptr_5180"(i8* %"$$BoolUtils.andb_126_envptr_5181", %TName_Bool* %"$isSenderRegistrar_5182") - store %TName_Bool* %"$$BoolUtils.andb_126_call_5183", %TName_Bool** %"$BoolUtils.andb_127", align 8 - %"$$BoolUtils.andb_127_5184" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_127", align 8 - store %TName_Bool* %"$$BoolUtils.andb_127_5184", %TName_Bool** %isRegistrarSenderAndOwned, align 8 - %"$gasrem_5185" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5186" = icmp ugt i64 1, %"$gasrem_5185" - br i1 %"$gascmp_5186", label %"$out_of_gas_5187", label %"$have_gas_5188" - -"$out_of_gas_5187": ; preds = %"$have_gas_5172" - call void @_out_of_gas() - br label %"$have_gas_5188" - -"$have_gas_5188": ; preds = %"$out_of_gas_5187", %"$have_gas_5172" - %"$consume_5189" = sub i64 %"$gasrem_5185", 1 - store i64 %"$consume_5189", i64* @_gasrem, align 8 + %"$gasrem_4560" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4561" = icmp ugt i64 1, %"$gasrem_4560" + br i1 %"$gascmp_4561", label %"$out_of_gas_4562", label %"$have_gas_4563" + +"$out_of_gas_4562": ; preds = %"$have_gas_4558" + call void @_out_of_gas() + br label %"$have_gas_4563" + +"$have_gas_4563": ; preds = %"$out_of_gas_4562", %"$have_gas_4558" + %"$consume_4564" = sub i64 %"$gasrem_4560", 1 + store i64 %"$consume_4564", i64* @_gasrem, align 8 + %"$BoolUtils.andb_4565" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_4566" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4565", 0 + %"$BoolUtils.andb_envptr_4567" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4565", 1 + %"$recordIsOwnedByRegistrar_4568" = load %TName_Bool*, %TName_Bool** %recordIsOwnedByRegistrar, align 8 + %"$isSenderRegistrar_4569" = load %TName_Bool*, %TName_Bool** %isSenderRegistrar, align 8 + %"$BoolUtils.andb_call_4570" = call %TName_Bool* %"$BoolUtils.andb_fptr_4566"(i8* %"$BoolUtils.andb_envptr_4567", %TName_Bool* %"$recordIsOwnedByRegistrar_4568", %TName_Bool* %"$isSenderRegistrar_4569") + store %TName_Bool* %"$BoolUtils.andb_call_4570", %TName_Bool** %isRegistrarSenderAndOwned, align 8 + %"$gasrem_4571" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4572" = icmp ugt i64 1, %"$gasrem_4571" + br i1 %"$gascmp_4572", label %"$out_of_gas_4573", label %"$have_gas_4574" + +"$out_of_gas_4573": ; preds = %"$have_gas_4563" + call void @_out_of_gas() + br label %"$have_gas_4574" + +"$have_gas_4574": ; preds = %"$out_of_gas_4573", %"$have_gas_4563" + %"$consume_4575" = sub i64 %"$gasrem_4571", 1 + store i64 %"$consume_4575", i64* @_gasrem, align 8 %isOkRecordOwner = alloca %TName_Bool*, align 8 - %"$gasrem_5190" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5191" = icmp ugt i64 1, %"$gasrem_5190" - br i1 %"$gascmp_5191", label %"$out_of_gas_5192", label %"$have_gas_5193" - -"$out_of_gas_5192": ; preds = %"$have_gas_5188" - call void @_out_of_gas() - br label %"$have_gas_5193" - -"$have_gas_5193": ; preds = %"$out_of_gas_5192", %"$have_gas_5188" - %"$consume_5194" = sub i64 %"$gasrem_5190", 1 - store i64 %"$consume_5194", i64* @_gasrem, align 8 - %"$BoolUtils.orb_128" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.orb_5195" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 - %"$BoolUtils.orb_fptr_5196" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_5195", 0 - %"$BoolUtils.orb_envptr_5197" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_5195", 1 - %"$recordIsUnowned_5198" = load %TName_Bool*, %TName_Bool** %recordIsUnowned, align 8 - %"$BoolUtils.orb_call_5199" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_fptr_5196"(i8* %"$BoolUtils.orb_envptr_5197", %TName_Bool* %"$recordIsUnowned_5198") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_call_5199", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_128", align 8 - %"$BoolUtils.orb_129" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.orb_128_5200" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.orb_128", align 8 - %"$$BoolUtils.orb_128_fptr_5201" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_128_5200", 0 - %"$$BoolUtils.orb_128_envptr_5202" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.orb_128_5200", 1 - %"$isRegistrarSenderAndOwned_5203" = load %TName_Bool*, %TName_Bool** %isRegistrarSenderAndOwned, align 8 - %"$$BoolUtils.orb_128_call_5204" = call %TName_Bool* %"$$BoolUtils.orb_128_fptr_5201"(i8* %"$$BoolUtils.orb_128_envptr_5202", %TName_Bool* %"$isRegistrarSenderAndOwned_5203") - store %TName_Bool* %"$$BoolUtils.orb_128_call_5204", %TName_Bool** %"$BoolUtils.orb_129", align 8 - %"$$BoolUtils.orb_129_5205" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.orb_129", align 8 - store %TName_Bool* %"$$BoolUtils.orb_129_5205", %TName_Bool** %isOkRecordOwner, align 8 - %"$gasrem_5206" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5207" = icmp ugt i64 1, %"$gasrem_5206" - br i1 %"$gascmp_5207", label %"$out_of_gas_5208", label %"$have_gas_5209" - -"$out_of_gas_5208": ; preds = %"$have_gas_5193" - call void @_out_of_gas() - br label %"$have_gas_5209" - -"$have_gas_5209": ; preds = %"$out_of_gas_5208", %"$have_gas_5193" - %"$consume_5210" = sub i64 %"$gasrem_5206", 1 - store i64 %"$consume_5210", i64* @_gasrem, align 8 - %"$BoolUtils.andb_130" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_5211" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_5212" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5211", 0 - %"$BoolUtils.andb_envptr_5213" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5211", 1 - %"$isOkSender_5214" = load %TName_Bool*, %TName_Bool** %isOkSender, align 8 - %"$BoolUtils.andb_call_5215" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_5212"(i8* %"$BoolUtils.andb_envptr_5213", %TName_Bool* %"$isOkSender_5214") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_5215", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_130", align 8 - %"$BoolUtils.andb_131" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_130_5216" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_130", align 8 - %"$$BoolUtils.andb_130_fptr_5217" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_130_5216", 0 - %"$$BoolUtils.andb_130_envptr_5218" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_130_5216", 1 - %"$isOkRecordOwner_5219" = load %TName_Bool*, %TName_Bool** %isOkRecordOwner, align 8 - %"$$BoolUtils.andb_130_call_5220" = call %TName_Bool* %"$$BoolUtils.andb_130_fptr_5217"(i8* %"$$BoolUtils.andb_130_envptr_5218", %TName_Bool* %"$isOkRecordOwner_5219") - store %TName_Bool* %"$$BoolUtils.andb_130_call_5220", %TName_Bool** %"$BoolUtils.andb_131", align 8 - %"$$BoolUtils.andb_131_5221" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_131", align 8 - store %TName_Bool* %"$$BoolUtils.andb_131_5221", %TName_Bool** %isOk, align 8 - %"$gasrem_5222" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5223" = icmp ugt i64 2, %"$gasrem_5222" - br i1 %"$gascmp_5223", label %"$out_of_gas_5224", label %"$have_gas_5225" - -"$out_of_gas_5224": ; preds = %"$have_gas_5209" - call void @_out_of_gas() - br label %"$have_gas_5225" - -"$have_gas_5225": ; preds = %"$out_of_gas_5224", %"$have_gas_5209" - %"$consume_5226" = sub i64 %"$gasrem_5222", 2 - store i64 %"$consume_5226", i64* @_gasrem, align 8 - %"$isOk_5228" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_5229" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5228", i32 0, i32 0 - %"$isOk_tag_5230" = load i8, i8* %"$isOk_tag_5229", align 1 - switch i8 %"$isOk_tag_5230", label %"$empty_default_5231" [ - i8 0, label %"$True_5232" - i8 1, label %"$False_5345" + %"$gasrem_4576" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4577" = icmp ugt i64 1, %"$gasrem_4576" + br i1 %"$gascmp_4577", label %"$out_of_gas_4578", label %"$have_gas_4579" + +"$out_of_gas_4578": ; preds = %"$have_gas_4574" + call void @_out_of_gas() + br label %"$have_gas_4579" + +"$have_gas_4579": ; preds = %"$out_of_gas_4578", %"$have_gas_4574" + %"$consume_4580" = sub i64 %"$gasrem_4576", 1 + store i64 %"$consume_4580", i64* @_gasrem, align 8 + %"$BoolUtils.orb_4581" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.orb, align 8 + %"$BoolUtils.orb_fptr_4582" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_4581", 0 + %"$BoolUtils.orb_envptr_4583" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.orb_4581", 1 + %"$recordIsUnowned_4584" = load %TName_Bool*, %TName_Bool** %recordIsUnowned, align 8 + %"$isRegistrarSenderAndOwned_4585" = load %TName_Bool*, %TName_Bool** %isRegistrarSenderAndOwned, align 8 + %"$BoolUtils.orb_call_4586" = call %TName_Bool* %"$BoolUtils.orb_fptr_4582"(i8* %"$BoolUtils.orb_envptr_4583", %TName_Bool* %"$recordIsUnowned_4584", %TName_Bool* %"$isRegistrarSenderAndOwned_4585") + store %TName_Bool* %"$BoolUtils.orb_call_4586", %TName_Bool** %isOkRecordOwner, align 8 + %"$gasrem_4587" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4588" = icmp ugt i64 1, %"$gasrem_4587" + br i1 %"$gascmp_4588", label %"$out_of_gas_4589", label %"$have_gas_4590" + +"$out_of_gas_4589": ; preds = %"$have_gas_4579" + call void @_out_of_gas() + br label %"$have_gas_4590" + +"$have_gas_4590": ; preds = %"$out_of_gas_4589", %"$have_gas_4579" + %"$consume_4591" = sub i64 %"$gasrem_4587", 1 + store i64 %"$consume_4591", i64* @_gasrem, align 8 + %"$BoolUtils.andb_4592" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_4593" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4592", 0 + %"$BoolUtils.andb_envptr_4594" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_4592", 1 + %"$isOkSender_4595" = load %TName_Bool*, %TName_Bool** %isOkSender, align 8 + %"$isOkRecordOwner_4596" = load %TName_Bool*, %TName_Bool** %isOkRecordOwner, align 8 + %"$BoolUtils.andb_call_4597" = call %TName_Bool* %"$BoolUtils.andb_fptr_4593"(i8* %"$BoolUtils.andb_envptr_4594", %TName_Bool* %"$isOkSender_4595", %TName_Bool* %"$isOkRecordOwner_4596") + store %TName_Bool* %"$BoolUtils.andb_call_4597", %TName_Bool** %isOk, align 8 + %"$gasrem_4598" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4599" = icmp ugt i64 2, %"$gasrem_4598" + br i1 %"$gascmp_4599", label %"$out_of_gas_4600", label %"$have_gas_4601" + +"$out_of_gas_4600": ; preds = %"$have_gas_4590" + call void @_out_of_gas() + br label %"$have_gas_4601" + +"$have_gas_4601": ; preds = %"$out_of_gas_4600", %"$have_gas_4590" + %"$consume_4602" = sub i64 %"$gasrem_4598", 2 + store i64 %"$consume_4602", i64* @_gasrem, align 8 + %"$isOk_4604" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_4605" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_4604", i32 0, i32 0 + %"$isOk_tag_4606" = load i8, i8* %"$isOk_tag_4605", align 1 + switch i8 %"$isOk_tag_4606", label %"$empty_default_4607" [ + i8 0, label %"$True_4608" + i8 1, label %"$False_4707" ] -"$True_5232": ; preds = %"$have_gas_5225" - %"$isOk_5233" = bitcast %TName_Bool* %"$isOk_5228" to %CName_True* - %"$gasrem_5234" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5235" = icmp ugt i64 2, %"$gasrem_5234" - br i1 %"$gascmp_5235", label %"$out_of_gas_5236", label %"$have_gas_5237" +"$True_4608": ; preds = %"$have_gas_4601" + %"$isOk_4609" = bitcast %TName_Bool* %"$isOk_4604" to %CName_True* + %"$gasrem_4610" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4611" = icmp ugt i64 2, %"$gasrem_4610" + br i1 %"$gascmp_4611", label %"$out_of_gas_4612", label %"$have_gas_4613" -"$out_of_gas_5236": ; preds = %"$True_5232" +"$out_of_gas_4612": ; preds = %"$True_4608" call void @_out_of_gas() - br label %"$have_gas_5237" + br label %"$have_gas_4613" -"$have_gas_5237": ; preds = %"$out_of_gas_5236", %"$True_5232" - %"$consume_5238" = sub i64 %"$gasrem_5234", 2 - store i64 %"$consume_5238", i64* @_gasrem, align 8 - %"$recordExists_5240" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 - %"$recordExists_tag_5241" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_5240", i32 0, i32 0 - %"$recordExists_tag_5242" = load i8, i8* %"$recordExists_tag_5241", align 1 - switch i8 %"$recordExists_tag_5242", label %"$default_5243" [ - i8 1, label %"$False_5244" +"$have_gas_4613": ; preds = %"$out_of_gas_4612", %"$True_4608" + %"$consume_4614" = sub i64 %"$gasrem_4610", 2 + store i64 %"$consume_4614", i64* @_gasrem, align 8 + %"$recordExists_4616" = load %TName_Bool*, %TName_Bool** %recordExists, align 8 + %"$recordExists_tag_4617" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$recordExists_4616", i32 0, i32 0 + %"$recordExists_tag_4618" = load i8, i8* %"$recordExists_tag_4617", align 1 + switch i8 %"$recordExists_tag_4618", label %"$default_4619" [ + i8 1, label %"$False_4620" ] -"$False_5244": ; preds = %"$have_gas_5237" - %"$recordExists_5245" = bitcast %TName_Bool* %"$recordExists_5240" to %CName_False* - %"$gasrem_5246" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5247" = icmp ugt i64 1, %"$gasrem_5246" - br i1 %"$gascmp_5247", label %"$out_of_gas_5248", label %"$have_gas_5249" +"$False_4620": ; preds = %"$have_gas_4613" + %"$recordExists_4621" = bitcast %TName_Bool* %"$recordExists_4616" to %CName_False* + %"$gasrem_4622" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4623" = icmp ugt i64 1, %"$gasrem_4622" + br i1 %"$gascmp_4623", label %"$out_of_gas_4624", label %"$have_gas_4625" -"$out_of_gas_5248": ; preds = %"$False_5244" +"$out_of_gas_4624": ; preds = %"$False_4620" call void @_out_of_gas() - br label %"$have_gas_5249" + br label %"$have_gas_4625" -"$have_gas_5249": ; preds = %"$out_of_gas_5248", %"$False_5244" - %"$consume_5250" = sub i64 %"$gasrem_5246", 1 - store i64 %"$consume_5250", i64* @_gasrem, align 8 +"$have_gas_4625": ; preds = %"$out_of_gas_4624", %"$False_4620" + %"$consume_4626" = sub i64 %"$gasrem_4622", 1 + store i64 %"$consume_4626", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_5251" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5252" = icmp ugt i64 1, %"$gasrem_5251" - br i1 %"$gascmp_5252", label %"$out_of_gas_5253", label %"$have_gas_5254" - -"$out_of_gas_5253": ; preds = %"$have_gas_5249" - call void @_out_of_gas() - br label %"$have_gas_5254" - -"$have_gas_5254": ; preds = %"$out_of_gas_5253", %"$have_gas_5249" - %"$consume_5255" = sub i64 %"$gasrem_5251", 1 - store i64 %"$consume_5255", i64* @_gasrem, align 8 - %"$ud-registry.eNewDomain_118" = alloca { i8* (i8*, %String)*, i8* }, align 8 - %"$ud-registry.eNewDomain_5256" = load { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eNewDomain, align 8 - %"$ud-registry.eNewDomain_fptr_5257" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_5256", 0 - %"$ud-registry.eNewDomain_envptr_5258" = extractvalue { { i8* (i8*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eNewDomain_5256", 1 - %"$ud-registry.eNewDomain_rootNode_5259" = alloca [32 x i8], align 1 - %"$rootNode_5260" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 - store [32 x i8] %"$rootNode_5260", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_5259", align 1 - %"$ud-registry.eNewDomain_call_5261" = call { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_fptr_5257"(i8* %"$ud-registry.eNewDomain_envptr_5258", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_5259") - store { i8* (i8*, %String)*, i8* } %"$ud-registry.eNewDomain_call_5261", { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_118", align 8 - %"$ud-registry.eNewDomain_119" = alloca i8*, align 8 - %"$$ud-registry.eNewDomain_118_5262" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* %"$ud-registry.eNewDomain_118", align 8 - %"$$ud-registry.eNewDomain_118_fptr_5263" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_118_5262", 0 - %"$$ud-registry.eNewDomain_118_envptr_5264" = extractvalue { i8* (i8*, %String)*, i8* } %"$$ud-registry.eNewDomain_118_5262", 1 - %"$$ud-registry.eNewDomain_118_call_5265" = call i8* %"$$ud-registry.eNewDomain_118_fptr_5263"(i8* %"$$ud-registry.eNewDomain_118_envptr_5264", %String %label) - store i8* %"$$ud-registry.eNewDomain_118_call_5265", i8** %"$ud-registry.eNewDomain_119", align 8 - %"$$ud-registry.eNewDomain_119_5266" = load i8*, i8** %"$ud-registry.eNewDomain_119", align 8 - store i8* %"$$ud-registry.eNewDomain_119_5266", i8** %e, align 8 - %"$e_5267" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_5269" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5267") - %"$gasrem_5270" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5271" = icmp ugt i64 %"$_literal_cost_call_5269", %"$gasrem_5270" - br i1 %"$gascmp_5271", label %"$out_of_gas_5272", label %"$have_gas_5273" - -"$out_of_gas_5272": ; preds = %"$have_gas_5254" - call void @_out_of_gas() - br label %"$have_gas_5273" - -"$have_gas_5273": ; preds = %"$out_of_gas_5272", %"$have_gas_5254" - %"$consume_5274" = sub i64 %"$gasrem_5270", %"$_literal_cost_call_5269" - store i64 %"$consume_5274", i64* @_gasrem, align 8 - %"$execptr_load_5275" = load i8*, i8** @_execptr, align 8 - %"$e_5276" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_5275", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5276") - br label %"$matchsucc_5239" - -"$default_5243": ; preds = %"$have_gas_5237" + %"$gasrem_4627" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4628" = icmp ugt i64 1, %"$gasrem_4627" + br i1 %"$gascmp_4628", label %"$out_of_gas_4629", label %"$have_gas_4630" + +"$out_of_gas_4629": ; preds = %"$have_gas_4625" + call void @_out_of_gas() + br label %"$have_gas_4630" + +"$have_gas_4630": ; preds = %"$out_of_gas_4629", %"$have_gas_4625" + %"$consume_4631" = sub i64 %"$gasrem_4627", 1 + store i64 %"$consume_4631", i64* @_gasrem, align 8 + %"$ud-registry.eNewDomain_4632" = load { i8* (i8*, [32 x i8]*, %String)*, i8* }, { i8* (i8*, [32 x i8]*, %String)*, i8* }* @ud-registry.eNewDomain, align 8 + %"$ud-registry.eNewDomain_fptr_4633" = extractvalue { i8* (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.eNewDomain_4632", 0 + %"$ud-registry.eNewDomain_envptr_4634" = extractvalue { i8* (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.eNewDomain_4632", 1 + %"$ud-registry.eNewDomain_rootNode_4635" = alloca [32 x i8], align 1 + %"$rootNode_4636" = load [32 x i8], [32 x i8]* @_cparam_rootNode, align 1 + store [32 x i8] %"$rootNode_4636", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_4635", align 1 + %"$ud-registry.eNewDomain_call_4637" = call i8* %"$ud-registry.eNewDomain_fptr_4633"(i8* %"$ud-registry.eNewDomain_envptr_4634", [32 x i8]* %"$ud-registry.eNewDomain_rootNode_4635", %String %label) + store i8* %"$ud-registry.eNewDomain_call_4637", i8** %e, align 8 + %"$e_4638" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_4640" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4638") + %"$gasrem_4641" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4642" = icmp ugt i64 %"$_literal_cost_call_4640", %"$gasrem_4641" + br i1 %"$gascmp_4642", label %"$out_of_gas_4643", label %"$have_gas_4644" + +"$out_of_gas_4643": ; preds = %"$have_gas_4630" + call void @_out_of_gas() + br label %"$have_gas_4644" + +"$have_gas_4644": ; preds = %"$out_of_gas_4643", %"$have_gas_4630" + %"$consume_4645" = sub i64 %"$gasrem_4641", %"$_literal_cost_call_4640" + store i64 %"$consume_4645", i64* @_gasrem, align 8 + %"$execptr_load_4646" = load i8*, i8** @_execptr, align 8 + %"$e_4647" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_4646", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4647") + br label %"$matchsucc_4615" + +"$default_4619": ; preds = %"$have_gas_4613" br label %"$joinp_8" -"$joinp_8": ; preds = %"$default_5243" - br label %"$matchsucc_5239" +"$joinp_8": ; preds = %"$default_4619" + br label %"$matchsucc_4615" -"$matchsucc_5239": ; preds = %"$have_gas_5273", %"$joinp_8" - %"$gasrem_5277" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5278" = icmp ugt i64 1, %"$gasrem_5277" - br i1 %"$gascmp_5278", label %"$out_of_gas_5279", label %"$have_gas_5280" +"$matchsucc_4615": ; preds = %"$have_gas_4644", %"$joinp_8" + %"$gasrem_4648" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4649" = icmp ugt i64 1, %"$gasrem_4648" + br i1 %"$gascmp_4649", label %"$out_of_gas_4650", label %"$have_gas_4651" -"$out_of_gas_5279": ; preds = %"$matchsucc_5239" +"$out_of_gas_4650": ; preds = %"$matchsucc_4615" call void @_out_of_gas() - br label %"$have_gas_5280" + br label %"$have_gas_4651" -"$have_gas_5280": ; preds = %"$out_of_gas_5279", %"$matchsucc_5239" - %"$consume_5281" = sub i64 %"$gasrem_5277", 1 - store i64 %"$consume_5281", i64* @_gasrem, align 8 +"$have_gas_4651": ; preds = %"$out_of_gas_4650", %"$matchsucc_4615" + %"$consume_4652" = sub i64 %"$gasrem_4648", 1 + store i64 %"$consume_4652", i64* @_gasrem, align 8 %newRecord = alloca %TName_ud-registry.Record*, align 8 - %"$gasrem_5282" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5283" = icmp ugt i64 1, %"$gasrem_5282" - br i1 %"$gascmp_5283", label %"$out_of_gas_5284", label %"$have_gas_5285" - -"$out_of_gas_5284": ; preds = %"$have_gas_5280" - call void @_out_of_gas() - br label %"$have_gas_5285" - -"$have_gas_5285": ; preds = %"$out_of_gas_5284", %"$have_gas_5280" - %"$consume_5286" = sub i64 %"$gasrem_5282", 1 - store i64 %"$consume_5286", i64* @_gasrem, align 8 - %"$adtval_5287_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_5287_salloc" = call i8* @_salloc(i8* %"$adtval_5287_load", i64 41) - %"$adtval_5287" = bitcast i8* %"$adtval_5287_salloc" to %CName_ud-registry.Record* - %"$adtgep_5288" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5287", i32 0, i32 0 - store i8 0, i8* %"$adtgep_5288", align 1 - %"$adtgep_5289" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5287", i32 0, i32 1 - store [20 x i8] %owner, [20 x i8]* %"$adtgep_5289", align 1 - %"$adtgep_5290" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_5287", i32 0, i32 2 - store [20 x i8] %resolver, [20 x i8]* %"$adtgep_5290", align 1 - %"$adtptr_5291" = bitcast %CName_ud-registry.Record* %"$adtval_5287" to %TName_ud-registry.Record* - store %TName_ud-registry.Record* %"$adtptr_5291", %TName_ud-registry.Record** %newRecord, align 8 - %"$newRecord_5292" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$$newRecord_5292_5293" = bitcast %TName_ud-registry.Record* %"$newRecord_5292" to i8* - %"$_literal_cost_call_5294" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_318", i8* %"$$newRecord_5292_5293") - %"$gasadd_5295" = add i64 %"$_literal_cost_call_5294", 1 - %"$gasrem_5296" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5297" = icmp ugt i64 %"$gasadd_5295", %"$gasrem_5296" - br i1 %"$gascmp_5297", label %"$out_of_gas_5298", label %"$have_gas_5299" - -"$out_of_gas_5298": ; preds = %"$have_gas_5285" - call void @_out_of_gas() - br label %"$have_gas_5299" - -"$have_gas_5299": ; preds = %"$out_of_gas_5298", %"$have_gas_5285" - %"$consume_5300" = sub i64 %"$gasrem_5296", %"$gasadd_5295" - store i64 %"$consume_5300", i64* @_gasrem, align 8 - %"$indices_buf_5301_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5301_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5301_salloc_load", i64 32) - %"$indices_buf_5301_salloc" = bitcast i8* %"$indices_buf_5301_salloc_salloc" to [32 x i8]* - %"$indices_buf_5301" = bitcast [32 x i8]* %"$indices_buf_5301_salloc" to i8* - %"$node_5302" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_5303" = getelementptr i8, i8* %"$indices_buf_5301", i32 0 - %indices_cast2 = bitcast i8* %"$indices_gep_5303" to [32 x i8]* - store [32 x i8] %"$node_5302", [32 x i8]* %indices_cast2, align 1 - %"$execptr_load_5304" = load i8*, i8** @_execptr, align 8 - %"$newRecord_5306" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 - %"$update_value_5307" = bitcast %TName_ud-registry.Record* %"$newRecord_5306" to i8* - call void @_update_field(i8* %"$execptr_load_5304", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5305", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_5301", i8* %"$update_value_5307") - %"$gasrem_5308" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5309" = icmp ugt i64 1, %"$gasrem_5308" - br i1 %"$gascmp_5309", label %"$out_of_gas_5310", label %"$have_gas_5311" - -"$out_of_gas_5310": ; preds = %"$have_gas_5299" - call void @_out_of_gas() - br label %"$have_gas_5311" - -"$have_gas_5311": ; preds = %"$out_of_gas_5310", %"$have_gas_5299" - %"$consume_5312" = sub i64 %"$gasrem_5308", 1 - store i64 %"$consume_5312", i64* @_gasrem, align 8 + %"$gasrem_4653" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4654" = icmp ugt i64 1, %"$gasrem_4653" + br i1 %"$gascmp_4654", label %"$out_of_gas_4655", label %"$have_gas_4656" + +"$out_of_gas_4655": ; preds = %"$have_gas_4651" + call void @_out_of_gas() + br label %"$have_gas_4656" + +"$have_gas_4656": ; preds = %"$out_of_gas_4655", %"$have_gas_4651" + %"$consume_4657" = sub i64 %"$gasrem_4653", 1 + store i64 %"$consume_4657", i64* @_gasrem, align 8 + %"$adtval_4658_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_4658_salloc" = call i8* @_salloc(i8* %"$adtval_4658_load", i64 41) + %"$adtval_4658" = bitcast i8* %"$adtval_4658_salloc" to %CName_ud-registry.Record* + %"$adtgep_4659" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4658", i32 0, i32 0 + store i8 0, i8* %"$adtgep_4659", align 1 + %"$adtgep_4660" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4658", i32 0, i32 1 + store [20 x i8] %owner, [20 x i8]* %"$adtgep_4660", align 1 + %"$adtgep_4661" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$adtval_4658", i32 0, i32 2 + store [20 x i8] %resolver, [20 x i8]* %"$adtgep_4661", align 1 + %"$adtptr_4662" = bitcast %CName_ud-registry.Record* %"$adtval_4658" to %TName_ud-registry.Record* + store %TName_ud-registry.Record* %"$adtptr_4662", %TName_ud-registry.Record** %newRecord, align 8 + %"$newRecord_4663" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$$newRecord_4663_4664" = bitcast %TName_ud-registry.Record* %"$newRecord_4663" to i8* + %"$_literal_cost_call_4665" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_ud-registry.Record_201", i8* %"$$newRecord_4663_4664") + %"$gasadd_4666" = add i64 %"$_literal_cost_call_4665", 1 + %"$gasrem_4667" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4668" = icmp ugt i64 %"$gasadd_4666", %"$gasrem_4667" + br i1 %"$gascmp_4668", label %"$out_of_gas_4669", label %"$have_gas_4670" + +"$out_of_gas_4669": ; preds = %"$have_gas_4656" + call void @_out_of_gas() + br label %"$have_gas_4670" + +"$have_gas_4670": ; preds = %"$out_of_gas_4669", %"$have_gas_4656" + %"$consume_4671" = sub i64 %"$gasrem_4667", %"$gasadd_4666" + store i64 %"$consume_4671", i64* @_gasrem, align 8 + %"$indices_buf_4672_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4672_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4672_salloc_load", i64 32) + %"$indices_buf_4672_salloc" = bitcast i8* %"$indices_buf_4672_salloc_salloc" to [32 x i8]* + %"$indices_buf_4672" = bitcast [32 x i8]* %"$indices_buf_4672_salloc" to i8* + %"$node_4673" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4674" = getelementptr i8, i8* %"$indices_buf_4672", i32 0 + %indices_cast2 = bitcast i8* %"$indices_gep_4674" to [32 x i8]* + store [32 x i8] %"$node_4673", [32 x i8]* %indices_cast2, align 1 + %"$execptr_load_4675" = load i8*, i8** @_execptr, align 8 + %"$newRecord_4677" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %newRecord, align 8 + %"$update_value_4678" = bitcast %TName_ud-registry.Record* %"$newRecord_4677" to i8* + call void @_update_field(i8* %"$execptr_load_4675", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4676", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4672", i8* %"$update_value_4678") + %"$gasrem_4679" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4680" = icmp ugt i64 1, %"$gasrem_4679" + br i1 %"$gascmp_4680", label %"$out_of_gas_4681", label %"$have_gas_4682" + +"$out_of_gas_4681": ; preds = %"$have_gas_4670" + call void @_out_of_gas() + br label %"$have_gas_4682" + +"$have_gas_4682": ; preds = %"$out_of_gas_4681", %"$have_gas_4670" + %"$consume_4683" = sub i64 %"$gasrem_4679", 1 + store i64 %"$consume_4683", i64* @_gasrem, align 8 %e3 = alloca i8*, align 8 - %"$gasrem_5313" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5314" = icmp ugt i64 1, %"$gasrem_5313" - br i1 %"$gascmp_5314", label %"$out_of_gas_5315", label %"$have_gas_5316" - -"$out_of_gas_5315": ; preds = %"$have_gas_5311" - call void @_out_of_gas() - br label %"$have_gas_5316" - -"$have_gas_5316": ; preds = %"$out_of_gas_5315", %"$have_gas_5311" - %"$consume_5317" = sub i64 %"$gasrem_5313", 1 - store i64 %"$consume_5317", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_115" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_5318" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_5319" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5318", 0 - %"$ud-registry.eConfigured_envptr_5320" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5318", 1 - %"$ud-registry.eConfigured_node_5321" = alloca [32 x i8], align 1 - %"$node_5322" = load [32 x i8], [32 x i8]* %node, align 1 - store [32 x i8] %"$node_5322", [32 x i8]* %"$ud-registry.eConfigured_node_5321", align 1 - %"$ud-registry.eConfigured_call_5323" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_5319"(i8* %"$ud-registry.eConfigured_envptr_5320", [32 x i8]* %"$ud-registry.eConfigured_node_5321") - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_5323", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_115", align 8 - %"$ud-registry.eConfigured_116" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_115_5324" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_115", align 8 - %"$$ud-registry.eConfigured_115_fptr_5325" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_115_5324", 0 - %"$$ud-registry.eConfigured_115_envptr_5326" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_115_5324", 1 - %"$$ud-registry.eConfigured_115_owner_5327" = alloca [20 x i8], align 1 - store [20 x i8] %owner, [20 x i8]* %"$$ud-registry.eConfigured_115_owner_5327", align 1 - %"$$ud-registry.eConfigured_115_call_5328" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_115_fptr_5325"(i8* %"$$ud-registry.eConfigured_115_envptr_5326", [20 x i8]* %"$$ud-registry.eConfigured_115_owner_5327") - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_115_call_5328", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_116", align 8 - %"$ud-registry.eConfigured_117" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_116_5329" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_116", align 8 - %"$$ud-registry.eConfigured_116_fptr_5330" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_116_5329", 0 - %"$$ud-registry.eConfigured_116_envptr_5331" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_116_5329", 1 - %"$$ud-registry.eConfigured_116_resolver_5332" = alloca [20 x i8], align 1 - store [20 x i8] %resolver, [20 x i8]* %"$$ud-registry.eConfigured_116_resolver_5332", align 1 - %"$$ud-registry.eConfigured_116_call_5333" = call i8* %"$$ud-registry.eConfigured_116_fptr_5330"(i8* %"$$ud-registry.eConfigured_116_envptr_5331", [20 x i8]* %"$$ud-registry.eConfigured_116_resolver_5332") - store i8* %"$$ud-registry.eConfigured_116_call_5333", i8** %"$ud-registry.eConfigured_117", align 8 - %"$$ud-registry.eConfigured_117_5334" = load i8*, i8** %"$ud-registry.eConfigured_117", align 8 - store i8* %"$$ud-registry.eConfigured_117_5334", i8** %e3, align 8 - %"$e_5335" = load i8*, i8** %e3, align 8 - %"$_literal_cost_call_5337" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5335") - %"$gasrem_5338" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5339" = icmp ugt i64 %"$_literal_cost_call_5337", %"$gasrem_5338" - br i1 %"$gascmp_5339", label %"$out_of_gas_5340", label %"$have_gas_5341" - -"$out_of_gas_5340": ; preds = %"$have_gas_5316" - call void @_out_of_gas() - br label %"$have_gas_5341" - -"$have_gas_5341": ; preds = %"$out_of_gas_5340", %"$have_gas_5316" - %"$consume_5342" = sub i64 %"$gasrem_5338", %"$_literal_cost_call_5337" - store i64 %"$consume_5342", i64* @_gasrem, align 8 - %"$execptr_load_5343" = load i8*, i8** @_execptr, align 8 - %"$e_5344" = load i8*, i8** %e3, align 8 - call void @_event(i8* %"$execptr_load_5343", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5344") - br label %"$matchsucc_5227" - -"$False_5345": ; preds = %"$have_gas_5225" - %"$isOk_5346" = bitcast %TName_Bool* %"$isOk_5228" to %CName_False* - %"$gasrem_5347" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5348" = icmp ugt i64 1, %"$gasrem_5347" - br i1 %"$gascmp_5348", label %"$out_of_gas_5349", label %"$have_gas_5350" - -"$out_of_gas_5349": ; preds = %"$False_5345" - call void @_out_of_gas() - br label %"$have_gas_5350" - -"$have_gas_5350": ; preds = %"$out_of_gas_5349", %"$False_5345" - %"$consume_5351" = sub i64 %"$gasrem_5347", 1 - store i64 %"$consume_5351", i64* @_gasrem, align 8 + %"$gasrem_4684" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4685" = icmp ugt i64 1, %"$gasrem_4684" + br i1 %"$gascmp_4685", label %"$out_of_gas_4686", label %"$have_gas_4687" + +"$out_of_gas_4686": ; preds = %"$have_gas_4682" + call void @_out_of_gas() + br label %"$have_gas_4687" + +"$have_gas_4687": ; preds = %"$out_of_gas_4686", %"$have_gas_4682" + %"$consume_4688" = sub i64 %"$gasrem_4684", 1 + store i64 %"$consume_4688", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_4689" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_4690" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_4689", 0 + %"$ud-registry.eConfigured_envptr_4691" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_4689", 1 + %"$ud-registry.eConfigured_node_4692" = alloca [32 x i8], align 1 + %"$node_4693" = load [32 x i8], [32 x i8]* %node, align 1 + store [32 x i8] %"$node_4693", [32 x i8]* %"$ud-registry.eConfigured_node_4692", align 1 + %"$ud-registry.eConfigured_owner_4694" = alloca [20 x i8], align 1 + store [20 x i8] %owner, [20 x i8]* %"$ud-registry.eConfigured_owner_4694", align 1 + %"$ud-registry.eConfigured_resolver_4695" = alloca [20 x i8], align 1 + store [20 x i8] %resolver, [20 x i8]* %"$ud-registry.eConfigured_resolver_4695", align 1 + %"$ud-registry.eConfigured_call_4696" = call i8* %"$ud-registry.eConfigured_fptr_4690"(i8* %"$ud-registry.eConfigured_envptr_4691", [32 x i8]* %"$ud-registry.eConfigured_node_4692", [20 x i8]* %"$ud-registry.eConfigured_owner_4694", [20 x i8]* %"$ud-registry.eConfigured_resolver_4695") + store i8* %"$ud-registry.eConfigured_call_4696", i8** %e3, align 8 + %"$e_4697" = load i8*, i8** %e3, align 8 + %"$_literal_cost_call_4699" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4697") + %"$gasrem_4700" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4701" = icmp ugt i64 %"$_literal_cost_call_4699", %"$gasrem_4700" + br i1 %"$gascmp_4701", label %"$out_of_gas_4702", label %"$have_gas_4703" + +"$out_of_gas_4702": ; preds = %"$have_gas_4687" + call void @_out_of_gas() + br label %"$have_gas_4703" + +"$have_gas_4703": ; preds = %"$out_of_gas_4702", %"$have_gas_4687" + %"$consume_4704" = sub i64 %"$gasrem_4700", %"$_literal_cost_call_4699" + store i64 %"$consume_4704", i64* @_gasrem, align 8 + %"$execptr_load_4705" = load i8*, i8** @_execptr, align 8 + %"$e_4706" = load i8*, i8** %e3, align 8 + call void @_event(i8* %"$execptr_load_4705", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4706") + br label %"$matchsucc_4603" + +"$False_4707": ; preds = %"$have_gas_4601" + %"$isOk_4708" = bitcast %TName_Bool* %"$isOk_4604" to %CName_False* + %"$gasrem_4709" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4710" = icmp ugt i64 1, %"$gasrem_4709" + br i1 %"$gascmp_4710", label %"$out_of_gas_4711", label %"$have_gas_4712" + +"$out_of_gas_4711": ; preds = %"$False_4707" + call void @_out_of_gas() + br label %"$have_gas_4712" + +"$have_gas_4712": ; preds = %"$out_of_gas_4711", %"$False_4707" + %"$consume_4713" = sub i64 %"$gasrem_4709", 1 + store i64 %"$consume_4713", i64* @_gasrem, align 8 %e4 = alloca i8*, align 8 - %"$gasrem_5352" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5353" = icmp ugt i64 1, %"$gasrem_5352" - br i1 %"$gascmp_5353", label %"$out_of_gas_5354", label %"$have_gas_5355" + %"$gasrem_4714" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4715" = icmp ugt i64 1, %"$gasrem_4714" + br i1 %"$gascmp_4715", label %"$out_of_gas_4716", label %"$have_gas_4717" -"$out_of_gas_5354": ; preds = %"$have_gas_5350" +"$out_of_gas_4716": ; preds = %"$have_gas_4712" call void @_out_of_gas() - br label %"$have_gas_5355" + br label %"$have_gas_4717" -"$have_gas_5355": ; preds = %"$out_of_gas_5354", %"$have_gas_5350" - %"$consume_5356" = sub i64 %"$gasrem_5352", 1 - store i64 %"$consume_5356", i64* @_gasrem, align 8 +"$have_gas_4717": ; preds = %"$out_of_gas_4716", %"$have_gas_4712" + %"$consume_4718" = sub i64 %"$gasrem_4714", 1 + store i64 %"$consume_4718", i64* @_gasrem, align 8 %m = alloca %String, align 8 - %"$gasrem_5357" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5358" = icmp ugt i64 1, %"$gasrem_5357" - br i1 %"$gascmp_5358", label %"$out_of_gas_5359", label %"$have_gas_5360" - -"$out_of_gas_5359": ; preds = %"$have_gas_5355" - call void @_out_of_gas() - br label %"$have_gas_5360" - -"$have_gas_5360": ; preds = %"$out_of_gas_5359", %"$have_gas_5355" - %"$consume_5361" = sub i64 %"$gasrem_5357", 1 - store i64 %"$consume_5361", i64* @_gasrem, align 8 - store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_5362", i32 0, i32 0), i32 12 }, %String* %m, align 8 - %"$gasrem_5363" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5364" = icmp ugt i64 1, %"$gasrem_5363" - br i1 %"$gascmp_5364", label %"$out_of_gas_5365", label %"$have_gas_5366" - -"$out_of_gas_5365": ; preds = %"$have_gas_5360" - call void @_out_of_gas() - br label %"$have_gas_5366" - -"$have_gas_5366": ; preds = %"$out_of_gas_5365", %"$have_gas_5360" - %"$consume_5367" = sub i64 %"$gasrem_5363", 1 - store i64 %"$consume_5367", i64* @_gasrem, align 8 - %"$ud-registry.eError_120" = alloca i8*, align 8 - %"$ud-registry.eError_5368" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 - %"$ud-registry.eError_fptr_5369" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5368", 0 - %"$ud-registry.eError_envptr_5370" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_5368", 1 - %"$m_5371" = load %String, %String* %m, align 8 - %"$ud-registry.eError_call_5372" = call i8* %"$ud-registry.eError_fptr_5369"(i8* %"$ud-registry.eError_envptr_5370", %String %"$m_5371") - store i8* %"$ud-registry.eError_call_5372", i8** %"$ud-registry.eError_120", align 8 - %"$$ud-registry.eError_120_5373" = load i8*, i8** %"$ud-registry.eError_120", align 8 - store i8* %"$$ud-registry.eError_120_5373", i8** %e4, align 8 - %"$e_5374" = load i8*, i8** %e4, align 8 - %"$_literal_cost_call_5376" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5374") - %"$gasrem_5377" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5378" = icmp ugt i64 %"$_literal_cost_call_5376", %"$gasrem_5377" - br i1 %"$gascmp_5378", label %"$out_of_gas_5379", label %"$have_gas_5380" - -"$out_of_gas_5379": ; preds = %"$have_gas_5366" - call void @_out_of_gas() - br label %"$have_gas_5380" - -"$have_gas_5380": ; preds = %"$out_of_gas_5379", %"$have_gas_5366" - %"$consume_5381" = sub i64 %"$gasrem_5377", %"$_literal_cost_call_5376" - store i64 %"$consume_5381", i64* @_gasrem, align 8 - %"$execptr_load_5382" = load i8*, i8** @_execptr, align 8 - %"$e_5383" = load i8*, i8** %e4, align 8 - call void @_event(i8* %"$execptr_load_5382", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5383") - br label %"$matchsucc_5227" - -"$empty_default_5231": ; preds = %"$have_gas_5225" - br label %"$matchsucc_5227" - -"$matchsucc_5227": ; preds = %"$have_gas_5380", %"$have_gas_5341", %"$empty_default_5231" + %"$gasrem_4719" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4720" = icmp ugt i64 1, %"$gasrem_4719" + br i1 %"$gascmp_4720", label %"$out_of_gas_4721", label %"$have_gas_4722" + +"$out_of_gas_4721": ; preds = %"$have_gas_4717" + call void @_out_of_gas() + br label %"$have_gas_4722" + +"$have_gas_4722": ; preds = %"$out_of_gas_4721", %"$have_gas_4717" + %"$consume_4723" = sub i64 %"$gasrem_4719", 1 + store i64 %"$consume_4723", i64* @_gasrem, align 8 + store %String { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"$stringlit_4724", i32 0, i32 0), i32 12 }, %String* %m, align 8 + %"$gasrem_4725" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4726" = icmp ugt i64 1, %"$gasrem_4725" + br i1 %"$gascmp_4726", label %"$out_of_gas_4727", label %"$have_gas_4728" + +"$out_of_gas_4727": ; preds = %"$have_gas_4722" + call void @_out_of_gas() + br label %"$have_gas_4728" + +"$have_gas_4728": ; preds = %"$out_of_gas_4727", %"$have_gas_4722" + %"$consume_4729" = sub i64 %"$gasrem_4725", 1 + store i64 %"$consume_4729", i64* @_gasrem, align 8 + %"$ud-registry.eError_57" = alloca i8*, align 8 + %"$ud-registry.eError_4730" = load { i8* (i8*, %String)*, i8* }, { i8* (i8*, %String)*, i8* }* @ud-registry.eError, align 8 + %"$ud-registry.eError_fptr_4731" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4730", 0 + %"$ud-registry.eError_envptr_4732" = extractvalue { i8* (i8*, %String)*, i8* } %"$ud-registry.eError_4730", 1 + %"$m_4733" = load %String, %String* %m, align 8 + %"$ud-registry.eError_call_4734" = call i8* %"$ud-registry.eError_fptr_4731"(i8* %"$ud-registry.eError_envptr_4732", %String %"$m_4733") + store i8* %"$ud-registry.eError_call_4734", i8** %"$ud-registry.eError_57", align 8 + %"$$ud-registry.eError_57_4735" = load i8*, i8** %"$ud-registry.eError_57", align 8 + store i8* %"$$ud-registry.eError_57_4735", i8** %e4, align 8 + %"$e_4736" = load i8*, i8** %e4, align 8 + %"$_literal_cost_call_4738" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4736") + %"$gasrem_4739" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4740" = icmp ugt i64 %"$_literal_cost_call_4738", %"$gasrem_4739" + br i1 %"$gascmp_4740", label %"$out_of_gas_4741", label %"$have_gas_4742" + +"$out_of_gas_4741": ; preds = %"$have_gas_4728" + call void @_out_of_gas() + br label %"$have_gas_4742" + +"$have_gas_4742": ; preds = %"$out_of_gas_4741", %"$have_gas_4728" + %"$consume_4743" = sub i64 %"$gasrem_4739", %"$_literal_cost_call_4738" + store i64 %"$consume_4743", i64* @_gasrem, align 8 + %"$execptr_load_4744" = load i8*, i8** @_execptr, align 8 + %"$e_4745" = load i8*, i8** %e4, align 8 + call void @_event(i8* %"$execptr_load_4744", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4745") + br label %"$matchsucc_4603" + +"$empty_default_4607": ; preds = %"$have_gas_4601" + br label %"$matchsucc_4603" + +"$matchsucc_4603": ; preds = %"$have_gas_4742", %"$have_gas_4703", %"$empty_default_4607" ret void } define void @bestow(i8* %0) { entry: - %"$_amount_5385" = getelementptr i8, i8* %0, i32 0 - %"$_amount_5386" = bitcast i8* %"$_amount_5385" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_5386", align 8 - %"$_origin_5387" = getelementptr i8, i8* %0, i32 16 - %"$_origin_5388" = bitcast i8* %"$_origin_5387" to [20 x i8]* - %"$_sender_5389" = getelementptr i8, i8* %0, i32 36 - %"$_sender_5390" = bitcast i8* %"$_sender_5389" to [20 x i8]* - %"$label_5391" = getelementptr i8, i8* %0, i32 56 - %"$label_5392" = bitcast i8* %"$label_5391" to %String* - %label = load %String, %String* %"$label_5392", align 8 - %"$owner_5393" = getelementptr i8, i8* %0, i32 72 - %"$owner_5394" = bitcast i8* %"$owner_5393" to [20 x i8]* - %"$resolver_5395" = getelementptr i8, i8* %0, i32 92 - %"$resolver_5396" = bitcast i8* %"$resolver_5395" to [20 x i8]* - call void @"$bestow_4955"(%Uint128 %_amount, [20 x i8]* %"$_origin_5388", [20 x i8]* %"$_sender_5390", %String %label, [20 x i8]* %"$owner_5394", [20 x i8]* %"$resolver_5396") + %"$_amount_4747" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4748" = bitcast i8* %"$_amount_4747" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4748", align 8 + %"$_origin_4749" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4750" = bitcast i8* %"$_origin_4749" to [20 x i8]* + %"$_sender_4751" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4752" = bitcast i8* %"$_sender_4751" to [20 x i8]* + %"$label_4753" = getelementptr i8, i8* %0, i32 56 + %"$label_4754" = bitcast i8* %"$label_4753" to %String* + %label = load %String, %String* %"$label_4754", align 8 + %"$owner_4755" = getelementptr i8, i8* %0, i32 72 + %"$owner_4756" = bitcast i8* %"$owner_4755" to [20 x i8]* + %"$resolver_4757" = getelementptr i8, i8* %0, i32 92 + %"$resolver_4758" = bitcast i8* %"$resolver_4757" to [20 x i8]* + call void @"$bestow_4361"(%Uint128 %_amount, [20 x i8]* %"$_origin_4750", [20 x i8]* %"$_sender_4752", %String %label, [20 x i8]* %"$owner_4756", [20 x i8]* %"$resolver_4758") ret void } -define internal void @"$setRegistrar_5397"(%Uint128 %_amount, [20 x i8]* %"$_origin_5398", [20 x i8]* %"$_sender_5399", [20 x i8]* %"$address_5400") { +define internal void @"$setRegistrar_4759"(%Uint128 %_amount, [20 x i8]* %"$_origin_4760", [20 x i8]* %"$_sender_4761", [20 x i8]* %"$address_4762") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_5398", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_5399", align 1 - %address = load [20 x i8], [20 x i8]* %"$address_5400", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4760", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4761", align 1 + %address = load [20 x i8], [20 x i8]* %"$address_4762", align 1 %currentAdmins = alloca %TName_List_ByStr20*, align 8 - %"$execptr_load_5402" = load i8*, i8** @_execptr, align 8 - %"$currentAdmins_call_5403" = call i8* @_fetch_field(i8* %"$execptr_load_5402", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_5401", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i32 0, i8* null, i32 1) - %"$currentAdmins_5404" = bitcast i8* %"$currentAdmins_call_5403" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$currentAdmins_5404", %TName_List_ByStr20** %currentAdmins, align 8 - %"$currentAdmins_5405" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$$currentAdmins_5405_5406" = bitcast %TName_List_ByStr20* %"$currentAdmins_5405" to i8* - %"$_literal_cost_call_5407" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_320", i8* %"$$currentAdmins_5405_5406") - %"$gasadd_5408" = add i64 %"$_literal_cost_call_5407", 0 - %"$gasrem_5409" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5410" = icmp ugt i64 %"$gasadd_5408", %"$gasrem_5409" - br i1 %"$gascmp_5410", label %"$out_of_gas_5411", label %"$have_gas_5412" - -"$out_of_gas_5411": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_5412" - -"$have_gas_5412": ; preds = %"$out_of_gas_5411", %entry - %"$consume_5413" = sub i64 %"$gasrem_5409", %"$gasadd_5408" - store i64 %"$consume_5413", i64* @_gasrem, align 8 - %"$gasrem_5414" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5415" = icmp ugt i64 1, %"$gasrem_5414" - br i1 %"$gascmp_5415", label %"$out_of_gas_5416", label %"$have_gas_5417" - -"$out_of_gas_5416": ; preds = %"$have_gas_5412" - call void @_out_of_gas() - br label %"$have_gas_5417" - -"$have_gas_5417": ; preds = %"$out_of_gas_5416", %"$have_gas_5412" - %"$consume_5418" = sub i64 %"$gasrem_5414", 1 - store i64 %"$consume_5418", i64* @_gasrem, align 8 + %"$execptr_load_4764" = load i8*, i8** @_execptr, align 8 + %"$currentAdmins_call_4765" = call i8* @_fetch_field(i8* %"$execptr_load_4764", i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$admins_4763", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i32 0, i8* null, i32 1) + %"$currentAdmins_4766" = bitcast i8* %"$currentAdmins_call_4765" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$currentAdmins_4766", %TName_List_ByStr20** %currentAdmins, align 8 + %"$currentAdmins_4767" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$$currentAdmins_4767_4768" = bitcast %TName_List_ByStr20* %"$currentAdmins_4767" to i8* + %"$_literal_cost_call_4769" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_203", i8* %"$$currentAdmins_4767_4768") + %"$gasadd_4770" = add i64 %"$_literal_cost_call_4769", 0 + %"$gasrem_4771" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4772" = icmp ugt i64 %"$gasadd_4770", %"$gasrem_4771" + br i1 %"$gascmp_4772", label %"$out_of_gas_4773", label %"$have_gas_4774" + +"$out_of_gas_4773": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_4774" + +"$have_gas_4774": ; preds = %"$out_of_gas_4773", %entry + %"$consume_4775" = sub i64 %"$gasrem_4771", %"$gasadd_4770" + store i64 %"$consume_4775", i64* @_gasrem, align 8 + %"$gasrem_4776" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4777" = icmp ugt i64 1, %"$gasrem_4776" + br i1 %"$gascmp_4777", label %"$out_of_gas_4778", label %"$have_gas_4779" + +"$out_of_gas_4778": ; preds = %"$have_gas_4774" + call void @_out_of_gas() + br label %"$have_gas_4779" + +"$have_gas_4779": ; preds = %"$out_of_gas_4778", %"$have_gas_4774" + %"$consume_4780" = sub i64 %"$gasrem_4776", 1 + store i64 %"$consume_4780", i64* @_gasrem, align 8 %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_5419" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5420" = icmp ugt i64 1, %"$gasrem_5419" - br i1 %"$gascmp_5420", label %"$out_of_gas_5421", label %"$have_gas_5422" - -"$out_of_gas_5421": ; preds = %"$have_gas_5417" - call void @_out_of_gas() - br label %"$have_gas_5422" - -"$have_gas_5422": ; preds = %"$out_of_gas_5421", %"$have_gas_5417" - %"$consume_5423" = sub i64 %"$gasrem_5419", 1 - store i64 %"$consume_5423", i64* @_gasrem, align 8 - %"$ud-registry.listByStr20Contains_135" = alloca { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.listByStr20Contains_5424" = load { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }, { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* }* @ud-registry.listByStr20Contains, align 8 - %"$ud-registry.listByStr20Contains_fptr_5425" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_5424", 0 - %"$ud-registry.listByStr20Contains_envptr_5426" = extractvalue { { %TName_Bool* (i8*, [20 x i8]*)*, i8* } (i8*, %TName_List_ByStr20*)*, i8* } %"$ud-registry.listByStr20Contains_5424", 1 - %"$currentAdmins_5427" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 - %"$ud-registry.listByStr20Contains_call_5428" = call { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_fptr_5425"(i8* %"$ud-registry.listByStr20Contains_envptr_5426", %TName_List_ByStr20* %"$currentAdmins_5427") - store { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_call_5428", { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_135", align 8 - %"$ud-registry.listByStr20Contains_136" = alloca %TName_Bool*, align 8 - %"$$ud-registry.listByStr20Contains_135_5429" = load { %TName_Bool* (i8*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.listByStr20Contains_135", align 8 - %"$$ud-registry.listByStr20Contains_135_fptr_5430" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_135_5429", 0 - %"$$ud-registry.listByStr20Contains_135_envptr_5431" = extractvalue { %TName_Bool* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.listByStr20Contains_135_5429", 1 - %"$$ud-registry.listByStr20Contains_135__sender_5432" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$$ud-registry.listByStr20Contains_135__sender_5432", align 1 - %"$$ud-registry.listByStr20Contains_135_call_5433" = call %TName_Bool* %"$$ud-registry.listByStr20Contains_135_fptr_5430"(i8* %"$$ud-registry.listByStr20Contains_135_envptr_5431", [20 x i8]* %"$$ud-registry.listByStr20Contains_135__sender_5432") - store %TName_Bool* %"$$ud-registry.listByStr20Contains_135_call_5433", %TName_Bool** %"$ud-registry.listByStr20Contains_136", align 8 - %"$$ud-registry.listByStr20Contains_136_5434" = load %TName_Bool*, %TName_Bool** %"$ud-registry.listByStr20Contains_136", align 8 - store %TName_Bool* %"$$ud-registry.listByStr20Contains_136_5434", %TName_Bool** %isOk, align 8 - %"$gasrem_5435" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5436" = icmp ugt i64 2, %"$gasrem_5435" - br i1 %"$gascmp_5436", label %"$out_of_gas_5437", label %"$have_gas_5438" - -"$out_of_gas_5437": ; preds = %"$have_gas_5422" - call void @_out_of_gas() - br label %"$have_gas_5438" - -"$have_gas_5438": ; preds = %"$out_of_gas_5437", %"$have_gas_5422" - %"$consume_5439" = sub i64 %"$gasrem_5435", 2 - store i64 %"$consume_5439", i64* @_gasrem, align 8 - %"$isOk_5441" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_5442" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5441", i32 0, i32 0 - %"$isOk_tag_5443" = load i8, i8* %"$isOk_tag_5442", align 1 - switch i8 %"$isOk_tag_5443", label %"$default_5444" [ - i8 0, label %"$True_5445" + %"$gasrem_4781" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4782" = icmp ugt i64 1, %"$gasrem_4781" + br i1 %"$gascmp_4782", label %"$out_of_gas_4783", label %"$have_gas_4784" + +"$out_of_gas_4783": ; preds = %"$have_gas_4779" + call void @_out_of_gas() + br label %"$have_gas_4784" + +"$have_gas_4784": ; preds = %"$out_of_gas_4783", %"$have_gas_4779" + %"$consume_4785" = sub i64 %"$gasrem_4781", 1 + store i64 %"$consume_4785", i64* @_gasrem, align 8 + %"$ud-registry.listByStr20Contains_4786" = load { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }, { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* }* @ud-registry.listByStr20Contains, align 8 + %"$ud-registry.listByStr20Contains_fptr_4787" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_4786", 0 + %"$ud-registry.listByStr20Contains_envptr_4788" = extractvalue { %TName_Bool* (i8*, %TName_List_ByStr20*, [20 x i8]*)*, i8* } %"$ud-registry.listByStr20Contains_4786", 1 + %"$currentAdmins_4789" = load %TName_List_ByStr20*, %TName_List_ByStr20** %currentAdmins, align 8 + %"$ud-registry.listByStr20Contains__sender_4790" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$ud-registry.listByStr20Contains__sender_4790", align 1 + %"$ud-registry.listByStr20Contains_call_4791" = call %TName_Bool* %"$ud-registry.listByStr20Contains_fptr_4787"(i8* %"$ud-registry.listByStr20Contains_envptr_4788", %TName_List_ByStr20* %"$currentAdmins_4789", [20 x i8]* %"$ud-registry.listByStr20Contains__sender_4790") + store %TName_Bool* %"$ud-registry.listByStr20Contains_call_4791", %TName_Bool** %isOk, align 8 + %"$gasrem_4792" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4793" = icmp ugt i64 2, %"$gasrem_4792" + br i1 %"$gascmp_4793", label %"$out_of_gas_4794", label %"$have_gas_4795" + +"$out_of_gas_4794": ; preds = %"$have_gas_4784" + call void @_out_of_gas() + br label %"$have_gas_4795" + +"$have_gas_4795": ; preds = %"$out_of_gas_4794", %"$have_gas_4784" + %"$consume_4796" = sub i64 %"$gasrem_4792", 2 + store i64 %"$consume_4796", i64* @_gasrem, align 8 + %"$isOk_4798" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_4799" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_4798", i32 0, i32 0 + %"$isOk_tag_4800" = load i8, i8* %"$isOk_tag_4799", align 1 + switch i8 %"$isOk_tag_4800", label %"$default_4801" [ + i8 0, label %"$True_4802" ] -"$True_5445": ; preds = %"$have_gas_5438" - %"$isOk_5446" = bitcast %TName_Bool* %"$isOk_5441" to %CName_True* - %"$gasrem_5447" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5448" = icmp ugt i64 1, %"$gasrem_5447" - br i1 %"$gascmp_5448", label %"$out_of_gas_5449", label %"$have_gas_5450" +"$True_4802": ; preds = %"$have_gas_4795" + %"$isOk_4803" = bitcast %TName_Bool* %"$isOk_4798" to %CName_True* + %"$gasrem_4804" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4805" = icmp ugt i64 1, %"$gasrem_4804" + br i1 %"$gascmp_4805", label %"$out_of_gas_4806", label %"$have_gas_4807" -"$out_of_gas_5449": ; preds = %"$True_5445" +"$out_of_gas_4806": ; preds = %"$True_4802" call void @_out_of_gas() - br label %"$have_gas_5450" + br label %"$have_gas_4807" -"$have_gas_5450": ; preds = %"$out_of_gas_5449", %"$True_5445" - %"$consume_5451" = sub i64 %"$gasrem_5447", 1 - store i64 %"$consume_5451", i64* @_gasrem, align 8 +"$have_gas_4807": ; preds = %"$out_of_gas_4806", %"$True_4802" + %"$consume_4808" = sub i64 %"$gasrem_4804", 1 + store i64 %"$consume_4808", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_5452" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5453" = icmp ugt i64 1, %"$gasrem_5452" - br i1 %"$gascmp_5453", label %"$out_of_gas_5454", label %"$have_gas_5455" - -"$out_of_gas_5454": ; preds = %"$have_gas_5450" - call void @_out_of_gas() - br label %"$have_gas_5455" - -"$have_gas_5455": ; preds = %"$out_of_gas_5454", %"$have_gas_5450" - %"$consume_5456" = sub i64 %"$gasrem_5452", 1 - store i64 %"$consume_5456", i64* @_gasrem, align 8 - %"$ud-registry.eNewRegistrar_134" = alloca i8*, align 8 - %"$ud-registry.eNewRegistrar_5457" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8 - %"$ud-registry.eNewRegistrar_fptr_5458" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_5457", 0 - %"$ud-registry.eNewRegistrar_envptr_5459" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_5457", 1 - %"$ud-registry.eNewRegistrar_address_5460" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$ud-registry.eNewRegistrar_address_5460", align 1 - %"$ud-registry.eNewRegistrar_call_5461" = call i8* %"$ud-registry.eNewRegistrar_fptr_5458"(i8* %"$ud-registry.eNewRegistrar_envptr_5459", [20 x i8]* %"$ud-registry.eNewRegistrar_address_5460") - store i8* %"$ud-registry.eNewRegistrar_call_5461", i8** %"$ud-registry.eNewRegistrar_134", align 8 - %"$$ud-registry.eNewRegistrar_134_5462" = load i8*, i8** %"$ud-registry.eNewRegistrar_134", align 8 - store i8* %"$$ud-registry.eNewRegistrar_134_5462", i8** %e, align 8 - %"$e_5463" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_5465" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5463") - %"$gasrem_5466" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5467" = icmp ugt i64 %"$_literal_cost_call_5465", %"$gasrem_5466" - br i1 %"$gascmp_5467", label %"$out_of_gas_5468", label %"$have_gas_5469" - -"$out_of_gas_5468": ; preds = %"$have_gas_5455" - call void @_out_of_gas() - br label %"$have_gas_5469" - -"$have_gas_5469": ; preds = %"$out_of_gas_5468", %"$have_gas_5455" - %"$consume_5470" = sub i64 %"$gasrem_5466", %"$_literal_cost_call_5465" - store i64 %"$consume_5470", i64* @_gasrem, align 8 - %"$execptr_load_5471" = load i8*, i8** @_execptr, align 8 - %"$e_5472" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_5471", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5472") - %"$_literal_cost_address_5473" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_5473", align 1 - %"$$_literal_cost_address_5473_5474" = bitcast [20 x i8]* %"$_literal_cost_address_5473" to i8* - %"$_literal_cost_call_5475" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i8* %"$$_literal_cost_address_5473_5474") - %"$gasrem_5476" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5477" = icmp ugt i64 %"$_literal_cost_call_5475", %"$gasrem_5476" - br i1 %"$gascmp_5477", label %"$out_of_gas_5478", label %"$have_gas_5479" - -"$out_of_gas_5478": ; preds = %"$have_gas_5469" - call void @_out_of_gas() - br label %"$have_gas_5479" - -"$have_gas_5479": ; preds = %"$out_of_gas_5478", %"$have_gas_5469" - %"$consume_5480" = sub i64 %"$gasrem_5476", %"$_literal_cost_call_5475" - store i64 %"$consume_5480", i64* @_gasrem, align 8 - %"$execptr_load_5481" = load i8*, i8** @_execptr, align 8 - %"$update_value_5483" = alloca [20 x i8], align 1 - store [20 x i8] %address, [20 x i8]* %"$update_value_5483", align 1 - %"$update_value_5484" = bitcast [20 x i8]* %"$update_value_5483" to i8* - call void @_update_field(i8* %"$execptr_load_5481", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_5482", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i32 0, i8* null, i8* %"$update_value_5484") - br label %"$matchsucc_5440" - -"$default_5444": ; preds = %"$have_gas_5438" + %"$gasrem_4809" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4810" = icmp ugt i64 1, %"$gasrem_4809" + br i1 %"$gascmp_4810", label %"$out_of_gas_4811", label %"$have_gas_4812" + +"$out_of_gas_4811": ; preds = %"$have_gas_4807" + call void @_out_of_gas() + br label %"$have_gas_4812" + +"$have_gas_4812": ; preds = %"$out_of_gas_4811", %"$have_gas_4807" + %"$consume_4813" = sub i64 %"$gasrem_4809", 1 + store i64 %"$consume_4813", i64* @_gasrem, align 8 + %"$ud-registry.eNewRegistrar_58" = alloca i8*, align 8 + %"$ud-registry.eNewRegistrar_4814" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* @ud-registry.eNewRegistrar, align 8 + %"$ud-registry.eNewRegistrar_fptr_4815" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_4814", 0 + %"$ud-registry.eNewRegistrar_envptr_4816" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eNewRegistrar_4814", 1 + %"$ud-registry.eNewRegistrar_address_4817" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$ud-registry.eNewRegistrar_address_4817", align 1 + %"$ud-registry.eNewRegistrar_call_4818" = call i8* %"$ud-registry.eNewRegistrar_fptr_4815"(i8* %"$ud-registry.eNewRegistrar_envptr_4816", [20 x i8]* %"$ud-registry.eNewRegistrar_address_4817") + store i8* %"$ud-registry.eNewRegistrar_call_4818", i8** %"$ud-registry.eNewRegistrar_58", align 8 + %"$$ud-registry.eNewRegistrar_58_4819" = load i8*, i8** %"$ud-registry.eNewRegistrar_58", align 8 + store i8* %"$$ud-registry.eNewRegistrar_58_4819", i8** %e, align 8 + %"$e_4820" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_4822" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4820") + %"$gasrem_4823" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4824" = icmp ugt i64 %"$_literal_cost_call_4822", %"$gasrem_4823" + br i1 %"$gascmp_4824", label %"$out_of_gas_4825", label %"$have_gas_4826" + +"$out_of_gas_4825": ; preds = %"$have_gas_4812" + call void @_out_of_gas() + br label %"$have_gas_4826" + +"$have_gas_4826": ; preds = %"$out_of_gas_4825", %"$have_gas_4812" + %"$consume_4827" = sub i64 %"$gasrem_4823", %"$_literal_cost_call_4822" + store i64 %"$consume_4827", i64* @_gasrem, align 8 + %"$execptr_load_4828" = load i8*, i8** @_execptr, align 8 + %"$e_4829" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_4828", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_4829") + %"$_literal_cost_address_4830" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$_literal_cost_address_4830", align 1 + %"$$_literal_cost_address_4830_4831" = bitcast [20 x i8]* %"$_literal_cost_address_4830" to i8* + %"$_literal_cost_call_4832" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i8* %"$$_literal_cost_address_4830_4831") + %"$gasrem_4833" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4834" = icmp ugt i64 %"$_literal_cost_call_4832", %"$gasrem_4833" + br i1 %"$gascmp_4834", label %"$out_of_gas_4835", label %"$have_gas_4836" + +"$out_of_gas_4835": ; preds = %"$have_gas_4826" + call void @_out_of_gas() + br label %"$have_gas_4836" + +"$have_gas_4836": ; preds = %"$out_of_gas_4835", %"$have_gas_4826" + %"$consume_4837" = sub i64 %"$gasrem_4833", %"$_literal_cost_call_4832" + store i64 %"$consume_4837", i64* @_gasrem, align 8 + %"$execptr_load_4838" = load i8*, i8** @_execptr, align 8 + %"$update_value_4840" = alloca [20 x i8], align 1 + store [20 x i8] %address, [20 x i8]* %"$update_value_4840", align 1 + %"$update_value_4841" = bitcast [20 x i8]* %"$update_value_4840" to i8* + call void @_update_field(i8* %"$execptr_load_4838", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_4839", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i32 0, i8* null, i8* %"$update_value_4841") + br label %"$matchsucc_4797" + +"$default_4801": ; preds = %"$have_gas_4795" br label %"$joinp_9" -"$joinp_9": ; preds = %"$default_5444" - br label %"$matchsucc_5440" +"$joinp_9": ; preds = %"$default_4801" + br label %"$matchsucc_4797" -"$matchsucc_5440": ; preds = %"$have_gas_5479", %"$joinp_9" +"$matchsucc_4797": ; preds = %"$have_gas_4836", %"$joinp_9" ret void } define void @setRegistrar(i8* %0) { entry: - %"$_amount_5486" = getelementptr i8, i8* %0, i32 0 - %"$_amount_5487" = bitcast i8* %"$_amount_5486" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_5487", align 8 - %"$_origin_5488" = getelementptr i8, i8* %0, i32 16 - %"$_origin_5489" = bitcast i8* %"$_origin_5488" to [20 x i8]* - %"$_sender_5490" = getelementptr i8, i8* %0, i32 36 - %"$_sender_5491" = bitcast i8* %"$_sender_5490" to [20 x i8]* - %"$address_5492" = getelementptr i8, i8* %0, i32 56 - %"$address_5493" = bitcast i8* %"$address_5492" to [20 x i8]* - call void @"$setRegistrar_5397"(%Uint128 %_amount, [20 x i8]* %"$_origin_5489", [20 x i8]* %"$_sender_5491", [20 x i8]* %"$address_5493") + %"$_amount_4843" = getelementptr i8, i8* %0, i32 0 + %"$_amount_4844" = bitcast i8* %"$_amount_4843" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_4844", align 8 + %"$_origin_4845" = getelementptr i8, i8* %0, i32 16 + %"$_origin_4846" = bitcast i8* %"$_origin_4845" to [20 x i8]* + %"$_sender_4847" = getelementptr i8, i8* %0, i32 36 + %"$_sender_4848" = bitcast i8* %"$_sender_4847" to [20 x i8]* + %"$address_4849" = getelementptr i8, i8* %0, i32 56 + %"$address_4850" = bitcast i8* %"$address_4849" to [20 x i8]* + call void @"$setRegistrar_4759"(%Uint128 %_amount, [20 x i8]* %"$_origin_4846", [20 x i8]* %"$_sender_4848", [20 x i8]* %"$address_4850") ret void } -define internal void @"$register_5494"(%Uint128 %_amount, [20 x i8]* %"$_origin_5495", [20 x i8]* %"$_sender_5496", [32 x i8]* %"$parent_5497", %String %label) { +define internal void @"$register_4851"(%Uint128 %_amount, [20 x i8]* %"$_origin_4852", [20 x i8]* %"$_sender_4853", [32 x i8]* %"$parent_4854", %String %label) { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_5495", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_5496", align 1 - %parent = load [32 x i8], [32 x i8]* %"$parent_5497", align 1 - %"$gasrem_5498" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5499" = icmp ugt i64 1, %"$gasrem_5498" - br i1 %"$gascmp_5499", label %"$out_of_gas_5500", label %"$have_gas_5501" + %_origin = load [20 x i8], [20 x i8]* %"$_origin_4852", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_4853", align 1 + %parent = load [32 x i8], [32 x i8]* %"$parent_4854", align 1 + %"$gasrem_4855" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4856" = icmp ugt i64 1, %"$gasrem_4855" + br i1 %"$gascmp_4856", label %"$out_of_gas_4857", label %"$have_gas_4858" -"$out_of_gas_5500": ; preds = %entry +"$out_of_gas_4857": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_5501" + br label %"$have_gas_4858" -"$have_gas_5501": ; preds = %"$out_of_gas_5500", %entry - %"$consume_5502" = sub i64 %"$gasrem_5498", 1 - store i64 %"$consume_5502", i64* @_gasrem, align 8 +"$have_gas_4858": ; preds = %"$out_of_gas_4857", %entry + %"$consume_4859" = sub i64 %"$gasrem_4855", 1 + store i64 %"$consume_4859", i64* @_gasrem, align 8 %node = alloca [32 x i8], align 1 - %"$gasrem_5503" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5504" = icmp ugt i64 1, %"$gasrem_5503" - br i1 %"$gascmp_5504", label %"$out_of_gas_5505", label %"$have_gas_5506" - -"$out_of_gas_5505": ; preds = %"$have_gas_5501" - call void @_out_of_gas() - br label %"$have_gas_5506" - -"$have_gas_5506": ; preds = %"$out_of_gas_5505", %"$have_gas_5501" - %"$consume_5507" = sub i64 %"$gasrem_5503", 1 - store i64 %"$consume_5507", i64* @_gasrem, align 8 - %"$ud-registry.parentLabelToNode_141" = alloca { void (i8*, [32 x i8]*, %String)*, i8* }, align 8 - %"$ud-registry.parentLabelToNode_5508" = load { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.parentLabelToNode, align 8 - %"$ud-registry.parentLabelToNode_fptr_5509" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_5508", 0 - %"$ud-registry.parentLabelToNode_envptr_5510" = extractvalue { { void (i8*, [32 x i8]*, %String)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.parentLabelToNode_5508", 1 - %"$ud-registry.parentLabelToNode_parent_5511" = alloca [32 x i8], align 1 - store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_5511", align 1 - %"$ud-registry.parentLabelToNode_call_5512" = call { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_fptr_5509"(i8* %"$ud-registry.parentLabelToNode_envptr_5510", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_5511") - store { void (i8*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_call_5512", { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_141", align 8 - %"$ud-registry.parentLabelToNode_142" = alloca [32 x i8], align 1 - %"$$ud-registry.parentLabelToNode_141_5513" = load { void (i8*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, %String)*, i8* }* %"$ud-registry.parentLabelToNode_141", align 8 - %"$$ud-registry.parentLabelToNode_141_fptr_5514" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_141_5513", 0 - %"$$ud-registry.parentLabelToNode_141_envptr_5515" = extractvalue { void (i8*, [32 x i8]*, %String)*, i8* } %"$$ud-registry.parentLabelToNode_141_5513", 1 - %"$$ud-registry.parentLabelToNode_141_retalloca_5516" = alloca [32 x i8], align 1 - call void %"$$ud-registry.parentLabelToNode_141_fptr_5514"(i8* %"$$ud-registry.parentLabelToNode_141_envptr_5515", [32 x i8]* %"$$ud-registry.parentLabelToNode_141_retalloca_5516", %String %label) - %"$$ud-registry.parentLabelToNode_141_ret_5517" = load [32 x i8], [32 x i8]* %"$$ud-registry.parentLabelToNode_141_retalloca_5516", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_141_ret_5517", [32 x i8]* %"$ud-registry.parentLabelToNode_142", align 1 - %"$$ud-registry.parentLabelToNode_142_5518" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_142", align 1 - store [32 x i8] %"$$ud-registry.parentLabelToNode_142_5518", [32 x i8]* %node, align 1 + %"$gasrem_4860" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4861" = icmp ugt i64 1, %"$gasrem_4860" + br i1 %"$gascmp_4861", label %"$out_of_gas_4862", label %"$have_gas_4863" + +"$out_of_gas_4862": ; preds = %"$have_gas_4858" + call void @_out_of_gas() + br label %"$have_gas_4863" + +"$have_gas_4863": ; preds = %"$out_of_gas_4862", %"$have_gas_4858" + %"$consume_4864" = sub i64 %"$gasrem_4860", 1 + store i64 %"$consume_4864", i64* @_gasrem, align 8 + %"$ud-registry.parentLabelToNode_4865" = load { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }, { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* }* @ud-registry.parentLabelToNode, align 8 + %"$ud-registry.parentLabelToNode_fptr_4866" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4865", 0 + %"$ud-registry.parentLabelToNode_envptr_4867" = extractvalue { void (i8*, [32 x i8]*, [32 x i8]*, %String)*, i8* } %"$ud-registry.parentLabelToNode_4865", 1 + %"$ud-registry.parentLabelToNode_parent_4868" = alloca [32 x i8], align 1 + store [32 x i8] %parent, [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4868", align 1 + %"$ud-registry.parentLabelToNode_retalloca_4869" = alloca [32 x i8], align 1 + call void %"$ud-registry.parentLabelToNode_fptr_4866"(i8* %"$ud-registry.parentLabelToNode_envptr_4867", [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4869", [32 x i8]* %"$ud-registry.parentLabelToNode_parent_4868", %String %label) + %"$ud-registry.parentLabelToNode_ret_4870" = load [32 x i8], [32 x i8]* %"$ud-registry.parentLabelToNode_retalloca_4869", align 1 + store [32 x i8] %"$ud-registry.parentLabelToNode_ret_4870", [32 x i8]* %node, align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_5519_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5519_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5519_salloc_load", i64 32) - %"$indices_buf_5519_salloc" = bitcast i8* %"$indices_buf_5519_salloc_salloc" to [32 x i8]* - %"$indices_buf_5519" = bitcast [32 x i8]* %"$indices_buf_5519_salloc" to i8* - %"$node_5520" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_5521" = getelementptr i8, i8* %"$indices_buf_5519", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_5521" to [32 x i8]* - store [32 x i8] %"$node_5520", [32 x i8]* %indices_cast, align 1 - %"$execptr_load_5523" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_5524" = call i8* @_fetch_field(i8* %"$execptr_load_5523", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5522", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_5519", i32 1) - %"$maybeRecord_5525" = bitcast i8* %"$maybeRecord_call_5524" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_5525", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_5526" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_5526_5527" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5526" to i8* - %"$_literal_cost_call_5528" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_5526_5527") - %"$gasadd_5529" = add i64 %"$_literal_cost_call_5528", 0 - %"$gasadd_5530" = add i64 %"$gasadd_5529", 1 - %"$gasrem_5531" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5532" = icmp ugt i64 %"$gasadd_5530", %"$gasrem_5531" - br i1 %"$gascmp_5532", label %"$out_of_gas_5533", label %"$have_gas_5534" - -"$out_of_gas_5533": ; preds = %"$have_gas_5506" - call void @_out_of_gas() - br label %"$have_gas_5534" - -"$have_gas_5534": ; preds = %"$out_of_gas_5533", %"$have_gas_5506" - %"$consume_5535" = sub i64 %"$gasrem_5531", %"$gasadd_5530" - store i64 %"$consume_5535", i64* @_gasrem, align 8 + %"$indices_buf_4871_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4871_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4871_salloc_load", i64 32) + %"$indices_buf_4871_salloc" = bitcast i8* %"$indices_buf_4871_salloc_salloc" to [32 x i8]* + %"$indices_buf_4871" = bitcast [32 x i8]* %"$indices_buf_4871_salloc" to i8* + %"$node_4872" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4873" = getelementptr i8, i8* %"$indices_buf_4871", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_4873" to [32 x i8]* + store [32 x i8] %"$node_4872", [32 x i8]* %indices_cast, align 1 + %"$execptr_load_4875" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_4876" = call i8* @_fetch_field(i8* %"$execptr_load_4875", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_4874", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_4871", i32 1) + %"$maybeRecord_4877" = bitcast i8* %"$maybeRecord_call_4876" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_4877", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_4878" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_4878_4879" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_4878" to i8* + %"$_literal_cost_call_4880" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_4878_4879") + %"$gasadd_4881" = add i64 %"$_literal_cost_call_4880", 0 + %"$gasadd_4882" = add i64 %"$gasadd_4881", 1 + %"$gasrem_4883" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4884" = icmp ugt i64 %"$gasadd_4882", %"$gasrem_4883" + br i1 %"$gascmp_4884", label %"$out_of_gas_4885", label %"$have_gas_4886" + +"$out_of_gas_4885": ; preds = %"$have_gas_4863" + call void @_out_of_gas() + br label %"$have_gas_4886" + +"$have_gas_4886": ; preds = %"$out_of_gas_4885", %"$have_gas_4863" + %"$consume_4887" = sub i64 %"$gasrem_4883", %"$gasadd_4882" + store i64 %"$consume_4887", i64* @_gasrem, align 8 %maybeApproved = alloca %TName_Option_ByStr20*, align 8 - %"$indices_buf_5536_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5536_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5536_salloc_load", i64 32) - %"$indices_buf_5536_salloc" = bitcast i8* %"$indices_buf_5536_salloc_salloc" to [32 x i8]* - %"$indices_buf_5536" = bitcast [32 x i8]* %"$indices_buf_5536_salloc" to i8* - %"$node_5537" = load [32 x i8], [32 x i8]* %node, align 1 - %"$indices_gep_5538" = getelementptr i8, i8* %"$indices_buf_5536", i32 0 - %indices_cast1 = bitcast i8* %"$indices_gep_5538" to [32 x i8]* - store [32 x i8] %"$node_5537", [32 x i8]* %indices_cast1, align 1 - %"$execptr_load_5540" = load i8*, i8** @_execptr, align 8 - %"$maybeApproved_call_5541" = call i8* @_fetch_field(i8* %"$execptr_load_5540", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_5539", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_324", i32 1, i8* %"$indices_buf_5536", i32 1) - %"$maybeApproved_5542" = bitcast i8* %"$maybeApproved_call_5541" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$maybeApproved_5542", %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_5543" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$$maybeApproved_5543_5544" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5543" to i8* - %"$_literal_cost_call_5545" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_317", i8* %"$$maybeApproved_5543_5544") - %"$gasadd_5546" = add i64 %"$_literal_cost_call_5545", 0 - %"$gasadd_5547" = add i64 %"$gasadd_5546", 1 - %"$gasrem_5548" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5549" = icmp ugt i64 %"$gasadd_5547", %"$gasrem_5548" - br i1 %"$gascmp_5549", label %"$out_of_gas_5550", label %"$have_gas_5551" - -"$out_of_gas_5550": ; preds = %"$have_gas_5534" - call void @_out_of_gas() - br label %"$have_gas_5551" - -"$have_gas_5551": ; preds = %"$out_of_gas_5550", %"$have_gas_5534" - %"$consume_5552" = sub i64 %"$gasrem_5548", %"$gasadd_5547" - store i64 %"$consume_5552", i64* @_gasrem, align 8 - %"$gasrem_5553" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5554" = icmp ugt i64 1, %"$gasrem_5553" - br i1 %"$gascmp_5554", label %"$out_of_gas_5555", label %"$have_gas_5556" - -"$out_of_gas_5555": ; preds = %"$have_gas_5551" - call void @_out_of_gas() - br label %"$have_gas_5556" - -"$have_gas_5556": ; preds = %"$out_of_gas_5555", %"$have_gas_5551" - %"$consume_5557" = sub i64 %"$gasrem_5553", 1 - store i64 %"$consume_5557", i64* @_gasrem, align 8 + %"$indices_buf_4888_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_4888_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_4888_salloc_load", i64 32) + %"$indices_buf_4888_salloc" = bitcast i8* %"$indices_buf_4888_salloc_salloc" to [32 x i8]* + %"$indices_buf_4888" = bitcast [32 x i8]* %"$indices_buf_4888_salloc" to i8* + %"$node_4889" = load [32 x i8], [32 x i8]* %node, align 1 + %"$indices_gep_4890" = getelementptr i8, i8* %"$indices_buf_4888", i32 0 + %indices_cast1 = bitcast i8* %"$indices_gep_4890" to [32 x i8]* + store [32 x i8] %"$node_4889", [32 x i8]* %indices_cast1, align 1 + %"$execptr_load_4892" = load i8*, i8** @_execptr, align 8 + %"$maybeApproved_call_4893" = call i8* @_fetch_field(i8* %"$execptr_load_4892", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$approvals_4891", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_207", i32 1, i8* %"$indices_buf_4888", i32 1) + %"$maybeApproved_4894" = bitcast i8* %"$maybeApproved_call_4893" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$maybeApproved_4894", %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_4895" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$$maybeApproved_4895_4896" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4895" to i8* + %"$_literal_cost_call_4897" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_200", i8* %"$$maybeApproved_4895_4896") + %"$gasadd_4898" = add i64 %"$_literal_cost_call_4897", 0 + %"$gasadd_4899" = add i64 %"$gasadd_4898", 1 + %"$gasrem_4900" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4901" = icmp ugt i64 %"$gasadd_4899", %"$gasrem_4900" + br i1 %"$gascmp_4901", label %"$out_of_gas_4902", label %"$have_gas_4903" + +"$out_of_gas_4902": ; preds = %"$have_gas_4886" + call void @_out_of_gas() + br label %"$have_gas_4903" + +"$have_gas_4903": ; preds = %"$out_of_gas_4902", %"$have_gas_4886" + %"$consume_4904" = sub i64 %"$gasrem_4900", %"$gasadd_4899" + store i64 %"$consume_4904", i64* @_gasrem, align 8 + %"$gasrem_4905" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4906" = icmp ugt i64 1, %"$gasrem_4905" + br i1 %"$gascmp_4906", label %"$out_of_gas_4907", label %"$have_gas_4908" + +"$out_of_gas_4907": ; preds = %"$have_gas_4903" + call void @_out_of_gas() + br label %"$have_gas_4908" + +"$have_gas_4908": ; preds = %"$out_of_gas_4907", %"$have_gas_4903" + %"$consume_4909" = sub i64 %"$gasrem_4905", 1 + store i64 %"$consume_4909", i64* @_gasrem, align 8 %recordOwner = alloca [20 x i8], align 1 - %"$gasrem_5558" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5559" = icmp ugt i64 1, %"$gasrem_5558" - br i1 %"$gascmp_5559", label %"$out_of_gas_5560", label %"$have_gas_5561" - -"$out_of_gas_5560": ; preds = %"$have_gas_5556" - call void @_out_of_gas() - br label %"$have_gas_5561" - -"$have_gas_5561": ; preds = %"$out_of_gas_5560", %"$have_gas_5556" - %"$consume_5562" = sub i64 %"$gasrem_5558", 1 - store i64 %"$consume_5562", i64* @_gasrem, align 8 - %"$ud-registry.recordMemberOwner_140" = alloca [20 x i8], align 1 - %"$ud-registry.recordMemberOwner_5563" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 - %"$ud-registry.recordMemberOwner_fptr_5564" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5563", 0 - %"$ud-registry.recordMemberOwner_envptr_5565" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_5563", 1 - %"$maybeRecord_5566" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$ud-registry.recordMemberOwner_retalloca_5567" = alloca [20 x i8], align 1 - call void %"$ud-registry.recordMemberOwner_fptr_5564"(i8* %"$ud-registry.recordMemberOwner_envptr_5565", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5567", %TName_Option_ud-registry.Record* %"$maybeRecord_5566") - %"$ud-registry.recordMemberOwner_ret_5568" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_5567", align 1 - store [20 x i8] %"$ud-registry.recordMemberOwner_ret_5568", [20 x i8]* %"$ud-registry.recordMemberOwner_140", align 1 - %"$$ud-registry.recordMemberOwner_140_5569" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_140", align 1 - store [20 x i8] %"$$ud-registry.recordMemberOwner_140_5569", [20 x i8]* %recordOwner, align 1 - %"$gasrem_5570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5571" = icmp ugt i64 1, %"$gasrem_5570" - br i1 %"$gascmp_5571", label %"$out_of_gas_5572", label %"$have_gas_5573" - -"$out_of_gas_5572": ; preds = %"$have_gas_5561" - call void @_out_of_gas() - br label %"$have_gas_5573" - -"$have_gas_5573": ; preds = %"$out_of_gas_5572", %"$have_gas_5561" - %"$consume_5574" = sub i64 %"$gasrem_5570", 1 - store i64 %"$consume_5574", i64* @_gasrem, align 8 + %"$gasrem_4910" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4911" = icmp ugt i64 1, %"$gasrem_4910" + br i1 %"$gascmp_4911", label %"$out_of_gas_4912", label %"$have_gas_4913" + +"$out_of_gas_4912": ; preds = %"$have_gas_4908" + call void @_out_of_gas() + br label %"$have_gas_4913" + +"$have_gas_4913": ; preds = %"$out_of_gas_4912", %"$have_gas_4908" + %"$consume_4914" = sub i64 %"$gasrem_4910", 1 + store i64 %"$consume_4914", i64* @_gasrem, align 8 + %"$ud-registry.recordMemberOwner_59" = alloca [20 x i8], align 1 + %"$ud-registry.recordMemberOwner_4915" = load { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }, { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* }* @ud-registry.recordMemberOwner, align 8 + %"$ud-registry.recordMemberOwner_fptr_4916" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4915", 0 + %"$ud-registry.recordMemberOwner_envptr_4917" = extractvalue { void (i8*, [20 x i8]*, %TName_Option_ud-registry.Record*)*, i8* } %"$ud-registry.recordMemberOwner_4915", 1 + %"$maybeRecord_4918" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$ud-registry.recordMemberOwner_retalloca_4919" = alloca [20 x i8], align 1 + call void %"$ud-registry.recordMemberOwner_fptr_4916"(i8* %"$ud-registry.recordMemberOwner_envptr_4917", [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4919", %TName_Option_ud-registry.Record* %"$maybeRecord_4918") + %"$ud-registry.recordMemberOwner_ret_4920" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_retalloca_4919", align 1 + store [20 x i8] %"$ud-registry.recordMemberOwner_ret_4920", [20 x i8]* %"$ud-registry.recordMemberOwner_59", align 1 + %"$$ud-registry.recordMemberOwner_59_4921" = load [20 x i8], [20 x i8]* %"$ud-registry.recordMemberOwner_59", align 1 + store [20 x i8] %"$$ud-registry.recordMemberOwner_59_4921", [20 x i8]* %recordOwner, align 1 + %"$gasrem_4922" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4923" = icmp ugt i64 1, %"$gasrem_4922" + br i1 %"$gascmp_4923", label %"$out_of_gas_4924", label %"$have_gas_4925" + +"$out_of_gas_4924": ; preds = %"$have_gas_4913" + call void @_out_of_gas() + br label %"$have_gas_4925" + +"$have_gas_4925": ; preds = %"$out_of_gas_4924", %"$have_gas_4913" + %"$consume_4926" = sub i64 %"$gasrem_4922", 1 + store i64 %"$consume_4926", i64* @_gasrem, align 8 %approved = alloca [20 x i8], align 1 - %"$gasrem_5575" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5576" = icmp ugt i64 2, %"$gasrem_5575" - br i1 %"$gascmp_5576", label %"$out_of_gas_5577", label %"$have_gas_5578" - -"$out_of_gas_5577": ; preds = %"$have_gas_5573" - call void @_out_of_gas() - br label %"$have_gas_5578" - -"$have_gas_5578": ; preds = %"$out_of_gas_5577", %"$have_gas_5573" - %"$consume_5579" = sub i64 %"$gasrem_5575", 2 - store i64 %"$consume_5579", i64* @_gasrem, align 8 - %"$maybeApproved_5581" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 - %"$maybeApproved_tag_5582" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_5581", i32 0, i32 0 - %"$maybeApproved_tag_5583" = load i8, i8* %"$maybeApproved_tag_5582", align 1 - switch i8 %"$maybeApproved_tag_5583", label %"$empty_default_5584" [ - i8 1, label %"$None_5585" - i8 0, label %"$Some_5593" + %"$gasrem_4927" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4928" = icmp ugt i64 2, %"$gasrem_4927" + br i1 %"$gascmp_4928", label %"$out_of_gas_4929", label %"$have_gas_4930" + +"$out_of_gas_4929": ; preds = %"$have_gas_4925" + call void @_out_of_gas() + br label %"$have_gas_4930" + +"$have_gas_4930": ; preds = %"$out_of_gas_4929", %"$have_gas_4925" + %"$consume_4931" = sub i64 %"$gasrem_4927", 2 + store i64 %"$consume_4931", i64* @_gasrem, align 8 + %"$maybeApproved_4933" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %maybeApproved, align 8 + %"$maybeApproved_tag_4934" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$maybeApproved_4933", i32 0, i32 0 + %"$maybeApproved_tag_4935" = load i8, i8* %"$maybeApproved_tag_4934", align 1 + switch i8 %"$maybeApproved_tag_4935", label %"$empty_default_4936" [ + i8 1, label %"$None_4937" + i8 0, label %"$Some_4945" ] -"$None_5585": ; preds = %"$have_gas_5578" - %"$maybeApproved_5586" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5581" to %CName_None_ByStr20* - %"$gasrem_5587" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5588" = icmp ugt i64 1, %"$gasrem_5587" - br i1 %"$gascmp_5588", label %"$out_of_gas_5589", label %"$have_gas_5590" +"$None_4937": ; preds = %"$have_gas_4930" + %"$maybeApproved_4938" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4933" to %CName_None_ByStr20* + %"$gasrem_4939" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4940" = icmp ugt i64 1, %"$gasrem_4939" + br i1 %"$gascmp_4940", label %"$out_of_gas_4941", label %"$have_gas_4942" -"$out_of_gas_5589": ; preds = %"$None_5585" +"$out_of_gas_4941": ; preds = %"$None_4937" call void @_out_of_gas() - br label %"$have_gas_5590" + br label %"$have_gas_4942" -"$have_gas_5590": ; preds = %"$out_of_gas_5589", %"$None_5585" - %"$consume_5591" = sub i64 %"$gasrem_5587", 1 - store i64 %"$consume_5591", i64* @_gasrem, align 8 - %"$ud-registry.zeroByStr20_5592" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_5592", [20 x i8]* %approved, align 1 - br label %"$matchsucc_5580" +"$have_gas_4942": ; preds = %"$out_of_gas_4941", %"$None_4937" + %"$consume_4943" = sub i64 %"$gasrem_4939", 1 + store i64 %"$consume_4943", i64* @_gasrem, align 8 + %"$ud-registry.zeroByStr20_4944" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_4944", [20 x i8]* %approved, align 1 + br label %"$matchsucc_4932" -"$Some_5593": ; preds = %"$have_gas_5578" - %"$maybeApproved_5594" = bitcast %TName_Option_ByStr20* %"$maybeApproved_5581" to %CName_Some_ByStr20* - %"$approved_gep_5595" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_5594", i32 0, i32 1 - %"$approved_load_5596" = load [20 x i8], [20 x i8]* %"$approved_gep_5595", align 1 +"$Some_4945": ; preds = %"$have_gas_4930" + %"$maybeApproved_4946" = bitcast %TName_Option_ByStr20* %"$maybeApproved_4933" to %CName_Some_ByStr20* + %"$approved_gep_4947" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$maybeApproved_4946", i32 0, i32 1 + %"$approved_load_4948" = load [20 x i8], [20 x i8]* %"$approved_gep_4947", align 1 %approved2 = alloca [20 x i8], align 1 - store [20 x i8] %"$approved_load_5596", [20 x i8]* %approved2, align 1 - %"$gasrem_5597" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5598" = icmp ugt i64 1, %"$gasrem_5597" - br i1 %"$gascmp_5598", label %"$out_of_gas_5599", label %"$have_gas_5600" + store [20 x i8] %"$approved_load_4948", [20 x i8]* %approved2, align 1 + %"$gasrem_4949" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4950" = icmp ugt i64 1, %"$gasrem_4949" + br i1 %"$gascmp_4950", label %"$out_of_gas_4951", label %"$have_gas_4952" -"$out_of_gas_5599": ; preds = %"$Some_5593" +"$out_of_gas_4951": ; preds = %"$Some_4945" call void @_out_of_gas() - br label %"$have_gas_5600" + br label %"$have_gas_4952" -"$have_gas_5600": ; preds = %"$out_of_gas_5599", %"$Some_5593" - %"$consume_5601" = sub i64 %"$gasrem_5597", 1 - store i64 %"$consume_5601", i64* @_gasrem, align 8 - %"$approved_5602" = load [20 x i8], [20 x i8]* %approved2, align 1 - store [20 x i8] %"$approved_5602", [20 x i8]* %approved2, align 1 - br label %"$matchsucc_5580" +"$have_gas_4952": ; preds = %"$out_of_gas_4951", %"$Some_4945" + %"$consume_4953" = sub i64 %"$gasrem_4949", 1 + store i64 %"$consume_4953", i64* @_gasrem, align 8 + %"$approved_4954" = load [20 x i8], [20 x i8]* %approved2, align 1 + store [20 x i8] %"$approved_4954", [20 x i8]* %approved2, align 1 + br label %"$matchsucc_4932" -"$empty_default_5584": ; preds = %"$have_gas_5578" - br label %"$matchsucc_5580" +"$empty_default_4936": ; preds = %"$have_gas_4930" + br label %"$matchsucc_4932" -"$matchsucc_5580": ; preds = %"$have_gas_5600", %"$have_gas_5590", %"$empty_default_5584" +"$matchsucc_4932": ; preds = %"$have_gas_4952", %"$have_gas_4942", %"$empty_default_4936" %currentRegistrar = alloca [20 x i8], align 1 - %"$execptr_load_5604" = load i8*, i8** @_execptr, align 8 - %"$currentRegistrar_call_5605" = call i8* @_fetch_field(i8* %"$execptr_load_5604", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_5603", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i32 0, i8* null, i32 1) - %"$currentRegistrar_5606" = bitcast i8* %"$currentRegistrar_call_5605" to [20 x i8]* - %"$currentRegistrar_5607" = load [20 x i8], [20 x i8]* %"$currentRegistrar_5606", align 1 - store [20 x i8] %"$currentRegistrar_5607", [20 x i8]* %currentRegistrar, align 1 - %"$_literal_cost_currentRegistrar_5608" = alloca [20 x i8], align 1 - %"$currentRegistrar_5609" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - store [20 x i8] %"$currentRegistrar_5609", [20 x i8]* %"$_literal_cost_currentRegistrar_5608", align 1 - %"$$_literal_cost_currentRegistrar_5608_5610" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_5608" to i8* - %"$_literal_cost_call_5611" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", i8* %"$$_literal_cost_currentRegistrar_5608_5610") - %"$gasadd_5612" = add i64 %"$_literal_cost_call_5611", 0 - %"$gasrem_5613" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5614" = icmp ugt i64 %"$gasadd_5612", %"$gasrem_5613" - br i1 %"$gascmp_5614", label %"$out_of_gas_5615", label %"$have_gas_5616" - -"$out_of_gas_5615": ; preds = %"$matchsucc_5580" - call void @_out_of_gas() - br label %"$have_gas_5616" - -"$have_gas_5616": ; preds = %"$out_of_gas_5615", %"$matchsucc_5580" - %"$consume_5617" = sub i64 %"$gasrem_5613", %"$gasadd_5612" - store i64 %"$consume_5617", i64* @_gasrem, align 8 - %"$gasrem_5618" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5619" = icmp ugt i64 1, %"$gasrem_5618" - br i1 %"$gascmp_5619", label %"$out_of_gas_5620", label %"$have_gas_5621" - -"$out_of_gas_5620": ; preds = %"$have_gas_5616" - call void @_out_of_gas() - br label %"$have_gas_5621" - -"$have_gas_5621": ; preds = %"$out_of_gas_5620", %"$have_gas_5616" - %"$consume_5622" = sub i64 %"$gasrem_5618", 1 - store i64 %"$consume_5622", i64* @_gasrem, align 8 + %"$execptr_load_4956" = load i8*, i8** @_execptr, align 8 + %"$currentRegistrar_call_4957" = call i8* @_fetch_field(i8* %"$execptr_load_4956", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$registrar_4955", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i32 0, i8* null, i32 1) + %"$currentRegistrar_4958" = bitcast i8* %"$currentRegistrar_call_4957" to [20 x i8]* + %"$currentRegistrar_4959" = load [20 x i8], [20 x i8]* %"$currentRegistrar_4958", align 1 + store [20 x i8] %"$currentRegistrar_4959", [20 x i8]* %currentRegistrar, align 1 + %"$_literal_cost_currentRegistrar_4960" = alloca [20 x i8], align 1 + %"$currentRegistrar_4961" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + store [20 x i8] %"$currentRegistrar_4961", [20 x i8]* %"$_literal_cost_currentRegistrar_4960", align 1 + %"$$_literal_cost_currentRegistrar_4960_4962" = bitcast [20 x i8]* %"$_literal_cost_currentRegistrar_4960" to i8* + %"$_literal_cost_call_4963" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", i8* %"$$_literal_cost_currentRegistrar_4960_4962") + %"$gasadd_4964" = add i64 %"$_literal_cost_call_4963", 0 + %"$gasrem_4965" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4966" = icmp ugt i64 %"$gasadd_4964", %"$gasrem_4965" + br i1 %"$gascmp_4966", label %"$out_of_gas_4967", label %"$have_gas_4968" + +"$out_of_gas_4967": ; preds = %"$matchsucc_4932" + call void @_out_of_gas() + br label %"$have_gas_4968" + +"$have_gas_4968": ; preds = %"$out_of_gas_4967", %"$matchsucc_4932" + %"$consume_4969" = sub i64 %"$gasrem_4965", %"$gasadd_4964" + store i64 %"$consume_4969", i64* @_gasrem, align 8 + %"$gasrem_4970" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4971" = icmp ugt i64 1, %"$gasrem_4970" + br i1 %"$gascmp_4971", label %"$out_of_gas_4972", label %"$have_gas_4973" + +"$out_of_gas_4972": ; preds = %"$have_gas_4968" + call void @_out_of_gas() + br label %"$have_gas_4973" + +"$have_gas_4973": ; preds = %"$out_of_gas_4972", %"$have_gas_4968" + %"$consume_4974" = sub i64 %"$gasrem_4970", 1 + store i64 %"$consume_4974", i64* @_gasrem, align 8 %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_5623" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5624" = icmp ugt i64 1, %"$gasrem_5623" - br i1 %"$gascmp_5624", label %"$out_of_gas_5625", label %"$have_gas_5626" + %"$gasrem_4975" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4976" = icmp ugt i64 1, %"$gasrem_4975" + br i1 %"$gascmp_4976", label %"$out_of_gas_4977", label %"$have_gas_4978" -"$out_of_gas_5625": ; preds = %"$have_gas_5621" +"$out_of_gas_4977": ; preds = %"$have_gas_4973" call void @_out_of_gas() - br label %"$have_gas_5626" + br label %"$have_gas_4978" -"$have_gas_5626": ; preds = %"$out_of_gas_5625", %"$have_gas_5621" - %"$consume_5627" = sub i64 %"$gasrem_5623", 1 - store i64 %"$consume_5627", i64* @_gasrem, align 8 +"$have_gas_4978": ; preds = %"$out_of_gas_4977", %"$have_gas_4973" + %"$consume_4979" = sub i64 %"$gasrem_4975", 1 + store i64 %"$consume_4979", i64* @_gasrem, align 8 %isRecordUnowned = alloca %TName_Bool*, align 8 - %"$gasrem_5628" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5629" = icmp ugt i64 20, %"$gasrem_5628" - br i1 %"$gascmp_5629", label %"$out_of_gas_5630", label %"$have_gas_5631" - -"$out_of_gas_5630": ; preds = %"$have_gas_5626" - call void @_out_of_gas() - br label %"$have_gas_5631" - -"$have_gas_5631": ; preds = %"$out_of_gas_5630", %"$have_gas_5626" - %"$consume_5632" = sub i64 %"$gasrem_5628", 20 - store i64 %"$consume_5632", i64* @_gasrem, align 8 - %"$execptr_load_5633" = load i8*, i8** @_execptr, align 8 - %"$eq_recordOwner_5634" = alloca [20 x i8], align 1 - %"$recordOwner_5635" = load [20 x i8], [20 x i8]* %recordOwner, align 1 - store [20 x i8] %"$recordOwner_5635", [20 x i8]* %"$eq_recordOwner_5634", align 1 - %"$$eq_recordOwner_5634_5636" = bitcast [20 x i8]* %"$eq_recordOwner_5634" to i8* - %"$eq_ud-registry.zeroByStr20_5637" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_5638" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_5638", [20 x i8]* %"$eq_ud-registry.zeroByStr20_5637", align 1 - %"$$eq_ud-registry.zeroByStr20_5637_5639" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_5637" to i8* - %"$eq_call_5640" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5633", i32 20, i8* %"$$eq_recordOwner_5634_5636", i8* %"$$eq_ud-registry.zeroByStr20_5637_5639") - store %TName_Bool* %"$eq_call_5640", %TName_Bool** %isRecordUnowned, align 8 - %"$gasrem_5642" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5643" = icmp ugt i64 1, %"$gasrem_5642" - br i1 %"$gascmp_5643", label %"$out_of_gas_5644", label %"$have_gas_5645" - -"$out_of_gas_5644": ; preds = %"$have_gas_5631" - call void @_out_of_gas() - br label %"$have_gas_5645" - -"$have_gas_5645": ; preds = %"$out_of_gas_5644", %"$have_gas_5631" - %"$consume_5646" = sub i64 %"$gasrem_5642", 1 - store i64 %"$consume_5646", i64* @_gasrem, align 8 + %"$gasrem_4980" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4981" = icmp ugt i64 20, %"$gasrem_4980" + br i1 %"$gascmp_4981", label %"$out_of_gas_4982", label %"$have_gas_4983" + +"$out_of_gas_4982": ; preds = %"$have_gas_4978" + call void @_out_of_gas() + br label %"$have_gas_4983" + +"$have_gas_4983": ; preds = %"$out_of_gas_4982", %"$have_gas_4978" + %"$consume_4984" = sub i64 %"$gasrem_4980", 20 + store i64 %"$consume_4984", i64* @_gasrem, align 8 + %"$execptr_load_4985" = load i8*, i8** @_execptr, align 8 + %"$eq_recordOwner_4986" = alloca [20 x i8], align 1 + %"$recordOwner_4987" = load [20 x i8], [20 x i8]* %recordOwner, align 1 + store [20 x i8] %"$recordOwner_4987", [20 x i8]* %"$eq_recordOwner_4986", align 1 + %"$$eq_recordOwner_4986_4988" = bitcast [20 x i8]* %"$eq_recordOwner_4986" to i8* + %"$eq_ud-registry.zeroByStr20_4989" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_4990" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_4990", [20 x i8]* %"$eq_ud-registry.zeroByStr20_4989", align 1 + %"$$eq_ud-registry.zeroByStr20_4989_4991" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_4989" to i8* + %"$eq_call_4992" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_4985", i32 20, i8* %"$$eq_recordOwner_4986_4988", i8* %"$$eq_ud-registry.zeroByStr20_4989_4991") + store %TName_Bool* %"$eq_call_4992", %TName_Bool** %isRecordUnowned, align 8 + %"$gasrem_4994" = load i64, i64* @_gasrem, align 8 + %"$gascmp_4995" = icmp ugt i64 1, %"$gasrem_4994" + br i1 %"$gascmp_4995", label %"$out_of_gas_4996", label %"$have_gas_4997" + +"$out_of_gas_4996": ; preds = %"$have_gas_4983" + call void @_out_of_gas() + br label %"$have_gas_4997" + +"$have_gas_4997": ; preds = %"$out_of_gas_4996", %"$have_gas_4983" + %"$consume_4998" = sub i64 %"$gasrem_4994", 1 + store i64 %"$consume_4998", i64* @_gasrem, align 8 %isUnapproved = alloca %TName_Bool*, align 8 - %"$gasrem_5647" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5648" = icmp ugt i64 20, %"$gasrem_5647" - br i1 %"$gascmp_5648", label %"$out_of_gas_5649", label %"$have_gas_5650" - -"$out_of_gas_5649": ; preds = %"$have_gas_5645" - call void @_out_of_gas() - br label %"$have_gas_5650" - -"$have_gas_5650": ; preds = %"$out_of_gas_5649", %"$have_gas_5645" - %"$consume_5651" = sub i64 %"$gasrem_5647", 20 - store i64 %"$consume_5651", i64* @_gasrem, align 8 - %"$execptr_load_5652" = load i8*, i8** @_execptr, align 8 - %"$eq_approved_5653" = alloca [20 x i8], align 1 - %"$approved_5654" = load [20 x i8], [20 x i8]* %approved, align 1 - store [20 x i8] %"$approved_5654", [20 x i8]* %"$eq_approved_5653", align 1 - %"$$eq_approved_5653_5655" = bitcast [20 x i8]* %"$eq_approved_5653" to i8* - %"$eq_ud-registry.zeroByStr20_5656" = alloca [20 x i8], align 1 - %"$ud-registry.zeroByStr20_5657" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 - store [20 x i8] %"$ud-registry.zeroByStr20_5657", [20 x i8]* %"$eq_ud-registry.zeroByStr20_5656", align 1 - %"$$eq_ud-registry.zeroByStr20_5656_5658" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_5656" to i8* - %"$eq_call_5659" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5652", i32 20, i8* %"$$eq_approved_5653_5655", i8* %"$$eq_ud-registry.zeroByStr20_5656_5658") - store %TName_Bool* %"$eq_call_5659", %TName_Bool** %isUnapproved, align 8 - %"$gasrem_5661" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5662" = icmp ugt i64 1, %"$gasrem_5661" - br i1 %"$gascmp_5662", label %"$out_of_gas_5663", label %"$have_gas_5664" - -"$out_of_gas_5663": ; preds = %"$have_gas_5650" - call void @_out_of_gas() - br label %"$have_gas_5664" - -"$have_gas_5664": ; preds = %"$out_of_gas_5663", %"$have_gas_5650" - %"$consume_5665" = sub i64 %"$gasrem_5661", 1 - store i64 %"$consume_5665", i64* @_gasrem, align 8 - %"$BoolUtils.andb_138" = alloca { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, align 8 - %"$BoolUtils.andb_5666" = load { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 - %"$BoolUtils.andb_fptr_5667" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5666", 0 - %"$BoolUtils.andb_envptr_5668" = extractvalue { { %TName_Bool* (i8*, %TName_Bool*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5666", 1 - %"$isRecordUnowned_5669" = load %TName_Bool*, %TName_Bool** %isRecordUnowned, align 8 - %"$BoolUtils.andb_call_5670" = call { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_fptr_5667"(i8* %"$BoolUtils.andb_envptr_5668", %TName_Bool* %"$isRecordUnowned_5669") - store { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_call_5670", { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_138", align 8 - %"$BoolUtils.andb_139" = alloca %TName_Bool*, align 8 - %"$$BoolUtils.andb_138_5671" = load { %TName_Bool* (i8*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*)*, i8* }* %"$BoolUtils.andb_138", align 8 - %"$$BoolUtils.andb_138_fptr_5672" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_138_5671", 0 - %"$$BoolUtils.andb_138_envptr_5673" = extractvalue { %TName_Bool* (i8*, %TName_Bool*)*, i8* } %"$$BoolUtils.andb_138_5671", 1 - %"$isUnapproved_5674" = load %TName_Bool*, %TName_Bool** %isUnapproved, align 8 - %"$$BoolUtils.andb_138_call_5675" = call %TName_Bool* %"$$BoolUtils.andb_138_fptr_5672"(i8* %"$$BoolUtils.andb_138_envptr_5673", %TName_Bool* %"$isUnapproved_5674") - store %TName_Bool* %"$$BoolUtils.andb_138_call_5675", %TName_Bool** %"$BoolUtils.andb_139", align 8 - %"$$BoolUtils.andb_139_5676" = load %TName_Bool*, %TName_Bool** %"$BoolUtils.andb_139", align 8 - store %TName_Bool* %"$$BoolUtils.andb_139_5676", %TName_Bool** %isOk, align 8 - %"$gasrem_5677" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5678" = icmp ugt i64 2, %"$gasrem_5677" - br i1 %"$gascmp_5678", label %"$out_of_gas_5679", label %"$have_gas_5680" - -"$out_of_gas_5679": ; preds = %"$have_gas_5664" - call void @_out_of_gas() - br label %"$have_gas_5680" - -"$have_gas_5680": ; preds = %"$out_of_gas_5679", %"$have_gas_5664" - %"$consume_5681" = sub i64 %"$gasrem_5677", 2 - store i64 %"$consume_5681", i64* @_gasrem, align 8 - %"$isOk_5683" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_5684" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5683", i32 0, i32 0 - %"$isOk_tag_5685" = load i8, i8* %"$isOk_tag_5684", align 1 - switch i8 %"$isOk_tag_5685", label %"$empty_default_5686" [ - i8 0, label %"$True_5687" - i8 1, label %"$False_5785" + %"$gasrem_4999" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5000" = icmp ugt i64 20, %"$gasrem_4999" + br i1 %"$gascmp_5000", label %"$out_of_gas_5001", label %"$have_gas_5002" + +"$out_of_gas_5001": ; preds = %"$have_gas_4997" + call void @_out_of_gas() + br label %"$have_gas_5002" + +"$have_gas_5002": ; preds = %"$out_of_gas_5001", %"$have_gas_4997" + %"$consume_5003" = sub i64 %"$gasrem_4999", 20 + store i64 %"$consume_5003", i64* @_gasrem, align 8 + %"$execptr_load_5004" = load i8*, i8** @_execptr, align 8 + %"$eq_approved_5005" = alloca [20 x i8], align 1 + %"$approved_5006" = load [20 x i8], [20 x i8]* %approved, align 1 + store [20 x i8] %"$approved_5006", [20 x i8]* %"$eq_approved_5005", align 1 + %"$$eq_approved_5005_5007" = bitcast [20 x i8]* %"$eq_approved_5005" to i8* + %"$eq_ud-registry.zeroByStr20_5008" = alloca [20 x i8], align 1 + %"$ud-registry.zeroByStr20_5009" = load [20 x i8], [20 x i8]* @ud-registry.zeroByStr20, align 1 + store [20 x i8] %"$ud-registry.zeroByStr20_5009", [20 x i8]* %"$eq_ud-registry.zeroByStr20_5008", align 1 + %"$$eq_ud-registry.zeroByStr20_5008_5010" = bitcast [20 x i8]* %"$eq_ud-registry.zeroByStr20_5008" to i8* + %"$eq_call_5011" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5004", i32 20, i8* %"$$eq_approved_5005_5007", i8* %"$$eq_ud-registry.zeroByStr20_5008_5010") + store %TName_Bool* %"$eq_call_5011", %TName_Bool** %isUnapproved, align 8 + %"$gasrem_5013" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5014" = icmp ugt i64 1, %"$gasrem_5013" + br i1 %"$gascmp_5014", label %"$out_of_gas_5015", label %"$have_gas_5016" + +"$out_of_gas_5015": ; preds = %"$have_gas_5002" + call void @_out_of_gas() + br label %"$have_gas_5016" + +"$have_gas_5016": ; preds = %"$out_of_gas_5015", %"$have_gas_5002" + %"$consume_5017" = sub i64 %"$gasrem_5013", 1 + store i64 %"$consume_5017", i64* @_gasrem, align 8 + %"$BoolUtils.andb_5018" = load { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }, { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* }* @BoolUtils.andb, align 8 + %"$BoolUtils.andb_fptr_5019" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5018", 0 + %"$BoolUtils.andb_envptr_5020" = extractvalue { %TName_Bool* (i8*, %TName_Bool*, %TName_Bool*)*, i8* } %"$BoolUtils.andb_5018", 1 + %"$isRecordUnowned_5021" = load %TName_Bool*, %TName_Bool** %isRecordUnowned, align 8 + %"$isUnapproved_5022" = load %TName_Bool*, %TName_Bool** %isUnapproved, align 8 + %"$BoolUtils.andb_call_5023" = call %TName_Bool* %"$BoolUtils.andb_fptr_5019"(i8* %"$BoolUtils.andb_envptr_5020", %TName_Bool* %"$isRecordUnowned_5021", %TName_Bool* %"$isUnapproved_5022") + store %TName_Bool* %"$BoolUtils.andb_call_5023", %TName_Bool** %isOk, align 8 + %"$gasrem_5024" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5025" = icmp ugt i64 2, %"$gasrem_5024" + br i1 %"$gascmp_5025", label %"$out_of_gas_5026", label %"$have_gas_5027" + +"$out_of_gas_5026": ; preds = %"$have_gas_5016" + call void @_out_of_gas() + br label %"$have_gas_5027" + +"$have_gas_5027": ; preds = %"$out_of_gas_5026", %"$have_gas_5016" + %"$consume_5028" = sub i64 %"$gasrem_5024", 2 + store i64 %"$consume_5028", i64* @_gasrem, align 8 + %"$isOk_5030" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_5031" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5030", i32 0, i32 0 + %"$isOk_tag_5032" = load i8, i8* %"$isOk_tag_5031", align 1 + switch i8 %"$isOk_tag_5032", label %"$empty_default_5033" [ + i8 0, label %"$True_5034" + i8 1, label %"$False_5132" ] -"$True_5687": ; preds = %"$have_gas_5680" - %"$isOk_5688" = bitcast %TName_Bool* %"$isOk_5683" to %CName_True* - %"$gasrem_5689" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5690" = icmp ugt i64 1, %"$gasrem_5689" - br i1 %"$gascmp_5690", label %"$out_of_gas_5691", label %"$have_gas_5692" +"$True_5034": ; preds = %"$have_gas_5027" + %"$isOk_5035" = bitcast %TName_Bool* %"$isOk_5030" to %CName_True* + %"$gasrem_5036" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5037" = icmp ugt i64 1, %"$gasrem_5036" + br i1 %"$gascmp_5037", label %"$out_of_gas_5038", label %"$have_gas_5039" -"$out_of_gas_5691": ; preds = %"$True_5687" +"$out_of_gas_5038": ; preds = %"$True_5034" call void @_out_of_gas() - br label %"$have_gas_5692" + br label %"$have_gas_5039" -"$have_gas_5692": ; preds = %"$out_of_gas_5691", %"$True_5687" - %"$consume_5693" = sub i64 %"$gasrem_5689", 1 - store i64 %"$consume_5693", i64* @_gasrem, align 8 - %"$execptr_load_5694" = load i8*, i8** @_execptr, align 8 - call void @_accept(i8* %"$execptr_load_5694") - %"$gasrem_5695" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5696" = icmp ugt i64 1, %"$gasrem_5695" - br i1 %"$gascmp_5696", label %"$out_of_gas_5697", label %"$have_gas_5698" +"$have_gas_5039": ; preds = %"$out_of_gas_5038", %"$True_5034" + %"$consume_5040" = sub i64 %"$gasrem_5036", 1 + store i64 %"$consume_5040", i64* @_gasrem, align 8 + %"$execptr_load_5041" = load i8*, i8** @_execptr, align 8 + call void @_accept(i8* %"$execptr_load_5041") + %"$gasrem_5042" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5043" = icmp ugt i64 1, %"$gasrem_5042" + br i1 %"$gascmp_5043", label %"$out_of_gas_5044", label %"$have_gas_5045" -"$out_of_gas_5697": ; preds = %"$have_gas_5692" +"$out_of_gas_5044": ; preds = %"$have_gas_5039" call void @_out_of_gas() - br label %"$have_gas_5698" + br label %"$have_gas_5045" -"$have_gas_5698": ; preds = %"$out_of_gas_5697", %"$have_gas_5692" - %"$consume_5699" = sub i64 %"$gasrem_5695", 1 - store i64 %"$consume_5699", i64* @_gasrem, align 8 +"$have_gas_5045": ; preds = %"$out_of_gas_5044", %"$have_gas_5039" + %"$consume_5046" = sub i64 %"$gasrem_5042", 1 + store i64 %"$consume_5046", i64* @_gasrem, align 8 %msgs = alloca %TName_List_Message*, align 8 - %"$gasrem_5700" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5701" = icmp ugt i64 1, %"$gasrem_5700" - br i1 %"$gascmp_5701", label %"$out_of_gas_5702", label %"$have_gas_5703" + %"$gasrem_5047" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5048" = icmp ugt i64 1, %"$gasrem_5047" + br i1 %"$gascmp_5048", label %"$out_of_gas_5049", label %"$have_gas_5050" -"$out_of_gas_5702": ; preds = %"$have_gas_5698" +"$out_of_gas_5049": ; preds = %"$have_gas_5045" call void @_out_of_gas() - br label %"$have_gas_5703" + br label %"$have_gas_5050" -"$have_gas_5703": ; preds = %"$out_of_gas_5702", %"$have_gas_5698" - %"$consume_5704" = sub i64 %"$gasrem_5700", 1 - store i64 %"$consume_5704", i64* @_gasrem, align 8 +"$have_gas_5050": ; preds = %"$out_of_gas_5049", %"$have_gas_5045" + %"$consume_5051" = sub i64 %"$gasrem_5047", 1 + store i64 %"$consume_5051", i64* @_gasrem, align 8 %m = alloca i8*, align 8 - %"$gasrem_5705" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5706" = icmp ugt i64 1, %"$gasrem_5705" - br i1 %"$gascmp_5706", label %"$out_of_gas_5707", label %"$have_gas_5708" - -"$out_of_gas_5707": ; preds = %"$have_gas_5703" - call void @_out_of_gas() - br label %"$have_gas_5708" - -"$have_gas_5708": ; preds = %"$out_of_gas_5707", %"$have_gas_5703" - %"$consume_5709" = sub i64 %"$gasrem_5705", 1 - store i64 %"$consume_5709", i64* @_gasrem, align 8 - %"$msgobj_5710_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$msgobj_5710_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_5710_salloc_load", i64 321) - %"$msgobj_5710_salloc" = bitcast i8* %"$msgobj_5710_salloc_salloc" to [321 x i8]* - %"$msgobj_5710" = bitcast [321 x i8]* %"$msgobj_5710_salloc" to i8* - store i8 7, i8* %"$msgobj_5710", align 1 - %"$msgobj_fname_5712" = getelementptr i8, i8* %"$msgobj_5710", i32 1 - %"$msgobj_fname_5713" = bitcast i8* %"$msgobj_fname_5712" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5711", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5713", align 8 - %"$msgobj_td_5714" = getelementptr i8, i8* %"$msgobj_5710", i32 17 - %"$msgobj_td_5715" = bitcast i8* %"$msgobj_td_5714" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_5715", align 8 - %"$msgobj_v_5717" = getelementptr i8, i8* %"$msgobj_5710", i32 25 - %"$msgobj_v_5718" = bitcast i8* %"$msgobj_v_5717" to %String* - store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_5716", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_5718", align 8 - %"$msgobj_fname_5720" = getelementptr i8, i8* %"$msgobj_5710", i32 41 - %"$msgobj_fname_5721" = bitcast i8* %"$msgobj_fname_5720" to %String* - store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_5719", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_5721", align 8 - %"$msgobj_td_5722" = getelementptr i8, i8* %"$msgobj_5710", i32 57 - %"$msgobj_td_5723" = bitcast i8* %"$msgobj_td_5722" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Uint128_289", %_TyDescrTy_Typ** %"$msgobj_td_5723", align 8 - %"$msgobj_v_5724" = getelementptr i8, i8* %"$msgobj_5710", i32 65 - %"$msgobj_v_5725" = bitcast i8* %"$msgobj_v_5724" to %Uint128* - store %Uint128 %_amount, %Uint128* %"$msgobj_v_5725", align 8 - %"$msgobj_fname_5727" = getelementptr i8, i8* %"$msgobj_5710", i32 81 - %"$msgobj_fname_5728" = bitcast i8* %"$msgobj_fname_5727" to %String* - store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_5726", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_5728", align 8 - %"$msgobj_td_5729" = getelementptr i8, i8* %"$msgobj_5710", i32 97 - %"$msgobj_td_5730" = bitcast i8* %"$msgobj_td_5729" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_5730", align 8 - %"$currentRegistrar_5731" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 - %"$msgobj_v_5732" = getelementptr i8, i8* %"$msgobj_5710", i32 105 - %"$msgobj_v_5733" = bitcast i8* %"$msgobj_v_5732" to [20 x i8]* - store [20 x i8] %"$currentRegistrar_5731", [20 x i8]* %"$msgobj_v_5733", align 1 - %"$msgobj_fname_5735" = getelementptr i8, i8* %"$msgobj_5710", i32 125 - %"$msgobj_fname_5736" = bitcast i8* %"$msgobj_fname_5735" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_5734", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_5736", align 8 - %"$msgobj_td_5737" = getelementptr i8, i8* %"$msgobj_5710", i32 141 - %"$msgobj_td_5738" = bitcast i8* %"$msgobj_td_5737" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_311", %_TyDescrTy_Typ** %"$msgobj_td_5738", align 8 - %"$msgobj_v_5739" = getelementptr i8, i8* %"$msgobj_5710", i32 149 - %"$msgobj_v_5740" = bitcast i8* %"$msgobj_v_5739" to [20 x i8]* - store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_5740", align 1 - %"$msgobj_fname_5742" = getelementptr i8, i8* %"$msgobj_5710", i32 169 - %"$msgobj_fname_5743" = bitcast i8* %"$msgobj_fname_5742" to %String* - store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5741", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5743", align 8 - %"$msgobj_td_5744" = getelementptr i8, i8* %"$msgobj_5710", i32 185 - %"$msgobj_td_5745" = bitcast i8* %"$msgobj_td_5744" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_5745", align 8 - %"$node_5746" = load [32 x i8], [32 x i8]* %node, align 1 - %"$msgobj_v_5747" = getelementptr i8, i8* %"$msgobj_5710", i32 193 - %"$msgobj_v_5748" = bitcast i8* %"$msgobj_v_5747" to [32 x i8]* - store [32 x i8] %"$node_5746", [32 x i8]* %"$msgobj_v_5748", align 1 - %"$msgobj_fname_5750" = getelementptr i8, i8* %"$msgobj_5710", i32 225 - %"$msgobj_fname_5751" = bitcast i8* %"$msgobj_fname_5750" to %String* - store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_5749", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_5751", align 8 - %"$msgobj_td_5752" = getelementptr i8, i8* %"$msgobj_5710", i32 241 - %"$msgobj_td_5753" = bitcast i8* %"$msgobj_td_5752" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_309", %_TyDescrTy_Typ** %"$msgobj_td_5753", align 8 - %"$msgobj_v_5754" = getelementptr i8, i8* %"$msgobj_5710", i32 249 - %"$msgobj_v_5755" = bitcast i8* %"$msgobj_v_5754" to [32 x i8]* - store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_5755", align 1 - %"$msgobj_fname_5757" = getelementptr i8, i8* %"$msgobj_5710", i32 281 - %"$msgobj_fname_5758" = bitcast i8* %"$msgobj_fname_5757" to %String* - store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_5756", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_5758", align 8 - %"$msgobj_td_5759" = getelementptr i8, i8* %"$msgobj_5710", i32 297 - %"$msgobj_td_5760" = bitcast i8* %"$msgobj_td_5759" to %_TyDescrTy_Typ** - store %_TyDescrTy_Typ* @"$TyDescr_String_295", %_TyDescrTy_Typ** %"$msgobj_td_5760", align 8 - %"$msgobj_v_5761" = getelementptr i8, i8* %"$msgobj_5710", i32 305 - %"$msgobj_v_5762" = bitcast i8* %"$msgobj_v_5761" to %String* - store %String %label, %String* %"$msgobj_v_5762", align 8 - store i8* %"$msgobj_5710", i8** %m, align 8 - %"$gasrem_5764" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5765" = icmp ugt i64 1, %"$gasrem_5764" - br i1 %"$gascmp_5765", label %"$out_of_gas_5766", label %"$have_gas_5767" - -"$out_of_gas_5766": ; preds = %"$have_gas_5708" - call void @_out_of_gas() - br label %"$have_gas_5767" - -"$have_gas_5767": ; preds = %"$out_of_gas_5766", %"$have_gas_5708" - %"$consume_5768" = sub i64 %"$gasrem_5764", 1 - store i64 %"$consume_5768", i64* @_gasrem, align 8 - %"$ud-registry.oneMsg_137" = alloca %TName_List_Message*, align 8 - %"$ud-registry.oneMsg_5769" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 - %"$ud-registry.oneMsg_fptr_5770" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5769", 0 - %"$ud-registry.oneMsg_envptr_5771" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5769", 1 - %"$m_5772" = load i8*, i8** %m, align 8 - %"$ud-registry.oneMsg_call_5773" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_5770"(i8* %"$ud-registry.oneMsg_envptr_5771", i8* %"$m_5772") - store %TName_List_Message* %"$ud-registry.oneMsg_call_5773", %TName_List_Message** %"$ud-registry.oneMsg_137", align 8 - %"$$ud-registry.oneMsg_137_5774" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_137", align 8 - store %TName_List_Message* %"$$ud-registry.oneMsg_137_5774", %TName_List_Message** %msgs, align 8 - %"$msgs_5775" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - %"$$msgs_5775_5776" = bitcast %TName_List_Message* %"$msgs_5775" to i8* - %"$_literal_cost_call_5777" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", i8* %"$$msgs_5775_5776") - %"$gasrem_5778" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5779" = icmp ugt i64 %"$_literal_cost_call_5777", %"$gasrem_5778" - br i1 %"$gascmp_5779", label %"$out_of_gas_5780", label %"$have_gas_5781" - -"$out_of_gas_5780": ; preds = %"$have_gas_5767" - call void @_out_of_gas() - br label %"$have_gas_5781" - -"$have_gas_5781": ; preds = %"$out_of_gas_5780", %"$have_gas_5767" - %"$consume_5782" = sub i64 %"$gasrem_5778", %"$_literal_cost_call_5777" - store i64 %"$consume_5782", i64* @_gasrem, align 8 - %"$execptr_load_5783" = load i8*, i8** @_execptr, align 8 - %"$msgs_5784" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 - call void @_send(i8* %"$execptr_load_5783", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_319", %TName_List_Message* %"$msgs_5784") - br label %"$matchsucc_5682" - -"$False_5785": ; preds = %"$have_gas_5680" - %"$isOk_5786" = bitcast %TName_Bool* %"$isOk_5683" to %CName_False* - br label %"$matchsucc_5682" - -"$empty_default_5686": ; preds = %"$have_gas_5680" - br label %"$matchsucc_5682" - -"$matchsucc_5682": ; preds = %"$False_5785", %"$have_gas_5781", %"$empty_default_5686" + %"$gasrem_5052" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5053" = icmp ugt i64 1, %"$gasrem_5052" + br i1 %"$gascmp_5053", label %"$out_of_gas_5054", label %"$have_gas_5055" + +"$out_of_gas_5054": ; preds = %"$have_gas_5050" + call void @_out_of_gas() + br label %"$have_gas_5055" + +"$have_gas_5055": ; preds = %"$out_of_gas_5054", %"$have_gas_5050" + %"$consume_5056" = sub i64 %"$gasrem_5052", 1 + store i64 %"$consume_5056", i64* @_gasrem, align 8 + %"$msgobj_5057_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$msgobj_5057_salloc_salloc" = call i8* @_salloc(i8* %"$msgobj_5057_salloc_load", i64 321) + %"$msgobj_5057_salloc" = bitcast i8* %"$msgobj_5057_salloc_salloc" to [321 x i8]* + %"$msgobj_5057" = bitcast [321 x i8]* %"$msgobj_5057_salloc" to i8* + store i8 7, i8* %"$msgobj_5057", align 1 + %"$msgobj_fname_5059" = getelementptr i8, i8* %"$msgobj_5057", i32 1 + %"$msgobj_fname_5060" = bitcast i8* %"$msgobj_fname_5059" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5058", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5060", align 8 + %"$msgobj_td_5061" = getelementptr i8, i8* %"$msgobj_5057", i32 17 + %"$msgobj_td_5062" = bitcast i8* %"$msgobj_td_5061" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_5062", align 8 + %"$msgobj_v_5064" = getelementptr i8, i8* %"$msgobj_5057", i32 25 + %"$msgobj_v_5065" = bitcast i8* %"$msgobj_v_5064" to %String* + store %String { i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$stringlit_5063", i32 0, i32 0), i32 8 }, %String* %"$msgobj_v_5065", align 8 + %"$msgobj_fname_5067" = getelementptr i8, i8* %"$msgobj_5057", i32 41 + %"$msgobj_fname_5068" = bitcast i8* %"$msgobj_fname_5067" to %String* + store %String { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$stringlit_5066", i32 0, i32 0), i32 7 }, %String* %"$msgobj_fname_5068", align 8 + %"$msgobj_td_5069" = getelementptr i8, i8* %"$msgobj_5057", i32 57 + %"$msgobj_td_5070" = bitcast i8* %"$msgobj_td_5069" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Uint128_172", %_TyDescrTy_Typ** %"$msgobj_td_5070", align 8 + %"$msgobj_v_5071" = getelementptr i8, i8* %"$msgobj_5057", i32 65 + %"$msgobj_v_5072" = bitcast i8* %"$msgobj_v_5071" to %Uint128* + store %Uint128 %_amount, %Uint128* %"$msgobj_v_5072", align 8 + %"$msgobj_fname_5074" = getelementptr i8, i8* %"$msgobj_5057", i32 81 + %"$msgobj_fname_5075" = bitcast i8* %"$msgobj_fname_5074" to %String* + store %String { i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$stringlit_5073", i32 0, i32 0), i32 10 }, %String* %"$msgobj_fname_5075", align 8 + %"$msgobj_td_5076" = getelementptr i8, i8* %"$msgobj_5057", i32 97 + %"$msgobj_td_5077" = bitcast i8* %"$msgobj_td_5076" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_5077", align 8 + %"$currentRegistrar_5078" = load [20 x i8], [20 x i8]* %currentRegistrar, align 1 + %"$msgobj_v_5079" = getelementptr i8, i8* %"$msgobj_5057", i32 105 + %"$msgobj_v_5080" = bitcast i8* %"$msgobj_v_5079" to [20 x i8]* + store [20 x i8] %"$currentRegistrar_5078", [20 x i8]* %"$msgobj_v_5080", align 1 + %"$msgobj_fname_5082" = getelementptr i8, i8* %"$msgobj_5057", i32 125 + %"$msgobj_fname_5083" = bitcast i8* %"$msgobj_fname_5082" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_5081", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_5083", align 8 + %"$msgobj_td_5084" = getelementptr i8, i8* %"$msgobj_5057", i32 141 + %"$msgobj_td_5085" = bitcast i8* %"$msgobj_td_5084" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr20_194", %_TyDescrTy_Typ** %"$msgobj_td_5085", align 8 + %"$msgobj_v_5086" = getelementptr i8, i8* %"$msgobj_5057", i32 149 + %"$msgobj_v_5087" = bitcast i8* %"$msgobj_v_5086" to [20 x i8]* + store [20 x i8] %_sender, [20 x i8]* %"$msgobj_v_5087", align 1 + %"$msgobj_fname_5089" = getelementptr i8, i8* %"$msgobj_5057", i32 169 + %"$msgobj_fname_5090" = bitcast i8* %"$msgobj_fname_5089" to %String* + store %String { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$stringlit_5088", i32 0, i32 0), i32 4 }, %String* %"$msgobj_fname_5090", align 8 + %"$msgobj_td_5091" = getelementptr i8, i8* %"$msgobj_5057", i32 185 + %"$msgobj_td_5092" = bitcast i8* %"$msgobj_td_5091" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_5092", align 8 + %"$node_5093" = load [32 x i8], [32 x i8]* %node, align 1 + %"$msgobj_v_5094" = getelementptr i8, i8* %"$msgobj_5057", i32 193 + %"$msgobj_v_5095" = bitcast i8* %"$msgobj_v_5094" to [32 x i8]* + store [32 x i8] %"$node_5093", [32 x i8]* %"$msgobj_v_5095", align 1 + %"$msgobj_fname_5097" = getelementptr i8, i8* %"$msgobj_5057", i32 225 + %"$msgobj_fname_5098" = bitcast i8* %"$msgobj_fname_5097" to %String* + store %String { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$stringlit_5096", i32 0, i32 0), i32 6 }, %String* %"$msgobj_fname_5098", align 8 + %"$msgobj_td_5099" = getelementptr i8, i8* %"$msgobj_5057", i32 241 + %"$msgobj_td_5100" = bitcast i8* %"$msgobj_td_5099" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_Bystr32_192", %_TyDescrTy_Typ** %"$msgobj_td_5100", align 8 + %"$msgobj_v_5101" = getelementptr i8, i8* %"$msgobj_5057", i32 249 + %"$msgobj_v_5102" = bitcast i8* %"$msgobj_v_5101" to [32 x i8]* + store [32 x i8] %parent, [32 x i8]* %"$msgobj_v_5102", align 1 + %"$msgobj_fname_5104" = getelementptr i8, i8* %"$msgobj_5057", i32 281 + %"$msgobj_fname_5105" = bitcast i8* %"$msgobj_fname_5104" to %String* + store %String { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$stringlit_5103", i32 0, i32 0), i32 5 }, %String* %"$msgobj_fname_5105", align 8 + %"$msgobj_td_5106" = getelementptr i8, i8* %"$msgobj_5057", i32 297 + %"$msgobj_td_5107" = bitcast i8* %"$msgobj_td_5106" to %_TyDescrTy_Typ** + store %_TyDescrTy_Typ* @"$TyDescr_String_178", %_TyDescrTy_Typ** %"$msgobj_td_5107", align 8 + %"$msgobj_v_5108" = getelementptr i8, i8* %"$msgobj_5057", i32 305 + %"$msgobj_v_5109" = bitcast i8* %"$msgobj_v_5108" to %String* + store %String %label, %String* %"$msgobj_v_5109", align 8 + store i8* %"$msgobj_5057", i8** %m, align 8 + %"$gasrem_5111" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5112" = icmp ugt i64 1, %"$gasrem_5111" + br i1 %"$gascmp_5112", label %"$out_of_gas_5113", label %"$have_gas_5114" + +"$out_of_gas_5113": ; preds = %"$have_gas_5055" + call void @_out_of_gas() + br label %"$have_gas_5114" + +"$have_gas_5114": ; preds = %"$out_of_gas_5113", %"$have_gas_5055" + %"$consume_5115" = sub i64 %"$gasrem_5111", 1 + store i64 %"$consume_5115", i64* @_gasrem, align 8 + %"$ud-registry.oneMsg_60" = alloca %TName_List_Message*, align 8 + %"$ud-registry.oneMsg_5116" = load { %TName_List_Message* (i8*, i8*)*, i8* }, { %TName_List_Message* (i8*, i8*)*, i8* }* @ud-registry.oneMsg, align 8 + %"$ud-registry.oneMsg_fptr_5117" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5116", 0 + %"$ud-registry.oneMsg_envptr_5118" = extractvalue { %TName_List_Message* (i8*, i8*)*, i8* } %"$ud-registry.oneMsg_5116", 1 + %"$m_5119" = load i8*, i8** %m, align 8 + %"$ud-registry.oneMsg_call_5120" = call %TName_List_Message* %"$ud-registry.oneMsg_fptr_5117"(i8* %"$ud-registry.oneMsg_envptr_5118", i8* %"$m_5119") + store %TName_List_Message* %"$ud-registry.oneMsg_call_5120", %TName_List_Message** %"$ud-registry.oneMsg_60", align 8 + %"$$ud-registry.oneMsg_60_5121" = load %TName_List_Message*, %TName_List_Message** %"$ud-registry.oneMsg_60", align 8 + store %TName_List_Message* %"$$ud-registry.oneMsg_60_5121", %TName_List_Message** %msgs, align 8 + %"$msgs_5122" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + %"$$msgs_5122_5123" = bitcast %TName_List_Message* %"$msgs_5122" to i8* + %"$_literal_cost_call_5124" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", i8* %"$$msgs_5122_5123") + %"$gasrem_5125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5126" = icmp ugt i64 %"$_literal_cost_call_5124", %"$gasrem_5125" + br i1 %"$gascmp_5126", label %"$out_of_gas_5127", label %"$have_gas_5128" + +"$out_of_gas_5127": ; preds = %"$have_gas_5114" + call void @_out_of_gas() + br label %"$have_gas_5128" + +"$have_gas_5128": ; preds = %"$out_of_gas_5127", %"$have_gas_5114" + %"$consume_5129" = sub i64 %"$gasrem_5125", %"$_literal_cost_call_5124" + store i64 %"$consume_5129", i64* @_gasrem, align 8 + %"$execptr_load_5130" = load i8*, i8** @_execptr, align 8 + %"$msgs_5131" = load %TName_List_Message*, %TName_List_Message** %msgs, align 8 + call void @_send(i8* %"$execptr_load_5130", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_Message_202", %TName_List_Message* %"$msgs_5131") + br label %"$matchsucc_5029" + +"$False_5132": ; preds = %"$have_gas_5027" + %"$isOk_5133" = bitcast %TName_Bool* %"$isOk_5030" to %CName_False* + br label %"$matchsucc_5029" + +"$empty_default_5033": ; preds = %"$have_gas_5027" + br label %"$matchsucc_5029" + +"$matchsucc_5029": ; preds = %"$False_5132", %"$have_gas_5128", %"$empty_default_5033" ret void } @@ -10703,269 +9680,254 @@ declare void @_accept(i8*) define void @register(i8* %0) { entry: - %"$_amount_5788" = getelementptr i8, i8* %0, i32 0 - %"$_amount_5789" = bitcast i8* %"$_amount_5788" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_5789", align 8 - %"$_origin_5790" = getelementptr i8, i8* %0, i32 16 - %"$_origin_5791" = bitcast i8* %"$_origin_5790" to [20 x i8]* - %"$_sender_5792" = getelementptr i8, i8* %0, i32 36 - %"$_sender_5793" = bitcast i8* %"$_sender_5792" to [20 x i8]* - %"$parent_5794" = getelementptr i8, i8* %0, i32 56 - %"$parent_5795" = bitcast i8* %"$parent_5794" to [32 x i8]* - %"$label_5796" = getelementptr i8, i8* %0, i32 88 - %"$label_5797" = bitcast i8* %"$label_5796" to %String* - %label = load %String, %String* %"$label_5797", align 8 - call void @"$register_5494"(%Uint128 %_amount, [20 x i8]* %"$_origin_5791", [20 x i8]* %"$_sender_5793", [32 x i8]* %"$parent_5795", %String %label) + %"$_amount_5135" = getelementptr i8, i8* %0, i32 0 + %"$_amount_5136" = bitcast i8* %"$_amount_5135" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_5136", align 8 + %"$_origin_5137" = getelementptr i8, i8* %0, i32 16 + %"$_origin_5138" = bitcast i8* %"$_origin_5137" to [20 x i8]* + %"$_sender_5139" = getelementptr i8, i8* %0, i32 36 + %"$_sender_5140" = bitcast i8* %"$_sender_5139" to [20 x i8]* + %"$parent_5141" = getelementptr i8, i8* %0, i32 56 + %"$parent_5142" = bitcast i8* %"$parent_5141" to [32 x i8]* + %"$label_5143" = getelementptr i8, i8* %0, i32 88 + %"$label_5144" = bitcast i8* %"$label_5143" to %String* + %label = load %String, %String* %"$label_5144", align 8 + call void @"$register_4851"(%Uint128 %_amount, [20 x i8]* %"$_origin_5138", [20 x i8]* %"$_sender_5140", [32 x i8]* %"$parent_5142", %String %label) ret void } -define internal void @"$onResolverConfigured_5798"(%Uint128 %_amount, [20 x i8]* %"$_origin_5799", [20 x i8]* %"$_sender_5800", [32 x i8]* %"$node_5801") { +define internal void @"$onResolverConfigured_5145"(%Uint128 %_amount, [20 x i8]* %"$_origin_5146", [20 x i8]* %"$_sender_5147", [32 x i8]* %"$node_5148") { entry: - %_origin = load [20 x i8], [20 x i8]* %"$_origin_5799", align 1 - %_sender = load [20 x i8], [20 x i8]* %"$_sender_5800", align 1 - %node = load [32 x i8], [32 x i8]* %"$node_5801", align 1 + %_origin = load [20 x i8], [20 x i8]* %"$_origin_5146", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_5147", align 1 + %node = load [32 x i8], [32 x i8]* %"$node_5148", align 1 %maybeRecord = alloca %TName_Option_ud-registry.Record*, align 8 - %"$indices_buf_5802_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$indices_buf_5802_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5802_salloc_load", i64 32) - %"$indices_buf_5802_salloc" = bitcast i8* %"$indices_buf_5802_salloc_salloc" to [32 x i8]* - %"$indices_buf_5802" = bitcast [32 x i8]* %"$indices_buf_5802_salloc" to i8* - %"$indices_gep_5803" = getelementptr i8, i8* %"$indices_buf_5802", i32 0 - %indices_cast = bitcast i8* %"$indices_gep_5803" to [32 x i8]* + %"$indices_buf_5149_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$indices_buf_5149_salloc_salloc" = call i8* @_salloc(i8* %"$indices_buf_5149_salloc_load", i64 32) + %"$indices_buf_5149_salloc" = bitcast i8* %"$indices_buf_5149_salloc_salloc" to [32 x i8]* + %"$indices_buf_5149" = bitcast [32 x i8]* %"$indices_buf_5149_salloc" to i8* + %"$indices_gep_5150" = getelementptr i8, i8* %"$indices_buf_5149", i32 0 + %indices_cast = bitcast i8* %"$indices_gep_5150" to [32 x i8]* store [32 x i8] %node, [32 x i8]* %indices_cast, align 1 - %"$execptr_load_5805" = load i8*, i8** @_execptr, align 8 - %"$maybeRecord_call_5806" = call i8* @_fetch_field(i8* %"$execptr_load_5805", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5804", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_325", i32 1, i8* %"$indices_buf_5802", i32 1) - %"$maybeRecord_5807" = bitcast i8* %"$maybeRecord_call_5806" to %TName_Option_ud-registry.Record* - store %TName_Option_ud-registry.Record* %"$maybeRecord_5807", %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_5808" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$$maybeRecord_5808_5809" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5808" to i8* - %"$_literal_cost_call_5810" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_316", i8* %"$$maybeRecord_5808_5809") - %"$gasadd_5811" = add i64 %"$_literal_cost_call_5810", 0 - %"$gasadd_5812" = add i64 %"$gasadd_5811", 1 - %"$gasrem_5813" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5814" = icmp ugt i64 %"$gasadd_5812", %"$gasrem_5813" - br i1 %"$gascmp_5814", label %"$out_of_gas_5815", label %"$have_gas_5816" - -"$out_of_gas_5815": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_5816" - -"$have_gas_5816": ; preds = %"$out_of_gas_5815", %entry - %"$consume_5817" = sub i64 %"$gasrem_5813", %"$gasadd_5812" - store i64 %"$consume_5817", i64* @_gasrem, align 8 - %"$gasrem_5818" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5819" = icmp ugt i64 2, %"$gasrem_5818" - br i1 %"$gascmp_5819", label %"$out_of_gas_5820", label %"$have_gas_5821" - -"$out_of_gas_5820": ; preds = %"$have_gas_5816" - call void @_out_of_gas() - br label %"$have_gas_5821" - -"$have_gas_5821": ; preds = %"$out_of_gas_5820", %"$have_gas_5816" - %"$consume_5822" = sub i64 %"$gasrem_5818", 2 - store i64 %"$consume_5822", i64* @_gasrem, align 8 - %"$maybeRecord_5824" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 - %"$maybeRecord_tag_5825" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %"$maybeRecord_5824", i32 0, i32 0 - %"$maybeRecord_tag_5826" = load i8, i8* %"$maybeRecord_tag_5825", align 1 - switch i8 %"$maybeRecord_tag_5826", label %"$empty_default_5827" [ - i8 1, label %"$None_5828" - i8 0, label %"$Some_5830" + %"$execptr_load_5152" = load i8*, i8** @_execptr, align 8 + %"$maybeRecord_call_5153" = call i8* @_fetch_field(i8* %"$execptr_load_5152", i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"$records_5151", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Map_208", i32 1, i8* %"$indices_buf_5149", i32 1) + %"$maybeRecord_5154" = bitcast i8* %"$maybeRecord_call_5153" to %TName_Option_ud-registry.Record* + store %TName_Option_ud-registry.Record* %"$maybeRecord_5154", %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_5155" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$$maybeRecord_5155_5156" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5155" to i8* + %"$_literal_cost_call_5157" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ud-registry.Record_199", i8* %"$$maybeRecord_5155_5156") + %"$gasadd_5158" = add i64 %"$_literal_cost_call_5157", 0 + %"$gasadd_5159" = add i64 %"$gasadd_5158", 1 + %"$gasrem_5160" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5161" = icmp ugt i64 %"$gasadd_5159", %"$gasrem_5160" + br i1 %"$gascmp_5161", label %"$out_of_gas_5162", label %"$have_gas_5163" + +"$out_of_gas_5162": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_5163" + +"$have_gas_5163": ; preds = %"$out_of_gas_5162", %entry + %"$consume_5164" = sub i64 %"$gasrem_5160", %"$gasadd_5159" + store i64 %"$consume_5164", i64* @_gasrem, align 8 + %"$gasrem_5165" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5166" = icmp ugt i64 2, %"$gasrem_5165" + br i1 %"$gascmp_5166", label %"$out_of_gas_5167", label %"$have_gas_5168" + +"$out_of_gas_5167": ; preds = %"$have_gas_5163" + call void @_out_of_gas() + br label %"$have_gas_5168" + +"$have_gas_5168": ; preds = %"$out_of_gas_5167", %"$have_gas_5163" + %"$consume_5169" = sub i64 %"$gasrem_5165", 2 + store i64 %"$consume_5169", i64* @_gasrem, align 8 + %"$maybeRecord_5171" = load %TName_Option_ud-registry.Record*, %TName_Option_ud-registry.Record** %maybeRecord, align 8 + %"$maybeRecord_tag_5172" = getelementptr inbounds %TName_Option_ud-registry.Record, %TName_Option_ud-registry.Record* %"$maybeRecord_5171", i32 0, i32 0 + %"$maybeRecord_tag_5173" = load i8, i8* %"$maybeRecord_tag_5172", align 1 + switch i8 %"$maybeRecord_tag_5173", label %"$empty_default_5174" [ + i8 1, label %"$None_5175" + i8 0, label %"$Some_5177" ] -"$None_5828": ; preds = %"$have_gas_5821" - %"$maybeRecord_5829" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5824" to %CName_None_ud-registry.Record* - br label %"$matchsucc_5823" +"$None_5175": ; preds = %"$have_gas_5168" + %"$maybeRecord_5176" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5171" to %CName_None_ud-registry.Record* + br label %"$matchsucc_5170" -"$Some_5830": ; preds = %"$have_gas_5821" - %"$maybeRecord_5831" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5824" to %CName_Some_ud-registry.Record* - %"$record_gep_5832" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_5831", i32 0, i32 1 - %"$record_load_5833" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_5832", align 8 +"$Some_5177": ; preds = %"$have_gas_5168" + %"$maybeRecord_5178" = bitcast %TName_Option_ud-registry.Record* %"$maybeRecord_5171" to %CName_Some_ud-registry.Record* + %"$record_gep_5179" = getelementptr inbounds %CName_Some_ud-registry.Record, %CName_Some_ud-registry.Record* %"$maybeRecord_5178", i32 0, i32 1 + %"$record_load_5180" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %"$record_gep_5179", align 8 %record = alloca %TName_ud-registry.Record*, align 8 - store %TName_ud-registry.Record* %"$record_load_5833", %TName_ud-registry.Record** %record, align 8 - %"$gasrem_5834" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5835" = icmp ugt i64 1, %"$gasrem_5834" - br i1 %"$gascmp_5835", label %"$out_of_gas_5836", label %"$have_gas_5837" - -"$out_of_gas_5836": ; preds = %"$Some_5830" - call void @_out_of_gas() - br label %"$have_gas_5837" - -"$have_gas_5837": ; preds = %"$out_of_gas_5836", %"$Some_5830" - %"$consume_5838" = sub i64 %"$gasrem_5834", 1 - store i64 %"$consume_5838", i64* @_gasrem, align 8 - %"$record_5840" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 - %"$record_tag_5841" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_5840", i32 0, i32 0 - %"$record_tag_5842" = load i8, i8* %"$record_tag_5841", align 1 - switch i8 %"$record_tag_5842", label %"$empty_default_5843" [ - i8 0, label %"$ud-registry.Record_5844" + store %TName_ud-registry.Record* %"$record_load_5180", %TName_ud-registry.Record** %record, align 8 + %"$gasrem_5181" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5182" = icmp ugt i64 1, %"$gasrem_5181" + br i1 %"$gascmp_5182", label %"$out_of_gas_5183", label %"$have_gas_5184" + +"$out_of_gas_5183": ; preds = %"$Some_5177" + call void @_out_of_gas() + br label %"$have_gas_5184" + +"$have_gas_5184": ; preds = %"$out_of_gas_5183", %"$Some_5177" + %"$consume_5185" = sub i64 %"$gasrem_5181", 1 + store i64 %"$consume_5185", i64* @_gasrem, align 8 + %"$record_5187" = load %TName_ud-registry.Record*, %TName_ud-registry.Record** %record, align 8 + %"$record_tag_5188" = getelementptr inbounds %TName_ud-registry.Record, %TName_ud-registry.Record* %"$record_5187", i32 0, i32 0 + %"$record_tag_5189" = load i8, i8* %"$record_tag_5188", align 1 + switch i8 %"$record_tag_5189", label %"$empty_default_5190" [ + i8 0, label %"$ud-registry.Record_5191" ] -"$ud-registry.Record_5844": ; preds = %"$have_gas_5837" - %"$record_5845" = bitcast %TName_ud-registry.Record* %"$record_5840" to %CName_ud-registry.Record* - %"$owner_gep_5846" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_5845", i32 0, i32 1 - %"$owner_load_5847" = load [20 x i8], [20 x i8]* %"$owner_gep_5846", align 1 +"$ud-registry.Record_5191": ; preds = %"$have_gas_5184" + %"$record_5192" = bitcast %TName_ud-registry.Record* %"$record_5187" to %CName_ud-registry.Record* + %"$owner_gep_5193" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_5192", i32 0, i32 1 + %"$owner_load_5194" = load [20 x i8], [20 x i8]* %"$owner_gep_5193", align 1 %owner = alloca [20 x i8], align 1 - store [20 x i8] %"$owner_load_5847", [20 x i8]* %owner, align 1 - %"$resolver_gep_5848" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_5845", i32 0, i32 2 - %"$resolver_load_5849" = load [20 x i8], [20 x i8]* %"$resolver_gep_5848", align 1 + store [20 x i8] %"$owner_load_5194", [20 x i8]* %owner, align 1 + %"$resolver_gep_5195" = getelementptr inbounds %CName_ud-registry.Record, %CName_ud-registry.Record* %"$record_5192", i32 0, i32 2 + %"$resolver_load_5196" = load [20 x i8], [20 x i8]* %"$resolver_gep_5195", align 1 %resolver = alloca [20 x i8], align 1 - store [20 x i8] %"$resolver_load_5849", [20 x i8]* %resolver, align 1 - %"$gasrem_5850" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5851" = icmp ugt i64 1, %"$gasrem_5850" - br i1 %"$gascmp_5851", label %"$out_of_gas_5852", label %"$have_gas_5853" + store [20 x i8] %"$resolver_load_5196", [20 x i8]* %resolver, align 1 + %"$gasrem_5197" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5198" = icmp ugt i64 1, %"$gasrem_5197" + br i1 %"$gascmp_5198", label %"$out_of_gas_5199", label %"$have_gas_5200" -"$out_of_gas_5852": ; preds = %"$ud-registry.Record_5844" +"$out_of_gas_5199": ; preds = %"$ud-registry.Record_5191" call void @_out_of_gas() - br label %"$have_gas_5853" + br label %"$have_gas_5200" -"$have_gas_5853": ; preds = %"$out_of_gas_5852", %"$ud-registry.Record_5844" - %"$consume_5854" = sub i64 %"$gasrem_5850", 1 - store i64 %"$consume_5854", i64* @_gasrem, align 8 +"$have_gas_5200": ; preds = %"$out_of_gas_5199", %"$ud-registry.Record_5191" + %"$consume_5201" = sub i64 %"$gasrem_5197", 1 + store i64 %"$consume_5201", i64* @_gasrem, align 8 %isOk = alloca %TName_Bool*, align 8 - %"$gasrem_5855" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5856" = icmp ugt i64 20, %"$gasrem_5855" - br i1 %"$gascmp_5856", label %"$out_of_gas_5857", label %"$have_gas_5858" - -"$out_of_gas_5857": ; preds = %"$have_gas_5853" - call void @_out_of_gas() - br label %"$have_gas_5858" - -"$have_gas_5858": ; preds = %"$out_of_gas_5857", %"$have_gas_5853" - %"$consume_5859" = sub i64 %"$gasrem_5855", 20 - store i64 %"$consume_5859", i64* @_gasrem, align 8 - %"$execptr_load_5860" = load i8*, i8** @_execptr, align 8 - %"$eq_resolver_5861" = alloca [20 x i8], align 1 - %"$resolver_5862" = load [20 x i8], [20 x i8]* %resolver, align 1 - store [20 x i8] %"$resolver_5862", [20 x i8]* %"$eq_resolver_5861", align 1 - %"$$eq_resolver_5861_5863" = bitcast [20 x i8]* %"$eq_resolver_5861" to i8* - %"$eq__sender_5864" = alloca [20 x i8], align 1 - store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_5864", align 1 - %"$$eq__sender_5864_5865" = bitcast [20 x i8]* %"$eq__sender_5864" to i8* - %"$eq_call_5866" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5860", i32 20, i8* %"$$eq_resolver_5861_5863", i8* %"$$eq__sender_5864_5865") - store %TName_Bool* %"$eq_call_5866", %TName_Bool** %isOk, align 8 - %"$gasrem_5868" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5869" = icmp ugt i64 2, %"$gasrem_5868" - br i1 %"$gascmp_5869", label %"$out_of_gas_5870", label %"$have_gas_5871" - -"$out_of_gas_5870": ; preds = %"$have_gas_5858" - call void @_out_of_gas() - br label %"$have_gas_5871" - -"$have_gas_5871": ; preds = %"$out_of_gas_5870", %"$have_gas_5858" - %"$consume_5872" = sub i64 %"$gasrem_5868", 2 - store i64 %"$consume_5872", i64* @_gasrem, align 8 - %"$isOk_5874" = load %TName_Bool*, %TName_Bool** %isOk, align 8 - %"$isOk_tag_5875" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5874", i32 0, i32 0 - %"$isOk_tag_5876" = load i8, i8* %"$isOk_tag_5875", align 1 - switch i8 %"$isOk_tag_5876", label %"$empty_default_5877" [ - i8 0, label %"$True_5878" - i8 1, label %"$False_5918" + %"$gasrem_5202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5203" = icmp ugt i64 20, %"$gasrem_5202" + br i1 %"$gascmp_5203", label %"$out_of_gas_5204", label %"$have_gas_5205" + +"$out_of_gas_5204": ; preds = %"$have_gas_5200" + call void @_out_of_gas() + br label %"$have_gas_5205" + +"$have_gas_5205": ; preds = %"$out_of_gas_5204", %"$have_gas_5200" + %"$consume_5206" = sub i64 %"$gasrem_5202", 20 + store i64 %"$consume_5206", i64* @_gasrem, align 8 + %"$execptr_load_5207" = load i8*, i8** @_execptr, align 8 + %"$eq_resolver_5208" = alloca [20 x i8], align 1 + %"$resolver_5209" = load [20 x i8], [20 x i8]* %resolver, align 1 + store [20 x i8] %"$resolver_5209", [20 x i8]* %"$eq_resolver_5208", align 1 + %"$$eq_resolver_5208_5210" = bitcast [20 x i8]* %"$eq_resolver_5208" to i8* + %"$eq__sender_5211" = alloca [20 x i8], align 1 + store [20 x i8] %_sender, [20 x i8]* %"$eq__sender_5211", align 1 + %"$$eq__sender_5211_5212" = bitcast [20 x i8]* %"$eq__sender_5211" to i8* + %"$eq_call_5213" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_5207", i32 20, i8* %"$$eq_resolver_5208_5210", i8* %"$$eq__sender_5211_5212") + store %TName_Bool* %"$eq_call_5213", %TName_Bool** %isOk, align 8 + %"$gasrem_5215" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5216" = icmp ugt i64 2, %"$gasrem_5215" + br i1 %"$gascmp_5216", label %"$out_of_gas_5217", label %"$have_gas_5218" + +"$out_of_gas_5217": ; preds = %"$have_gas_5205" + call void @_out_of_gas() + br label %"$have_gas_5218" + +"$have_gas_5218": ; preds = %"$out_of_gas_5217", %"$have_gas_5205" + %"$consume_5219" = sub i64 %"$gasrem_5215", 2 + store i64 %"$consume_5219", i64* @_gasrem, align 8 + %"$isOk_5221" = load %TName_Bool*, %TName_Bool** %isOk, align 8 + %"$isOk_tag_5222" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$isOk_5221", i32 0, i32 0 + %"$isOk_tag_5223" = load i8, i8* %"$isOk_tag_5222", align 1 + switch i8 %"$isOk_tag_5223", label %"$empty_default_5224" [ + i8 0, label %"$True_5225" + i8 1, label %"$False_5256" ] -"$True_5878": ; preds = %"$have_gas_5871" - %"$isOk_5879" = bitcast %TName_Bool* %"$isOk_5874" to %CName_True* - %"$gasrem_5880" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5881" = icmp ugt i64 1, %"$gasrem_5880" - br i1 %"$gascmp_5881", label %"$out_of_gas_5882", label %"$have_gas_5883" +"$True_5225": ; preds = %"$have_gas_5218" + %"$isOk_5226" = bitcast %TName_Bool* %"$isOk_5221" to %CName_True* + %"$gasrem_5227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5228" = icmp ugt i64 1, %"$gasrem_5227" + br i1 %"$gascmp_5228", label %"$out_of_gas_5229", label %"$have_gas_5230" -"$out_of_gas_5882": ; preds = %"$True_5878" +"$out_of_gas_5229": ; preds = %"$True_5225" call void @_out_of_gas() - br label %"$have_gas_5883" + br label %"$have_gas_5230" -"$have_gas_5883": ; preds = %"$out_of_gas_5882", %"$True_5878" - %"$consume_5884" = sub i64 %"$gasrem_5880", 1 - store i64 %"$consume_5884", i64* @_gasrem, align 8 +"$have_gas_5230": ; preds = %"$out_of_gas_5229", %"$True_5225" + %"$consume_5231" = sub i64 %"$gasrem_5227", 1 + store i64 %"$consume_5231", i64* @_gasrem, align 8 %e = alloca i8*, align 8 - %"$gasrem_5885" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5886" = icmp ugt i64 1, %"$gasrem_5885" - br i1 %"$gascmp_5886", label %"$out_of_gas_5887", label %"$have_gas_5888" - -"$out_of_gas_5887": ; preds = %"$have_gas_5883" - call void @_out_of_gas() - br label %"$have_gas_5888" - -"$have_gas_5888": ; preds = %"$out_of_gas_5887", %"$have_gas_5883" - %"$consume_5889" = sub i64 %"$gasrem_5885", 1 - store i64 %"$consume_5889", i64* @_gasrem, align 8 - %"$ud-registry.eConfigured_143" = alloca { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, align 8 - %"$ud-registry.eConfigured_5890" = load { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }, { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 - %"$ud-registry.eConfigured_fptr_5891" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5890", 0 - %"$ud-registry.eConfigured_envptr_5892" = extractvalue { { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } (i8*, [32 x i8]*)*, i8* } %"$ud-registry.eConfigured_5890", 1 - %"$ud-registry.eConfigured_node_5893" = alloca [32 x i8], align 1 - store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_5893", align 1 - %"$ud-registry.eConfigured_call_5894" = call { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_fptr_5891"(i8* %"$ud-registry.eConfigured_envptr_5892", [32 x i8]* %"$ud-registry.eConfigured_node_5893") - store { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_call_5894", { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_143", align 8 - %"$ud-registry.eConfigured_144" = alloca { i8* (i8*, [20 x i8]*)*, i8* }, align 8 - %"$$ud-registry.eConfigured_143_5895" = load { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }, { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_143", align 8 - %"$$ud-registry.eConfigured_143_fptr_5896" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_5895", 0 - %"$$ud-registry.eConfigured_143_envptr_5897" = extractvalue { { i8* (i8*, [20 x i8]*)*, i8* } (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_5895", 1 - %"$$ud-registry.eConfigured_143_owner_5898" = alloca [20 x i8], align 1 - %"$owner_5899" = load [20 x i8], [20 x i8]* %owner, align 1 - store [20 x i8] %"$owner_5899", [20 x i8]* %"$$ud-registry.eConfigured_143_owner_5898", align 1 - %"$$ud-registry.eConfigured_143_call_5900" = call { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_fptr_5896"(i8* %"$$ud-registry.eConfigured_143_envptr_5897", [20 x i8]* %"$$ud-registry.eConfigured_143_owner_5898") - store { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_143_call_5900", { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_144", align 8 - %"$ud-registry.eConfigured_145" = alloca i8*, align 8 - %"$$ud-registry.eConfigured_144_5901" = load { i8* (i8*, [20 x i8]*)*, i8* }, { i8* (i8*, [20 x i8]*)*, i8* }* %"$ud-registry.eConfigured_144", align 8 - %"$$ud-registry.eConfigured_144_fptr_5902" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_144_5901", 0 - %"$$ud-registry.eConfigured_144_envptr_5903" = extractvalue { i8* (i8*, [20 x i8]*)*, i8* } %"$$ud-registry.eConfigured_144_5901", 1 - %"$$ud-registry.eConfigured_144_resolver_5904" = alloca [20 x i8], align 1 - %"$resolver_5905" = load [20 x i8], [20 x i8]* %resolver, align 1 - store [20 x i8] %"$resolver_5905", [20 x i8]* %"$$ud-registry.eConfigured_144_resolver_5904", align 1 - %"$$ud-registry.eConfigured_144_call_5906" = call i8* %"$$ud-registry.eConfigured_144_fptr_5902"(i8* %"$$ud-registry.eConfigured_144_envptr_5903", [20 x i8]* %"$$ud-registry.eConfigured_144_resolver_5904") - store i8* %"$$ud-registry.eConfigured_144_call_5906", i8** %"$ud-registry.eConfigured_145", align 8 - %"$$ud-registry.eConfigured_145_5907" = load i8*, i8** %"$ud-registry.eConfigured_145", align 8 - store i8* %"$$ud-registry.eConfigured_145_5907", i8** %e, align 8 - %"$e_5908" = load i8*, i8** %e, align 8 - %"$_literal_cost_call_5910" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5908") - %"$gasrem_5911" = load i64, i64* @_gasrem, align 8 - %"$gascmp_5912" = icmp ugt i64 %"$_literal_cost_call_5910", %"$gasrem_5911" - br i1 %"$gascmp_5912", label %"$out_of_gas_5913", label %"$have_gas_5914" - -"$out_of_gas_5913": ; preds = %"$have_gas_5888" - call void @_out_of_gas() - br label %"$have_gas_5914" - -"$have_gas_5914": ; preds = %"$out_of_gas_5913", %"$have_gas_5888" - %"$consume_5915" = sub i64 %"$gasrem_5911", %"$_literal_cost_call_5910" - store i64 %"$consume_5915", i64* @_gasrem, align 8 - %"$execptr_load_5916" = load i8*, i8** @_execptr, align 8 - %"$e_5917" = load i8*, i8** %e, align 8 - call void @_event(i8* %"$execptr_load_5916", %_TyDescrTy_Typ* @"$TyDescr_Event_301", i8* %"$e_5917") - br label %"$matchsucc_5873" - -"$False_5918": ; preds = %"$have_gas_5871" - %"$isOk_5919" = bitcast %TName_Bool* %"$isOk_5874" to %CName_False* - br label %"$matchsucc_5873" - -"$empty_default_5877": ; preds = %"$have_gas_5871" - br label %"$matchsucc_5873" - -"$matchsucc_5873": ; preds = %"$False_5918", %"$have_gas_5914", %"$empty_default_5877" - br label %"$matchsucc_5839" - -"$empty_default_5843": ; preds = %"$have_gas_5837" - br label %"$matchsucc_5839" - -"$matchsucc_5839": ; preds = %"$matchsucc_5873", %"$empty_default_5843" - br label %"$matchsucc_5823" - -"$empty_default_5827": ; preds = %"$have_gas_5821" - br label %"$matchsucc_5823" - -"$matchsucc_5823": ; preds = %"$matchsucc_5839", %"$None_5828", %"$empty_default_5827" + %"$gasrem_5232" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5233" = icmp ugt i64 1, %"$gasrem_5232" + br i1 %"$gascmp_5233", label %"$out_of_gas_5234", label %"$have_gas_5235" + +"$out_of_gas_5234": ; preds = %"$have_gas_5230" + call void @_out_of_gas() + br label %"$have_gas_5235" + +"$have_gas_5235": ; preds = %"$out_of_gas_5234", %"$have_gas_5230" + %"$consume_5236" = sub i64 %"$gasrem_5232", 1 + store i64 %"$consume_5236", i64* @_gasrem, align 8 + %"$ud-registry.eConfigured_5237" = load { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }, { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* }* @ud-registry.eConfigured, align 8 + %"$ud-registry.eConfigured_fptr_5238" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_5237", 0 + %"$ud-registry.eConfigured_envptr_5239" = extractvalue { i8* (i8*, [32 x i8]*, [20 x i8]*, [20 x i8]*)*, i8* } %"$ud-registry.eConfigured_5237", 1 + %"$ud-registry.eConfigured_node_5240" = alloca [32 x i8], align 1 + store [32 x i8] %node, [32 x i8]* %"$ud-registry.eConfigured_node_5240", align 1 + %"$ud-registry.eConfigured_owner_5241" = alloca [20 x i8], align 1 + %"$owner_5242" = load [20 x i8], [20 x i8]* %owner, align 1 + store [20 x i8] %"$owner_5242", [20 x i8]* %"$ud-registry.eConfigured_owner_5241", align 1 + %"$ud-registry.eConfigured_resolver_5243" = alloca [20 x i8], align 1 + %"$resolver_5244" = load [20 x i8], [20 x i8]* %resolver, align 1 + store [20 x i8] %"$resolver_5244", [20 x i8]* %"$ud-registry.eConfigured_resolver_5243", align 1 + %"$ud-registry.eConfigured_call_5245" = call i8* %"$ud-registry.eConfigured_fptr_5238"(i8* %"$ud-registry.eConfigured_envptr_5239", [32 x i8]* %"$ud-registry.eConfigured_node_5240", [20 x i8]* %"$ud-registry.eConfigured_owner_5241", [20 x i8]* %"$ud-registry.eConfigured_resolver_5243") + store i8* %"$ud-registry.eConfigured_call_5245", i8** %e, align 8 + %"$e_5246" = load i8*, i8** %e, align 8 + %"$_literal_cost_call_5248" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_5246") + %"$gasrem_5249" = load i64, i64* @_gasrem, align 8 + %"$gascmp_5250" = icmp ugt i64 %"$_literal_cost_call_5248", %"$gasrem_5249" + br i1 %"$gascmp_5250", label %"$out_of_gas_5251", label %"$have_gas_5252" + +"$out_of_gas_5251": ; preds = %"$have_gas_5235" + call void @_out_of_gas() + br label %"$have_gas_5252" + +"$have_gas_5252": ; preds = %"$out_of_gas_5251", %"$have_gas_5235" + %"$consume_5253" = sub i64 %"$gasrem_5249", %"$_literal_cost_call_5248" + store i64 %"$consume_5253", i64* @_gasrem, align 8 + %"$execptr_load_5254" = load i8*, i8** @_execptr, align 8 + %"$e_5255" = load i8*, i8** %e, align 8 + call void @_event(i8* %"$execptr_load_5254", %_TyDescrTy_Typ* @"$TyDescr_Event_184", i8* %"$e_5255") + br label %"$matchsucc_5220" + +"$False_5256": ; preds = %"$have_gas_5218" + %"$isOk_5257" = bitcast %TName_Bool* %"$isOk_5221" to %CName_False* + br label %"$matchsucc_5220" + +"$empty_default_5224": ; preds = %"$have_gas_5218" + br label %"$matchsucc_5220" + +"$matchsucc_5220": ; preds = %"$False_5256", %"$have_gas_5252", %"$empty_default_5224" + br label %"$matchsucc_5186" + +"$empty_default_5190": ; preds = %"$have_gas_5184" + br label %"$matchsucc_5186" + +"$matchsucc_5186": ; preds = %"$matchsucc_5220", %"$empty_default_5190" + br label %"$matchsucc_5170" + +"$empty_default_5174": ; preds = %"$have_gas_5168" + br label %"$matchsucc_5170" + +"$matchsucc_5170": ; preds = %"$matchsucc_5186", %"$None_5175", %"$empty_default_5174" ret void } define void @onResolverConfigured(i8* %0) { entry: - %"$_amount_5921" = getelementptr i8, i8* %0, i32 0 - %"$_amount_5922" = bitcast i8* %"$_amount_5921" to %Uint128* - %_amount = load %Uint128, %Uint128* %"$_amount_5922", align 8 - %"$_origin_5923" = getelementptr i8, i8* %0, i32 16 - %"$_origin_5924" = bitcast i8* %"$_origin_5923" to [20 x i8]* - %"$_sender_5925" = getelementptr i8, i8* %0, i32 36 - %"$_sender_5926" = bitcast i8* %"$_sender_5925" to [20 x i8]* - %"$node_5927" = getelementptr i8, i8* %0, i32 56 - %"$node_5928" = bitcast i8* %"$node_5927" to [32 x i8]* - call void @"$onResolverConfigured_5798"(%Uint128 %_amount, [20 x i8]* %"$_origin_5924", [20 x i8]* %"$_sender_5926", [32 x i8]* %"$node_5928") + %"$_amount_5259" = getelementptr i8, i8* %0, i32 0 + %"$_amount_5260" = bitcast i8* %"$_amount_5259" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_5260", align 8 + %"$_origin_5261" = getelementptr i8, i8* %0, i32 16 + %"$_origin_5262" = bitcast i8* %"$_origin_5261" to [20 x i8]* + %"$_sender_5263" = getelementptr i8, i8* %0, i32 36 + %"$_sender_5264" = bitcast i8* %"$_sender_5263" to [20 x i8]* + %"$node_5265" = getelementptr i8, i8* %0, i32 56 + %"$node_5266" = bitcast i8* %"$node_5265" to [32 x i8]* + call void @"$onResolverConfigured_5145"(%Uint128 %_amount, [20 x i8]* %"$_origin_5262", [20 x i8]* %"$_sender_5264", [32 x i8]* %"$node_5266") ret void } diff --git a/tests/codegen/contr/gold/uncurry1.scilla.gold b/tests/codegen/contr/gold/uncurry1.scilla.gold new file mode 100644 index 00000000..87c90543 --- /dev/null +++ b/tests/codegen/contr/gold/uncurry1.scilla.gold @@ -0,0 +1,890 @@ + + +; gas_remaining: 4001999 +; ModuleID = 'SimpleUnuccury' +source_filename = "SimpleUnuccury" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" + +%"$TyDescrTy_PrimTyp_24" = type { i32, i32 } +%_TyDescrTy_Typ = type { i32, i8* } +%"$TyDescrTy_ADTTyp_56" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_55"** } +%TyDescrString = type { i8*, i32 } +%"$TyDescrTy_ADTTyp_Specl_55" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_57"**, %"$TyDescrTy_ADTTyp_56"* } +%"$TyDescrTy_ADTTyp_Constr_57" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$TyDescr_AddrTyp_61" = type { i32, %"$TyDescr_AddrFieldTyp_60"* } +%"$TyDescr_AddrFieldTyp_60" = type { %TyDescrString, %_TyDescrTy_Typ* } +%Int32 = type { i32 } +%Uint32 = type { i32 } +%"$ParamDescr_455" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%ParamDescrString = type { i8*, i32 } +%"$TransDescr_456" = type { %ParamDescrString, i32, %"$ParamDescr_455"* } +%"$$fundef_22_env_76" = type { %Int32 } +%"$$fundef_20_env_77" = type {} +%"$$fundef_10_env_78" = type { %Int32 } +%"$$fundef_8_env_79" = type {} +%"$$fundef_14_env_80" = type { %Int32 } +%"$$fundef_12_env_81" = type {} +%"$$fundef_16_env_82" = type {} +%TName_Bool = type { i8, %CName_True*, %CName_False* } +%CName_True = type <{ i8 }> +%CName_False = type <{ i8 }> +%Uint128 = type { i128 } + +@_execptr = global i8* null +@_gasrem = global i64 0 +@"$TyDescr_Int32_Prim_25" = global %"$TyDescrTy_PrimTyp_24" zeroinitializer +@"$TyDescr_Int32_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int32_Prim_25" to i8*) } +@"$TyDescr_Uint32_Prim_27" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 0 } +@"$TyDescr_Uint32_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint32_Prim_27" to i8*) } +@"$TyDescr_Int64_Prim_29" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 1 } +@"$TyDescr_Int64_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int64_Prim_29" to i8*) } +@"$TyDescr_Uint64_Prim_31" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 1 } +@"$TyDescr_Uint64_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint64_Prim_31" to i8*) } +@"$TyDescr_Int128_Prim_33" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 2 } +@"$TyDescr_Int128_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int128_Prim_33" to i8*) } +@"$TyDescr_Uint128_Prim_35" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 2 } +@"$TyDescr_Uint128_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint128_Prim_35" to i8*) } +@"$TyDescr_Int256_Prim_37" = global %"$TyDescrTy_PrimTyp_24" { i32 0, i32 3 } +@"$TyDescr_Int256_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Int256_Prim_37" to i8*) } +@"$TyDescr_Uint256_Prim_39" = global %"$TyDescrTy_PrimTyp_24" { i32 1, i32 3 } +@"$TyDescr_Uint256_40" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Uint256_Prim_39" to i8*) } +@"$TyDescr_String_Prim_41" = global %"$TyDescrTy_PrimTyp_24" { i32 2, i32 0 } +@"$TyDescr_String_42" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_String_Prim_41" to i8*) } +@"$TyDescr_Bnum_Prim_43" = global %"$TyDescrTy_PrimTyp_24" { i32 3, i32 0 } +@"$TyDescr_Bnum_44" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bnum_Prim_43" to i8*) } +@"$TyDescr_Message_Prim_45" = global %"$TyDescrTy_PrimTyp_24" { i32 4, i32 0 } +@"$TyDescr_Message_46" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Message_Prim_45" to i8*) } +@"$TyDescr_Event_Prim_47" = global %"$TyDescrTy_PrimTyp_24" { i32 5, i32 0 } +@"$TyDescr_Event_48" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Event_Prim_47" to i8*) } +@"$TyDescr_Exception_Prim_49" = global %"$TyDescrTy_PrimTyp_24" { i32 6, i32 0 } +@"$TyDescr_Exception_50" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Exception_Prim_49" to i8*) } +@"$TyDescr_Bystr_Prim_51" = global %"$TyDescrTy_PrimTyp_24" { i32 7, i32 0 } +@"$TyDescr_Bystr_52" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bystr_Prim_51" to i8*) } +@"$TyDescr_Bystr20_Prim_53" = global %"$TyDescrTy_PrimTyp_24" { i32 8, i32 20 } +@"$TyDescr_Bystr20_54" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_24"* @"$TyDescr_Bystr20_Prim_53" to i8*) } +@"$TyDescr_ADT_Bool_58" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Bool_ADTTyp_Specl_72" to i8*) } +@"$TyDescr_Addr_62" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_61"* @"$TyDescr_AddrFields_75" to i8*) } +@"$TyDescr_Bool_ADTTyp_63" = unnamed_addr constant %"$TyDescrTy_ADTTyp_56" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_74", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_55"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_55"*], [1 x %"$TyDescrTy_ADTTyp_Specl_55"*]* @"$TyDescr_Bool_ADTTyp_m_specls_73", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_64" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_65" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_66" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_65", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_64", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_67" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_68" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_69" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_57" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_68", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_67", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_70" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_57"*] [%"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Bool_True_ADTTyp_Constr_66", %"$TyDescrTy_ADTTyp_Constr_57"* @"$TyDescr_Bool_False_ADTTyp_Constr_69"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_71" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_72" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_55" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_71", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_57"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_57"*], [2 x %"$TyDescrTy_ADTTyp_Constr_57"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_70", i32 0, i32 0), %"$TyDescrTy_ADTTyp_56"* @"$TyDescr_Bool_ADTTyp_63" } +@"$TyDescr_Bool_ADTTyp_m_specls_73" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_55"*] [%"$TyDescrTy_ADTTyp_Specl_55"* @"$TyDescr_Bool_ADTTyp_Specl_72"] +@"$TyDescr_ADT_Bool_74" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_AddrFields_75" = unnamed_addr constant %"$TyDescr_AddrTyp_61" { i32 -1, %"$TyDescr_AddrFieldTyp_60"* null } +@uncurry1.uncur_lib_func = global { %Int32 (i8*, %Int32, %Int32)*, i8* } zeroinitializer +@uncurry1.no_uncur_lib_func = global { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } zeroinitializer +@uncurry1.uncur_lib_func_partial = global { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } zeroinitializer +@_cparam__scilla_version = global %Uint32 zeroinitializer +@_cparam__this_address = global [20 x i8] zeroinitializer +@_cparam__creation_block = global i8* null +@"$some_bool_197" = unnamed_addr constant [10 x i8] c"some_bool\00" +@"$res_206" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_335" = unnamed_addr constant [4 x i8] c"res\00" +@"$some_bool_372" = unnamed_addr constant [10 x i8] c"some_bool\00" +@"$res_438" = unnamed_addr constant [4 x i8] c"res\00" +@_tydescr_table = constant [17 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_48", %_TyDescrTy_Typ* @"$TyDescr_Int64_30", %_TyDescrTy_Typ* @"$TyDescr_Addr_62", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_58", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54", %_TyDescrTy_Typ* @"$TyDescr_Uint256_40", %_TyDescrTy_Typ* @"$TyDescr_Uint32_28", %_TyDescrTy_Typ* @"$TyDescr_Uint64_32", %_TyDescrTy_Typ* @"$TyDescr_Bnum_44", %_TyDescrTy_Typ* @"$TyDescr_Uint128_36", %_TyDescrTy_Typ* @"$TyDescr_Exception_50", %_TyDescrTy_Typ* @"$TyDescr_String_42", %_TyDescrTy_Typ* @"$TyDescr_Int256_38", %_TyDescrTy_Typ* @"$TyDescr_Int128_34", %_TyDescrTy_Typ* @"$TyDescr_Bystr_52", %_TyDescrTy_Typ* @"$TyDescr_Message_46", %_TyDescrTy_Typ* @"$TyDescr_Int32_26"] +@_tydescr_table_length = constant i32 17 +@"$pname__scilla_version_457" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_458" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_459" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_455"] [%"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_457", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_28" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_458", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_54" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_459", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_44" }] +@_contract_parameters_length = constant i32 3 +@"$tpname__amount_460" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_461" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_462" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_463" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_464" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy_465" = unnamed_addr constant [5 x %"$ParamDescr_455"] [%"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_460", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_461", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_62" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_462", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_62" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_463", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_26" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_464", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_26" }] +@"$tname_dummy_466" = unnamed_addr constant [5 x i8] c"dummy" +@"$tpname__amount_467" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_468" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_469" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_470" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_471" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy2_472" = unnamed_addr constant [5 x %"$ParamDescr_455"] [%"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_467", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_36" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_468", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_62" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_469", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_62" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_470", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_26" }, %"$ParamDescr_455" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_471", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_26" }] +@"$tname_dummy2_473" = unnamed_addr constant [6 x i8] c"dummy2" +@_transition_parameters = constant [2 x %"$TransDescr_456"] [%"$TransDescr_456" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_dummy_466", i32 0, i32 0), i32 5 }, i32 5, %"$ParamDescr_455"* getelementptr inbounds ([5 x %"$ParamDescr_455"], [5 x %"$ParamDescr_455"]* @"$tparams_dummy_465", i32 0, i32 0) }, %"$TransDescr_456" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_dummy2_473", i32 0, i32 0), i32 6 }, i32 5, %"$ParamDescr_455"* getelementptr inbounds ([5 x %"$ParamDescr_455"], [5 x %"$ParamDescr_455"]* @"$tparams_dummy2_472", i32 0, i32 0) }] +@_transition_parameters_length = constant i32 2 + +define internal %Int32 @"$fundef_22"(%"$$fundef_22_env_76"* %0, %Int32 %1) { +entry: + %"$$fundef_22_env_a_154" = getelementptr inbounds %"$$fundef_22_env_76", %"$$fundef_22_env_76"* %0, i32 0, i32 0 + %"$a_envload_155" = load %Int32, %Int32* %"$$fundef_22_env_a_154", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_155", %Int32* %a, align 4 + %"$retval_23" = alloca %Int32, align 8 + %"$gasrem_156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_157" = icmp ugt i64 4, %"$gasrem_156" + br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" + +"$out_of_gas_158": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_159" + +"$have_gas_159": ; preds = %"$out_of_gas_158", %entry + %"$consume_160" = sub i64 %"$gasrem_156", 4 + store i64 %"$consume_160", i64* @_gasrem, align 8 + %"$a_161" = load %Int32, %Int32* %a, align 4 + %"$sub_call_162" = call %Int32 @_sub_Int32(%Int32 %"$a_161", %Int32 %1) + store %Int32 %"$sub_call_162", %Int32* %"$retval_23", align 4 + %"$$retval_23_163" = load %Int32, %Int32* %"$retval_23", align 4 + ret %Int32 %"$$retval_23_163" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_20"(%"$$fundef_20_env_77"* %0, %Int32 %1) { +entry: + %"$retval_21" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_143" = load i64, i64* @_gasrem, align 8 + %"$gascmp_144" = icmp ugt i64 1, %"$gasrem_143" + br i1 %"$gascmp_144", label %"$out_of_gas_145", label %"$have_gas_146" + +"$out_of_gas_145": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_146" + +"$have_gas_146": ; preds = %"$out_of_gas_145", %entry + %"$consume_147" = sub i64 %"$gasrem_143", 1 + store i64 %"$consume_147", i64* @_gasrem, align 8 + %"$$fundef_22_envp_148_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_22_envp_148_salloc" = call i8* @_salloc(i8* %"$$fundef_22_envp_148_load", i64 4) + %"$$fundef_22_envp_148" = bitcast i8* %"$$fundef_22_envp_148_salloc" to %"$$fundef_22_env_76"* + %"$$fundef_22_env_voidp_150" = bitcast %"$$fundef_22_env_76"* %"$$fundef_22_envp_148" to i8* + %"$$fundef_22_cloval_151" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_22_env_76"*, %Int32)* @"$fundef_22" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_22_env_voidp_150", 1 + %"$$fundef_22_env_a_152" = getelementptr inbounds %"$$fundef_22_env_76", %"$$fundef_22_env_76"* %"$$fundef_22_envp_148", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_22_env_a_152", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_22_cloval_151", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_21", align 8 + %"$$retval_21_153" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_21", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_21_153" +} + +define internal %Int32 @"$fundef_10"(%"$$fundef_10_env_78"* %0, %Int32 %1) { +entry: + %"$$fundef_10_env_a_133" = getelementptr inbounds %"$$fundef_10_env_78", %"$$fundef_10_env_78"* %0, i32 0, i32 0 + %"$a_envload_134" = load %Int32, %Int32* %"$$fundef_10_env_a_133", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_134", %Int32* %a, align 4 + %"$retval_11" = alloca %Int32, align 8 + %"$gasrem_135" = load i64, i64* @_gasrem, align 8 + %"$gascmp_136" = icmp ugt i64 4, %"$gasrem_135" + br i1 %"$gascmp_136", label %"$out_of_gas_137", label %"$have_gas_138" + +"$out_of_gas_137": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_138" + +"$have_gas_138": ; preds = %"$out_of_gas_137", %entry + %"$consume_139" = sub i64 %"$gasrem_135", 4 + store i64 %"$consume_139", i64* @_gasrem, align 8 + %"$a_140" = load %Int32, %Int32* %a, align 4 + %"$add_call_141" = call %Int32 @_add_Int32(%Int32 %"$a_140", %Int32 %1) + store %Int32 %"$add_call_141", %Int32* %"$retval_11", align 4 + %"$$retval_11_142" = load %Int32, %Int32* %"$retval_11", align 4 + ret %Int32 %"$$retval_11_142" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_8"(%"$$fundef_8_env_79"* %0, %Int32 %1) { +entry: + %"$retval_9" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_123" = icmp ugt i64 1, %"$gasrem_122" + br i1 %"$gascmp_123", label %"$out_of_gas_124", label %"$have_gas_125" + +"$out_of_gas_124": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_125" + +"$have_gas_125": ; preds = %"$out_of_gas_124", %entry + %"$consume_126" = sub i64 %"$gasrem_122", 1 + store i64 %"$consume_126", i64* @_gasrem, align 8 + %"$$fundef_10_envp_127_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_10_envp_127_salloc" = call i8* @_salloc(i8* %"$$fundef_10_envp_127_load", i64 4) + %"$$fundef_10_envp_127" = bitcast i8* %"$$fundef_10_envp_127_salloc" to %"$$fundef_10_env_78"* + %"$$fundef_10_env_voidp_129" = bitcast %"$$fundef_10_env_78"* %"$$fundef_10_envp_127" to i8* + %"$$fundef_10_cloval_130" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_10_env_78"*, %Int32)* @"$fundef_10" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_10_env_voidp_129", 1 + %"$$fundef_10_env_a_131" = getelementptr inbounds %"$$fundef_10_env_78", %"$$fundef_10_env_78"* %"$$fundef_10_envp_127", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_10_env_a_131", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_10_cloval_130", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_9", align 8 + %"$$retval_9_132" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_9", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_9_132" +} + +define internal %Int32 @"$fundef_14"(%"$$fundef_14_env_80"* %0, %Int32 %1) { +entry: + %"$$fundef_14_env_a__112" = getelementptr inbounds %"$$fundef_14_env_80", %"$$fundef_14_env_80"* %0, i32 0, i32 0 + %"$a__envload_113" = load %Int32, %Int32* %"$$fundef_14_env_a__112", align 4 + %a_ = alloca %Int32, align 8 + store %Int32 %"$a__envload_113", %Int32* %a_, align 4 + %"$retval_15" = alloca %Int32, align 8 + %"$gasrem_114" = load i64, i64* @_gasrem, align 8 + %"$gascmp_115" = icmp ugt i64 4, %"$gasrem_114" + br i1 %"$gascmp_115", label %"$out_of_gas_116", label %"$have_gas_117" + +"$out_of_gas_116": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_117" + +"$have_gas_117": ; preds = %"$out_of_gas_116", %entry + %"$consume_118" = sub i64 %"$gasrem_114", 4 + store i64 %"$consume_118", i64* @_gasrem, align 8 + %"$a__119" = load %Int32, %Int32* %a_, align 4 + %"$add_call_120" = call %Int32 @_add_Int32(%Int32 %"$a__119", %Int32 %1) + store %Int32 %"$add_call_120", %Int32* %"$retval_15", align 4 + %"$$retval_15_121" = load %Int32, %Int32* %"$retval_15", align 4 + ret %Int32 %"$$retval_15_121" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_12"(%"$$fundef_12_env_81"* %0, %Int32 %1) { +entry: + %"$retval_13" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_90" = load i64, i64* @_gasrem, align 8 + %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" + br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" + +"$out_of_gas_92": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_93" + +"$have_gas_93": ; preds = %"$out_of_gas_92", %entry + %"$consume_94" = sub i64 %"$gasrem_90", 1 + store i64 %"$consume_94", i64* @_gasrem, align 8 + %a_ = alloca %Int32, align 8 + %"$gasrem_95" = load i64, i64* @_gasrem, align 8 + %"$gascmp_96" = icmp ugt i64 1, %"$gasrem_95" + br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" + +"$out_of_gas_97": ; preds = %"$have_gas_93" + call void @_out_of_gas() + br label %"$have_gas_98" + +"$have_gas_98": ; preds = %"$out_of_gas_97", %"$have_gas_93" + %"$consume_99" = sub i64 %"$gasrem_95", 1 + store i64 %"$consume_99", i64* @_gasrem, align 8 + store %Int32 %1, %Int32* %a_, align 4 + %"$gasrem_100" = load i64, i64* @_gasrem, align 8 + %"$gascmp_101" = icmp ugt i64 1, %"$gasrem_100" + br i1 %"$gascmp_101", label %"$out_of_gas_102", label %"$have_gas_103" + +"$out_of_gas_102": ; preds = %"$have_gas_98" + call void @_out_of_gas() + br label %"$have_gas_103" + +"$have_gas_103": ; preds = %"$out_of_gas_102", %"$have_gas_98" + %"$consume_104" = sub i64 %"$gasrem_100", 1 + store i64 %"$consume_104", i64* @_gasrem, align 8 + %"$$fundef_14_envp_105_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_14_envp_105_salloc" = call i8* @_salloc(i8* %"$$fundef_14_envp_105_load", i64 4) + %"$$fundef_14_envp_105" = bitcast i8* %"$$fundef_14_envp_105_salloc" to %"$$fundef_14_env_80"* + %"$$fundef_14_env_voidp_107" = bitcast %"$$fundef_14_env_80"* %"$$fundef_14_envp_105" to i8* + %"$$fundef_14_cloval_108" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_14_env_80"*, %Int32)* @"$fundef_14" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_14_env_voidp_107", 1 + %"$$fundef_14_env_a__109" = getelementptr inbounds %"$$fundef_14_env_80", %"$$fundef_14_env_80"* %"$$fundef_14_envp_105", i32 0, i32 0 + %"$a__110" = load %Int32, %Int32* %a_, align 4 + store %Int32 %"$a__110", %Int32* %"$$fundef_14_env_a__109", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_14_cloval_108", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_13", align 8 + %"$$retval_13_111" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_13", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_13_111" +} + +define internal %Int32 @"$fundef_16"(%"$$fundef_16_env_82"* %0, %Int32 %1, %Int32 %2) { +entry: + %"$retval_17" = alloca %Int32, align 8 + %"$gasrem_83" = load i64, i64* @_gasrem, align 8 + %"$gascmp_84" = icmp ugt i64 4, %"$gasrem_83" + br i1 %"$gascmp_84", label %"$out_of_gas_85", label %"$have_gas_86" + +"$out_of_gas_85": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_86" + +"$have_gas_86": ; preds = %"$out_of_gas_85", %entry + %"$consume_87" = sub i64 %"$gasrem_83", 4 + store i64 %"$consume_87", i64* @_gasrem, align 8 + %"$add_call_88" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %2) + store %Int32 %"$add_call_88", %Int32* %"$retval_17", align 4 + %"$$retval_17_89" = load %Int32, %Int32* %"$retval_17", align 4 + ret %Int32 %"$$retval_17_89" +} + +declare void @_out_of_gas() + +declare %Int32 @_add_Int32(%Int32, %Int32) + +declare i8* @_salloc(i8*, i64) + +declare %Int32 @_sub_Int32(%Int32, %Int32) + +define void @_init_libs() { +entry: + %"$gasrem_164" = load i64, i64* @_gasrem, align 8 + %"$gascmp_165" = icmp ugt i64 2, %"$gasrem_164" + br i1 %"$gascmp_165", label %"$out_of_gas_166", label %"$have_gas_167" + +"$out_of_gas_166": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_167" + +"$have_gas_167": ; preds = %"$out_of_gas_166", %entry + %"$consume_168" = sub i64 %"$gasrem_164", 2 + store i64 %"$consume_168", i64* @_gasrem, align 8 + store { %Int32 (i8*, %Int32, %Int32)*, i8* } { %Int32 (i8*, %Int32, %Int32)* bitcast (%Int32 (%"$$fundef_16_env_82"*, %Int32, %Int32)* @"$fundef_16" to %Int32 (i8*, %Int32, %Int32)*), i8* null }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* @uncurry1.uncur_lib_func, align 8 + %"$gasrem_172" = load i64, i64* @_gasrem, align 8 + %"$gascmp_173" = icmp ugt i64 1, %"$gasrem_172" + br i1 %"$gascmp_173", label %"$out_of_gas_174", label %"$have_gas_175" + +"$out_of_gas_174": ; preds = %"$have_gas_167" + call void @_out_of_gas() + br label %"$have_gas_175" + +"$have_gas_175": ; preds = %"$out_of_gas_174", %"$have_gas_167" + %"$consume_176" = sub i64 %"$gasrem_172", 1 + store i64 %"$consume_176", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_12_env_81"*, %Int32)* @"$fundef_12" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry1.no_uncur_lib_func, align 8 + %"$gasrem_180" = load i64, i64* @_gasrem, align 8 + %"$gascmp_181" = icmp ugt i64 1, %"$gasrem_180" + br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" + +"$out_of_gas_182": ; preds = %"$have_gas_175" + call void @_out_of_gas() + br label %"$have_gas_183" + +"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_175" + %"$consume_184" = sub i64 %"$gasrem_180", 1 + store i64 %"$consume_184", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_8_env_79"*, %Int32)* @"$fundef_8" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry1.uncur_lib_func_partial, align 8 + ret void +} + +define void @_init_state() { +entry: + %"$some_bool_18" = alloca %TName_Bool*, align 8 + %"$gasrem_188" = load i64, i64* @_gasrem, align 8 + %"$gascmp_189" = icmp ugt i64 1, %"$gasrem_188" + br i1 %"$gascmp_189", label %"$out_of_gas_190", label %"$have_gas_191" + +"$out_of_gas_190": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_191" + +"$have_gas_191": ; preds = %"$out_of_gas_190", %entry + %"$consume_192" = sub i64 %"$gasrem_188", 1 + store i64 %"$consume_192", i64* @_gasrem, align 8 + %"$adtval_193_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_193_salloc" = call i8* @_salloc(i8* %"$adtval_193_load", i64 1) + %"$adtval_193" = bitcast i8* %"$adtval_193_salloc" to %CName_False* + %"$adtgep_194" = getelementptr inbounds %CName_False, %CName_False* %"$adtval_193", i32 0, i32 0 + store i8 1, i8* %"$adtgep_194", align 1 + %"$adtptr_195" = bitcast %CName_False* %"$adtval_193" to %TName_Bool* + store %TName_Bool* %"$adtptr_195", %TName_Bool** %"$some_bool_18", align 8 + %"$execptr_load_196" = load i8*, i8** @_execptr, align 8 + %"$$some_bool_18_198" = load %TName_Bool*, %TName_Bool** %"$some_bool_18", align 8 + %"$update_value_199" = bitcast %TName_Bool* %"$$some_bool_18_198" to i8* + call void @_update_field(i8* %"$execptr_load_196", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$some_bool_197", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_58", i32 0, i8* null, i8* %"$update_value_199") + %"$res_19" = alloca %Int32, align 8 + %"$gasrem_200" = load i64, i64* @_gasrem, align 8 + %"$gascmp_201" = icmp ugt i64 1, %"$gasrem_200" + br i1 %"$gascmp_201", label %"$out_of_gas_202", label %"$have_gas_203" + +"$out_of_gas_202": ; preds = %"$have_gas_191" + call void @_out_of_gas() + br label %"$have_gas_203" + +"$have_gas_203": ; preds = %"$out_of_gas_202", %"$have_gas_191" + %"$consume_204" = sub i64 %"$gasrem_200", 1 + store i64 %"$consume_204", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %"$res_19", align 4 + %"$execptr_load_205" = load i8*, i8** @_execptr, align 8 + %"$$res_19_207" = load %Int32, %Int32* %"$res_19", align 4 + %"$update_value_208" = alloca %Int32, align 8 + store %Int32 %"$$res_19_207", %Int32* %"$update_value_208", align 4 + %"$update_value_209" = bitcast %Int32* %"$update_value_208" to i8* + call void @_update_field(i8* %"$execptr_load_205", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_206", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_26", i32 0, i8* null, i8* %"$update_value_209") + ret void +} + +declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) + +define internal void @"$dummy_210"(%Uint128 %_amount, [20 x i8]* %"$_origin_211", [20 x i8]* %"$_sender_212", %Int32 %x1, %Int32 %x2) { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_211", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_212", align 1 + %"$gasrem_213" = load i64, i64* @_gasrem, align 8 + %"$gascmp_214" = icmp ugt i64 1, %"$gasrem_213" + br i1 %"$gascmp_214", label %"$out_of_gas_215", label %"$have_gas_216" + +"$out_of_gas_215": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_216" + +"$have_gas_216": ; preds = %"$out_of_gas_215", %entry + %"$consume_217" = sub i64 %"$gasrem_213", 1 + store i64 %"$consume_217", i64* @_gasrem, align 8 + %partial_app_func = alloca %Int32, align 8 + %"$gasrem_218" = load i64, i64* @_gasrem, align 8 + %"$gascmp_219" = icmp ugt i64 1, %"$gasrem_218" + br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" + +"$out_of_gas_220": ; preds = %"$have_gas_216" + call void @_out_of_gas() + br label %"$have_gas_221" + +"$have_gas_221": ; preds = %"$out_of_gas_220", %"$have_gas_216" + %"$consume_222" = sub i64 %"$gasrem_218", 1 + store i64 %"$consume_222", i64* @_gasrem, align 8 + %partial_app_func_ = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_223" = load i64, i64* @_gasrem, align 8 + %"$gascmp_224" = icmp ugt i64 1, %"$gasrem_223" + br i1 %"$gascmp_224", label %"$out_of_gas_225", label %"$have_gas_226" + +"$out_of_gas_225": ; preds = %"$have_gas_221" + call void @_out_of_gas() + br label %"$have_gas_226" + +"$have_gas_226": ; preds = %"$out_of_gas_225", %"$have_gas_221" + %"$consume_227" = sub i64 %"$gasrem_223", 1 + store i64 %"$consume_227", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_20_env_77"*, %Int32)* @"$fundef_20" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %partial_app_func_, align 8 + %"$gasrem_231" = load i64, i64* @_gasrem, align 8 + %"$gascmp_232" = icmp ugt i64 1, %"$gasrem_231" + br i1 %"$gascmp_232", label %"$out_of_gas_233", label %"$have_gas_234" + +"$out_of_gas_233": ; preds = %"$have_gas_226" + call void @_out_of_gas() + br label %"$have_gas_234" + +"$have_gas_234": ; preds = %"$out_of_gas_233", %"$have_gas_226" + %"$consume_235" = sub i64 %"$gasrem_231", 1 + store i64 %"$consume_235", i64* @_gasrem, align 8 + %n1 = alloca %Int32, align 8 + %"$gasrem_236" = load i64, i64* @_gasrem, align 8 + %"$gascmp_237" = icmp ugt i64 1, %"$gasrem_236" + br i1 %"$gascmp_237", label %"$out_of_gas_238", label %"$have_gas_239" + +"$out_of_gas_238": ; preds = %"$have_gas_234" + call void @_out_of_gas() + br label %"$have_gas_239" + +"$have_gas_239": ; preds = %"$out_of_gas_238", %"$have_gas_234" + %"$consume_240" = sub i64 %"$gasrem_236", 1 + store i64 %"$consume_240", i64* @_gasrem, align 8 + store %Int32 { i32 4 }, %Int32* %n1, align 4 + %"$gasrem_241" = load i64, i64* @_gasrem, align 8 + %"$gascmp_242" = icmp ugt i64 1, %"$gasrem_241" + br i1 %"$gascmp_242", label %"$out_of_gas_243", label %"$have_gas_244" + +"$out_of_gas_243": ; preds = %"$have_gas_239" + call void @_out_of_gas() + br label %"$have_gas_244" + +"$have_gas_244": ; preds = %"$out_of_gas_243", %"$have_gas_239" + %"$consume_245" = sub i64 %"$gasrem_241", 1 + store i64 %"$consume_245", i64* @_gasrem, align 8 + %n2 = alloca %Int32, align 8 + %"$gasrem_246" = load i64, i64* @_gasrem, align 8 + %"$gascmp_247" = icmp ugt i64 1, %"$gasrem_246" + br i1 %"$gascmp_247", label %"$out_of_gas_248", label %"$have_gas_249" + +"$out_of_gas_248": ; preds = %"$have_gas_244" + call void @_out_of_gas() + br label %"$have_gas_249" + +"$have_gas_249": ; preds = %"$out_of_gas_248", %"$have_gas_244" + %"$consume_250" = sub i64 %"$gasrem_246", 1 + store i64 %"$consume_250", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* %n2, align 4 + %"$gasrem_251" = load i64, i64* @_gasrem, align 8 + %"$gascmp_252" = icmp ugt i64 1, %"$gasrem_251" + br i1 %"$gascmp_252", label %"$out_of_gas_253", label %"$have_gas_254" + +"$out_of_gas_253": ; preds = %"$have_gas_249" + call void @_out_of_gas() + br label %"$have_gas_254" + +"$have_gas_254": ; preds = %"$out_of_gas_253", %"$have_gas_249" + %"$consume_255" = sub i64 %"$gasrem_251", 1 + store i64 %"$consume_255", i64* @_gasrem, align 8 + %res1 = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_256" = load i64, i64* @_gasrem, align 8 + %"$gascmp_257" = icmp ugt i64 1, %"$gasrem_256" + br i1 %"$gascmp_257", label %"$out_of_gas_258", label %"$have_gas_259" + +"$out_of_gas_258": ; preds = %"$have_gas_254" + call void @_out_of_gas() + br label %"$have_gas_259" + +"$have_gas_259": ; preds = %"$out_of_gas_258", %"$have_gas_254" + %"$consume_260" = sub i64 %"$gasrem_256", 1 + store i64 %"$consume_260", i64* @_gasrem, align 8 + %"$partial_app_func__0" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$partial_app_func__261" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %partial_app_func_, align 8 + %"$partial_app_func__fptr_262" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$partial_app_func__261", 0 + %"$partial_app_func__envptr_263" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$partial_app_func__261", 1 + %"$n1_264" = load %Int32, %Int32* %n1, align 4 + %"$partial_app_func__call_265" = call { %Int32 (i8*, %Int32)*, i8* } %"$partial_app_func__fptr_262"(i8* %"$partial_app_func__envptr_263", %Int32 %"$n1_264") + store { %Int32 (i8*, %Int32)*, i8* } %"$partial_app_func__call_265", { %Int32 (i8*, %Int32)*, i8* }* %"$partial_app_func__0", align 8 + %"$$partial_app_func__0_266" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$partial_app_func__0", align 8 + store { %Int32 (i8*, %Int32)*, i8* } %"$$partial_app_func__0_266", { %Int32 (i8*, %Int32)*, i8* }* %res1, align 8 + %"$gasrem_267" = load i64, i64* @_gasrem, align 8 + %"$gascmp_268" = icmp ugt i64 1, %"$gasrem_267" + br i1 %"$gascmp_268", label %"$out_of_gas_269", label %"$have_gas_270" + +"$out_of_gas_269": ; preds = %"$have_gas_259" + call void @_out_of_gas() + br label %"$have_gas_270" + +"$have_gas_270": ; preds = %"$out_of_gas_269", %"$have_gas_259" + %"$consume_271" = sub i64 %"$gasrem_267", 1 + store i64 %"$consume_271", i64* @_gasrem, align 8 + %"$res1_1" = alloca %Int32, align 8 + %"$res1_272" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %res1, align 8 + %"$res1_fptr_273" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$res1_272", 0 + %"$res1_envptr_274" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$res1_272", 1 + %"$n2_275" = load %Int32, %Int32* %n2, align 4 + %"$res1_call_276" = call %Int32 %"$res1_fptr_273"(i8* %"$res1_envptr_274", %Int32 %"$n2_275") + store %Int32 %"$res1_call_276", %Int32* %"$res1_1", align 4 + %"$$res1_1_277" = load %Int32, %Int32* %"$res1_1", align 4 + store %Int32 %"$$res1_1_277", %Int32* %partial_app_func, align 4 + %"$gasrem_278" = load i64, i64* @_gasrem, align 8 + %"$gascmp_279" = icmp ugt i64 1, %"$gasrem_278" + br i1 %"$gascmp_279", label %"$out_of_gas_280", label %"$have_gas_281" + +"$out_of_gas_280": ; preds = %"$have_gas_270" + call void @_out_of_gas() + br label %"$have_gas_281" + +"$have_gas_281": ; preds = %"$out_of_gas_280", %"$have_gas_270" + %"$consume_282" = sub i64 %"$gasrem_278", 1 + store i64 %"$consume_282", i64* @_gasrem, align 8 + %total_app1 = alloca %Int32, align 8 + %"$gasrem_283" = load i64, i64* @_gasrem, align 8 + %"$gascmp_284" = icmp ugt i64 1, %"$gasrem_283" + br i1 %"$gascmp_284", label %"$out_of_gas_285", label %"$have_gas_286" + +"$out_of_gas_285": ; preds = %"$have_gas_281" + call void @_out_of_gas() + br label %"$have_gas_286" + +"$have_gas_286": ; preds = %"$out_of_gas_285", %"$have_gas_281" + %"$consume_287" = sub i64 %"$gasrem_283", 1 + store i64 %"$consume_287", i64* @_gasrem, align 8 + %"$uncurry1.uncur_lib_func_288" = load { %Int32 (i8*, %Int32, %Int32)*, i8* }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* @uncurry1.uncur_lib_func, align 8 + %"$uncurry1.uncur_lib_func_fptr_289" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_288", 0 + %"$uncurry1.uncur_lib_func_envptr_290" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_288", 1 + %"$uncurry1.uncur_lib_func_call_291" = call %Int32 %"$uncurry1.uncur_lib_func_fptr_289"(i8* %"$uncurry1.uncur_lib_func_envptr_290", %Int32 %x1, %Int32 %x2) + store %Int32 %"$uncurry1.uncur_lib_func_call_291", %Int32* %total_app1, align 4 + %"$gasrem_292" = load i64, i64* @_gasrem, align 8 + %"$gascmp_293" = icmp ugt i64 1, %"$gasrem_292" + br i1 %"$gascmp_293", label %"$out_of_gas_294", label %"$have_gas_295" + +"$out_of_gas_294": ; preds = %"$have_gas_286" + call void @_out_of_gas() + br label %"$have_gas_295" + +"$have_gas_295": ; preds = %"$out_of_gas_294", %"$have_gas_286" + %"$consume_296" = sub i64 %"$gasrem_292", 1 + store i64 %"$consume_296", i64* @_gasrem, align 8 + %total_app2 = alloca %Int32, align 8 + %"$gasrem_297" = load i64, i64* @_gasrem, align 8 + %"$gascmp_298" = icmp ugt i64 1, %"$gasrem_297" + br i1 %"$gascmp_298", label %"$out_of_gas_299", label %"$have_gas_300" + +"$out_of_gas_299": ; preds = %"$have_gas_295" + call void @_out_of_gas() + br label %"$have_gas_300" + +"$have_gas_300": ; preds = %"$out_of_gas_299", %"$have_gas_295" + %"$consume_301" = sub i64 %"$gasrem_297", 1 + store i64 %"$consume_301", i64* @_gasrem, align 8 + %"$uncurry1.no_uncur_lib_func_2" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$uncurry1.no_uncur_lib_func_302" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry1.no_uncur_lib_func, align 8 + %"$uncurry1.no_uncur_lib_func_fptr_303" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.no_uncur_lib_func_302", 0 + %"$uncurry1.no_uncur_lib_func_envptr_304" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.no_uncur_lib_func_302", 1 + %"$total_app1_305" = load %Int32, %Int32* %total_app1, align 4 + %"$uncurry1.no_uncur_lib_func_call_306" = call { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.no_uncur_lib_func_fptr_303"(i8* %"$uncurry1.no_uncur_lib_func_envptr_304", %Int32 %"$total_app1_305") + store { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.no_uncur_lib_func_call_306", { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.no_uncur_lib_func_2", align 8 + %"$uncurry1.no_uncur_lib_func_3" = alloca %Int32, align 8 + %"$$uncurry1.no_uncur_lib_func_2_307" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.no_uncur_lib_func_2", align 8 + %"$$uncurry1.no_uncur_lib_func_2_fptr_308" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry1.no_uncur_lib_func_2_307", 0 + %"$$uncurry1.no_uncur_lib_func_2_envptr_309" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry1.no_uncur_lib_func_2_307", 1 + %"$$uncurry1.no_uncur_lib_func_2_call_310" = call %Int32 %"$$uncurry1.no_uncur_lib_func_2_fptr_308"(i8* %"$$uncurry1.no_uncur_lib_func_2_envptr_309", %Int32 %x2) + store %Int32 %"$$uncurry1.no_uncur_lib_func_2_call_310", %Int32* %"$uncurry1.no_uncur_lib_func_3", align 4 + %"$$uncurry1.no_uncur_lib_func_3_311" = load %Int32, %Int32* %"$uncurry1.no_uncur_lib_func_3", align 4 + store %Int32 %"$$uncurry1.no_uncur_lib_func_3_311", %Int32* %total_app2, align 4 + %"$gasrem_312" = load i64, i64* @_gasrem, align 8 + %"$gascmp_313" = icmp ugt i64 1, %"$gasrem_312" + br i1 %"$gascmp_313", label %"$out_of_gas_314", label %"$have_gas_315" + +"$out_of_gas_314": ; preds = %"$have_gas_300" + call void @_out_of_gas() + br label %"$have_gas_315" + +"$have_gas_315": ; preds = %"$out_of_gas_314", %"$have_gas_300" + %"$consume_316" = sub i64 %"$gasrem_312", 1 + store i64 %"$consume_316", i64* @_gasrem, align 8 + %y = alloca %Int32, align 8 + %"$gasrem_317" = load i64, i64* @_gasrem, align 8 + %"$gascmp_318" = icmp ugt i64 4, %"$gasrem_317" + br i1 %"$gascmp_318", label %"$out_of_gas_319", label %"$have_gas_320" + +"$out_of_gas_319": ; preds = %"$have_gas_315" + call void @_out_of_gas() + br label %"$have_gas_320" + +"$have_gas_320": ; preds = %"$out_of_gas_319", %"$have_gas_315" + %"$consume_321" = sub i64 %"$gasrem_317", 4 + store i64 %"$consume_321", i64* @_gasrem, align 8 + %"$partial_app_func_322" = load %Int32, %Int32* %partial_app_func, align 4 + %"$total_app2_323" = load %Int32, %Int32* %total_app2, align 4 + %"$add_call_324" = call %Int32 @_add_Int32(%Int32 %"$partial_app_func_322", %Int32 %"$total_app2_323") + store %Int32 %"$add_call_324", %Int32* %y, align 4 + %"$_literal_cost_y_325" = alloca %Int32, align 8 + %"$y_326" = load %Int32, %Int32* %y, align 4 + store %Int32 %"$y_326", %Int32* %"$_literal_cost_y_325", align 4 + %"$$_literal_cost_y_325_327" = bitcast %Int32* %"$_literal_cost_y_325" to i8* + %"$_literal_cost_call_328" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_26", i8* %"$$_literal_cost_y_325_327") + %"$gasrem_329" = load i64, i64* @_gasrem, align 8 + %"$gascmp_330" = icmp ugt i64 %"$_literal_cost_call_328", %"$gasrem_329" + br i1 %"$gascmp_330", label %"$out_of_gas_331", label %"$have_gas_332" + +"$out_of_gas_331": ; preds = %"$have_gas_320" + call void @_out_of_gas() + br label %"$have_gas_332" + +"$have_gas_332": ; preds = %"$out_of_gas_331", %"$have_gas_320" + %"$consume_333" = sub i64 %"$gasrem_329", %"$_literal_cost_call_328" + store i64 %"$consume_333", i64* @_gasrem, align 8 + %"$execptr_load_334" = load i8*, i8** @_execptr, align 8 + %"$y_336" = load %Int32, %Int32* %y, align 4 + %"$update_value_337" = alloca %Int32, align 8 + store %Int32 %"$y_336", %Int32* %"$update_value_337", align 4 + %"$update_value_338" = bitcast %Int32* %"$update_value_337" to i8* + call void @_update_field(i8* %"$execptr_load_334", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_335", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_26", i32 0, i8* null, i8* %"$update_value_338") + ret void +} + +declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) + +define void @dummy(i8* %0) { +entry: + %"$_amount_340" = getelementptr i8, i8* %0, i32 0 + %"$_amount_341" = bitcast i8* %"$_amount_340" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_341", align 8 + %"$_origin_342" = getelementptr i8, i8* %0, i32 16 + %"$_origin_343" = bitcast i8* %"$_origin_342" to [20 x i8]* + %"$_sender_344" = getelementptr i8, i8* %0, i32 36 + %"$_sender_345" = bitcast i8* %"$_sender_344" to [20 x i8]* + %"$x1_346" = getelementptr i8, i8* %0, i32 56 + %"$x1_347" = bitcast i8* %"$x1_346" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_347", align 4 + %"$x2_348" = getelementptr i8, i8* %0, i32 60 + %"$x2_349" = bitcast i8* %"$x2_348" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_349", align 4 + call void @"$dummy_210"(%Uint128 %_amount, [20 x i8]* %"$_origin_343", [20 x i8]* %"$_sender_345", %Int32 %x1, %Int32 %x2) + ret void +} + +define internal void @"$dummy2_350"(%Uint128 %_amount, [20 x i8]* %"$_origin_351", [20 x i8]* %"$_sender_352", %Int32 %x1, %Int32 %x2) { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_351", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_352", align 1 + %"$gasrem_353" = load i64, i64* @_gasrem, align 8 + %"$gascmp_354" = icmp ugt i64 1, %"$gasrem_353" + br i1 %"$gascmp_354", label %"$out_of_gas_355", label %"$have_gas_356" + +"$out_of_gas_355": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_356" + +"$have_gas_356": ; preds = %"$out_of_gas_355", %entry + %"$consume_357" = sub i64 %"$gasrem_353", 1 + store i64 %"$consume_357", i64* @_gasrem, align 8 + %total_app = alloca %Int32, align 8 + %"$gasrem_358" = load i64, i64* @_gasrem, align 8 + %"$gascmp_359" = icmp ugt i64 1, %"$gasrem_358" + br i1 %"$gascmp_359", label %"$out_of_gas_360", label %"$have_gas_361" + +"$out_of_gas_360": ; preds = %"$have_gas_356" + call void @_out_of_gas() + br label %"$have_gas_361" + +"$have_gas_361": ; preds = %"$out_of_gas_360", %"$have_gas_356" + %"$consume_362" = sub i64 %"$gasrem_358", 1 + store i64 %"$consume_362", i64* @_gasrem, align 8 + %"$uncurry1.uncur_lib_func_partial_4" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$uncurry1.uncur_lib_func_partial_363" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry1.uncur_lib_func_partial, align 8 + %"$uncurry1.uncur_lib_func_partial_fptr_364" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_363", 0 + %"$uncurry1.uncur_lib_func_partial_envptr_365" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_363", 1 + %"$uncurry1.uncur_lib_func_partial_call_366" = call { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_fptr_364"(i8* %"$uncurry1.uncur_lib_func_partial_envptr_365", %Int32 %x1) + store { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_call_366", { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.uncur_lib_func_partial_4", align 8 + %"$uncurry1.uncur_lib_func_partial_5" = alloca %Int32, align 8 + %"$$uncurry1.uncur_lib_func_partial_4_367" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.uncur_lib_func_partial_4", align 8 + %"$$uncurry1.uncur_lib_func_partial_4_fptr_368" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry1.uncur_lib_func_partial_4_367", 0 + %"$$uncurry1.uncur_lib_func_partial_4_envptr_369" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry1.uncur_lib_func_partial_4_367", 1 + %"$$uncurry1.uncur_lib_func_partial_4_call_370" = call %Int32 %"$$uncurry1.uncur_lib_func_partial_4_fptr_368"(i8* %"$$uncurry1.uncur_lib_func_partial_4_envptr_369", %Int32 %x2) + store %Int32 %"$$uncurry1.uncur_lib_func_partial_4_call_370", %Int32* %"$uncurry1.uncur_lib_func_partial_5", align 4 + %"$$uncurry1.uncur_lib_func_partial_5_371" = load %Int32, %Int32* %"$uncurry1.uncur_lib_func_partial_5", align 4 + store %Int32 %"$$uncurry1.uncur_lib_func_partial_5_371", %Int32* %total_app, align 4 + %some_bool_ = alloca %TName_Bool*, align 8 + %"$execptr_load_373" = load i8*, i8** @_execptr, align 8 + %"$some_bool__call_374" = call i8* @_fetch_field(i8* %"$execptr_load_373", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"$some_bool_372", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_58", i32 0, i8* null, i32 1) + %"$some_bool__375" = bitcast i8* %"$some_bool__call_374" to %TName_Bool* + store %TName_Bool* %"$some_bool__375", %TName_Bool** %some_bool_, align 8 + %"$some_bool__376" = load %TName_Bool*, %TName_Bool** %some_bool_, align 8 + %"$$some_bool__376_377" = bitcast %TName_Bool* %"$some_bool__376" to i8* + %"$_literal_cost_call_378" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_58", i8* %"$$some_bool__376_377") + %"$gasadd_379" = add i64 %"$_literal_cost_call_378", 0 + %"$gasrem_380" = load i64, i64* @_gasrem, align 8 + %"$gascmp_381" = icmp ugt i64 %"$gasadd_379", %"$gasrem_380" + br i1 %"$gascmp_381", label %"$out_of_gas_382", label %"$have_gas_383" + +"$out_of_gas_382": ; preds = %"$have_gas_361" + call void @_out_of_gas() + br label %"$have_gas_383" + +"$have_gas_383": ; preds = %"$out_of_gas_382", %"$have_gas_361" + %"$consume_384" = sub i64 %"$gasrem_380", %"$gasadd_379" + store i64 %"$consume_384", i64* @_gasrem, align 8 + %"$gasrem_385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_386" = icmp ugt i64 2, %"$gasrem_385" + br i1 %"$gascmp_386", label %"$out_of_gas_387", label %"$have_gas_388" + +"$out_of_gas_387": ; preds = %"$have_gas_383" + call void @_out_of_gas() + br label %"$have_gas_388" + +"$have_gas_388": ; preds = %"$out_of_gas_387", %"$have_gas_383" + %"$consume_389" = sub i64 %"$gasrem_385", 2 + store i64 %"$consume_389", i64* @_gasrem, align 8 + %"$some_bool__391" = load %TName_Bool*, %TName_Bool** %some_bool_, align 8 + %"$some_bool__tag_392" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$some_bool__391", i32 0, i32 0 + %"$some_bool__tag_393" = load i8, i8* %"$some_bool__tag_392", align 1 + switch i8 %"$some_bool__tag_393", label %"$empty_default_394" [ + i8 1, label %"$False_395" + i8 0, label %"$True_442" + ] + +"$False_395": ; preds = %"$have_gas_388" + %"$some_bool__396" = bitcast %TName_Bool* %"$some_bool__391" to %CName_False* + %"$gasrem_397" = load i64, i64* @_gasrem, align 8 + %"$gascmp_398" = icmp ugt i64 1, %"$gasrem_397" + br i1 %"$gascmp_398", label %"$out_of_gas_399", label %"$have_gas_400" + +"$out_of_gas_399": ; preds = %"$False_395" + call void @_out_of_gas() + br label %"$have_gas_400" + +"$have_gas_400": ; preds = %"$out_of_gas_399", %"$False_395" + %"$consume_401" = sub i64 %"$gasrem_397", 1 + store i64 %"$consume_401", i64* @_gasrem, align 8 + %partial_app1 = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_402" = load i64, i64* @_gasrem, align 8 + %"$gascmp_403" = icmp ugt i64 1, %"$gasrem_402" + br i1 %"$gascmp_403", label %"$out_of_gas_404", label %"$have_gas_405" + +"$out_of_gas_404": ; preds = %"$have_gas_400" + call void @_out_of_gas() + br label %"$have_gas_405" + +"$have_gas_405": ; preds = %"$out_of_gas_404", %"$have_gas_400" + %"$consume_406" = sub i64 %"$gasrem_402", 1 + store i64 %"$consume_406", i64* @_gasrem, align 8 + %"$uncurry1.uncur_lib_func_partial_6" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$uncurry1.uncur_lib_func_partial_407" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry1.uncur_lib_func_partial, align 8 + %"$uncurry1.uncur_lib_func_partial_fptr_408" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_407", 0 + %"$uncurry1.uncur_lib_func_partial_envptr_409" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_407", 1 + %"$total_app_410" = load %Int32, %Int32* %total_app, align 4 + %"$uncurry1.uncur_lib_func_partial_call_411" = call { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_fptr_408"(i8* %"$uncurry1.uncur_lib_func_partial_envptr_409", %Int32 %"$total_app_410") + store { %Int32 (i8*, %Int32)*, i8* } %"$uncurry1.uncur_lib_func_partial_call_411", { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.uncur_lib_func_partial_6", align 8 + %"$$uncurry1.uncur_lib_func_partial_6_412" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry1.uncur_lib_func_partial_6", align 8 + store { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry1.uncur_lib_func_partial_6_412", { %Int32 (i8*, %Int32)*, i8* }* %partial_app1, align 8 + %"$gasrem_413" = load i64, i64* @_gasrem, align 8 + %"$gascmp_414" = icmp ugt i64 1, %"$gasrem_413" + br i1 %"$gascmp_414", label %"$out_of_gas_415", label %"$have_gas_416" + +"$out_of_gas_415": ; preds = %"$have_gas_405" + call void @_out_of_gas() + br label %"$have_gas_416" + +"$have_gas_416": ; preds = %"$out_of_gas_415", %"$have_gas_405" + %"$consume_417" = sub i64 %"$gasrem_413", 1 + store i64 %"$consume_417", i64* @_gasrem, align 8 + %partial_app2 = alloca %Int32, align 8 + %"$gasrem_418" = load i64, i64* @_gasrem, align 8 + %"$gascmp_419" = icmp ugt i64 1, %"$gasrem_418" + br i1 %"$gascmp_419", label %"$out_of_gas_420", label %"$have_gas_421" + +"$out_of_gas_420": ; preds = %"$have_gas_416" + call void @_out_of_gas() + br label %"$have_gas_421" + +"$have_gas_421": ; preds = %"$out_of_gas_420", %"$have_gas_416" + %"$consume_422" = sub i64 %"$gasrem_418", 1 + store i64 %"$consume_422", i64* @_gasrem, align 8 + %"$partial_app1_7" = alloca %Int32, align 8 + %"$partial_app1_423" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %partial_app1, align 8 + %"$partial_app1_fptr_424" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_app1_423", 0 + %"$partial_app1_envptr_425" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_app1_423", 1 + %"$partial_app1_call_426" = call %Int32 %"$partial_app1_fptr_424"(i8* %"$partial_app1_envptr_425", %Int32 %x1) + store %Int32 %"$partial_app1_call_426", %Int32* %"$partial_app1_7", align 4 + %"$$partial_app1_7_427" = load %Int32, %Int32* %"$partial_app1_7", align 4 + store %Int32 %"$$partial_app1_7_427", %Int32* %partial_app2, align 4 + %"$_literal_cost_partial_app2_428" = alloca %Int32, align 8 + %"$partial_app2_429" = load %Int32, %Int32* %partial_app2, align 4 + store %Int32 %"$partial_app2_429", %Int32* %"$_literal_cost_partial_app2_428", align 4 + %"$$_literal_cost_partial_app2_428_430" = bitcast %Int32* %"$_literal_cost_partial_app2_428" to i8* + %"$_literal_cost_call_431" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_26", i8* %"$$_literal_cost_partial_app2_428_430") + %"$gasrem_432" = load i64, i64* @_gasrem, align 8 + %"$gascmp_433" = icmp ugt i64 %"$_literal_cost_call_431", %"$gasrem_432" + br i1 %"$gascmp_433", label %"$out_of_gas_434", label %"$have_gas_435" + +"$out_of_gas_434": ; preds = %"$have_gas_421" + call void @_out_of_gas() + br label %"$have_gas_435" + +"$have_gas_435": ; preds = %"$out_of_gas_434", %"$have_gas_421" + %"$consume_436" = sub i64 %"$gasrem_432", %"$_literal_cost_call_431" + store i64 %"$consume_436", i64* @_gasrem, align 8 + %"$execptr_load_437" = load i8*, i8** @_execptr, align 8 + %"$partial_app2_439" = load %Int32, %Int32* %partial_app2, align 4 + %"$update_value_440" = alloca %Int32, align 8 + store %Int32 %"$partial_app2_439", %Int32* %"$update_value_440", align 4 + %"$update_value_441" = bitcast %Int32* %"$update_value_440" to i8* + call void @_update_field(i8* %"$execptr_load_437", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_438", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_26", i32 0, i8* null, i8* %"$update_value_441") + br label %"$matchsucc_390" + +"$True_442": ; preds = %"$have_gas_388" + %"$some_bool__443" = bitcast %TName_Bool* %"$some_bool__391" to %CName_True* + br label %"$matchsucc_390" + +"$empty_default_394": ; preds = %"$have_gas_388" + br label %"$matchsucc_390" + +"$matchsucc_390": ; preds = %"$True_442", %"$have_gas_435", %"$empty_default_394" + ret void +} + +declare i8* @_fetch_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i32) + +define void @dummy2(i8* %0) { +entry: + %"$_amount_445" = getelementptr i8, i8* %0, i32 0 + %"$_amount_446" = bitcast i8* %"$_amount_445" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_446", align 8 + %"$_origin_447" = getelementptr i8, i8* %0, i32 16 + %"$_origin_448" = bitcast i8* %"$_origin_447" to [20 x i8]* + %"$_sender_449" = getelementptr i8, i8* %0, i32 36 + %"$_sender_450" = bitcast i8* %"$_sender_449" to [20 x i8]* + %"$x1_451" = getelementptr i8, i8* %0, i32 56 + %"$x1_452" = bitcast i8* %"$x1_451" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_452", align 4 + %"$x2_453" = getelementptr i8, i8* %0, i32 60 + %"$x2_454" = bitcast i8* %"$x2_453" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_454", align 4 + call void @"$dummy2_350"(%Uint128 %_amount, [20 x i8]* %"$_origin_448", [20 x i8]* %"$_sender_450", %Int32 %x1, %Int32 %x2) + ret void +} diff --git a/tests/codegen/contr/gold/uncurry2.scilla.gold b/tests/codegen/contr/gold/uncurry2.scilla.gold new file mode 100644 index 00000000..65f1cf63 --- /dev/null +++ b/tests/codegen/contr/gold/uncurry2.scilla.gold @@ -0,0 +1,316 @@ + + +; gas_remaining: 4001999 +; ModuleID = 'SimpleUnuccury2' +source_filename = "SimpleUnuccury2" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" + +%"$TyDescrTy_PrimTyp_7" = type { i32, i32 } +%_TyDescrTy_Typ = type { i32, i8* } +%"$TyDescr_AddrTyp_43" = type { i32, %"$TyDescr_AddrFieldTyp_42"* } +%"$TyDescr_AddrFieldTyp_42" = type { %TyDescrString, %_TyDescrTy_Typ* } +%TyDescrString = type { i8*, i32 } +%Int32 = type { i32 } +%Uint32 = type { i32 } +%"$ParamDescr_157" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%ParamDescrString = type { i8*, i32 } +%"$TransDescr_158" = type { %ParamDescrString, i32, %"$ParamDescr_157"* } +%"$$fundef_4_env_46" = type { %Int32 } +%"$$fundef_2_env_47" = type {} +%Uint128 = type { i128 } + +@_execptr = global i8* null +@_gasrem = global i64 0 +@"$TyDescr_Int32_Prim_8" = global %"$TyDescrTy_PrimTyp_7" zeroinitializer +@"$TyDescr_Int32_9" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Int32_Prim_8" to i8*) } +@"$TyDescr_Uint32_Prim_10" = global %"$TyDescrTy_PrimTyp_7" { i32 1, i32 0 } +@"$TyDescr_Uint32_11" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Uint32_Prim_10" to i8*) } +@"$TyDescr_Int64_Prim_12" = global %"$TyDescrTy_PrimTyp_7" { i32 0, i32 1 } +@"$TyDescr_Int64_13" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Int64_Prim_12" to i8*) } +@"$TyDescr_Uint64_Prim_14" = global %"$TyDescrTy_PrimTyp_7" { i32 1, i32 1 } +@"$TyDescr_Uint64_15" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Uint64_Prim_14" to i8*) } +@"$TyDescr_Int128_Prim_16" = global %"$TyDescrTy_PrimTyp_7" { i32 0, i32 2 } +@"$TyDescr_Int128_17" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Int128_Prim_16" to i8*) } +@"$TyDescr_Uint128_Prim_18" = global %"$TyDescrTy_PrimTyp_7" { i32 1, i32 2 } +@"$TyDescr_Uint128_19" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Uint128_Prim_18" to i8*) } +@"$TyDescr_Int256_Prim_20" = global %"$TyDescrTy_PrimTyp_7" { i32 0, i32 3 } +@"$TyDescr_Int256_21" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Int256_Prim_20" to i8*) } +@"$TyDescr_Uint256_Prim_22" = global %"$TyDescrTy_PrimTyp_7" { i32 1, i32 3 } +@"$TyDescr_Uint256_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Uint256_Prim_22" to i8*) } +@"$TyDescr_String_Prim_24" = global %"$TyDescrTy_PrimTyp_7" { i32 2, i32 0 } +@"$TyDescr_String_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_String_Prim_24" to i8*) } +@"$TyDescr_Bnum_Prim_26" = global %"$TyDescrTy_PrimTyp_7" { i32 3, i32 0 } +@"$TyDescr_Bnum_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Bnum_Prim_26" to i8*) } +@"$TyDescr_Message_Prim_28" = global %"$TyDescrTy_PrimTyp_7" { i32 4, i32 0 } +@"$TyDescr_Message_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Message_Prim_28" to i8*) } +@"$TyDescr_Event_Prim_30" = global %"$TyDescrTy_PrimTyp_7" { i32 5, i32 0 } +@"$TyDescr_Event_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Event_Prim_30" to i8*) } +@"$TyDescr_Exception_Prim_32" = global %"$TyDescrTy_PrimTyp_7" { i32 6, i32 0 } +@"$TyDescr_Exception_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Exception_Prim_32" to i8*) } +@"$TyDescr_Bystr_Prim_34" = global %"$TyDescrTy_PrimTyp_7" { i32 7, i32 0 } +@"$TyDescr_Bystr_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Bystr_Prim_34" to i8*) } +@"$TyDescr_Bystr20_Prim_36" = global %"$TyDescrTy_PrimTyp_7" { i32 8, i32 20 } +@"$TyDescr_Bystr20_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_7"* @"$TyDescr_Bystr20_Prim_36" to i8*) } +@"$TyDescr_Addr_44" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_43"* @"$TyDescr_AddrFields_45" to i8*) } +@"$TyDescr_AddrFields_45" = unnamed_addr constant %"$TyDescr_AddrTyp_43" { i32 -1, %"$TyDescr_AddrFieldTyp_42"* null } +@uncurry2.uncur_lib_func = global { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } zeroinitializer +@_cparam__scilla_version = global %Uint32 zeroinitializer +@_cparam__this_address = global [20 x i8] zeroinitializer +@_cparam__creation_block = global i8* null +@"$res_83" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_142" = unnamed_addr constant [4 x i8] c"res\00" +@_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_31", %_TyDescrTy_Typ* @"$TyDescr_Int64_13", %_TyDescrTy_Typ* @"$TyDescr_Addr_44", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37", %_TyDescrTy_Typ* @"$TyDescr_Uint256_23", %_TyDescrTy_Typ* @"$TyDescr_Uint32_11", %_TyDescrTy_Typ* @"$TyDescr_Uint64_15", %_TyDescrTy_Typ* @"$TyDescr_Bnum_27", %_TyDescrTy_Typ* @"$TyDescr_Uint128_19", %_TyDescrTy_Typ* @"$TyDescr_Exception_33", %_TyDescrTy_Typ* @"$TyDescr_String_25", %_TyDescrTy_Typ* @"$TyDescr_Int256_21", %_TyDescrTy_Typ* @"$TyDescr_Int128_17", %_TyDescrTy_Typ* @"$TyDescr_Bystr_35", %_TyDescrTy_Typ* @"$TyDescr_Message_29", %_TyDescrTy_Typ* @"$TyDescr_Int32_9"] +@_tydescr_table_length = constant i32 16 +@"$pname__scilla_version_159" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_160" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_161" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_157"] [%"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_159", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_11" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_160", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_37" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_161", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_27" }] +@_contract_parameters_length = constant i32 3 +@"$tpname__amount_162" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_163" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_164" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_165" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_166" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy_167" = unnamed_addr constant [5 x %"$ParamDescr_157"] [%"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_162", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_19" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_163", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_164", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_44" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_165", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_9" }, %"$ParamDescr_157" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_166", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_9" }] +@"$tname_dummy_168" = unnamed_addr constant [5 x i8] c"dummy" +@_transition_parameters = constant [1 x %"$TransDescr_158"] [%"$TransDescr_158" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_dummy_168", i32 0, i32 0), i32 5 }, i32 5, %"$ParamDescr_157"* getelementptr inbounds ([5 x %"$ParamDescr_157"], [5 x %"$ParamDescr_157"]* @"$tparams_dummy_167", i32 0, i32 0) }] +@_transition_parameters_length = constant i32 1 + +define internal %Int32 @"$fundef_4"(%"$$fundef_4_env_46"* %0, %Int32 %1) { +entry: + %"$$fundef_4_env_a_59" = getelementptr inbounds %"$$fundef_4_env_46", %"$$fundef_4_env_46"* %0, i32 0, i32 0 + %"$a_envload_60" = load %Int32, %Int32* %"$$fundef_4_env_a_59", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_60", %Int32* %a, align 4 + %"$retval_5" = alloca %Int32, align 8 + %"$gasrem_61" = load i64, i64* @_gasrem, align 8 + %"$gascmp_62" = icmp ugt i64 4, %"$gasrem_61" + br i1 %"$gascmp_62", label %"$out_of_gas_63", label %"$have_gas_64" + +"$out_of_gas_63": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_64" + +"$have_gas_64": ; preds = %"$out_of_gas_63", %entry + %"$consume_65" = sub i64 %"$gasrem_61", 4 + store i64 %"$consume_65", i64* @_gasrem, align 8 + %"$a_66" = load %Int32, %Int32* %a, align 4 + %"$add_call_67" = call %Int32 @_add_Int32(%Int32 %"$a_66", %Int32 %1) + store %Int32 %"$add_call_67", %Int32* %"$retval_5", align 4 + %"$$retval_5_68" = load %Int32, %Int32* %"$retval_5", align 4 + ret %Int32 %"$$retval_5_68" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_2"(%"$$fundef_2_env_47"* %0, %Int32 %1) { +entry: + %"$retval_3" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_48" = load i64, i64* @_gasrem, align 8 + %"$gascmp_49" = icmp ugt i64 1, %"$gasrem_48" + br i1 %"$gascmp_49", label %"$out_of_gas_50", label %"$have_gas_51" + +"$out_of_gas_50": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_51" + +"$have_gas_51": ; preds = %"$out_of_gas_50", %entry + %"$consume_52" = sub i64 %"$gasrem_48", 1 + store i64 %"$consume_52", i64* @_gasrem, align 8 + %"$$fundef_4_envp_53_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_4_envp_53_salloc" = call i8* @_salloc(i8* %"$$fundef_4_envp_53_load", i64 4) + %"$$fundef_4_envp_53" = bitcast i8* %"$$fundef_4_envp_53_salloc" to %"$$fundef_4_env_46"* + %"$$fundef_4_env_voidp_55" = bitcast %"$$fundef_4_env_46"* %"$$fundef_4_envp_53" to i8* + %"$$fundef_4_cloval_56" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_4_env_46"*, %Int32)* @"$fundef_4" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_4_env_voidp_55", 1 + %"$$fundef_4_env_a_57" = getelementptr inbounds %"$$fundef_4_env_46", %"$$fundef_4_env_46"* %"$$fundef_4_envp_53", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_4_env_a_57", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_4_cloval_56", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_3", align 8 + %"$$retval_3_58" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_3", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_3_58" +} + +declare void @_out_of_gas() + +declare i8* @_salloc(i8*, i64) + +declare %Int32 @_add_Int32(%Int32, %Int32) + +define void @_init_libs() { +entry: + %"$gasrem_69" = load i64, i64* @_gasrem, align 8 + %"$gascmp_70" = icmp ugt i64 1, %"$gasrem_69" + br i1 %"$gascmp_70", label %"$out_of_gas_71", label %"$have_gas_72" + +"$out_of_gas_71": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_72" + +"$have_gas_72": ; preds = %"$out_of_gas_71", %entry + %"$consume_73" = sub i64 %"$gasrem_69", 1 + store i64 %"$consume_73", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_2_env_47"*, %Int32)* @"$fundef_2" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry2.uncur_lib_func, align 8 + ret void +} + +define void @_init_state() { +entry: + %"$res_6" = alloca %Int32, align 8 + %"$gasrem_77" = load i64, i64* @_gasrem, align 8 + %"$gascmp_78" = icmp ugt i64 1, %"$gasrem_77" + br i1 %"$gascmp_78", label %"$out_of_gas_79", label %"$have_gas_80" + +"$out_of_gas_79": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_80" + +"$have_gas_80": ; preds = %"$out_of_gas_79", %entry + %"$consume_81" = sub i64 %"$gasrem_77", 1 + store i64 %"$consume_81", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %"$res_6", align 4 + %"$execptr_load_82" = load i8*, i8** @_execptr, align 8 + %"$$res_6_84" = load %Int32, %Int32* %"$res_6", align 4 + %"$update_value_85" = alloca %Int32, align 8 + store %Int32 %"$$res_6_84", %Int32* %"$update_value_85", align 4 + %"$update_value_86" = bitcast %Int32* %"$update_value_85" to i8* + call void @_update_field(i8* %"$execptr_load_82", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_83", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_9", i32 0, i8* null, i8* %"$update_value_86") + ret void +} + +declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) + +define internal void @"$dummy_87"(%Uint128 %_amount, [20 x i8]* %"$_origin_88", [20 x i8]* %"$_sender_89", %Int32 %x1, %Int32 %x2) { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_88", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_89", align 1 + %"$gasrem_90" = load i64, i64* @_gasrem, align 8 + %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" + br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" + +"$out_of_gas_92": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_93" + +"$have_gas_93": ; preds = %"$out_of_gas_92", %entry + %"$consume_94" = sub i64 %"$gasrem_90", 1 + store i64 %"$consume_94", i64* @_gasrem, align 8 + %partial_app1 = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_95" = load i64, i64* @_gasrem, align 8 + %"$gascmp_96" = icmp ugt i64 1, %"$gasrem_95" + br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" + +"$out_of_gas_97": ; preds = %"$have_gas_93" + call void @_out_of_gas() + br label %"$have_gas_98" + +"$have_gas_98": ; preds = %"$out_of_gas_97", %"$have_gas_93" + %"$consume_99" = sub i64 %"$gasrem_95", 1 + store i64 %"$consume_99", i64* @_gasrem, align 8 + %"$uncurry2.uncur_lib_func_0" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$uncurry2.uncur_lib_func_100" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry2.uncur_lib_func, align 8 + %"$uncurry2.uncur_lib_func_fptr_101" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry2.uncur_lib_func_100", 0 + %"$uncurry2.uncur_lib_func_envptr_102" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry2.uncur_lib_func_100", 1 + %"$uncurry2.uncur_lib_func_call_103" = call { %Int32 (i8*, %Int32)*, i8* } %"$uncurry2.uncur_lib_func_fptr_101"(i8* %"$uncurry2.uncur_lib_func_envptr_102", %Int32 %x1) + store { %Int32 (i8*, %Int32)*, i8* } %"$uncurry2.uncur_lib_func_call_103", { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry2.uncur_lib_func_0", align 8 + %"$$uncurry2.uncur_lib_func_0_104" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry2.uncur_lib_func_0", align 8 + store { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry2.uncur_lib_func_0_104", { %Int32 (i8*, %Int32)*, i8* }* %partial_app1, align 8 + %"$gasrem_105" = load i64, i64* @_gasrem, align 8 + %"$gascmp_106" = icmp ugt i64 1, %"$gasrem_105" + br i1 %"$gascmp_106", label %"$out_of_gas_107", label %"$have_gas_108" + +"$out_of_gas_107": ; preds = %"$have_gas_98" + call void @_out_of_gas() + br label %"$have_gas_108" + +"$have_gas_108": ; preds = %"$out_of_gas_107", %"$have_gas_98" + %"$consume_109" = sub i64 %"$gasrem_105", 1 + store i64 %"$consume_109", i64* @_gasrem, align 8 + %total_app = alloca %Int32, align 8 + %"$gasrem_110" = load i64, i64* @_gasrem, align 8 + %"$gascmp_111" = icmp ugt i64 1, %"$gasrem_110" + br i1 %"$gascmp_111", label %"$out_of_gas_112", label %"$have_gas_113" + +"$out_of_gas_112": ; preds = %"$have_gas_108" + call void @_out_of_gas() + br label %"$have_gas_113" + +"$have_gas_113": ; preds = %"$out_of_gas_112", %"$have_gas_108" + %"$consume_114" = sub i64 %"$gasrem_110", 1 + store i64 %"$consume_114", i64* @_gasrem, align 8 + %"$partial_app1_1" = alloca %Int32, align 8 + %"$partial_app1_115" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %partial_app1, align 8 + %"$partial_app1_fptr_116" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_app1_115", 0 + %"$partial_app1_envptr_117" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_app1_115", 1 + %"$partial_app1_call_118" = call %Int32 %"$partial_app1_fptr_116"(i8* %"$partial_app1_envptr_117", %Int32 %x2) + store %Int32 %"$partial_app1_call_118", %Int32* %"$partial_app1_1", align 4 + %"$$partial_app1_1_119" = load %Int32, %Int32* %"$partial_app1_1", align 4 + store %Int32 %"$$partial_app1_1_119", %Int32* %total_app, align 4 + %"$gasrem_120" = load i64, i64* @_gasrem, align 8 + %"$gascmp_121" = icmp ugt i64 1, %"$gasrem_120" + br i1 %"$gascmp_121", label %"$out_of_gas_122", label %"$have_gas_123" + +"$out_of_gas_122": ; preds = %"$have_gas_113" + call void @_out_of_gas() + br label %"$have_gas_123" + +"$have_gas_123": ; preds = %"$out_of_gas_122", %"$have_gas_113" + %"$consume_124" = sub i64 %"$gasrem_120", 1 + store i64 %"$consume_124", i64* @_gasrem, align 8 + %y = alloca %Int32, align 8 + %"$gasrem_125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_126" = icmp ugt i64 4, %"$gasrem_125" + br i1 %"$gascmp_126", label %"$out_of_gas_127", label %"$have_gas_128" + +"$out_of_gas_127": ; preds = %"$have_gas_123" + call void @_out_of_gas() + br label %"$have_gas_128" + +"$have_gas_128": ; preds = %"$out_of_gas_127", %"$have_gas_123" + %"$consume_129" = sub i64 %"$gasrem_125", 4 + store i64 %"$consume_129", i64* @_gasrem, align 8 + %"$total_app_130" = load %Int32, %Int32* %total_app, align 4 + %"$add_call_131" = call %Int32 @_add_Int32(%Int32 %x1, %Int32 %"$total_app_130") + store %Int32 %"$add_call_131", %Int32* %y, align 4 + %"$_literal_cost_y_132" = alloca %Int32, align 8 + %"$y_133" = load %Int32, %Int32* %y, align 4 + store %Int32 %"$y_133", %Int32* %"$_literal_cost_y_132", align 4 + %"$$_literal_cost_y_132_134" = bitcast %Int32* %"$_literal_cost_y_132" to i8* + %"$_literal_cost_call_135" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_9", i8* %"$$_literal_cost_y_132_134") + %"$gasrem_136" = load i64, i64* @_gasrem, align 8 + %"$gascmp_137" = icmp ugt i64 %"$_literal_cost_call_135", %"$gasrem_136" + br i1 %"$gascmp_137", label %"$out_of_gas_138", label %"$have_gas_139" + +"$out_of_gas_138": ; preds = %"$have_gas_128" + call void @_out_of_gas() + br label %"$have_gas_139" + +"$have_gas_139": ; preds = %"$out_of_gas_138", %"$have_gas_128" + %"$consume_140" = sub i64 %"$gasrem_136", %"$_literal_cost_call_135" + store i64 %"$consume_140", i64* @_gasrem, align 8 + %"$execptr_load_141" = load i8*, i8** @_execptr, align 8 + %"$y_143" = load %Int32, %Int32* %y, align 4 + %"$update_value_144" = alloca %Int32, align 8 + store %Int32 %"$y_143", %Int32* %"$update_value_144", align 4 + %"$update_value_145" = bitcast %Int32* %"$update_value_144" to i8* + call void @_update_field(i8* %"$execptr_load_141", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_142", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_9", i32 0, i8* null, i8* %"$update_value_145") + ret void +} + +declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) + +define void @dummy(i8* %0) { +entry: + %"$_amount_147" = getelementptr i8, i8* %0, i32 0 + %"$_amount_148" = bitcast i8* %"$_amount_147" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_148", align 8 + %"$_origin_149" = getelementptr i8, i8* %0, i32 16 + %"$_origin_150" = bitcast i8* %"$_origin_149" to [20 x i8]* + %"$_sender_151" = getelementptr i8, i8* %0, i32 36 + %"$_sender_152" = bitcast i8* %"$_sender_151" to [20 x i8]* + %"$x1_153" = getelementptr i8, i8* %0, i32 56 + %"$x1_154" = bitcast i8* %"$x1_153" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_154", align 4 + %"$x2_155" = getelementptr i8, i8* %0, i32 60 + %"$x2_156" = bitcast i8* %"$x2_155" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_156", align 4 + call void @"$dummy_87"(%Uint128 %_amount, [20 x i8]* %"$_origin_150", [20 x i8]* %"$_sender_152", %Int32 %x1, %Int32 %x2) + ret void +} diff --git a/tests/codegen/contr/gold/uncurry3.scilla.gold b/tests/codegen/contr/gold/uncurry3.scilla.gold new file mode 100644 index 00000000..dbcbf5bf --- /dev/null +++ b/tests/codegen/contr/gold/uncurry3.scilla.gold @@ -0,0 +1,789 @@ + + +; gas_remaining: 4001999 +; ModuleID = 'SimpleUnuccury3' +source_filename = "SimpleUnuccury3" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" + +%"$TyDescrTy_PrimTyp_21" = type { i32, i32 } +%_TyDescrTy_Typ = type { i32, i8* } +%"$TyDescr_AddrTyp_57" = type { i32, %"$TyDescr_AddrFieldTyp_56"* } +%"$TyDescr_AddrFieldTyp_56" = type { %TyDescrString, %_TyDescrTy_Typ* } +%TyDescrString = type { i8*, i32 } +%Int32 = type { i32 } +%Uint32 = type { i32 } +%"$ParamDescr_396" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%ParamDescrString = type { i8*, i32 } +%"$TransDescr_397" = type { %ParamDescrString, i32, %"$ParamDescr_396"* } +%"$$fundef_19_env_60" = type {} +%"$$fundef_8_env_61" = type {} +%"$$fundef_12_env_62" = type { %Int32 } +%"$$fundef_10_env_63" = type {} +%"$$fundef_16_env_64" = type { %Int32 } +%"$$fundef_14_env_65" = type {} +%Uint128 = type { i128 } +%TName_uncurry3.T = type { i8, %CName_uncurry3.C1*, %CName_uncurry3.C2* } +%CName_uncurry3.C1 = type <{ i8, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } }> +%CName_uncurry3.C2 = type <{ i8, %TName_Bool* }> +%TName_Bool = type { i8, %CName_True*, %CName_False* } +%CName_True = type <{ i8 }> +%CName_False = type <{ i8 }> + +@_execptr = global i8* null +@_gasrem = global i64 0 +@"$TyDescr_Int32_Prim_22" = global %"$TyDescrTy_PrimTyp_21" zeroinitializer +@"$TyDescr_Int32_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Int32_Prim_22" to i8*) } +@"$TyDescr_Uint32_Prim_24" = global %"$TyDescrTy_PrimTyp_21" { i32 1, i32 0 } +@"$TyDescr_Uint32_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Uint32_Prim_24" to i8*) } +@"$TyDescr_Int64_Prim_26" = global %"$TyDescrTy_PrimTyp_21" { i32 0, i32 1 } +@"$TyDescr_Int64_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Int64_Prim_26" to i8*) } +@"$TyDescr_Uint64_Prim_28" = global %"$TyDescrTy_PrimTyp_21" { i32 1, i32 1 } +@"$TyDescr_Uint64_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Uint64_Prim_28" to i8*) } +@"$TyDescr_Int128_Prim_30" = global %"$TyDescrTy_PrimTyp_21" { i32 0, i32 2 } +@"$TyDescr_Int128_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Int128_Prim_30" to i8*) } +@"$TyDescr_Uint128_Prim_32" = global %"$TyDescrTy_PrimTyp_21" { i32 1, i32 2 } +@"$TyDescr_Uint128_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Uint128_Prim_32" to i8*) } +@"$TyDescr_Int256_Prim_34" = global %"$TyDescrTy_PrimTyp_21" { i32 0, i32 3 } +@"$TyDescr_Int256_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Int256_Prim_34" to i8*) } +@"$TyDescr_Uint256_Prim_36" = global %"$TyDescrTy_PrimTyp_21" { i32 1, i32 3 } +@"$TyDescr_Uint256_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Uint256_Prim_36" to i8*) } +@"$TyDescr_String_Prim_38" = global %"$TyDescrTy_PrimTyp_21" { i32 2, i32 0 } +@"$TyDescr_String_39" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_String_Prim_38" to i8*) } +@"$TyDescr_Bnum_Prim_40" = global %"$TyDescrTy_PrimTyp_21" { i32 3, i32 0 } +@"$TyDescr_Bnum_41" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Bnum_Prim_40" to i8*) } +@"$TyDescr_Message_Prim_42" = global %"$TyDescrTy_PrimTyp_21" { i32 4, i32 0 } +@"$TyDescr_Message_43" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Message_Prim_42" to i8*) } +@"$TyDescr_Event_Prim_44" = global %"$TyDescrTy_PrimTyp_21" { i32 5, i32 0 } +@"$TyDescr_Event_45" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Event_Prim_44" to i8*) } +@"$TyDescr_Exception_Prim_46" = global %"$TyDescrTy_PrimTyp_21" { i32 6, i32 0 } +@"$TyDescr_Exception_47" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Exception_Prim_46" to i8*) } +@"$TyDescr_Bystr_Prim_48" = global %"$TyDescrTy_PrimTyp_21" { i32 7, i32 0 } +@"$TyDescr_Bystr_49" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Bystr_Prim_48" to i8*) } +@"$TyDescr_Bystr20_Prim_50" = global %"$TyDescrTy_PrimTyp_21" { i32 8, i32 20 } +@"$TyDescr_Bystr20_51" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_21"* @"$TyDescr_Bystr20_Prim_50" to i8*) } +@"$TyDescr_Addr_58" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_57"* @"$TyDescr_AddrFields_59" to i8*) } +@"$TyDescr_AddrFields_59" = unnamed_addr constant %"$TyDescr_AddrTyp_57" { i32 -1, %"$TyDescr_AddrFieldTyp_56"* null } +@uncurry3.uncur_lib_func1 = global { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } zeroinitializer +@uncurry3.uncur_lib_func2 = global { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } zeroinitializer +@uncurry3.uncur_lib_func3 = global { %Int32 (i8*, %Int32, %Int32)*, i8* } zeroinitializer +@_cparam__scilla_version = global %Uint32 zeroinitializer +@_cparam__this_address = global [20 x i8] zeroinitializer +@_cparam__creation_block = global i8* null +@"$res_181" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_266" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_339" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_381" = unnamed_addr constant [4 x i8] c"res\00" +@_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_45", %_TyDescrTy_Typ* @"$TyDescr_Int64_27", %_TyDescrTy_Typ* @"$TyDescr_Addr_58", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_51", %_TyDescrTy_Typ* @"$TyDescr_Uint256_37", %_TyDescrTy_Typ* @"$TyDescr_Uint32_25", %_TyDescrTy_Typ* @"$TyDescr_Uint64_29", %_TyDescrTy_Typ* @"$TyDescr_Bnum_41", %_TyDescrTy_Typ* @"$TyDescr_Uint128_33", %_TyDescrTy_Typ* @"$TyDescr_Exception_47", %_TyDescrTy_Typ* @"$TyDescr_String_39", %_TyDescrTy_Typ* @"$TyDescr_Int256_35", %_TyDescrTy_Typ* @"$TyDescr_Int128_31", %_TyDescrTy_Typ* @"$TyDescr_Bystr_49", %_TyDescrTy_Typ* @"$TyDescr_Message_43", %_TyDescrTy_Typ* @"$TyDescr_Int32_23"] +@_tydescr_table_length = constant i32 16 +@"$pname__scilla_version_398" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_399" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_400" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_396"] [%"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_398", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_25" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_399", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_51" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_400", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_41" }] +@_contract_parameters_length = constant i32 3 +@"$tpname__amount_401" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_402" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_403" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_404" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_405" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy1_406" = unnamed_addr constant [5 x %"$ParamDescr_396"] [%"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_401", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_33" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_402", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_403", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_404", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_405", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }] +@"$tname_dummy1_407" = unnamed_addr constant [6 x i8] c"dummy1" +@"$tpname__amount_408" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_409" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_410" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_411" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_412" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy2_413" = unnamed_addr constant [5 x %"$ParamDescr_396"] [%"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_408", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_33" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_409", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_410", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_411", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_412", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }] +@"$tname_dummy2_414" = unnamed_addr constant [6 x i8] c"dummy2" +@"$tpname__amount_415" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_416" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_417" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_418" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_419" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy3_420" = unnamed_addr constant [5 x %"$ParamDescr_396"] [%"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_415", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_33" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_416", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_417", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_58" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_418", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }, %"$ParamDescr_396" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_419", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_23" }] +@"$tname_dummy3_421" = unnamed_addr constant [6 x i8] c"dummy3" +@_transition_parameters = constant [3 x %"$TransDescr_397"] [%"$TransDescr_397" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_dummy1_407", i32 0, i32 0), i32 6 }, i32 5, %"$ParamDescr_396"* getelementptr inbounds ([5 x %"$ParamDescr_396"], [5 x %"$ParamDescr_396"]* @"$tparams_dummy1_406", i32 0, i32 0) }, %"$TransDescr_397" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_dummy2_414", i32 0, i32 0), i32 6 }, i32 5, %"$ParamDescr_396"* getelementptr inbounds ([5 x %"$ParamDescr_396"], [5 x %"$ParamDescr_396"]* @"$tparams_dummy2_413", i32 0, i32 0) }, %"$TransDescr_397" { %ParamDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$tname_dummy3_421", i32 0, i32 0), i32 6 }, i32 5, %"$ParamDescr_396"* getelementptr inbounds ([5 x %"$ParamDescr_396"], [5 x %"$ParamDescr_396"]* @"$tparams_dummy3_420", i32 0, i32 0) }] +@_transition_parameters_length = constant i32 3 + +define internal %Int32 @"$fundef_19"(%"$$fundef_19_env_60"* %0, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %1) { +entry: + %"$retval_20" = alloca %Int32, align 8 + %"$gasrem_115" = load i64, i64* @_gasrem, align 8 + %"$gascmp_116" = icmp ugt i64 1, %"$gasrem_115" + br i1 %"$gascmp_116", label %"$out_of_gas_117", label %"$have_gas_118" + +"$out_of_gas_117": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_118" + +"$have_gas_118": ; preds = %"$out_of_gas_117", %entry + %"$consume_119" = sub i64 %"$gasrem_115", 1 + store i64 %"$consume_119", i64* @_gasrem, align 8 + %n1 = alloca %Int32, align 8 + %"$gasrem_120" = load i64, i64* @_gasrem, align 8 + %"$gascmp_121" = icmp ugt i64 1, %"$gasrem_120" + br i1 %"$gascmp_121", label %"$out_of_gas_122", label %"$have_gas_123" + +"$out_of_gas_122": ; preds = %"$have_gas_118" + call void @_out_of_gas() + br label %"$have_gas_123" + +"$have_gas_123": ; preds = %"$out_of_gas_122", %"$have_gas_118" + %"$consume_124" = sub i64 %"$gasrem_120", 1 + store i64 %"$consume_124", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* %n1, align 4 + %"$gasrem_125" = load i64, i64* @_gasrem, align 8 + %"$gascmp_126" = icmp ugt i64 1, %"$gasrem_125" + br i1 %"$gascmp_126", label %"$out_of_gas_127", label %"$have_gas_128" + +"$out_of_gas_127": ; preds = %"$have_gas_123" + call void @_out_of_gas() + br label %"$have_gas_128" + +"$have_gas_128": ; preds = %"$out_of_gas_127", %"$have_gas_123" + %"$consume_129" = sub i64 %"$gasrem_125", 1 + store i64 %"$consume_129", i64* @_gasrem, align 8 + %n2 = alloca %Int32, align 8 + %"$gasrem_130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_131" = icmp ugt i64 1, %"$gasrem_130" + br i1 %"$gascmp_131", label %"$out_of_gas_132", label %"$have_gas_133" + +"$out_of_gas_132": ; preds = %"$have_gas_128" + call void @_out_of_gas() + br label %"$have_gas_133" + +"$have_gas_133": ; preds = %"$out_of_gas_132", %"$have_gas_128" + %"$consume_134" = sub i64 %"$gasrem_130", 1 + store i64 %"$consume_134", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* %n2, align 4 + %"$gasrem_135" = load i64, i64* @_gasrem, align 8 + %"$gascmp_136" = icmp ugt i64 1, %"$gasrem_135" + br i1 %"$gascmp_136", label %"$out_of_gas_137", label %"$have_gas_138" + +"$out_of_gas_137": ; preds = %"$have_gas_133" + call void @_out_of_gas() + br label %"$have_gas_138" + +"$have_gas_138": ; preds = %"$out_of_gas_137", %"$have_gas_133" + %"$consume_139" = sub i64 %"$gasrem_135", 1 + store i64 %"$consume_139", i64* @_gasrem, align 8 + %"$f__5" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$f__fptr_140" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %1, 0 + %"$f__envptr_141" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %1, 1 + %"$n1_142" = load %Int32, %Int32* %n1, align 4 + %"$f__call_143" = call { %Int32 (i8*, %Int32)*, i8* } %"$f__fptr_140"(i8* %"$f__envptr_141", %Int32 %"$n1_142") + store { %Int32 (i8*, %Int32)*, i8* } %"$f__call_143", { %Int32 (i8*, %Int32)*, i8* }* %"$f__5", align 8 + %"$f__6" = alloca %Int32, align 8 + %"$$f__5_144" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$f__5", align 8 + %"$$f__5_fptr_145" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f__5_144", 0 + %"$$f__5_envptr_146" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f__5_144", 1 + %"$n2_147" = load %Int32, %Int32* %n2, align 4 + %"$$f__5_call_148" = call %Int32 %"$$f__5_fptr_145"(i8* %"$$f__5_envptr_146", %Int32 %"$n2_147") + store %Int32 %"$$f__5_call_148", %Int32* %"$f__6", align 4 + %"$$f__6_149" = load %Int32, %Int32* %"$f__6", align 4 + store %Int32 %"$$f__6_149", %Int32* %"$retval_20", align 4 + %"$$retval_20_150" = load %Int32, %Int32* %"$retval_20", align 4 + ret %Int32 %"$$retval_20_150" +} + +define internal %Int32 @"$fundef_8"(%"$$fundef_8_env_61"* %0, %Int32 %1, %Int32 %2) { +entry: + %"$retval_9" = alloca %Int32, align 8 + %"$gasrem_108" = load i64, i64* @_gasrem, align 8 + %"$gascmp_109" = icmp ugt i64 4, %"$gasrem_108" + br i1 %"$gascmp_109", label %"$out_of_gas_110", label %"$have_gas_111" + +"$out_of_gas_110": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_111" + +"$have_gas_111": ; preds = %"$out_of_gas_110", %entry + %"$consume_112" = sub i64 %"$gasrem_108", 4 + store i64 %"$consume_112", i64* @_gasrem, align 8 + %"$add_call_113" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %2) + store %Int32 %"$add_call_113", %Int32* %"$retval_9", align 4 + %"$$retval_9_114" = load %Int32, %Int32* %"$retval_9", align 4 + ret %Int32 %"$$retval_9_114" +} + +define internal %Int32 @"$fundef_12"(%"$$fundef_12_env_62"* %0, %Int32 %1) { +entry: + %"$$fundef_12_env_a_98" = getelementptr inbounds %"$$fundef_12_env_62", %"$$fundef_12_env_62"* %0, i32 0, i32 0 + %"$a_envload_99" = load %Int32, %Int32* %"$$fundef_12_env_a_98", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_99", %Int32* %a, align 4 + %"$retval_13" = alloca %Int32, align 8 + %"$gasrem_100" = load i64, i64* @_gasrem, align 8 + %"$gascmp_101" = icmp ugt i64 4, %"$gasrem_100" + br i1 %"$gascmp_101", label %"$out_of_gas_102", label %"$have_gas_103" + +"$out_of_gas_102": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_103" + +"$have_gas_103": ; preds = %"$out_of_gas_102", %entry + %"$consume_104" = sub i64 %"$gasrem_100", 4 + store i64 %"$consume_104", i64* @_gasrem, align 8 + %"$a_105" = load %Int32, %Int32* %a, align 4 + %"$add_call_106" = call %Int32 @_add_Int32(%Int32 %"$a_105", %Int32 %1) + store %Int32 %"$add_call_106", %Int32* %"$retval_13", align 4 + %"$$retval_13_107" = load %Int32, %Int32* %"$retval_13", align 4 + ret %Int32 %"$$retval_13_107" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_10"(%"$$fundef_10_env_63"* %0, %Int32 %1) { +entry: + %"$retval_11" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_87" = load i64, i64* @_gasrem, align 8 + %"$gascmp_88" = icmp ugt i64 1, %"$gasrem_87" + br i1 %"$gascmp_88", label %"$out_of_gas_89", label %"$have_gas_90" + +"$out_of_gas_89": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_90" + +"$have_gas_90": ; preds = %"$out_of_gas_89", %entry + %"$consume_91" = sub i64 %"$gasrem_87", 1 + store i64 %"$consume_91", i64* @_gasrem, align 8 + %"$$fundef_12_envp_92_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_12_envp_92_salloc" = call i8* @_salloc(i8* %"$$fundef_12_envp_92_load", i64 4) + %"$$fundef_12_envp_92" = bitcast i8* %"$$fundef_12_envp_92_salloc" to %"$$fundef_12_env_62"* + %"$$fundef_12_env_voidp_94" = bitcast %"$$fundef_12_env_62"* %"$$fundef_12_envp_92" to i8* + %"$$fundef_12_cloval_95" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_12_env_62"*, %Int32)* @"$fundef_12" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_12_env_voidp_94", 1 + %"$$fundef_12_env_a_96" = getelementptr inbounds %"$$fundef_12_env_62", %"$$fundef_12_env_62"* %"$$fundef_12_envp_92", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_12_env_a_96", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_12_cloval_95", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_11", align 8 + %"$$retval_11_97" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_11", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_11_97" +} + +define internal %Int32 @"$fundef_16"(%"$$fundef_16_env_64"* %0, %Int32 %1) { +entry: + %"$$fundef_16_env_a_77" = getelementptr inbounds %"$$fundef_16_env_64", %"$$fundef_16_env_64"* %0, i32 0, i32 0 + %"$a_envload_78" = load %Int32, %Int32* %"$$fundef_16_env_a_77", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_78", %Int32* %a, align 4 + %"$retval_17" = alloca %Int32, align 8 + %"$gasrem_79" = load i64, i64* @_gasrem, align 8 + %"$gascmp_80" = icmp ugt i64 4, %"$gasrem_79" + br i1 %"$gascmp_80", label %"$out_of_gas_81", label %"$have_gas_82" + +"$out_of_gas_81": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_82" + +"$have_gas_82": ; preds = %"$out_of_gas_81", %entry + %"$consume_83" = sub i64 %"$gasrem_79", 4 + store i64 %"$consume_83", i64* @_gasrem, align 8 + %"$a_84" = load %Int32, %Int32* %a, align 4 + %"$add_call_85" = call %Int32 @_add_Int32(%Int32 %"$a_84", %Int32 %1) + store %Int32 %"$add_call_85", %Int32* %"$retval_17", align 4 + %"$$retval_17_86" = load %Int32, %Int32* %"$retval_17", align 4 + ret %Int32 %"$$retval_17_86" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_14"(%"$$fundef_14_env_65"* %0, %Int32 %1) { +entry: + %"$retval_15" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_66" = load i64, i64* @_gasrem, align 8 + %"$gascmp_67" = icmp ugt i64 1, %"$gasrem_66" + br i1 %"$gascmp_67", label %"$out_of_gas_68", label %"$have_gas_69" + +"$out_of_gas_68": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_69" + +"$have_gas_69": ; preds = %"$out_of_gas_68", %entry + %"$consume_70" = sub i64 %"$gasrem_66", 1 + store i64 %"$consume_70", i64* @_gasrem, align 8 + %"$$fundef_16_envp_71_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_16_envp_71_salloc" = call i8* @_salloc(i8* %"$$fundef_16_envp_71_load", i64 4) + %"$$fundef_16_envp_71" = bitcast i8* %"$$fundef_16_envp_71_salloc" to %"$$fundef_16_env_64"* + %"$$fundef_16_env_voidp_73" = bitcast %"$$fundef_16_env_64"* %"$$fundef_16_envp_71" to i8* + %"$$fundef_16_cloval_74" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_16_env_64"*, %Int32)* @"$fundef_16" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_16_env_voidp_73", 1 + %"$$fundef_16_env_a_75" = getelementptr inbounds %"$$fundef_16_env_64", %"$$fundef_16_env_64"* %"$$fundef_16_envp_71", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_16_env_a_75", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_16_cloval_74", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_15", align 8 + %"$$retval_15_76" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_15", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_15_76" +} + +declare void @_out_of_gas() + +declare i8* @_salloc(i8*, i64) + +declare %Int32 @_add_Int32(%Int32, %Int32) + +define void @_init_libs() { +entry: + %"$gasrem_151" = load i64, i64* @_gasrem, align 8 + %"$gascmp_152" = icmp ugt i64 1, %"$gasrem_151" + br i1 %"$gascmp_152", label %"$out_of_gas_153", label %"$have_gas_154" + +"$out_of_gas_153": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_154" + +"$have_gas_154": ; preds = %"$out_of_gas_153", %entry + %"$consume_155" = sub i64 %"$gasrem_151", 1 + store i64 %"$consume_155", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_14_env_65"*, %Int32)* @"$fundef_14" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry3.uncur_lib_func1, align 8 + %"$gasrem_159" = load i64, i64* @_gasrem, align 8 + %"$gascmp_160" = icmp ugt i64 1, %"$gasrem_159" + br i1 %"$gascmp_160", label %"$out_of_gas_161", label %"$have_gas_162" + +"$out_of_gas_161": ; preds = %"$have_gas_154" + call void @_out_of_gas() + br label %"$have_gas_162" + +"$have_gas_162": ; preds = %"$out_of_gas_161", %"$have_gas_154" + %"$consume_163" = sub i64 %"$gasrem_159", 1 + store i64 %"$consume_163", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_10_env_63"*, %Int32)* @"$fundef_10" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry3.uncur_lib_func2, align 8 + %"$gasrem_167" = load i64, i64* @_gasrem, align 8 + %"$gascmp_168" = icmp ugt i64 2, %"$gasrem_167" + br i1 %"$gascmp_168", label %"$out_of_gas_169", label %"$have_gas_170" + +"$out_of_gas_169": ; preds = %"$have_gas_162" + call void @_out_of_gas() + br label %"$have_gas_170" + +"$have_gas_170": ; preds = %"$out_of_gas_169", %"$have_gas_162" + %"$consume_171" = sub i64 %"$gasrem_167", 2 + store i64 %"$consume_171", i64* @_gasrem, align 8 + store { %Int32 (i8*, %Int32, %Int32)*, i8* } { %Int32 (i8*, %Int32, %Int32)* bitcast (%Int32 (%"$$fundef_8_env_61"*, %Int32, %Int32)* @"$fundef_8" to %Int32 (i8*, %Int32, %Int32)*), i8* null }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* @uncurry3.uncur_lib_func3, align 8 + ret void +} + +define void @_init_state() { +entry: + %"$res_18" = alloca %Int32, align 8 + %"$gasrem_175" = load i64, i64* @_gasrem, align 8 + %"$gascmp_176" = icmp ugt i64 1, %"$gasrem_175" + br i1 %"$gascmp_176", label %"$out_of_gas_177", label %"$have_gas_178" + +"$out_of_gas_177": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_178" + +"$have_gas_178": ; preds = %"$out_of_gas_177", %entry + %"$consume_179" = sub i64 %"$gasrem_175", 1 + store i64 %"$consume_179", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %"$res_18", align 4 + %"$execptr_load_180" = load i8*, i8** @_execptr, align 8 + %"$$res_18_182" = load %Int32, %Int32* %"$res_18", align 4 + %"$update_value_183" = alloca %Int32, align 8 + store %Int32 %"$$res_18_182", %Int32* %"$update_value_183", align 4 + %"$update_value_184" = bitcast %Int32* %"$update_value_183" to i8* + call void @_update_field(i8* %"$execptr_load_180", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_181", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_23", i32 0, i8* null, i8* %"$update_value_184") + ret void +} + +declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) + +define internal void @"$dummy1_185"(%Uint128 %_amount, [20 x i8]* %"$_origin_186", [20 x i8]* %"$_sender_187", %Int32 %x1, %Int32 %x2) { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_186", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_187", align 1 + %"$gasrem_188" = load i64, i64* @_gasrem, align 8 + %"$gascmp_189" = icmp ugt i64 1, %"$gasrem_188" + br i1 %"$gascmp_189", label %"$out_of_gas_190", label %"$have_gas_191" + +"$out_of_gas_190": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_191" + +"$have_gas_191": ; preds = %"$out_of_gas_190", %entry + %"$consume_192" = sub i64 %"$gasrem_188", 1 + store i64 %"$consume_192", i64* @_gasrem, align 8 + %total_app = alloca %Int32, align 8 + %"$gasrem_193" = load i64, i64* @_gasrem, align 8 + %"$gascmp_194" = icmp ugt i64 1, %"$gasrem_193" + br i1 %"$gascmp_194", label %"$out_of_gas_195", label %"$have_gas_196" + +"$out_of_gas_195": ; preds = %"$have_gas_191" + call void @_out_of_gas() + br label %"$have_gas_196" + +"$have_gas_196": ; preds = %"$out_of_gas_195", %"$have_gas_191" + %"$consume_197" = sub i64 %"$gasrem_193", 1 + store i64 %"$consume_197", i64* @_gasrem, align 8 + %"$uncurry3.uncur_lib_func1_1" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$uncurry3.uncur_lib_func1_198" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry3.uncur_lib_func1, align 8 + %"$uncurry3.uncur_lib_func1_fptr_199" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func1_198", 0 + %"$uncurry3.uncur_lib_func1_envptr_200" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func1_198", 1 + %"$uncurry3.uncur_lib_func1_call_201" = call { %Int32 (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func1_fptr_199"(i8* %"$uncurry3.uncur_lib_func1_envptr_200", %Int32 %x1) + store { %Int32 (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func1_call_201", { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry3.uncur_lib_func1_1", align 8 + %"$uncurry3.uncur_lib_func1_2" = alloca %Int32, align 8 + %"$$uncurry3.uncur_lib_func1_1_202" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$uncurry3.uncur_lib_func1_1", align 8 + %"$$uncurry3.uncur_lib_func1_1_fptr_203" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry3.uncur_lib_func1_1_202", 0 + %"$$uncurry3.uncur_lib_func1_1_envptr_204" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$uncurry3.uncur_lib_func1_1_202", 1 + %"$$uncurry3.uncur_lib_func1_1_call_205" = call %Int32 %"$$uncurry3.uncur_lib_func1_1_fptr_203"(i8* %"$$uncurry3.uncur_lib_func1_1_envptr_204", %Int32 %x2) + store %Int32 %"$$uncurry3.uncur_lib_func1_1_call_205", %Int32* %"$uncurry3.uncur_lib_func1_2", align 4 + %"$$uncurry3.uncur_lib_func1_2_206" = load %Int32, %Int32* %"$uncurry3.uncur_lib_func1_2", align 4 + store %Int32 %"$$uncurry3.uncur_lib_func1_2_206", %Int32* %total_app, align 4 + %"$gasrem_207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_208" = icmp ugt i64 1, %"$gasrem_207" + br i1 %"$gascmp_208", label %"$out_of_gas_209", label %"$have_gas_210" + +"$out_of_gas_209": ; preds = %"$have_gas_196" + call void @_out_of_gas() + br label %"$have_gas_210" + +"$have_gas_210": ; preds = %"$out_of_gas_209", %"$have_gas_196" + %"$consume_211" = sub i64 %"$gasrem_207", 1 + store i64 %"$consume_211", i64* @_gasrem, align 8 + %x = alloca %TName_uncurry3.T*, align 8 + %"$gasrem_212" = load i64, i64* @_gasrem, align 8 + %"$gascmp_213" = icmp ugt i64 1, %"$gasrem_212" + br i1 %"$gascmp_213", label %"$out_of_gas_214", label %"$have_gas_215" + +"$out_of_gas_214": ; preds = %"$have_gas_210" + call void @_out_of_gas() + br label %"$have_gas_215" + +"$have_gas_215": ; preds = %"$out_of_gas_214", %"$have_gas_210" + %"$consume_216" = sub i64 %"$gasrem_212", 1 + store i64 %"$consume_216", i64* @_gasrem, align 8 + %"$uncurry3.uncur_lib_func1_217" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry3.uncur_lib_func1, align 8 + %"$adtval_218_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_218_salloc" = call i8* @_salloc(i8* %"$adtval_218_load", i64 17) + %"$adtval_218" = bitcast i8* %"$adtval_218_salloc" to %CName_uncurry3.C1* + %"$adtgep_219" = getelementptr inbounds %CName_uncurry3.C1, %CName_uncurry3.C1* %"$adtval_218", i32 0, i32 0 + store i8 0, i8* %"$adtgep_219", align 1 + %"$adtgep_220" = getelementptr inbounds %CName_uncurry3.C1, %CName_uncurry3.C1* %"$adtval_218", i32 0, i32 1 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func1_217", { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %"$adtgep_220", align 8 + %"$adtptr_221" = bitcast %CName_uncurry3.C1* %"$adtval_218" to %TName_uncurry3.T* + store %TName_uncurry3.T* %"$adtptr_221", %TName_uncurry3.T** %x, align 8 + %"$gasrem_222" = load i64, i64* @_gasrem, align 8 + %"$gascmp_223" = icmp ugt i64 2, %"$gasrem_222" + br i1 %"$gascmp_223", label %"$out_of_gas_224", label %"$have_gas_225" + +"$out_of_gas_224": ; preds = %"$have_gas_215" + call void @_out_of_gas() + br label %"$have_gas_225" + +"$have_gas_225": ; preds = %"$out_of_gas_224", %"$have_gas_215" + %"$consume_226" = sub i64 %"$gasrem_222", 2 + store i64 %"$consume_226", i64* @_gasrem, align 8 + %"$x_228" = load %TName_uncurry3.T*, %TName_uncurry3.T** %x, align 8 + %"$x_tag_229" = getelementptr inbounds %TName_uncurry3.T, %TName_uncurry3.T* %"$x_228", i32 0, i32 0 + %"$x_tag_230" = load i8, i8* %"$x_tag_229", align 1 + switch i8 %"$x_tag_230", label %"$default_231" [ + i8 0, label %"$uncurry3.C1_232" + ] + +"$uncurry3.C1_232": ; preds = %"$have_gas_225" + %"$x_233" = bitcast %TName_uncurry3.T* %"$x_228" to %CName_uncurry3.C1* + %"$v_gep_234" = getelementptr inbounds %CName_uncurry3.C1, %CName_uncurry3.C1* %"$x_233", i32 0, i32 1 + %"$v_load_235" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %"$v_gep_234", align 8 + %v = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$v_load_235", { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %v, align 8 + %"$gasrem_236" = load i64, i64* @_gasrem, align 8 + %"$gascmp_237" = icmp ugt i64 1, %"$gasrem_236" + br i1 %"$gascmp_237", label %"$out_of_gas_238", label %"$have_gas_239" + +"$out_of_gas_238": ; preds = %"$uncurry3.C1_232" + call void @_out_of_gas() + br label %"$have_gas_239" + +"$have_gas_239": ; preds = %"$out_of_gas_238", %"$uncurry3.C1_232" + %"$consume_240" = sub i64 %"$gasrem_236", 1 + store i64 %"$consume_240", i64* @_gasrem, align 8 + %x_ = alloca %Int32, align 8 + %"$gasrem_241" = load i64, i64* @_gasrem, align 8 + %"$gascmp_242" = icmp ugt i64 1, %"$gasrem_241" + br i1 %"$gascmp_242", label %"$out_of_gas_243", label %"$have_gas_244" + +"$out_of_gas_243": ; preds = %"$have_gas_239" + call void @_out_of_gas() + br label %"$have_gas_244" + +"$have_gas_244": ; preds = %"$out_of_gas_243", %"$have_gas_239" + %"$consume_245" = sub i64 %"$gasrem_241", 1 + store i64 %"$consume_245", i64* @_gasrem, align 8 + %"$v_3" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$v_246" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %v, align 8 + %"$v_fptr_247" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$v_246", 0 + %"$v_envptr_248" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$v_246", 1 + %"$total_app_249" = load %Int32, %Int32* %total_app, align 4 + %"$v_call_250" = call { %Int32 (i8*, %Int32)*, i8* } %"$v_fptr_247"(i8* %"$v_envptr_248", %Int32 %"$total_app_249") + store { %Int32 (i8*, %Int32)*, i8* } %"$v_call_250", { %Int32 (i8*, %Int32)*, i8* }* %"$v_3", align 8 + %"$v_4" = alloca %Int32, align 8 + %"$$v_3_251" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$v_3", align 8 + %"$$v_3_fptr_252" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$v_3_251", 0 + %"$$v_3_envptr_253" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$v_3_251", 1 + %"$$v_3_call_254" = call %Int32 %"$$v_3_fptr_252"(i8* %"$$v_3_envptr_253", %Int32 %x1) + store %Int32 %"$$v_3_call_254", %Int32* %"$v_4", align 4 + %"$$v_4_255" = load %Int32, %Int32* %"$v_4", align 4 + store %Int32 %"$$v_4_255", %Int32* %x_, align 4 + %"$_literal_cost_x__256" = alloca %Int32, align 8 + %"$x__257" = load %Int32, %Int32* %x_, align 4 + store %Int32 %"$x__257", %Int32* %"$_literal_cost_x__256", align 4 + %"$$_literal_cost_x__256_258" = bitcast %Int32* %"$_literal_cost_x__256" to i8* + %"$_literal_cost_call_259" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_23", i8* %"$$_literal_cost_x__256_258") + %"$gasrem_260" = load i64, i64* @_gasrem, align 8 + %"$gascmp_261" = icmp ugt i64 %"$_literal_cost_call_259", %"$gasrem_260" + br i1 %"$gascmp_261", label %"$out_of_gas_262", label %"$have_gas_263" + +"$out_of_gas_262": ; preds = %"$have_gas_244" + call void @_out_of_gas() + br label %"$have_gas_263" + +"$have_gas_263": ; preds = %"$out_of_gas_262", %"$have_gas_244" + %"$consume_264" = sub i64 %"$gasrem_260", %"$_literal_cost_call_259" + store i64 %"$consume_264", i64* @_gasrem, align 8 + %"$execptr_load_265" = load i8*, i8** @_execptr, align 8 + %"$x__267" = load %Int32, %Int32* %x_, align 4 + %"$update_value_268" = alloca %Int32, align 8 + store %Int32 %"$x__267", %Int32* %"$update_value_268", align 4 + %"$update_value_269" = bitcast %Int32* %"$update_value_268" to i8* + call void @_update_field(i8* %"$execptr_load_265", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_266", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_23", i32 0, i8* null, i8* %"$update_value_269") + br label %"$matchsucc_227" + +"$default_231": ; preds = %"$have_gas_225" + br label %"$joinp_0" + +"$joinp_0": ; preds = %"$default_231" + br label %"$matchsucc_227" + +"$matchsucc_227": ; preds = %"$have_gas_263", %"$joinp_0" + ret void +} + +declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) + +define void @dummy1(i8* %0) { +entry: + %"$_amount_271" = getelementptr i8, i8* %0, i32 0 + %"$_amount_272" = bitcast i8* %"$_amount_271" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_272", align 8 + %"$_origin_273" = getelementptr i8, i8* %0, i32 16 + %"$_origin_274" = bitcast i8* %"$_origin_273" to [20 x i8]* + %"$_sender_275" = getelementptr i8, i8* %0, i32 36 + %"$_sender_276" = bitcast i8* %"$_sender_275" to [20 x i8]* + %"$x1_277" = getelementptr i8, i8* %0, i32 56 + %"$x1_278" = bitcast i8* %"$x1_277" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_278", align 4 + %"$x2_279" = getelementptr i8, i8* %0, i32 60 + %"$x2_280" = bitcast i8* %"$x2_279" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_280", align 4 + call void @"$dummy1_185"(%Uint128 %_amount, [20 x i8]* %"$_origin_274", [20 x i8]* %"$_sender_276", %Int32 %x1, %Int32 %x2) + ret void +} + +define internal void @"$dummy2_281"(%Uint128 %_amount, [20 x i8]* %"$_origin_282", [20 x i8]* %"$_sender_283", %Int32 %x1, %Int32 %x2) { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_282", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_283", align 1 + %"$gasrem_284" = load i64, i64* @_gasrem, align 8 + %"$gascmp_285" = icmp ugt i64 1, %"$gasrem_284" + br i1 %"$gascmp_285", label %"$out_of_gas_286", label %"$have_gas_287" + +"$out_of_gas_286": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_287" + +"$have_gas_287": ; preds = %"$out_of_gas_286", %entry + %"$consume_288" = sub i64 %"$gasrem_284", 1 + store i64 %"$consume_288", i64* @_gasrem, align 8 + %"$gasrem_289" = load i64, i64* @_gasrem, align 8 + %"$gascmp_290" = icmp ugt i64 1, %"$gasrem_289" + br i1 %"$gascmp_290", label %"$out_of_gas_291", label %"$have_gas_292" + +"$out_of_gas_291": ; preds = %"$have_gas_287" + call void @_out_of_gas() + br label %"$have_gas_292" + +"$have_gas_292": ; preds = %"$out_of_gas_291", %"$have_gas_287" + %"$consume_293" = sub i64 %"$gasrem_289", 1 + store i64 %"$consume_293", i64* @_gasrem, align 8 + %big_func = alloca { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }, align 8 + %"$gasrem_294" = load i64, i64* @_gasrem, align 8 + %"$gascmp_295" = icmp ugt i64 1, %"$gasrem_294" + br i1 %"$gascmp_295", label %"$out_of_gas_296", label %"$have_gas_297" + +"$out_of_gas_296": ; preds = %"$have_gas_292" + call void @_out_of_gas() + br label %"$have_gas_297" + +"$have_gas_297": ; preds = %"$out_of_gas_296", %"$have_gas_292" + %"$consume_298" = sub i64 %"$gasrem_294", 1 + store i64 %"$consume_298", i64* @_gasrem, align 8 + %f = alloca { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }, align 8 + %"$gasrem_299" = load i64, i64* @_gasrem, align 8 + %"$gascmp_300" = icmp ugt i64 1, %"$gasrem_299" + br i1 %"$gascmp_300", label %"$out_of_gas_301", label %"$have_gas_302" + +"$out_of_gas_301": ; preds = %"$have_gas_297" + call void @_out_of_gas() + br label %"$have_gas_302" + +"$have_gas_302": ; preds = %"$out_of_gas_301", %"$have_gas_297" + %"$consume_303" = sub i64 %"$gasrem_299", 1 + store i64 %"$consume_303", i64* @_gasrem, align 8 + store { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* } { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })* bitcast (%Int32 (%"$$fundef_19_env_60"*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })* @"$fundef_19" to %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*), i8* null }, { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }* %f, align 8 + %"$gasrem_307" = load i64, i64* @_gasrem, align 8 + %"$gascmp_308" = icmp ugt i64 1, %"$gasrem_307" + br i1 %"$gascmp_308", label %"$out_of_gas_309", label %"$have_gas_310" + +"$out_of_gas_309": ; preds = %"$have_gas_302" + call void @_out_of_gas() + br label %"$have_gas_310" + +"$have_gas_310": ; preds = %"$out_of_gas_309", %"$have_gas_302" + %"$consume_311" = sub i64 %"$gasrem_307", 1 + store i64 %"$consume_311", i64* @_gasrem, align 8 + %"$f_312" = load { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }, { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }* %f, align 8 + store { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* } %"$f_312", { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }* %big_func, align 8 + %"$gasrem_313" = load i64, i64* @_gasrem, align 8 + %"$gascmp_314" = icmp ugt i64 1, %"$gasrem_313" + br i1 %"$gascmp_314", label %"$out_of_gas_315", label %"$have_gas_316" + +"$out_of_gas_315": ; preds = %"$have_gas_310" + call void @_out_of_gas() + br label %"$have_gas_316" + +"$have_gas_316": ; preds = %"$out_of_gas_315", %"$have_gas_310" + %"$consume_317" = sub i64 %"$gasrem_313", 1 + store i64 %"$consume_317", i64* @_gasrem, align 8 + %x = alloca %Int32, align 8 + %"$gasrem_318" = load i64, i64* @_gasrem, align 8 + %"$gascmp_319" = icmp ugt i64 1, %"$gasrem_318" + br i1 %"$gascmp_319", label %"$out_of_gas_320", label %"$have_gas_321" + +"$out_of_gas_320": ; preds = %"$have_gas_316" + call void @_out_of_gas() + br label %"$have_gas_321" + +"$have_gas_321": ; preds = %"$out_of_gas_320", %"$have_gas_316" + %"$consume_322" = sub i64 %"$gasrem_318", 1 + store i64 %"$consume_322", i64* @_gasrem, align 8 + %"$big_func_7" = alloca %Int32, align 8 + %"$big_func_323" = load { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }, { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* }* %big_func, align 8 + %"$big_func_fptr_324" = extractvalue { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* } %"$big_func_323", 0 + %"$big_func_envptr_325" = extractvalue { %Int32 (i8*, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* })*, i8* } %"$big_func_323", 1 + %"$uncurry3.uncur_lib_func2_326" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* @uncurry3.uncur_lib_func2, align 8 + %"$big_func_call_327" = call %Int32 %"$big_func_fptr_324"(i8* %"$big_func_envptr_325", { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$uncurry3.uncur_lib_func2_326") + store %Int32 %"$big_func_call_327", %Int32* %"$big_func_7", align 4 + %"$$big_func_7_328" = load %Int32, %Int32* %"$big_func_7", align 4 + store %Int32 %"$$big_func_7_328", %Int32* %x, align 4 + %"$_literal_cost_x_329" = alloca %Int32, align 8 + %"$x_330" = load %Int32, %Int32* %x, align 4 + store %Int32 %"$x_330", %Int32* %"$_literal_cost_x_329", align 4 + %"$$_literal_cost_x_329_331" = bitcast %Int32* %"$_literal_cost_x_329" to i8* + %"$_literal_cost_call_332" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_23", i8* %"$$_literal_cost_x_329_331") + %"$gasrem_333" = load i64, i64* @_gasrem, align 8 + %"$gascmp_334" = icmp ugt i64 %"$_literal_cost_call_332", %"$gasrem_333" + br i1 %"$gascmp_334", label %"$out_of_gas_335", label %"$have_gas_336" + +"$out_of_gas_335": ; preds = %"$have_gas_321" + call void @_out_of_gas() + br label %"$have_gas_336" + +"$have_gas_336": ; preds = %"$out_of_gas_335", %"$have_gas_321" + %"$consume_337" = sub i64 %"$gasrem_333", %"$_literal_cost_call_332" + store i64 %"$consume_337", i64* @_gasrem, align 8 + %"$execptr_load_338" = load i8*, i8** @_execptr, align 8 + %"$x_340" = load %Int32, %Int32* %x, align 4 + %"$update_value_341" = alloca %Int32, align 8 + store %Int32 %"$x_340", %Int32* %"$update_value_341", align 4 + %"$update_value_342" = bitcast %Int32* %"$update_value_341" to i8* + call void @_update_field(i8* %"$execptr_load_338", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_339", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_23", i32 0, i8* null, i8* %"$update_value_342") + ret void +} + +define void @dummy2(i8* %0) { +entry: + %"$_amount_344" = getelementptr i8, i8* %0, i32 0 + %"$_amount_345" = bitcast i8* %"$_amount_344" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_345", align 8 + %"$_origin_346" = getelementptr i8, i8* %0, i32 16 + %"$_origin_347" = bitcast i8* %"$_origin_346" to [20 x i8]* + %"$_sender_348" = getelementptr i8, i8* %0, i32 36 + %"$_sender_349" = bitcast i8* %"$_sender_348" to [20 x i8]* + %"$x1_350" = getelementptr i8, i8* %0, i32 56 + %"$x1_351" = bitcast i8* %"$x1_350" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_351", align 4 + %"$x2_352" = getelementptr i8, i8* %0, i32 60 + %"$x2_353" = bitcast i8* %"$x2_352" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_353", align 4 + call void @"$dummy2_281"(%Uint128 %_amount, [20 x i8]* %"$_origin_347", [20 x i8]* %"$_sender_349", %Int32 %x1, %Int32 %x2) + ret void +} + +define internal void @"$dummy3_354"(%Uint128 %_amount, [20 x i8]* %"$_origin_355", [20 x i8]* %"$_sender_356", %Int32 %x1, %Int32 %x2) { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_355", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_356", align 1 + %"$gasrem_357" = load i64, i64* @_gasrem, align 8 + %"$gascmp_358" = icmp ugt i64 1, %"$gasrem_357" + br i1 %"$gascmp_358", label %"$out_of_gas_359", label %"$have_gas_360" + +"$out_of_gas_359": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_360" + +"$have_gas_360": ; preds = %"$out_of_gas_359", %entry + %"$consume_361" = sub i64 %"$gasrem_357", 1 + store i64 %"$consume_361", i64* @_gasrem, align 8 + %total_app = alloca %Int32, align 8 + %"$gasrem_362" = load i64, i64* @_gasrem, align 8 + %"$gascmp_363" = icmp ugt i64 1, %"$gasrem_362" + br i1 %"$gascmp_363", label %"$out_of_gas_364", label %"$have_gas_365" + +"$out_of_gas_364": ; preds = %"$have_gas_360" + call void @_out_of_gas() + br label %"$have_gas_365" + +"$have_gas_365": ; preds = %"$out_of_gas_364", %"$have_gas_360" + %"$consume_366" = sub i64 %"$gasrem_362", 1 + store i64 %"$consume_366", i64* @_gasrem, align 8 + %"$uncurry3.uncur_lib_func3_367" = load { %Int32 (i8*, %Int32, %Int32)*, i8* }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* @uncurry3.uncur_lib_func3, align 8 + %"$uncurry3.uncur_lib_func3_fptr_368" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$uncurry3.uncur_lib_func3_367", 0 + %"$uncurry3.uncur_lib_func3_envptr_369" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$uncurry3.uncur_lib_func3_367", 1 + %"$uncurry3.uncur_lib_func3_call_370" = call %Int32 %"$uncurry3.uncur_lib_func3_fptr_368"(i8* %"$uncurry3.uncur_lib_func3_envptr_369", %Int32 %x1, %Int32 %x2) + store %Int32 %"$uncurry3.uncur_lib_func3_call_370", %Int32* %total_app, align 4 + %"$_literal_cost_total_app_371" = alloca %Int32, align 8 + %"$total_app_372" = load %Int32, %Int32* %total_app, align 4 + store %Int32 %"$total_app_372", %Int32* %"$_literal_cost_total_app_371", align 4 + %"$$_literal_cost_total_app_371_373" = bitcast %Int32* %"$_literal_cost_total_app_371" to i8* + %"$_literal_cost_call_374" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_23", i8* %"$$_literal_cost_total_app_371_373") + %"$gasrem_375" = load i64, i64* @_gasrem, align 8 + %"$gascmp_376" = icmp ugt i64 %"$_literal_cost_call_374", %"$gasrem_375" + br i1 %"$gascmp_376", label %"$out_of_gas_377", label %"$have_gas_378" + +"$out_of_gas_377": ; preds = %"$have_gas_365" + call void @_out_of_gas() + br label %"$have_gas_378" + +"$have_gas_378": ; preds = %"$out_of_gas_377", %"$have_gas_365" + %"$consume_379" = sub i64 %"$gasrem_375", %"$_literal_cost_call_374" + store i64 %"$consume_379", i64* @_gasrem, align 8 + %"$execptr_load_380" = load i8*, i8** @_execptr, align 8 + %"$total_app_382" = load %Int32, %Int32* %total_app, align 4 + %"$update_value_383" = alloca %Int32, align 8 + store %Int32 %"$total_app_382", %Int32* %"$update_value_383", align 4 + %"$update_value_384" = bitcast %Int32* %"$update_value_383" to i8* + call void @_update_field(i8* %"$execptr_load_380", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_381", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_23", i32 0, i8* null, i8* %"$update_value_384") + ret void +} + +define void @dummy3(i8* %0) { +entry: + %"$_amount_386" = getelementptr i8, i8* %0, i32 0 + %"$_amount_387" = bitcast i8* %"$_amount_386" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_387", align 8 + %"$_origin_388" = getelementptr i8, i8* %0, i32 16 + %"$_origin_389" = bitcast i8* %"$_origin_388" to [20 x i8]* + %"$_sender_390" = getelementptr i8, i8* %0, i32 36 + %"$_sender_391" = bitcast i8* %"$_sender_390" to [20 x i8]* + %"$x1_392" = getelementptr i8, i8* %0, i32 56 + %"$x1_393" = bitcast i8* %"$x1_392" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_393", align 4 + %"$x2_394" = getelementptr i8, i8* %0, i32 60 + %"$x2_395" = bitcast i8* %"$x2_394" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_395", align 4 + call void @"$dummy3_354"(%Uint128 %_amount, [20 x i8]* %"$_origin_389", [20 x i8]* %"$_sender_391", %Int32 %x1, %Int32 %x2) + ret void +} diff --git a/tests/codegen/contr/gold/uncurry4.scilla.gold b/tests/codegen/contr/gold/uncurry4.scilla.gold new file mode 100644 index 00000000..7fd8aa96 --- /dev/null +++ b/tests/codegen/contr/gold/uncurry4.scilla.gold @@ -0,0 +1,397 @@ + + +; gas_remaining: 4001999 +; ModuleID = 'SimpleUnuccury4' +source_filename = "SimpleUnuccury4" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" + +%"$TyDescrTy_PrimTyp_9" = type { i32, i32 } +%_TyDescrTy_Typ = type { i32, i8* } +%"$TyDescr_AddrTyp_45" = type { i32, %"$TyDescr_AddrFieldTyp_44"* } +%"$TyDescr_AddrFieldTyp_44" = type { %TyDescrString, %_TyDescrTy_Typ* } +%TyDescrString = type { i8*, i32 } +%Uint32 = type { i32 } +%"$ParamDescr_201" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%ParamDescrString = type { i8*, i32 } +%"$TransDescr_202" = type { %ParamDescrString, i32, %"$ParamDescr_201"* } +%"$$fundef_3_env_48" = type {} +%Int32 = type { i32 } +%"$$fundef_7_env_49" = type { %Int32 } +%"$$fundef_5_env_50" = type {} +%Uint128 = type { i128 } + +@_execptr = global i8* null +@_gasrem = global i64 0 +@"$TyDescr_Int32_Prim_10" = global %"$TyDescrTy_PrimTyp_9" zeroinitializer +@"$TyDescr_Int32_11" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Int32_Prim_10" to i8*) } +@"$TyDescr_Uint32_Prim_12" = global %"$TyDescrTy_PrimTyp_9" { i32 1, i32 0 } +@"$TyDescr_Uint32_13" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Uint32_Prim_12" to i8*) } +@"$TyDescr_Int64_Prim_14" = global %"$TyDescrTy_PrimTyp_9" { i32 0, i32 1 } +@"$TyDescr_Int64_15" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Int64_Prim_14" to i8*) } +@"$TyDescr_Uint64_Prim_16" = global %"$TyDescrTy_PrimTyp_9" { i32 1, i32 1 } +@"$TyDescr_Uint64_17" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Uint64_Prim_16" to i8*) } +@"$TyDescr_Int128_Prim_18" = global %"$TyDescrTy_PrimTyp_9" { i32 0, i32 2 } +@"$TyDescr_Int128_19" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Int128_Prim_18" to i8*) } +@"$TyDescr_Uint128_Prim_20" = global %"$TyDescrTy_PrimTyp_9" { i32 1, i32 2 } +@"$TyDescr_Uint128_21" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Uint128_Prim_20" to i8*) } +@"$TyDescr_Int256_Prim_22" = global %"$TyDescrTy_PrimTyp_9" { i32 0, i32 3 } +@"$TyDescr_Int256_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Int256_Prim_22" to i8*) } +@"$TyDescr_Uint256_Prim_24" = global %"$TyDescrTy_PrimTyp_9" { i32 1, i32 3 } +@"$TyDescr_Uint256_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Uint256_Prim_24" to i8*) } +@"$TyDescr_String_Prim_26" = global %"$TyDescrTy_PrimTyp_9" { i32 2, i32 0 } +@"$TyDescr_String_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_String_Prim_26" to i8*) } +@"$TyDescr_Bnum_Prim_28" = global %"$TyDescrTy_PrimTyp_9" { i32 3, i32 0 } +@"$TyDescr_Bnum_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Bnum_Prim_28" to i8*) } +@"$TyDescr_Message_Prim_30" = global %"$TyDescrTy_PrimTyp_9" { i32 4, i32 0 } +@"$TyDescr_Message_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Message_Prim_30" to i8*) } +@"$TyDescr_Event_Prim_32" = global %"$TyDescrTy_PrimTyp_9" { i32 5, i32 0 } +@"$TyDescr_Event_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Event_Prim_32" to i8*) } +@"$TyDescr_Exception_Prim_34" = global %"$TyDescrTy_PrimTyp_9" { i32 6, i32 0 } +@"$TyDescr_Exception_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Exception_Prim_34" to i8*) } +@"$TyDescr_Bystr_Prim_36" = global %"$TyDescrTy_PrimTyp_9" { i32 7, i32 0 } +@"$TyDescr_Bystr_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Bystr_Prim_36" to i8*) } +@"$TyDescr_Bystr20_Prim_38" = global %"$TyDescrTy_PrimTyp_9" { i32 8, i32 20 } +@"$TyDescr_Bystr20_39" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_9"* @"$TyDescr_Bystr20_Prim_38" to i8*) } +@"$TyDescr_Addr_46" = unnamed_addr constant %_TyDescrTy_Typ { i32 3, i8* bitcast (%"$TyDescr_AddrTyp_45"* @"$TyDescr_AddrFields_47" to i8*) } +@"$TyDescr_AddrFields_47" = unnamed_addr constant %"$TyDescr_AddrTyp_45" { i32 -1, %"$TyDescr_AddrFieldTyp_44"* null } +@_cparam__scilla_version = global %Uint32 zeroinitializer +@_cparam__this_address = global [20 x i8] zeroinitializer +@_cparam__creation_block = global i8* null +@"$res_85" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_145" = unnamed_addr constant [4 x i8] c"res\00" +@"$res_186" = unnamed_addr constant [4 x i8] c"res\00" +@_tydescr_table = constant [16 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_33", %_TyDescrTy_Typ* @"$TyDescr_Int64_15", %_TyDescrTy_Typ* @"$TyDescr_Addr_46", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39", %_TyDescrTy_Typ* @"$TyDescr_Uint256_25", %_TyDescrTy_Typ* @"$TyDescr_Uint32_13", %_TyDescrTy_Typ* @"$TyDescr_Uint64_17", %_TyDescrTy_Typ* @"$TyDescr_Bnum_29", %_TyDescrTy_Typ* @"$TyDescr_Uint128_21", %_TyDescrTy_Typ* @"$TyDescr_Exception_35", %_TyDescrTy_Typ* @"$TyDescr_String_27", %_TyDescrTy_Typ* @"$TyDescr_Int256_23", %_TyDescrTy_Typ* @"$TyDescr_Int128_19", %_TyDescrTy_Typ* @"$TyDescr_Bystr_37", %_TyDescrTy_Typ* @"$TyDescr_Message_31", %_TyDescrTy_Typ* @"$TyDescr_Int32_11"] +@_tydescr_table_length = constant i32 16 +@"$pname__scilla_version_203" = unnamed_addr constant [15 x i8] c"_scilla_version" +@"$pname__this_address_204" = unnamed_addr constant [13 x i8] c"_this_address" +@"$pname__creation_block_205" = unnamed_addr constant [15 x i8] c"_creation_block" +@_contract_parameters = constant [3 x %"$ParamDescr_201"] [%"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__scilla_version_203", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Uint32_13" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"$pname__this_address_204", i32 0, i32 0), i32 13 }, %_TyDescrTy_Typ* @"$TyDescr_Bystr20_39" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([15 x i8], [15 x i8]* @"$pname__creation_block_205", i32 0, i32 0), i32 15 }, %_TyDescrTy_Typ* @"$TyDescr_Bnum_29" }] +@_contract_parameters_length = constant i32 3 +@"$tpname__amount_206" = unnamed_addr constant [7 x i8] c"_amount" +@"$tpname__origin_207" = unnamed_addr constant [7 x i8] c"_origin" +@"$tpname__sender_208" = unnamed_addr constant [7 x i8] c"_sender" +@"$tpname_x1_209" = unnamed_addr constant [2 x i8] c"x1" +@"$tpname_x2_210" = unnamed_addr constant [2 x i8] c"x2" +@"$tparams_dummy_211" = unnamed_addr constant [5 x %"$ParamDescr_201"] [%"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__amount_206", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Uint128_21" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__origin_207", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"$tpname__sender_208", i32 0, i32 0), i32 7 }, %_TyDescrTy_Typ* @"$TyDescr_Addr_46" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x1_209", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_11" }, %"$ParamDescr_201" { %ParamDescrString { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"$tpname_x2_210", i32 0, i32 0), i32 2 }, %_TyDescrTy_Typ* @"$TyDescr_Int32_11" }] +@"$tname_dummy_212" = unnamed_addr constant [5 x i8] c"dummy" +@_transition_parameters = constant [1 x %"$TransDescr_202"] [%"$TransDescr_202" { %ParamDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$tname_dummy_212", i32 0, i32 0), i32 5 }, i32 5, %"$ParamDescr_201"* getelementptr inbounds ([5 x %"$ParamDescr_201"], [5 x %"$ParamDescr_201"]* @"$tparams_dummy_211", i32 0, i32 0) }] +@_transition_parameters_length = constant i32 1 + +define internal %Int32 @"$fundef_3"(%"$$fundef_3_env_48"* %0, %Int32 %1, %Int32 %2) { +entry: + %"$retval_4" = alloca %Int32, align 8 + %"$gasrem_72" = load i64, i64* @_gasrem, align 8 + %"$gascmp_73" = icmp ugt i64 4, %"$gasrem_72" + br i1 %"$gascmp_73", label %"$out_of_gas_74", label %"$have_gas_75" + +"$out_of_gas_74": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_75" + +"$have_gas_75": ; preds = %"$out_of_gas_74", %entry + %"$consume_76" = sub i64 %"$gasrem_72", 4 + store i64 %"$consume_76", i64* @_gasrem, align 8 + %"$add_call_77" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %2) + store %Int32 %"$add_call_77", %Int32* %"$retval_4", align 4 + %"$$retval_4_78" = load %Int32, %Int32* %"$retval_4", align 4 + ret %Int32 %"$$retval_4_78" +} + +define internal %Int32 @"$fundef_7"(%"$$fundef_7_env_49"* %0, %Int32 %1) { +entry: + %"$$fundef_7_env_a_62" = getelementptr inbounds %"$$fundef_7_env_49", %"$$fundef_7_env_49"* %0, i32 0, i32 0 + %"$a_envload_63" = load %Int32, %Int32* %"$$fundef_7_env_a_62", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_63", %Int32* %a, align 4 + %"$retval_8" = alloca %Int32, align 8 + %"$gasrem_64" = load i64, i64* @_gasrem, align 8 + %"$gascmp_65" = icmp ugt i64 4, %"$gasrem_64" + br i1 %"$gascmp_65", label %"$out_of_gas_66", label %"$have_gas_67" + +"$out_of_gas_66": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_67" + +"$have_gas_67": ; preds = %"$out_of_gas_66", %entry + %"$consume_68" = sub i64 %"$gasrem_64", 4 + store i64 %"$consume_68", i64* @_gasrem, align 8 + %"$a_69" = load %Int32, %Int32* %a, align 4 + %"$add_call_70" = call %Int32 @_add_Int32(%Int32 %"$a_69", %Int32 %1) + store %Int32 %"$add_call_70", %Int32* %"$retval_8", align 4 + %"$$retval_8_71" = load %Int32, %Int32* %"$retval_8", align 4 + ret %Int32 %"$$retval_8_71" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_5"(%"$$fundef_5_env_50"* %0, %Int32 %1) { +entry: + %"$retval_6" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_51" = load i64, i64* @_gasrem, align 8 + %"$gascmp_52" = icmp ugt i64 1, %"$gasrem_51" + br i1 %"$gascmp_52", label %"$out_of_gas_53", label %"$have_gas_54" + +"$out_of_gas_53": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_54" + +"$have_gas_54": ; preds = %"$out_of_gas_53", %entry + %"$consume_55" = sub i64 %"$gasrem_51", 1 + store i64 %"$consume_55", i64* @_gasrem, align 8 + %"$$fundef_7_envp_56_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_7_envp_56_salloc" = call i8* @_salloc(i8* %"$$fundef_7_envp_56_load", i64 4) + %"$$fundef_7_envp_56" = bitcast i8* %"$$fundef_7_envp_56_salloc" to %"$$fundef_7_env_49"* + %"$$fundef_7_env_voidp_58" = bitcast %"$$fundef_7_env_49"* %"$$fundef_7_envp_56" to i8* + %"$$fundef_7_cloval_59" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_7_env_49"*, %Int32)* @"$fundef_7" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_7_env_voidp_58", 1 + %"$$fundef_7_env_a_60" = getelementptr inbounds %"$$fundef_7_env_49", %"$$fundef_7_env_49"* %"$$fundef_7_envp_56", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_7_env_a_60", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_7_cloval_59", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_6", align 8 + %"$$retval_6_61" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_6", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_6_61" +} + +declare void @_out_of_gas() + +declare i8* @_salloc(i8*, i64) + +declare %Int32 @_add_Int32(%Int32, %Int32) + +define void @_init_libs() { +entry: + ret void +} + +define void @_init_state() { +entry: + %"$res_2" = alloca %Int32, align 8 + %"$gasrem_79" = load i64, i64* @_gasrem, align 8 + %"$gascmp_80" = icmp ugt i64 1, %"$gasrem_79" + br i1 %"$gascmp_80", label %"$out_of_gas_81", label %"$have_gas_82" + +"$out_of_gas_81": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_82" + +"$have_gas_82": ; preds = %"$out_of_gas_81", %entry + %"$consume_83" = sub i64 %"$gasrem_79", 1 + store i64 %"$consume_83", i64* @_gasrem, align 8 + store %Int32 zeroinitializer, %Int32* %"$res_2", align 4 + %"$execptr_load_84" = load i8*, i8** @_execptr, align 8 + %"$$res_2_86" = load %Int32, %Int32* %"$res_2", align 4 + %"$update_value_87" = alloca %Int32, align 8 + store %Int32 %"$$res_2_86", %Int32* %"$update_value_87", align 4 + %"$update_value_88" = bitcast %Int32* %"$update_value_87" to i8* + call void @_update_field(i8* %"$execptr_load_84", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_85", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_11", i32 0, i8* null, i8* %"$update_value_88") + ret void +} + +declare void @_update_field(i8*, i8*, %_TyDescrTy_Typ*, i32, i8*, i8*) + +define internal void @"$dummy_89"(%Uint128 %_amount, [20 x i8]* %"$_origin_90", [20 x i8]* %"$_sender_91", %Int32 %x1, %Int32 %x2) { +entry: + %_origin = load [20 x i8], [20 x i8]* %"$_origin_90", align 1 + %_sender = load [20 x i8], [20 x i8]* %"$_sender_91", align 1 + %"$gasrem_92" = load i64, i64* @_gasrem, align 8 + %"$gascmp_93" = icmp ugt i64 1, %"$gasrem_92" + br i1 %"$gascmp_93", label %"$out_of_gas_94", label %"$have_gas_95" + +"$out_of_gas_94": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_95" + +"$have_gas_95": ; preds = %"$out_of_gas_94", %entry + %"$consume_96" = sub i64 %"$gasrem_92", 1 + store i64 %"$consume_96", i64* @_gasrem, align 8 + %x = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_97" = load i64, i64* @_gasrem, align 8 + %"$gascmp_98" = icmp ugt i64 1, %"$gasrem_97" + br i1 %"$gascmp_98", label %"$out_of_gas_99", label %"$have_gas_100" + +"$out_of_gas_99": ; preds = %"$have_gas_95" + call void @_out_of_gas() + br label %"$have_gas_100" + +"$have_gas_100": ; preds = %"$out_of_gas_99", %"$have_gas_95" + %"$consume_101" = sub i64 %"$gasrem_97", 1 + store i64 %"$consume_101", i64* @_gasrem, align 8 + %f = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_102" = load i64, i64* @_gasrem, align 8 + %"$gascmp_103" = icmp ugt i64 1, %"$gasrem_102" + br i1 %"$gascmp_103", label %"$out_of_gas_104", label %"$have_gas_105" + +"$out_of_gas_104": ; preds = %"$have_gas_100" + call void @_out_of_gas() + br label %"$have_gas_105" + +"$have_gas_105": ; preds = %"$out_of_gas_104", %"$have_gas_100" + %"$consume_106" = sub i64 %"$gasrem_102", 1 + store i64 %"$consume_106", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_5_env_50"*, %Int32)* @"$fundef_5" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f, align 8 + %"$gasrem_110" = load i64, i64* @_gasrem, align 8 + %"$gascmp_111" = icmp ugt i64 1, %"$gasrem_110" + br i1 %"$gascmp_111", label %"$out_of_gas_112", label %"$have_gas_113" + +"$out_of_gas_112": ; preds = %"$have_gas_105" + call void @_out_of_gas() + br label %"$have_gas_113" + +"$have_gas_113": ; preds = %"$out_of_gas_112", %"$have_gas_105" + %"$consume_114" = sub i64 %"$gasrem_110", 1 + store i64 %"$consume_114", i64* @_gasrem, align 8 + %"$f_115" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f_115", { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %x, align 8 + %"$gasrem_116" = load i64, i64* @_gasrem, align 8 + %"$gascmp_117" = icmp ugt i64 1, %"$gasrem_116" + br i1 %"$gascmp_117", label %"$out_of_gas_118", label %"$have_gas_119" + +"$out_of_gas_118": ; preds = %"$have_gas_113" + call void @_out_of_gas() + br label %"$have_gas_119" + +"$have_gas_119": ; preds = %"$out_of_gas_118", %"$have_gas_113" + %"$consume_120" = sub i64 %"$gasrem_116", 1 + store i64 %"$consume_120", i64* @_gasrem, align 8 + %total_app = alloca %Int32, align 8 + %"$gasrem_121" = load i64, i64* @_gasrem, align 8 + %"$gascmp_122" = icmp ugt i64 1, %"$gasrem_121" + br i1 %"$gascmp_122", label %"$out_of_gas_123", label %"$have_gas_124" + +"$out_of_gas_123": ; preds = %"$have_gas_119" + call void @_out_of_gas() + br label %"$have_gas_124" + +"$have_gas_124": ; preds = %"$out_of_gas_123", %"$have_gas_119" + %"$consume_125" = sub i64 %"$gasrem_121", 1 + store i64 %"$consume_125", i64* @_gasrem, align 8 + %"$x_0" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$x_126" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %x, align 8 + %"$x_fptr_127" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$x_126", 0 + %"$x_envptr_128" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$x_126", 1 + %"$x_call_129" = call { %Int32 (i8*, %Int32)*, i8* } %"$x_fptr_127"(i8* %"$x_envptr_128", %Int32 %x1) + store { %Int32 (i8*, %Int32)*, i8* } %"$x_call_129", { %Int32 (i8*, %Int32)*, i8* }* %"$x_0", align 8 + %"$x_1" = alloca %Int32, align 8 + %"$$x_0_130" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$x_0", align 8 + %"$$x_0_fptr_131" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$x_0_130", 0 + %"$$x_0_envptr_132" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$x_0_130", 1 + %"$$x_0_call_133" = call %Int32 %"$$x_0_fptr_131"(i8* %"$$x_0_envptr_132", %Int32 %x2) + store %Int32 %"$$x_0_call_133", %Int32* %"$x_1", align 4 + %"$$x_1_134" = load %Int32, %Int32* %"$x_1", align 4 + store %Int32 %"$$x_1_134", %Int32* %total_app, align 4 + %"$_literal_cost_total_app_135" = alloca %Int32, align 8 + %"$total_app_136" = load %Int32, %Int32* %total_app, align 4 + store %Int32 %"$total_app_136", %Int32* %"$_literal_cost_total_app_135", align 4 + %"$$_literal_cost_total_app_135_137" = bitcast %Int32* %"$_literal_cost_total_app_135" to i8* + %"$_literal_cost_call_138" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_11", i8* %"$$_literal_cost_total_app_135_137") + %"$gasrem_139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_140" = icmp ugt i64 %"$_literal_cost_call_138", %"$gasrem_139" + br i1 %"$gascmp_140", label %"$out_of_gas_141", label %"$have_gas_142" + +"$out_of_gas_141": ; preds = %"$have_gas_124" + call void @_out_of_gas() + br label %"$have_gas_142" + +"$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_124" + %"$consume_143" = sub i64 %"$gasrem_139", %"$_literal_cost_call_138" + store i64 %"$consume_143", i64* @_gasrem, align 8 + %"$execptr_load_144" = load i8*, i8** @_execptr, align 8 + %"$total_app_146" = load %Int32, %Int32* %total_app, align 4 + %"$update_value_147" = alloca %Int32, align 8 + store %Int32 %"$total_app_146", %Int32* %"$update_value_147", align 4 + %"$update_value_148" = bitcast %Int32* %"$update_value_147" to i8* + call void @_update_field(i8* %"$execptr_load_144", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_145", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_11", i32 0, i8* null, i8* %"$update_value_148") + %"$gasrem_149" = load i64, i64* @_gasrem, align 8 + %"$gascmp_150" = icmp ugt i64 1, %"$gasrem_149" + br i1 %"$gascmp_150", label %"$out_of_gas_151", label %"$have_gas_152" + +"$out_of_gas_151": ; preds = %"$have_gas_142" + call void @_out_of_gas() + br label %"$have_gas_152" + +"$have_gas_152": ; preds = %"$out_of_gas_151", %"$have_gas_142" + %"$consume_153" = sub i64 %"$gasrem_149", 1 + store i64 %"$consume_153", i64* @_gasrem, align 8 + %y = alloca { %Int32 (i8*, %Int32, %Int32)*, i8* }, align 8 + %"$gasrem_154" = load i64, i64* @_gasrem, align 8 + %"$gascmp_155" = icmp ugt i64 2, %"$gasrem_154" + br i1 %"$gascmp_155", label %"$out_of_gas_156", label %"$have_gas_157" + +"$out_of_gas_156": ; preds = %"$have_gas_152" + call void @_out_of_gas() + br label %"$have_gas_157" + +"$have_gas_157": ; preds = %"$out_of_gas_156", %"$have_gas_152" + %"$consume_158" = sub i64 %"$gasrem_154", 2 + store i64 %"$consume_158", i64* @_gasrem, align 8 + store { %Int32 (i8*, %Int32, %Int32)*, i8* } { %Int32 (i8*, %Int32, %Int32)* bitcast (%Int32 (%"$$fundef_3_env_48"*, %Int32, %Int32)* @"$fundef_3" to %Int32 (i8*, %Int32, %Int32)*), i8* null }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* %y, align 8 + %"$gasrem_162" = load i64, i64* @_gasrem, align 8 + %"$gascmp_163" = icmp ugt i64 1, %"$gasrem_162" + br i1 %"$gascmp_163", label %"$out_of_gas_164", label %"$have_gas_165" + +"$out_of_gas_164": ; preds = %"$have_gas_157" + call void @_out_of_gas() + br label %"$have_gas_165" + +"$have_gas_165": ; preds = %"$out_of_gas_164", %"$have_gas_157" + %"$consume_166" = sub i64 %"$gasrem_162", 1 + store i64 %"$consume_166", i64* @_gasrem, align 8 + %total_app2 = alloca %Int32, align 8 + %"$gasrem_167" = load i64, i64* @_gasrem, align 8 + %"$gascmp_168" = icmp ugt i64 1, %"$gasrem_167" + br i1 %"$gascmp_168", label %"$out_of_gas_169", label %"$have_gas_170" + +"$out_of_gas_169": ; preds = %"$have_gas_165" + call void @_out_of_gas() + br label %"$have_gas_170" + +"$have_gas_170": ; preds = %"$out_of_gas_169", %"$have_gas_165" + %"$consume_171" = sub i64 %"$gasrem_167", 1 + store i64 %"$consume_171", i64* @_gasrem, align 8 + %"$y_172" = load { %Int32 (i8*, %Int32, %Int32)*, i8* }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* %y, align 8 + %"$y_fptr_173" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$y_172", 0 + %"$y_envptr_174" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$y_172", 1 + %"$y_call_175" = call %Int32 %"$y_fptr_173"(i8* %"$y_envptr_174", %Int32 %x1, %Int32 %x2) + store %Int32 %"$y_call_175", %Int32* %total_app2, align 4 + %"$_literal_cost_total_app2_176" = alloca %Int32, align 8 + %"$total_app2_177" = load %Int32, %Int32* %total_app2, align 4 + store %Int32 %"$total_app2_177", %Int32* %"$_literal_cost_total_app2_176", align 4 + %"$$_literal_cost_total_app2_176_178" = bitcast %Int32* %"$_literal_cost_total_app2_176" to i8* + %"$_literal_cost_call_179" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Int32_11", i8* %"$$_literal_cost_total_app2_176_178") + %"$gasrem_180" = load i64, i64* @_gasrem, align 8 + %"$gascmp_181" = icmp ugt i64 %"$_literal_cost_call_179", %"$gasrem_180" + br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" + +"$out_of_gas_182": ; preds = %"$have_gas_170" + call void @_out_of_gas() + br label %"$have_gas_183" + +"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_170" + %"$consume_184" = sub i64 %"$gasrem_180", %"$_literal_cost_call_179" + store i64 %"$consume_184", i64* @_gasrem, align 8 + %"$execptr_load_185" = load i8*, i8** @_execptr, align 8 + %"$total_app2_187" = load %Int32, %Int32* %total_app2, align 4 + %"$update_value_188" = alloca %Int32, align 8 + store %Int32 %"$total_app2_187", %Int32* %"$update_value_188", align 4 + %"$update_value_189" = bitcast %Int32* %"$update_value_188" to i8* + call void @_update_field(i8* %"$execptr_load_185", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$res_186", i32 0, i32 0), %_TyDescrTy_Typ* @"$TyDescr_Int32_11", i32 0, i8* null, i8* %"$update_value_189") + ret void +} + +declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) + +define void @dummy(i8* %0) { +entry: + %"$_amount_191" = getelementptr i8, i8* %0, i32 0 + %"$_amount_192" = bitcast i8* %"$_amount_191" to %Uint128* + %_amount = load %Uint128, %Uint128* %"$_amount_192", align 8 + %"$_origin_193" = getelementptr i8, i8* %0, i32 16 + %"$_origin_194" = bitcast i8* %"$_origin_193" to [20 x i8]* + %"$_sender_195" = getelementptr i8, i8* %0, i32 36 + %"$_sender_196" = bitcast i8* %"$_sender_195" to [20 x i8]* + %"$x1_197" = getelementptr i8, i8* %0, i32 56 + %"$x1_198" = bitcast i8* %"$x1_197" to %Int32* + %x1 = load %Int32, %Int32* %"$x1_198", align 4 + %"$x2_199" = getelementptr i8, i8* %0, i32 60 + %"$x2_200" = bitcast i8* %"$x2_199" to %Int32* + %x2 = load %Int32, %Int32* %"$x2_200", align 4 + call void @"$dummy_89"(%Uint128 %_amount, [20 x i8]* %"$_origin_194", [20 x i8]* %"$_sender_196", %Int32 %x1, %Int32 %x2) + ret void +} diff --git a/tests/codegen/contr/uncurry1.scilla b/tests/codegen/contr/uncurry1.scilla new file mode 100644 index 00000000..ae659e87 --- /dev/null +++ b/tests/codegen/contr/uncurry1.scilla @@ -0,0 +1,64 @@ +scilla_version 0 + +library SimpleUnuccury + +let uncur_lib_func = + fun (a: Int32) => + fun (b: Int32) => + builtin add a b + +let no_uncur_lib_func = + fun (a: Int32) => + let a_ = a in + fun (b: Int32) => + builtin add a_ b + +(* Same as uncur_lib_func but would be applied + both totally and partially +*) +let uncur_lib_func_partial = + fun (a: Int32) => + fun (b: Int32) => + builtin add a b + + + +contract SimpleUnuccury() + +field some_bool : Bool = False +field res : Int32 = Int32 0 + +transition dummy (x1: Int32, x2: Int32 ) + partial_app_func = + let partial_app_func_ = + fun (a: Int32) => + fun (b: Int32) => + builtin sub a b + in + let n1 = Int32 4 in + let n2 = Int32 2 in + let res1 = partial_app_func_ n1 in + res1 n2; + + total_app1 = uncur_lib_func x1 x2; + total_app2 = no_uncur_lib_func total_app1 x2; + + y = builtin add partial_app_func total_app2; + res := y +end + +transition dummy2 (x1: Int32, x2: Int32 ) + + (* Apply uncur_lib_func_partial both totally and partially *) + total_app = uncur_lib_func_partial x1 x2; + + some_bool_ <- some_bool; + (* Test branch *) + match some_bool_ with + | False => + partial_app1 = uncur_lib_func_partial total_app; + partial_app2 = partial_app1 x1; + res := partial_app2 + | True => + end +end \ No newline at end of file diff --git a/tests/codegen/contr/uncurry2.scilla b/tests/codegen/contr/uncurry2.scilla new file mode 100644 index 00000000..372109c4 --- /dev/null +++ b/tests/codegen/contr/uncurry2.scilla @@ -0,0 +1,22 @@ +scilla_version 0 + +library SimpleUnuccury2 + +(* Will not be uncurred as it is applied just partially *) +let uncur_lib_func = + fun (a: Int32) => + fun (b: Int32) => + builtin add a b + + +contract SimpleUnuccury2() + +field res : Int32 = Int32 0 + +transition dummy (x1: Int32, x2: Int32 ) + partial_app1 = uncur_lib_func x1; + total_app = partial_app1 x2; + + y = builtin add x1 total_app; + res := y +end diff --git a/tests/codegen/contr/uncurry3.scilla b/tests/codegen/contr/uncurry3.scilla new file mode 100644 index 00000000..47fbdb4b --- /dev/null +++ b/tests/codegen/contr/uncurry3.scilla @@ -0,0 +1,69 @@ +scilla_version 0 + +library SimpleUnuccury3 + +let uncur_lib_func1 = + fun (a: Int32) => + fun (b: Int32) => + builtin add a b + +let uncur_lib_func2 = + fun (a: Int32) => + fun (b: Int32) => + builtin add a b + +(* The only function that should be tagged for unuccrying *) +let uncur_lib_func3 = + fun (a: Int32) => + fun (b: Int32) => + builtin add a b + +type T = + | C1 of (Int32 -> Int32 -> Int32) + | C2 of Bool + +contract SimpleUnuccury3() + +field res : Int32 = Int32 0 + +transition dummy1(x1: Int32, x2: Int32) + + (* Totally apply the function *) + total_app = uncur_lib_func1 x1 x2; + + (* Let the function "escape" into an ADT *) + x = C1 uncur_lib_func1; + + match x with + | C1 v => + x_ = v total_app x1; + res := x_ + | _ => + end +end + +transition dummy2(x1: Int32, x2: Int32) + + (* Totally apply the function*) + total_app = uncur_lib_func2 x1 x2; + + big_func = + let f = + fun (f_: (Int32 -> Int32 -> Int32)) => + let n1 = Int32 1 in + let n2 = Int32 2 in + f_ n1 n2 + in + f; + + (* Pass uncur_lib_func2 as argument *) + x = big_func uncur_lib_func2; + res := x +end + +transition dummy3(x1: Int32, x2: Int32) + + total_app = uncur_lib_func3 x1 x2; + res := total_app + +end \ No newline at end of file diff --git a/tests/codegen/contr/uncurry4.scilla b/tests/codegen/contr/uncurry4.scilla new file mode 100644 index 00000000..a2fc9c5d --- /dev/null +++ b/tests/codegen/contr/uncurry4.scilla @@ -0,0 +1,28 @@ +scilla_version 0 + +library SimpleUnuccury4 + +contract SimpleUnuccury4() + +field res : Int32 = Int32 0 + +transition dummy (x1: Int32, x2: Int32 ) + (* x is NOT marked for uncurrying *) + x = + let f = + fun (a: Int32) => + fun (b: Int32) => + builtin add a b in + f; + total_app = x x1 x2; + res := total_app; + + (* y is marked for uncurrying *) + y = fun (a: Int32) => + fun (b: Int32) => + builtin add a b; + total_app2 = y x1 x2; + + res := total_app2 +end + diff --git a/tests/codegen/expr/TestCodegenExpr.ml b/tests/codegen/expr/TestCodegenExpr.ml index ff11b561..3dce1060 100644 --- a/tests/codegen/expr/TestCodegenExpr.ml +++ b/tests/codegen/expr/TestCodegenExpr.ml @@ -115,6 +115,7 @@ let explist = "builtin-pow.scilexp"; "map_to_list.scilexp"; "map_to_list2.scilexp"; + "uncurry_simple.scilexp"; "builtin_overflow1.scilexp"; "builtin_overflow2.scilexp"; "builtin_overflow3.scilexp"; diff --git a/tests/codegen/expr/dgold/ackermann.scilexp.gold b/tests/codegen/expr/dgold/ackermann.scilexp.gold index 193cc0f0..ac2ca1de 100644 --- a/tests/codegen/expr/dgold/ackermann.scilexp.gold +++ b/tests/codegen/expr/dgold/ackermann.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_157" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/ackermann_3_7.scilexp.gold b/tests/codegen/expr/dgold/ackermann_3_7.scilexp.gold index e17314ce..e8544878 100644 --- a/tests/codegen/expr/dgold/ackermann_3_7.scilexp.gold +++ b/tests/codegen/expr/dgold/ackermann_3_7.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_84" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/adt-fun.scilexp.gold b/tests/codegen/expr/dgold/adt-fun.scilexp.gold index db638060..c4fbc6de 100644 --- a/tests/codegen/expr/dgold/adt-fun.scilexp.gold +++ b/tests/codegen/expr/dgold/adt-fun.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin-ecdsa_recover.scilexp.gold b/tests/codegen/expr/dgold/builtin-ecdsa_recover.scilexp.gold index d330d3eb..fda8210e 100644 --- a/tests/codegen/expr/dgold/builtin-ecdsa_recover.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin-ecdsa_recover.scilexp.gold @@ -1,477 +1,543 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_15" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_8" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_55" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_54"** } +%"$TyDescrTy_ADTTyp_48" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_47"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_54" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_56"**, %"$TyDescrTy_ADTTyp_55"* } -%"$TyDescrTy_ADTTyp_Constr_56" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$ParamDescr_552" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_47" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_49"**, %"$TyDescrTy_ADTTyp_48"* } +%"$TyDescrTy_ADTTyp_Constr_49" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$ParamDescr_501" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_553" = type { %ParamDescrString, i32, %"$ParamDescr_552"* } -%"$$fundef_13_env_86" = type {} +%"$TransDescr_502" = type { %ParamDescrString, i32, %"$ParamDescr_501"* } +%"$$fundef_6_env_79" = type {} %Bystr = type { i8*, i32 } -%"$$fundef_11_env_87" = type { %Bystr, [64 x i8] } +%"$$fundef_4_env_80" = type {} %Uint32 = type { i32 } %TName_Option_ByStr20 = type { i8, %CName_Some_ByStr20*, %CName_None_ByStr20* } %CName_Some_ByStr20 = type <{ i8, [20 x i8] }> %CName_None_ByStr20 = type <{ i8 }> -%"$$fundef_9_env_88" = type { %Bystr } -%"$$fundef_7_env_89" = type {} %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_16" = global %"$TyDescrTy_PrimTyp_15" zeroinitializer -@"$TyDescr_Int32_17" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Int32_Prim_16" to i8*) } -@"$TyDescr_Uint32_Prim_18" = global %"$TyDescrTy_PrimTyp_15" { i32 1, i32 0 } -@"$TyDescr_Uint32_19" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Uint32_Prim_18" to i8*) } -@"$TyDescr_Int64_Prim_20" = global %"$TyDescrTy_PrimTyp_15" { i32 0, i32 1 } -@"$TyDescr_Int64_21" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Int64_Prim_20" to i8*) } -@"$TyDescr_Uint64_Prim_22" = global %"$TyDescrTy_PrimTyp_15" { i32 1, i32 1 } -@"$TyDescr_Uint64_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Uint64_Prim_22" to i8*) } -@"$TyDescr_Int128_Prim_24" = global %"$TyDescrTy_PrimTyp_15" { i32 0, i32 2 } -@"$TyDescr_Int128_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Int128_Prim_24" to i8*) } -@"$TyDescr_Uint128_Prim_26" = global %"$TyDescrTy_PrimTyp_15" { i32 1, i32 2 } -@"$TyDescr_Uint128_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Uint128_Prim_26" to i8*) } -@"$TyDescr_Int256_Prim_28" = global %"$TyDescrTy_PrimTyp_15" { i32 0, i32 3 } -@"$TyDescr_Int256_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Int256_Prim_28" to i8*) } -@"$TyDescr_Uint256_Prim_30" = global %"$TyDescrTy_PrimTyp_15" { i32 1, i32 3 } -@"$TyDescr_Uint256_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Uint256_Prim_30" to i8*) } -@"$TyDescr_String_Prim_32" = global %"$TyDescrTy_PrimTyp_15" { i32 2, i32 0 } -@"$TyDescr_String_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_String_Prim_32" to i8*) } -@"$TyDescr_Bnum_Prim_34" = global %"$TyDescrTy_PrimTyp_15" { i32 3, i32 0 } -@"$TyDescr_Bnum_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bnum_Prim_34" to i8*) } -@"$TyDescr_Message_Prim_36" = global %"$TyDescrTy_PrimTyp_15" { i32 4, i32 0 } -@"$TyDescr_Message_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Message_Prim_36" to i8*) } -@"$TyDescr_Event_Prim_38" = global %"$TyDescrTy_PrimTyp_15" { i32 5, i32 0 } -@"$TyDescr_Event_39" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Event_Prim_38" to i8*) } -@"$TyDescr_Exception_Prim_40" = global %"$TyDescrTy_PrimTyp_15" { i32 6, i32 0 } -@"$TyDescr_Exception_41" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Exception_Prim_40" to i8*) } -@"$TyDescr_Bystr_Prim_42" = global %"$TyDescrTy_PrimTyp_15" { i32 7, i32 0 } -@"$TyDescr_Bystr_43" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr_Prim_42" to i8*) } -@"$TyDescr_Bystr1591_Prim_44" = global %"$TyDescrTy_PrimTyp_15" { i32 8, i32 1591 } -@"$TyDescr_Bystr1591_45" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr1591_Prim_44" to i8*) } -@"$TyDescr_Bystr32_Prim_46" = global %"$TyDescrTy_PrimTyp_15" { i32 8, i32 32 } -@"$TyDescr_Bystr32_47" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr32_Prim_46" to i8*) } -@"$TyDescr_Bystr65_Prim_48" = global %"$TyDescrTy_PrimTyp_15" { i32 8, i32 65 } -@"$TyDescr_Bystr65_49" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr65_Prim_48" to i8*) } -@"$TyDescr_Bystr64_Prim_50" = global %"$TyDescrTy_PrimTyp_15" { i32 8, i32 64 } -@"$TyDescr_Bystr64_51" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr64_Prim_50" to i8*) } -@"$TyDescr_Bystr20_Prim_52" = global %"$TyDescrTy_PrimTyp_15" { i32 8, i32 20 } -@"$TyDescr_Bystr20_53" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr20_Prim_52" to i8*) } -@"$TyDescr_ADT_Bool_57" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_54"* @"$TyDescr_Bool_ADTTyp_Specl_71" to i8*) } -@"$TyDescr_ADT_Option_ByStr20_58" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_54"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_83" to i8*) } -@"$TyDescr_Bool_ADTTyp_62" = unnamed_addr constant %"$TyDescrTy_ADTTyp_55" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_73", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_54"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_54"*], [1 x %"$TyDescrTy_ADTTyp_Specl_54"*]* @"$TyDescr_Bool_ADTTyp_m_specls_72", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_63" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_64" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_65" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_56" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_64", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_63", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_66" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_67" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_68" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_56" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_67", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_66", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_69" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_56"*] [%"$TyDescrTy_ADTTyp_Constr_56"* @"$TyDescr_Bool_True_ADTTyp_Constr_65", %"$TyDescrTy_ADTTyp_Constr_56"* @"$TyDescr_Bool_False_ADTTyp_Constr_68"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_70" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_71" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_54" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_70", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_56"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_56"*], [2 x %"$TyDescrTy_ADTTyp_Constr_56"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_69", i32 0, i32 0), %"$TyDescrTy_ADTTyp_55"* @"$TyDescr_Bool_ADTTyp_62" } -@"$TyDescr_Bool_ADTTyp_m_specls_72" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_54"*] [%"$TyDescrTy_ADTTyp_Specl_54"* @"$TyDescr_Bool_ADTTyp_Specl_71"] -@"$TyDescr_ADT_Bool_73" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_Option_ADTTyp_74" = unnamed_addr constant %"$TyDescrTy_ADTTyp_55" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_85", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_54"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_54"*], [1 x %"$TyDescrTy_ADTTyp_Specl_54"*]* @"$TyDescr_Option_ADTTyp_m_specls_84", i32 0, i32 0) } -@"$TyDescr_Option_Some_ByStr20_Constr_m_args_75" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_53"] -@"$TyDescr_ADT_Some_76" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_77" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_56" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_76", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ByStr20_Constr_m_args_75", i32 0, i32 0) } -@"$TyDescr_Option_None_ByStr20_Constr_m_args_78" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_79" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_80" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_56" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_79", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ByStr20_Constr_m_args_78", i32 0, i32 0) } -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_81" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_56"*] [%"$TyDescrTy_ADTTyp_Constr_56"* @"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_77", %"$TyDescrTy_ADTTyp_Constr_56"* @"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_80"] -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_82" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_53"] -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_83" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_54" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_82", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_56"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_56"*], [2 x %"$TyDescrTy_ADTTyp_Constr_56"*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_81", i32 0, i32 0), %"$TyDescrTy_ADTTyp_55"* @"$TyDescr_Option_ADTTyp_74" } -@"$TyDescr_Option_ADTTyp_m_specls_84" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_54"*] [%"$TyDescrTy_ADTTyp_Specl_54"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_83"] -@"$TyDescr_ADT_Option_85" = unnamed_addr constant [6 x i8] c"Option" -@_tydescr_table = constant [21 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_39", %_TyDescrTy_Typ* @"$TyDescr_Int64_21", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_58", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_57", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_53", %_TyDescrTy_Typ* @"$TyDescr_Uint256_31", %_TyDescrTy_Typ* @"$TyDescr_Uint32_19", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_51", %_TyDescrTy_Typ* @"$TyDescr_Uint64_23", %_TyDescrTy_Typ* @"$TyDescr_Bnum_35", %_TyDescrTy_Typ* @"$TyDescr_Uint128_27", %_TyDescrTy_Typ* @"$TyDescr_Exception_41", %_TyDescrTy_Typ* @"$TyDescr_String_33", %_TyDescrTy_Typ* @"$TyDescr_Bystr65_49", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_47", %_TyDescrTy_Typ* @"$TyDescr_Int256_29", %_TyDescrTy_Typ* @"$TyDescr_Int128_25", %_TyDescrTy_Typ* @"$TyDescr_Bystr_43", %_TyDescrTy_Typ* @"$TyDescr_Message_37", %_TyDescrTy_Typ* @"$TyDescr_Bystr1591_45", %_TyDescrTy_Typ* @"$TyDescr_Int32_17"] +@"$TyDescr_Int32_Prim_9" = global %"$TyDescrTy_PrimTyp_8" zeroinitializer +@"$TyDescr_Int32_10" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Int32_Prim_9" to i8*) } +@"$TyDescr_Uint32_Prim_11" = global %"$TyDescrTy_PrimTyp_8" { i32 1, i32 0 } +@"$TyDescr_Uint32_12" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Uint32_Prim_11" to i8*) } +@"$TyDescr_Int64_Prim_13" = global %"$TyDescrTy_PrimTyp_8" { i32 0, i32 1 } +@"$TyDescr_Int64_14" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Int64_Prim_13" to i8*) } +@"$TyDescr_Uint64_Prim_15" = global %"$TyDescrTy_PrimTyp_8" { i32 1, i32 1 } +@"$TyDescr_Uint64_16" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Uint64_Prim_15" to i8*) } +@"$TyDescr_Int128_Prim_17" = global %"$TyDescrTy_PrimTyp_8" { i32 0, i32 2 } +@"$TyDescr_Int128_18" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Int128_Prim_17" to i8*) } +@"$TyDescr_Uint128_Prim_19" = global %"$TyDescrTy_PrimTyp_8" { i32 1, i32 2 } +@"$TyDescr_Uint128_20" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Uint128_Prim_19" to i8*) } +@"$TyDescr_Int256_Prim_21" = global %"$TyDescrTy_PrimTyp_8" { i32 0, i32 3 } +@"$TyDescr_Int256_22" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Int256_Prim_21" to i8*) } +@"$TyDescr_Uint256_Prim_23" = global %"$TyDescrTy_PrimTyp_8" { i32 1, i32 3 } +@"$TyDescr_Uint256_24" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Uint256_Prim_23" to i8*) } +@"$TyDescr_String_Prim_25" = global %"$TyDescrTy_PrimTyp_8" { i32 2, i32 0 } +@"$TyDescr_String_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_String_Prim_25" to i8*) } +@"$TyDescr_Bnum_Prim_27" = global %"$TyDescrTy_PrimTyp_8" { i32 3, i32 0 } +@"$TyDescr_Bnum_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bnum_Prim_27" to i8*) } +@"$TyDescr_Message_Prim_29" = global %"$TyDescrTy_PrimTyp_8" { i32 4, i32 0 } +@"$TyDescr_Message_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Message_Prim_29" to i8*) } +@"$TyDescr_Event_Prim_31" = global %"$TyDescrTy_PrimTyp_8" { i32 5, i32 0 } +@"$TyDescr_Event_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Event_Prim_31" to i8*) } +@"$TyDescr_Exception_Prim_33" = global %"$TyDescrTy_PrimTyp_8" { i32 6, i32 0 } +@"$TyDescr_Exception_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Exception_Prim_33" to i8*) } +@"$TyDescr_Bystr_Prim_35" = global %"$TyDescrTy_PrimTyp_8" { i32 7, i32 0 } +@"$TyDescr_Bystr_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr_Prim_35" to i8*) } +@"$TyDescr_Bystr1591_Prim_37" = global %"$TyDescrTy_PrimTyp_8" { i32 8, i32 1591 } +@"$TyDescr_Bystr1591_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr1591_Prim_37" to i8*) } +@"$TyDescr_Bystr32_Prim_39" = global %"$TyDescrTy_PrimTyp_8" { i32 8, i32 32 } +@"$TyDescr_Bystr32_40" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr32_Prim_39" to i8*) } +@"$TyDescr_Bystr65_Prim_41" = global %"$TyDescrTy_PrimTyp_8" { i32 8, i32 65 } +@"$TyDescr_Bystr65_42" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr65_Prim_41" to i8*) } +@"$TyDescr_Bystr64_Prim_43" = global %"$TyDescrTy_PrimTyp_8" { i32 8, i32 64 } +@"$TyDescr_Bystr64_44" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr64_Prim_43" to i8*) } +@"$TyDescr_Bystr20_Prim_45" = global %"$TyDescrTy_PrimTyp_8" { i32 8, i32 20 } +@"$TyDescr_Bystr20_46" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr20_Prim_45" to i8*) } +@"$TyDescr_ADT_Bool_50" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_47"* @"$TyDescr_Bool_ADTTyp_Specl_64" to i8*) } +@"$TyDescr_ADT_Option_ByStr20_51" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_47"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_76" to i8*) } +@"$TyDescr_Bool_ADTTyp_55" = unnamed_addr constant %"$TyDescrTy_ADTTyp_48" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_66", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_47"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_47"*], [1 x %"$TyDescrTy_ADTTyp_Specl_47"*]* @"$TyDescr_Bool_ADTTyp_m_specls_65", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_56" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_57" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_58" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_49" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_57", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_56", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_59" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_60" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_61" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_49" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_60", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_59", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_62" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_49"*] [%"$TyDescrTy_ADTTyp_Constr_49"* @"$TyDescr_Bool_True_ADTTyp_Constr_58", %"$TyDescrTy_ADTTyp_Constr_49"* @"$TyDescr_Bool_False_ADTTyp_Constr_61"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_63" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_64" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_47" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_63", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_49"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_49"*], [2 x %"$TyDescrTy_ADTTyp_Constr_49"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_62", i32 0, i32 0), %"$TyDescrTy_ADTTyp_48"* @"$TyDescr_Bool_ADTTyp_55" } +@"$TyDescr_Bool_ADTTyp_m_specls_65" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_47"*] [%"$TyDescrTy_ADTTyp_Specl_47"* @"$TyDescr_Bool_ADTTyp_Specl_64"] +@"$TyDescr_ADT_Bool_66" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_Option_ADTTyp_67" = unnamed_addr constant %"$TyDescrTy_ADTTyp_48" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_78", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_47"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_47"*], [1 x %"$TyDescrTy_ADTTyp_Specl_47"*]* @"$TyDescr_Option_ADTTyp_m_specls_77", i32 0, i32 0) } +@"$TyDescr_Option_Some_ByStr20_Constr_m_args_68" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_46"] +@"$TyDescr_ADT_Some_69" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_70" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_49" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_69", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ByStr20_Constr_m_args_68", i32 0, i32 0) } +@"$TyDescr_Option_None_ByStr20_Constr_m_args_71" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_72" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_73" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_49" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_72", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ByStr20_Constr_m_args_71", i32 0, i32 0) } +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_74" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_49"*] [%"$TyDescrTy_ADTTyp_Constr_49"* @"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_70", %"$TyDescrTy_ADTTyp_Constr_49"* @"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_73"] +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_75" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_46"] +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_76" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_47" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_75", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_49"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_49"*], [2 x %"$TyDescrTy_ADTTyp_Constr_49"*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_74", i32 0, i32 0), %"$TyDescrTy_ADTTyp_48"* @"$TyDescr_Option_ADTTyp_67" } +@"$TyDescr_Option_ADTTyp_m_specls_77" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_47"*] [%"$TyDescrTy_ADTTyp_Specl_47"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_76"] +@"$TyDescr_ADT_Option_78" = unnamed_addr constant [6 x i8] c"Option" +@_tydescr_table = constant [21 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_32", %_TyDescrTy_Typ* @"$TyDescr_Int64_14", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_51", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_46", %_TyDescrTy_Typ* @"$TyDescr_Uint256_24", %_TyDescrTy_Typ* @"$TyDescr_Uint32_12", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_44", %_TyDescrTy_Typ* @"$TyDescr_Uint64_16", %_TyDescrTy_Typ* @"$TyDescr_Bnum_28", %_TyDescrTy_Typ* @"$TyDescr_Uint128_20", %_TyDescrTy_Typ* @"$TyDescr_Exception_34", %_TyDescrTy_Typ* @"$TyDescr_String_26", %_TyDescrTy_Typ* @"$TyDescr_Bystr65_42", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_40", %_TyDescrTy_Typ* @"$TyDescr_Int256_22", %_TyDescrTy_Typ* @"$TyDescr_Int128_18", %_TyDescrTy_Typ* @"$TyDescr_Bystr_36", %_TyDescrTy_Typ* @"$TyDescr_Message_30", %_TyDescrTy_Typ* @"$TyDescr_Bystr1591_38", %_TyDescrTy_Typ* @"$TyDescr_Int32_10"] @_tydescr_table_length = constant i32 21 -@_contract_parameters = constant [0 x %"$ParamDescr_552"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_501"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_553"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_502"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Bystr @"$fundef_13"(%"$$fundef_13_env_86"* %0, %Bystr %1) !dbg !4 { +define internal %Bystr @"$fundef_6"(%"$$fundef_6_env_79"* %0, %Bystr %1) !dbg !4 { entry: - %"$retval_14" = alloca %Bystr, align 8 - %"$gasrem_348" = load i64, i64* @_gasrem, align 8 - %"$gascmp_349" = icmp ugt i64 1, %"$gasrem_348" - br i1 %"$gascmp_349", label %"$out_of_gas_350", label %"$have_gas_351" + %"$retval_7" = alloca %Bystr, align 8 + %"$gasrem_306" = load i64, i64* @_gasrem, align 8 + %"$gascmp_307" = icmp ugt i64 1, %"$gasrem_306" + br i1 %"$gascmp_307", label %"$out_of_gas_308", label %"$have_gas_309" -"$out_of_gas_350": ; preds = %entry +"$out_of_gas_308": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_351" + br label %"$have_gas_309" -"$have_gas_351": ; preds = %"$out_of_gas_350", %entry - %"$consume_352" = sub i64 %"$gasrem_348", 1 - store i64 %"$consume_352", i64* @_gasrem, align 8 +"$have_gas_309": ; preds = %"$out_of_gas_308", %entry + %"$consume_310" = sub i64 %"$gasrem_306", 1 + store i64 %"$consume_310", i64* @_gasrem, align 8 %h1 = alloca [32 x i8], align 1 - %"$_literal_cost_header_353" = alloca %Bystr, align 8 - store %Bystr %1, %Bystr* %"$_literal_cost_header_353", align 8 - %"$$_literal_cost_header_353_354" = bitcast %Bystr* %"$_literal_cost_header_353" to i8* - %"$_literal_cost_call_355" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$_literal_cost_header_353_354") - %"$gasdivceil_356" = urem i64 %"$_literal_cost_call_355", 960 - %"$gasdivceil_357" = udiv i64 %"$_literal_cost_call_355", 960 - %"$gasdivceil_358" = icmp eq i64 %"$gasdivceil_356", 0 - %"$gasdivceil_359" = add i64 %"$gasdivceil_357", 1 - %"$gasdivceil_360" = select i1 %"$gasdivceil_358", i64 %"$gasdivceil_357", i64 %"$gasdivceil_359" - %"$gasrem_361" = load i64, i64* @_gasrem, align 8 - %"$gascmp_362" = icmp ugt i64 %"$gasdivceil_360", %"$gasrem_361" - br i1 %"$gascmp_362", label %"$out_of_gas_363", label %"$have_gas_364" - -"$out_of_gas_363": ; preds = %"$have_gas_351" - call void @_out_of_gas() - br label %"$have_gas_364" - -"$have_gas_364": ; preds = %"$out_of_gas_363", %"$have_gas_351" - %"$consume_365" = sub i64 %"$gasrem_361", %"$gasdivceil_360" - store i64 %"$consume_365", i64* @_gasrem, align 8 - %"$execptr_load_366" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_header_367" = alloca %Bystr, align 8 - store %Bystr %1, %Bystr* %"$sha256hash_header_367", align 8 - %"$$sha256hash_header_367_368" = bitcast %Bystr* %"$sha256hash_header_367" to i8* - %"$sha256hash_call_369" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_366", %_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$sha256hash_header_367_368"), !dbg !8 - %"$sha256hash_371" = load [32 x i8], [32 x i8]* %"$sha256hash_call_369", align 1 - store [32 x i8] %"$sha256hash_371", [32 x i8]* %h1, align 1, !dbg !8 - %"$gasrem_372" = load i64, i64* @_gasrem, align 8 - %"$gascmp_373" = icmp ugt i64 1, %"$gasrem_372" - br i1 %"$gascmp_373", label %"$out_of_gas_374", label %"$have_gas_375" - -"$out_of_gas_374": ; preds = %"$have_gas_364" - call void @_out_of_gas() - br label %"$have_gas_375" - -"$have_gas_375": ; preds = %"$out_of_gas_374", %"$have_gas_364" - %"$consume_376" = sub i64 %"$gasrem_372", 1 - store i64 %"$consume_376", i64* @_gasrem, align 8 + %"$_literal_cost_header_311" = alloca %Bystr, align 8 + store %Bystr %1, %Bystr* %"$_literal_cost_header_311", align 8 + %"$$_literal_cost_header_311_312" = bitcast %Bystr* %"$_literal_cost_header_311" to i8* + %"$_literal_cost_call_313" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$_literal_cost_header_311_312") + %"$gasdivceil_314" = urem i64 %"$_literal_cost_call_313", 960 + %"$gasdivceil_315" = udiv i64 %"$_literal_cost_call_313", 960 + %"$gasdivceil_316" = icmp eq i64 %"$gasdivceil_314", 0 + %"$gasdivceil_317" = add i64 %"$gasdivceil_315", 1 + %"$gasdivceil_318" = select i1 %"$gasdivceil_316", i64 %"$gasdivceil_315", i64 %"$gasdivceil_317" + %"$gasrem_319" = load i64, i64* @_gasrem, align 8 + %"$gascmp_320" = icmp ugt i64 %"$gasdivceil_318", %"$gasrem_319" + br i1 %"$gascmp_320", label %"$out_of_gas_321", label %"$have_gas_322" + +"$out_of_gas_321": ; preds = %"$have_gas_309" + call void @_out_of_gas() + br label %"$have_gas_322" + +"$have_gas_322": ; preds = %"$out_of_gas_321", %"$have_gas_309" + %"$consume_323" = sub i64 %"$gasrem_319", %"$gasdivceil_318" + store i64 %"$consume_323", i64* @_gasrem, align 8 + %"$execptr_load_324" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_header_325" = alloca %Bystr, align 8 + store %Bystr %1, %Bystr* %"$sha256hash_header_325", align 8 + %"$$sha256hash_header_325_326" = bitcast %Bystr* %"$sha256hash_header_325" to i8* + %"$sha256hash_call_327" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_324", %_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$sha256hash_header_325_326"), !dbg !8 + %"$sha256hash_329" = load [32 x i8], [32 x i8]* %"$sha256hash_call_327", align 1 + store [32 x i8] %"$sha256hash_329", [32 x i8]* %h1, align 1, !dbg !8 + %"$gasrem_330" = load i64, i64* @_gasrem, align 8 + %"$gascmp_331" = icmp ugt i64 1, %"$gasrem_330" + br i1 %"$gascmp_331", label %"$out_of_gas_332", label %"$have_gas_333" + +"$out_of_gas_332": ; preds = %"$have_gas_322" + call void @_out_of_gas() + br label %"$have_gas_333" + +"$have_gas_333": ; preds = %"$out_of_gas_332", %"$have_gas_322" + %"$consume_334" = sub i64 %"$gasrem_330", 1 + store i64 %"$consume_334", i64* @_gasrem, align 8 %h2 = alloca [32 x i8], align 1 - %"$_literal_cost_h1_377" = alloca [32 x i8], align 1 - %"$h1_378" = load [32 x i8], [32 x i8]* %h1, align 1 - store [32 x i8] %"$h1_378", [32 x i8]* %"$_literal_cost_h1_377", align 1 - %"$$_literal_cost_h1_377_379" = bitcast [32 x i8]* %"$_literal_cost_h1_377" to i8* - %"$_literal_cost_call_380" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_47", i8* %"$$_literal_cost_h1_377_379") - %"$gasdivceil_381" = urem i64 %"$_literal_cost_call_380", 960 - %"$gasdivceil_382" = udiv i64 %"$_literal_cost_call_380", 960 - %"$gasdivceil_383" = icmp eq i64 %"$gasdivceil_381", 0 - %"$gasdivceil_384" = add i64 %"$gasdivceil_382", 1 - %"$gasdivceil_385" = select i1 %"$gasdivceil_383", i64 %"$gasdivceil_382", i64 %"$gasdivceil_384" - %"$gasrem_386" = load i64, i64* @_gasrem, align 8 - %"$gascmp_387" = icmp ugt i64 %"$gasdivceil_385", %"$gasrem_386" - br i1 %"$gascmp_387", label %"$out_of_gas_388", label %"$have_gas_389" - -"$out_of_gas_388": ; preds = %"$have_gas_375" - call void @_out_of_gas() - br label %"$have_gas_389" - -"$have_gas_389": ; preds = %"$out_of_gas_388", %"$have_gas_375" - %"$consume_390" = sub i64 %"$gasrem_386", %"$gasdivceil_385" - store i64 %"$consume_390", i64* @_gasrem, align 8 - %"$execptr_load_391" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_h1_392" = alloca [32 x i8], align 1 - %"$h1_393" = load [32 x i8], [32 x i8]* %h1, align 1 - store [32 x i8] %"$h1_393", [32 x i8]* %"$sha256hash_h1_392", align 1 - %"$$sha256hash_h1_392_394" = bitcast [32 x i8]* %"$sha256hash_h1_392" to i8* - %"$sha256hash_call_395" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_391", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_47", i8* %"$$sha256hash_h1_392_394"), !dbg !9 - %"$sha256hash_397" = load [32 x i8], [32 x i8]* %"$sha256hash_call_395", align 1 - store [32 x i8] %"$sha256hash_397", [32 x i8]* %h2, align 1, !dbg !9 - %"$gasrem_398" = load i64, i64* @_gasrem, align 8 - %"$gascmp_399" = icmp ugt i64 32, %"$gasrem_398" - br i1 %"$gascmp_399", label %"$out_of_gas_400", label %"$have_gas_401" - -"$out_of_gas_400": ; preds = %"$have_gas_389" - call void @_out_of_gas() - br label %"$have_gas_401" - -"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_389" - %"$consume_402" = sub i64 %"$gasrem_398", 32 - store i64 %"$consume_402", i64* @_gasrem, align 8 - %"$execptr_load_403" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_h2_404" = alloca [32 x i8], align 1 - %"$h2_405" = load [32 x i8], [32 x i8]* %h2, align 1 - store [32 x i8] %"$h2_405", [32 x i8]* %"$to_bystr_h2_404", align 1 - %"$$to_bystr_h2_404_406" = bitcast [32 x i8]* %"$to_bystr_h2_404" to i8* - %"$to_bystr_call_407" = call %Bystr @_to_bystr(i8* %"$execptr_load_403", i32 32, i8* %"$$to_bystr_h2_404_406"), !dbg !10 - store %Bystr %"$to_bystr_call_407", %Bystr* %"$retval_14", align 8, !dbg !10 - %"$$retval_14_408" = load %Bystr, %Bystr* %"$retval_14", align 8 - ret %Bystr %"$$retval_14_408" + %"$_literal_cost_h1_335" = alloca [32 x i8], align 1 + %"$h1_336" = load [32 x i8], [32 x i8]* %h1, align 1 + store [32 x i8] %"$h1_336", [32 x i8]* %"$_literal_cost_h1_335", align 1 + %"$$_literal_cost_h1_335_337" = bitcast [32 x i8]* %"$_literal_cost_h1_335" to i8* + %"$_literal_cost_call_338" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_40", i8* %"$$_literal_cost_h1_335_337") + %"$gasdivceil_339" = urem i64 %"$_literal_cost_call_338", 960 + %"$gasdivceil_340" = udiv i64 %"$_literal_cost_call_338", 960 + %"$gasdivceil_341" = icmp eq i64 %"$gasdivceil_339", 0 + %"$gasdivceil_342" = add i64 %"$gasdivceil_340", 1 + %"$gasdivceil_343" = select i1 %"$gasdivceil_341", i64 %"$gasdivceil_340", i64 %"$gasdivceil_342" + %"$gasrem_344" = load i64, i64* @_gasrem, align 8 + %"$gascmp_345" = icmp ugt i64 %"$gasdivceil_343", %"$gasrem_344" + br i1 %"$gascmp_345", label %"$out_of_gas_346", label %"$have_gas_347" + +"$out_of_gas_346": ; preds = %"$have_gas_333" + call void @_out_of_gas() + br label %"$have_gas_347" + +"$have_gas_347": ; preds = %"$out_of_gas_346", %"$have_gas_333" + %"$consume_348" = sub i64 %"$gasrem_344", %"$gasdivceil_343" + store i64 %"$consume_348", i64* @_gasrem, align 8 + %"$execptr_load_349" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_h1_350" = alloca [32 x i8], align 1 + %"$h1_351" = load [32 x i8], [32 x i8]* %h1, align 1 + store [32 x i8] %"$h1_351", [32 x i8]* %"$sha256hash_h1_350", align 1 + %"$$sha256hash_h1_350_352" = bitcast [32 x i8]* %"$sha256hash_h1_350" to i8* + %"$sha256hash_call_353" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_349", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_40", i8* %"$$sha256hash_h1_350_352"), !dbg !9 + %"$sha256hash_355" = load [32 x i8], [32 x i8]* %"$sha256hash_call_353", align 1 + store [32 x i8] %"$sha256hash_355", [32 x i8]* %h2, align 1, !dbg !9 + %"$gasrem_356" = load i64, i64* @_gasrem, align 8 + %"$gascmp_357" = icmp ugt i64 32, %"$gasrem_356" + br i1 %"$gascmp_357", label %"$out_of_gas_358", label %"$have_gas_359" + +"$out_of_gas_358": ; preds = %"$have_gas_347" + call void @_out_of_gas() + br label %"$have_gas_359" + +"$have_gas_359": ; preds = %"$out_of_gas_358", %"$have_gas_347" + %"$consume_360" = sub i64 %"$gasrem_356", 32 + store i64 %"$consume_360", i64* @_gasrem, align 8 + %"$execptr_load_361" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_h2_362" = alloca [32 x i8], align 1 + %"$h2_363" = load [32 x i8], [32 x i8]* %h2, align 1 + store [32 x i8] %"$h2_363", [32 x i8]* %"$to_bystr_h2_362", align 1 + %"$$to_bystr_h2_362_364" = bitcast [32 x i8]* %"$to_bystr_h2_362" to i8* + %"$to_bystr_call_365" = call %Bystr @_to_bystr(i8* %"$execptr_load_361", i32 32, i8* %"$$to_bystr_h2_362_364"), !dbg !10 + store %Bystr %"$to_bystr_call_365", %Bystr* %"$retval_7", align 8, !dbg !10 + %"$$retval_7_366" = load %Bystr, %Bystr* %"$retval_7", align 8 + ret %Bystr %"$$retval_7_366" } -define internal void @"$fundef_11"(%"$$fundef_11_env_87"* %0, [20 x i8]* %1, %Uint32 %2) !dbg !11 { +define internal void @"$fundef_4"(%"$$fundef_4_env_80"* %0, [20 x i8]* %1, %Bystr %2, [64 x i8]* %3, %Uint32 %4) !dbg !11 { entry: - %"$$fundef_11_env_msg_116" = getelementptr inbounds %"$$fundef_11_env_87", %"$$fundef_11_env_87"* %0, i32 0, i32 0 - %"$msg_envload_117" = load %Bystr, %Bystr* %"$$fundef_11_env_msg_116", align 8 - %msg = alloca %Bystr, align 8 - store %Bystr %"$msg_envload_117", %Bystr* %msg, align 8 - %"$$fundef_11_env_sig_118" = getelementptr inbounds %"$$fundef_11_env_87", %"$$fundef_11_env_87"* %0, i32 0, i32 1 - %"$sig_envload_119" = load [64 x i8], [64 x i8]* %"$$fundef_11_env_sig_118", align 1 - %sig = alloca [64 x i8], align 1 - store [64 x i8] %"$sig_envload_119", [64 x i8]* %sig, align 1 - %"$retval_12" = alloca [20 x i8], align 1 - %"$gasrem_120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_121" = icmp ugt i64 1, %"$gasrem_120" - br i1 %"$gascmp_121", label %"$out_of_gas_122", label %"$have_gas_123" + %sig = load [64 x i8], [64 x i8]* %3, align 1 + %"$retval_5" = alloca [20 x i8], align 1 + %"$gasrem_81" = load i64, i64* @_gasrem, align 8 + %"$gascmp_82" = icmp ugt i64 1, %"$gasrem_81" + br i1 %"$gascmp_82", label %"$out_of_gas_83", label %"$have_gas_84" -"$out_of_gas_122": ; preds = %entry +"$out_of_gas_83": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_123" + br label %"$have_gas_84" -"$have_gas_123": ; preds = %"$out_of_gas_122", %entry - %"$consume_124" = sub i64 %"$gasrem_120", 1 - store i64 %"$consume_124", i64* @_gasrem, align 8 +"$have_gas_84": ; preds = %"$out_of_gas_83", %entry + %"$consume_85" = sub i64 %"$gasrem_81", 1 + store i64 %"$consume_85", i64* @_gasrem, align 8 %pk = alloca [65 x i8], align 1 - %"$_literal_cost_msg_125" = alloca %Bystr, align 8 - %"$msg_126" = load %Bystr, %Bystr* %msg, align 8 - store %Bystr %"$msg_126", %Bystr* %"$_literal_cost_msg_125", align 8 - %"$$_literal_cost_msg_125_127" = bitcast %Bystr* %"$_literal_cost_msg_125" to i8* - %"$_literal_cost_call_128" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$_literal_cost_msg_125_127") - %"$gasdivceil_129" = urem i64 %"$_literal_cost_call_128", 960 - %"$gasdivceil_130" = udiv i64 %"$_literal_cost_call_128", 960 - %"$gasdivceil_131" = icmp eq i64 %"$gasdivceil_129", 0 - %"$gasdivceil_132" = add i64 %"$gasdivceil_130", 1 - %"$gasdivceil_133" = select i1 %"$gasdivceil_131", i64 %"$gasdivceil_130", i64 %"$gasdivceil_132" - %"$gasrem_134" = load i64, i64* @_gasrem, align 8 - %"$gascmp_135" = icmp ugt i64 %"$gasdivceil_133", %"$gasrem_134" - br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" - -"$out_of_gas_136": ; preds = %"$have_gas_123" - call void @_out_of_gas() - br label %"$have_gas_137" - -"$have_gas_137": ; preds = %"$out_of_gas_136", %"$have_gas_123" - %"$consume_138" = sub i64 %"$gasrem_134", %"$gasdivceil_133" - store i64 %"$consume_138", i64* @_gasrem, align 8 - %"$execptr_load_139" = load i8*, i8** @_execptr, align 8 - %"$msg_140" = load %Bystr, %Bystr* %msg, align 8 - %"$ecdsa_recover_pk_sig_141" = alloca [64 x i8], align 1 - %"$sig_142" = load [64 x i8], [64 x i8]* %sig, align 1 - store [64 x i8] %"$sig_142", [64 x i8]* %"$ecdsa_recover_pk_sig_141", align 1 - %"$ecdsa_recover_pk_call_143" = call [65 x i8]* @_ecdsa_recover_pk(i8* %"$execptr_load_139", %Bystr %"$msg_140", [64 x i8]* %"$ecdsa_recover_pk_sig_141", %Uint32 %2), !dbg !12 - %"$ecdsa_recover_pk_145" = load [65 x i8], [65 x i8]* %"$ecdsa_recover_pk_call_143", align 1 - store [65 x i8] %"$ecdsa_recover_pk_145", [65 x i8]* %pk, align 1, !dbg !12 - %"$gasrem_146" = load i64, i64* @_gasrem, align 8 - %"$gascmp_147" = icmp ugt i64 1, %"$gasrem_146" - br i1 %"$gascmp_147", label %"$out_of_gas_148", label %"$have_gas_149" - -"$out_of_gas_148": ; preds = %"$have_gas_137" - call void @_out_of_gas() - br label %"$have_gas_149" - -"$have_gas_149": ; preds = %"$out_of_gas_148", %"$have_gas_137" - %"$consume_150" = sub i64 %"$gasrem_146", 1 - store i64 %"$consume_150", i64* @_gasrem, align 8 + %"$_literal_cost_msg_86" = alloca %Bystr, align 8 + store %Bystr %2, %Bystr* %"$_literal_cost_msg_86", align 8 + %"$$_literal_cost_msg_86_87" = bitcast %Bystr* %"$_literal_cost_msg_86" to i8* + %"$_literal_cost_call_88" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$_literal_cost_msg_86_87") + %"$gasdivceil_89" = urem i64 %"$_literal_cost_call_88", 960 + %"$gasdivceil_90" = udiv i64 %"$_literal_cost_call_88", 960 + %"$gasdivceil_91" = icmp eq i64 %"$gasdivceil_89", 0 + %"$gasdivceil_92" = add i64 %"$gasdivceil_90", 1 + %"$gasdivceil_93" = select i1 %"$gasdivceil_91", i64 %"$gasdivceil_90", i64 %"$gasdivceil_92" + %"$gasrem_94" = load i64, i64* @_gasrem, align 8 + %"$gascmp_95" = icmp ugt i64 %"$gasdivceil_93", %"$gasrem_94" + br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" + +"$out_of_gas_96": ; preds = %"$have_gas_84" + call void @_out_of_gas() + br label %"$have_gas_97" + +"$have_gas_97": ; preds = %"$out_of_gas_96", %"$have_gas_84" + %"$consume_98" = sub i64 %"$gasrem_94", %"$gasdivceil_93" + store i64 %"$consume_98", i64* @_gasrem, align 8 + %"$execptr_load_99" = load i8*, i8** @_execptr, align 8 + %"$ecdsa_recover_pk_sig_100" = alloca [64 x i8], align 1 + store [64 x i8] %sig, [64 x i8]* %"$ecdsa_recover_pk_sig_100", align 1 + %"$ecdsa_recover_pk_call_101" = call [65 x i8]* @_ecdsa_recover_pk(i8* %"$execptr_load_99", %Bystr %2, [64 x i8]* %"$ecdsa_recover_pk_sig_100", %Uint32 %4), !dbg !12 + %"$ecdsa_recover_pk_103" = load [65 x i8], [65 x i8]* %"$ecdsa_recover_pk_call_101", align 1 + store [65 x i8] %"$ecdsa_recover_pk_103", [65 x i8]* %pk, align 1, !dbg !12 + %"$gasrem_104" = load i64, i64* @_gasrem, align 8 + %"$gascmp_105" = icmp ugt i64 1, %"$gasrem_104" + br i1 %"$gascmp_105", label %"$out_of_gas_106", label %"$have_gas_107" + +"$out_of_gas_106": ; preds = %"$have_gas_97" + call void @_out_of_gas() + br label %"$have_gas_107" + +"$have_gas_107": ; preds = %"$out_of_gas_106", %"$have_gas_97" + %"$consume_108" = sub i64 %"$gasrem_104", 1 + store i64 %"$consume_108", i64* @_gasrem, align 8 %pos = alloca %Uint32, align 8 - %"$gasrem_151" = load i64, i64* @_gasrem, align 8 - %"$gascmp_152" = icmp ugt i64 1, %"$gasrem_151" - br i1 %"$gascmp_152", label %"$out_of_gas_153", label %"$have_gas_154" + %"$gasrem_109" = load i64, i64* @_gasrem, align 8 + %"$gascmp_110" = icmp ugt i64 1, %"$gasrem_109" + br i1 %"$gascmp_110", label %"$out_of_gas_111", label %"$have_gas_112" -"$out_of_gas_153": ; preds = %"$have_gas_149" +"$out_of_gas_111": ; preds = %"$have_gas_107" call void @_out_of_gas() - br label %"$have_gas_154" + br label %"$have_gas_112" -"$have_gas_154": ; preds = %"$out_of_gas_153", %"$have_gas_149" - %"$consume_155" = sub i64 %"$gasrem_151", 1 - store i64 %"$consume_155", i64* @_gasrem, align 8 +"$have_gas_112": ; preds = %"$out_of_gas_111", %"$have_gas_107" + %"$consume_113" = sub i64 %"$gasrem_109", 1 + store i64 %"$consume_113", i64* @_gasrem, align 8 store %Uint32 { i32 1 }, %Uint32* %pos, align 4, !dbg !13 - %"$gasrem_156" = load i64, i64* @_gasrem, align 8 - %"$gascmp_157" = icmp ugt i64 1, %"$gasrem_156" - br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" + %"$gasrem_114" = load i64, i64* @_gasrem, align 8 + %"$gascmp_115" = icmp ugt i64 1, %"$gasrem_114" + br i1 %"$gascmp_115", label %"$out_of_gas_116", label %"$have_gas_117" -"$out_of_gas_158": ; preds = %"$have_gas_154" +"$out_of_gas_116": ; preds = %"$have_gas_112" call void @_out_of_gas() - br label %"$have_gas_159" + br label %"$have_gas_117" -"$have_gas_159": ; preds = %"$out_of_gas_158", %"$have_gas_154" - %"$consume_160" = sub i64 %"$gasrem_156", 1 - store i64 %"$consume_160", i64* @_gasrem, align 8 +"$have_gas_117": ; preds = %"$out_of_gas_116", %"$have_gas_112" + %"$consume_118" = sub i64 %"$gasrem_114", 1 + store i64 %"$consume_118", i64* @_gasrem, align 8 %len = alloca %Uint32, align 8 - %"$gasrem_161" = load i64, i64* @_gasrem, align 8 - %"$gascmp_162" = icmp ugt i64 1, %"$gasrem_161" - br i1 %"$gascmp_162", label %"$out_of_gas_163", label %"$have_gas_164" + %"$gasrem_119" = load i64, i64* @_gasrem, align 8 + %"$gascmp_120" = icmp ugt i64 1, %"$gasrem_119" + br i1 %"$gascmp_120", label %"$out_of_gas_121", label %"$have_gas_122" -"$out_of_gas_163": ; preds = %"$have_gas_159" +"$out_of_gas_121": ; preds = %"$have_gas_117" call void @_out_of_gas() - br label %"$have_gas_164" + br label %"$have_gas_122" -"$have_gas_164": ; preds = %"$out_of_gas_163", %"$have_gas_159" - %"$consume_165" = sub i64 %"$gasrem_161", 1 - store i64 %"$consume_165", i64* @_gasrem, align 8 +"$have_gas_122": ; preds = %"$out_of_gas_121", %"$have_gas_117" + %"$consume_123" = sub i64 %"$gasrem_119", 1 + store i64 %"$consume_123", i64* @_gasrem, align 8 store %Uint32 { i32 64 }, %Uint32* %len, align 4, !dbg !14 + %"$gasrem_124" = load i64, i64* @_gasrem, align 8 + %"$gascmp_125" = icmp ugt i64 1, %"$gasrem_124" + br i1 %"$gascmp_125", label %"$out_of_gas_126", label %"$have_gas_127" + +"$out_of_gas_126": ; preds = %"$have_gas_122" + call void @_out_of_gas() + br label %"$have_gas_127" + +"$have_gas_127": ; preds = %"$out_of_gas_126", %"$have_gas_122" + %"$consume_128" = sub i64 %"$gasrem_124", 1 + store i64 %"$consume_128", i64* @_gasrem, align 8 + %pk_bs = alloca %Bystr, align 8 + %"$gasrem_129" = load i64, i64* @_gasrem, align 8 + %"$gascmp_130" = icmp ugt i64 65, %"$gasrem_129" + br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" + +"$out_of_gas_131": ; preds = %"$have_gas_127" + call void @_out_of_gas() + br label %"$have_gas_132" + +"$have_gas_132": ; preds = %"$out_of_gas_131", %"$have_gas_127" + %"$consume_133" = sub i64 %"$gasrem_129", 65 + store i64 %"$consume_133", i64* @_gasrem, align 8 + %"$execptr_load_134" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_pk_135" = alloca [65 x i8], align 1 + %"$pk_136" = load [65 x i8], [65 x i8]* %pk, align 1 + store [65 x i8] %"$pk_136", [65 x i8]* %"$to_bystr_pk_135", align 1 + %"$$to_bystr_pk_135_137" = bitcast [65 x i8]* %"$to_bystr_pk_135" to i8* + %"$to_bystr_call_138" = call %Bystr @_to_bystr(i8* %"$execptr_load_134", i32 65, i8* %"$$to_bystr_pk_135_137"), !dbg !15 + store %Bystr %"$to_bystr_call_138", %Bystr* %pk_bs, align 8, !dbg !15 + %"$gasrem_139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_140" = icmp ugt i64 1, %"$gasrem_139" + br i1 %"$gascmp_140", label %"$out_of_gas_141", label %"$have_gas_142" + +"$out_of_gas_141": ; preds = %"$have_gas_132" + call void @_out_of_gas() + br label %"$have_gas_142" + +"$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_132" + %"$consume_143" = sub i64 %"$gasrem_139", 1 + store i64 %"$consume_143", i64* @_gasrem, align 8 + %pk_ = alloca %Bystr, align 8 + %"$_literal_cost_pk_bs_144" = alloca %Bystr, align 8 + %"$pk_bs_145" = load %Bystr, %Bystr* %pk_bs, align 8 + store %Bystr %"$pk_bs_145", %Bystr* %"$_literal_cost_pk_bs_144", align 8 + %"$$_literal_cost_pk_bs_144_146" = bitcast %Bystr* %"$_literal_cost_pk_bs_144" to i8* + %"$_literal_cost_call_147" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$_literal_cost_pk_bs_144_146") + %"$pos_148" = load %Uint32, %Uint32* %pos, align 4 + %"$valueof_149" = extractvalue %Uint32 %"$pos_148", 0 + %"$valueof_150" = zext i32 %"$valueof_149" to i64 + %"$len_151" = load %Uint32, %Uint32* %len, align 4 + %"$valueof_152" = extractvalue %Uint32 %"$len_151", 0 + %"$valueof_153" = zext i32 %"$valueof_152" to i64 + %"$gasadd_154" = add i64 %"$valueof_150", %"$valueof_153" + %"$gasmin_155" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_147", i64 %"$gasadd_154") + %"$gasrem_156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_157" = icmp ugt i64 %"$gasmin_155", %"$gasrem_156" + br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" + +"$out_of_gas_158": ; preds = %"$have_gas_142" + call void @_out_of_gas() + br label %"$have_gas_159" + +"$have_gas_159": ; preds = %"$out_of_gas_158", %"$have_gas_142" + %"$consume_160" = sub i64 %"$gasrem_156", %"$gasmin_155" + store i64 %"$consume_160", i64* @_gasrem, align 8 + %"$execptr_load_161" = load i8*, i8** @_execptr, align 8 + %"$pk_bs_162" = load %Bystr, %Bystr* %pk_bs, align 8 + %"$pos_163" = load %Uint32, %Uint32* %pos, align 4 + %"$len_164" = load %Uint32, %Uint32* %len, align 4 + %"$substr_call_165" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_161", %Bystr %"$pk_bs_162", %Uint32 %"$pos_163", %Uint32 %"$len_164"), !dbg !16 + store %Bystr %"$substr_call_165", %Bystr* %pk_, align 8, !dbg !16 %"$gasrem_166" = load i64, i64* @_gasrem, align 8 %"$gascmp_167" = icmp ugt i64 1, %"$gasrem_166" br i1 %"$gascmp_167", label %"$out_of_gas_168", label %"$have_gas_169" -"$out_of_gas_168": ; preds = %"$have_gas_164" +"$out_of_gas_168": ; preds = %"$have_gas_159" call void @_out_of_gas() br label %"$have_gas_169" -"$have_gas_169": ; preds = %"$out_of_gas_168", %"$have_gas_164" +"$have_gas_169": ; preds = %"$out_of_gas_168", %"$have_gas_159" %"$consume_170" = sub i64 %"$gasrem_166", 1 store i64 %"$consume_170", i64* @_gasrem, align 8 - %pk_bs = alloca %Bystr, align 8 - %"$gasrem_171" = load i64, i64* @_gasrem, align 8 - %"$gascmp_172" = icmp ugt i64 65, %"$gasrem_171" - br i1 %"$gascmp_172", label %"$out_of_gas_173", label %"$have_gas_174" + %pkHash = alloca [32 x i8], align 1 + %"$_literal_cost_pk__171" = alloca %Bystr, align 8 + %"$pk__172" = load %Bystr, %Bystr* %pk_, align 8 + store %Bystr %"$pk__172", %Bystr* %"$_literal_cost_pk__171", align 8 + %"$$_literal_cost_pk__171_173" = bitcast %Bystr* %"$_literal_cost_pk__171" to i8* + %"$_literal_cost_call_174" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$_literal_cost_pk__171_173") + %"$gasdivceil_175" = urem i64 %"$_literal_cost_call_174", 2040 + %"$gasdivceil_176" = udiv i64 %"$_literal_cost_call_174", 2040 + %"$gasdivceil_177" = icmp eq i64 %"$gasdivceil_175", 0 + %"$gasdivceil_178" = add i64 %"$gasdivceil_176", 1 + %"$gasdivceil_179" = select i1 %"$gasdivceil_177", i64 %"$gasdivceil_176", i64 %"$gasdivceil_178" + %"$gasrem_180" = load i64, i64* @_gasrem, align 8 + %"$gascmp_181" = icmp ugt i64 %"$gasdivceil_179", %"$gasrem_180" + br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" + +"$out_of_gas_182": ; preds = %"$have_gas_169" + call void @_out_of_gas() + br label %"$have_gas_183" + +"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_169" + %"$consume_184" = sub i64 %"$gasrem_180", %"$gasdivceil_179" + store i64 %"$consume_184", i64* @_gasrem, align 8 + %"$execptr_load_185" = load i8*, i8** @_execptr, align 8 + %"$keccak256hash_pk__186" = alloca %Bystr, align 8 + %"$pk__187" = load %Bystr, %Bystr* %pk_, align 8 + store %Bystr %"$pk__187", %Bystr* %"$keccak256hash_pk__186", align 8 + %"$$keccak256hash_pk__186_188" = bitcast %Bystr* %"$keccak256hash_pk__186" to i8* + %"$keccak256hash_call_189" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_185", %_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$keccak256hash_pk__186_188"), !dbg !17 + %"$keccak256hash_191" = load [32 x i8], [32 x i8]* %"$keccak256hash_call_189", align 1 + store [32 x i8] %"$keccak256hash_191", [32 x i8]* %pkHash, align 1, !dbg !17 + %"$gasrem_192" = load i64, i64* @_gasrem, align 8 + %"$gascmp_193" = icmp ugt i64 1, %"$gasrem_192" + br i1 %"$gascmp_193", label %"$out_of_gas_194", label %"$have_gas_195" + +"$out_of_gas_194": ; preds = %"$have_gas_183" + call void @_out_of_gas() + br label %"$have_gas_195" + +"$have_gas_195": ; preds = %"$out_of_gas_194", %"$have_gas_183" + %"$consume_196" = sub i64 %"$gasrem_192", 1 + store i64 %"$consume_196", i64* @_gasrem, align 8 + %pkHash_bs = alloca %Bystr, align 8 + %"$gasrem_197" = load i64, i64* @_gasrem, align 8 + %"$gascmp_198" = icmp ugt i64 32, %"$gasrem_197" + br i1 %"$gascmp_198", label %"$out_of_gas_199", label %"$have_gas_200" + +"$out_of_gas_199": ; preds = %"$have_gas_195" + call void @_out_of_gas() + br label %"$have_gas_200" + +"$have_gas_200": ; preds = %"$out_of_gas_199", %"$have_gas_195" + %"$consume_201" = sub i64 %"$gasrem_197", 32 + store i64 %"$consume_201", i64* @_gasrem, align 8 + %"$execptr_load_202" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_pkHash_203" = alloca [32 x i8], align 1 + %"$pkHash_204" = load [32 x i8], [32 x i8]* %pkHash, align 1 + store [32 x i8] %"$pkHash_204", [32 x i8]* %"$to_bystr_pkHash_203", align 1 + %"$$to_bystr_pkHash_203_205" = bitcast [32 x i8]* %"$to_bystr_pkHash_203" to i8* + %"$to_bystr_call_206" = call %Bystr @_to_bystr(i8* %"$execptr_load_202", i32 32, i8* %"$$to_bystr_pkHash_203_205"), !dbg !18 + store %Bystr %"$to_bystr_call_206", %Bystr* %pkHash_bs, align 8, !dbg !18 + %"$gasrem_207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_208" = icmp ugt i64 1, %"$gasrem_207" + br i1 %"$gascmp_208", label %"$out_of_gas_209", label %"$have_gas_210" + +"$out_of_gas_209": ; preds = %"$have_gas_200" + call void @_out_of_gas() + br label %"$have_gas_210" + +"$have_gas_210": ; preds = %"$out_of_gas_209", %"$have_gas_200" + %"$consume_211" = sub i64 %"$gasrem_207", 1 + store i64 %"$consume_211", i64* @_gasrem, align 8 + %"$pos_0" = alloca %Uint32, align 8 + %"$gasrem_212" = load i64, i64* @_gasrem, align 8 + %"$gascmp_213" = icmp ugt i64 1, %"$gasrem_212" + br i1 %"$gascmp_213", label %"$out_of_gas_214", label %"$have_gas_215" -"$out_of_gas_173": ; preds = %"$have_gas_169" - call void @_out_of_gas() - br label %"$have_gas_174" - -"$have_gas_174": ; preds = %"$out_of_gas_173", %"$have_gas_169" - %"$consume_175" = sub i64 %"$gasrem_171", 65 - store i64 %"$consume_175", i64* @_gasrem, align 8 - %"$execptr_load_176" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_pk_177" = alloca [65 x i8], align 1 - %"$pk_178" = load [65 x i8], [65 x i8]* %pk, align 1 - store [65 x i8] %"$pk_178", [65 x i8]* %"$to_bystr_pk_177", align 1 - %"$$to_bystr_pk_177_179" = bitcast [65 x i8]* %"$to_bystr_pk_177" to i8* - %"$to_bystr_call_180" = call %Bystr @_to_bystr(i8* %"$execptr_load_176", i32 65, i8* %"$$to_bystr_pk_177_179"), !dbg !15 - store %Bystr %"$to_bystr_call_180", %Bystr* %pk_bs, align 8, !dbg !15 - %"$gasrem_181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_182" = icmp ugt i64 1, %"$gasrem_181" - br i1 %"$gascmp_182", label %"$out_of_gas_183", label %"$have_gas_184" - -"$out_of_gas_183": ; preds = %"$have_gas_174" +"$out_of_gas_214": ; preds = %"$have_gas_210" call void @_out_of_gas() - br label %"$have_gas_184" + br label %"$have_gas_215" -"$have_gas_184": ; preds = %"$out_of_gas_183", %"$have_gas_174" - %"$consume_185" = sub i64 %"$gasrem_181", 1 - store i64 %"$consume_185", i64* @_gasrem, align 8 - %pk_ = alloca %Bystr, align 8 - %"$_literal_cost_pk_bs_186" = alloca %Bystr, align 8 - %"$pk_bs_187" = load %Bystr, %Bystr* %pk_bs, align 8 - store %Bystr %"$pk_bs_187", %Bystr* %"$_literal_cost_pk_bs_186", align 8 - %"$$_literal_cost_pk_bs_186_188" = bitcast %Bystr* %"$_literal_cost_pk_bs_186" to i8* - %"$_literal_cost_call_189" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$_literal_cost_pk_bs_186_188") - %"$pos_190" = load %Uint32, %Uint32* %pos, align 4 - %"$valueof_191" = extractvalue %Uint32 %"$pos_190", 0 - %"$valueof_192" = zext i32 %"$valueof_191" to i64 - %"$len_193" = load %Uint32, %Uint32* %len, align 4 - %"$valueof_194" = extractvalue %Uint32 %"$len_193", 0 - %"$valueof_195" = zext i32 %"$valueof_194" to i64 - %"$gasadd_196" = add i64 %"$valueof_192", %"$valueof_195" - %"$gasmin_197" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_189", i64 %"$gasadd_196") - %"$gasrem_198" = load i64, i64* @_gasrem, align 8 - %"$gascmp_199" = icmp ugt i64 %"$gasmin_197", %"$gasrem_198" - br i1 %"$gascmp_199", label %"$out_of_gas_200", label %"$have_gas_201" - -"$out_of_gas_200": ; preds = %"$have_gas_184" - call void @_out_of_gas() - br label %"$have_gas_201" - -"$have_gas_201": ; preds = %"$out_of_gas_200", %"$have_gas_184" - %"$consume_202" = sub i64 %"$gasrem_198", %"$gasmin_197" - store i64 %"$consume_202", i64* @_gasrem, align 8 - %"$execptr_load_203" = load i8*, i8** @_execptr, align 8 - %"$pk_bs_204" = load %Bystr, %Bystr* %pk_bs, align 8 - %"$pos_205" = load %Uint32, %Uint32* %pos, align 4 - %"$len_206" = load %Uint32, %Uint32* %len, align 4 - %"$substr_call_207" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_203", %Bystr %"$pk_bs_204", %Uint32 %"$pos_205", %Uint32 %"$len_206"), !dbg !16 - store %Bystr %"$substr_call_207", %Bystr* %pk_, align 8, !dbg !16 - %"$gasrem_208" = load i64, i64* @_gasrem, align 8 - %"$gascmp_209" = icmp ugt i64 1, %"$gasrem_208" - br i1 %"$gascmp_209", label %"$out_of_gas_210", label %"$have_gas_211" - -"$out_of_gas_210": ; preds = %"$have_gas_201" +"$have_gas_215": ; preds = %"$out_of_gas_214", %"$have_gas_210" + %"$consume_216" = sub i64 %"$gasrem_212", 1 + store i64 %"$consume_216", i64* @_gasrem, align 8 + store %Uint32 { i32 12 }, %Uint32* %"$pos_0", align 4, !dbg !19 + %"$gasrem_217" = load i64, i64* @_gasrem, align 8 + %"$gascmp_218" = icmp ugt i64 1, %"$gasrem_217" + br i1 %"$gascmp_218", label %"$out_of_gas_219", label %"$have_gas_220" + +"$out_of_gas_219": ; preds = %"$have_gas_215" call void @_out_of_gas() - br label %"$have_gas_211" + br label %"$have_gas_220" -"$have_gas_211": ; preds = %"$out_of_gas_210", %"$have_gas_201" - %"$consume_212" = sub i64 %"$gasrem_208", 1 - store i64 %"$consume_212", i64* @_gasrem, align 8 - %pkHash = alloca [32 x i8], align 1 - %"$_literal_cost_pk__213" = alloca %Bystr, align 8 - %"$pk__214" = load %Bystr, %Bystr* %pk_, align 8 - store %Bystr %"$pk__214", %Bystr* %"$_literal_cost_pk__213", align 8 - %"$$_literal_cost_pk__213_215" = bitcast %Bystr* %"$_literal_cost_pk__213" to i8* - %"$_literal_cost_call_216" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$_literal_cost_pk__213_215") - %"$gasdivceil_217" = urem i64 %"$_literal_cost_call_216", 2040 - %"$gasdivceil_218" = udiv i64 %"$_literal_cost_call_216", 2040 - %"$gasdivceil_219" = icmp eq i64 %"$gasdivceil_217", 0 - %"$gasdivceil_220" = add i64 %"$gasdivceil_218", 1 - %"$gasdivceil_221" = select i1 %"$gasdivceil_219", i64 %"$gasdivceil_218", i64 %"$gasdivceil_220" +"$have_gas_220": ; preds = %"$out_of_gas_219", %"$have_gas_215" + %"$consume_221" = sub i64 %"$gasrem_217", 1 + store i64 %"$consume_221", i64* @_gasrem, align 8 + %"$len_1" = alloca %Uint32, align 8 %"$gasrem_222" = load i64, i64* @_gasrem, align 8 - %"$gascmp_223" = icmp ugt i64 %"$gasdivceil_221", %"$gasrem_222" + %"$gascmp_223" = icmp ugt i64 1, %"$gasrem_222" br i1 %"$gascmp_223", label %"$out_of_gas_224", label %"$have_gas_225" -"$out_of_gas_224": ; preds = %"$have_gas_211" +"$out_of_gas_224": ; preds = %"$have_gas_220" call void @_out_of_gas() br label %"$have_gas_225" -"$have_gas_225": ; preds = %"$out_of_gas_224", %"$have_gas_211" - %"$consume_226" = sub i64 %"$gasrem_222", %"$gasdivceil_221" +"$have_gas_225": ; preds = %"$out_of_gas_224", %"$have_gas_220" + %"$consume_226" = sub i64 %"$gasrem_222", 1 store i64 %"$consume_226", i64* @_gasrem, align 8 - %"$execptr_load_227" = load i8*, i8** @_execptr, align 8 - %"$keccak256hash_pk__228" = alloca %Bystr, align 8 - %"$pk__229" = load %Bystr, %Bystr* %pk_, align 8 - store %Bystr %"$pk__229", %Bystr* %"$keccak256hash_pk__228", align 8 - %"$$keccak256hash_pk__228_230" = bitcast %Bystr* %"$keccak256hash_pk__228" to i8* - %"$keccak256hash_call_231" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_227", %_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$keccak256hash_pk__228_230"), !dbg !17 - %"$keccak256hash_233" = load [32 x i8], [32 x i8]* %"$keccak256hash_call_231", align 1 - store [32 x i8] %"$keccak256hash_233", [32 x i8]* %pkHash, align 1, !dbg !17 - %"$gasrem_234" = load i64, i64* @_gasrem, align 8 - %"$gascmp_235" = icmp ugt i64 1, %"$gasrem_234" - br i1 %"$gascmp_235", label %"$out_of_gas_236", label %"$have_gas_237" - -"$out_of_gas_236": ; preds = %"$have_gas_225" - call void @_out_of_gas() - br label %"$have_gas_237" - -"$have_gas_237": ; preds = %"$out_of_gas_236", %"$have_gas_225" - %"$consume_238" = sub i64 %"$gasrem_234", 1 - store i64 %"$consume_238", i64* @_gasrem, align 8 - %pkHash_bs = alloca %Bystr, align 8 - %"$gasrem_239" = load i64, i64* @_gasrem, align 8 - %"$gascmp_240" = icmp ugt i64 32, %"$gasrem_239" - br i1 %"$gascmp_240", label %"$out_of_gas_241", label %"$have_gas_242" + store %Uint32 { i32 20 }, %Uint32* %"$len_1", align 4, !dbg !20 + %"$gasrem_227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_228" = icmp ugt i64 1, %"$gasrem_227" + br i1 %"$gascmp_228", label %"$out_of_gas_229", label %"$have_gas_230" -"$out_of_gas_241": ; preds = %"$have_gas_237" - call void @_out_of_gas() - br label %"$have_gas_242" - -"$have_gas_242": ; preds = %"$out_of_gas_241", %"$have_gas_237" - %"$consume_243" = sub i64 %"$gasrem_239", 32 - store i64 %"$consume_243", i64* @_gasrem, align 8 - %"$execptr_load_244" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_pkHash_245" = alloca [32 x i8], align 1 - %"$pkHash_246" = load [32 x i8], [32 x i8]* %pkHash, align 1 - store [32 x i8] %"$pkHash_246", [32 x i8]* %"$to_bystr_pkHash_245", align 1 - %"$$to_bystr_pkHash_245_247" = bitcast [32 x i8]* %"$to_bystr_pkHash_245" to i8* - %"$to_bystr_call_248" = call %Bystr @_to_bystr(i8* %"$execptr_load_244", i32 32, i8* %"$$to_bystr_pkHash_245_247"), !dbg !18 - store %Bystr %"$to_bystr_call_248", %Bystr* %pkHash_bs, align 8, !dbg !18 - %"$gasrem_249" = load i64, i64* @_gasrem, align 8 - %"$gascmp_250" = icmp ugt i64 1, %"$gasrem_249" - br i1 %"$gascmp_250", label %"$out_of_gas_251", label %"$have_gas_252" - -"$out_of_gas_251": ; preds = %"$have_gas_242" +"$out_of_gas_229": ; preds = %"$have_gas_225" call void @_out_of_gas() - br label %"$have_gas_252" + br label %"$have_gas_230" -"$have_gas_252": ; preds = %"$out_of_gas_251", %"$have_gas_242" - %"$consume_253" = sub i64 %"$gasrem_249", 1 - store i64 %"$consume_253", i64* @_gasrem, align 8 - %"$pos_0" = alloca %Uint32, align 8 +"$have_gas_230": ; preds = %"$out_of_gas_229", %"$have_gas_225" + %"$consume_231" = sub i64 %"$gasrem_227", 1 + store i64 %"$consume_231", i64* @_gasrem, align 8 + %addr_bs = alloca %Bystr, align 8 + %"$_literal_cost_pkHash_bs_232" = alloca %Bystr, align 8 + %"$pkHash_bs_233" = load %Bystr, %Bystr* %pkHash_bs, align 8 + store %Bystr %"$pkHash_bs_233", %Bystr* %"$_literal_cost_pkHash_bs_232", align 8 + %"$$_literal_cost_pkHash_bs_232_234" = bitcast %Bystr* %"$_literal_cost_pkHash_bs_232" to i8* + %"$_literal_cost_call_235" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$_literal_cost_pkHash_bs_232_234") + %"$$pos_0_236" = load %Uint32, %Uint32* %"$pos_0", align 4 + %"$valueof_237" = extractvalue %Uint32 %"$$pos_0_236", 0 + %"$valueof_238" = zext i32 %"$valueof_237" to i64 + %"$$len_1_239" = load %Uint32, %Uint32* %"$len_1", align 4 + %"$valueof_240" = extractvalue %Uint32 %"$$len_1_239", 0 + %"$valueof_241" = zext i32 %"$valueof_240" to i64 + %"$gasadd_242" = add i64 %"$valueof_238", %"$valueof_241" + %"$gasmin_243" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_235", i64 %"$gasadd_242") + %"$gasrem_244" = load i64, i64* @_gasrem, align 8 + %"$gascmp_245" = icmp ugt i64 %"$gasmin_243", %"$gasrem_244" + br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" + +"$out_of_gas_246": ; preds = %"$have_gas_230" + call void @_out_of_gas() + br label %"$have_gas_247" + +"$have_gas_247": ; preds = %"$out_of_gas_246", %"$have_gas_230" + %"$consume_248" = sub i64 %"$gasrem_244", %"$gasmin_243" + store i64 %"$consume_248", i64* @_gasrem, align 8 + %"$execptr_load_249" = load i8*, i8** @_execptr, align 8 + %"$pkHash_bs_250" = load %Bystr, %Bystr* %pkHash_bs, align 8 + %"$$pos_0_251" = load %Uint32, %Uint32* %"$pos_0", align 4 + %"$$len_1_252" = load %Uint32, %Uint32* %"$len_1", align 4 + %"$substr_call_253" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_249", %Bystr %"$pkHash_bs_250", %Uint32 %"$$pos_0_251", %Uint32 %"$$len_1_252"), !dbg !21 + store %Bystr %"$substr_call_253", %Bystr* %addr_bs, align 8, !dbg !21 %"$gasrem_254" = load i64, i64* @_gasrem, align 8 %"$gascmp_255" = icmp ugt i64 1, %"$gasrem_254" br i1 %"$gascmp_255", label %"$out_of_gas_256", label %"$have_gas_257" -"$out_of_gas_256": ; preds = %"$have_gas_252" +"$out_of_gas_256": ; preds = %"$have_gas_247" call void @_out_of_gas() br label %"$have_gas_257" -"$have_gas_257": ; preds = %"$out_of_gas_256", %"$have_gas_252" +"$have_gas_257": ; preds = %"$out_of_gas_256", %"$have_gas_247" %"$consume_258" = sub i64 %"$gasrem_254", 1 store i64 %"$consume_258", i64* @_gasrem, align 8 - store %Uint32 { i32 12 }, %Uint32* %"$pos_0", align 4, !dbg !19 + %addr_opt = alloca %TName_Option_ByStr20*, align 8 %"$gasrem_259" = load i64, i64* @_gasrem, align 8 - %"$gascmp_260" = icmp ugt i64 1, %"$gasrem_259" + %"$gascmp_260" = icmp ugt i64 20, %"$gasrem_259" br i1 %"$gascmp_260", label %"$out_of_gas_261", label %"$have_gas_262" "$out_of_gas_261": ; preds = %"$have_gas_257" @@ -479,242 +545,102 @@ entry: br label %"$have_gas_262" "$have_gas_262": ; preds = %"$out_of_gas_261", %"$have_gas_257" - %"$consume_263" = sub i64 %"$gasrem_259", 1 + %"$consume_263" = sub i64 %"$gasrem_259", 20 store i64 %"$consume_263", i64* @_gasrem, align 8 - %"$len_1" = alloca %Uint32, align 8 - %"$gasrem_264" = load i64, i64* @_gasrem, align 8 - %"$gascmp_265" = icmp ugt i64 1, %"$gasrem_264" - br i1 %"$gascmp_265", label %"$out_of_gas_266", label %"$have_gas_267" - -"$out_of_gas_266": ; preds = %"$have_gas_262" - call void @_out_of_gas() - br label %"$have_gas_267" - -"$have_gas_267": ; preds = %"$out_of_gas_266", %"$have_gas_262" - %"$consume_268" = sub i64 %"$gasrem_264", 1 - store i64 %"$consume_268", i64* @_gasrem, align 8 - store %Uint32 { i32 20 }, %Uint32* %"$len_1", align 4, !dbg !20 - %"$gasrem_269" = load i64, i64* @_gasrem, align 8 - %"$gascmp_270" = icmp ugt i64 1, %"$gasrem_269" - br i1 %"$gascmp_270", label %"$out_of_gas_271", label %"$have_gas_272" + %"$execptr_load_264" = load i8*, i8** @_execptr, align 8 + %"$addr_bs_265" = load %Bystr, %Bystr* %addr_bs, align 8 + %"$to_bystr20_call_266" = call i8* @_bystr_to_bystrx(i8* %"$execptr_load_264", i32 20, %Bystr %"$addr_bs_265"), !dbg !22 + %"$to_bystr20_267" = bitcast i8* %"$to_bystr20_call_266" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$to_bystr20_267", %TName_Option_ByStr20** %addr_opt, align 8, !dbg !22 + %"$gasrem_268" = load i64, i64* @_gasrem, align 8 + %"$gascmp_269" = icmp ugt i64 2, %"$gasrem_268" + br i1 %"$gascmp_269", label %"$out_of_gas_270", label %"$have_gas_271" + +"$out_of_gas_270": ; preds = %"$have_gas_262" + call void @_out_of_gas() + br label %"$have_gas_271" + +"$have_gas_271": ; preds = %"$out_of_gas_270", %"$have_gas_262" + %"$consume_272" = sub i64 %"$gasrem_268", 2 + store i64 %"$consume_272", i64* @_gasrem, align 8 + %"$addr_opt_274" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %addr_opt, align 8 + %"$addr_opt_tag_275" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$addr_opt_274", i32 0, i32 0 + %"$addr_opt_tag_276" = load i8, i8* %"$addr_opt_tag_275", align 1 + switch i8 %"$addr_opt_tag_276", label %"$empty_default_277" [ + i8 0, label %"$Some_278" + i8 1, label %"$None_288" + ], !dbg !23 -"$out_of_gas_271": ; preds = %"$have_gas_267" - call void @_out_of_gas() - br label %"$have_gas_272" +"$Some_278": ; preds = %"$have_gas_271" + %"$addr_opt_279" = bitcast %TName_Option_ByStr20* %"$addr_opt_274" to %CName_Some_ByStr20* + %"$addr_gep_280" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$addr_opt_279", i32 0, i32 1 + %"$addr_load_281" = load [20 x i8], [20 x i8]* %"$addr_gep_280", align 1 + %addr = alloca [20 x i8], align 1 + store [20 x i8] %"$addr_load_281", [20 x i8]* %addr, align 1 + %"$gasrem_282" = load i64, i64* @_gasrem, align 8 + %"$gascmp_283" = icmp ugt i64 1, %"$gasrem_282" + br i1 %"$gascmp_283", label %"$out_of_gas_284", label %"$have_gas_285" -"$have_gas_272": ; preds = %"$out_of_gas_271", %"$have_gas_267" - %"$consume_273" = sub i64 %"$gasrem_269", 1 - store i64 %"$consume_273", i64* @_gasrem, align 8 - %addr_bs = alloca %Bystr, align 8 - %"$_literal_cost_pkHash_bs_274" = alloca %Bystr, align 8 - %"$pkHash_bs_275" = load %Bystr, %Bystr* %pkHash_bs, align 8 - store %Bystr %"$pkHash_bs_275", %Bystr* %"$_literal_cost_pkHash_bs_274", align 8 - %"$$_literal_cost_pkHash_bs_274_276" = bitcast %Bystr* %"$_literal_cost_pkHash_bs_274" to i8* - %"$_literal_cost_call_277" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$_literal_cost_pkHash_bs_274_276") - %"$$pos_0_278" = load %Uint32, %Uint32* %"$pos_0", align 4 - %"$valueof_279" = extractvalue %Uint32 %"$$pos_0_278", 0 - %"$valueof_280" = zext i32 %"$valueof_279" to i64 - %"$$len_1_281" = load %Uint32, %Uint32* %"$len_1", align 4 - %"$valueof_282" = extractvalue %Uint32 %"$$len_1_281", 0 - %"$valueof_283" = zext i32 %"$valueof_282" to i64 - %"$gasadd_284" = add i64 %"$valueof_280", %"$valueof_283" - %"$gasmin_285" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_277", i64 %"$gasadd_284") - %"$gasrem_286" = load i64, i64* @_gasrem, align 8 - %"$gascmp_287" = icmp ugt i64 %"$gasmin_285", %"$gasrem_286" - br i1 %"$gascmp_287", label %"$out_of_gas_288", label %"$have_gas_289" - -"$out_of_gas_288": ; preds = %"$have_gas_272" - call void @_out_of_gas() - br label %"$have_gas_289" - -"$have_gas_289": ; preds = %"$out_of_gas_288", %"$have_gas_272" - %"$consume_290" = sub i64 %"$gasrem_286", %"$gasmin_285" - store i64 %"$consume_290", i64* @_gasrem, align 8 - %"$execptr_load_291" = load i8*, i8** @_execptr, align 8 - %"$pkHash_bs_292" = load %Bystr, %Bystr* %pkHash_bs, align 8 - %"$$pos_0_293" = load %Uint32, %Uint32* %"$pos_0", align 4 - %"$$len_1_294" = load %Uint32, %Uint32* %"$len_1", align 4 - %"$substr_call_295" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_291", %Bystr %"$pkHash_bs_292", %Uint32 %"$$pos_0_293", %Uint32 %"$$len_1_294"), !dbg !21 - store %Bystr %"$substr_call_295", %Bystr* %addr_bs, align 8, !dbg !21 - %"$gasrem_296" = load i64, i64* @_gasrem, align 8 - %"$gascmp_297" = icmp ugt i64 1, %"$gasrem_296" - br i1 %"$gascmp_297", label %"$out_of_gas_298", label %"$have_gas_299" - -"$out_of_gas_298": ; preds = %"$have_gas_289" +"$out_of_gas_284": ; preds = %"$Some_278" call void @_out_of_gas() - br label %"$have_gas_299" + br label %"$have_gas_285" -"$have_gas_299": ; preds = %"$out_of_gas_298", %"$have_gas_289" - %"$consume_300" = sub i64 %"$gasrem_296", 1 - store i64 %"$consume_300", i64* @_gasrem, align 8 - %addr_opt = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_301" = load i64, i64* @_gasrem, align 8 - %"$gascmp_302" = icmp ugt i64 20, %"$gasrem_301" - br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" - -"$out_of_gas_303": ; preds = %"$have_gas_299" - call void @_out_of_gas() - br label %"$have_gas_304" - -"$have_gas_304": ; preds = %"$out_of_gas_303", %"$have_gas_299" - %"$consume_305" = sub i64 %"$gasrem_301", 20 - store i64 %"$consume_305", i64* @_gasrem, align 8 - %"$execptr_load_306" = load i8*, i8** @_execptr, align 8 - %"$addr_bs_307" = load %Bystr, %Bystr* %addr_bs, align 8 - %"$to_bystr20_call_308" = call i8* @_bystr_to_bystrx(i8* %"$execptr_load_306", i32 20, %Bystr %"$addr_bs_307"), !dbg !22 - %"$to_bystr20_309" = bitcast i8* %"$to_bystr20_call_308" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$to_bystr20_309", %TName_Option_ByStr20** %addr_opt, align 8, !dbg !22 - %"$gasrem_310" = load i64, i64* @_gasrem, align 8 - %"$gascmp_311" = icmp ugt i64 2, %"$gasrem_310" - br i1 %"$gascmp_311", label %"$out_of_gas_312", label %"$have_gas_313" - -"$out_of_gas_312": ; preds = %"$have_gas_304" - call void @_out_of_gas() - br label %"$have_gas_313" - -"$have_gas_313": ; preds = %"$out_of_gas_312", %"$have_gas_304" - %"$consume_314" = sub i64 %"$gasrem_310", 2 - store i64 %"$consume_314", i64* @_gasrem, align 8 - %"$addr_opt_316" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %addr_opt, align 8 - %"$addr_opt_tag_317" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$addr_opt_316", i32 0, i32 0 - %"$addr_opt_tag_318" = load i8, i8* %"$addr_opt_tag_317", align 1 - switch i8 %"$addr_opt_tag_318", label %"$empty_default_319" [ - i8 0, label %"$Some_320" - i8 1, label %"$None_330" - ], !dbg !23 +"$have_gas_285": ; preds = %"$out_of_gas_284", %"$Some_278" + %"$consume_286" = sub i64 %"$gasrem_282", 1 + store i64 %"$consume_286", i64* @_gasrem, align 8 + %"$addr_287" = load [20 x i8], [20 x i8]* %addr, align 1 + store [20 x i8] %"$addr_287", [20 x i8]* %"$retval_5", align 1, !dbg !24 + br label %"$matchsucc_273" -"$Some_320": ; preds = %"$have_gas_313" - %"$addr_opt_321" = bitcast %TName_Option_ByStr20* %"$addr_opt_316" to %CName_Some_ByStr20* - %"$addr_gep_322" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$addr_opt_321", i32 0, i32 1 - %"$addr_load_323" = load [20 x i8], [20 x i8]* %"$addr_gep_322", align 1 - %addr = alloca [20 x i8], align 1 - store [20 x i8] %"$addr_load_323", [20 x i8]* %addr, align 1 - %"$gasrem_324" = load i64, i64* @_gasrem, align 8 - %"$gascmp_325" = icmp ugt i64 1, %"$gasrem_324" - br i1 %"$gascmp_325", label %"$out_of_gas_326", label %"$have_gas_327" +"$None_288": ; preds = %"$have_gas_271" + %"$addr_opt_289" = bitcast %TName_Option_ByStr20* %"$addr_opt_274" to %CName_None_ByStr20* + %"$gasrem_290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_291" = icmp ugt i64 1, %"$gasrem_290" + br i1 %"$gascmp_291", label %"$out_of_gas_292", label %"$have_gas_293" -"$out_of_gas_326": ; preds = %"$Some_320" +"$out_of_gas_292": ; preds = %"$None_288" call void @_out_of_gas() - br label %"$have_gas_327" - -"$have_gas_327": ; preds = %"$out_of_gas_326", %"$Some_320" - %"$consume_328" = sub i64 %"$gasrem_324", 1 - store i64 %"$consume_328", i64* @_gasrem, align 8 - %"$addr_329" = load [20 x i8], [20 x i8]* %addr, align 1 - store [20 x i8] %"$addr_329", [20 x i8]* %"$retval_12", align 1, !dbg !24 - br label %"$matchsucc_315" - -"$None_330": ; preds = %"$have_gas_313" - %"$addr_opt_331" = bitcast %TName_Option_ByStr20* %"$addr_opt_316" to %CName_None_ByStr20* - %"$gasrem_332" = load i64, i64* @_gasrem, align 8 - %"$gascmp_333" = icmp ugt i64 1, %"$gasrem_332" - br i1 %"$gascmp_333", label %"$out_of_gas_334", label %"$have_gas_335" - -"$out_of_gas_334": ; preds = %"$None_330" - call void @_out_of_gas() - br label %"$have_gas_335" + br label %"$have_gas_293" -"$have_gas_335": ; preds = %"$out_of_gas_334", %"$None_330" - %"$consume_336" = sub i64 %"$gasrem_332", 1 - store i64 %"$consume_336", i64* @_gasrem, align 8 - %"$gasrem_337" = load i64, i64* @_gasrem, align 8 - %"$gascmp_338" = icmp ugt i64 1, %"$gasrem_337" - br i1 %"$gascmp_338", label %"$out_of_gas_339", label %"$have_gas_340" +"$have_gas_293": ; preds = %"$out_of_gas_292", %"$None_288" + %"$consume_294" = sub i64 %"$gasrem_290", 1 + store i64 %"$consume_294", i64* @_gasrem, align 8 + %"$gasrem_295" = load i64, i64* @_gasrem, align 8 + %"$gascmp_296" = icmp ugt i64 1, %"$gasrem_295" + br i1 %"$gascmp_296", label %"$out_of_gas_297", label %"$have_gas_298" -"$out_of_gas_339": ; preds = %"$have_gas_335" +"$out_of_gas_297": ; preds = %"$have_gas_293" call void @_out_of_gas() - br label %"$have_gas_340" + br label %"$have_gas_298" -"$have_gas_340": ; preds = %"$out_of_gas_339", %"$have_gas_335" - %"$consume_341" = sub i64 %"$gasrem_337", 1 - store i64 %"$consume_341", i64* @_gasrem, align 8 - %"$gasrem_342" = load i64, i64* @_gasrem, align 8 - %"$gascmp_343" = icmp ugt i64 1, %"$gasrem_342" - br i1 %"$gascmp_343", label %"$out_of_gas_344", label %"$have_gas_345" +"$have_gas_298": ; preds = %"$out_of_gas_297", %"$have_gas_293" + %"$consume_299" = sub i64 %"$gasrem_295", 1 + store i64 %"$consume_299", i64* @_gasrem, align 8 + %"$gasrem_300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_301" = icmp ugt i64 1, %"$gasrem_300" + br i1 %"$gascmp_301", label %"$out_of_gas_302", label %"$have_gas_303" -"$out_of_gas_344": ; preds = %"$have_gas_340" +"$out_of_gas_302": ; preds = %"$have_gas_298" call void @_out_of_gas() - br label %"$have_gas_345" + br label %"$have_gas_303" -"$have_gas_345": ; preds = %"$out_of_gas_344", %"$have_gas_340" - %"$consume_346" = sub i64 %"$gasrem_342", 1 - store i64 %"$consume_346", i64* @_gasrem, align 8 - store [20 x i8] zeroinitializer, [20 x i8]* %"$retval_12", align 1, !dbg !27 - br label %"$matchsucc_315" +"$have_gas_303": ; preds = %"$out_of_gas_302", %"$have_gas_298" + %"$consume_304" = sub i64 %"$gasrem_300", 1 + store i64 %"$consume_304", i64* @_gasrem, align 8 + store [20 x i8] zeroinitializer, [20 x i8]* %"$retval_5", align 1, !dbg !27 + br label %"$matchsucc_273" -"$empty_default_319": ; preds = %"$have_gas_313" - br label %"$matchsucc_315" +"$empty_default_277": ; preds = %"$have_gas_271" + br label %"$matchsucc_273" -"$matchsucc_315": ; preds = %"$have_gas_345", %"$have_gas_327", %"$empty_default_319" - %"$$retval_12_347" = load [20 x i8], [20 x i8]* %"$retval_12", align 1 - store [20 x i8] %"$$retval_12_347", [20 x i8]* %1, align 1 +"$matchsucc_273": ; preds = %"$have_gas_303", %"$have_gas_285", %"$empty_default_277" + %"$$retval_5_305" = load [20 x i8], [20 x i8]* %"$retval_5", align 1 + store [20 x i8] %"$$retval_5_305", [20 x i8]* %1, align 1 ret void } -define internal { void (i8*, [20 x i8]*, %Uint32)*, i8* } @"$fundef_9"(%"$$fundef_9_env_88"* %0, [64 x i8]* %1) !dbg !29 { -entry: - %sig = load [64 x i8], [64 x i8]* %1, align 1 - %"$$fundef_9_env_msg_101" = getelementptr inbounds %"$$fundef_9_env_88", %"$$fundef_9_env_88"* %0, i32 0, i32 0 - %"$msg_envload_102" = load %Bystr, %Bystr* %"$$fundef_9_env_msg_101", align 8 - %msg = alloca %Bystr, align 8 - store %Bystr %"$msg_envload_102", %Bystr* %msg, align 8 - %"$retval_10" = alloca { void (i8*, [20 x i8]*, %Uint32)*, i8* }, align 8 - %"$gasrem_103" = load i64, i64* @_gasrem, align 8 - %"$gascmp_104" = icmp ugt i64 1, %"$gasrem_103" - br i1 %"$gascmp_104", label %"$out_of_gas_105", label %"$have_gas_106" - -"$out_of_gas_105": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_106" - -"$have_gas_106": ; preds = %"$out_of_gas_105", %entry - %"$consume_107" = sub i64 %"$gasrem_103", 1 - store i64 %"$consume_107", i64* @_gasrem, align 8 - %"$$fundef_11_envp_108_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_11_envp_108_salloc" = call i8* @_salloc(i8* %"$$fundef_11_envp_108_load", i64 80) - %"$$fundef_11_envp_108" = bitcast i8* %"$$fundef_11_envp_108_salloc" to %"$$fundef_11_env_87"* - %"$$fundef_11_env_voidp_110" = bitcast %"$$fundef_11_env_87"* %"$$fundef_11_envp_108" to i8* - %"$$fundef_11_cloval_111" = insertvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } { void (i8*, [20 x i8]*, %Uint32)* bitcast (void (%"$$fundef_11_env_87"*, [20 x i8]*, %Uint32)* @"$fundef_11" to void (i8*, [20 x i8]*, %Uint32)*), i8* undef }, i8* %"$$fundef_11_env_voidp_110", 1 - %"$$fundef_11_env_msg_112" = getelementptr inbounds %"$$fundef_11_env_87", %"$$fundef_11_env_87"* %"$$fundef_11_envp_108", i32 0, i32 0 - %"$msg_113" = load %Bystr, %Bystr* %msg, align 8 - store %Bystr %"$msg_113", %Bystr* %"$$fundef_11_env_msg_112", align 8 - %"$$fundef_11_env_sig_114" = getelementptr inbounds %"$$fundef_11_env_87", %"$$fundef_11_env_87"* %"$$fundef_11_envp_108", i32 0, i32 1 - store [64 x i8] %sig, [64 x i8]* %"$$fundef_11_env_sig_114", align 1 - store { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$fundef_11_cloval_111", { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$retval_10", align 8, !dbg !30 - %"$$retval_10_115" = load { void (i8*, [20 x i8]*, %Uint32)*, i8* }, { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$retval_10", align 8 - ret { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$retval_10_115" -} - -define internal { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } @"$fundef_7"(%"$$fundef_7_env_89"* %0, %Bystr %1) !dbg !31 { -entry: - %"$retval_8" = alloca { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }, align 8 - %"$gasrem_90" = load i64, i64* @_gasrem, align 8 - %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" - br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" - -"$out_of_gas_92": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_93" - -"$have_gas_93": ; preds = %"$out_of_gas_92", %entry - %"$consume_94" = sub i64 %"$gasrem_90", 1 - store i64 %"$consume_94", i64* @_gasrem, align 8 - %"$$fundef_9_envp_95_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_9_envp_95_salloc" = call i8* @_salloc(i8* %"$$fundef_9_envp_95_load", i64 16) - %"$$fundef_9_envp_95" = bitcast i8* %"$$fundef_9_envp_95_salloc" to %"$$fundef_9_env_88"* - %"$$fundef_9_env_voidp_97" = bitcast %"$$fundef_9_env_88"* %"$$fundef_9_envp_95" to i8* - %"$$fundef_9_cloval_98" = insertvalue { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)* bitcast ({ void (i8*, [20 x i8]*, %Uint32)*, i8* } (%"$$fundef_9_env_88"*, [64 x i8]*)* @"$fundef_9" to { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*), i8* undef }, i8* %"$$fundef_9_env_voidp_97", 1 - %"$$fundef_9_env_msg_99" = getelementptr inbounds %"$$fundef_9_env_88", %"$$fundef_9_env_88"* %"$$fundef_9_envp_95", i32 0, i32 0 - store %Bystr %1, %Bystr* %"$$fundef_9_env_msg_99", align 8 - store { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$fundef_9_cloval_98", { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$retval_8", align 8, !dbg !32 - %"$$retval_8_100" = load { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }, { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$retval_8", align 8 - ret { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$retval_8_100" -} - declare void @_out_of_gas() -declare i8* @_salloc(i8*, i64) - declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare [65 x i8]* @_ecdsa_recover_pk(i8*, %Bystr, [64 x i8]*, %Uint32) @@ -732,294 +658,279 @@ declare i8* @_bystr_to_bystrx(i8*, i32, %Bystr) declare [32 x i8]* @_sha256hash(i8*, %_TyDescrTy_Typ*, i8*) -define void @_init_libs() !dbg !33 { +define void @_init_libs() !dbg !29 { entry: ret void } -define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !35 { +define internal %TName_Bool* @_scilla_expr_fun(i8* %0) !dbg !31 { entry: - %"$expr_6" = alloca %TName_Bool*, align 8 - %"$gasrem_409" = load i64, i64* @_gasrem, align 8 - %"$gascmp_410" = icmp ugt i64 1, %"$gasrem_409" - br i1 %"$gascmp_410", label %"$out_of_gas_411", label %"$have_gas_412" + %"$expr_3" = alloca %TName_Bool*, align 8 + %"$gasrem_367" = load i64, i64* @_gasrem, align 8 + %"$gascmp_368" = icmp ugt i64 1, %"$gasrem_367" + br i1 %"$gascmp_368", label %"$out_of_gas_369", label %"$have_gas_370" -"$out_of_gas_411": ; preds = %entry +"$out_of_gas_369": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_412" + br label %"$have_gas_370" -"$have_gas_412": ; preds = %"$out_of_gas_411", %entry - %"$consume_413" = sub i64 %"$gasrem_409", 1 - store i64 %"$consume_413", i64* @_gasrem, align 8 - %ecrecover = alloca { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* }, align 8 - %"$gasrem_414" = load i64, i64* @_gasrem, align 8 - %"$gascmp_415" = icmp ugt i64 1, %"$gasrem_414" - br i1 %"$gascmp_415", label %"$out_of_gas_416", label %"$have_gas_417" +"$have_gas_370": ; preds = %"$out_of_gas_369", %entry + %"$consume_371" = sub i64 %"$gasrem_367", 1 + store i64 %"$consume_371", i64* @_gasrem, align 8 + %ecrecover = alloca { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* }, align 8 + %"$gasrem_372" = load i64, i64* @_gasrem, align 8 + %"$gascmp_373" = icmp ugt i64 3, %"$gasrem_372" + br i1 %"$gascmp_373", label %"$out_of_gas_374", label %"$have_gas_375" -"$out_of_gas_416": ; preds = %"$have_gas_412" +"$out_of_gas_374": ; preds = %"$have_gas_370" call void @_out_of_gas() - br label %"$have_gas_417" + br label %"$have_gas_375" -"$have_gas_417": ; preds = %"$out_of_gas_416", %"$have_gas_412" - %"$consume_418" = sub i64 %"$gasrem_414", 1 - store i64 %"$consume_418", i64* @_gasrem, align 8 - store { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* } { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)* bitcast ({ { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (%"$$fundef_7_env_89"*, %Bystr)* @"$fundef_7" to { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*), i8* null }, { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* }* %ecrecover, align 8, !dbg !36 - %"$gasrem_422" = load i64, i64* @_gasrem, align 8 - %"$gascmp_423" = icmp ugt i64 1, %"$gasrem_422" - br i1 %"$gascmp_423", label %"$out_of_gas_424", label %"$have_gas_425" +"$have_gas_375": ; preds = %"$out_of_gas_374", %"$have_gas_370" + %"$consume_376" = sub i64 %"$gasrem_372", 3 + store i64 %"$consume_376", i64* @_gasrem, align 8 + store { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* } { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)* bitcast (void (%"$$fundef_4_env_80"*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)* @"$fundef_4" to void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*), i8* null }, { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* }* %ecrecover, align 8, !dbg !32 + %"$gasrem_380" = load i64, i64* @_gasrem, align 8 + %"$gascmp_381" = icmp ugt i64 1, %"$gasrem_380" + br i1 %"$gascmp_381", label %"$out_of_gas_382", label %"$have_gas_383" -"$out_of_gas_424": ; preds = %"$have_gas_417" +"$out_of_gas_382": ; preds = %"$have_gas_375" call void @_out_of_gas() - br label %"$have_gas_425" + br label %"$have_gas_383" -"$have_gas_425": ; preds = %"$out_of_gas_424", %"$have_gas_417" - %"$consume_426" = sub i64 %"$gasrem_422", 1 - store i64 %"$consume_426", i64* @_gasrem, align 8 +"$have_gas_383": ; preds = %"$out_of_gas_382", %"$have_gas_375" + %"$consume_384" = sub i64 %"$gasrem_380", 1 + store i64 %"$consume_384", i64* @_gasrem, align 8 %header_hash = alloca { %Bystr (i8*, %Bystr)*, i8* }, align 8 - %"$gasrem_427" = load i64, i64* @_gasrem, align 8 - %"$gascmp_428" = icmp ugt i64 1, %"$gasrem_427" - br i1 %"$gascmp_428", label %"$out_of_gas_429", label %"$have_gas_430" + %"$gasrem_385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_386" = icmp ugt i64 1, %"$gasrem_385" + br i1 %"$gascmp_386", label %"$out_of_gas_387", label %"$have_gas_388" -"$out_of_gas_429": ; preds = %"$have_gas_425" +"$out_of_gas_387": ; preds = %"$have_gas_383" call void @_out_of_gas() - br label %"$have_gas_430" + br label %"$have_gas_388" -"$have_gas_430": ; preds = %"$out_of_gas_429", %"$have_gas_425" - %"$consume_431" = sub i64 %"$gasrem_427", 1 - store i64 %"$consume_431", i64* @_gasrem, align 8 - store { %Bystr (i8*, %Bystr)*, i8* } { %Bystr (i8*, %Bystr)* bitcast (%Bystr (%"$$fundef_13_env_86"*, %Bystr)* @"$fundef_13" to %Bystr (i8*, %Bystr)*), i8* null }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8, !dbg !37 - %"$gasrem_435" = load i64, i64* @_gasrem, align 8 - %"$gascmp_436" = icmp ugt i64 1, %"$gasrem_435" - br i1 %"$gascmp_436", label %"$out_of_gas_437", label %"$have_gas_438" +"$have_gas_388": ; preds = %"$out_of_gas_387", %"$have_gas_383" + %"$consume_389" = sub i64 %"$gasrem_385", 1 + store i64 %"$consume_389", i64* @_gasrem, align 8 + store { %Bystr (i8*, %Bystr)*, i8* } { %Bystr (i8*, %Bystr)* bitcast (%Bystr (%"$$fundef_6_env_79"*, %Bystr)* @"$fundef_6" to %Bystr (i8*, %Bystr)*), i8* null }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8, !dbg !33 + %"$gasrem_393" = load i64, i64* @_gasrem, align 8 + %"$gascmp_394" = icmp ugt i64 1, %"$gasrem_393" + br i1 %"$gascmp_394", label %"$out_of_gas_395", label %"$have_gas_396" -"$out_of_gas_437": ; preds = %"$have_gas_430" +"$out_of_gas_395": ; preds = %"$have_gas_388" call void @_out_of_gas() - br label %"$have_gas_438" + br label %"$have_gas_396" -"$have_gas_438": ; preds = %"$out_of_gas_437", %"$have_gas_430" - %"$consume_439" = sub i64 %"$gasrem_435", 1 - store i64 %"$consume_439", i64* @_gasrem, align 8 +"$have_gas_396": ; preds = %"$out_of_gas_395", %"$have_gas_388" + %"$consume_397" = sub i64 %"$gasrem_393", 1 + store i64 %"$consume_397", i64* @_gasrem, align 8 %sig = alloca [64 x i8], align 1 - %"$gasrem_440" = load i64, i64* @_gasrem, align 8 - %"$gascmp_441" = icmp ugt i64 1, %"$gasrem_440" - br i1 %"$gascmp_441", label %"$out_of_gas_442", label %"$have_gas_443" + %"$gasrem_398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_399" = icmp ugt i64 1, %"$gasrem_398" + br i1 %"$gascmp_399", label %"$out_of_gas_400", label %"$have_gas_401" -"$out_of_gas_442": ; preds = %"$have_gas_438" +"$out_of_gas_400": ; preds = %"$have_gas_396" call void @_out_of_gas() - br label %"$have_gas_443" + br label %"$have_gas_401" -"$have_gas_443": ; preds = %"$out_of_gas_442", %"$have_gas_438" - %"$consume_444" = sub i64 %"$gasrem_440", 1 - store i64 %"$consume_444", i64* @_gasrem, align 8 - store [64 x i8] c"}X\8Dy\AC\9F\091\C6\91P\DEk\FER\89\F0\14x\93x\1B\FF\BC\C3+^\07\BDh}\10H\DD\A09\FF\C1\E8}\E2\E9\86\10\DC\87n\97A\1D`IHG9\04\B1+d\BE\D8\88\0B\CC", [64 x i8]* %sig, align 1, !dbg !38 - %"$gasrem_445" = load i64, i64* @_gasrem, align 8 - %"$gascmp_446" = icmp ugt i64 1, %"$gasrem_445" - br i1 %"$gascmp_446", label %"$out_of_gas_447", label %"$have_gas_448" +"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_396" + %"$consume_402" = sub i64 %"$gasrem_398", 1 + store i64 %"$consume_402", i64* @_gasrem, align 8 + store [64 x i8] c"}X\8Dy\AC\9F\091\C6\91P\DEk\FER\89\F0\14x\93x\1B\FF\BC\C3+^\07\BDh}\10H\DD\A09\FF\C1\E8}\E2\E9\86\10\DC\87n\97A\1D`IHG9\04\B1+d\BE\D8\88\0B\CC", [64 x i8]* %sig, align 1, !dbg !34 + %"$gasrem_403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_404" = icmp ugt i64 1, %"$gasrem_403" + br i1 %"$gascmp_404", label %"$out_of_gas_405", label %"$have_gas_406" -"$out_of_gas_447": ; preds = %"$have_gas_443" +"$out_of_gas_405": ; preds = %"$have_gas_401" call void @_out_of_gas() - br label %"$have_gas_448" + br label %"$have_gas_406" -"$have_gas_448": ; preds = %"$out_of_gas_447", %"$have_gas_443" - %"$consume_449" = sub i64 %"$gasrem_445", 1 - store i64 %"$consume_449", i64* @_gasrem, align 8 +"$have_gas_406": ; preds = %"$out_of_gas_405", %"$have_gas_401" + %"$consume_407" = sub i64 %"$gasrem_403", 1 + store i64 %"$consume_407", i64* @_gasrem, align 8 %msg = alloca [1591 x i8], align 1 - %"$gasrem_450" = load i64, i64* @_gasrem, align 8 - %"$gascmp_451" = icmp ugt i64 1, %"$gasrem_450" - br i1 %"$gascmp_451", label %"$out_of_gas_452", label %"$have_gas_453" + %"$gasrem_408" = load i64, i64* @_gasrem, align 8 + %"$gascmp_409" = icmp ugt i64 1, %"$gasrem_408" + br i1 %"$gascmp_409", label %"$out_of_gas_410", label %"$have_gas_411" -"$out_of_gas_452": ; preds = %"$have_gas_448" +"$out_of_gas_410": ; preds = %"$have_gas_406" call void @_out_of_gas() - br label %"$have_gas_453" + br label %"$have_gas_411" -"$have_gas_453": ; preds = %"$out_of_gas_452", %"$have_gas_448" - %"$consume_454" = sub i64 %"$gasrem_450", 1 - store i64 %"$consume_454", i64* @_gasrem, align 8 - store [1591 x i8] c"\00\00\00\00\9B\91V\17\00\00\00\00\F4\8A@W\BE\F2h\CC?\DB\03Ni\DC.\94)\07\E0\8A\C4\A4 \D1\B1\96\B8\C2\8E\BF[\F2\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*\8B\E0\A1`Zc\A3\17\04\AE\C4\EBO\10#\F1\EC\C2\93K\D8o\11\9A\B7u&\F9Gz\F9\A5~\1A_P\8E\00\00A\07\82r\0A\B1\89\FF\FD\84\05{\22leader\22:3,\22vrf_value\22:\22BOO3oXyk2RIpeVQY38Tq3qJB82szJh6nOorJUp/JMX+GLpz4zIsG9LJl4xJo4etHgOV5qi6MHKftqOirOuZIZiY=\22,\22vrf_proof\22:\22cYSRWFPoi9GHABGRbUdh6a+5PoO1wv5JUzSAtWxhEcpqut0SjYXs4LtS55tSJt3AtI0YamLgRJyzROhVGVbm4g==\22,\22last_config_block_num\22:36432,\22new_chain_config\22:{\22version\22:1,\22view\22:4,\22n\22:8,\22c\22:2,\22block_msg_delay\22:10000000000,\22hash_msg_delay\22:10000000000,\22peer_handshake_timeout\22:10000000000,\22peers\22:[{\22index\22:1,\22id\22:\221205028172918540b2b512eae1872a2a2e3a28d989c60d95dab8829ada7d7dd706d658\22},{\22index\22:4,\22id\22:\22120502679930a42aaf3c69798ca8a3f12e134c019405818d783d11748e039de8515988\22},{\22index\22:3,\22id\22:\22120502482acb6564b19b90653f6e9c806292e8aa83f78e7a9382a24a6efe41c0c06f39\22},{\22index\22:5,\22id\22:\22120502468dd1899ed2d1cc2b829882a165a0ecb6a745af0c72eb2982d66b4311b4ef73\22},{\22index\22:8,\22id\22:\2212050393421445b9421bd4cc90d7bc88c9301558047a76b20c59e7c511ee7d229982b1\22},{\22index\22:2,\22id\22:\221205038b8af6210ecfdcbcab22552ef8d8cf41c6f86f9cf9ab53d865741cfdb833f06b\22},{\22index\22:7,\22id\22:\221205031e0779f5c5ccb2612352fe4a200f99d3e7758e70ba53f607c59ff22a30f678ff\22},{\22index\22:6,\22id\22:\22120502eb1baab602c5899282561cdaaa7aabbcdd0ccfcbc3e79793ac24acf90778f35a\22}],\22pos_table\22:[2,8,5,5,8,7,1,4,5,6,5,4,7,7,3,3,4,6,1,2,4,8,5,4,7,4,6,6,2,2,1,1,8,8,6,6,6,7,8,7,4,8,5,1,3,3,8,5,3,6,3,6,7,5,6,2,3,1,2,6,5,2,1,4,2,1,8,4,8,3,8,7,7,5,1,7,4,4,1,5,2,5,6,1,2,8,3,3,1,3,1,4,1,7,8,6,8,2,5,1,4,5,3,2,2,2,8,3,3,3,6,7,4,7,4,2,7,5,6,7],\22max_block_change_view\22:60000}}\F8\FCz\1Fj\85c\13\C5\91\A3\A7G\F4\EC\A7!\8A\82\0B", [1591 x i8]* %msg, align 1, !dbg !39 - %"$gasrem_455" = load i64, i64* @_gasrem, align 8 - %"$gascmp_456" = icmp ugt i64 1, %"$gasrem_455" - br i1 %"$gascmp_456", label %"$out_of_gas_457", label %"$have_gas_458" +"$have_gas_411": ; preds = %"$out_of_gas_410", %"$have_gas_406" + %"$consume_412" = sub i64 %"$gasrem_408", 1 + store i64 %"$consume_412", i64* @_gasrem, align 8 + store [1591 x i8] c"\00\00\00\00\9B\91V\17\00\00\00\00\F4\8A@W\BE\F2h\CC?\DB\03Ni\DC.\94)\07\E0\8A\C4\A4 \D1\B1\96\B8\C2\8E\BF[\F2\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*\8B\E0\A1`Zc\A3\17\04\AE\C4\EBO\10#\F1\EC\C2\93K\D8o\11\9A\B7u&\F9Gz\F9\A5~\1A_P\8E\00\00A\07\82r\0A\B1\89\FF\FD\84\05{\22leader\22:3,\22vrf_value\22:\22BOO3oXyk2RIpeVQY38Tq3qJB82szJh6nOorJUp/JMX+GLpz4zIsG9LJl4xJo4etHgOV5qi6MHKftqOirOuZIZiY=\22,\22vrf_proof\22:\22cYSRWFPoi9GHABGRbUdh6a+5PoO1wv5JUzSAtWxhEcpqut0SjYXs4LtS55tSJt3AtI0YamLgRJyzROhVGVbm4g==\22,\22last_config_block_num\22:36432,\22new_chain_config\22:{\22version\22:1,\22view\22:4,\22n\22:8,\22c\22:2,\22block_msg_delay\22:10000000000,\22hash_msg_delay\22:10000000000,\22peer_handshake_timeout\22:10000000000,\22peers\22:[{\22index\22:1,\22id\22:\221205028172918540b2b512eae1872a2a2e3a28d989c60d95dab8829ada7d7dd706d658\22},{\22index\22:4,\22id\22:\22120502679930a42aaf3c69798ca8a3f12e134c019405818d783d11748e039de8515988\22},{\22index\22:3,\22id\22:\22120502482acb6564b19b90653f6e9c806292e8aa83f78e7a9382a24a6efe41c0c06f39\22},{\22index\22:5,\22id\22:\22120502468dd1899ed2d1cc2b829882a165a0ecb6a745af0c72eb2982d66b4311b4ef73\22},{\22index\22:8,\22id\22:\2212050393421445b9421bd4cc90d7bc88c9301558047a76b20c59e7c511ee7d229982b1\22},{\22index\22:2,\22id\22:\221205038b8af6210ecfdcbcab22552ef8d8cf41c6f86f9cf9ab53d865741cfdb833f06b\22},{\22index\22:7,\22id\22:\221205031e0779f5c5ccb2612352fe4a200f99d3e7758e70ba53f607c59ff22a30f678ff\22},{\22index\22:6,\22id\22:\22120502eb1baab602c5899282561cdaaa7aabbcdd0ccfcbc3e79793ac24acf90778f35a\22}],\22pos_table\22:[2,8,5,5,8,7,1,4,5,6,5,4,7,7,3,3,4,6,1,2,4,8,5,4,7,4,6,6,2,2,1,1,8,8,6,6,6,7,8,7,4,8,5,1,3,3,8,5,3,6,3,6,7,5,6,2,3,1,2,6,5,2,1,4,2,1,8,4,8,3,8,7,7,5,1,7,4,4,1,5,2,5,6,1,2,8,3,3,1,3,1,4,1,7,8,6,8,2,5,1,4,5,3,2,2,2,8,3,3,3,6,7,4,7,4,2,7,5,6,7],\22max_block_change_view\22:60000}}\F8\FCz\1Fj\85c\13\C5\91\A3\A7G\F4\EC\A7!\8A\82\0B", [1591 x i8]* %msg, align 1, !dbg !35 + %"$gasrem_413" = load i64, i64* @_gasrem, align 8 + %"$gascmp_414" = icmp ugt i64 1, %"$gasrem_413" + br i1 %"$gascmp_414", label %"$out_of_gas_415", label %"$have_gas_416" -"$out_of_gas_457": ; preds = %"$have_gas_453" +"$out_of_gas_415": ; preds = %"$have_gas_411" call void @_out_of_gas() - br label %"$have_gas_458" + br label %"$have_gas_416" -"$have_gas_458": ; preds = %"$out_of_gas_457", %"$have_gas_453" - %"$consume_459" = sub i64 %"$gasrem_455", 1 - store i64 %"$consume_459", i64* @_gasrem, align 8 +"$have_gas_416": ; preds = %"$out_of_gas_415", %"$have_gas_411" + %"$consume_417" = sub i64 %"$gasrem_413", 1 + store i64 %"$consume_417", i64* @_gasrem, align 8 %addr_gold = alloca [20 x i8], align 1 - %"$gasrem_460" = load i64, i64* @_gasrem, align 8 - %"$gascmp_461" = icmp ugt i64 1, %"$gasrem_460" - br i1 %"$gascmp_461", label %"$out_of_gas_462", label %"$have_gas_463" + %"$gasrem_418" = load i64, i64* @_gasrem, align 8 + %"$gascmp_419" = icmp ugt i64 1, %"$gasrem_418" + br i1 %"$gascmp_419", label %"$out_of_gas_420", label %"$have_gas_421" -"$out_of_gas_462": ; preds = %"$have_gas_458" +"$out_of_gas_420": ; preds = %"$have_gas_416" call void @_out_of_gas() - br label %"$have_gas_463" + br label %"$have_gas_421" -"$have_gas_463": ; preds = %"$out_of_gas_462", %"$have_gas_458" - %"$consume_464" = sub i64 %"$gasrem_460", 1 - store i64 %"$consume_464", i64* @_gasrem, align 8 - store [20 x i8] c"\A4*N\85\03M[\EB\C2%t=\A4\00\CCL\0ECrz", [20 x i8]* %addr_gold, align 1, !dbg !40 - %"$gasrem_465" = load i64, i64* @_gasrem, align 8 - %"$gascmp_466" = icmp ugt i64 1, %"$gasrem_465" - br i1 %"$gascmp_466", label %"$out_of_gas_467", label %"$have_gas_468" +"$have_gas_421": ; preds = %"$out_of_gas_420", %"$have_gas_416" + %"$consume_422" = sub i64 %"$gasrem_418", 1 + store i64 %"$consume_422", i64* @_gasrem, align 8 + store [20 x i8] c"\A4*N\85\03M[\EB\C2%t=\A4\00\CCL\0ECrz", [20 x i8]* %addr_gold, align 1, !dbg !36 + %"$gasrem_423" = load i64, i64* @_gasrem, align 8 + %"$gascmp_424" = icmp ugt i64 1, %"$gasrem_423" + br i1 %"$gascmp_424", label %"$out_of_gas_425", label %"$have_gas_426" -"$out_of_gas_467": ; preds = %"$have_gas_463" +"$out_of_gas_425": ; preds = %"$have_gas_421" call void @_out_of_gas() - br label %"$have_gas_468" + br label %"$have_gas_426" -"$have_gas_468": ; preds = %"$out_of_gas_467", %"$have_gas_463" - %"$consume_469" = sub i64 %"$gasrem_465", 1 - store i64 %"$consume_469", i64* @_gasrem, align 8 +"$have_gas_426": ; preds = %"$out_of_gas_425", %"$have_gas_421" + %"$consume_427" = sub i64 %"$gasrem_423", 1 + store i64 %"$consume_427", i64* @_gasrem, align 8 %msg_bs = alloca %Bystr, align 8 - %"$gasrem_470" = load i64, i64* @_gasrem, align 8 - %"$gascmp_471" = icmp ugt i64 1591, %"$gasrem_470" - br i1 %"$gascmp_471", label %"$out_of_gas_472", label %"$have_gas_473" - -"$out_of_gas_472": ; preds = %"$have_gas_468" - call void @_out_of_gas() - br label %"$have_gas_473" - -"$have_gas_473": ; preds = %"$out_of_gas_472", %"$have_gas_468" - %"$consume_474" = sub i64 %"$gasrem_470", 1591 - store i64 %"$consume_474", i64* @_gasrem, align 8 - %"$execptr_load_475" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_msg_476" = alloca [1591 x i8], align 1 - %"$msg_477" = load [1591 x i8], [1591 x i8]* %msg, align 1 - store [1591 x i8] %"$msg_477", [1591 x i8]* %"$to_bystr_msg_476", align 1 - %"$$to_bystr_msg_476_478" = bitcast [1591 x i8]* %"$to_bystr_msg_476" to i8* - %"$to_bystr_call_479" = call %Bystr @_to_bystr(i8* %"$execptr_load_475", i32 1591, i8* %"$$to_bystr_msg_476_478"), !dbg !41 - store %Bystr %"$to_bystr_call_479", %Bystr* %msg_bs, align 8, !dbg !41 - %"$gasrem_480" = load i64, i64* @_gasrem, align 8 - %"$gascmp_481" = icmp ugt i64 1, %"$gasrem_480" - br i1 %"$gascmp_481", label %"$out_of_gas_482", label %"$have_gas_483" - -"$out_of_gas_482": ; preds = %"$have_gas_473" - call void @_out_of_gas() - br label %"$have_gas_483" - -"$have_gas_483": ; preds = %"$out_of_gas_482", %"$have_gas_473" - %"$consume_484" = sub i64 %"$gasrem_480", 1 - store i64 %"$consume_484", i64* @_gasrem, align 8 + %"$gasrem_428" = load i64, i64* @_gasrem, align 8 + %"$gascmp_429" = icmp ugt i64 1591, %"$gasrem_428" + br i1 %"$gascmp_429", label %"$out_of_gas_430", label %"$have_gas_431" + +"$out_of_gas_430": ; preds = %"$have_gas_426" + call void @_out_of_gas() + br label %"$have_gas_431" + +"$have_gas_431": ; preds = %"$out_of_gas_430", %"$have_gas_426" + %"$consume_432" = sub i64 %"$gasrem_428", 1591 + store i64 %"$consume_432", i64* @_gasrem, align 8 + %"$execptr_load_433" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_msg_434" = alloca [1591 x i8], align 1 + %"$msg_435" = load [1591 x i8], [1591 x i8]* %msg, align 1 + store [1591 x i8] %"$msg_435", [1591 x i8]* %"$to_bystr_msg_434", align 1 + %"$$to_bystr_msg_434_436" = bitcast [1591 x i8]* %"$to_bystr_msg_434" to i8* + %"$to_bystr_call_437" = call %Bystr @_to_bystr(i8* %"$execptr_load_433", i32 1591, i8* %"$$to_bystr_msg_434_436"), !dbg !37 + store %Bystr %"$to_bystr_call_437", %Bystr* %msg_bs, align 8, !dbg !37 + %"$gasrem_438" = load i64, i64* @_gasrem, align 8 + %"$gascmp_439" = icmp ugt i64 1, %"$gasrem_438" + br i1 %"$gascmp_439", label %"$out_of_gas_440", label %"$have_gas_441" + +"$out_of_gas_440": ; preds = %"$have_gas_431" + call void @_out_of_gas() + br label %"$have_gas_441" + +"$have_gas_441": ; preds = %"$out_of_gas_440", %"$have_gas_431" + %"$consume_442" = sub i64 %"$gasrem_438", 1 + store i64 %"$consume_442", i64* @_gasrem, align 8 %msg_hashed = alloca %Bystr, align 8 - %"$gasrem_485" = load i64, i64* @_gasrem, align 8 - %"$gascmp_486" = icmp ugt i64 1, %"$gasrem_485" - br i1 %"$gascmp_486", label %"$out_of_gas_487", label %"$have_gas_488" + %"$gasrem_443" = load i64, i64* @_gasrem, align 8 + %"$gascmp_444" = icmp ugt i64 1, %"$gasrem_443" + br i1 %"$gascmp_444", label %"$out_of_gas_445", label %"$have_gas_446" -"$out_of_gas_487": ; preds = %"$have_gas_483" +"$out_of_gas_445": ; preds = %"$have_gas_441" call void @_out_of_gas() - br label %"$have_gas_488" + br label %"$have_gas_446" -"$have_gas_488": ; preds = %"$out_of_gas_487", %"$have_gas_483" - %"$consume_489" = sub i64 %"$gasrem_485", 1 - store i64 %"$consume_489", i64* @_gasrem, align 8 +"$have_gas_446": ; preds = %"$out_of_gas_445", %"$have_gas_441" + %"$consume_447" = sub i64 %"$gasrem_443", 1 + store i64 %"$consume_447", i64* @_gasrem, align 8 %"$header_hash_2" = alloca %Bystr, align 8 - %"$header_hash_490" = load { %Bystr (i8*, %Bystr)*, i8* }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8 - %"$header_hash_fptr_491" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_490", 0 - %"$header_hash_envptr_492" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_490", 1 - %"$msg_bs_493" = load %Bystr, %Bystr* %msg_bs, align 8 - %"$header_hash_call_494" = call %Bystr %"$header_hash_fptr_491"(i8* %"$header_hash_envptr_492", %Bystr %"$msg_bs_493"), !dbg !42 - store %Bystr %"$header_hash_call_494", %Bystr* %"$header_hash_2", align 8, !dbg !42 - %"$$header_hash_2_495" = load %Bystr, %Bystr* %"$header_hash_2", align 8 - store %Bystr %"$$header_hash_2_495", %Bystr* %msg_hashed, align 8, !dbg !42 - %"$gasrem_496" = load i64, i64* @_gasrem, align 8 - %"$gascmp_497" = icmp ugt i64 1, %"$gasrem_496" - br i1 %"$gascmp_497", label %"$out_of_gas_498", label %"$have_gas_499" - -"$out_of_gas_498": ; preds = %"$have_gas_488" - call void @_out_of_gas() - br label %"$have_gas_499" - -"$have_gas_499": ; preds = %"$out_of_gas_498", %"$have_gas_488" - %"$consume_500" = sub i64 %"$gasrem_496", 1 - store i64 %"$consume_500", i64* @_gasrem, align 8 + %"$header_hash_448" = load { %Bystr (i8*, %Bystr)*, i8* }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8 + %"$header_hash_fptr_449" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_448", 0 + %"$header_hash_envptr_450" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_448", 1 + %"$msg_bs_451" = load %Bystr, %Bystr* %msg_bs, align 8 + %"$header_hash_call_452" = call %Bystr %"$header_hash_fptr_449"(i8* %"$header_hash_envptr_450", %Bystr %"$msg_bs_451"), !dbg !38 + store %Bystr %"$header_hash_call_452", %Bystr* %"$header_hash_2", align 8, !dbg !38 + %"$$header_hash_2_453" = load %Bystr, %Bystr* %"$header_hash_2", align 8 + store %Bystr %"$$header_hash_2_453", %Bystr* %msg_hashed, align 8, !dbg !38 + %"$gasrem_454" = load i64, i64* @_gasrem, align 8 + %"$gascmp_455" = icmp ugt i64 1, %"$gasrem_454" + br i1 %"$gascmp_455", label %"$out_of_gas_456", label %"$have_gas_457" + +"$out_of_gas_456": ; preds = %"$have_gas_446" + call void @_out_of_gas() + br label %"$have_gas_457" + +"$have_gas_457": ; preds = %"$out_of_gas_456", %"$have_gas_446" + %"$consume_458" = sub i64 %"$gasrem_454", 1 + store i64 %"$consume_458", i64* @_gasrem, align 8 %recid = alloca %Uint32, align 8 - %"$gasrem_501" = load i64, i64* @_gasrem, align 8 - %"$gascmp_502" = icmp ugt i64 1, %"$gasrem_501" - br i1 %"$gascmp_502", label %"$out_of_gas_503", label %"$have_gas_504" + %"$gasrem_459" = load i64, i64* @_gasrem, align 8 + %"$gascmp_460" = icmp ugt i64 1, %"$gasrem_459" + br i1 %"$gascmp_460", label %"$out_of_gas_461", label %"$have_gas_462" -"$out_of_gas_503": ; preds = %"$have_gas_499" +"$out_of_gas_461": ; preds = %"$have_gas_457" call void @_out_of_gas() - br label %"$have_gas_504" + br label %"$have_gas_462" -"$have_gas_504": ; preds = %"$out_of_gas_503", %"$have_gas_499" - %"$consume_505" = sub i64 %"$gasrem_501", 1 - store i64 %"$consume_505", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %recid, align 4, !dbg !43 - %"$gasrem_506" = load i64, i64* @_gasrem, align 8 - %"$gascmp_507" = icmp ugt i64 1, %"$gasrem_506" - br i1 %"$gascmp_507", label %"$out_of_gas_508", label %"$have_gas_509" +"$have_gas_462": ; preds = %"$out_of_gas_461", %"$have_gas_457" + %"$consume_463" = sub i64 %"$gasrem_459", 1 + store i64 %"$consume_463", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %recid, align 4, !dbg !39 + %"$gasrem_464" = load i64, i64* @_gasrem, align 8 + %"$gascmp_465" = icmp ugt i64 1, %"$gasrem_464" + br i1 %"$gascmp_465", label %"$out_of_gas_466", label %"$have_gas_467" -"$out_of_gas_508": ; preds = %"$have_gas_504" +"$out_of_gas_466": ; preds = %"$have_gas_462" call void @_out_of_gas() - br label %"$have_gas_509" + br label %"$have_gas_467" -"$have_gas_509": ; preds = %"$out_of_gas_508", %"$have_gas_504" - %"$consume_510" = sub i64 %"$gasrem_506", 1 - store i64 %"$consume_510", i64* @_gasrem, align 8 +"$have_gas_467": ; preds = %"$out_of_gas_466", %"$have_gas_462" + %"$consume_468" = sub i64 %"$gasrem_464", 1 + store i64 %"$consume_468", i64* @_gasrem, align 8 %addr_computed = alloca [20 x i8], align 1 - %"$gasrem_511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_512" = icmp ugt i64 1, %"$gasrem_511" - br i1 %"$gascmp_512", label %"$out_of_gas_513", label %"$have_gas_514" - -"$out_of_gas_513": ; preds = %"$have_gas_509" - call void @_out_of_gas() - br label %"$have_gas_514" - -"$have_gas_514": ; preds = %"$out_of_gas_513", %"$have_gas_509" - %"$consume_515" = sub i64 %"$gasrem_511", 1 - store i64 %"$consume_515", i64* @_gasrem, align 8 - %"$ecrecover_3" = alloca { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }, align 8 - %"$ecrecover_516" = load { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* }, { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* }* %ecrecover, align 8 - %"$ecrecover_fptr_517" = extractvalue { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* } %"$ecrecover_516", 0 - %"$ecrecover_envptr_518" = extractvalue { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* } %"$ecrecover_516", 1 - %"$msg_hashed_519" = load %Bystr, %Bystr* %msg_hashed, align 8 - %"$ecrecover_call_520" = call { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$ecrecover_fptr_517"(i8* %"$ecrecover_envptr_518", %Bystr %"$msg_hashed_519"), !dbg !44 - store { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$ecrecover_call_520", { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$ecrecover_3", align 8, !dbg !44 - %"$ecrecover_4" = alloca { void (i8*, [20 x i8]*, %Uint32)*, i8* }, align 8 - %"$$ecrecover_3_521" = load { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }, { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$ecrecover_3", align 8 - %"$$ecrecover_3_fptr_522" = extractvalue { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$ecrecover_3_521", 0 - %"$$ecrecover_3_envptr_523" = extractvalue { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$ecrecover_3_521", 1 - %"$$ecrecover_3_sig_524" = alloca [64 x i8], align 1 - %"$sig_525" = load [64 x i8], [64 x i8]* %sig, align 1 - store [64 x i8] %"$sig_525", [64 x i8]* %"$$ecrecover_3_sig_524", align 1 - %"$$ecrecover_3_call_526" = call { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_3_fptr_522"(i8* %"$$ecrecover_3_envptr_523", [64 x i8]* %"$$ecrecover_3_sig_524"), !dbg !44 - store { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_3_call_526", { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$ecrecover_4", align 8, !dbg !44 - %"$ecrecover_5" = alloca [20 x i8], align 1 - %"$$ecrecover_4_527" = load { void (i8*, [20 x i8]*, %Uint32)*, i8* }, { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$ecrecover_4", align 8 - %"$$ecrecover_4_fptr_528" = extractvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_4_527", 0 - %"$$ecrecover_4_envptr_529" = extractvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_4_527", 1 - %"$recid_530" = load %Uint32, %Uint32* %recid, align 4 - %"$$ecrecover_4_retalloca_531" = alloca [20 x i8], align 1 - call void %"$$ecrecover_4_fptr_528"(i8* %"$$ecrecover_4_envptr_529", [20 x i8]* %"$$ecrecover_4_retalloca_531", %Uint32 %"$recid_530"), !dbg !44 - %"$$ecrecover_4_ret_532" = load [20 x i8], [20 x i8]* %"$$ecrecover_4_retalloca_531", align 1 - store [20 x i8] %"$$ecrecover_4_ret_532", [20 x i8]* %"$ecrecover_5", align 1, !dbg !44 - %"$$ecrecover_5_533" = load [20 x i8], [20 x i8]* %"$ecrecover_5", align 1 - store [20 x i8] %"$$ecrecover_5_533", [20 x i8]* %addr_computed, align 1, !dbg !44 - %"$gasrem_534" = load i64, i64* @_gasrem, align 8 - %"$gascmp_535" = icmp ugt i64 20, %"$gasrem_534" - br i1 %"$gascmp_535", label %"$out_of_gas_536", label %"$have_gas_537" - -"$out_of_gas_536": ; preds = %"$have_gas_514" - call void @_out_of_gas() - br label %"$have_gas_537" - -"$have_gas_537": ; preds = %"$out_of_gas_536", %"$have_gas_514" - %"$consume_538" = sub i64 %"$gasrem_534", 20 - store i64 %"$consume_538", i64* @_gasrem, align 8 - %"$execptr_load_539" = load i8*, i8** @_execptr, align 8 - %"$eq_addr_computed_540" = alloca [20 x i8], align 1 - %"$addr_computed_541" = load [20 x i8], [20 x i8]* %addr_computed, align 1 - store [20 x i8] %"$addr_computed_541", [20 x i8]* %"$eq_addr_computed_540", align 1 - %"$$eq_addr_computed_540_542" = bitcast [20 x i8]* %"$eq_addr_computed_540" to i8* - %"$eq_addr_gold_543" = alloca [20 x i8], align 1 - %"$addr_gold_544" = load [20 x i8], [20 x i8]* %addr_gold, align 1 - store [20 x i8] %"$addr_gold_544", [20 x i8]* %"$eq_addr_gold_543", align 1 - %"$$eq_addr_gold_543_545" = bitcast [20 x i8]* %"$eq_addr_gold_543" to i8* - %"$eq_call_546" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_539", i32 20, i8* %"$$eq_addr_computed_540_542", i8* %"$$eq_addr_gold_543_545"), !dbg !45 - store %TName_Bool* %"$eq_call_546", %TName_Bool** %"$expr_6", align 8, !dbg !45 - %"$$expr_6_548" = load %TName_Bool*, %TName_Bool** %"$expr_6", align 8 - ret %TName_Bool* %"$$expr_6_548" + %"$gasrem_469" = load i64, i64* @_gasrem, align 8 + %"$gascmp_470" = icmp ugt i64 1, %"$gasrem_469" + br i1 %"$gascmp_470", label %"$out_of_gas_471", label %"$have_gas_472" + +"$out_of_gas_471": ; preds = %"$have_gas_467" + call void @_out_of_gas() + br label %"$have_gas_472" + +"$have_gas_472": ; preds = %"$out_of_gas_471", %"$have_gas_467" + %"$consume_473" = sub i64 %"$gasrem_469", 1 + store i64 %"$consume_473", i64* @_gasrem, align 8 + %"$ecrecover_474" = load { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* }, { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* }* %ecrecover, align 8 + %"$ecrecover_fptr_475" = extractvalue { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* } %"$ecrecover_474", 0 + %"$ecrecover_envptr_476" = extractvalue { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* } %"$ecrecover_474", 1 + %"$msg_hashed_477" = load %Bystr, %Bystr* %msg_hashed, align 8 + %"$ecrecover_sig_478" = alloca [64 x i8], align 1 + %"$sig_479" = load [64 x i8], [64 x i8]* %sig, align 1 + store [64 x i8] %"$sig_479", [64 x i8]* %"$ecrecover_sig_478", align 1 + %"$recid_480" = load %Uint32, %Uint32* %recid, align 4 + %"$ecrecover_retalloca_481" = alloca [20 x i8], align 1 + call void %"$ecrecover_fptr_475"(i8* %"$ecrecover_envptr_476", [20 x i8]* %"$ecrecover_retalloca_481", %Bystr %"$msg_hashed_477", [64 x i8]* %"$ecrecover_sig_478", %Uint32 %"$recid_480"), !dbg !40 + %"$ecrecover_ret_482" = load [20 x i8], [20 x i8]* %"$ecrecover_retalloca_481", align 1 + store [20 x i8] %"$ecrecover_ret_482", [20 x i8]* %addr_computed, align 1, !dbg !40 + %"$gasrem_483" = load i64, i64* @_gasrem, align 8 + %"$gascmp_484" = icmp ugt i64 20, %"$gasrem_483" + br i1 %"$gascmp_484", label %"$out_of_gas_485", label %"$have_gas_486" + +"$out_of_gas_485": ; preds = %"$have_gas_472" + call void @_out_of_gas() + br label %"$have_gas_486" + +"$have_gas_486": ; preds = %"$out_of_gas_485", %"$have_gas_472" + %"$consume_487" = sub i64 %"$gasrem_483", 20 + store i64 %"$consume_487", i64* @_gasrem, align 8 + %"$execptr_load_488" = load i8*, i8** @_execptr, align 8 + %"$eq_addr_computed_489" = alloca [20 x i8], align 1 + %"$addr_computed_490" = load [20 x i8], [20 x i8]* %addr_computed, align 1 + store [20 x i8] %"$addr_computed_490", [20 x i8]* %"$eq_addr_computed_489", align 1 + %"$$eq_addr_computed_489_491" = bitcast [20 x i8]* %"$eq_addr_computed_489" to i8* + %"$eq_addr_gold_492" = alloca [20 x i8], align 1 + %"$addr_gold_493" = load [20 x i8], [20 x i8]* %addr_gold, align 1 + store [20 x i8] %"$addr_gold_493", [20 x i8]* %"$eq_addr_gold_492", align 1 + %"$$eq_addr_gold_492_494" = bitcast [20 x i8]* %"$eq_addr_gold_492" to i8* + %"$eq_call_495" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_488", i32 20, i8* %"$$eq_addr_computed_489_491", i8* %"$$eq_addr_gold_492_494"), !dbg !41 + store %TName_Bool* %"$eq_call_495", %TName_Bool** %"$expr_3", align 8, !dbg !41 + %"$$expr_3_497" = load %TName_Bool*, %TName_Bool** %"$expr_3", align 8 + ret %TName_Bool* %"$$expr_3_497" } declare %TName_Bool* @_eq_ByStrX(i8*, i32, i8*, i8*) @@ -1028,10 +939,10 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_549" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_550" = bitcast %TName_Bool* %"$exprval_549" to i8* - %"$execptr_load_551" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_551", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_57", i8* %"$memvoidcast_550") + %"$exprval_498" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_499" = bitcast %TName_Bool* %"$exprval_498" to i8* + %"$execptr_load_500" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_500", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50", i8* %"$memvoidcast_499") ret void } @@ -1044,14 +955,14 @@ attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } !1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) !2 = !DIFile(filename: "builtin-ecdsa_recover.scilexp", directory: "codegen/expr") !3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 28, type: !5, scopeLine: 28, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!4 = distinct !DISubprogram(name: "$fundef_6", linkageName: "$fundef_6", scope: !2, file: !2, line: 28, type: !5, scopeLine: 28, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !5 = !DISubroutineType(types: !6) !6 = !{!7} !7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") !8 = !DILocation(line: 28, column: 14, scope: !4) !9 = !DILocation(line: 29, column: 14, scope: !4) !10 = !DILocation(line: 30, column: 5, scope: !4) -!11 = distinct !DISubprogram(name: "$fundef_11", linkageName: "$fundef_11", scope: !2, file: !2, line: 5, type: !5, scopeLine: 5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!11 = distinct !DISubprogram(name: "$fundef_4", linkageName: "$fundef_4", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !12 = !DILocation(line: 5, column: 14, scope: !11) !13 = !DILocation(line: 6, column: 15, scope: !11) !14 = !DILocation(line: 7, column: 15, scope: !11) @@ -1069,20 +980,16 @@ attributes #0 = { nofree nosync nounwind readnone speculatable willreturn } !26 = distinct !DILexicalBlock(scope: !11, file: !2, line: 16, column: 5) !27 = !DILocation(line: 22, column: 7, scope: !28) !28 = distinct !DILexicalBlock(scope: !26, file: !2, line: 19, column: 7) -!29 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!30 = !DILocation(line: 5, column: 5, scope: !29) -!31 = distinct !DISubprogram(name: "$fundef_7", linkageName: "$fundef_7", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!32 = !DILocation(line: 4, column: 3, scope: !31) -!33 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !34, file: !34, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!34 = !DIFile(filename: ".", directory: ".") -!35 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !5, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!36 = !DILocation(line: 3, column: 3, scope: !35) -!37 = !DILocation(line: 28, column: 5, scope: !35) -!38 = !DILocation(line: 33, column: 11, scope: !35) -!39 = !DILocation(line: 34, column: 11, scope: !35) -!40 = !DILocation(line: 36, column: 17, scope: !35) -!41 = !DILocation(line: 37, column: 14, scope: !35) -!42 = !DILocation(line: 38, column: 18, scope: !35) -!43 = !DILocation(line: 39, column: 13, scope: !35) -!44 = !DILocation(line: 41, column: 21, scope: !35) -!45 = !DILocation(line: 42, column: 1, scope: !35) +!29 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !30, file: !30, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!30 = !DIFile(filename: ".", directory: ".") +!31 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !5, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) +!32 = !DILocation(line: 3, column: 3, scope: !31) +!33 = !DILocation(line: 28, column: 5, scope: !31) +!34 = !DILocation(line: 33, column: 11, scope: !31) +!35 = !DILocation(line: 34, column: 11, scope: !31) +!36 = !DILocation(line: 36, column: 17, scope: !31) +!37 = !DILocation(line: 37, column: 14, scope: !31) +!38 = !DILocation(line: 38, column: 18, scope: !31) +!39 = !DILocation(line: 39, column: 13, scope: !31) +!40 = !DILocation(line: 41, column: 21, scope: !31) +!41 = !DILocation(line: 42, column: 1, scope: !31) diff --git a/tests/codegen/expr/dgold/builtin-isqrt.scilexp.gold b/tests/codegen/expr/dgold/builtin-isqrt.scilexp.gold index cef55c34..8a4ee845 100644 --- a/tests/codegen/expr/dgold/builtin-isqrt.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin-isqrt.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin-pow.scilexp.gold b/tests/codegen/expr/dgold/builtin-pow.scilexp.gold index 18df63cb..bfbae2b7 100644 --- a/tests/codegen/expr/dgold/builtin-pow.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin-pow.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_206" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin-schnorr_get_address.scilexp.gold b/tests/codegen/expr/dgold/builtin-schnorr_get_address.scilexp.gold index 56d55178..c7eb91f3 100644 --- a/tests/codegen/expr/dgold/builtin-schnorr_get_address.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin-schnorr_get_address.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_29" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_add_int256.scilexp.gold b/tests/codegen/expr/dgold/builtin_add_int256.scilexp.gold index 32810f4c..8055a8c1 100644 --- a/tests/codegen/expr/dgold/builtin_add_int256.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_add_int256.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_add_int32.scilexp.gold b/tests/codegen/expr/dgold/builtin_add_int32.scilexp.gold index 326edce7..440040c3 100644 --- a/tests/codegen/expr/dgold/builtin_add_int32.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_add_int32.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_add_uint256.scilexp.gold b/tests/codegen/expr/dgold/builtin_add_uint256.scilexp.gold index c2f55ade..80be81f4 100644 --- a/tests/codegen/expr/dgold/builtin_add_uint256.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_add_uint256.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_add_uint32.scilexp.gold b/tests/codegen/expr/dgold/builtin_add_uint32.scilexp.gold index 1a17e578..5dbbdae3 100644 --- a/tests/codegen/expr/dgold/builtin_add_uint32.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_add_uint32.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_baddsub.scilexp.gold b/tests/codegen/expr/dgold/builtin_baddsub.scilexp.gold index 3d9d47c1..6b206364 100644 --- a/tests/codegen/expr/dgold/builtin_baddsub.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_baddsub.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_bech32-invalid.scilexp.gold b/tests/codegen/expr/dgold/builtin_bech32-invalid.scilexp.gold index e09ba624..0c1f101d 100644 --- a/tests/codegen/expr/dgold/builtin_bech32-invalid.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_bech32-invalid.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_bech32.scilexp.gold b/tests/codegen/expr/dgold/builtin_bech32.scilexp.gold index a5c31344..7198ff32 100644 --- a/tests/codegen/expr/dgold/builtin_bech32.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_bech32.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_bech32_rev.scilexp.gold b/tests/codegen/expr/dgold/builtin_bech32_rev.scilexp.gold index 43f105a3..13fe7683 100644 --- a/tests/codegen/expr/dgold/builtin_bech32_rev.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_bech32_rev.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_concat.scilexp.gold b/tests/codegen/expr/dgold/builtin_concat.scilexp.gold index 13945f5b..efeaa34f 100644 --- a/tests/codegen/expr/dgold/builtin_concat.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_concat.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_div_rem.scilexp.gold b/tests/codegen/expr/dgold/builtin_div_rem.scilexp.gold index 52ec6f63..a04a22ff 100644 --- a/tests/codegen/expr/dgold/builtin_div_rem.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_div_rem.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_80" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_ecdsa_verify_false.scilexp.gold b/tests/codegen/expr/dgold/builtin_ecdsa_verify_false.scilexp.gold index e49be346..a8b007da 100644 --- a/tests/codegen/expr/dgold/builtin_ecdsa_verify_false.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_ecdsa_verify_false.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_ecdsa_verify_true.scilexp.gold b/tests/codegen/expr/dgold/builtin_ecdsa_verify_true.scilexp.gold index a2db7c26..3bcd6e10 100644 --- a/tests/codegen/expr/dgold/builtin_ecdsa_verify_true.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_ecdsa_verify_true.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_eq.scilexp.gold b/tests/codegen/expr/dgold/builtin_eq.scilexp.gold index ad5e59e2..59a4638c 100644 --- a/tests/codegen/expr/dgold/builtin_eq.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_eq.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_31" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_keccak256hash.scilexp.gold b/tests/codegen/expr/dgold/builtin_keccak256hash.scilexp.gold index 3d0f0f5c..2e24e516 100644 --- a/tests/codegen/expr/dgold/builtin_keccak256hash.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_keccak256hash.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_lt.scilexp.gold b/tests/codegen/expr/dgold/builtin_lt.scilexp.gold index a4cdcce0..d048cb70 100644 --- a/tests/codegen/expr/dgold/builtin_lt.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_lt.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_22" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_map.scilexp.gold b/tests/codegen/expr/dgold/builtin_map.scilexp.gold index dcb2ff1a..3f557cd0 100644 --- a/tests/codegen/expr/dgold/builtin_map.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_map.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_10" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_mul.scilexp.gold b/tests/codegen/expr/dgold/builtin_mul.scilexp.gold index f0d89928..79a01d0a 100644 --- a/tests/codegen/expr/dgold/builtin_mul.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_mul.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_168" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_overflow1.scilexp.gold b/tests/codegen/expr/dgold/builtin_overflow1.scilexp.gold index 5cea92d0..fe2e8d31 100644 --- a/tests/codegen/expr/dgold/builtin_overflow1.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_overflow1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_overflow2.scilexp.gold b/tests/codegen/expr/dgold/builtin_overflow2.scilexp.gold index 08e95abd..5d370a52 100644 --- a/tests/codegen/expr/dgold/builtin_overflow2.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_overflow2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_overflow3.scilexp.gold b/tests/codegen/expr/dgold/builtin_overflow3.scilexp.gold index a29d07ed..8ea3201d 100644 --- a/tests/codegen/expr/dgold/builtin_overflow3.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_overflow3.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_overflow4.scilexp.gold b/tests/codegen/expr/dgold/builtin_overflow4.scilexp.gold index 9305546e..d69edca4 100644 --- a/tests/codegen/expr/dgold/builtin_overflow4.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_overflow4.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_overflow5.scilexp.gold b/tests/codegen/expr/dgold/builtin_overflow5.scilexp.gold index c4f947fc..ced8e20c 100644 --- a/tests/codegen/expr/dgold/builtin_overflow5.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_overflow5.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_overflow6.scilexp.gold b/tests/codegen/expr/dgold/builtin_overflow6.scilexp.gold index 7628bea5..41284432 100644 --- a/tests/codegen/expr/dgold/builtin_overflow6.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_overflow6.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_ripemd160hash.scilexp.gold b/tests/codegen/expr/dgold/builtin_ripemd160hash.scilexp.gold index e60ce66a..644fe928 100644 --- a/tests/codegen/expr/dgold/builtin_ripemd160hash.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_ripemd160hash.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_schnorr_verify_false.scilexp.gold b/tests/codegen/expr/dgold/builtin_schnorr_verify_false.scilexp.gold index 3744f304..58f97708 100644 --- a/tests/codegen/expr/dgold/builtin_schnorr_verify_false.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_schnorr_verify_false.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_schnorr_verify_true.scilexp.gold b/tests/codegen/expr/dgold/builtin_schnorr_verify_true.scilexp.gold index 4be5298d..7853890a 100644 --- a/tests/codegen/expr/dgold/builtin_schnorr_verify_true.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_schnorr_verify_true.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_sha256hash.scilexp.gold b/tests/codegen/expr/dgold/builtin_sha256hash.scilexp.gold index e85e3aea..e66d69fe 100644 --- a/tests/codegen/expr/dgold/builtin_sha256hash.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_sha256hash.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_strlen.scilexp.gold b/tests/codegen/expr/dgold/builtin_strlen.scilexp.gold index 77c4906c..a0926b82 100644 --- a/tests/codegen/expr/dgold/builtin_strlen.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_strlen.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_strrev.scilexp.gold b/tests/codegen/expr/dgold/builtin_strrev.scilexp.gold index d97862a6..7bd65892 100644 --- a/tests/codegen/expr/dgold/builtin_strrev.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_strrev.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_sub.scilexp.gold b/tests/codegen/expr/dgold/builtin_sub.scilexp.gold index 3b83947c..8fcb3159 100644 --- a/tests/codegen/expr/dgold/builtin_sub.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_sub.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_104" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_substr.scilexp.gold b/tests/codegen/expr/dgold/builtin_substr.scilexp.gold index 867a7ba5..5d9933be 100644 --- a/tests/codegen/expr/dgold/builtin_substr.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_substr.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_substr_rfail.scilexp.gold b/tests/codegen/expr/dgold/builtin_substr_rfail.scilexp.gold index ec77a95e..7d416b59 100644 --- a/tests/codegen/expr/dgold/builtin_substr_rfail.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_substr_rfail.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_to_ascii.scilexp.gold b/tests/codegen/expr/dgold/builtin_to_ascii.scilexp.gold index 3a9d84e1..d8df59a4 100644 --- a/tests/codegen/expr/dgold/builtin_to_ascii.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_to_ascii.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_to_ascii_error.scilexp.gold b/tests/codegen/expr/dgold/builtin_to_ascii_error.scilexp.gold index f524eb2d..eda034ad 100644 --- a/tests/codegen/expr/dgold/builtin_to_ascii_error.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_to_ascii_error.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_to_bystrx.scilexp.gold b/tests/codegen/expr/dgold/builtin_to_bystrx.scilexp.gold index ea594bcd..baad6080 100644 --- a/tests/codegen/expr/dgold/builtin_to_bystrx.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_to_bystrx.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_to_int.scilexp.gold b/tests/codegen/expr/dgold/builtin_to_int.scilexp.gold index 48387f57..8874d55f 100644 --- a/tests/codegen/expr/dgold/builtin_to_int.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_to_int.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_80" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_to_nat.scilexp.gold b/tests/codegen/expr/dgold/builtin_to_nat.scilexp.gold index 47765f59..5d1a336c 100644 --- a/tests/codegen/expr/dgold/builtin_to_nat.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_to_nat.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_to_string.scilexp.gold b/tests/codegen/expr/dgold/builtin_to_string.scilexp.gold index b8e5c4aa..f73be6b8 100644 --- a/tests/codegen/expr/dgold/builtin_to_string.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_to_string.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_9" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/builtin_to_uint.scilexp.gold b/tests/codegen/expr/dgold/builtin_to_uint.scilexp.gold index 95ed8934..dfff7881 100644 --- a/tests/codegen/expr/dgold/builtin_to_uint.scilexp.gold +++ b/tests/codegen/expr/dgold/builtin_to_uint.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_107" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/bystrx_uint_conversions.scilexp.gold b/tests/codegen/expr/dgold/bystrx_uint_conversions.scilexp.gold index 34838fbd..94364520 100644 --- a/tests/codegen/expr/dgold/bystrx_uint_conversions.scilexp.gold +++ b/tests/codegen/expr/dgold/bystrx_uint_conversions.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/church_nat.scilexp.gold b/tests/codegen/expr/dgold/church_nat.scilexp.gold index 7842d8d0..b90c3aaf 100644 --- a/tests/codegen/expr/dgold/church_nat.scilexp.gold +++ b/tests/codegen/expr/dgold/church_nat.scilexp.gold @@ -1,1238 +1,1192 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_73" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_63" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$ParamDescr_926" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_873" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_927" = type { %ParamDescrString, i32, %"$ParamDescr_926"* } -%"$$fundef_71_env_108" = type { %Uint32 } +%"$TransDescr_874" = type { %ParamDescrString, i32, %"$ParamDescr_873"* } +%"$$fundef_61_env_98" = type { %Uint32 } %Uint32 = type { i32 } -%"$$fundef_69_env_109" = type {} -%"$$fundef_67_env_110" = type { { i8*, i8* }*, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { i8*, i8* }* } -%"$$fundef_65_env_111" = type { { i8*, i8* }*, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } } -%"$$fundef_63_env_112" = type { { i8*, i8* }*, { i8*, i8* }*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } } -%"$$fundef_61_env_113" = type { { i8*, i8* }*, { i8*, i8* }* } -%"$$fundef_59_env_114" = type { { i8*, i8* }*, { i8*, i8* }* } -%"$$fundef_57_env_115" = type { { i8*, i8* }*, { i8*, i8* }*, { %Uint32 (i8*, %Uint32)*, i8* } } -%"$$fundef_55_env_116" = type { { i8*, i8* }*, { i8*, i8* }* } -%"$$fundef_53_env_117" = type { { i8*, i8* }*, { i8*, i8* }* } -%"$$fundef_51_env_118" = type { { i8*, i8* }* } -%"$$fundef_49_env_119" = type {} -%"$$fundef_47_env_120" = type { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } } -%"$$fundef_45_env_121" = type {} -%"$$fundef_43_env_122" = type {} -%"$$fundef_41_env_123" = type { { %Uint32 (i8*, %Uint32)*, i8* } } -%"$$fundef_39_env_124" = type {} -%"$$fundef_37_env_125" = type {} -%"$$fundef_35_env_126" = type {} -%"$$fundef_33_env_127" = type {} -%"$$fundef_31_env_128" = type {} -%"$$fundef_29_env_129" = type {} -%"$$fundef_27_env_130" = type {} -%"$$fundef_25_env_131" = type {} +%"$$fundef_59_env_99" = type {} +%"$$fundef_57_env_100" = type { { i8*, i8* }*, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } } +%"$$fundef_55_env_101" = type { { i8*, i8* }*, { i8*, i8* }*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } } +%"$$fundef_53_env_102" = type { { i8*, i8* }*, { i8*, i8* }* } +%"$$fundef_51_env_103" = type { { i8*, i8* }*, { i8*, i8* }* } +%"$$fundef_49_env_104" = type { { i8*, i8* }*, { i8*, i8* }*, { %Uint32 (i8*, %Uint32)*, i8* } } +%"$$fundef_47_env_105" = type { { i8*, i8* }*, { i8*, i8* }* } +%"$$fundef_45_env_106" = type { { i8*, i8* }*, { i8*, i8* }* } +%"$$fundef_43_env_107" = type { { i8*, i8* }* } +%"$$fundef_41_env_108" = type {} +%"$$fundef_39_env_109" = type { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } } +%"$$fundef_37_env_110" = type {} +%"$$fundef_35_env_111" = type {} +%"$$fundef_33_env_112" = type { { %Uint32 (i8*, %Uint32)*, i8* } } +%"$$fundef_31_env_113" = type {} +%"$$fundef_29_env_114" = type {} +%"$$fundef_27_env_115" = type {} +%"$$fundef_25_env_116" = type {} +%"$$fundef_23_env_117" = type {} +%"$$fundef_21_env_118" = type {} +%"$$fundef_19_env_119" = type {} +%"$$fundef_17_env_120" = type {} @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_74" = global %"$TyDescrTy_PrimTyp_73" zeroinitializer -@"$TyDescr_Int32_75" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Int32_Prim_74" to i8*) } -@"$TyDescr_Uint32_Prim_76" = global %"$TyDescrTy_PrimTyp_73" { i32 1, i32 0 } -@"$TyDescr_Uint32_77" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Uint32_Prim_76" to i8*) } -@"$TyDescr_Int64_Prim_78" = global %"$TyDescrTy_PrimTyp_73" { i32 0, i32 1 } -@"$TyDescr_Int64_79" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Int64_Prim_78" to i8*) } -@"$TyDescr_Uint64_Prim_80" = global %"$TyDescrTy_PrimTyp_73" { i32 1, i32 1 } -@"$TyDescr_Uint64_81" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Uint64_Prim_80" to i8*) } -@"$TyDescr_Int128_Prim_82" = global %"$TyDescrTy_PrimTyp_73" { i32 0, i32 2 } -@"$TyDescr_Int128_83" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Int128_Prim_82" to i8*) } -@"$TyDescr_Uint128_Prim_84" = global %"$TyDescrTy_PrimTyp_73" { i32 1, i32 2 } -@"$TyDescr_Uint128_85" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Uint128_Prim_84" to i8*) } -@"$TyDescr_Int256_Prim_86" = global %"$TyDescrTy_PrimTyp_73" { i32 0, i32 3 } -@"$TyDescr_Int256_87" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Int256_Prim_86" to i8*) } -@"$TyDescr_Uint256_Prim_88" = global %"$TyDescrTy_PrimTyp_73" { i32 1, i32 3 } -@"$TyDescr_Uint256_89" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Uint256_Prim_88" to i8*) } -@"$TyDescr_String_Prim_90" = global %"$TyDescrTy_PrimTyp_73" { i32 2, i32 0 } -@"$TyDescr_String_91" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_String_Prim_90" to i8*) } -@"$TyDescr_Bnum_Prim_92" = global %"$TyDescrTy_PrimTyp_73" { i32 3, i32 0 } -@"$TyDescr_Bnum_93" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Bnum_Prim_92" to i8*) } -@"$TyDescr_Message_Prim_94" = global %"$TyDescrTy_PrimTyp_73" { i32 4, i32 0 } -@"$TyDescr_Message_95" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Message_Prim_94" to i8*) } -@"$TyDescr_Event_Prim_96" = global %"$TyDescrTy_PrimTyp_73" { i32 5, i32 0 } -@"$TyDescr_Event_97" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Event_Prim_96" to i8*) } -@"$TyDescr_Exception_Prim_98" = global %"$TyDescrTy_PrimTyp_73" { i32 6, i32 0 } -@"$TyDescr_Exception_99" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Exception_Prim_98" to i8*) } -@"$TyDescr_Bystr_Prim_100" = global %"$TyDescrTy_PrimTyp_73" { i32 7, i32 0 } -@"$TyDescr_Bystr_101" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Bystr_Prim_100" to i8*) } -@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_97", %_TyDescrTy_Typ* @"$TyDescr_Int64_79", %_TyDescrTy_Typ* @"$TyDescr_Uint256_89", %_TyDescrTy_Typ* @"$TyDescr_Uint32_77", %_TyDescrTy_Typ* @"$TyDescr_Uint64_81", %_TyDescrTy_Typ* @"$TyDescr_Bnum_93", %_TyDescrTy_Typ* @"$TyDescr_Uint128_85", %_TyDescrTy_Typ* @"$TyDescr_Exception_99", %_TyDescrTy_Typ* @"$TyDescr_String_91", %_TyDescrTy_Typ* @"$TyDescr_Int256_87", %_TyDescrTy_Typ* @"$TyDescr_Int128_83", %_TyDescrTy_Typ* @"$TyDescr_Bystr_101", %_TyDescrTy_Typ* @"$TyDescr_Message_95", %_TyDescrTy_Typ* @"$TyDescr_Int32_75"] +@"$TyDescr_Int32_Prim_64" = global %"$TyDescrTy_PrimTyp_63" zeroinitializer +@"$TyDescr_Int32_65" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Int32_Prim_64" to i8*) } +@"$TyDescr_Uint32_Prim_66" = global %"$TyDescrTy_PrimTyp_63" { i32 1, i32 0 } +@"$TyDescr_Uint32_67" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Uint32_Prim_66" to i8*) } +@"$TyDescr_Int64_Prim_68" = global %"$TyDescrTy_PrimTyp_63" { i32 0, i32 1 } +@"$TyDescr_Int64_69" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Int64_Prim_68" to i8*) } +@"$TyDescr_Uint64_Prim_70" = global %"$TyDescrTy_PrimTyp_63" { i32 1, i32 1 } +@"$TyDescr_Uint64_71" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Uint64_Prim_70" to i8*) } +@"$TyDescr_Int128_Prim_72" = global %"$TyDescrTy_PrimTyp_63" { i32 0, i32 2 } +@"$TyDescr_Int128_73" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Int128_Prim_72" to i8*) } +@"$TyDescr_Uint128_Prim_74" = global %"$TyDescrTy_PrimTyp_63" { i32 1, i32 2 } +@"$TyDescr_Uint128_75" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Uint128_Prim_74" to i8*) } +@"$TyDescr_Int256_Prim_76" = global %"$TyDescrTy_PrimTyp_63" { i32 0, i32 3 } +@"$TyDescr_Int256_77" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Int256_Prim_76" to i8*) } +@"$TyDescr_Uint256_Prim_78" = global %"$TyDescrTy_PrimTyp_63" { i32 1, i32 3 } +@"$TyDescr_Uint256_79" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Uint256_Prim_78" to i8*) } +@"$TyDescr_String_Prim_80" = global %"$TyDescrTy_PrimTyp_63" { i32 2, i32 0 } +@"$TyDescr_String_81" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_String_Prim_80" to i8*) } +@"$TyDescr_Bnum_Prim_82" = global %"$TyDescrTy_PrimTyp_63" { i32 3, i32 0 } +@"$TyDescr_Bnum_83" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Bnum_Prim_82" to i8*) } +@"$TyDescr_Message_Prim_84" = global %"$TyDescrTy_PrimTyp_63" { i32 4, i32 0 } +@"$TyDescr_Message_85" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Message_Prim_84" to i8*) } +@"$TyDescr_Event_Prim_86" = global %"$TyDescrTy_PrimTyp_63" { i32 5, i32 0 } +@"$TyDescr_Event_87" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Event_Prim_86" to i8*) } +@"$TyDescr_Exception_Prim_88" = global %"$TyDescrTy_PrimTyp_63" { i32 6, i32 0 } +@"$TyDescr_Exception_89" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Exception_Prim_88" to i8*) } +@"$TyDescr_Bystr_Prim_90" = global %"$TyDescrTy_PrimTyp_63" { i32 7, i32 0 } +@"$TyDescr_Bystr_91" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Bystr_Prim_90" to i8*) } +@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_87", %_TyDescrTy_Typ* @"$TyDescr_Int64_69", %_TyDescrTy_Typ* @"$TyDescr_Uint256_79", %_TyDescrTy_Typ* @"$TyDescr_Uint32_67", %_TyDescrTy_Typ* @"$TyDescr_Uint64_71", %_TyDescrTy_Typ* @"$TyDescr_Bnum_83", %_TyDescrTy_Typ* @"$TyDescr_Uint128_75", %_TyDescrTy_Typ* @"$TyDescr_Exception_89", %_TyDescrTy_Typ* @"$TyDescr_String_81", %_TyDescrTy_Typ* @"$TyDescr_Int256_77", %_TyDescrTy_Typ* @"$TyDescr_Int128_73", %_TyDescrTy_Typ* @"$TyDescr_Bystr_91", %_TyDescrTy_Typ* @"$TyDescr_Message_85", %_TyDescrTy_Typ* @"$TyDescr_Int32_65"] @_tydescr_table_length = constant i32 14 -@_contract_parameters = constant [0 x %"$ParamDescr_926"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_873"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_927"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_874"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Uint32 @"$fundef_71"(%"$$fundef_71_env_108"* %0, %Uint32 %1) !dbg !4 { +define internal %Uint32 @"$fundef_61"(%"$$fundef_61_env_98"* %0, %Uint32 %1) !dbg !4 { entry: - %"$$fundef_71_env_one_683" = getelementptr inbounds %"$$fundef_71_env_108", %"$$fundef_71_env_108"* %0, i32 0, i32 0 - %"$one_envload_684" = load %Uint32, %Uint32* %"$$fundef_71_env_one_683", align 4 + %"$$fundef_61_env_one_650" = getelementptr inbounds %"$$fundef_61_env_98", %"$$fundef_61_env_98"* %0, i32 0, i32 0 + %"$one_envload_651" = load %Uint32, %Uint32* %"$$fundef_61_env_one_650", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_684", %Uint32* %one, align 4 - %"$retval_72" = alloca %Uint32, align 8 - %"$gasrem_685" = load i64, i64* @_gasrem, align 8 - %"$gascmp_686" = icmp ugt i64 4, %"$gasrem_685" - br i1 %"$gascmp_686", label %"$out_of_gas_687", label %"$have_gas_688" - -"$out_of_gas_687": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_688" - -"$have_gas_688": ; preds = %"$out_of_gas_687", %entry - %"$consume_689" = sub i64 %"$gasrem_685", 4 - store i64 %"$consume_689", i64* @_gasrem, align 8 - %"$one_690" = load %Uint32, %Uint32* %one, align 4 - %"$add_call_691" = call %Uint32 @_add_Uint32(%Uint32 %"$one_690", %Uint32 %1), !dbg !8 - store %Uint32 %"$add_call_691", %Uint32* %"$retval_72", align 4, !dbg !8 - %"$$retval_72_692" = load %Uint32, %Uint32* %"$retval_72", align 4 - ret %Uint32 %"$$retval_72_692" + store %Uint32 %"$one_envload_651", %Uint32* %one, align 4 + %"$retval_62" = alloca %Uint32, align 8 + %"$gasrem_652" = load i64, i64* @_gasrem, align 8 + %"$gascmp_653" = icmp ugt i64 4, %"$gasrem_652" + br i1 %"$gascmp_653", label %"$out_of_gas_654", label %"$have_gas_655" + +"$out_of_gas_654": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_655" + +"$have_gas_655": ; preds = %"$out_of_gas_654", %entry + %"$consume_656" = sub i64 %"$gasrem_652", 4 + store i64 %"$consume_656", i64* @_gasrem, align 8 + %"$one_657" = load %Uint32, %Uint32* %one, align 4 + %"$add_call_658" = call %Uint32 @_add_Uint32(%Uint32 %"$one_657", %Uint32 %1), !dbg !8 + store %Uint32 %"$add_call_658", %Uint32* %"$retval_62", align 4, !dbg !8 + %"$$retval_62_659" = load %Uint32, %Uint32* %"$retval_62", align 4 + ret %Uint32 %"$$retval_62_659" } -define internal %Uint32 @"$fundef_69"(%"$$fundef_69_env_109"* %0, { i8*, i8* }* %1) !dbg !9 { +define internal %Uint32 @"$fundef_59"(%"$$fundef_59_env_99"* %0, { i8*, i8* }* %1) !dbg !9 { entry: - %"$retval_70" = alloca %Uint32, align 8 - %"$gasrem_614" = load i64, i64* @_gasrem, align 8 - %"$gascmp_615" = icmp ugt i64 1, %"$gasrem_614" - br i1 %"$gascmp_615", label %"$out_of_gas_616", label %"$have_gas_617" + %"$retval_60" = alloca %Uint32, align 8 + %"$gasrem_581" = load i64, i64* @_gasrem, align 8 + %"$gascmp_582" = icmp ugt i64 1, %"$gasrem_581" + br i1 %"$gascmp_582", label %"$out_of_gas_583", label %"$have_gas_584" -"$out_of_gas_616": ; preds = %entry +"$out_of_gas_583": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_617" + br label %"$have_gas_584" -"$have_gas_617": ; preds = %"$out_of_gas_616", %entry - %"$consume_618" = sub i64 %"$gasrem_614", 1 - store i64 %"$consume_618", i64* @_gasrem, align 8 +"$have_gas_584": ; preds = %"$out_of_gas_583", %entry + %"$consume_585" = sub i64 %"$gasrem_581", 1 + store i64 %"$consume_585", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 - %"$gasrem_619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_620" = icmp ugt i64 1, %"$gasrem_619" - br i1 %"$gascmp_620", label %"$out_of_gas_621", label %"$have_gas_622" + %"$gasrem_586" = load i64, i64* @_gasrem, align 8 + %"$gascmp_587" = icmp ugt i64 1, %"$gasrem_586" + br i1 %"$gascmp_587", label %"$out_of_gas_588", label %"$have_gas_589" -"$out_of_gas_621": ; preds = %"$have_gas_617" +"$out_of_gas_588": ; preds = %"$have_gas_584" call void @_out_of_gas() - br label %"$have_gas_622" + br label %"$have_gas_589" -"$have_gas_622": ; preds = %"$out_of_gas_621", %"$have_gas_617" - %"$consume_623" = sub i64 %"$gasrem_619", 1 - store i64 %"$consume_623", i64* @_gasrem, align 8 +"$have_gas_589": ; preds = %"$out_of_gas_588", %"$have_gas_584" + %"$consume_590" = sub i64 %"$gasrem_586", 1 + store i64 %"$consume_590", i64* @_gasrem, align 8 store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !10 - %"$gasrem_624" = load i64, i64* @_gasrem, align 8 - %"$gascmp_625" = icmp ugt i64 1, %"$gasrem_624" - br i1 %"$gascmp_625", label %"$out_of_gas_626", label %"$have_gas_627" + %"$gasrem_591" = load i64, i64* @_gasrem, align 8 + %"$gascmp_592" = icmp ugt i64 1, %"$gasrem_591" + br i1 %"$gascmp_592", label %"$out_of_gas_593", label %"$have_gas_594" -"$out_of_gas_626": ; preds = %"$have_gas_622" +"$out_of_gas_593": ; preds = %"$have_gas_589" call void @_out_of_gas() - br label %"$have_gas_627" + br label %"$have_gas_594" -"$have_gas_627": ; preds = %"$out_of_gas_626", %"$have_gas_622" - %"$consume_628" = sub i64 %"$gasrem_624", 1 - store i64 %"$consume_628", i64* @_gasrem, align 8 +"$have_gas_594": ; preds = %"$out_of_gas_593", %"$have_gas_589" + %"$consume_595" = sub i64 %"$gasrem_591", 1 + store i64 %"$consume_595", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_629" = load i64, i64* @_gasrem, align 8 - %"$gascmp_630" = icmp ugt i64 1, %"$gasrem_629" - br i1 %"$gascmp_630", label %"$out_of_gas_631", label %"$have_gas_632" + %"$gasrem_596" = load i64, i64* @_gasrem, align 8 + %"$gascmp_597" = icmp ugt i64 1, %"$gasrem_596" + br i1 %"$gascmp_597", label %"$out_of_gas_598", label %"$have_gas_599" -"$out_of_gas_631": ; preds = %"$have_gas_627" +"$out_of_gas_598": ; preds = %"$have_gas_594" call void @_out_of_gas() - br label %"$have_gas_632" + br label %"$have_gas_599" -"$have_gas_632": ; preds = %"$out_of_gas_631", %"$have_gas_627" - %"$consume_633" = sub i64 %"$gasrem_629", 1 - store i64 %"$consume_633", i64* @_gasrem, align 8 +"$have_gas_599": ; preds = %"$out_of_gas_598", %"$have_gas_594" + %"$consume_600" = sub i64 %"$gasrem_596", 1 + store i64 %"$consume_600", i64* @_gasrem, align 8 store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !11 - %"$gasrem_634" = load i64, i64* @_gasrem, align 8 - %"$gascmp_635" = icmp ugt i64 1, %"$gasrem_634" - br i1 %"$gascmp_635", label %"$out_of_gas_636", label %"$have_gas_637" + %"$gasrem_601" = load i64, i64* @_gasrem, align 8 + %"$gascmp_602" = icmp ugt i64 1, %"$gasrem_601" + br i1 %"$gascmp_602", label %"$out_of_gas_603", label %"$have_gas_604" -"$out_of_gas_636": ; preds = %"$have_gas_632" +"$out_of_gas_603": ; preds = %"$have_gas_599" call void @_out_of_gas() - br label %"$have_gas_637" + br label %"$have_gas_604" -"$have_gas_637": ; preds = %"$out_of_gas_636", %"$have_gas_632" - %"$consume_638" = sub i64 %"$gasrem_634", 1 - store i64 %"$consume_638", i64* @_gasrem, align 8 +"$have_gas_604": ; preds = %"$out_of_gas_603", %"$have_gas_599" + %"$consume_605" = sub i64 %"$gasrem_601", 1 + store i64 %"$consume_605", i64* @_gasrem, align 8 %add1 = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_639" = load i64, i64* @_gasrem, align 8 - %"$gascmp_640" = icmp ugt i64 1, %"$gasrem_639" - br i1 %"$gascmp_640", label %"$out_of_gas_641", label %"$have_gas_642" - -"$out_of_gas_641": ; preds = %"$have_gas_637" - call void @_out_of_gas() - br label %"$have_gas_642" - -"$have_gas_642": ; preds = %"$out_of_gas_641", %"$have_gas_637" - %"$consume_643" = sub i64 %"$gasrem_639", 1 - store i64 %"$consume_643", i64* @_gasrem, align 8 - %"$$fundef_71_envp_644_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_71_envp_644_salloc" = call i8* @_salloc(i8* %"$$fundef_71_envp_644_load", i64 4) - %"$$fundef_71_envp_644" = bitcast i8* %"$$fundef_71_envp_644_salloc" to %"$$fundef_71_env_108"* - %"$$fundef_71_env_voidp_646" = bitcast %"$$fundef_71_env_108"* %"$$fundef_71_envp_644" to i8* - %"$$fundef_71_cloval_647" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_71_env_108"*, %Uint32)* @"$fundef_71" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_71_env_voidp_646", 1 - %"$$fundef_71_env_one_648" = getelementptr inbounds %"$$fundef_71_env_108", %"$$fundef_71_env_108"* %"$$fundef_71_envp_644", i32 0, i32 0 - %"$one_649" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_649", %Uint32* %"$$fundef_71_env_one_648", align 4 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_71_cloval_647", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8, !dbg !12 - %"$gasrem_650" = load i64, i64* @_gasrem, align 8 - %"$gascmp_651" = icmp ugt i64 1, %"$gasrem_650" - br i1 %"$gascmp_651", label %"$out_of_gas_652", label %"$have_gas_653" - -"$out_of_gas_652": ; preds = %"$have_gas_642" - call void @_out_of_gas() - br label %"$have_gas_653" - -"$have_gas_653": ; preds = %"$out_of_gas_652", %"$have_gas_642" - %"$consume_654" = sub i64 %"$gasrem_650", 1 - store i64 %"$consume_654", i64* @_gasrem, align 8 + %"$gasrem_606" = load i64, i64* @_gasrem, align 8 + %"$gascmp_607" = icmp ugt i64 1, %"$gasrem_606" + br i1 %"$gascmp_607", label %"$out_of_gas_608", label %"$have_gas_609" + +"$out_of_gas_608": ; preds = %"$have_gas_604" + call void @_out_of_gas() + br label %"$have_gas_609" + +"$have_gas_609": ; preds = %"$out_of_gas_608", %"$have_gas_604" + %"$consume_610" = sub i64 %"$gasrem_606", 1 + store i64 %"$consume_610", i64* @_gasrem, align 8 + %"$$fundef_61_envp_611_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_61_envp_611_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_611_load", i64 4) + %"$$fundef_61_envp_611" = bitcast i8* %"$$fundef_61_envp_611_salloc" to %"$$fundef_61_env_98"* + %"$$fundef_61_env_voidp_613" = bitcast %"$$fundef_61_env_98"* %"$$fundef_61_envp_611" to i8* + %"$$fundef_61_cloval_614" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_61_env_98"*, %Uint32)* @"$fundef_61" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_61_env_voidp_613", 1 + %"$$fundef_61_env_one_615" = getelementptr inbounds %"$$fundef_61_env_98", %"$$fundef_61_env_98"* %"$$fundef_61_envp_611", i32 0, i32 0 + %"$one_616" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_616", %Uint32* %"$$fundef_61_env_one_615", align 4 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_61_cloval_614", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8, !dbg !12 + %"$gasrem_617" = load i64, i64* @_gasrem, align 8 + %"$gascmp_618" = icmp ugt i64 1, %"$gasrem_617" + br i1 %"$gascmp_618", label %"$out_of_gas_619", label %"$have_gas_620" + +"$out_of_gas_619": ; preds = %"$have_gas_609" + call void @_out_of_gas() + br label %"$have_gas_620" + +"$have_gas_620": ; preds = %"$out_of_gas_619", %"$have_gas_609" + %"$consume_621" = sub i64 %"$gasrem_617", 1 + store i64 %"$consume_621", i64* @_gasrem, align 8 %c32 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_655" = load i64, i64* @_gasrem, align 8 - %"$gascmp_656" = icmp ugt i64 1, %"$gasrem_655" - br i1 %"$gascmp_656", label %"$out_of_gas_657", label %"$have_gas_658" - -"$out_of_gas_657": ; preds = %"$have_gas_653" - call void @_out_of_gas() - br label %"$have_gas_658" - -"$have_gas_658": ; preds = %"$out_of_gas_657", %"$have_gas_653" - %"$consume_659" = sub i64 %"$gasrem_655", 1 - store i64 %"$consume_659", i64* @_gasrem, align 8 - %"$c_660" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 0 - %"$c_661" = bitcast { i8*, i8* }* %"$c_660" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$c_662" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$c_661", align 8 - %"$c_fptr_663" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_662", 0 - %"$c_envptr_664" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_662", 1 - %"$c_call_665" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_fptr_663"(i8* %"$c_envptr_664"), !dbg !13 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_call_665", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8, !dbg !14 - %"$gasrem_666" = load i64, i64* @_gasrem, align 8 - %"$gascmp_667" = icmp ugt i64 1, %"$gasrem_666" - br i1 %"$gascmp_667", label %"$out_of_gas_668", label %"$have_gas_669" - -"$out_of_gas_668": ; preds = %"$have_gas_658" - call void @_out_of_gas() - br label %"$have_gas_669" - -"$have_gas_669": ; preds = %"$out_of_gas_668", %"$have_gas_658" - %"$consume_670" = sub i64 %"$gasrem_666", 1 - store i64 %"$consume_670", i64* @_gasrem, align 8 + %"$gasrem_622" = load i64, i64* @_gasrem, align 8 + %"$gascmp_623" = icmp ugt i64 1, %"$gasrem_622" + br i1 %"$gascmp_623", label %"$out_of_gas_624", label %"$have_gas_625" + +"$out_of_gas_624": ; preds = %"$have_gas_620" + call void @_out_of_gas() + br label %"$have_gas_625" + +"$have_gas_625": ; preds = %"$out_of_gas_624", %"$have_gas_620" + %"$consume_626" = sub i64 %"$gasrem_622", 1 + store i64 %"$consume_626", i64* @_gasrem, align 8 + %"$c_627" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 0 + %"$c_628" = bitcast { i8*, i8* }* %"$c_627" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$c_629" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$c_628", align 8 + %"$c_fptr_630" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_629", 0 + %"$c_envptr_631" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_629", 1 + %"$c_call_632" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_fptr_630"(i8* %"$c_envptr_631"), !dbg !13 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_call_632", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8, !dbg !14 + %"$gasrem_633" = load i64, i64* @_gasrem, align 8 + %"$gascmp_634" = icmp ugt i64 1, %"$gasrem_633" + br i1 %"$gascmp_634", label %"$out_of_gas_635", label %"$have_gas_636" + +"$out_of_gas_635": ; preds = %"$have_gas_625" + call void @_out_of_gas() + br label %"$have_gas_636" + +"$have_gas_636": ; preds = %"$out_of_gas_635", %"$have_gas_625" + %"$consume_637" = sub i64 %"$gasrem_633", 1 + store i64 %"$consume_637", i64* @_gasrem, align 8 %"$c32_9" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$c32_671" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 - %"$c32_fptr_672" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_671", 0 - %"$c32_envptr_673" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_671", 1 - %"$add1_674" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 - %"$c32_call_675" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_fptr_672"(i8* %"$c32_envptr_673", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_674"), !dbg !15 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_call_675", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_9", align 8, !dbg !15 + %"$c32_638" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 + %"$c32_fptr_639" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_638", 0 + %"$c32_envptr_640" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_638", 1 + %"$add1_641" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 + %"$c32_call_642" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_fptr_639"(i8* %"$c32_envptr_640", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_641"), !dbg !15 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_call_642", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_9", align 8, !dbg !15 %"$c32_10" = alloca %Uint32, align 8 - %"$$c32_9_676" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_9", align 8 - %"$$c32_9_fptr_677" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_9_676", 0 - %"$$c32_9_envptr_678" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_9_676", 1 - %"$zero_679" = load %Uint32, %Uint32* %zero, align 4 - %"$$c32_9_call_680" = call %Uint32 %"$$c32_9_fptr_677"(i8* %"$$c32_9_envptr_678", %Uint32 %"$zero_679"), !dbg !15 - store %Uint32 %"$$c32_9_call_680", %Uint32* %"$c32_10", align 4, !dbg !15 - %"$$c32_10_681" = load %Uint32, %Uint32* %"$c32_10", align 4 - store %Uint32 %"$$c32_10_681", %Uint32* %"$retval_70", align 4, !dbg !15 - %"$$retval_70_682" = load %Uint32, %Uint32* %"$retval_70", align 4 - ret %Uint32 %"$$retval_70_682" + %"$$c32_9_643" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_9", align 8 + %"$$c32_9_fptr_644" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_9_643", 0 + %"$$c32_9_envptr_645" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_9_643", 1 + %"$zero_646" = load %Uint32, %Uint32* %zero, align 4 + %"$$c32_9_call_647" = call %Uint32 %"$$c32_9_fptr_644"(i8* %"$$c32_9_envptr_645", %Uint32 %"$zero_646"), !dbg !15 + store %Uint32 %"$$c32_9_call_647", %Uint32* %"$c32_10", align 4, !dbg !15 + %"$$c32_10_648" = load %Uint32, %Uint32* %"$c32_10", align 4 + store %Uint32 %"$$c32_10_648", %Uint32* %"$retval_60", align 4, !dbg !15 + %"$$retval_60_649" = load %Uint32, %Uint32* %"$retval_60", align 4 + ret %Uint32 %"$$retval_60_649" } -define internal { i8*, i8* }* @"$fundef_67"(%"$$fundef_67_env_110"* %0, { i8*, i8* }* %1) !dbg !16 { +define internal { i8*, i8* }* @"$fundef_57"(%"$$fundef_57_env_100"* %0, { i8*, i8* }* %1, { i8*, i8* }* %2) !dbg !16 { entry: - %"$$fundef_67_env_c0_559" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %0, i32 0, i32 0 - %"$c0_envload_560" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_67_env_c0_559", align 8 + %"$$fundef_57_env_c0_529" = getelementptr inbounds %"$$fundef_57_env_100", %"$$fundef_57_env_100"* %0, i32 0, i32 0 + %"$c0_envload_530" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_c0_529", align 8 %c0 = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$c0_envload_560", { i8*, i8* }** %c0, align 8 - %"$$fundef_67_env_cadd_561" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %0, i32 0, i32 1 - %"$cadd_envload_562" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_67_env_cadd_561", align 8 + store { i8*, i8* }* %"$c0_envload_530", { i8*, i8* }** %c0, align 8 + %"$$fundef_57_env_cadd_531" = getelementptr inbounds %"$$fundef_57_env_100", %"$$fundef_57_env_100"* %0, i32 0, i32 1 + %"$cadd_envload_532" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_57_env_cadd_531", align 8 %cadd = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_envload_562", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$$fundef_67_env_m_563" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %0, i32 0, i32 2 - %"$m_envload_564" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_67_env_m_563", align 8 - %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_564", { i8*, i8* }** %m, align 8 - %"$retval_68" = alloca { i8*, i8* }*, align 8 - %"$gasrem_565" = load i64, i64* @_gasrem, align 8 - %"$gascmp_566" = icmp ugt i64 1, %"$gasrem_565" - br i1 %"$gascmp_566", label %"$out_of_gas_567", label %"$have_gas_568" + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_envload_532", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + %"$retval_58" = alloca { i8*, i8* }*, align 8 + %"$gasrem_533" = load i64, i64* @_gasrem, align 8 + %"$gascmp_534" = icmp ugt i64 1, %"$gasrem_533" + br i1 %"$gascmp_534", label %"$out_of_gas_535", label %"$have_gas_536" -"$out_of_gas_567": ; preds = %entry +"$out_of_gas_535": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_568" + br label %"$have_gas_536" -"$have_gas_568": ; preds = %"$out_of_gas_567", %entry - %"$consume_569" = sub i64 %"$gasrem_565", 1 - store i64 %"$consume_569", i64* @_gasrem, align 8 +"$have_gas_536": ; preds = %"$out_of_gas_535", %entry + %"$consume_537" = sub i64 %"$gasrem_533", 1 + store i64 %"$consume_537", i64* @_gasrem, align 8 %cadd_m = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_571" = icmp ugt i64 1, %"$gasrem_570" - br i1 %"$gascmp_571", label %"$out_of_gas_572", label %"$have_gas_573" + %"$gasrem_538" = load i64, i64* @_gasrem, align 8 + %"$gascmp_539" = icmp ugt i64 1, %"$gasrem_538" + br i1 %"$gascmp_539", label %"$out_of_gas_540", label %"$have_gas_541" -"$out_of_gas_572": ; preds = %"$have_gas_568" +"$out_of_gas_540": ; preds = %"$have_gas_536" call void @_out_of_gas() - br label %"$have_gas_573" + br label %"$have_gas_541" -"$have_gas_573": ; preds = %"$out_of_gas_572", %"$have_gas_568" - %"$consume_574" = sub i64 %"$gasrem_570", 1 - store i64 %"$consume_574", i64* @_gasrem, align 8 +"$have_gas_541": ; preds = %"$out_of_gas_540", %"$have_gas_536" + %"$consume_542" = sub i64 %"$gasrem_538", 1 + store i64 %"$consume_542", i64* @_gasrem, align 8 %"$cadd_6" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cadd_575" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$cadd_fptr_576" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_575", 0 - %"$cadd_envptr_577" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_575", 1 - %"$m_578" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - %"$cadd_call_579" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_576"(i8* %"$cadd_envptr_577", { i8*, i8* }* %"$m_578"), !dbg !17 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_579", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_6", align 8, !dbg !17 - %"$$cadd_6_580" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_6", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_6_580", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8, !dbg !17 - %"$gasrem_581" = load i64, i64* @_gasrem, align 8 - %"$gascmp_582" = icmp ugt i64 1, %"$gasrem_581" - br i1 %"$gascmp_582", label %"$out_of_gas_583", label %"$have_gas_584" - -"$out_of_gas_583": ; preds = %"$have_gas_573" - call void @_out_of_gas() - br label %"$have_gas_584" - -"$have_gas_584": ; preds = %"$out_of_gas_583", %"$have_gas_573" - %"$consume_585" = sub i64 %"$gasrem_581", 1 - store i64 %"$consume_585", i64* @_gasrem, align 8 + %"$cadd_543" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + %"$cadd_fptr_544" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_543", 0 + %"$cadd_envptr_545" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_543", 1 + %"$cadd_call_546" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_544"(i8* %"$cadd_envptr_545", { i8*, i8* }* %1), !dbg !17 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_546", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_6", align 8, !dbg !17 + %"$$cadd_6_547" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_6", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_6_547", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8, !dbg !17 + %"$gasrem_548" = load i64, i64* @_gasrem, align 8 + %"$gascmp_549" = icmp ugt i64 1, %"$gasrem_548" + br i1 %"$gascmp_549", label %"$out_of_gas_550", label %"$have_gas_551" + +"$out_of_gas_550": ; preds = %"$have_gas_541" + call void @_out_of_gas() + br label %"$have_gas_551" + +"$have_gas_551": ; preds = %"$out_of_gas_550", %"$have_gas_541" + %"$consume_552" = sub i64 %"$gasrem_548", 1 + store i64 %"$consume_552", i64* @_gasrem, align 8 %nI = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_586" = load i64, i64* @_gasrem, align 8 - %"$gascmp_587" = icmp ugt i64 1, %"$gasrem_586" - br i1 %"$gascmp_587", label %"$out_of_gas_588", label %"$have_gas_589" - -"$out_of_gas_588": ; preds = %"$have_gas_584" - call void @_out_of_gas() - br label %"$have_gas_589" - -"$have_gas_589": ; preds = %"$out_of_gas_588", %"$have_gas_584" - %"$consume_590" = sub i64 %"$gasrem_586", 1 - store i64 %"$consume_590", i64* @_gasrem, align 8 - %"$n_591" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 1 - %"$n_592" = bitcast { i8*, i8* }* %"$n_591" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$n_593" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_592", align 8 - %"$n_fptr_594" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_593", 0 - %"$n_envptr_595" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_593", 1 - %"$n_call_596" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_594"(i8* %"$n_envptr_595"), !dbg !18 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_596", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nI, align 8, !dbg !19 - %"$gasrem_597" = load i64, i64* @_gasrem, align 8 - %"$gascmp_598" = icmp ugt i64 1, %"$gasrem_597" - br i1 %"$gascmp_598", label %"$out_of_gas_599", label %"$have_gas_600" - -"$out_of_gas_599": ; preds = %"$have_gas_589" - call void @_out_of_gas() - br label %"$have_gas_600" - -"$have_gas_600": ; preds = %"$out_of_gas_599", %"$have_gas_589" - %"$consume_601" = sub i64 %"$gasrem_597", 1 - store i64 %"$consume_601", i64* @_gasrem, align 8 + %"$gasrem_553" = load i64, i64* @_gasrem, align 8 + %"$gascmp_554" = icmp ugt i64 1, %"$gasrem_553" + br i1 %"$gascmp_554", label %"$out_of_gas_555", label %"$have_gas_556" + +"$out_of_gas_555": ; preds = %"$have_gas_551" + call void @_out_of_gas() + br label %"$have_gas_556" + +"$have_gas_556": ; preds = %"$out_of_gas_555", %"$have_gas_551" + %"$consume_557" = sub i64 %"$gasrem_553", 1 + store i64 %"$consume_557", i64* @_gasrem, align 8 + %"$n_558" = getelementptr { i8*, i8* }, { i8*, i8* }* %2, i32 1 + %"$n_559" = bitcast { i8*, i8* }* %"$n_558" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$n_560" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_559", align 8 + %"$n_fptr_561" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_560", 0 + %"$n_envptr_562" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_560", 1 + %"$n_call_563" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_561"(i8* %"$n_envptr_562"), !dbg !18 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_563", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nI, align 8, !dbg !19 + %"$gasrem_564" = load i64, i64* @_gasrem, align 8 + %"$gascmp_565" = icmp ugt i64 1, %"$gasrem_564" + br i1 %"$gascmp_565", label %"$out_of_gas_566", label %"$have_gas_567" + +"$out_of_gas_566": ; preds = %"$have_gas_556" + call void @_out_of_gas() + br label %"$have_gas_567" + +"$have_gas_567": ; preds = %"$out_of_gas_566", %"$have_gas_556" + %"$consume_568" = sub i64 %"$gasrem_564", 1 + store i64 %"$consume_568", i64* @_gasrem, align 8 %"$nI_7" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$nI_602" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nI, align 8 - %"$nI_fptr_603" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_602", 0 - %"$nI_envptr_604" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_602", 1 - %"$cadd_m_605" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8 - %"$nI_call_606" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_fptr_603"(i8* %"$nI_envptr_604", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_m_605"), !dbg !20 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_call_606", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_7", align 8, !dbg !20 + %"$nI_569" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nI, align 8 + %"$nI_fptr_570" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_569", 0 + %"$nI_envptr_571" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_569", 1 + %"$cadd_m_572" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8 + %"$nI_call_573" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_fptr_570"(i8* %"$nI_envptr_571", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_m_572"), !dbg !20 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_call_573", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_7", align 8, !dbg !20 %"$nI_8" = alloca { i8*, i8* }*, align 8 - %"$$nI_7_607" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_7", align 8 - %"$$nI_7_fptr_608" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_7_607", 0 - %"$$nI_7_envptr_609" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_7_607", 1 - %"$c0_610" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 - %"$$nI_7_call_611" = call { i8*, i8* }* %"$$nI_7_fptr_608"(i8* %"$$nI_7_envptr_609", { i8*, i8* }* %"$c0_610"), !dbg !20 - store { i8*, i8* }* %"$$nI_7_call_611", { i8*, i8* }** %"$nI_8", align 8, !dbg !20 - %"$$nI_8_612" = load { i8*, i8* }*, { i8*, i8* }** %"$nI_8", align 8 - store { i8*, i8* }* %"$$nI_8_612", { i8*, i8* }** %"$retval_68", align 8, !dbg !20 - %"$$retval_68_613" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_68", align 8 - ret { i8*, i8* }* %"$$retval_68_613" -} - -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_65"(%"$$fundef_65_env_111"* %0, { i8*, i8* }* %1) !dbg !21 { -entry: - %"$$fundef_65_env_c0_540" = getelementptr inbounds %"$$fundef_65_env_111", %"$$fundef_65_env_111"* %0, i32 0, i32 0 - %"$c0_envload_541" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_65_env_c0_540", align 8 - %c0 = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$c0_envload_541", { i8*, i8* }** %c0, align 8 - %"$$fundef_65_env_cadd_542" = getelementptr inbounds %"$$fundef_65_env_111", %"$$fundef_65_env_111"* %0, i32 0, i32 1 - %"$cadd_envload_543" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_65_env_cadd_542", align 8 - %cadd = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_envload_543", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$retval_66" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_544" = load i64, i64* @_gasrem, align 8 - %"$gascmp_545" = icmp ugt i64 1, %"$gasrem_544" - br i1 %"$gascmp_545", label %"$out_of_gas_546", label %"$have_gas_547" - -"$out_of_gas_546": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_547" - -"$have_gas_547": ; preds = %"$out_of_gas_546", %entry - %"$consume_548" = sub i64 %"$gasrem_544", 1 - store i64 %"$consume_548", i64* @_gasrem, align 8 - %"$$fundef_67_envp_549_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_67_envp_549_salloc" = call i8* @_salloc(i8* %"$$fundef_67_envp_549_load", i64 32) - %"$$fundef_67_envp_549" = bitcast i8* %"$$fundef_67_envp_549_salloc" to %"$$fundef_67_env_110"* - %"$$fundef_67_env_voidp_551" = bitcast %"$$fundef_67_env_110"* %"$$fundef_67_envp_549" to i8* - %"$$fundef_67_cloval_552" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_67_env_110"*, { i8*, i8* }*)* @"$fundef_67" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_67_env_voidp_551", 1 - %"$$fundef_67_env_c0_553" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %"$$fundef_67_envp_549", i32 0, i32 0 - %"$c0_554" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 - store { i8*, i8* }* %"$c0_554", { i8*, i8* }** %"$$fundef_67_env_c0_553", align 8 - %"$$fundef_67_env_cadd_555" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %"$$fundef_67_envp_549", i32 0, i32 1 - %"$cadd_556" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_556", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_67_env_cadd_555", align 8 - %"$$fundef_67_env_m_557" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %"$$fundef_67_envp_549", i32 0, i32 2 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_67_env_m_557", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_67_cloval_552", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_66", align 8, !dbg !22 - %"$$retval_66_558" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_66", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_66_558" + %"$$nI_7_574" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_7", align 8 + %"$$nI_7_fptr_575" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_7_574", 0 + %"$$nI_7_envptr_576" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_7_574", 1 + %"$c0_577" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 + %"$$nI_7_call_578" = call { i8*, i8* }* %"$$nI_7_fptr_575"(i8* %"$$nI_7_envptr_576", { i8*, i8* }* %"$c0_577"), !dbg !20 + store { i8*, i8* }* %"$$nI_7_call_578", { i8*, i8* }** %"$nI_8", align 8, !dbg !20 + %"$$nI_8_579" = load { i8*, i8* }*, { i8*, i8* }** %"$nI_8", align 8 + store { i8*, i8* }* %"$$nI_8_579", { i8*, i8* }** %"$retval_58", align 8, !dbg !20 + %"$$retval_58_580" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_58", align 8 + ret { i8*, i8* }* %"$$retval_58_580" } -define internal { i8*, i8* }* @"$fundef_63"(%"$$fundef_63_env_112"* %0, { i8*, i8* }* %1) !dbg !23 { +define internal { i8*, i8* }* @"$fundef_55"(%"$$fundef_55_env_101"* %0, { i8*, i8* }* %1) !dbg !21 { entry: - %"$$fundef_63_env_m_463" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %0, i32 0, i32 0 - %"$m_envload_464" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_63_env_m_463", align 8 + %"$$fundef_55_env_m_452" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %0, i32 0, i32 0 + %"$m_envload_453" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_55_env_m_452", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_464", { i8*, i8* }** %m, align 8 - %"$$fundef_63_env_n_465" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %0, i32 0, i32 1 - %"$n_envload_466" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_63_env_n_465", align 8 + store { i8*, i8* }* %"$m_envload_453", { i8*, i8* }** %m, align 8 + %"$$fundef_55_env_n_454" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %0, i32 0, i32 1 + %"$n_envload_455" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_55_env_n_454", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_466", { i8*, i8* }** %n, align 8 - %"$$fundef_63_env_s_467" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %0, i32 0, i32 2 - %"$s_envload_468" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_63_env_s_467", align 8 + store { i8*, i8* }* %"$n_envload_455", { i8*, i8* }** %n, align 8 + %"$$fundef_55_env_s_456" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %0, i32 0, i32 2 + %"$s_envload_457" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_55_env_s_456", align 8 %s = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_468", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$retval_64" = alloca { i8*, i8* }*, align 8 - %"$gasrem_469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_470" = icmp ugt i64 1, %"$gasrem_469" - br i1 %"$gascmp_470", label %"$out_of_gas_471", label %"$have_gas_472" + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_457", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$retval_56" = alloca { i8*, i8* }*, align 8 + %"$gasrem_458" = load i64, i64* @_gasrem, align 8 + %"$gascmp_459" = icmp ugt i64 1, %"$gasrem_458" + br i1 %"$gascmp_459", label %"$out_of_gas_460", label %"$have_gas_461" -"$out_of_gas_471": ; preds = %entry +"$out_of_gas_460": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_472" + br label %"$have_gas_461" -"$have_gas_472": ; preds = %"$out_of_gas_471", %entry - %"$consume_473" = sub i64 %"$gasrem_469", 1 - store i64 %"$consume_473", i64* @_gasrem, align 8 +"$have_gas_461": ; preds = %"$out_of_gas_460", %entry + %"$consume_462" = sub i64 %"$gasrem_458", 1 + store i64 %"$consume_462", i64* @_gasrem, align 8 %mX = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_474" = load i64, i64* @_gasrem, align 8 - %"$gascmp_475" = icmp ugt i64 1, %"$gasrem_474" - br i1 %"$gascmp_475", label %"$out_of_gas_476", label %"$have_gas_477" - -"$out_of_gas_476": ; preds = %"$have_gas_472" - call void @_out_of_gas() - br label %"$have_gas_477" - -"$have_gas_477": ; preds = %"$out_of_gas_476", %"$have_gas_472" - %"$consume_478" = sub i64 %"$gasrem_474", 1 - store i64 %"$consume_478", i64* @_gasrem, align 8 - %"$m_479" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - %"$m_480" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_479", i32 1 - %"$m_481" = bitcast { i8*, i8* }* %"$m_480" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$m_482" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$m_481", align 8 - %"$m_fptr_483" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_482", 0 - %"$m_envptr_484" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_482", 1 - %"$m_call_485" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_fptr_483"(i8* %"$m_envptr_484"), !dbg !24 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_call_485", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %mX, align 8, !dbg !25 - %"$gasrem_486" = load i64, i64* @_gasrem, align 8 - %"$gascmp_487" = icmp ugt i64 1, %"$gasrem_486" - br i1 %"$gascmp_487", label %"$out_of_gas_488", label %"$have_gas_489" - -"$out_of_gas_488": ; preds = %"$have_gas_477" - call void @_out_of_gas() - br label %"$have_gas_489" - -"$have_gas_489": ; preds = %"$out_of_gas_488", %"$have_gas_477" - %"$consume_490" = sub i64 %"$gasrem_486", 1 - store i64 %"$consume_490", i64* @_gasrem, align 8 + %"$gasrem_463" = load i64, i64* @_gasrem, align 8 + %"$gascmp_464" = icmp ugt i64 1, %"$gasrem_463" + br i1 %"$gascmp_464", label %"$out_of_gas_465", label %"$have_gas_466" + +"$out_of_gas_465": ; preds = %"$have_gas_461" + call void @_out_of_gas() + br label %"$have_gas_466" + +"$have_gas_466": ; preds = %"$out_of_gas_465", %"$have_gas_461" + %"$consume_467" = sub i64 %"$gasrem_463", 1 + store i64 %"$consume_467", i64* @_gasrem, align 8 + %"$m_468" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + %"$m_469" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_468", i32 1 + %"$m_470" = bitcast { i8*, i8* }* %"$m_469" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$m_471" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$m_470", align 8 + %"$m_fptr_472" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_471", 0 + %"$m_envptr_473" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_471", 1 + %"$m_call_474" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_fptr_472"(i8* %"$m_envptr_473"), !dbg !22 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_call_474", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %mX, align 8, !dbg !23 + %"$gasrem_475" = load i64, i64* @_gasrem, align 8 + %"$gascmp_476" = icmp ugt i64 1, %"$gasrem_475" + br i1 %"$gascmp_476", label %"$out_of_gas_477", label %"$have_gas_478" + +"$out_of_gas_477": ; preds = %"$have_gas_466" + call void @_out_of_gas() + br label %"$have_gas_478" + +"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_466" + %"$consume_479" = sub i64 %"$gasrem_475", 1 + store i64 %"$consume_479", i64* @_gasrem, align 8 %nX = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_491" = load i64, i64* @_gasrem, align 8 - %"$gascmp_492" = icmp ugt i64 1, %"$gasrem_491" - br i1 %"$gascmp_492", label %"$out_of_gas_493", label %"$have_gas_494" - -"$out_of_gas_493": ; preds = %"$have_gas_489" - call void @_out_of_gas() - br label %"$have_gas_494" - -"$have_gas_494": ; preds = %"$out_of_gas_493", %"$have_gas_489" - %"$consume_495" = sub i64 %"$gasrem_491", 1 - store i64 %"$consume_495", i64* @_gasrem, align 8 - %"$n_496" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - %"$n_497" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_496", i32 1 - %"$n_498" = bitcast { i8*, i8* }* %"$n_497" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$n_499" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_498", align 8 - %"$n_fptr_500" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_499", 0 - %"$n_envptr_501" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_499", 1 - %"$n_call_502" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_500"(i8* %"$n_envptr_501"), !dbg !26 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_502", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nX, align 8, !dbg !27 - %"$gasrem_503" = load i64, i64* @_gasrem, align 8 - %"$gascmp_504" = icmp ugt i64 1, %"$gasrem_503" - br i1 %"$gascmp_504", label %"$out_of_gas_505", label %"$have_gas_506" - -"$out_of_gas_505": ; preds = %"$have_gas_494" - call void @_out_of_gas() - br label %"$have_gas_506" - -"$have_gas_506": ; preds = %"$out_of_gas_505", %"$have_gas_494" - %"$consume_507" = sub i64 %"$gasrem_503", 1 - store i64 %"$consume_507", i64* @_gasrem, align 8 + %"$gasrem_480" = load i64, i64* @_gasrem, align 8 + %"$gascmp_481" = icmp ugt i64 1, %"$gasrem_480" + br i1 %"$gascmp_481", label %"$out_of_gas_482", label %"$have_gas_483" + +"$out_of_gas_482": ; preds = %"$have_gas_478" + call void @_out_of_gas() + br label %"$have_gas_483" + +"$have_gas_483": ; preds = %"$out_of_gas_482", %"$have_gas_478" + %"$consume_484" = sub i64 %"$gasrem_480", 1 + store i64 %"$consume_484", i64* @_gasrem, align 8 + %"$n_485" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + %"$n_486" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_485", i32 1 + %"$n_487" = bitcast { i8*, i8* }* %"$n_486" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$n_488" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_487", align 8 + %"$n_fptr_489" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_488", 0 + %"$n_envptr_490" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_488", 1 + %"$n_call_491" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_489"(i8* %"$n_envptr_490"), !dbg !24 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_491", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nX, align 8, !dbg !25 + %"$gasrem_492" = load i64, i64* @_gasrem, align 8 + %"$gascmp_493" = icmp ugt i64 1, %"$gasrem_492" + br i1 %"$gascmp_493", label %"$out_of_gas_494", label %"$have_gas_495" + +"$out_of_gas_494": ; preds = %"$have_gas_483" + call void @_out_of_gas() + br label %"$have_gas_495" + +"$have_gas_495": ; preds = %"$out_of_gas_494", %"$have_gas_483" + %"$consume_496" = sub i64 %"$gasrem_492", 1 + store i64 %"$consume_496", i64* @_gasrem, align 8 %nXsz = alloca { i8*, i8* }*, align 8 - %"$gasrem_508" = load i64, i64* @_gasrem, align 8 - %"$gascmp_509" = icmp ugt i64 1, %"$gasrem_508" - br i1 %"$gascmp_509", label %"$out_of_gas_510", label %"$have_gas_511" + %"$gasrem_497" = load i64, i64* @_gasrem, align 8 + %"$gascmp_498" = icmp ugt i64 1, %"$gasrem_497" + br i1 %"$gascmp_498", label %"$out_of_gas_499", label %"$have_gas_500" -"$out_of_gas_510": ; preds = %"$have_gas_506" +"$out_of_gas_499": ; preds = %"$have_gas_495" call void @_out_of_gas() - br label %"$have_gas_511" + br label %"$have_gas_500" -"$have_gas_511": ; preds = %"$out_of_gas_510", %"$have_gas_506" - %"$consume_512" = sub i64 %"$gasrem_508", 1 - store i64 %"$consume_512", i64* @_gasrem, align 8 +"$have_gas_500": ; preds = %"$out_of_gas_499", %"$have_gas_495" + %"$consume_501" = sub i64 %"$gasrem_497", 1 + store i64 %"$consume_501", i64* @_gasrem, align 8 %"$nX_2" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$nX_513" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nX, align 8 - %"$nX_fptr_514" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_513", 0 - %"$nX_envptr_515" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_513", 1 - %"$s_516" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$nX_call_517" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_fptr_514"(i8* %"$nX_envptr_515", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_516"), !dbg !28 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_call_517", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_2", align 8, !dbg !28 + %"$nX_502" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nX, align 8 + %"$nX_fptr_503" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_502", 0 + %"$nX_envptr_504" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_502", 1 + %"$s_505" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$nX_call_506" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_fptr_503"(i8* %"$nX_envptr_504", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_505"), !dbg !26 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_call_506", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_2", align 8, !dbg !26 %"$nX_3" = alloca { i8*, i8* }*, align 8 - %"$$nX_2_518" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_2", align 8 - %"$$nX_2_fptr_519" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_2_518", 0 - %"$$nX_2_envptr_520" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_2_518", 1 - %"$$nX_2_call_521" = call { i8*, i8* }* %"$$nX_2_fptr_519"(i8* %"$$nX_2_envptr_520", { i8*, i8* }* %1), !dbg !28 - store { i8*, i8* }* %"$$nX_2_call_521", { i8*, i8* }** %"$nX_3", align 8, !dbg !28 - %"$$nX_3_522" = load { i8*, i8* }*, { i8*, i8* }** %"$nX_3", align 8 - store { i8*, i8* }* %"$$nX_3_522", { i8*, i8* }** %nXsz, align 8, !dbg !28 - %"$gasrem_523" = load i64, i64* @_gasrem, align 8 - %"$gascmp_524" = icmp ugt i64 1, %"$gasrem_523" - br i1 %"$gascmp_524", label %"$out_of_gas_525", label %"$have_gas_526" - -"$out_of_gas_525": ; preds = %"$have_gas_511" - call void @_out_of_gas() - br label %"$have_gas_526" - -"$have_gas_526": ; preds = %"$out_of_gas_525", %"$have_gas_511" - %"$consume_527" = sub i64 %"$gasrem_523", 1 - store i64 %"$consume_527", i64* @_gasrem, align 8 + %"$$nX_2_507" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_2", align 8 + %"$$nX_2_fptr_508" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_2_507", 0 + %"$$nX_2_envptr_509" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_2_507", 1 + %"$$nX_2_call_510" = call { i8*, i8* }* %"$$nX_2_fptr_508"(i8* %"$$nX_2_envptr_509", { i8*, i8* }* %1), !dbg !26 + store { i8*, i8* }* %"$$nX_2_call_510", { i8*, i8* }** %"$nX_3", align 8, !dbg !26 + %"$$nX_3_511" = load { i8*, i8* }*, { i8*, i8* }** %"$nX_3", align 8 + store { i8*, i8* }* %"$$nX_3_511", { i8*, i8* }** %nXsz, align 8, !dbg !26 + %"$gasrem_512" = load i64, i64* @_gasrem, align 8 + %"$gascmp_513" = icmp ugt i64 1, %"$gasrem_512" + br i1 %"$gascmp_513", label %"$out_of_gas_514", label %"$have_gas_515" + +"$out_of_gas_514": ; preds = %"$have_gas_500" + call void @_out_of_gas() + br label %"$have_gas_515" + +"$have_gas_515": ; preds = %"$out_of_gas_514", %"$have_gas_500" + %"$consume_516" = sub i64 %"$gasrem_512", 1 + store i64 %"$consume_516", i64* @_gasrem, align 8 %"$mX_4" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$mX_528" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %mX, align 8 - %"$mX_fptr_529" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_528", 0 - %"$mX_envptr_530" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_528", 1 - %"$s_531" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$mX_call_532" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_fptr_529"(i8* %"$mX_envptr_530", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_531"), !dbg !29 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_call_532", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_4", align 8, !dbg !29 + %"$mX_517" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %mX, align 8 + %"$mX_fptr_518" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_517", 0 + %"$mX_envptr_519" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_517", 1 + %"$s_520" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$mX_call_521" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_fptr_518"(i8* %"$mX_envptr_519", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_520"), !dbg !27 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_call_521", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_4", align 8, !dbg !27 %"$mX_5" = alloca { i8*, i8* }*, align 8 - %"$$mX_4_533" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_4", align 8 - %"$$mX_4_fptr_534" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_4_533", 0 - %"$$mX_4_envptr_535" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_4_533", 1 - %"$nXsz_536" = load { i8*, i8* }*, { i8*, i8* }** %nXsz, align 8 - %"$$mX_4_call_537" = call { i8*, i8* }* %"$$mX_4_fptr_534"(i8* %"$$mX_4_envptr_535", { i8*, i8* }* %"$nXsz_536"), !dbg !29 - store { i8*, i8* }* %"$$mX_4_call_537", { i8*, i8* }** %"$mX_5", align 8, !dbg !29 - %"$$mX_5_538" = load { i8*, i8* }*, { i8*, i8* }** %"$mX_5", align 8 - store { i8*, i8* }* %"$$mX_5_538", { i8*, i8* }** %"$retval_64", align 8, !dbg !29 - %"$$retval_64_539" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_64", align 8 - ret { i8*, i8* }* %"$$retval_64_539" + %"$$mX_4_522" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_4", align 8 + %"$$mX_4_fptr_523" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_4_522", 0 + %"$$mX_4_envptr_524" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_4_522", 1 + %"$nXsz_525" = load { i8*, i8* }*, { i8*, i8* }** %nXsz, align 8 + %"$$mX_4_call_526" = call { i8*, i8* }* %"$$mX_4_fptr_523"(i8* %"$$mX_4_envptr_524", { i8*, i8* }* %"$nXsz_525"), !dbg !27 + store { i8*, i8* }* %"$$mX_4_call_526", { i8*, i8* }** %"$mX_5", align 8, !dbg !27 + %"$$mX_5_527" = load { i8*, i8* }*, { i8*, i8* }** %"$mX_5", align 8 + store { i8*, i8* }* %"$$mX_5_527", { i8*, i8* }** %"$retval_56", align 8, !dbg !27 + %"$$retval_56_528" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_56", align 8 + ret { i8*, i8* }* %"$$retval_56_528" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_61"(%"$$fundef_61_env_113"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !30 { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_53"(%"$$fundef_53_env_102"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !28 { entry: - %"$$fundef_61_env_m_444" = getelementptr inbounds %"$$fundef_61_env_113", %"$$fundef_61_env_113"* %0, i32 0, i32 0 - %"$m_envload_445" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_61_env_m_444", align 8 + %"$$fundef_53_env_m_433" = getelementptr inbounds %"$$fundef_53_env_102", %"$$fundef_53_env_102"* %0, i32 0, i32 0 + %"$m_envload_434" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_53_env_m_433", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_445", { i8*, i8* }** %m, align 8 - %"$$fundef_61_env_n_446" = getelementptr inbounds %"$$fundef_61_env_113", %"$$fundef_61_env_113"* %0, i32 0, i32 1 - %"$n_envload_447" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_61_env_n_446", align 8 + store { i8*, i8* }* %"$m_envload_434", { i8*, i8* }** %m, align 8 + %"$$fundef_53_env_n_435" = getelementptr inbounds %"$$fundef_53_env_102", %"$$fundef_53_env_102"* %0, i32 0, i32 1 + %"$n_envload_436" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_53_env_n_435", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_447", { i8*, i8* }** %n, align 8 - %"$retval_62" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_448" = load i64, i64* @_gasrem, align 8 - %"$gascmp_449" = icmp ugt i64 1, %"$gasrem_448" - br i1 %"$gascmp_449", label %"$out_of_gas_450", label %"$have_gas_451" - -"$out_of_gas_450": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_451" - -"$have_gas_451": ; preds = %"$out_of_gas_450", %entry - %"$consume_452" = sub i64 %"$gasrem_448", 1 - store i64 %"$consume_452", i64* @_gasrem, align 8 - %"$$fundef_63_envp_453_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_63_envp_453_salloc" = call i8* @_salloc(i8* %"$$fundef_63_envp_453_load", i64 32) - %"$$fundef_63_envp_453" = bitcast i8* %"$$fundef_63_envp_453_salloc" to %"$$fundef_63_env_112"* - %"$$fundef_63_env_voidp_455" = bitcast %"$$fundef_63_env_112"* %"$$fundef_63_envp_453" to i8* - %"$$fundef_63_cloval_456" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_63_env_112"*, { i8*, i8* }*)* @"$fundef_63" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_63_env_voidp_455", 1 - %"$$fundef_63_env_m_457" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %"$$fundef_63_envp_453", i32 0, i32 0 - %"$m_458" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_458", { i8*, i8* }** %"$$fundef_63_env_m_457", align 8 - %"$$fundef_63_env_n_459" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %"$$fundef_63_envp_453", i32 0, i32 1 - %"$n_460" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_460", { i8*, i8* }** %"$$fundef_63_env_n_459", align 8 - %"$$fundef_63_env_s_461" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %"$$fundef_63_envp_453", i32 0, i32 2 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_63_env_s_461", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_63_cloval_456", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_62", align 8, !dbg !31 - %"$$retval_62_462" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_62", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_62_462" + store { i8*, i8* }* %"$n_envload_436", { i8*, i8* }** %n, align 8 + %"$retval_54" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_437" = load i64, i64* @_gasrem, align 8 + %"$gascmp_438" = icmp ugt i64 1, %"$gasrem_437" + br i1 %"$gascmp_438", label %"$out_of_gas_439", label %"$have_gas_440" + +"$out_of_gas_439": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_440" + +"$have_gas_440": ; preds = %"$out_of_gas_439", %entry + %"$consume_441" = sub i64 %"$gasrem_437", 1 + store i64 %"$consume_441", i64* @_gasrem, align 8 + %"$$fundef_55_envp_442_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_55_envp_442_salloc" = call i8* @_salloc(i8* %"$$fundef_55_envp_442_load", i64 32) + %"$$fundef_55_envp_442" = bitcast i8* %"$$fundef_55_envp_442_salloc" to %"$$fundef_55_env_101"* + %"$$fundef_55_env_voidp_444" = bitcast %"$$fundef_55_env_101"* %"$$fundef_55_envp_442" to i8* + %"$$fundef_55_cloval_445" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_55_env_101"*, { i8*, i8* }*)* @"$fundef_55" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_55_env_voidp_444", 1 + %"$$fundef_55_env_m_446" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %"$$fundef_55_envp_442", i32 0, i32 0 + %"$m_447" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_447", { i8*, i8* }** %"$$fundef_55_env_m_446", align 8 + %"$$fundef_55_env_n_448" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %"$$fundef_55_envp_442", i32 0, i32 1 + %"$n_449" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_449", { i8*, i8* }** %"$$fundef_55_env_n_448", align 8 + %"$$fundef_55_env_s_450" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %"$$fundef_55_envp_442", i32 0, i32 2 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_55_env_s_450", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_55_cloval_445", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_54", align 8, !dbg !29 + %"$$retval_54_451" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_54", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_54_451" } -define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_59"(%"$$fundef_59_env_114"* %0) !dbg !32 { +define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_51"(%"$$fundef_51_env_103"* %0) !dbg !30 { entry: - %"$$fundef_59_env_m_426" = getelementptr inbounds %"$$fundef_59_env_114", %"$$fundef_59_env_114"* %0, i32 0, i32 0 - %"$m_envload_427" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_59_env_m_426", align 8 + %"$$fundef_51_env_m_415" = getelementptr inbounds %"$$fundef_51_env_103", %"$$fundef_51_env_103"* %0, i32 0, i32 0 + %"$m_envload_416" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_51_env_m_415", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_427", { i8*, i8* }** %m, align 8 - %"$$fundef_59_env_n_428" = getelementptr inbounds %"$$fundef_59_env_114", %"$$fundef_59_env_114"* %0, i32 0, i32 1 - %"$n_envload_429" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_59_env_n_428", align 8 + store { i8*, i8* }* %"$m_envload_416", { i8*, i8* }** %m, align 8 + %"$$fundef_51_env_n_417" = getelementptr inbounds %"$$fundef_51_env_103", %"$$fundef_51_env_103"* %0, i32 0, i32 1 + %"$n_envload_418" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_51_env_n_417", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_429", { i8*, i8* }** %n, align 8 - %"$retval_60" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_430" = load i64, i64* @_gasrem, align 8 - %"$gascmp_431" = icmp ugt i64 1, %"$gasrem_430" - br i1 %"$gascmp_431", label %"$out_of_gas_432", label %"$have_gas_433" - -"$out_of_gas_432": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_433" - -"$have_gas_433": ; preds = %"$out_of_gas_432", %entry - %"$consume_434" = sub i64 %"$gasrem_430", 1 - store i64 %"$consume_434", i64* @_gasrem, align 8 - %"$$fundef_61_envp_435_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_61_envp_435_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_435_load", i64 16) - %"$$fundef_61_envp_435" = bitcast i8* %"$$fundef_61_envp_435_salloc" to %"$$fundef_61_env_113"* - %"$$fundef_61_env_voidp_437" = bitcast %"$$fundef_61_env_113"* %"$$fundef_61_envp_435" to i8* - %"$$fundef_61_cloval_438" = insertvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_61_env_113"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_61" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* undef }, i8* %"$$fundef_61_env_voidp_437", 1 - %"$$fundef_61_env_m_439" = getelementptr inbounds %"$$fundef_61_env_113", %"$$fundef_61_env_113"* %"$$fundef_61_envp_435", i32 0, i32 0 - %"$m_440" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_440", { i8*, i8* }** %"$$fundef_61_env_m_439", align 8 - %"$$fundef_61_env_n_441" = getelementptr inbounds %"$$fundef_61_env_113", %"$$fundef_61_env_113"* %"$$fundef_61_envp_435", i32 0, i32 1 - %"$n_442" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_442", { i8*, i8* }** %"$$fundef_61_env_n_441", align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$fundef_61_cloval_438", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_60", align 8, !dbg !33 - %"$$retval_60_443" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_60", align 8 - ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_60_443" + store { i8*, i8* }* %"$n_envload_418", { i8*, i8* }** %n, align 8 + %"$retval_52" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 + %"$gasrem_419" = load i64, i64* @_gasrem, align 8 + %"$gascmp_420" = icmp ugt i64 1, %"$gasrem_419" + br i1 %"$gascmp_420", label %"$out_of_gas_421", label %"$have_gas_422" + +"$out_of_gas_421": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_422" + +"$have_gas_422": ; preds = %"$out_of_gas_421", %entry + %"$consume_423" = sub i64 %"$gasrem_419", 1 + store i64 %"$consume_423", i64* @_gasrem, align 8 + %"$$fundef_53_envp_424_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_53_envp_424_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_424_load", i64 16) + %"$$fundef_53_envp_424" = bitcast i8* %"$$fundef_53_envp_424_salloc" to %"$$fundef_53_env_102"* + %"$$fundef_53_env_voidp_426" = bitcast %"$$fundef_53_env_102"* %"$$fundef_53_envp_424" to i8* + %"$$fundef_53_cloval_427" = insertvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_53_env_102"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_53" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* undef }, i8* %"$$fundef_53_env_voidp_426", 1 + %"$$fundef_53_env_m_428" = getelementptr inbounds %"$$fundef_53_env_102", %"$$fundef_53_env_102"* %"$$fundef_53_envp_424", i32 0, i32 0 + %"$m_429" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_429", { i8*, i8* }** %"$$fundef_53_env_m_428", align 8 + %"$$fundef_53_env_n_430" = getelementptr inbounds %"$$fundef_53_env_102", %"$$fundef_53_env_102"* %"$$fundef_53_envp_424", i32 0, i32 1 + %"$n_431" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_431", { i8*, i8* }** %"$$fundef_53_env_n_430", align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$fundef_53_cloval_427", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_52", align 8, !dbg !31 + %"$$retval_52_432" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_52", align 8 + ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_52_432" } -define internal %Uint32 @"$fundef_57"(%"$$fundef_57_env_115"* %0, %Uint32 %1) !dbg !34 { +define internal %Uint32 @"$fundef_49"(%"$$fundef_49_env_104"* %0, %Uint32 %1) !dbg !32 { entry: - %"$$fundef_57_env_m_349" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %0, i32 0, i32 0 - %"$m_envload_350" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_m_349", align 8 + %"$$fundef_49_env_m_338" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %0, i32 0, i32 0 + %"$m_envload_339" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_49_env_m_338", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_350", { i8*, i8* }** %m, align 8 - %"$$fundef_57_env_n_351" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %0, i32 0, i32 1 - %"$n_envload_352" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_n_351", align 8 + store { i8*, i8* }* %"$m_envload_339", { i8*, i8* }** %m, align 8 + %"$$fundef_49_env_n_340" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %0, i32 0, i32 1 + %"$n_envload_341" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_49_env_n_340", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_352", { i8*, i8* }** %n, align 8 - %"$$fundef_57_env_s_353" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %0, i32 0, i32 2 - %"$s_envload_354" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_57_env_s_353", align 8 + store { i8*, i8* }* %"$n_envload_341", { i8*, i8* }** %n, align 8 + %"$$fundef_49_env_s_342" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %0, i32 0, i32 2 + %"$s_envload_343" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_49_env_s_342", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_354", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$retval_58" = alloca %Uint32, align 8 - %"$gasrem_355" = load i64, i64* @_gasrem, align 8 - %"$gascmp_356" = icmp ugt i64 1, %"$gasrem_355" - br i1 %"$gascmp_356", label %"$out_of_gas_357", label %"$have_gas_358" + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_343", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$retval_50" = alloca %Uint32, align 8 + %"$gasrem_344" = load i64, i64* @_gasrem, align 8 + %"$gascmp_345" = icmp ugt i64 1, %"$gasrem_344" + br i1 %"$gascmp_345", label %"$out_of_gas_346", label %"$have_gas_347" -"$out_of_gas_357": ; preds = %entry +"$out_of_gas_346": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_358" + br label %"$have_gas_347" -"$have_gas_358": ; preds = %"$out_of_gas_357", %entry - %"$consume_359" = sub i64 %"$gasrem_355", 1 - store i64 %"$consume_359", i64* @_gasrem, align 8 +"$have_gas_347": ; preds = %"$out_of_gas_346", %entry + %"$consume_348" = sub i64 %"$gasrem_344", 1 + store i64 %"$consume_348", i64* @_gasrem, align 8 %mX = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_360" = load i64, i64* @_gasrem, align 8 - %"$gascmp_361" = icmp ugt i64 1, %"$gasrem_360" - br i1 %"$gascmp_361", label %"$out_of_gas_362", label %"$have_gas_363" - -"$out_of_gas_362": ; preds = %"$have_gas_358" - call void @_out_of_gas() - br label %"$have_gas_363" - -"$have_gas_363": ; preds = %"$out_of_gas_362", %"$have_gas_358" - %"$consume_364" = sub i64 %"$gasrem_360", 1 - store i64 %"$consume_364", i64* @_gasrem, align 8 - %"$m_365" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - %"$m_366" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_365", i32 0 - %"$m_367" = bitcast { i8*, i8* }* %"$m_366" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$m_368" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$m_367", align 8 - %"$m_fptr_369" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_368", 0 - %"$m_envptr_370" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_368", 1 - %"$m_call_371" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_fptr_369"(i8* %"$m_envptr_370"), !dbg !35 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_call_371", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %mX, align 8, !dbg !36 - %"$gasrem_372" = load i64, i64* @_gasrem, align 8 - %"$gascmp_373" = icmp ugt i64 1, %"$gasrem_372" - br i1 %"$gascmp_373", label %"$out_of_gas_374", label %"$have_gas_375" - -"$out_of_gas_374": ; preds = %"$have_gas_363" - call void @_out_of_gas() - br label %"$have_gas_375" - -"$have_gas_375": ; preds = %"$out_of_gas_374", %"$have_gas_363" - %"$consume_376" = sub i64 %"$gasrem_372", 1 - store i64 %"$consume_376", i64* @_gasrem, align 8 + %"$gasrem_349" = load i64, i64* @_gasrem, align 8 + %"$gascmp_350" = icmp ugt i64 1, %"$gasrem_349" + br i1 %"$gascmp_350", label %"$out_of_gas_351", label %"$have_gas_352" + +"$out_of_gas_351": ; preds = %"$have_gas_347" + call void @_out_of_gas() + br label %"$have_gas_352" + +"$have_gas_352": ; preds = %"$out_of_gas_351", %"$have_gas_347" + %"$consume_353" = sub i64 %"$gasrem_349", 1 + store i64 %"$consume_353", i64* @_gasrem, align 8 + %"$m_354" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + %"$m_355" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_354", i32 0 + %"$m_356" = bitcast { i8*, i8* }* %"$m_355" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$m_357" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$m_356", align 8 + %"$m_fptr_358" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_357", 0 + %"$m_envptr_359" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_357", 1 + %"$m_call_360" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_fptr_358"(i8* %"$m_envptr_359"), !dbg !33 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_call_360", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %mX, align 8, !dbg !34 + %"$gasrem_361" = load i64, i64* @_gasrem, align 8 + %"$gascmp_362" = icmp ugt i64 1, %"$gasrem_361" + br i1 %"$gascmp_362", label %"$out_of_gas_363", label %"$have_gas_364" + +"$out_of_gas_363": ; preds = %"$have_gas_352" + call void @_out_of_gas() + br label %"$have_gas_364" + +"$have_gas_364": ; preds = %"$out_of_gas_363", %"$have_gas_352" + %"$consume_365" = sub i64 %"$gasrem_361", 1 + store i64 %"$consume_365", i64* @_gasrem, align 8 %nX = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_377" = load i64, i64* @_gasrem, align 8 - %"$gascmp_378" = icmp ugt i64 1, %"$gasrem_377" - br i1 %"$gascmp_378", label %"$out_of_gas_379", label %"$have_gas_380" - -"$out_of_gas_379": ; preds = %"$have_gas_375" - call void @_out_of_gas() - br label %"$have_gas_380" - -"$have_gas_380": ; preds = %"$out_of_gas_379", %"$have_gas_375" - %"$consume_381" = sub i64 %"$gasrem_377", 1 - store i64 %"$consume_381", i64* @_gasrem, align 8 - %"$n_382" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - %"$n_383" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_382", i32 0 - %"$n_384" = bitcast { i8*, i8* }* %"$n_383" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$n_385" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_384", align 8 - %"$n_fptr_386" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_385", 0 - %"$n_envptr_387" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_385", 1 - %"$n_call_388" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_386"(i8* %"$n_envptr_387"), !dbg !37 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_388", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %nX, align 8, !dbg !38 - %"$gasrem_389" = load i64, i64* @_gasrem, align 8 - %"$gascmp_390" = icmp ugt i64 1, %"$gasrem_389" - br i1 %"$gascmp_390", label %"$out_of_gas_391", label %"$have_gas_392" - -"$out_of_gas_391": ; preds = %"$have_gas_380" - call void @_out_of_gas() - br label %"$have_gas_392" - -"$have_gas_392": ; preds = %"$out_of_gas_391", %"$have_gas_380" - %"$consume_393" = sub i64 %"$gasrem_389", 1 - store i64 %"$consume_393", i64* @_gasrem, align 8 + %"$gasrem_366" = load i64, i64* @_gasrem, align 8 + %"$gascmp_367" = icmp ugt i64 1, %"$gasrem_366" + br i1 %"$gascmp_367", label %"$out_of_gas_368", label %"$have_gas_369" + +"$out_of_gas_368": ; preds = %"$have_gas_364" + call void @_out_of_gas() + br label %"$have_gas_369" + +"$have_gas_369": ; preds = %"$out_of_gas_368", %"$have_gas_364" + %"$consume_370" = sub i64 %"$gasrem_366", 1 + store i64 %"$consume_370", i64* @_gasrem, align 8 + %"$n_371" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + %"$n_372" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_371", i32 0 + %"$n_373" = bitcast { i8*, i8* }* %"$n_372" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$n_374" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_373", align 8 + %"$n_fptr_375" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_374", 0 + %"$n_envptr_376" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_374", 1 + %"$n_call_377" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_375"(i8* %"$n_envptr_376"), !dbg !35 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_377", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %nX, align 8, !dbg !36 + %"$gasrem_378" = load i64, i64* @_gasrem, align 8 + %"$gascmp_379" = icmp ugt i64 1, %"$gasrem_378" + br i1 %"$gascmp_379", label %"$out_of_gas_380", label %"$have_gas_381" + +"$out_of_gas_380": ; preds = %"$have_gas_369" + call void @_out_of_gas() + br label %"$have_gas_381" + +"$have_gas_381": ; preds = %"$out_of_gas_380", %"$have_gas_369" + %"$consume_382" = sub i64 %"$gasrem_378", 1 + store i64 %"$consume_382", i64* @_gasrem, align 8 %nXsz = alloca %Uint32, align 8 - %"$gasrem_394" = load i64, i64* @_gasrem, align 8 - %"$gascmp_395" = icmp ugt i64 1, %"$gasrem_394" - br i1 %"$gascmp_395", label %"$out_of_gas_396", label %"$have_gas_397" + %"$gasrem_383" = load i64, i64* @_gasrem, align 8 + %"$gascmp_384" = icmp ugt i64 1, %"$gasrem_383" + br i1 %"$gascmp_384", label %"$out_of_gas_385", label %"$have_gas_386" -"$out_of_gas_396": ; preds = %"$have_gas_392" +"$out_of_gas_385": ; preds = %"$have_gas_381" call void @_out_of_gas() - br label %"$have_gas_397" + br label %"$have_gas_386" -"$have_gas_397": ; preds = %"$out_of_gas_396", %"$have_gas_392" - %"$consume_398" = sub i64 %"$gasrem_394", 1 - store i64 %"$consume_398", i64* @_gasrem, align 8 +"$have_gas_386": ; preds = %"$out_of_gas_385", %"$have_gas_381" + %"$consume_387" = sub i64 %"$gasrem_383", 1 + store i64 %"$consume_387", i64* @_gasrem, align 8 %"$nX_2" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$nX_399" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %nX, align 8 - %"$nX_fptr_400" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_399", 0 - %"$nX_envptr_401" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_399", 1 - %"$s_402" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$nX_call_403" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_fptr_400"(i8* %"$nX_envptr_401", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_402"), !dbg !39 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_call_403", { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_2", align 8, !dbg !39 + %"$nX_388" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %nX, align 8 + %"$nX_fptr_389" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_388", 0 + %"$nX_envptr_390" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_388", 1 + %"$s_391" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$nX_call_392" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_fptr_389"(i8* %"$nX_envptr_390", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_391"), !dbg !37 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_call_392", { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_2", align 8, !dbg !37 %"$nX_3" = alloca %Uint32, align 8 - %"$$nX_2_404" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_2", align 8 - %"$$nX_2_fptr_405" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_2_404", 0 - %"$$nX_2_envptr_406" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_2_404", 1 - %"$$nX_2_call_407" = call %Uint32 %"$$nX_2_fptr_405"(i8* %"$$nX_2_envptr_406", %Uint32 %1), !dbg !39 - store %Uint32 %"$$nX_2_call_407", %Uint32* %"$nX_3", align 4, !dbg !39 - %"$$nX_3_408" = load %Uint32, %Uint32* %"$nX_3", align 4 - store %Uint32 %"$$nX_3_408", %Uint32* %nXsz, align 4, !dbg !39 - %"$gasrem_409" = load i64, i64* @_gasrem, align 8 - %"$gascmp_410" = icmp ugt i64 1, %"$gasrem_409" - br i1 %"$gascmp_410", label %"$out_of_gas_411", label %"$have_gas_412" - -"$out_of_gas_411": ; preds = %"$have_gas_397" - call void @_out_of_gas() - br label %"$have_gas_412" - -"$have_gas_412": ; preds = %"$out_of_gas_411", %"$have_gas_397" - %"$consume_413" = sub i64 %"$gasrem_409", 1 - store i64 %"$consume_413", i64* @_gasrem, align 8 + %"$$nX_2_393" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_2", align 8 + %"$$nX_2_fptr_394" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_2_393", 0 + %"$$nX_2_envptr_395" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_2_393", 1 + %"$$nX_2_call_396" = call %Uint32 %"$$nX_2_fptr_394"(i8* %"$$nX_2_envptr_395", %Uint32 %1), !dbg !37 + store %Uint32 %"$$nX_2_call_396", %Uint32* %"$nX_3", align 4, !dbg !37 + %"$$nX_3_397" = load %Uint32, %Uint32* %"$nX_3", align 4 + store %Uint32 %"$$nX_3_397", %Uint32* %nXsz, align 4, !dbg !37 + %"$gasrem_398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_399" = icmp ugt i64 1, %"$gasrem_398" + br i1 %"$gascmp_399", label %"$out_of_gas_400", label %"$have_gas_401" + +"$out_of_gas_400": ; preds = %"$have_gas_386" + call void @_out_of_gas() + br label %"$have_gas_401" + +"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_386" + %"$consume_402" = sub i64 %"$gasrem_398", 1 + store i64 %"$consume_402", i64* @_gasrem, align 8 %"$mX_4" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$mX_414" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %mX, align 8 - %"$mX_fptr_415" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_414", 0 - %"$mX_envptr_416" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_414", 1 - %"$s_417" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$mX_call_418" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_fptr_415"(i8* %"$mX_envptr_416", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_417"), !dbg !40 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_call_418", { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_4", align 8, !dbg !40 + %"$mX_403" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %mX, align 8 + %"$mX_fptr_404" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_403", 0 + %"$mX_envptr_405" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_403", 1 + %"$s_406" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$mX_call_407" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_fptr_404"(i8* %"$mX_envptr_405", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_406"), !dbg !38 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_call_407", { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_4", align 8, !dbg !38 %"$mX_5" = alloca %Uint32, align 8 - %"$$mX_4_419" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_4", align 8 - %"$$mX_4_fptr_420" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_4_419", 0 - %"$$mX_4_envptr_421" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_4_419", 1 - %"$nXsz_422" = load %Uint32, %Uint32* %nXsz, align 4 - %"$$mX_4_call_423" = call %Uint32 %"$$mX_4_fptr_420"(i8* %"$$mX_4_envptr_421", %Uint32 %"$nXsz_422"), !dbg !40 - store %Uint32 %"$$mX_4_call_423", %Uint32* %"$mX_5", align 4, !dbg !40 - %"$$mX_5_424" = load %Uint32, %Uint32* %"$mX_5", align 4 - store %Uint32 %"$$mX_5_424", %Uint32* %"$retval_58", align 4, !dbg !40 - %"$$retval_58_425" = load %Uint32, %Uint32* %"$retval_58", align 4 - ret %Uint32 %"$$retval_58_425" + %"$$mX_4_408" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_4", align 8 + %"$$mX_4_fptr_409" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_4_408", 0 + %"$$mX_4_envptr_410" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_4_408", 1 + %"$nXsz_411" = load %Uint32, %Uint32* %nXsz, align 4 + %"$$mX_4_call_412" = call %Uint32 %"$$mX_4_fptr_409"(i8* %"$$mX_4_envptr_410", %Uint32 %"$nXsz_411"), !dbg !38 + store %Uint32 %"$$mX_4_call_412", %Uint32* %"$mX_5", align 4, !dbg !38 + %"$$mX_5_413" = load %Uint32, %Uint32* %"$mX_5", align 4 + store %Uint32 %"$$mX_5_413", %Uint32* %"$retval_50", align 4, !dbg !38 + %"$$retval_50_414" = load %Uint32, %Uint32* %"$retval_50", align 4 + ret %Uint32 %"$$retval_50_414" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_55"(%"$$fundef_55_env_116"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !41 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_47"(%"$$fundef_47_env_105"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !39 { entry: - %"$$fundef_55_env_m_330" = getelementptr inbounds %"$$fundef_55_env_116", %"$$fundef_55_env_116"* %0, i32 0, i32 0 - %"$m_envload_331" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_55_env_m_330", align 8 + %"$$fundef_47_env_m_319" = getelementptr inbounds %"$$fundef_47_env_105", %"$$fundef_47_env_105"* %0, i32 0, i32 0 + %"$m_envload_320" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_47_env_m_319", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_331", { i8*, i8* }** %m, align 8 - %"$$fundef_55_env_n_332" = getelementptr inbounds %"$$fundef_55_env_116", %"$$fundef_55_env_116"* %0, i32 0, i32 1 - %"$n_envload_333" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_55_env_n_332", align 8 + store { i8*, i8* }* %"$m_envload_320", { i8*, i8* }** %m, align 8 + %"$$fundef_47_env_n_321" = getelementptr inbounds %"$$fundef_47_env_105", %"$$fundef_47_env_105"* %0, i32 0, i32 1 + %"$n_envload_322" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_47_env_n_321", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_333", { i8*, i8* }** %n, align 8 - %"$retval_56" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_334" = load i64, i64* @_gasrem, align 8 - %"$gascmp_335" = icmp ugt i64 1, %"$gasrem_334" - br i1 %"$gascmp_335", label %"$out_of_gas_336", label %"$have_gas_337" - -"$out_of_gas_336": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_337" - -"$have_gas_337": ; preds = %"$out_of_gas_336", %entry - %"$consume_338" = sub i64 %"$gasrem_334", 1 - store i64 %"$consume_338", i64* @_gasrem, align 8 - %"$$fundef_57_envp_339_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_57_envp_339_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_339_load", i64 32) - %"$$fundef_57_envp_339" = bitcast i8* %"$$fundef_57_envp_339_salloc" to %"$$fundef_57_env_115"* - %"$$fundef_57_env_voidp_341" = bitcast %"$$fundef_57_env_115"* %"$$fundef_57_envp_339" to i8* - %"$$fundef_57_cloval_342" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_57_env_115"*, %Uint32)* @"$fundef_57" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_57_env_voidp_341", 1 - %"$$fundef_57_env_m_343" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %"$$fundef_57_envp_339", i32 0, i32 0 - %"$m_344" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_344", { i8*, i8* }** %"$$fundef_57_env_m_343", align 8 - %"$$fundef_57_env_n_345" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %"$$fundef_57_envp_339", i32 0, i32 1 - %"$n_346" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_346", { i8*, i8* }** %"$$fundef_57_env_n_345", align 8 - %"$$fundef_57_env_s_347" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %"$$fundef_57_envp_339", i32 0, i32 2 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_57_env_s_347", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_57_cloval_342", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_56", align 8, !dbg !42 - %"$$retval_56_348" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_56", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_56_348" + store { i8*, i8* }* %"$n_envload_322", { i8*, i8* }** %n, align 8 + %"$retval_48" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_323" = load i64, i64* @_gasrem, align 8 + %"$gascmp_324" = icmp ugt i64 1, %"$gasrem_323" + br i1 %"$gascmp_324", label %"$out_of_gas_325", label %"$have_gas_326" + +"$out_of_gas_325": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_326" + +"$have_gas_326": ; preds = %"$out_of_gas_325", %entry + %"$consume_327" = sub i64 %"$gasrem_323", 1 + store i64 %"$consume_327", i64* @_gasrem, align 8 + %"$$fundef_49_envp_328_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_49_envp_328_salloc" = call i8* @_salloc(i8* %"$$fundef_49_envp_328_load", i64 32) + %"$$fundef_49_envp_328" = bitcast i8* %"$$fundef_49_envp_328_salloc" to %"$$fundef_49_env_104"* + %"$$fundef_49_env_voidp_330" = bitcast %"$$fundef_49_env_104"* %"$$fundef_49_envp_328" to i8* + %"$$fundef_49_cloval_331" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_49_env_104"*, %Uint32)* @"$fundef_49" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_49_env_voidp_330", 1 + %"$$fundef_49_env_m_332" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %"$$fundef_49_envp_328", i32 0, i32 0 + %"$m_333" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_333", { i8*, i8* }** %"$$fundef_49_env_m_332", align 8 + %"$$fundef_49_env_n_334" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %"$$fundef_49_envp_328", i32 0, i32 1 + %"$n_335" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_335", { i8*, i8* }** %"$$fundef_49_env_n_334", align 8 + %"$$fundef_49_env_s_336" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %"$$fundef_49_envp_328", i32 0, i32 2 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_49_env_s_336", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_49_cloval_331", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8, !dbg !40 + %"$$retval_48_337" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_48_337" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_53"(%"$$fundef_53_env_117"* %0) !dbg !43 { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_45"(%"$$fundef_45_env_106"* %0) !dbg !41 { entry: - %"$$fundef_53_env_m_312" = getelementptr inbounds %"$$fundef_53_env_117", %"$$fundef_53_env_117"* %0, i32 0, i32 0 - %"$m_envload_313" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_53_env_m_312", align 8 + %"$$fundef_45_env_m_301" = getelementptr inbounds %"$$fundef_45_env_106", %"$$fundef_45_env_106"* %0, i32 0, i32 0 + %"$m_envload_302" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_45_env_m_301", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_313", { i8*, i8* }** %m, align 8 - %"$$fundef_53_env_n_314" = getelementptr inbounds %"$$fundef_53_env_117", %"$$fundef_53_env_117"* %0, i32 0, i32 1 - %"$n_envload_315" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_53_env_n_314", align 8 + store { i8*, i8* }* %"$m_envload_302", { i8*, i8* }** %m, align 8 + %"$$fundef_45_env_n_303" = getelementptr inbounds %"$$fundef_45_env_106", %"$$fundef_45_env_106"* %0, i32 0, i32 1 + %"$n_envload_304" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_45_env_n_303", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_315", { i8*, i8* }** %n, align 8 - %"$retval_54" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_316" = load i64, i64* @_gasrem, align 8 - %"$gascmp_317" = icmp ugt i64 1, %"$gasrem_316" - br i1 %"$gascmp_317", label %"$out_of_gas_318", label %"$have_gas_319" - -"$out_of_gas_318": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_319" - -"$have_gas_319": ; preds = %"$out_of_gas_318", %entry - %"$consume_320" = sub i64 %"$gasrem_316", 1 - store i64 %"$consume_320", i64* @_gasrem, align 8 - %"$$fundef_55_envp_321_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_55_envp_321_salloc" = call i8* @_salloc(i8* %"$$fundef_55_envp_321_load", i64 16) - %"$$fundef_55_envp_321" = bitcast i8* %"$$fundef_55_envp_321_salloc" to %"$$fundef_55_env_116"* - %"$$fundef_55_env_voidp_323" = bitcast %"$$fundef_55_env_116"* %"$$fundef_55_envp_321" to i8* - %"$$fundef_55_cloval_324" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_55_env_116"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_55" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_55_env_voidp_323", 1 - %"$$fundef_55_env_m_325" = getelementptr inbounds %"$$fundef_55_env_116", %"$$fundef_55_env_116"* %"$$fundef_55_envp_321", i32 0, i32 0 - %"$m_326" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_326", { i8*, i8* }** %"$$fundef_55_env_m_325", align 8 - %"$$fundef_55_env_n_327" = getelementptr inbounds %"$$fundef_55_env_116", %"$$fundef_55_env_116"* %"$$fundef_55_envp_321", i32 0, i32 1 - %"$n_328" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_328", { i8*, i8* }** %"$$fundef_55_env_n_327", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_55_cloval_324", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_54", align 8, !dbg !44 - %"$$retval_54_329" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_54", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_54_329" + store { i8*, i8* }* %"$n_envload_304", { i8*, i8* }** %n, align 8 + %"$retval_46" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_305" = load i64, i64* @_gasrem, align 8 + %"$gascmp_306" = icmp ugt i64 1, %"$gasrem_305" + br i1 %"$gascmp_306", label %"$out_of_gas_307", label %"$have_gas_308" + +"$out_of_gas_307": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_308" + +"$have_gas_308": ; preds = %"$out_of_gas_307", %entry + %"$consume_309" = sub i64 %"$gasrem_305", 1 + store i64 %"$consume_309", i64* @_gasrem, align 8 + %"$$fundef_47_envp_310_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_47_envp_310_salloc" = call i8* @_salloc(i8* %"$$fundef_47_envp_310_load", i64 16) + %"$$fundef_47_envp_310" = bitcast i8* %"$$fundef_47_envp_310_salloc" to %"$$fundef_47_env_105"* + %"$$fundef_47_env_voidp_312" = bitcast %"$$fundef_47_env_105"* %"$$fundef_47_envp_310" to i8* + %"$$fundef_47_cloval_313" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_47_env_105"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_47" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_47_env_voidp_312", 1 + %"$$fundef_47_env_m_314" = getelementptr inbounds %"$$fundef_47_env_105", %"$$fundef_47_env_105"* %"$$fundef_47_envp_310", i32 0, i32 0 + %"$m_315" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_315", { i8*, i8* }** %"$$fundef_47_env_m_314", align 8 + %"$$fundef_47_env_n_316" = getelementptr inbounds %"$$fundef_47_env_105", %"$$fundef_47_env_105"* %"$$fundef_47_envp_310", i32 0, i32 1 + %"$n_317" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_317", { i8*, i8* }** %"$$fundef_47_env_n_316", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_47_cloval_313", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_46", align 8, !dbg !42 + %"$$retval_46_318" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_46", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_46_318" } -define internal { i8*, i8* }* @"$fundef_51"(%"$$fundef_51_env_118"* %0, { i8*, i8* }* %1) !dbg !45 { +define internal { i8*, i8* }* @"$fundef_43"(%"$$fundef_43_env_107"* %0, { i8*, i8* }* %1) !dbg !43 { entry: - %"$$fundef_51_env_m_289" = getelementptr inbounds %"$$fundef_51_env_118", %"$$fundef_51_env_118"* %0, i32 0, i32 0 - %"$m_envload_290" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_51_env_m_289", align 8 + %"$$fundef_43_env_m_278" = getelementptr inbounds %"$$fundef_43_env_107", %"$$fundef_43_env_107"* %0, i32 0, i32 0 + %"$m_envload_279" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_43_env_m_278", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_290", { i8*, i8* }** %m, align 8 - %"$retval_52" = alloca { i8*, i8* }*, align 8 - %"$gasrem_291" = load i64, i64* @_gasrem, align 8 - %"$gascmp_292" = icmp ugt i64 1, %"$gasrem_291" - br i1 %"$gascmp_292", label %"$out_of_gas_293", label %"$have_gas_294" - -"$out_of_gas_293": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_294" - -"$have_gas_294": ; preds = %"$out_of_gas_293", %entry - %"$consume_295" = sub i64 %"$gasrem_291", 1 - store i64 %"$consume_295", i64* @_gasrem, align 8 - %"$$fundef_53_envp_296_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_53_envp_296_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_296_load", i64 16) - %"$$fundef_53_envp_296" = bitcast i8* %"$$fundef_53_envp_296_salloc" to %"$$fundef_53_env_117"* - %"$$fundef_53_env_voidp_298" = bitcast %"$$fundef_53_env_117"* %"$$fundef_53_envp_296" to i8* - %"$$fundef_53_cloval_299" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_53_env_117"*)* @"$fundef_53" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_53_env_voidp_298", 1 - %"$$fundef_53_env_m_300" = getelementptr inbounds %"$$fundef_53_env_117", %"$$fundef_53_env_117"* %"$$fundef_53_envp_296", i32 0, i32 0 - %"$m_301" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_301", { i8*, i8* }** %"$$fundef_53_env_m_300", align 8 - %"$$fundef_53_env_n_302" = getelementptr inbounds %"$$fundef_53_env_117", %"$$fundef_53_env_117"* %"$$fundef_53_envp_296", i32 0, i32 1 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_53_env_n_302", align 8 - %"$$fundef_59_env_voidp_304" = bitcast %"$$fundef_53_env_117"* %"$$fundef_53_envp_296" to i8* - %"$$fundef_59_cloval_305" = insertvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_59_env_114"*)* @"$fundef_59" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_59_env_voidp_304", 1 - %"$dyndisp_table_306_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_306_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_306_salloc_load", i64 32) - %"$dyndisp_table_306_salloc" = bitcast i8* %"$dyndisp_table_306_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_306" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_306_salloc" to { i8*, i8* }* - %"$dyndisp_gep_307" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_306", i32 0 - %"$dyndisp_pcast_308" = bitcast { i8*, i8* }* %"$dyndisp_gep_307" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_53_cloval_299", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_308", align 8 - %"$dyndisp_gep_309" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_306", i32 1 - %"$dyndisp_pcast_310" = bitcast { i8*, i8* }* %"$dyndisp_gep_309" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_59_cloval_305", { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_310", align 8 - store { i8*, i8* }* %"$dyndisp_table_306", { i8*, i8* }** %"$retval_52", align 8, !dbg !46 - %"$$retval_52_311" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_52", align 8 - ret { i8*, i8* }* %"$$retval_52_311" + store { i8*, i8* }* %"$m_envload_279", { i8*, i8* }** %m, align 8 + %"$retval_44" = alloca { i8*, i8* }*, align 8 + %"$gasrem_280" = load i64, i64* @_gasrem, align 8 + %"$gascmp_281" = icmp ugt i64 1, %"$gasrem_280" + br i1 %"$gascmp_281", label %"$out_of_gas_282", label %"$have_gas_283" + +"$out_of_gas_282": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_283" + +"$have_gas_283": ; preds = %"$out_of_gas_282", %entry + %"$consume_284" = sub i64 %"$gasrem_280", 1 + store i64 %"$consume_284", i64* @_gasrem, align 8 + %"$$fundef_45_envp_285_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_45_envp_285_salloc" = call i8* @_salloc(i8* %"$$fundef_45_envp_285_load", i64 16) + %"$$fundef_45_envp_285" = bitcast i8* %"$$fundef_45_envp_285_salloc" to %"$$fundef_45_env_106"* + %"$$fundef_45_env_voidp_287" = bitcast %"$$fundef_45_env_106"* %"$$fundef_45_envp_285" to i8* + %"$$fundef_45_cloval_288" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_45_env_106"*)* @"$fundef_45" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_45_env_voidp_287", 1 + %"$$fundef_45_env_m_289" = getelementptr inbounds %"$$fundef_45_env_106", %"$$fundef_45_env_106"* %"$$fundef_45_envp_285", i32 0, i32 0 + %"$m_290" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_290", { i8*, i8* }** %"$$fundef_45_env_m_289", align 8 + %"$$fundef_45_env_n_291" = getelementptr inbounds %"$$fundef_45_env_106", %"$$fundef_45_env_106"* %"$$fundef_45_envp_285", i32 0, i32 1 + store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_45_env_n_291", align 8 + %"$$fundef_51_env_voidp_293" = bitcast %"$$fundef_45_env_106"* %"$$fundef_45_envp_285" to i8* + %"$$fundef_51_cloval_294" = insertvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_51_env_103"*)* @"$fundef_51" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_51_env_voidp_293", 1 + %"$dyndisp_table_295_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_295_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_295_salloc_load", i64 32) + %"$dyndisp_table_295_salloc" = bitcast i8* %"$dyndisp_table_295_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_295" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_295_salloc" to { i8*, i8* }* + %"$dyndisp_gep_296" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_295", i32 0 + %"$dyndisp_pcast_297" = bitcast { i8*, i8* }* %"$dyndisp_gep_296" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_45_cloval_288", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_297", align 8 + %"$dyndisp_gep_298" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_295", i32 1 + %"$dyndisp_pcast_299" = bitcast { i8*, i8* }* %"$dyndisp_gep_298" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_51_cloval_294", { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_299", align 8 + store { i8*, i8* }* %"$dyndisp_table_295", { i8*, i8* }** %"$retval_44", align 8, !dbg !44 + %"$$retval_44_300" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_44", align 8 + ret { i8*, i8* }* %"$$retval_44_300" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_49"(%"$$fundef_49_env_119"* %0, { i8*, i8* }* %1) !dbg !47 { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_41"(%"$$fundef_41_env_108"* %0, { i8*, i8* }* %1) !dbg !45 { entry: - %"$retval_50" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_278" = load i64, i64* @_gasrem, align 8 - %"$gascmp_279" = icmp ugt i64 1, %"$gasrem_278" - br i1 %"$gascmp_279", label %"$out_of_gas_280", label %"$have_gas_281" - -"$out_of_gas_280": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_281" - -"$have_gas_281": ; preds = %"$out_of_gas_280", %entry - %"$consume_282" = sub i64 %"$gasrem_278", 1 - store i64 %"$consume_282", i64* @_gasrem, align 8 - %"$$fundef_51_envp_283_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_51_envp_283_salloc" = call i8* @_salloc(i8* %"$$fundef_51_envp_283_load", i64 8) - %"$$fundef_51_envp_283" = bitcast i8* %"$$fundef_51_envp_283_salloc" to %"$$fundef_51_env_118"* - %"$$fundef_51_env_voidp_285" = bitcast %"$$fundef_51_env_118"* %"$$fundef_51_envp_283" to i8* - %"$$fundef_51_cloval_286" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_51_env_118"*, { i8*, i8* }*)* @"$fundef_51" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_51_env_voidp_285", 1 - %"$$fundef_51_env_m_287" = getelementptr inbounds %"$$fundef_51_env_118", %"$$fundef_51_env_118"* %"$$fundef_51_envp_283", i32 0, i32 0 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_51_env_m_287", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_51_cloval_286", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_50", align 8, !dbg !48 - %"$$retval_50_288" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_50", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_50_288" + %"$retval_42" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_267" = load i64, i64* @_gasrem, align 8 + %"$gascmp_268" = icmp ugt i64 1, %"$gasrem_267" + br i1 %"$gascmp_268", label %"$out_of_gas_269", label %"$have_gas_270" + +"$out_of_gas_269": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_270" + +"$have_gas_270": ; preds = %"$out_of_gas_269", %entry + %"$consume_271" = sub i64 %"$gasrem_267", 1 + store i64 %"$consume_271", i64* @_gasrem, align 8 + %"$$fundef_43_envp_272_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_43_envp_272_salloc" = call i8* @_salloc(i8* %"$$fundef_43_envp_272_load", i64 8) + %"$$fundef_43_envp_272" = bitcast i8* %"$$fundef_43_envp_272_salloc" to %"$$fundef_43_env_107"* + %"$$fundef_43_env_voidp_274" = bitcast %"$$fundef_43_env_107"* %"$$fundef_43_envp_272" to i8* + %"$$fundef_43_cloval_275" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_43_env_107"*, { i8*, i8* }*)* @"$fundef_43" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_43_env_voidp_274", 1 + %"$$fundef_43_env_m_276" = getelementptr inbounds %"$$fundef_43_env_107", %"$$fundef_43_env_107"* %"$$fundef_43_envp_272", i32 0, i32 0 + store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_43_env_m_276", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_43_cloval_275", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_42", align 8, !dbg !46 + %"$$retval_42_277" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_42", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_42_277" } -define internal { i8*, i8* }* @"$fundef_47"(%"$$fundef_47_env_120"* %0, { i8*, i8* }* %1) !dbg !49 { +define internal { i8*, i8* }* @"$fundef_39"(%"$$fundef_39_env_109"* %0, { i8*, i8* }* %1) !dbg !47 { entry: - %"$$fundef_47_env_s_249" = getelementptr inbounds %"$$fundef_47_env_120", %"$$fundef_47_env_120"* %0, i32 0, i32 0 - %"$s_envload_250" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_47_env_s_249", align 8 + %"$$fundef_39_env_s_238" = getelementptr inbounds %"$$fundef_39_env_109", %"$$fundef_39_env_109"* %0, i32 0, i32 0 + %"$s_envload_239" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_39_env_s_238", align 8 %s = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_250", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$retval_48" = alloca { i8*, i8* }*, align 8 - %"$gasrem_251" = load i64, i64* @_gasrem, align 8 - %"$gascmp_252" = icmp ugt i64 1, %"$gasrem_251" - br i1 %"$gascmp_252", label %"$out_of_gas_253", label %"$have_gas_254" + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_239", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$retval_40" = alloca { i8*, i8* }*, align 8 + %"$gasrem_240" = load i64, i64* @_gasrem, align 8 + %"$gascmp_241" = icmp ugt i64 1, %"$gasrem_240" + br i1 %"$gascmp_241", label %"$out_of_gas_242", label %"$have_gas_243" -"$out_of_gas_253": ; preds = %entry +"$out_of_gas_242": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_254" + br label %"$have_gas_243" -"$have_gas_254": ; preds = %"$out_of_gas_253", %entry - %"$consume_255" = sub i64 %"$gasrem_251", 1 - store i64 %"$consume_255", i64* @_gasrem, align 8 +"$have_gas_243": ; preds = %"$out_of_gas_242", %entry + %"$consume_244" = sub i64 %"$gasrem_240", 1 + store i64 %"$consume_244", i64* @_gasrem, align 8 %sz = alloca { i8*, i8* }*, align 8 - %"$gasrem_256" = load i64, i64* @_gasrem, align 8 - %"$gascmp_257" = icmp ugt i64 1, %"$gasrem_256" - br i1 %"$gascmp_257", label %"$out_of_gas_258", label %"$have_gas_259" + %"$gasrem_245" = load i64, i64* @_gasrem, align 8 + %"$gascmp_246" = icmp ugt i64 1, %"$gasrem_245" + br i1 %"$gascmp_246", label %"$out_of_gas_247", label %"$have_gas_248" -"$out_of_gas_258": ; preds = %"$have_gas_254" +"$out_of_gas_247": ; preds = %"$have_gas_243" call void @_out_of_gas() - br label %"$have_gas_259" + br label %"$have_gas_248" -"$have_gas_259": ; preds = %"$out_of_gas_258", %"$have_gas_254" - %"$consume_260" = sub i64 %"$gasrem_256", 1 - store i64 %"$consume_260", i64* @_gasrem, align 8 +"$have_gas_248": ; preds = %"$out_of_gas_247", %"$have_gas_243" + %"$consume_249" = sub i64 %"$gasrem_245", 1 + store i64 %"$consume_249", i64* @_gasrem, align 8 %"$s_0" = alloca { i8*, i8* }*, align 8 - %"$s_261" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$s_fptr_262" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_261", 0 - %"$s_envptr_263" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_261", 1 - %"$s_call_264" = call { i8*, i8* }* %"$s_fptr_262"(i8* %"$s_envptr_263", { i8*, i8* }* %1), !dbg !50 - store { i8*, i8* }* %"$s_call_264", { i8*, i8* }** %"$s_0", align 8, !dbg !50 - %"$$s_0_265" = load { i8*, i8* }*, { i8*, i8* }** %"$s_0", align 8 - store { i8*, i8* }* %"$$s_0_265", { i8*, i8* }** %sz, align 8, !dbg !50 - %"$gasrem_266" = load i64, i64* @_gasrem, align 8 - %"$gascmp_267" = icmp ugt i64 1, %"$gasrem_266" - br i1 %"$gascmp_267", label %"$out_of_gas_268", label %"$have_gas_269" - -"$out_of_gas_268": ; preds = %"$have_gas_259" - call void @_out_of_gas() - br label %"$have_gas_269" - -"$have_gas_269": ; preds = %"$out_of_gas_268", %"$have_gas_259" - %"$consume_270" = sub i64 %"$gasrem_266", 1 - store i64 %"$consume_270", i64* @_gasrem, align 8 + %"$s_250" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$s_fptr_251" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_250", 0 + %"$s_envptr_252" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_250", 1 + %"$s_call_253" = call { i8*, i8* }* %"$s_fptr_251"(i8* %"$s_envptr_252", { i8*, i8* }* %1), !dbg !48 + store { i8*, i8* }* %"$s_call_253", { i8*, i8* }** %"$s_0", align 8, !dbg !48 + %"$$s_0_254" = load { i8*, i8* }*, { i8*, i8* }** %"$s_0", align 8 + store { i8*, i8* }* %"$$s_0_254", { i8*, i8* }** %sz, align 8, !dbg !48 + %"$gasrem_255" = load i64, i64* @_gasrem, align 8 + %"$gascmp_256" = icmp ugt i64 1, %"$gasrem_255" + br i1 %"$gascmp_256", label %"$out_of_gas_257", label %"$have_gas_258" + +"$out_of_gas_257": ; preds = %"$have_gas_248" + call void @_out_of_gas() + br label %"$have_gas_258" + +"$have_gas_258": ; preds = %"$out_of_gas_257", %"$have_gas_248" + %"$consume_259" = sub i64 %"$gasrem_255", 1 + store i64 %"$consume_259", i64* @_gasrem, align 8 %"$s_1" = alloca { i8*, i8* }*, align 8 - %"$s_271" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$s_fptr_272" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_271", 0 - %"$s_envptr_273" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_271", 1 - %"$sz_274" = load { i8*, i8* }*, { i8*, i8* }** %sz, align 8 - %"$s_call_275" = call { i8*, i8* }* %"$s_fptr_272"(i8* %"$s_envptr_273", { i8*, i8* }* %"$sz_274"), !dbg !51 - store { i8*, i8* }* %"$s_call_275", { i8*, i8* }** %"$s_1", align 8, !dbg !51 - %"$$s_1_276" = load { i8*, i8* }*, { i8*, i8* }** %"$s_1", align 8 - store { i8*, i8* }* %"$$s_1_276", { i8*, i8* }** %"$retval_48", align 8, !dbg !51 - %"$$retval_48_277" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_48", align 8 - ret { i8*, i8* }* %"$$retval_48_277" + %"$s_260" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$s_fptr_261" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_260", 0 + %"$s_envptr_262" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_260", 1 + %"$sz_263" = load { i8*, i8* }*, { i8*, i8* }** %sz, align 8 + %"$s_call_264" = call { i8*, i8* }* %"$s_fptr_261"(i8* %"$s_envptr_262", { i8*, i8* }* %"$sz_263"), !dbg !49 + store { i8*, i8* }* %"$s_call_264", { i8*, i8* }** %"$s_1", align 8, !dbg !49 + %"$$s_1_265" = load { i8*, i8* }*, { i8*, i8* }** %"$s_1", align 8 + store { i8*, i8* }* %"$$s_1_265", { i8*, i8* }** %"$retval_40", align 8, !dbg !49 + %"$$retval_40_266" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_40", align 8 + ret { i8*, i8* }* %"$$retval_40_266" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_45"(%"$$fundef_45_env_121"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !52 { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_37"(%"$$fundef_37_env_110"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !50 { entry: - %"$retval_46" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_238" = load i64, i64* @_gasrem, align 8 - %"$gascmp_239" = icmp ugt i64 1, %"$gasrem_238" - br i1 %"$gascmp_239", label %"$out_of_gas_240", label %"$have_gas_241" - -"$out_of_gas_240": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_241" - -"$have_gas_241": ; preds = %"$out_of_gas_240", %entry - %"$consume_242" = sub i64 %"$gasrem_238", 1 - store i64 %"$consume_242", i64* @_gasrem, align 8 - %"$$fundef_47_envp_243_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_47_envp_243_salloc" = call i8* @_salloc(i8* %"$$fundef_47_envp_243_load", i64 16) - %"$$fundef_47_envp_243" = bitcast i8* %"$$fundef_47_envp_243_salloc" to %"$$fundef_47_env_120"* - %"$$fundef_47_env_voidp_245" = bitcast %"$$fundef_47_env_120"* %"$$fundef_47_envp_243" to i8* - %"$$fundef_47_cloval_246" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_47_env_120"*, { i8*, i8* }*)* @"$fundef_47" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_47_env_voidp_245", 1 - %"$$fundef_47_env_s_247" = getelementptr inbounds %"$$fundef_47_env_120", %"$$fundef_47_env_120"* %"$$fundef_47_envp_243", i32 0, i32 0 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_47_env_s_247", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_47_cloval_246", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_46", align 8, !dbg !53 - %"$$retval_46_248" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_46", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_46_248" + %"$retval_38" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_228" = icmp ugt i64 1, %"$gasrem_227" + br i1 %"$gascmp_228", label %"$out_of_gas_229", label %"$have_gas_230" + +"$out_of_gas_229": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_230" + +"$have_gas_230": ; preds = %"$out_of_gas_229", %entry + %"$consume_231" = sub i64 %"$gasrem_227", 1 + store i64 %"$consume_231", i64* @_gasrem, align 8 + %"$$fundef_39_envp_232_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_39_envp_232_salloc" = call i8* @_salloc(i8* %"$$fundef_39_envp_232_load", i64 16) + %"$$fundef_39_envp_232" = bitcast i8* %"$$fundef_39_envp_232_salloc" to %"$$fundef_39_env_109"* + %"$$fundef_39_env_voidp_234" = bitcast %"$$fundef_39_env_109"* %"$$fundef_39_envp_232" to i8* + %"$$fundef_39_cloval_235" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_39_env_109"*, { i8*, i8* }*)* @"$fundef_39" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_39_env_voidp_234", 1 + %"$$fundef_39_env_s_236" = getelementptr inbounds %"$$fundef_39_env_109", %"$$fundef_39_env_109"* %"$$fundef_39_envp_232", i32 0, i32 0 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_39_env_s_236", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_39_cloval_235", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_38", align 8, !dbg !51 + %"$$retval_38_237" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_38", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_38_237" } -define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_43"(%"$$fundef_43_env_122"* %0) !dbg !54 { +define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_35"(%"$$fundef_35_env_111"* %0) !dbg !52 { entry: - %"$retval_44" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_229" = load i64, i64* @_gasrem, align 8 - %"$gascmp_230" = icmp ugt i64 1, %"$gasrem_229" - br i1 %"$gascmp_230", label %"$out_of_gas_231", label %"$have_gas_232" + %"$retval_36" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 + %"$gasrem_218" = load i64, i64* @_gasrem, align 8 + %"$gascmp_219" = icmp ugt i64 1, %"$gasrem_218" + br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" -"$out_of_gas_231": ; preds = %entry +"$out_of_gas_220": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_232" + br label %"$have_gas_221" -"$have_gas_232": ; preds = %"$out_of_gas_231", %entry - %"$consume_233" = sub i64 %"$gasrem_229", 1 - store i64 %"$consume_233", i64* @_gasrem, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_45_env_121"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_45" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_44", align 8, !dbg !55 - %"$$retval_44_237" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_44", align 8 - ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_44_237" +"$have_gas_221": ; preds = %"$out_of_gas_220", %entry + %"$consume_222" = sub i64 %"$gasrem_218", 1 + store i64 %"$consume_222", i64* @_gasrem, align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_37_env_110"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_37" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_36", align 8, !dbg !53 + %"$$retval_36_226" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_36", align 8 + ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_36_226" } -define internal %Uint32 @"$fundef_41"(%"$$fundef_41_env_123"* %0, %Uint32 %1) !dbg !56 { +define internal %Uint32 @"$fundef_33"(%"$$fundef_33_env_112"* %0, %Uint32 %1) !dbg !54 { entry: - %"$$fundef_41_env_s_200" = getelementptr inbounds %"$$fundef_41_env_123", %"$$fundef_41_env_123"* %0, i32 0, i32 0 - %"$s_envload_201" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_41_env_s_200", align 8 + %"$$fundef_33_env_s_189" = getelementptr inbounds %"$$fundef_33_env_112", %"$$fundef_33_env_112"* %0, i32 0, i32 0 + %"$s_envload_190" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_33_env_s_189", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_201", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$retval_42" = alloca %Uint32, align 8 - %"$gasrem_202" = load i64, i64* @_gasrem, align 8 - %"$gascmp_203" = icmp ugt i64 1, %"$gasrem_202" - br i1 %"$gascmp_203", label %"$out_of_gas_204", label %"$have_gas_205" + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_190", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$retval_34" = alloca %Uint32, align 8 + %"$gasrem_191" = load i64, i64* @_gasrem, align 8 + %"$gascmp_192" = icmp ugt i64 1, %"$gasrem_191" + br i1 %"$gascmp_192", label %"$out_of_gas_193", label %"$have_gas_194" -"$out_of_gas_204": ; preds = %entry +"$out_of_gas_193": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_205" + br label %"$have_gas_194" -"$have_gas_205": ; preds = %"$out_of_gas_204", %entry - %"$consume_206" = sub i64 %"$gasrem_202", 1 - store i64 %"$consume_206", i64* @_gasrem, align 8 +"$have_gas_194": ; preds = %"$out_of_gas_193", %entry + %"$consume_195" = sub i64 %"$gasrem_191", 1 + store i64 %"$consume_195", i64* @_gasrem, align 8 %sz = alloca %Uint32, align 8 - %"$gasrem_207" = load i64, i64* @_gasrem, align 8 - %"$gascmp_208" = icmp ugt i64 1, %"$gasrem_207" - br i1 %"$gascmp_208", label %"$out_of_gas_209", label %"$have_gas_210" + %"$gasrem_196" = load i64, i64* @_gasrem, align 8 + %"$gascmp_197" = icmp ugt i64 1, %"$gasrem_196" + br i1 %"$gascmp_197", label %"$out_of_gas_198", label %"$have_gas_199" -"$out_of_gas_209": ; preds = %"$have_gas_205" +"$out_of_gas_198": ; preds = %"$have_gas_194" call void @_out_of_gas() - br label %"$have_gas_210" + br label %"$have_gas_199" -"$have_gas_210": ; preds = %"$out_of_gas_209", %"$have_gas_205" - %"$consume_211" = sub i64 %"$gasrem_207", 1 - store i64 %"$consume_211", i64* @_gasrem, align 8 +"$have_gas_199": ; preds = %"$out_of_gas_198", %"$have_gas_194" + %"$consume_200" = sub i64 %"$gasrem_196", 1 + store i64 %"$consume_200", i64* @_gasrem, align 8 %"$s_0" = alloca %Uint32, align 8 - %"$s_212" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_213" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_212", 0 - %"$s_envptr_214" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_212", 1 - %"$s_call_215" = call %Uint32 %"$s_fptr_213"(i8* %"$s_envptr_214", %Uint32 %1), !dbg !57 - store %Uint32 %"$s_call_215", %Uint32* %"$s_0", align 4, !dbg !57 - %"$$s_0_216" = load %Uint32, %Uint32* %"$s_0", align 4 - store %Uint32 %"$$s_0_216", %Uint32* %sz, align 4, !dbg !57 - %"$gasrem_217" = load i64, i64* @_gasrem, align 8 - %"$gascmp_218" = icmp ugt i64 1, %"$gasrem_217" - br i1 %"$gascmp_218", label %"$out_of_gas_219", label %"$have_gas_220" - -"$out_of_gas_219": ; preds = %"$have_gas_210" - call void @_out_of_gas() - br label %"$have_gas_220" - -"$have_gas_220": ; preds = %"$out_of_gas_219", %"$have_gas_210" - %"$consume_221" = sub i64 %"$gasrem_217", 1 - store i64 %"$consume_221", i64* @_gasrem, align 8 + %"$s_201" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_202" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_201", 0 + %"$s_envptr_203" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_201", 1 + %"$s_call_204" = call %Uint32 %"$s_fptr_202"(i8* %"$s_envptr_203", %Uint32 %1), !dbg !55 + store %Uint32 %"$s_call_204", %Uint32* %"$s_0", align 4, !dbg !55 + %"$$s_0_205" = load %Uint32, %Uint32* %"$s_0", align 4 + store %Uint32 %"$$s_0_205", %Uint32* %sz, align 4, !dbg !55 + %"$gasrem_206" = load i64, i64* @_gasrem, align 8 + %"$gascmp_207" = icmp ugt i64 1, %"$gasrem_206" + br i1 %"$gascmp_207", label %"$out_of_gas_208", label %"$have_gas_209" + +"$out_of_gas_208": ; preds = %"$have_gas_199" + call void @_out_of_gas() + br label %"$have_gas_209" + +"$have_gas_209": ; preds = %"$out_of_gas_208", %"$have_gas_199" + %"$consume_210" = sub i64 %"$gasrem_206", 1 + store i64 %"$consume_210", i64* @_gasrem, align 8 %"$s_1" = alloca %Uint32, align 8 - %"$s_222" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_223" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_222", 0 - %"$s_envptr_224" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_222", 1 - %"$sz_225" = load %Uint32, %Uint32* %sz, align 4 - %"$s_call_226" = call %Uint32 %"$s_fptr_223"(i8* %"$s_envptr_224", %Uint32 %"$sz_225"), !dbg !58 - store %Uint32 %"$s_call_226", %Uint32* %"$s_1", align 4, !dbg !58 - %"$$s_1_227" = load %Uint32, %Uint32* %"$s_1", align 4 - store %Uint32 %"$$s_1_227", %Uint32* %"$retval_42", align 4, !dbg !58 - %"$$retval_42_228" = load %Uint32, %Uint32* %"$retval_42", align 4 - ret %Uint32 %"$$retval_42_228" + %"$s_211" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_212" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_211", 0 + %"$s_envptr_213" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_211", 1 + %"$sz_214" = load %Uint32, %Uint32* %sz, align 4 + %"$s_call_215" = call %Uint32 %"$s_fptr_212"(i8* %"$s_envptr_213", %Uint32 %"$sz_214"), !dbg !56 + store %Uint32 %"$s_call_215", %Uint32* %"$s_1", align 4, !dbg !56 + %"$$s_1_216" = load %Uint32, %Uint32* %"$s_1", align 4 + store %Uint32 %"$$s_1_216", %Uint32* %"$retval_34", align 4, !dbg !56 + %"$$retval_34_217" = load %Uint32, %Uint32* %"$retval_34", align 4 + ret %Uint32 %"$$retval_34_217" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_39"(%"$$fundef_39_env_124"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !59 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_31"(%"$$fundef_31_env_113"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !57 { entry: - %"$retval_40" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_189" = load i64, i64* @_gasrem, align 8 - %"$gascmp_190" = icmp ugt i64 1, %"$gasrem_189" - br i1 %"$gascmp_190", label %"$out_of_gas_191", label %"$have_gas_192" - -"$out_of_gas_191": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_192" - -"$have_gas_192": ; preds = %"$out_of_gas_191", %entry - %"$consume_193" = sub i64 %"$gasrem_189", 1 - store i64 %"$consume_193", i64* @_gasrem, align 8 - %"$$fundef_41_envp_194_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_41_envp_194_salloc" = call i8* @_salloc(i8* %"$$fundef_41_envp_194_load", i64 16) - %"$$fundef_41_envp_194" = bitcast i8* %"$$fundef_41_envp_194_salloc" to %"$$fundef_41_env_123"* - %"$$fundef_41_env_voidp_196" = bitcast %"$$fundef_41_env_123"* %"$$fundef_41_envp_194" to i8* - %"$$fundef_41_cloval_197" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_41_env_123"*, %Uint32)* @"$fundef_41" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_41_env_voidp_196", 1 - %"$$fundef_41_env_s_198" = getelementptr inbounds %"$$fundef_41_env_123", %"$$fundef_41_env_123"* %"$$fundef_41_envp_194", i32 0, i32 0 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_41_env_s_198", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_41_cloval_197", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_40", align 8, !dbg !60 - %"$$retval_40_199" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_40", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_40_199" + %"$retval_32" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_178" = load i64, i64* @_gasrem, align 8 + %"$gascmp_179" = icmp ugt i64 1, %"$gasrem_178" + br i1 %"$gascmp_179", label %"$out_of_gas_180", label %"$have_gas_181" + +"$out_of_gas_180": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_181" + +"$have_gas_181": ; preds = %"$out_of_gas_180", %entry + %"$consume_182" = sub i64 %"$gasrem_178", 1 + store i64 %"$consume_182", i64* @_gasrem, align 8 + %"$$fundef_33_envp_183_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_33_envp_183_salloc" = call i8* @_salloc(i8* %"$$fundef_33_envp_183_load", i64 16) + %"$$fundef_33_envp_183" = bitcast i8* %"$$fundef_33_envp_183_salloc" to %"$$fundef_33_env_112"* + %"$$fundef_33_env_voidp_185" = bitcast %"$$fundef_33_env_112"* %"$$fundef_33_envp_183" to i8* + %"$$fundef_33_cloval_186" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_33_env_112"*, %Uint32)* @"$fundef_33" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_33_env_voidp_185", 1 + %"$$fundef_33_env_s_187" = getelementptr inbounds %"$$fundef_33_env_112", %"$$fundef_33_env_112"* %"$$fundef_33_envp_183", i32 0, i32 0 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_33_env_s_187", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_33_cloval_186", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_32", align 8, !dbg !58 + %"$$retval_32_188" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_32", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_32_188" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_37"(%"$$fundef_37_env_125"* %0) !dbg !61 { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_29"(%"$$fundef_29_env_114"* %0) !dbg !59 { entry: - %"$retval_38" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_180" = load i64, i64* @_gasrem, align 8 - %"$gascmp_181" = icmp ugt i64 1, %"$gasrem_180" - br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" + %"$retval_30" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_169" = load i64, i64* @_gasrem, align 8 + %"$gascmp_170" = icmp ugt i64 1, %"$gasrem_169" + br i1 %"$gascmp_170", label %"$out_of_gas_171", label %"$have_gas_172" -"$out_of_gas_182": ; preds = %entry +"$out_of_gas_171": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_183" + br label %"$have_gas_172" -"$have_gas_183": ; preds = %"$out_of_gas_182", %entry - %"$consume_184" = sub i64 %"$gasrem_180", 1 - store i64 %"$consume_184", i64* @_gasrem, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_39_env_124"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_39" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_38", align 8, !dbg !62 - %"$$retval_38_188" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_38", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_38_188" +"$have_gas_172": ; preds = %"$out_of_gas_171", %entry + %"$consume_173" = sub i64 %"$gasrem_169", 1 + store i64 %"$consume_173", i64* @_gasrem, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_31_env_113"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_31" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_30", align 8, !dbg !60 + %"$$retval_30_177" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_30", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_30_177" } -define internal { i8*, i8* }* @"$fundef_35"(%"$$fundef_35_env_126"* %0, { i8*, i8* }* %1) !dbg !63 { +define internal { i8*, i8* }* @"$fundef_27"(%"$$fundef_27_env_115"* %0, { i8*, i8* }* %1) !dbg !61 { entry: - %"$retval_36" = alloca { i8*, i8* }*, align 8 - %"$gasrem_174" = load i64, i64* @_gasrem, align 8 - %"$gascmp_175" = icmp ugt i64 1, %"$gasrem_174" - br i1 %"$gascmp_175", label %"$out_of_gas_176", label %"$have_gas_177" + %"$retval_28" = alloca { i8*, i8* }*, align 8 + %"$gasrem_163" = load i64, i64* @_gasrem, align 8 + %"$gascmp_164" = icmp ugt i64 1, %"$gasrem_163" + br i1 %"$gascmp_164", label %"$out_of_gas_165", label %"$have_gas_166" -"$out_of_gas_176": ; preds = %entry +"$out_of_gas_165": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_177" + br label %"$have_gas_166" -"$have_gas_177": ; preds = %"$out_of_gas_176", %entry - %"$consume_178" = sub i64 %"$gasrem_174", 1 - store i64 %"$consume_178", i64* @_gasrem, align 8 - store { i8*, i8* }* %1, { i8*, i8* }** %"$retval_36", align 8, !dbg !64 - %"$$retval_36_179" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_36", align 8 - ret { i8*, i8* }* %"$$retval_36_179" +"$have_gas_166": ; preds = %"$out_of_gas_165", %entry + %"$consume_167" = sub i64 %"$gasrem_163", 1 + store i64 %"$consume_167", i64* @_gasrem, align 8 + store { i8*, i8* }* %1, { i8*, i8* }** %"$retval_28", align 8, !dbg !62 + %"$$retval_28_168" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_28", align 8 + ret { i8*, i8* }* %"$$retval_28_168" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_33"(%"$$fundef_33_env_127"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !65 { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_25"(%"$$fundef_25_env_116"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) !dbg !63 { entry: - %"$retval_34" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_165" = load i64, i64* @_gasrem, align 8 - %"$gascmp_166" = icmp ugt i64 1, %"$gasrem_165" - br i1 %"$gascmp_166", label %"$out_of_gas_167", label %"$have_gas_168" + %"$retval_26" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_154" = load i64, i64* @_gasrem, align 8 + %"$gascmp_155" = icmp ugt i64 1, %"$gasrem_154" + br i1 %"$gascmp_155", label %"$out_of_gas_156", label %"$have_gas_157" -"$out_of_gas_167": ; preds = %entry +"$out_of_gas_156": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_168" + br label %"$have_gas_157" -"$have_gas_168": ; preds = %"$out_of_gas_167", %entry - %"$consume_169" = sub i64 %"$gasrem_165", 1 - store i64 %"$consume_169", i64* @_gasrem, align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_35_env_126"*, { i8*, i8* }*)* @"$fundef_35" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* null }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_34", align 8, !dbg !66 - %"$$retval_34_173" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_34", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_34_173" +"$have_gas_157": ; preds = %"$out_of_gas_156", %entry + %"$consume_158" = sub i64 %"$gasrem_154", 1 + store i64 %"$consume_158", i64* @_gasrem, align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_27_env_115"*, { i8*, i8* }*)* @"$fundef_27" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* null }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_26", align 8, !dbg !64 + %"$$retval_26_162" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_26", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_26_162" } -define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_31"(%"$$fundef_31_env_128"* %0) !dbg !67 { +define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_23"(%"$$fundef_23_env_117"* %0) !dbg !65 { entry: - %"$retval_32" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_156" = load i64, i64* @_gasrem, align 8 - %"$gascmp_157" = icmp ugt i64 1, %"$gasrem_156" - br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" + %"$retval_24" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 + %"$gasrem_145" = load i64, i64* @_gasrem, align 8 + %"$gascmp_146" = icmp ugt i64 1, %"$gasrem_145" + br i1 %"$gascmp_146", label %"$out_of_gas_147", label %"$have_gas_148" -"$out_of_gas_158": ; preds = %entry +"$out_of_gas_147": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_159" + br label %"$have_gas_148" -"$have_gas_159": ; preds = %"$out_of_gas_158", %entry - %"$consume_160" = sub i64 %"$gasrem_156", 1 - store i64 %"$consume_160", i64* @_gasrem, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_33_env_127"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_33" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_32", align 8, !dbg !68 - %"$$retval_32_164" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_32", align 8 - ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_32_164" +"$have_gas_148": ; preds = %"$out_of_gas_147", %entry + %"$consume_149" = sub i64 %"$gasrem_145", 1 + store i64 %"$consume_149", i64* @_gasrem, align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_25_env_116"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_25" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_24", align 8, !dbg !66 + %"$$retval_24_153" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_24", align 8 + ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_24_153" } -define internal %Uint32 @"$fundef_29"(%"$$fundef_29_env_129"* %0, %Uint32 %1) !dbg !69 { +define internal %Uint32 @"$fundef_21"(%"$$fundef_21_env_118"* %0, %Uint32 %1) !dbg !67 { entry: - %"$retval_30" = alloca %Uint32, align 8 - %"$gasrem_150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_151" = icmp ugt i64 1, %"$gasrem_150" - br i1 %"$gascmp_151", label %"$out_of_gas_152", label %"$have_gas_153" + %"$retval_22" = alloca %Uint32, align 8 + %"$gasrem_139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_140" = icmp ugt i64 1, %"$gasrem_139" + br i1 %"$gascmp_140", label %"$out_of_gas_141", label %"$have_gas_142" -"$out_of_gas_152": ; preds = %entry +"$out_of_gas_141": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_153" + br label %"$have_gas_142" -"$have_gas_153": ; preds = %"$out_of_gas_152", %entry - %"$consume_154" = sub i64 %"$gasrem_150", 1 - store i64 %"$consume_154", i64* @_gasrem, align 8 - store %Uint32 %1, %Uint32* %"$retval_30", align 4, !dbg !70 - %"$$retval_30_155" = load %Uint32, %Uint32* %"$retval_30", align 4 - ret %Uint32 %"$$retval_30_155" +"$have_gas_142": ; preds = %"$out_of_gas_141", %entry + %"$consume_143" = sub i64 %"$gasrem_139", 1 + store i64 %"$consume_143", i64* @_gasrem, align 8 + store %Uint32 %1, %Uint32* %"$retval_22", align 4, !dbg !68 + %"$$retval_22_144" = load %Uint32, %Uint32* %"$retval_22", align 4 + ret %Uint32 %"$$retval_22_144" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_27"(%"$$fundef_27_env_130"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !71 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_19"(%"$$fundef_19_env_119"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !69 { entry: - %"$retval_28" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_141" = load i64, i64* @_gasrem, align 8 - %"$gascmp_142" = icmp ugt i64 1, %"$gasrem_141" - br i1 %"$gascmp_142", label %"$out_of_gas_143", label %"$have_gas_144" + %"$retval_20" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_131" = icmp ugt i64 1, %"$gasrem_130" + br i1 %"$gascmp_131", label %"$out_of_gas_132", label %"$have_gas_133" -"$out_of_gas_143": ; preds = %entry +"$out_of_gas_132": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_144" + br label %"$have_gas_133" -"$have_gas_144": ; preds = %"$out_of_gas_143", %entry - %"$consume_145" = sub i64 %"$gasrem_141", 1 - store i64 %"$consume_145", i64* @_gasrem, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_29_env_129"*, %Uint32)* @"$fundef_29" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_28", align 8, !dbg !72 - %"$$retval_28_149" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_28", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_28_149" +"$have_gas_133": ; preds = %"$out_of_gas_132", %entry + %"$consume_134" = sub i64 %"$gasrem_130", 1 + store i64 %"$consume_134", i64* @_gasrem, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_21_env_118"*, %Uint32)* @"$fundef_21" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_20", align 8, !dbg !70 + %"$$retval_20_138" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_20", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_20_138" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_25"(%"$$fundef_25_env_131"* %0) !dbg !73 { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_17"(%"$$fundef_17_env_120"* %0) !dbg !71 { entry: - %"$retval_26" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_132" = load i64, i64* @_gasrem, align 8 - %"$gascmp_133" = icmp ugt i64 1, %"$gasrem_132" - br i1 %"$gascmp_133", label %"$out_of_gas_134", label %"$have_gas_135" + %"$retval_18" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_121" = load i64, i64* @_gasrem, align 8 + %"$gascmp_122" = icmp ugt i64 1, %"$gasrem_121" + br i1 %"$gascmp_122", label %"$out_of_gas_123", label %"$have_gas_124" -"$out_of_gas_134": ; preds = %entry +"$out_of_gas_123": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_135" + br label %"$have_gas_124" -"$have_gas_135": ; preds = %"$out_of_gas_134", %entry - %"$consume_136" = sub i64 %"$gasrem_132", 1 - store i64 %"$consume_136", i64* @_gasrem, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_27_env_130"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_27" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_26", align 8, !dbg !74 - %"$$retval_26_140" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_26", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_26_140" +"$have_gas_124": ; preds = %"$out_of_gas_123", %entry + %"$consume_125" = sub i64 %"$gasrem_121", 1 + store i64 %"$consume_125", i64* @_gasrem, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_19_env_119"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_19" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_18", align 8, !dbg !72 + %"$$retval_18_129" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_18", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_18_129" } declare void @_out_of_gas() @@ -1241,444 +1195,408 @@ declare i8* @_salloc(i8*, i64) declare %Uint32 @_add_Uint32(%Uint32, %Uint32) -define void @_init_libs() !dbg !75 { +define void @_init_libs() !dbg !73 { entry: ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !77 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !75 { entry: - %"$expr_24" = alloca %Uint32, align 8 - %"$gasrem_693" = load i64, i64* @_gasrem, align 8 - %"$gascmp_694" = icmp ugt i64 1, %"$gasrem_693" - br i1 %"$gascmp_694", label %"$out_of_gas_695", label %"$have_gas_696" + %"$expr_16" = alloca %Uint32, align 8 + %"$gasrem_660" = load i64, i64* @_gasrem, align 8 + %"$gascmp_661" = icmp ugt i64 1, %"$gasrem_660" + br i1 %"$gascmp_661", label %"$out_of_gas_662", label %"$have_gas_663" -"$out_of_gas_695": ; preds = %entry +"$out_of_gas_662": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_696" + br label %"$have_gas_663" -"$have_gas_696": ; preds = %"$out_of_gas_695", %entry - %"$consume_697" = sub i64 %"$gasrem_693", 1 - store i64 %"$consume_697", i64* @_gasrem, align 8 +"$have_gas_663": ; preds = %"$out_of_gas_662", %entry + %"$consume_664" = sub i64 %"$gasrem_660", 1 + store i64 %"$consume_664", i64* @_gasrem, align 8 %c0 = alloca { i8*, i8* }*, align 8 - %"$gasrem_698" = load i64, i64* @_gasrem, align 8 - %"$gascmp_699" = icmp ugt i64 1, %"$gasrem_698" - br i1 %"$gascmp_699", label %"$out_of_gas_700", label %"$have_gas_701" - -"$out_of_gas_700": ; preds = %"$have_gas_696" - call void @_out_of_gas() - br label %"$have_gas_701" - -"$have_gas_701": ; preds = %"$out_of_gas_700", %"$have_gas_696" - %"$consume_702" = sub i64 %"$gasrem_698", 1 - store i64 %"$consume_702", i64* @_gasrem, align 8 - %"$dyndisp_table_709_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_709_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_709_salloc_load", i64 32) - %"$dyndisp_table_709_salloc" = bitcast i8* %"$dyndisp_table_709_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_709" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_709_salloc" to { i8*, i8* }* - %"$dyndisp_gep_710" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_709", i32 0 - %"$dyndisp_pcast_711" = bitcast { i8*, i8* }* %"$dyndisp_gep_710" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_25_env_131"*)* @"$fundef_25" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_711", align 8 - %"$dyndisp_gep_712" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_709", i32 1 - %"$dyndisp_pcast_713" = bitcast { i8*, i8* }* %"$dyndisp_gep_712" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_31_env_128"*)* @"$fundef_31" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_713", align 8 - store { i8*, i8* }* %"$dyndisp_table_709", { i8*, i8* }** %c0, align 8, !dbg !78 - %"$gasrem_714" = load i64, i64* @_gasrem, align 8 - %"$gascmp_715" = icmp ugt i64 1, %"$gasrem_714" - br i1 %"$gascmp_715", label %"$out_of_gas_716", label %"$have_gas_717" - -"$out_of_gas_716": ; preds = %"$have_gas_701" - call void @_out_of_gas() - br label %"$have_gas_717" - -"$have_gas_717": ; preds = %"$out_of_gas_716", %"$have_gas_701" - %"$consume_718" = sub i64 %"$gasrem_714", 1 - store i64 %"$consume_718", i64* @_gasrem, align 8 - %"$gasrem_719" = load i64, i64* @_gasrem, align 8 - %"$gascmp_720" = icmp ugt i64 1, %"$gasrem_719" - br i1 %"$gascmp_720", label %"$out_of_gas_721", label %"$have_gas_722" - -"$out_of_gas_721": ; preds = %"$have_gas_717" - call void @_out_of_gas() - br label %"$have_gas_722" - -"$have_gas_722": ; preds = %"$out_of_gas_721", %"$have_gas_717" - %"$consume_723" = sub i64 %"$gasrem_719", 1 - store i64 %"$consume_723", i64* @_gasrem, align 8 + %"$gasrem_665" = load i64, i64* @_gasrem, align 8 + %"$gascmp_666" = icmp ugt i64 1, %"$gasrem_665" + br i1 %"$gascmp_666", label %"$out_of_gas_667", label %"$have_gas_668" + +"$out_of_gas_667": ; preds = %"$have_gas_663" + call void @_out_of_gas() + br label %"$have_gas_668" + +"$have_gas_668": ; preds = %"$out_of_gas_667", %"$have_gas_663" + %"$consume_669" = sub i64 %"$gasrem_665", 1 + store i64 %"$consume_669", i64* @_gasrem, align 8 + %"$dyndisp_table_676_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_676_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_676_salloc_load", i64 32) + %"$dyndisp_table_676_salloc" = bitcast i8* %"$dyndisp_table_676_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_676" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_676_salloc" to { i8*, i8* }* + %"$dyndisp_gep_677" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_676", i32 0 + %"$dyndisp_pcast_678" = bitcast { i8*, i8* }* %"$dyndisp_gep_677" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_17_env_120"*)* @"$fundef_17" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_678", align 8 + %"$dyndisp_gep_679" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_676", i32 1 + %"$dyndisp_pcast_680" = bitcast { i8*, i8* }* %"$dyndisp_gep_679" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_23_env_117"*)* @"$fundef_23" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_680", align 8 + store { i8*, i8* }* %"$dyndisp_table_676", { i8*, i8* }** %c0, align 8, !dbg !76 + %"$gasrem_681" = load i64, i64* @_gasrem, align 8 + %"$gascmp_682" = icmp ugt i64 1, %"$gasrem_681" + br i1 %"$gascmp_682", label %"$out_of_gas_683", label %"$have_gas_684" + +"$out_of_gas_683": ; preds = %"$have_gas_668" + call void @_out_of_gas() + br label %"$have_gas_684" + +"$have_gas_684": ; preds = %"$out_of_gas_683", %"$have_gas_668" + %"$consume_685" = sub i64 %"$gasrem_681", 1 + store i64 %"$consume_685", i64* @_gasrem, align 8 + %"$gasrem_686" = load i64, i64* @_gasrem, align 8 + %"$gascmp_687" = icmp ugt i64 1, %"$gasrem_686" + br i1 %"$gascmp_687", label %"$out_of_gas_688", label %"$have_gas_689" + +"$out_of_gas_688": ; preds = %"$have_gas_684" + call void @_out_of_gas() + br label %"$have_gas_689" + +"$have_gas_689": ; preds = %"$out_of_gas_688", %"$have_gas_684" + %"$consume_690" = sub i64 %"$gasrem_686", 1 + store i64 %"$consume_690", i64* @_gasrem, align 8 %c2 = alloca { i8*, i8* }*, align 8 - %"$gasrem_724" = load i64, i64* @_gasrem, align 8 - %"$gascmp_725" = icmp ugt i64 1, %"$gasrem_724" - br i1 %"$gascmp_725", label %"$out_of_gas_726", label %"$have_gas_727" - -"$out_of_gas_726": ; preds = %"$have_gas_722" - call void @_out_of_gas() - br label %"$have_gas_727" - -"$have_gas_727": ; preds = %"$out_of_gas_726", %"$have_gas_722" - %"$consume_728" = sub i64 %"$gasrem_724", 1 - store i64 %"$consume_728", i64* @_gasrem, align 8 - %"$dyndisp_table_735_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_735_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_735_salloc_load", i64 32) - %"$dyndisp_table_735_salloc" = bitcast i8* %"$dyndisp_table_735_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_735" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_735_salloc" to { i8*, i8* }* - %"$dyndisp_gep_736" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_735", i32 0 - %"$dyndisp_pcast_737" = bitcast { i8*, i8* }* %"$dyndisp_gep_736" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_37_env_125"*)* @"$fundef_37" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_737", align 8 - %"$dyndisp_gep_738" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_735", i32 1 - %"$dyndisp_pcast_739" = bitcast { i8*, i8* }* %"$dyndisp_gep_738" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_43_env_122"*)* @"$fundef_43" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_739", align 8 - store { i8*, i8* }* %"$dyndisp_table_735", { i8*, i8* }** %c2, align 8, !dbg !79 - %"$gasrem_740" = load i64, i64* @_gasrem, align 8 - %"$gascmp_741" = icmp ugt i64 1, %"$gasrem_740" - br i1 %"$gascmp_741", label %"$out_of_gas_742", label %"$have_gas_743" - -"$out_of_gas_742": ; preds = %"$have_gas_727" - call void @_out_of_gas() - br label %"$have_gas_743" - -"$have_gas_743": ; preds = %"$out_of_gas_742", %"$have_gas_727" - %"$consume_744" = sub i64 %"$gasrem_740", 1 - store i64 %"$consume_744", i64* @_gasrem, align 8 + %"$gasrem_691" = load i64, i64* @_gasrem, align 8 + %"$gascmp_692" = icmp ugt i64 1, %"$gasrem_691" + br i1 %"$gascmp_692", label %"$out_of_gas_693", label %"$have_gas_694" + +"$out_of_gas_693": ; preds = %"$have_gas_689" + call void @_out_of_gas() + br label %"$have_gas_694" + +"$have_gas_694": ; preds = %"$out_of_gas_693", %"$have_gas_689" + %"$consume_695" = sub i64 %"$gasrem_691", 1 + store i64 %"$consume_695", i64* @_gasrem, align 8 + %"$dyndisp_table_702_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_702_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_702_salloc_load", i64 32) + %"$dyndisp_table_702_salloc" = bitcast i8* %"$dyndisp_table_702_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_702" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_702_salloc" to { i8*, i8* }* + %"$dyndisp_gep_703" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_702", i32 0 + %"$dyndisp_pcast_704" = bitcast { i8*, i8* }* %"$dyndisp_gep_703" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_29_env_114"*)* @"$fundef_29" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_704", align 8 + %"$dyndisp_gep_705" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_702", i32 1 + %"$dyndisp_pcast_706" = bitcast { i8*, i8* }* %"$dyndisp_gep_705" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_35_env_111"*)* @"$fundef_35" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_706", align 8 + store { i8*, i8* }* %"$dyndisp_table_702", { i8*, i8* }** %c2, align 8, !dbg !77 + %"$gasrem_707" = load i64, i64* @_gasrem, align 8 + %"$gascmp_708" = icmp ugt i64 1, %"$gasrem_707" + br i1 %"$gascmp_708", label %"$out_of_gas_709", label %"$have_gas_710" + +"$out_of_gas_709": ; preds = %"$have_gas_694" + call void @_out_of_gas() + br label %"$have_gas_710" + +"$have_gas_710": ; preds = %"$out_of_gas_709", %"$have_gas_694" + %"$consume_711" = sub i64 %"$gasrem_707", 1 + store i64 %"$consume_711", i64* @_gasrem, align 8 %cadd = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_745" = load i64, i64* @_gasrem, align 8 - %"$gascmp_746" = icmp ugt i64 1, %"$gasrem_745" - br i1 %"$gascmp_746", label %"$out_of_gas_747", label %"$have_gas_748" - -"$out_of_gas_747": ; preds = %"$have_gas_743" - call void @_out_of_gas() - br label %"$have_gas_748" - -"$have_gas_748": ; preds = %"$out_of_gas_747", %"$have_gas_743" - %"$consume_749" = sub i64 %"$gasrem_745", 1 - store i64 %"$consume_749", i64* @_gasrem, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_49_env_119"*, { i8*, i8* }*)* @"$fundef_49" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8, !dbg !80 - %"$gasrem_753" = load i64, i64* @_gasrem, align 8 - %"$gascmp_754" = icmp ugt i64 1, %"$gasrem_753" - br i1 %"$gascmp_754", label %"$out_of_gas_755", label %"$have_gas_756" - -"$out_of_gas_755": ; preds = %"$have_gas_748" - call void @_out_of_gas() - br label %"$have_gas_756" - -"$have_gas_756": ; preds = %"$out_of_gas_755", %"$have_gas_748" - %"$consume_757" = sub i64 %"$gasrem_753", 1 - store i64 %"$consume_757", i64* @_gasrem, align 8 - %cmul = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_758" = load i64, i64* @_gasrem, align 8 - %"$gascmp_759" = icmp ugt i64 1, %"$gasrem_758" - br i1 %"$gascmp_759", label %"$out_of_gas_760", label %"$have_gas_761" - -"$out_of_gas_760": ; preds = %"$have_gas_756" - call void @_out_of_gas() - br label %"$have_gas_761" - -"$have_gas_761": ; preds = %"$out_of_gas_760", %"$have_gas_756" - %"$consume_762" = sub i64 %"$gasrem_758", 1 - store i64 %"$consume_762", i64* @_gasrem, align 8 - %"$$fundef_65_envp_763_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_65_envp_763_salloc" = call i8* @_salloc(i8* %"$$fundef_65_envp_763_load", i64 24) - %"$$fundef_65_envp_763" = bitcast i8* %"$$fundef_65_envp_763_salloc" to %"$$fundef_65_env_111"* - %"$$fundef_65_env_voidp_765" = bitcast %"$$fundef_65_env_111"* %"$$fundef_65_envp_763" to i8* - %"$$fundef_65_cloval_766" = insertvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_65_env_111"*, { i8*, i8* }*)* @"$fundef_65" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_65_env_voidp_765", 1 - %"$$fundef_65_env_c0_767" = getelementptr inbounds %"$$fundef_65_env_111", %"$$fundef_65_env_111"* %"$$fundef_65_envp_763", i32 0, i32 0 - %"$c0_768" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 - store { i8*, i8* }* %"$c0_768", { i8*, i8* }** %"$$fundef_65_env_c0_767", align 8 - %"$$fundef_65_env_cadd_769" = getelementptr inbounds %"$$fundef_65_env_111", %"$$fundef_65_env_111"* %"$$fundef_65_envp_763", i32 0, i32 1 - %"$cadd_770" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_770", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_65_env_cadd_769", align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_65_cloval_766", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8, !dbg !81 - %"$gasrem_771" = load i64, i64* @_gasrem, align 8 - %"$gascmp_772" = icmp ugt i64 1, %"$gasrem_771" - br i1 %"$gascmp_772", label %"$out_of_gas_773", label %"$have_gas_774" - -"$out_of_gas_773": ; preds = %"$have_gas_761" - call void @_out_of_gas() - br label %"$have_gas_774" - -"$have_gas_774": ; preds = %"$out_of_gas_773", %"$have_gas_761" - %"$consume_775" = sub i64 %"$gasrem_771", 1 - store i64 %"$consume_775", i64* @_gasrem, align 8 + %"$gasrem_712" = load i64, i64* @_gasrem, align 8 + %"$gascmp_713" = icmp ugt i64 1, %"$gasrem_712" + br i1 %"$gascmp_713", label %"$out_of_gas_714", label %"$have_gas_715" + +"$out_of_gas_714": ; preds = %"$have_gas_710" + call void @_out_of_gas() + br label %"$have_gas_715" + +"$have_gas_715": ; preds = %"$out_of_gas_714", %"$have_gas_710" + %"$consume_716" = sub i64 %"$gasrem_712", 1 + store i64 %"$consume_716", i64* @_gasrem, align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_41_env_108"*, { i8*, i8* }*)* @"$fundef_41" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8, !dbg !78 + %"$gasrem_720" = load i64, i64* @_gasrem, align 8 + %"$gascmp_721" = icmp ugt i64 1, %"$gasrem_720" + br i1 %"$gascmp_721", label %"$out_of_gas_722", label %"$have_gas_723" + +"$out_of_gas_722": ; preds = %"$have_gas_715" + call void @_out_of_gas() + br label %"$have_gas_723" + +"$have_gas_723": ; preds = %"$out_of_gas_722", %"$have_gas_715" + %"$consume_724" = sub i64 %"$gasrem_720", 1 + store i64 %"$consume_724", i64* @_gasrem, align 8 + %cmul = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_725" = load i64, i64* @_gasrem, align 8 + %"$gascmp_726" = icmp ugt i64 2, %"$gasrem_725" + br i1 %"$gascmp_726", label %"$out_of_gas_727", label %"$have_gas_728" + +"$out_of_gas_727": ; preds = %"$have_gas_723" + call void @_out_of_gas() + br label %"$have_gas_728" + +"$have_gas_728": ; preds = %"$out_of_gas_727", %"$have_gas_723" + %"$consume_729" = sub i64 %"$gasrem_725", 2 + store i64 %"$consume_729", i64* @_gasrem, align 8 + %"$$fundef_57_envp_730_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_57_envp_730_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_730_load", i64 24) + %"$$fundef_57_envp_730" = bitcast i8* %"$$fundef_57_envp_730_salloc" to %"$$fundef_57_env_100"* + %"$$fundef_57_env_voidp_732" = bitcast %"$$fundef_57_env_100"* %"$$fundef_57_envp_730" to i8* + %"$$fundef_57_cloval_733" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_57_env_100"*, { i8*, i8* }*, { i8*, i8* }*)* @"$fundef_57" to { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_57_env_voidp_732", 1 + %"$$fundef_57_env_c0_734" = getelementptr inbounds %"$$fundef_57_env_100", %"$$fundef_57_env_100"* %"$$fundef_57_envp_730", i32 0, i32 0 + %"$c0_735" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 + store { i8*, i8* }* %"$c0_735", { i8*, i8* }** %"$$fundef_57_env_c0_734", align 8 + %"$$fundef_57_env_cadd_736" = getelementptr inbounds %"$$fundef_57_env_100", %"$$fundef_57_env_100"* %"$$fundef_57_envp_730", i32 0, i32 1 + %"$cadd_737" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_737", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_57_env_cadd_736", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$$fundef_57_cloval_733", { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %cmul, align 8, !dbg !79 + %"$gasrem_738" = load i64, i64* @_gasrem, align 8 + %"$gascmp_739" = icmp ugt i64 1, %"$gasrem_738" + br i1 %"$gascmp_739", label %"$out_of_gas_740", label %"$have_gas_741" + +"$out_of_gas_740": ; preds = %"$have_gas_728" + call void @_out_of_gas() + br label %"$have_gas_741" + +"$have_gas_741": ; preds = %"$out_of_gas_740", %"$have_gas_728" + %"$consume_742" = sub i64 %"$gasrem_738", 1 + store i64 %"$consume_742", i64* @_gasrem, align 8 %church_nat_to_uint32 = alloca { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_776" = load i64, i64* @_gasrem, align 8 - %"$gascmp_777" = icmp ugt i64 1, %"$gasrem_776" - br i1 %"$gascmp_777", label %"$out_of_gas_778", label %"$have_gas_779" + %"$gasrem_743" = load i64, i64* @_gasrem, align 8 + %"$gascmp_744" = icmp ugt i64 1, %"$gasrem_743" + br i1 %"$gascmp_744", label %"$out_of_gas_745", label %"$have_gas_746" -"$out_of_gas_778": ; preds = %"$have_gas_774" +"$out_of_gas_745": ; preds = %"$have_gas_741" call void @_out_of_gas() - br label %"$have_gas_779" + br label %"$have_gas_746" -"$have_gas_779": ; preds = %"$out_of_gas_778", %"$have_gas_774" - %"$consume_780" = sub i64 %"$gasrem_776", 1 - store i64 %"$consume_780", i64* @_gasrem, align 8 - store { %Uint32 (i8*, { i8*, i8* }*)*, i8* } { %Uint32 (i8*, { i8*, i8* }*)* bitcast (%Uint32 (%"$$fundef_69_env_109"*, { i8*, i8* }*)* @"$fundef_69" to %Uint32 (i8*, { i8*, i8* }*)*), i8* null }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8, !dbg !82 - %"$gasrem_784" = load i64, i64* @_gasrem, align 8 - %"$gascmp_785" = icmp ugt i64 1, %"$gasrem_784" - br i1 %"$gascmp_785", label %"$out_of_gas_786", label %"$have_gas_787" +"$have_gas_746": ; preds = %"$out_of_gas_745", %"$have_gas_741" + %"$consume_747" = sub i64 %"$gasrem_743", 1 + store i64 %"$consume_747", i64* @_gasrem, align 8 + store { %Uint32 (i8*, { i8*, i8* }*)*, i8* } { %Uint32 (i8*, { i8*, i8* }*)* bitcast (%Uint32 (%"$$fundef_59_env_99"*, { i8*, i8* }*)* @"$fundef_59" to %Uint32 (i8*, { i8*, i8* }*)*), i8* null }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8, !dbg !80 + %"$gasrem_751" = load i64, i64* @_gasrem, align 8 + %"$gascmp_752" = icmp ugt i64 1, %"$gasrem_751" + br i1 %"$gascmp_752", label %"$out_of_gas_753", label %"$have_gas_754" -"$out_of_gas_786": ; preds = %"$have_gas_779" +"$out_of_gas_753": ; preds = %"$have_gas_746" call void @_out_of_gas() - br label %"$have_gas_787" + br label %"$have_gas_754" -"$have_gas_787": ; preds = %"$out_of_gas_786", %"$have_gas_779" - %"$consume_788" = sub i64 %"$gasrem_784", 1 - store i64 %"$consume_788", i64* @_gasrem, align 8 +"$have_gas_754": ; preds = %"$out_of_gas_753", %"$have_gas_746" + %"$consume_755" = sub i64 %"$gasrem_751", 1 + store i64 %"$consume_755", i64* @_gasrem, align 8 %c4 = alloca { i8*, i8* }*, align 8 - %"$gasrem_789" = load i64, i64* @_gasrem, align 8 - %"$gascmp_790" = icmp ugt i64 1, %"$gasrem_789" - br i1 %"$gascmp_790", label %"$out_of_gas_791", label %"$have_gas_792" - -"$out_of_gas_791": ; preds = %"$have_gas_787" - call void @_out_of_gas() - br label %"$have_gas_792" - -"$have_gas_792": ; preds = %"$out_of_gas_791", %"$have_gas_787" - %"$consume_793" = sub i64 %"$gasrem_789", 1 - store i64 %"$consume_793", i64* @_gasrem, align 8 - %"$cmul_11" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_794" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8 - %"$cmul_fptr_795" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_794", 0 - %"$cmul_envptr_796" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_794", 1 - %"$c2_797" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 - %"$cmul_call_798" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_795"(i8* %"$cmul_envptr_796", { i8*, i8* }* %"$c2_797"), !dbg !83 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_798", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_11", align 8, !dbg !83 - %"$cmul_12" = alloca { i8*, i8* }*, align 8 - %"$$cmul_11_799" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_11", align 8 - %"$$cmul_11_fptr_800" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_11_799", 0 - %"$$cmul_11_envptr_801" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_11_799", 1 - %"$c2_802" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 - %"$$cmul_11_call_803" = call { i8*, i8* }* %"$$cmul_11_fptr_800"(i8* %"$$cmul_11_envptr_801", { i8*, i8* }* %"$c2_802"), !dbg !83 - store { i8*, i8* }* %"$$cmul_11_call_803", { i8*, i8* }** %"$cmul_12", align 8, !dbg !83 - %"$$cmul_12_804" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_12", align 8 - store { i8*, i8* }* %"$$cmul_12_804", { i8*, i8* }** %c4, align 8, !dbg !83 - %"$gasrem_805" = load i64, i64* @_gasrem, align 8 - %"$gascmp_806" = icmp ugt i64 1, %"$gasrem_805" - br i1 %"$gascmp_806", label %"$out_of_gas_807", label %"$have_gas_808" - -"$out_of_gas_807": ; preds = %"$have_gas_792" - call void @_out_of_gas() - br label %"$have_gas_808" - -"$have_gas_808": ; preds = %"$out_of_gas_807", %"$have_gas_792" - %"$consume_809" = sub i64 %"$gasrem_805", 1 - store i64 %"$consume_809", i64* @_gasrem, align 8 + %"$gasrem_756" = load i64, i64* @_gasrem, align 8 + %"$gascmp_757" = icmp ugt i64 1, %"$gasrem_756" + br i1 %"$gascmp_757", label %"$out_of_gas_758", label %"$have_gas_759" + +"$out_of_gas_758": ; preds = %"$have_gas_754" + call void @_out_of_gas() + br label %"$have_gas_759" + +"$have_gas_759": ; preds = %"$out_of_gas_758", %"$have_gas_754" + %"$consume_760" = sub i64 %"$gasrem_756", 1 + store i64 %"$consume_760", i64* @_gasrem, align 8 + %"$cmul_761" = load { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %cmul, align 8 + %"$cmul_fptr_762" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_761", 0 + %"$cmul_envptr_763" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_761", 1 + %"$c2_764" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 + %"$c2_765" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 + %"$cmul_call_766" = call { i8*, i8* }* %"$cmul_fptr_762"(i8* %"$cmul_envptr_763", { i8*, i8* }* %"$c2_764", { i8*, i8* }* %"$c2_765"), !dbg !81 + store { i8*, i8* }* %"$cmul_call_766", { i8*, i8* }** %c4, align 8, !dbg !81 + %"$gasrem_767" = load i64, i64* @_gasrem, align 8 + %"$gascmp_768" = icmp ugt i64 1, %"$gasrem_767" + br i1 %"$gascmp_768", label %"$out_of_gas_769", label %"$have_gas_770" + +"$out_of_gas_769": ; preds = %"$have_gas_759" + call void @_out_of_gas() + br label %"$have_gas_770" + +"$have_gas_770": ; preds = %"$out_of_gas_769", %"$have_gas_759" + %"$consume_771" = sub i64 %"$gasrem_767", 1 + store i64 %"$consume_771", i64* @_gasrem, align 8 %c16 = alloca { i8*, i8* }*, align 8 - %"$gasrem_810" = load i64, i64* @_gasrem, align 8 - %"$gascmp_811" = icmp ugt i64 1, %"$gasrem_810" - br i1 %"$gascmp_811", label %"$out_of_gas_812", label %"$have_gas_813" - -"$out_of_gas_812": ; preds = %"$have_gas_808" - call void @_out_of_gas() - br label %"$have_gas_813" - -"$have_gas_813": ; preds = %"$out_of_gas_812", %"$have_gas_808" - %"$consume_814" = sub i64 %"$gasrem_810", 1 - store i64 %"$consume_814", i64* @_gasrem, align 8 - %"$cmul_13" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_815" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8 - %"$cmul_fptr_816" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_815", 0 - %"$cmul_envptr_817" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_815", 1 - %"$c4_818" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 - %"$cmul_call_819" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_816"(i8* %"$cmul_envptr_817", { i8*, i8* }* %"$c4_818"), !dbg !84 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_819", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_13", align 8, !dbg !84 - %"$cmul_14" = alloca { i8*, i8* }*, align 8 - %"$$cmul_13_820" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_13", align 8 - %"$$cmul_13_fptr_821" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_13_820", 0 - %"$$cmul_13_envptr_822" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_13_820", 1 - %"$c4_823" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 - %"$$cmul_13_call_824" = call { i8*, i8* }* %"$$cmul_13_fptr_821"(i8* %"$$cmul_13_envptr_822", { i8*, i8* }* %"$c4_823"), !dbg !84 - store { i8*, i8* }* %"$$cmul_13_call_824", { i8*, i8* }** %"$cmul_14", align 8, !dbg !84 - %"$$cmul_14_825" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_14", align 8 - store { i8*, i8* }* %"$$cmul_14_825", { i8*, i8* }** %c16, align 8, !dbg !84 - %"$gasrem_826" = load i64, i64* @_gasrem, align 8 - %"$gascmp_827" = icmp ugt i64 1, %"$gasrem_826" - br i1 %"$gascmp_827", label %"$out_of_gas_828", label %"$have_gas_829" - -"$out_of_gas_828": ; preds = %"$have_gas_813" - call void @_out_of_gas() - br label %"$have_gas_829" - -"$have_gas_829": ; preds = %"$out_of_gas_828", %"$have_gas_813" - %"$consume_830" = sub i64 %"$gasrem_826", 1 - store i64 %"$consume_830", i64* @_gasrem, align 8 + %"$gasrem_772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_773" = icmp ugt i64 1, %"$gasrem_772" + br i1 %"$gascmp_773", label %"$out_of_gas_774", label %"$have_gas_775" + +"$out_of_gas_774": ; preds = %"$have_gas_770" + call void @_out_of_gas() + br label %"$have_gas_775" + +"$have_gas_775": ; preds = %"$out_of_gas_774", %"$have_gas_770" + %"$consume_776" = sub i64 %"$gasrem_772", 1 + store i64 %"$consume_776", i64* @_gasrem, align 8 + %"$cmul_777" = load { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %cmul, align 8 + %"$cmul_fptr_778" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_777", 0 + %"$cmul_envptr_779" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_777", 1 + %"$c4_780" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 + %"$c4_781" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 + %"$cmul_call_782" = call { i8*, i8* }* %"$cmul_fptr_778"(i8* %"$cmul_envptr_779", { i8*, i8* }* %"$c4_780", { i8*, i8* }* %"$c4_781"), !dbg !82 + store { i8*, i8* }* %"$cmul_call_782", { i8*, i8* }** %c16, align 8, !dbg !82 + %"$gasrem_783" = load i64, i64* @_gasrem, align 8 + %"$gascmp_784" = icmp ugt i64 1, %"$gasrem_783" + br i1 %"$gascmp_784", label %"$out_of_gas_785", label %"$have_gas_786" + +"$out_of_gas_785": ; preds = %"$have_gas_775" + call void @_out_of_gas() + br label %"$have_gas_786" + +"$have_gas_786": ; preds = %"$out_of_gas_785", %"$have_gas_775" + %"$consume_787" = sub i64 %"$gasrem_783", 1 + store i64 %"$consume_787", i64* @_gasrem, align 8 %c32 = alloca { i8*, i8* }*, align 8 - %"$gasrem_831" = load i64, i64* @_gasrem, align 8 - %"$gascmp_832" = icmp ugt i64 1, %"$gasrem_831" - br i1 %"$gascmp_832", label %"$out_of_gas_833", label %"$have_gas_834" - -"$out_of_gas_833": ; preds = %"$have_gas_829" - call void @_out_of_gas() - br label %"$have_gas_834" - -"$have_gas_834": ; preds = %"$out_of_gas_833", %"$have_gas_829" - %"$consume_835" = sub i64 %"$gasrem_831", 1 - store i64 %"$consume_835", i64* @_gasrem, align 8 - %"$cadd_15" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cadd_836" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$cadd_fptr_837" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_836", 0 - %"$cadd_envptr_838" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_836", 1 - %"$c16_839" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 - %"$cadd_call_840" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_837"(i8* %"$cadd_envptr_838", { i8*, i8* }* %"$c16_839"), !dbg !85 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_840", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_15", align 8, !dbg !85 - %"$cadd_16" = alloca { i8*, i8* }*, align 8 - %"$$cadd_15_841" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_15", align 8 - %"$$cadd_15_fptr_842" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_15_841", 0 - %"$$cadd_15_envptr_843" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_15_841", 1 - %"$c16_844" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 - %"$$cadd_15_call_845" = call { i8*, i8* }* %"$$cadd_15_fptr_842"(i8* %"$$cadd_15_envptr_843", { i8*, i8* }* %"$c16_844"), !dbg !85 - store { i8*, i8* }* %"$$cadd_15_call_845", { i8*, i8* }** %"$cadd_16", align 8, !dbg !85 - %"$$cadd_16_846" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_16", align 8 - store { i8*, i8* }* %"$$cadd_16_846", { i8*, i8* }** %c32, align 8, !dbg !85 - %"$gasrem_847" = load i64, i64* @_gasrem, align 8 - %"$gascmp_848" = icmp ugt i64 1, %"$gasrem_847" - br i1 %"$gascmp_848", label %"$out_of_gas_849", label %"$have_gas_850" - -"$out_of_gas_849": ; preds = %"$have_gas_834" - call void @_out_of_gas() - br label %"$have_gas_850" - -"$have_gas_850": ; preds = %"$out_of_gas_849", %"$have_gas_834" - %"$consume_851" = sub i64 %"$gasrem_847", 1 - store i64 %"$consume_851", i64* @_gasrem, align 8 + %"$gasrem_788" = load i64, i64* @_gasrem, align 8 + %"$gascmp_789" = icmp ugt i64 1, %"$gasrem_788" + br i1 %"$gascmp_789", label %"$out_of_gas_790", label %"$have_gas_791" + +"$out_of_gas_790": ; preds = %"$have_gas_786" + call void @_out_of_gas() + br label %"$have_gas_791" + +"$have_gas_791": ; preds = %"$out_of_gas_790", %"$have_gas_786" + %"$consume_792" = sub i64 %"$gasrem_788", 1 + store i64 %"$consume_792", i64* @_gasrem, align 8 + %"$cadd_11" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$cadd_793" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + %"$cadd_fptr_794" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_793", 0 + %"$cadd_envptr_795" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_793", 1 + %"$c16_796" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 + %"$cadd_call_797" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_794"(i8* %"$cadd_envptr_795", { i8*, i8* }* %"$c16_796"), !dbg !83 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_797", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_11", align 8, !dbg !83 + %"$cadd_12" = alloca { i8*, i8* }*, align 8 + %"$$cadd_11_798" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_11", align 8 + %"$$cadd_11_fptr_799" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_11_798", 0 + %"$$cadd_11_envptr_800" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_11_798", 1 + %"$c16_801" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 + %"$$cadd_11_call_802" = call { i8*, i8* }* %"$$cadd_11_fptr_799"(i8* %"$$cadd_11_envptr_800", { i8*, i8* }* %"$c16_801"), !dbg !83 + store { i8*, i8* }* %"$$cadd_11_call_802", { i8*, i8* }** %"$cadd_12", align 8, !dbg !83 + %"$$cadd_12_803" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_12", align 8 + store { i8*, i8* }* %"$$cadd_12_803", { i8*, i8* }** %c32, align 8, !dbg !83 + %"$gasrem_804" = load i64, i64* @_gasrem, align 8 + %"$gascmp_805" = icmp ugt i64 1, %"$gasrem_804" + br i1 %"$gascmp_805", label %"$out_of_gas_806", label %"$have_gas_807" + +"$out_of_gas_806": ; preds = %"$have_gas_791" + call void @_out_of_gas() + br label %"$have_gas_807" + +"$have_gas_807": ; preds = %"$out_of_gas_806", %"$have_gas_791" + %"$consume_808" = sub i64 %"$gasrem_804", 1 + store i64 %"$consume_808", i64* @_gasrem, align 8 %c128 = alloca { i8*, i8* }*, align 8 - %"$gasrem_852" = load i64, i64* @_gasrem, align 8 - %"$gascmp_853" = icmp ugt i64 1, %"$gasrem_852" - br i1 %"$gascmp_853", label %"$out_of_gas_854", label %"$have_gas_855" - -"$out_of_gas_854": ; preds = %"$have_gas_850" - call void @_out_of_gas() - br label %"$have_gas_855" - -"$have_gas_855": ; preds = %"$out_of_gas_854", %"$have_gas_850" - %"$consume_856" = sub i64 %"$gasrem_852", 1 - store i64 %"$consume_856", i64* @_gasrem, align 8 - %"$cmul_17" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_857" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8 - %"$cmul_fptr_858" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_857", 0 - %"$cmul_envptr_859" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_857", 1 - %"$c4_860" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 - %"$cmul_call_861" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_858"(i8* %"$cmul_envptr_859", { i8*, i8* }* %"$c4_860"), !dbg !86 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_861", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_17", align 8, !dbg !86 - %"$cmul_18" = alloca { i8*, i8* }*, align 8 - %"$$cmul_17_862" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_17", align 8 - %"$$cmul_17_fptr_863" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_17_862", 0 - %"$$cmul_17_envptr_864" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_17_862", 1 - %"$c32_865" = load { i8*, i8* }*, { i8*, i8* }** %c32, align 8 - %"$$cmul_17_call_866" = call { i8*, i8* }* %"$$cmul_17_fptr_863"(i8* %"$$cmul_17_envptr_864", { i8*, i8* }* %"$c32_865"), !dbg !86 - store { i8*, i8* }* %"$$cmul_17_call_866", { i8*, i8* }** %"$cmul_18", align 8, !dbg !86 - %"$$cmul_18_867" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_18", align 8 - store { i8*, i8* }* %"$$cmul_18_867", { i8*, i8* }** %c128, align 8, !dbg !86 - %"$gasrem_868" = load i64, i64* @_gasrem, align 8 - %"$gascmp_869" = icmp ugt i64 1, %"$gasrem_868" - br i1 %"$gascmp_869", label %"$out_of_gas_870", label %"$have_gas_871" - -"$out_of_gas_870": ; preds = %"$have_gas_855" - call void @_out_of_gas() - br label %"$have_gas_871" - -"$have_gas_871": ; preds = %"$out_of_gas_870", %"$have_gas_855" - %"$consume_872" = sub i64 %"$gasrem_868", 1 - store i64 %"$consume_872", i64* @_gasrem, align 8 + %"$gasrem_809" = load i64, i64* @_gasrem, align 8 + %"$gascmp_810" = icmp ugt i64 1, %"$gasrem_809" + br i1 %"$gascmp_810", label %"$out_of_gas_811", label %"$have_gas_812" + +"$out_of_gas_811": ; preds = %"$have_gas_807" + call void @_out_of_gas() + br label %"$have_gas_812" + +"$have_gas_812": ; preds = %"$out_of_gas_811", %"$have_gas_807" + %"$consume_813" = sub i64 %"$gasrem_809", 1 + store i64 %"$consume_813", i64* @_gasrem, align 8 + %"$cmul_814" = load { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %cmul, align 8 + %"$cmul_fptr_815" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_814", 0 + %"$cmul_envptr_816" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_814", 1 + %"$c4_817" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 + %"$c32_818" = load { i8*, i8* }*, { i8*, i8* }** %c32, align 8 + %"$cmul_call_819" = call { i8*, i8* }* %"$cmul_fptr_815"(i8* %"$cmul_envptr_816", { i8*, i8* }* %"$c4_817", { i8*, i8* }* %"$c32_818"), !dbg !84 + store { i8*, i8* }* %"$cmul_call_819", { i8*, i8* }** %c128, align 8, !dbg !84 + %"$gasrem_820" = load i64, i64* @_gasrem, align 8 + %"$gascmp_821" = icmp ugt i64 1, %"$gasrem_820" + br i1 %"$gascmp_821", label %"$out_of_gas_822", label %"$have_gas_823" + +"$out_of_gas_822": ; preds = %"$have_gas_812" + call void @_out_of_gas() + br label %"$have_gas_823" + +"$have_gas_823": ; preds = %"$out_of_gas_822", %"$have_gas_812" + %"$consume_824" = sub i64 %"$gasrem_820", 1 + store i64 %"$consume_824", i64* @_gasrem, align 8 %c256 = alloca { i8*, i8* }*, align 8 - %"$gasrem_873" = load i64, i64* @_gasrem, align 8 - %"$gascmp_874" = icmp ugt i64 1, %"$gasrem_873" - br i1 %"$gascmp_874", label %"$out_of_gas_875", label %"$have_gas_876" - -"$out_of_gas_875": ; preds = %"$have_gas_871" - call void @_out_of_gas() - br label %"$have_gas_876" - -"$have_gas_876": ; preds = %"$out_of_gas_875", %"$have_gas_871" - %"$consume_877" = sub i64 %"$gasrem_873", 1 - store i64 %"$consume_877", i64* @_gasrem, align 8 - %"$cadd_19" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cadd_878" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$cadd_fptr_879" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_878", 0 - %"$cadd_envptr_880" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_878", 1 - %"$c128_881" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 - %"$cadd_call_882" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_879"(i8* %"$cadd_envptr_880", { i8*, i8* }* %"$c128_881"), !dbg !87 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_882", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_19", align 8, !dbg !87 - %"$cadd_20" = alloca { i8*, i8* }*, align 8 - %"$$cadd_19_883" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_19", align 8 - %"$$cadd_19_fptr_884" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_19_883", 0 - %"$$cadd_19_envptr_885" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_19_883", 1 - %"$c128_886" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 - %"$$cadd_19_call_887" = call { i8*, i8* }* %"$$cadd_19_fptr_884"(i8* %"$$cadd_19_envptr_885", { i8*, i8* }* %"$c128_886"), !dbg !87 - store { i8*, i8* }* %"$$cadd_19_call_887", { i8*, i8* }** %"$cadd_20", align 8, !dbg !87 - %"$$cadd_20_888" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_20", align 8 - store { i8*, i8* }* %"$$cadd_20_888", { i8*, i8* }** %c256, align 8, !dbg !87 - %"$gasrem_889" = load i64, i64* @_gasrem, align 8 - %"$gascmp_890" = icmp ugt i64 1, %"$gasrem_889" - br i1 %"$gascmp_890", label %"$out_of_gas_891", label %"$have_gas_892" - -"$out_of_gas_891": ; preds = %"$have_gas_876" - call void @_out_of_gas() - br label %"$have_gas_892" - -"$have_gas_892": ; preds = %"$out_of_gas_891", %"$have_gas_876" - %"$consume_893" = sub i64 %"$gasrem_889", 1 - store i64 %"$consume_893", i64* @_gasrem, align 8 + %"$gasrem_825" = load i64, i64* @_gasrem, align 8 + %"$gascmp_826" = icmp ugt i64 1, %"$gasrem_825" + br i1 %"$gascmp_826", label %"$out_of_gas_827", label %"$have_gas_828" + +"$out_of_gas_827": ; preds = %"$have_gas_823" + call void @_out_of_gas() + br label %"$have_gas_828" + +"$have_gas_828": ; preds = %"$out_of_gas_827", %"$have_gas_823" + %"$consume_829" = sub i64 %"$gasrem_825", 1 + store i64 %"$consume_829", i64* @_gasrem, align 8 + %"$cadd_13" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$cadd_830" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + %"$cadd_fptr_831" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_830", 0 + %"$cadd_envptr_832" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_830", 1 + %"$c128_833" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 + %"$cadd_call_834" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_831"(i8* %"$cadd_envptr_832", { i8*, i8* }* %"$c128_833"), !dbg !85 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_834", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_13", align 8, !dbg !85 + %"$cadd_14" = alloca { i8*, i8* }*, align 8 + %"$$cadd_13_835" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_13", align 8 + %"$$cadd_13_fptr_836" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_13_835", 0 + %"$$cadd_13_envptr_837" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_13_835", 1 + %"$c128_838" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 + %"$$cadd_13_call_839" = call { i8*, i8* }* %"$$cadd_13_fptr_836"(i8* %"$$cadd_13_envptr_837", { i8*, i8* }* %"$c128_838"), !dbg !85 + store { i8*, i8* }* %"$$cadd_13_call_839", { i8*, i8* }** %"$cadd_14", align 8, !dbg !85 + %"$$cadd_14_840" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_14", align 8 + store { i8*, i8* }* %"$$cadd_14_840", { i8*, i8* }** %c256, align 8, !dbg !85 + %"$gasrem_841" = load i64, i64* @_gasrem, align 8 + %"$gascmp_842" = icmp ugt i64 1, %"$gasrem_841" + br i1 %"$gascmp_842", label %"$out_of_gas_843", label %"$have_gas_844" + +"$out_of_gas_843": ; preds = %"$have_gas_828" + call void @_out_of_gas() + br label %"$have_gas_844" + +"$have_gas_844": ; preds = %"$out_of_gas_843", %"$have_gas_828" + %"$consume_845" = sub i64 %"$gasrem_841", 1 + store i64 %"$consume_845", i64* @_gasrem, align 8 %c65536 = alloca { i8*, i8* }*, align 8 - %"$gasrem_894" = load i64, i64* @_gasrem, align 8 - %"$gascmp_895" = icmp ugt i64 1, %"$gasrem_894" - br i1 %"$gascmp_895", label %"$out_of_gas_896", label %"$have_gas_897" - -"$out_of_gas_896": ; preds = %"$have_gas_892" - call void @_out_of_gas() - br label %"$have_gas_897" - -"$have_gas_897": ; preds = %"$out_of_gas_896", %"$have_gas_892" - %"$consume_898" = sub i64 %"$gasrem_894", 1 - store i64 %"$consume_898", i64* @_gasrem, align 8 - %"$cmul_21" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_899" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8 - %"$cmul_fptr_900" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_899", 0 - %"$cmul_envptr_901" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_899", 1 - %"$c256_902" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 - %"$cmul_call_903" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_900"(i8* %"$cmul_envptr_901", { i8*, i8* }* %"$c256_902"), !dbg !88 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_903", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_21", align 8, !dbg !88 - %"$cmul_22" = alloca { i8*, i8* }*, align 8 - %"$$cmul_21_904" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_21", align 8 - %"$$cmul_21_fptr_905" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_21_904", 0 - %"$$cmul_21_envptr_906" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_21_904", 1 - %"$c256_907" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 - %"$$cmul_21_call_908" = call { i8*, i8* }* %"$$cmul_21_fptr_905"(i8* %"$$cmul_21_envptr_906", { i8*, i8* }* %"$c256_907"), !dbg !88 - store { i8*, i8* }* %"$$cmul_21_call_908", { i8*, i8* }** %"$cmul_22", align 8, !dbg !88 - %"$$cmul_22_909" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_22", align 8 - store { i8*, i8* }* %"$$cmul_22_909", { i8*, i8* }** %c65536, align 8, !dbg !88 - %"$gasrem_910" = load i64, i64* @_gasrem, align 8 - %"$gascmp_911" = icmp ugt i64 1, %"$gasrem_910" - br i1 %"$gascmp_911", label %"$out_of_gas_912", label %"$have_gas_913" - -"$out_of_gas_912": ; preds = %"$have_gas_897" - call void @_out_of_gas() - br label %"$have_gas_913" - -"$have_gas_913": ; preds = %"$out_of_gas_912", %"$have_gas_897" - %"$consume_914" = sub i64 %"$gasrem_910", 1 - store i64 %"$consume_914", i64* @_gasrem, align 8 - %"$church_nat_to_uint32_23" = alloca %Uint32, align 8 - %"$church_nat_to_uint32_915" = load { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8 - %"$church_nat_to_uint32_fptr_916" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_915", 0 - %"$church_nat_to_uint32_envptr_917" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_915", 1 - %"$c65536_918" = load { i8*, i8* }*, { i8*, i8* }** %c65536, align 8 - %"$church_nat_to_uint32_call_919" = call %Uint32 %"$church_nat_to_uint32_fptr_916"(i8* %"$church_nat_to_uint32_envptr_917", { i8*, i8* }* %"$c65536_918"), !dbg !89 - store %Uint32 %"$church_nat_to_uint32_call_919", %Uint32* %"$church_nat_to_uint32_23", align 4, !dbg !89 - %"$$church_nat_to_uint32_23_920" = load %Uint32, %Uint32* %"$church_nat_to_uint32_23", align 4 - store %Uint32 %"$$church_nat_to_uint32_23_920", %Uint32* %"$expr_24", align 4, !dbg !89 - %"$$expr_24_921" = load %Uint32, %Uint32* %"$expr_24", align 4 - ret %Uint32 %"$$expr_24_921" + %"$gasrem_846" = load i64, i64* @_gasrem, align 8 + %"$gascmp_847" = icmp ugt i64 1, %"$gasrem_846" + br i1 %"$gascmp_847", label %"$out_of_gas_848", label %"$have_gas_849" + +"$out_of_gas_848": ; preds = %"$have_gas_844" + call void @_out_of_gas() + br label %"$have_gas_849" + +"$have_gas_849": ; preds = %"$out_of_gas_848", %"$have_gas_844" + %"$consume_850" = sub i64 %"$gasrem_846", 1 + store i64 %"$consume_850", i64* @_gasrem, align 8 + %"$cmul_851" = load { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %cmul, align 8 + %"$cmul_fptr_852" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_851", 0 + %"$cmul_envptr_853" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_851", 1 + %"$c256_854" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 + %"$c256_855" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 + %"$cmul_call_856" = call { i8*, i8* }* %"$cmul_fptr_852"(i8* %"$cmul_envptr_853", { i8*, i8* }* %"$c256_854", { i8*, i8* }* %"$c256_855"), !dbg !86 + store { i8*, i8* }* %"$cmul_call_856", { i8*, i8* }** %c65536, align 8, !dbg !86 + %"$gasrem_857" = load i64, i64* @_gasrem, align 8 + %"$gascmp_858" = icmp ugt i64 1, %"$gasrem_857" + br i1 %"$gascmp_858", label %"$out_of_gas_859", label %"$have_gas_860" + +"$out_of_gas_859": ; preds = %"$have_gas_849" + call void @_out_of_gas() + br label %"$have_gas_860" + +"$have_gas_860": ; preds = %"$out_of_gas_859", %"$have_gas_849" + %"$consume_861" = sub i64 %"$gasrem_857", 1 + store i64 %"$consume_861", i64* @_gasrem, align 8 + %"$church_nat_to_uint32_15" = alloca %Uint32, align 8 + %"$church_nat_to_uint32_862" = load { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8 + %"$church_nat_to_uint32_fptr_863" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_862", 0 + %"$church_nat_to_uint32_envptr_864" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_862", 1 + %"$c65536_865" = load { i8*, i8* }*, { i8*, i8* }** %c65536, align 8 + %"$church_nat_to_uint32_call_866" = call %Uint32 %"$church_nat_to_uint32_fptr_863"(i8* %"$church_nat_to_uint32_envptr_864", { i8*, i8* }* %"$c65536_865"), !dbg !87 + store %Uint32 %"$church_nat_to_uint32_call_866", %Uint32* %"$church_nat_to_uint32_15", align 4, !dbg !87 + %"$$church_nat_to_uint32_15_867" = load %Uint32, %Uint32* %"$church_nat_to_uint32_15", align 4 + store %Uint32 %"$$church_nat_to_uint32_15_867", %Uint32* %"$expr_16", align 4, !dbg !87 + %"$$expr_16_868" = load %Uint32, %Uint32* %"$expr_16", align 4 + ret %Uint32 %"$$expr_16_868" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_922" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_923" = alloca %Uint32, align 8 - %"$memvoidcast_924" = bitcast %Uint32* %"$pval_923" to i8* - store %Uint32 %"$exprval_922", %Uint32* %"$pval_923", align 4 - %"$execptr_load_925" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_925", %_TyDescrTy_Typ* @"$TyDescr_Uint32_77", i8* %"$memvoidcast_924") + %"$exprval_869" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_870" = alloca %Uint32, align 8 + %"$memvoidcast_871" = bitcast %Uint32* %"$pval_870" to i8* + store %Uint32 %"$exprval_869", %Uint32* %"$pval_870", align 4 + %"$execptr_load_872" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_872", %_TyDescrTy_Typ* @"$TyDescr_Uint32_67", i8* %"$memvoidcast_871") ret void } @@ -1689,89 +1607,87 @@ entry: !1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) !2 = !DIFile(filename: "church_nat.scilexp", directory: "codegen/expr") !3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_71", linkageName: "$fundef_71", scope: !2, file: !2, line: 36, type: !5, scopeLine: 36, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!4 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 36, type: !5, scopeLine: 36, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !5 = !DISubroutineType(types: !6) !6 = !{!7} !7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") !8 = !DILocation(line: 36, column: 36, scope: !4) -!9 = distinct !DISubprogram(name: "$fundef_69", linkageName: "$fundef_69", scope: !2, file: !2, line: 34, type: !5, scopeLine: 34, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!9 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", scope: !2, file: !2, line: 34, type: !5, scopeLine: 34, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !10 = !DILocation(line: 34, column: 16, scope: !9) !11 = !DILocation(line: 35, column: 15, scope: !9) !12 = !DILocation(line: 36, column: 36, scope: !9) !13 = !DILocation(line: 37, column: 16, scope: !9) !14 = !DILocation(line: 37, column: 15, scope: !9) !15 = !DILocation(line: 38, column: 5, scope: !9) -!16 = distinct !DISubprogram(name: "$fundef_67", linkageName: "$fundef_67", scope: !2, file: !2, line: 27, type: !5, scopeLine: 27, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!16 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 26, type: !5, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !17 = !DILocation(line: 27, column: 16, scope: !16) !18 = !DILocation(line: 28, column: 13, scope: !16) !19 = !DILocation(line: 28, column: 12, scope: !16) !20 = !DILocation(line: 29, column: 3, scope: !16) -!21 = distinct !DISubprogram(name: "$fundef_65", linkageName: "$fundef_65", scope: !2, file: !2, line: 26, type: !5, scopeLine: 26, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 27, column: 3, scope: !21) -!23 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 18, column: 13, scope: !23) -!25 = !DILocation(line: 18, column: 12, scope: !23) -!26 = !DILocation(line: 19, column: 13, scope: !23) -!27 = !DILocation(line: 19, column: 12, scope: !23) -!28 = !DILocation(line: 20, column: 14, scope: !23) -!29 = !DILocation(line: 21, column: 3, scope: !23) -!30 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!31 = !DILocation(line: 18, column: 3, scope: !30) -!32 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!33 = !DILocation(line: 17, column: 3, scope: !32) -!34 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!35 = !DILocation(line: 18, column: 13, scope: !34) -!36 = !DILocation(line: 18, column: 12, scope: !34) -!37 = !DILocation(line: 19, column: 13, scope: !34) -!38 = !DILocation(line: 19, column: 12, scope: !34) -!39 = !DILocation(line: 20, column: 14, scope: !34) -!40 = !DILocation(line: 21, column: 3, scope: !34) -!41 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!42 = !DILocation(line: 18, column: 3, scope: !41) -!43 = distinct !DISubprogram(name: "$fundef_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!44 = !DILocation(line: 17, column: 3, scope: !43) -!45 = distinct !DISubprogram(name: "$fundef_51", linkageName: "$fundef_51", scope: !2, file: !2, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!21 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!22 = !DILocation(line: 18, column: 13, scope: !21) +!23 = !DILocation(line: 18, column: 12, scope: !21) +!24 = !DILocation(line: 19, column: 13, scope: !21) +!25 = !DILocation(line: 19, column: 12, scope: !21) +!26 = !DILocation(line: 20, column: 14, scope: !21) +!27 = !DILocation(line: 21, column: 3, scope: !21) +!28 = distinct !DISubprogram(name: "$fundef_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!29 = !DILocation(line: 18, column: 3, scope: !28) +!30 = distinct !DISubprogram(name: "$fundef_51", linkageName: "$fundef_51", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!31 = !DILocation(line: 17, column: 3, scope: !30) +!32 = distinct !DISubprogram(name: "$fundef_49", linkageName: "$fundef_49", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!33 = !DILocation(line: 18, column: 13, scope: !32) +!34 = !DILocation(line: 18, column: 12, scope: !32) +!35 = !DILocation(line: 19, column: 13, scope: !32) +!36 = !DILocation(line: 19, column: 12, scope: !32) +!37 = !DILocation(line: 20, column: 14, scope: !32) +!38 = !DILocation(line: 21, column: 3, scope: !32) +!39 = distinct !DISubprogram(name: "$fundef_47", linkageName: "$fundef_47", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!40 = !DILocation(line: 18, column: 3, scope: !39) +!41 = distinct !DISubprogram(name: "$fundef_45", linkageName: "$fundef_45", scope: !2, file: !2, line: 17, type: !5, scopeLine: 17, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!42 = !DILocation(line: 17, column: 3, scope: !41) +!43 = distinct !DISubprogram(name: "$fundef_43", linkageName: "$fundef_43", scope: !2, file: !2, line: 15, type: !5, scopeLine: 15, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!44 = !DILocation(line: 15, column: 3, scope: !43) +!45 = distinct !DISubprogram(name: "$fundef_41", linkageName: "$fundef_41", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !46 = !DILocation(line: 15, column: 3, scope: !45) -!47 = distinct !DISubprogram(name: "$fundef_49", linkageName: "$fundef_49", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!48 = !DILocation(line: 15, column: 3, scope: !47) -!49 = distinct !DISubprogram(name: "$fundef_47", linkageName: "$fundef_47", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!50 = !DILocation(line: 9, column: 68, scope: !49) -!51 = !DILocation(line: 9, column: 75, scope: !49) -!52 = distinct !DISubprogram(name: "$fundef_45", linkageName: "$fundef_45", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!53 = !DILocation(line: 9, column: 59, scope: !52) -!54 = distinct !DISubprogram(name: "$fundef_43", linkageName: "$fundef_43", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!55 = !DILocation(line: 9, column: 43, scope: !54) -!56 = distinct !DISubprogram(name: "$fundef_41", linkageName: "$fundef_41", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!57 = !DILocation(line: 9, column: 68, scope: !56) -!58 = !DILocation(line: 9, column: 75, scope: !56) -!59 = distinct !DISubprogram(name: "$fundef_39", linkageName: "$fundef_39", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!60 = !DILocation(line: 9, column: 59, scope: !59) -!61 = distinct !DISubprogram(name: "$fundef_37", linkageName: "$fundef_37", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!62 = !DILocation(line: 9, column: 43, scope: !61) -!63 = distinct !DISubprogram(name: "$fundef_35", linkageName: "$fundef_35", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!47 = distinct !DISubprogram(name: "$fundef_39", linkageName: "$fundef_39", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!48 = !DILocation(line: 9, column: 68, scope: !47) +!49 = !DILocation(line: 9, column: 75, scope: !47) +!50 = distinct !DISubprogram(name: "$fundef_37", linkageName: "$fundef_37", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!51 = !DILocation(line: 9, column: 59, scope: !50) +!52 = distinct !DISubprogram(name: "$fundef_35", linkageName: "$fundef_35", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!53 = !DILocation(line: 9, column: 43, scope: !52) +!54 = distinct !DISubprogram(name: "$fundef_33", linkageName: "$fundef_33", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!55 = !DILocation(line: 9, column: 68, scope: !54) +!56 = !DILocation(line: 9, column: 75, scope: !54) +!57 = distinct !DISubprogram(name: "$fundef_31", linkageName: "$fundef_31", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!58 = !DILocation(line: 9, column: 59, scope: !57) +!59 = distinct !DISubprogram(name: "$fundef_29", linkageName: "$fundef_29", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!60 = !DILocation(line: 9, column: 43, scope: !59) +!61 = distinct !DISubprogram(name: "$fundef_27", linkageName: "$fundef_27", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!62 = !DILocation(line: 3, column: 59, scope: !61) +!63 = distinct !DISubprogram(name: "$fundef_25", linkageName: "$fundef_25", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !64 = !DILocation(line: 3, column: 59, scope: !63) -!65 = distinct !DISubprogram(name: "$fundef_33", linkageName: "$fundef_33", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!66 = !DILocation(line: 3, column: 59, scope: !65) -!67 = distinct !DISubprogram(name: "$fundef_31", linkageName: "$fundef_31", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!68 = !DILocation(line: 3, column: 43, scope: !67) -!69 = distinct !DISubprogram(name: "$fundef_29", linkageName: "$fundef_29", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!65 = distinct !DISubprogram(name: "$fundef_23", linkageName: "$fundef_23", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!66 = !DILocation(line: 3, column: 43, scope: !65) +!67 = distinct !DISubprogram(name: "$fundef_21", linkageName: "$fundef_21", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!68 = !DILocation(line: 3, column: 59, scope: !67) +!69 = distinct !DISubprogram(name: "$fundef_19", linkageName: "$fundef_19", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !70 = !DILocation(line: 3, column: 59, scope: !69) -!71 = distinct !DISubprogram(name: "$fundef_27", linkageName: "$fundef_27", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!72 = !DILocation(line: 3, column: 59, scope: !71) -!73 = distinct !DISubprogram(name: "$fundef_25", linkageName: "$fundef_25", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!74 = !DILocation(line: 3, column: 43, scope: !73) -!75 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !76, file: !76, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!76 = !DIFile(filename: ".", directory: ".") -!77 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!78 = !DILocation(line: 3, column: 10, scope: !77) -!79 = !DILocation(line: 9, column: 10, scope: !77) -!80 = !DILocation(line: 14, column: 3, scope: !77) -!81 = !DILocation(line: 26, column: 3, scope: !77) -!82 = !DILocation(line: 34, column: 5, scope: !77) -!83 = !DILocation(line: 41, column: 10, scope: !77) -!84 = !DILocation(line: 42, column: 11, scope: !77) -!85 = !DILocation(line: 43, column: 11, scope: !77) -!86 = !DILocation(line: 44, column: 12, scope: !77) -!87 = !DILocation(line: 45, column: 12, scope: !77) -!88 = !DILocation(line: 46, column: 14, scope: !77) -!89 = !DILocation(line: 47, column: 1, scope: !77) +!71 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!72 = !DILocation(line: 3, column: 43, scope: !71) +!73 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !74, file: !74, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!74 = !DIFile(filename: ".", directory: ".") +!75 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) +!76 = !DILocation(line: 3, column: 10, scope: !75) +!77 = !DILocation(line: 9, column: 10, scope: !75) +!78 = !DILocation(line: 14, column: 3, scope: !75) +!79 = !DILocation(line: 26, column: 3, scope: !75) +!80 = !DILocation(line: 34, column: 5, scope: !75) +!81 = !DILocation(line: 41, column: 10, scope: !75) +!82 = !DILocation(line: 42, column: 11, scope: !75) +!83 = !DILocation(line: 43, column: 11, scope: !75) +!84 = !DILocation(line: 44, column: 12, scope: !75) +!85 = !DILocation(line: 45, column: 12, scope: !75) +!86 = !DILocation(line: 46, column: 14, scope: !75) +!87 = !DILocation(line: 47, column: 1, scope: !75) diff --git a/tests/codegen/expr/dgold/church_nat_stlc.scilexp.gold b/tests/codegen/expr/dgold/church_nat_stlc.scilexp.gold index 92025667..ec17c03c 100644 --- a/tests/codegen/expr/dgold/church_nat_stlc.scilexp.gold +++ b/tests/codegen/expr/dgold/church_nat_stlc.scilexp.gold @@ -1,897 +1,865 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_71" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_67" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$ParamDescr_812" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_788" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_813" = type { %ParamDescrString, i32, %"$ParamDescr_812"* } -%"$$fundef_69_env_106" = type { %Uint32 } +%"$TransDescr_789" = type { %ParamDescrString, i32, %"$ParamDescr_788"* } +%"$$fundef_65_env_102" = type { %Uint32 } %Uint32 = type { i32 } -%"$$fundef_67_env_107" = type {} -%"$$fundef_65_env_108" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_63_env_109" = type {} -%"$$fundef_61_env_110" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_59_env_111" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_57_env_112" = type {} -%"$$fundef_55_env_113" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* } } -%"$$fundef_53_env_114" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_51_env_115" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_49_env_116" = type {} -%"$$fundef_47_env_117" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_45_env_118" = type {} -%"$$fundef_43_env_119" = type { { %Uint32 (i8*, %Uint32)*, i8* } } -%"$$fundef_41_env_120" = type {} -%"$$fundef_39_env_121" = type { { %Uint32 (i8*, %Uint32)*, i8* } } -%"$$fundef_37_env_122" = type {} +%"$$fundef_63_env_103" = type {} +%"$$fundef_61_env_104" = type {} +%"$$fundef_59_env_105" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } +%"$$fundef_57_env_106" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } +%"$$fundef_55_env_107" = type {} +%"$$fundef_53_env_108" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* } } +%"$$fundef_51_env_109" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } +%"$$fundef_49_env_110" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } +%"$$fundef_47_env_111" = type {} +%"$$fundef_45_env_112" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } +%"$$fundef_43_env_113" = type {} +%"$$fundef_41_env_114" = type { { %Uint32 (i8*, %Uint32)*, i8* } } +%"$$fundef_39_env_115" = type {} +%"$$fundef_37_env_116" = type { { %Uint32 (i8*, %Uint32)*, i8* } } +%"$$fundef_35_env_117" = type {} @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_72" = global %"$TyDescrTy_PrimTyp_71" zeroinitializer -@"$TyDescr_Int32_73" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Int32_Prim_72" to i8*) } -@"$TyDescr_Uint32_Prim_74" = global %"$TyDescrTy_PrimTyp_71" { i32 1, i32 0 } -@"$TyDescr_Uint32_75" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Uint32_Prim_74" to i8*) } -@"$TyDescr_Int64_Prim_76" = global %"$TyDescrTy_PrimTyp_71" { i32 0, i32 1 } -@"$TyDescr_Int64_77" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Int64_Prim_76" to i8*) } -@"$TyDescr_Uint64_Prim_78" = global %"$TyDescrTy_PrimTyp_71" { i32 1, i32 1 } -@"$TyDescr_Uint64_79" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Uint64_Prim_78" to i8*) } -@"$TyDescr_Int128_Prim_80" = global %"$TyDescrTy_PrimTyp_71" { i32 0, i32 2 } -@"$TyDescr_Int128_81" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Int128_Prim_80" to i8*) } -@"$TyDescr_Uint128_Prim_82" = global %"$TyDescrTy_PrimTyp_71" { i32 1, i32 2 } -@"$TyDescr_Uint128_83" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Uint128_Prim_82" to i8*) } -@"$TyDescr_Int256_Prim_84" = global %"$TyDescrTy_PrimTyp_71" { i32 0, i32 3 } -@"$TyDescr_Int256_85" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Int256_Prim_84" to i8*) } -@"$TyDescr_Uint256_Prim_86" = global %"$TyDescrTy_PrimTyp_71" { i32 1, i32 3 } -@"$TyDescr_Uint256_87" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Uint256_Prim_86" to i8*) } -@"$TyDescr_String_Prim_88" = global %"$TyDescrTy_PrimTyp_71" { i32 2, i32 0 } -@"$TyDescr_String_89" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_String_Prim_88" to i8*) } -@"$TyDescr_Bnum_Prim_90" = global %"$TyDescrTy_PrimTyp_71" { i32 3, i32 0 } -@"$TyDescr_Bnum_91" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Bnum_Prim_90" to i8*) } -@"$TyDescr_Message_Prim_92" = global %"$TyDescrTy_PrimTyp_71" { i32 4, i32 0 } -@"$TyDescr_Message_93" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Message_Prim_92" to i8*) } -@"$TyDescr_Event_Prim_94" = global %"$TyDescrTy_PrimTyp_71" { i32 5, i32 0 } -@"$TyDescr_Event_95" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Event_Prim_94" to i8*) } -@"$TyDescr_Exception_Prim_96" = global %"$TyDescrTy_PrimTyp_71" { i32 6, i32 0 } -@"$TyDescr_Exception_97" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Exception_Prim_96" to i8*) } -@"$TyDescr_Bystr_Prim_98" = global %"$TyDescrTy_PrimTyp_71" { i32 7, i32 0 } -@"$TyDescr_Bystr_99" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Bystr_Prim_98" to i8*) } -@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_95", %_TyDescrTy_Typ* @"$TyDescr_Int64_77", %_TyDescrTy_Typ* @"$TyDescr_Uint256_87", %_TyDescrTy_Typ* @"$TyDescr_Uint32_75", %_TyDescrTy_Typ* @"$TyDescr_Uint64_79", %_TyDescrTy_Typ* @"$TyDescr_Bnum_91", %_TyDescrTy_Typ* @"$TyDescr_Uint128_83", %_TyDescrTy_Typ* @"$TyDescr_Exception_97", %_TyDescrTy_Typ* @"$TyDescr_String_89", %_TyDescrTy_Typ* @"$TyDescr_Int256_85", %_TyDescrTy_Typ* @"$TyDescr_Int128_81", %_TyDescrTy_Typ* @"$TyDescr_Bystr_99", %_TyDescrTy_Typ* @"$TyDescr_Message_93", %_TyDescrTy_Typ* @"$TyDescr_Int32_73"] +@"$TyDescr_Int32_Prim_68" = global %"$TyDescrTy_PrimTyp_67" zeroinitializer +@"$TyDescr_Int32_69" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Int32_Prim_68" to i8*) } +@"$TyDescr_Uint32_Prim_70" = global %"$TyDescrTy_PrimTyp_67" { i32 1, i32 0 } +@"$TyDescr_Uint32_71" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Uint32_Prim_70" to i8*) } +@"$TyDescr_Int64_Prim_72" = global %"$TyDescrTy_PrimTyp_67" { i32 0, i32 1 } +@"$TyDescr_Int64_73" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Int64_Prim_72" to i8*) } +@"$TyDescr_Uint64_Prim_74" = global %"$TyDescrTy_PrimTyp_67" { i32 1, i32 1 } +@"$TyDescr_Uint64_75" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Uint64_Prim_74" to i8*) } +@"$TyDescr_Int128_Prim_76" = global %"$TyDescrTy_PrimTyp_67" { i32 0, i32 2 } +@"$TyDescr_Int128_77" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Int128_Prim_76" to i8*) } +@"$TyDescr_Uint128_Prim_78" = global %"$TyDescrTy_PrimTyp_67" { i32 1, i32 2 } +@"$TyDescr_Uint128_79" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Uint128_Prim_78" to i8*) } +@"$TyDescr_Int256_Prim_80" = global %"$TyDescrTy_PrimTyp_67" { i32 0, i32 3 } +@"$TyDescr_Int256_81" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Int256_Prim_80" to i8*) } +@"$TyDescr_Uint256_Prim_82" = global %"$TyDescrTy_PrimTyp_67" { i32 1, i32 3 } +@"$TyDescr_Uint256_83" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Uint256_Prim_82" to i8*) } +@"$TyDescr_String_Prim_84" = global %"$TyDescrTy_PrimTyp_67" { i32 2, i32 0 } +@"$TyDescr_String_85" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_String_Prim_84" to i8*) } +@"$TyDescr_Bnum_Prim_86" = global %"$TyDescrTy_PrimTyp_67" { i32 3, i32 0 } +@"$TyDescr_Bnum_87" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Bnum_Prim_86" to i8*) } +@"$TyDescr_Message_Prim_88" = global %"$TyDescrTy_PrimTyp_67" { i32 4, i32 0 } +@"$TyDescr_Message_89" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Message_Prim_88" to i8*) } +@"$TyDescr_Event_Prim_90" = global %"$TyDescrTy_PrimTyp_67" { i32 5, i32 0 } +@"$TyDescr_Event_91" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Event_Prim_90" to i8*) } +@"$TyDescr_Exception_Prim_92" = global %"$TyDescrTy_PrimTyp_67" { i32 6, i32 0 } +@"$TyDescr_Exception_93" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Exception_Prim_92" to i8*) } +@"$TyDescr_Bystr_Prim_94" = global %"$TyDescrTy_PrimTyp_67" { i32 7, i32 0 } +@"$TyDescr_Bystr_95" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Bystr_Prim_94" to i8*) } +@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_91", %_TyDescrTy_Typ* @"$TyDescr_Int64_73", %_TyDescrTy_Typ* @"$TyDescr_Uint256_83", %_TyDescrTy_Typ* @"$TyDescr_Uint32_71", %_TyDescrTy_Typ* @"$TyDescr_Uint64_75", %_TyDescrTy_Typ* @"$TyDescr_Bnum_87", %_TyDescrTy_Typ* @"$TyDescr_Uint128_79", %_TyDescrTy_Typ* @"$TyDescr_Exception_93", %_TyDescrTy_Typ* @"$TyDescr_String_85", %_TyDescrTy_Typ* @"$TyDescr_Int256_81", %_TyDescrTy_Typ* @"$TyDescr_Int128_77", %_TyDescrTy_Typ* @"$TyDescr_Bystr_95", %_TyDescrTy_Typ* @"$TyDescr_Message_89", %_TyDescrTy_Typ* @"$TyDescr_Int32_69"] @_tydescr_table_length = constant i32 14 -@_contract_parameters = constant [0 x %"$ParamDescr_812"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_788"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_813"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_789"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Uint32 @"$fundef_69"(%"$$fundef_69_env_106"* %0, %Uint32 %1) !dbg !4 { +define internal %Uint32 @"$fundef_65"(%"$$fundef_65_env_102"* %0, %Uint32 %1) !dbg !4 { entry: - %"$$fundef_69_env_one_496" = getelementptr inbounds %"$$fundef_69_env_106", %"$$fundef_69_env_106"* %0, i32 0, i32 0 - %"$one_envload_497" = load %Uint32, %Uint32* %"$$fundef_69_env_one_496", align 4 + %"$$fundef_65_env_one_477" = getelementptr inbounds %"$$fundef_65_env_102", %"$$fundef_65_env_102"* %0, i32 0, i32 0 + %"$one_envload_478" = load %Uint32, %Uint32* %"$$fundef_65_env_one_477", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_497", %Uint32* %one, align 4 - %"$retval_70" = alloca %Uint32, align 8 - %"$gasrem_498" = load i64, i64* @_gasrem, align 8 - %"$gascmp_499" = icmp ugt i64 4, %"$gasrem_498" - br i1 %"$gascmp_499", label %"$out_of_gas_500", label %"$have_gas_501" - -"$out_of_gas_500": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_501" - -"$have_gas_501": ; preds = %"$out_of_gas_500", %entry - %"$consume_502" = sub i64 %"$gasrem_498", 4 - store i64 %"$consume_502", i64* @_gasrem, align 8 - %"$one_503" = load %Uint32, %Uint32* %one, align 4 - %"$add_call_504" = call %Uint32 @_add_Uint32(%Uint32 %"$one_503", %Uint32 %1), !dbg !8 - store %Uint32 %"$add_call_504", %Uint32* %"$retval_70", align 4, !dbg !8 - %"$$retval_70_505" = load %Uint32, %Uint32* %"$retval_70", align 4 - ret %Uint32 %"$$retval_70_505" + store %Uint32 %"$one_envload_478", %Uint32* %one, align 4 + %"$retval_66" = alloca %Uint32, align 8 + %"$gasrem_479" = load i64, i64* @_gasrem, align 8 + %"$gascmp_480" = icmp ugt i64 4, %"$gasrem_479" + br i1 %"$gascmp_480", label %"$out_of_gas_481", label %"$have_gas_482" + +"$out_of_gas_481": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_482" + +"$have_gas_482": ; preds = %"$out_of_gas_481", %entry + %"$consume_483" = sub i64 %"$gasrem_479", 4 + store i64 %"$consume_483", i64* @_gasrem, align 8 + %"$one_484" = load %Uint32, %Uint32* %one, align 4 + %"$add_call_485" = call %Uint32 @_add_Uint32(%Uint32 %"$one_484", %Uint32 %1), !dbg !8 + store %Uint32 %"$add_call_485", %Uint32* %"$retval_66", align 4, !dbg !8 + %"$$retval_66_486" = load %Uint32, %Uint32* %"$retval_66", align 4 + ret %Uint32 %"$$retval_66_486" } -define internal %Uint32 @"$fundef_67"(%"$$fundef_67_env_107"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !9 { +define internal %Uint32 @"$fundef_63"(%"$$fundef_63_env_103"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !9 { entry: - %"$retval_68" = alloca %Uint32, align 8 - %"$gasrem_444" = load i64, i64* @_gasrem, align 8 - %"$gascmp_445" = icmp ugt i64 1, %"$gasrem_444" - br i1 %"$gascmp_445", label %"$out_of_gas_446", label %"$have_gas_447" + %"$retval_64" = alloca %Uint32, align 8 + %"$gasrem_425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_426" = icmp ugt i64 1, %"$gasrem_425" + br i1 %"$gascmp_426", label %"$out_of_gas_427", label %"$have_gas_428" -"$out_of_gas_446": ; preds = %entry +"$out_of_gas_427": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_447" + br label %"$have_gas_428" -"$have_gas_447": ; preds = %"$out_of_gas_446", %entry - %"$consume_448" = sub i64 %"$gasrem_444", 1 - store i64 %"$consume_448", i64* @_gasrem, align 8 +"$have_gas_428": ; preds = %"$out_of_gas_427", %entry + %"$consume_429" = sub i64 %"$gasrem_425", 1 + store i64 %"$consume_429", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 - %"$gasrem_449" = load i64, i64* @_gasrem, align 8 - %"$gascmp_450" = icmp ugt i64 1, %"$gasrem_449" - br i1 %"$gascmp_450", label %"$out_of_gas_451", label %"$have_gas_452" + %"$gasrem_430" = load i64, i64* @_gasrem, align 8 + %"$gascmp_431" = icmp ugt i64 1, %"$gasrem_430" + br i1 %"$gascmp_431", label %"$out_of_gas_432", label %"$have_gas_433" -"$out_of_gas_451": ; preds = %"$have_gas_447" +"$out_of_gas_432": ; preds = %"$have_gas_428" call void @_out_of_gas() - br label %"$have_gas_452" + br label %"$have_gas_433" -"$have_gas_452": ; preds = %"$out_of_gas_451", %"$have_gas_447" - %"$consume_453" = sub i64 %"$gasrem_449", 1 - store i64 %"$consume_453", i64* @_gasrem, align 8 +"$have_gas_433": ; preds = %"$out_of_gas_432", %"$have_gas_428" + %"$consume_434" = sub i64 %"$gasrem_430", 1 + store i64 %"$consume_434", i64* @_gasrem, align 8 store %Uint32 zeroinitializer, %Uint32* %zero, align 4, !dbg !10 - %"$gasrem_454" = load i64, i64* @_gasrem, align 8 - %"$gascmp_455" = icmp ugt i64 1, %"$gasrem_454" - br i1 %"$gascmp_455", label %"$out_of_gas_456", label %"$have_gas_457" + %"$gasrem_435" = load i64, i64* @_gasrem, align 8 + %"$gascmp_436" = icmp ugt i64 1, %"$gasrem_435" + br i1 %"$gascmp_436", label %"$out_of_gas_437", label %"$have_gas_438" -"$out_of_gas_456": ; preds = %"$have_gas_452" +"$out_of_gas_437": ; preds = %"$have_gas_433" call void @_out_of_gas() - br label %"$have_gas_457" + br label %"$have_gas_438" -"$have_gas_457": ; preds = %"$out_of_gas_456", %"$have_gas_452" - %"$consume_458" = sub i64 %"$gasrem_454", 1 - store i64 %"$consume_458", i64* @_gasrem, align 8 +"$have_gas_438": ; preds = %"$out_of_gas_437", %"$have_gas_433" + %"$consume_439" = sub i64 %"$gasrem_435", 1 + store i64 %"$consume_439", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_459" = load i64, i64* @_gasrem, align 8 - %"$gascmp_460" = icmp ugt i64 1, %"$gasrem_459" - br i1 %"$gascmp_460", label %"$out_of_gas_461", label %"$have_gas_462" + %"$gasrem_440" = load i64, i64* @_gasrem, align 8 + %"$gascmp_441" = icmp ugt i64 1, %"$gasrem_440" + br i1 %"$gascmp_441", label %"$out_of_gas_442", label %"$have_gas_443" -"$out_of_gas_461": ; preds = %"$have_gas_457" +"$out_of_gas_442": ; preds = %"$have_gas_438" call void @_out_of_gas() - br label %"$have_gas_462" + br label %"$have_gas_443" -"$have_gas_462": ; preds = %"$out_of_gas_461", %"$have_gas_457" - %"$consume_463" = sub i64 %"$gasrem_459", 1 - store i64 %"$consume_463", i64* @_gasrem, align 8 +"$have_gas_443": ; preds = %"$out_of_gas_442", %"$have_gas_438" + %"$consume_444" = sub i64 %"$gasrem_440", 1 + store i64 %"$consume_444", i64* @_gasrem, align 8 store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !11 - %"$gasrem_464" = load i64, i64* @_gasrem, align 8 - %"$gascmp_465" = icmp ugt i64 1, %"$gasrem_464" - br i1 %"$gascmp_465", label %"$out_of_gas_466", label %"$have_gas_467" + %"$gasrem_445" = load i64, i64* @_gasrem, align 8 + %"$gascmp_446" = icmp ugt i64 1, %"$gasrem_445" + br i1 %"$gascmp_446", label %"$out_of_gas_447", label %"$have_gas_448" -"$out_of_gas_466": ; preds = %"$have_gas_462" +"$out_of_gas_447": ; preds = %"$have_gas_443" call void @_out_of_gas() - br label %"$have_gas_467" + br label %"$have_gas_448" -"$have_gas_467": ; preds = %"$out_of_gas_466", %"$have_gas_462" - %"$consume_468" = sub i64 %"$gasrem_464", 1 - store i64 %"$consume_468", i64* @_gasrem, align 8 +"$have_gas_448": ; preds = %"$out_of_gas_447", %"$have_gas_443" + %"$consume_449" = sub i64 %"$gasrem_445", 1 + store i64 %"$consume_449", i64* @_gasrem, align 8 %add1 = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_470" = icmp ugt i64 1, %"$gasrem_469" - br i1 %"$gascmp_470", label %"$out_of_gas_471", label %"$have_gas_472" - -"$out_of_gas_471": ; preds = %"$have_gas_467" - call void @_out_of_gas() - br label %"$have_gas_472" - -"$have_gas_472": ; preds = %"$out_of_gas_471", %"$have_gas_467" - %"$consume_473" = sub i64 %"$gasrem_469", 1 - store i64 %"$consume_473", i64* @_gasrem, align 8 - %"$$fundef_69_envp_474_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_69_envp_474_salloc" = call i8* @_salloc(i8* %"$$fundef_69_envp_474_load", i64 4) - %"$$fundef_69_envp_474" = bitcast i8* %"$$fundef_69_envp_474_salloc" to %"$$fundef_69_env_106"* - %"$$fundef_69_env_voidp_476" = bitcast %"$$fundef_69_env_106"* %"$$fundef_69_envp_474" to i8* - %"$$fundef_69_cloval_477" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_69_env_106"*, %Uint32)* @"$fundef_69" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_69_env_voidp_476", 1 - %"$$fundef_69_env_one_478" = getelementptr inbounds %"$$fundef_69_env_106", %"$$fundef_69_env_106"* %"$$fundef_69_envp_474", i32 0, i32 0 - %"$one_479" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_479", %Uint32* %"$$fundef_69_env_one_478", align 4 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_69_cloval_477", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8, !dbg !12 - %"$gasrem_480" = load i64, i64* @_gasrem, align 8 - %"$gascmp_481" = icmp ugt i64 1, %"$gasrem_480" - br i1 %"$gascmp_481", label %"$out_of_gas_482", label %"$have_gas_483" - -"$out_of_gas_482": ; preds = %"$have_gas_472" - call void @_out_of_gas() - br label %"$have_gas_483" - -"$have_gas_483": ; preds = %"$out_of_gas_482", %"$have_gas_472" - %"$consume_484" = sub i64 %"$gasrem_480", 1 - store i64 %"$consume_484", i64* @_gasrem, align 8 + %"$gasrem_450" = load i64, i64* @_gasrem, align 8 + %"$gascmp_451" = icmp ugt i64 1, %"$gasrem_450" + br i1 %"$gascmp_451", label %"$out_of_gas_452", label %"$have_gas_453" + +"$out_of_gas_452": ; preds = %"$have_gas_448" + call void @_out_of_gas() + br label %"$have_gas_453" + +"$have_gas_453": ; preds = %"$out_of_gas_452", %"$have_gas_448" + %"$consume_454" = sub i64 %"$gasrem_450", 1 + store i64 %"$consume_454", i64* @_gasrem, align 8 + %"$$fundef_65_envp_455_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_65_envp_455_salloc" = call i8* @_salloc(i8* %"$$fundef_65_envp_455_load", i64 4) + %"$$fundef_65_envp_455" = bitcast i8* %"$$fundef_65_envp_455_salloc" to %"$$fundef_65_env_102"* + %"$$fundef_65_env_voidp_457" = bitcast %"$$fundef_65_env_102"* %"$$fundef_65_envp_455" to i8* + %"$$fundef_65_cloval_458" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_65_env_102"*, %Uint32)* @"$fundef_65" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_65_env_voidp_457", 1 + %"$$fundef_65_env_one_459" = getelementptr inbounds %"$$fundef_65_env_102", %"$$fundef_65_env_102"* %"$$fundef_65_envp_455", i32 0, i32 0 + %"$one_460" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_460", %Uint32* %"$$fundef_65_env_one_459", align 4 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_65_cloval_458", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8, !dbg !12 + %"$gasrem_461" = load i64, i64* @_gasrem, align 8 + %"$gascmp_462" = icmp ugt i64 1, %"$gasrem_461" + br i1 %"$gascmp_462", label %"$out_of_gas_463", label %"$have_gas_464" + +"$out_of_gas_463": ; preds = %"$have_gas_453" + call void @_out_of_gas() + br label %"$have_gas_464" + +"$have_gas_464": ; preds = %"$out_of_gas_463", %"$have_gas_453" + %"$consume_465" = sub i64 %"$gasrem_461", 1 + store i64 %"$consume_465", i64* @_gasrem, align 8 %"$c_15" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$c_fptr_485" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 0 - %"$c_envptr_486" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 1 - %"$add1_487" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 - %"$c_call_488" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c_fptr_485"(i8* %"$c_envptr_486", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_487"), !dbg !13 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$c_call_488", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_15", align 8, !dbg !13 + %"$c_fptr_466" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 0 + %"$c_envptr_467" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 1 + %"$add1_468" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 + %"$c_call_469" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c_fptr_466"(i8* %"$c_envptr_467", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_468"), !dbg !13 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$c_call_469", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_15", align 8, !dbg !13 %"$c_16" = alloca %Uint32, align 8 - %"$$c_15_489" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_15", align 8 - %"$$c_15_fptr_490" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_15_489", 0 - %"$$c_15_envptr_491" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_15_489", 1 - %"$zero_492" = load %Uint32, %Uint32* %zero, align 4 - %"$$c_15_call_493" = call %Uint32 %"$$c_15_fptr_490"(i8* %"$$c_15_envptr_491", %Uint32 %"$zero_492"), !dbg !13 - store %Uint32 %"$$c_15_call_493", %Uint32* %"$c_16", align 4, !dbg !13 - %"$$c_16_494" = load %Uint32, %Uint32* %"$c_16", align 4 - store %Uint32 %"$$c_16_494", %Uint32* %"$retval_68", align 4, !dbg !13 - %"$$retval_68_495" = load %Uint32, %Uint32* %"$retval_68", align 4 - ret %Uint32 %"$$retval_68_495" + %"$$c_15_470" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_15", align 8 + %"$$c_15_fptr_471" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_15_470", 0 + %"$$c_15_envptr_472" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_15_470", 1 + %"$zero_473" = load %Uint32, %Uint32* %zero, align 4 + %"$$c_15_call_474" = call %Uint32 %"$$c_15_fptr_471"(i8* %"$$c_15_envptr_472", %Uint32 %"$zero_473"), !dbg !13 + store %Uint32 %"$$c_15_call_474", %Uint32* %"$c_16", align 4, !dbg !13 + %"$$c_16_475" = load %Uint32, %Uint32* %"$c_16", align 4 + store %Uint32 %"$$c_16_475", %Uint32* %"$retval_64", align 4, !dbg !13 + %"$$retval_64_476" = load %Uint32, %Uint32* %"$retval_64", align 4 + ret %Uint32 %"$$retval_64_476" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_65"(%"$$fundef_65_env_108"* %0, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %1) !dbg !14 { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_61"(%"$$fundef_61_env_104"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %2) !dbg !14 { entry: - %"$$fundef_65_env_m_431" = getelementptr inbounds %"$$fundef_65_env_108", %"$$fundef_65_env_108"* %0, i32 0, i32 0 - %"$m_envload_432" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_65_env_m_431", align 8 - %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_432", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$retval_66" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_433" = load i64, i64* @_gasrem, align 8 - %"$gascmp_434" = icmp ugt i64 1, %"$gasrem_433" - br i1 %"$gascmp_434", label %"$out_of_gas_435", label %"$have_gas_436" + %"$retval_62" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_415" = load i64, i64* @_gasrem, align 8 + %"$gascmp_416" = icmp ugt i64 1, %"$gasrem_415" + br i1 %"$gascmp_416", label %"$out_of_gas_417", label %"$have_gas_418" -"$out_of_gas_435": ; preds = %entry +"$out_of_gas_417": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_436" + br label %"$have_gas_418" -"$have_gas_436": ; preds = %"$out_of_gas_435", %entry - %"$consume_437" = sub i64 %"$gasrem_433", 1 - store i64 %"$consume_437", i64* @_gasrem, align 8 +"$have_gas_418": ; preds = %"$out_of_gas_417", %entry + %"$consume_419" = sub i64 %"$gasrem_415", 1 + store i64 %"$consume_419", i64* @_gasrem, align 8 %"$n_14" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$n_fptr_438" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %1, 0 - %"$n_envptr_439" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %1, 1 - %"$m_440" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$n_call_441" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_438"(i8* %"$n_envptr_439", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_440"), !dbg !15 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_441", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_14", align 8, !dbg !15 - %"$$n_14_442" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_14", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$n_14_442", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_66", align 8, !dbg !15 - %"$$retval_66_443" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_66", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_66_443" -} - -define internal { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } @"$fundef_63"(%"$$fundef_63_env_109"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !16 { -entry: - %"$retval_64" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_421" = icmp ugt i64 1, %"$gasrem_420" - br i1 %"$gascmp_421", label %"$out_of_gas_422", label %"$have_gas_423" - -"$out_of_gas_422": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_423" - -"$have_gas_423": ; preds = %"$out_of_gas_422", %entry - %"$consume_424" = sub i64 %"$gasrem_420", 1 - store i64 %"$consume_424", i64* @_gasrem, align 8 - %"$$fundef_65_envp_425_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_65_envp_425_salloc" = call i8* @_salloc(i8* %"$$fundef_65_envp_425_load", i64 16) - %"$$fundef_65_envp_425" = bitcast i8* %"$$fundef_65_envp_425_salloc" to %"$$fundef_65_env_108"* - %"$$fundef_65_env_voidp_427" = bitcast %"$$fundef_65_env_108"* %"$$fundef_65_envp_425" to i8* - %"$$fundef_65_cloval_428" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_65_env_108"*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })* @"$fundef_65" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_65_env_voidp_427", 1 - %"$$fundef_65_env_m_429" = getelementptr inbounds %"$$fundef_65_env_108", %"$$fundef_65_env_108"* %"$$fundef_65_envp_425", i32 0, i32 0 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_65_env_m_429", align 8 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$$fundef_65_cloval_428", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %"$retval_64", align 8, !dbg !17 - %"$$retval_64_430" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %"$retval_64", align 8 - ret { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$$retval_64_430" + %"$n_fptr_420" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %2, 0 + %"$n_envptr_421" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %2, 1 + %"$n_call_422" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_420"(i8* %"$n_envptr_421", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1), !dbg !15 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_422", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_14", align 8, !dbg !15 + %"$$n_14_423" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_14", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$n_14_423", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_62", align 8, !dbg !15 + %"$$retval_62_424" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_62", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_62_424" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_61"(%"$$fundef_61_env_110"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !18 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_59"(%"$$fundef_59_env_105"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !16 { entry: - %"$$fundef_61_env_m_389" = getelementptr inbounds %"$$fundef_61_env_110", %"$$fundef_61_env_110"* %0, i32 0, i32 0 - %"$m_envload_390" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_m_389", align 8 + %"$$fundef_59_env_m_384" = getelementptr inbounds %"$$fundef_59_env_105", %"$$fundef_59_env_105"* %0, i32 0, i32 0 + %"$m_envload_385" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_m_384", align 8 %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_390", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$$fundef_61_env_n_391" = getelementptr inbounds %"$$fundef_61_env_110", %"$$fundef_61_env_110"* %0, i32 0, i32 1 - %"$n_envload_392" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_n_391", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_385", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$$fundef_59_env_n_386" = getelementptr inbounds %"$$fundef_59_env_105", %"$$fundef_59_env_105"* %0, i32 0, i32 1 + %"$n_envload_387" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_n_386", align 8 %n = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_392", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - %"$retval_62" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_387", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + %"$retval_60" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_388" = load i64, i64* @_gasrem, align 8 + %"$gascmp_389" = icmp ugt i64 1, %"$gasrem_388" + br i1 %"$gascmp_389", label %"$out_of_gas_390", label %"$have_gas_391" + +"$out_of_gas_390": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_391" + +"$have_gas_391": ; preds = %"$out_of_gas_390", %entry + %"$consume_392" = sub i64 %"$gasrem_388", 1 + store i64 %"$consume_392", i64* @_gasrem, align 8 + %add_m = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_393" = load i64, i64* @_gasrem, align 8 %"$gascmp_394" = icmp ugt i64 1, %"$gasrem_393" br i1 %"$gascmp_394", label %"$out_of_gas_395", label %"$have_gas_396" -"$out_of_gas_395": ; preds = %entry +"$out_of_gas_395": ; preds = %"$have_gas_391" call void @_out_of_gas() br label %"$have_gas_396" -"$have_gas_396": ; preds = %"$out_of_gas_395", %entry +"$have_gas_396": ; preds = %"$out_of_gas_395", %"$have_gas_391" %"$consume_397" = sub i64 %"$gasrem_393", 1 store i64 %"$consume_397", i64* @_gasrem, align 8 - %add_m = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_398" = load i64, i64* @_gasrem, align 8 - %"$gascmp_399" = icmp ugt i64 1, %"$gasrem_398" - br i1 %"$gascmp_399", label %"$out_of_gas_400", label %"$have_gas_401" - -"$out_of_gas_400": ; preds = %"$have_gas_396" - call void @_out_of_gas() - br label %"$have_gas_401" - -"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_396" - %"$consume_402" = sub i64 %"$gasrem_398", 1 - store i64 %"$consume_402", i64* @_gasrem, align 8 %"$m_12" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$m_403" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$m_fptr_404" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_403", 0 - %"$m_envptr_405" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_403", 1 - %"$m_call_406" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_404"(i8* %"$m_envptr_405", { %Uint32 (i8*, %Uint32)*, i8* } %1), !dbg !19 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_406", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_12", align 8, !dbg !19 - %"$$m_12_407" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_12", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_12_407", { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8, !dbg !19 - %"$gasrem_408" = load i64, i64* @_gasrem, align 8 - %"$gascmp_409" = icmp ugt i64 1, %"$gasrem_408" - br i1 %"$gascmp_409", label %"$out_of_gas_410", label %"$have_gas_411" - -"$out_of_gas_410": ; preds = %"$have_gas_401" - call void @_out_of_gas() - br label %"$have_gas_411" - -"$have_gas_411": ; preds = %"$out_of_gas_410", %"$have_gas_401" - %"$consume_412" = sub i64 %"$gasrem_408", 1 - store i64 %"$consume_412", i64* @_gasrem, align 8 + %"$m_398" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$m_fptr_399" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_398", 0 + %"$m_envptr_400" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_398", 1 + %"$m_call_401" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_399"(i8* %"$m_envptr_400", { %Uint32 (i8*, %Uint32)*, i8* } %1), !dbg !17 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_401", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_12", align 8, !dbg !17 + %"$$m_12_402" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_12", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_12_402", { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8, !dbg !17 + %"$gasrem_403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_404" = icmp ugt i64 1, %"$gasrem_403" + br i1 %"$gascmp_404", label %"$out_of_gas_405", label %"$have_gas_406" + +"$out_of_gas_405": ; preds = %"$have_gas_396" + call void @_out_of_gas() + br label %"$have_gas_406" + +"$have_gas_406": ; preds = %"$out_of_gas_405", %"$have_gas_396" + %"$consume_407" = sub i64 %"$gasrem_403", 1 + store i64 %"$consume_407", i64* @_gasrem, align 8 %"$n_13" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$n_413" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - %"$n_fptr_414" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_413", 0 - %"$n_envptr_415" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_413", 1 - %"$add_m_416" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8 - %"$n_call_417" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_414"(i8* %"$n_envptr_415", { %Uint32 (i8*, %Uint32)*, i8* } %"$add_m_416"), !dbg !20 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_417", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_13", align 8, !dbg !20 - %"$$n_13_418" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_13", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_13_418", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_62", align 8, !dbg !20 - %"$$retval_62_419" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_62", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_62_419" + %"$n_408" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + %"$n_fptr_409" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_408", 0 + %"$n_envptr_410" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_408", 1 + %"$add_m_411" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8 + %"$n_call_412" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_409"(i8* %"$n_envptr_410", { %Uint32 (i8*, %Uint32)*, i8* } %"$add_m_411"), !dbg !18 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_412", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_13", align 8, !dbg !18 + %"$$n_13_413" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_13", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_13_413", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_60", align 8, !dbg !18 + %"$$retval_60_414" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_60", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_60_414" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_59"(%"$$fundef_59_env_111"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !21 { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_57"(%"$$fundef_57_env_106"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !19 { entry: - %"$$fundef_59_env_m_374" = getelementptr inbounds %"$$fundef_59_env_111", %"$$fundef_59_env_111"* %0, i32 0, i32 0 - %"$m_envload_375" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_m_374", align 8 + %"$$fundef_57_env_m_369" = getelementptr inbounds %"$$fundef_57_env_106", %"$$fundef_57_env_106"* %0, i32 0, i32 0 + %"$m_envload_370" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_57_env_m_369", align 8 %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_375", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$retval_60" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_376" = load i64, i64* @_gasrem, align 8 - %"$gascmp_377" = icmp ugt i64 1, %"$gasrem_376" - br i1 %"$gascmp_377", label %"$out_of_gas_378", label %"$have_gas_379" - -"$out_of_gas_378": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_379" - -"$have_gas_379": ; preds = %"$out_of_gas_378", %entry - %"$consume_380" = sub i64 %"$gasrem_376", 1 - store i64 %"$consume_380", i64* @_gasrem, align 8 - %"$$fundef_61_envp_381_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_61_envp_381_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_381_load", i64 32) - %"$$fundef_61_envp_381" = bitcast i8* %"$$fundef_61_envp_381_salloc" to %"$$fundef_61_env_110"* - %"$$fundef_61_env_voidp_383" = bitcast %"$$fundef_61_env_110"* %"$$fundef_61_envp_381" to i8* - %"$$fundef_61_cloval_384" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_61_env_110"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_61" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_61_env_voidp_383", 1 - %"$$fundef_61_env_m_385" = getelementptr inbounds %"$$fundef_61_env_110", %"$$fundef_61_env_110"* %"$$fundef_61_envp_381", i32 0, i32 0 - %"$m_386" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_386", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_m_385", align 8 - %"$$fundef_61_env_n_387" = getelementptr inbounds %"$$fundef_61_env_110", %"$$fundef_61_env_110"* %"$$fundef_61_envp_381", i32 0, i32 1 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_n_387", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_61_cloval_384", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_60", align 8, !dbg !22 - %"$$retval_60_388" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_60", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_60_388" + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_370", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$retval_58" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_371" = load i64, i64* @_gasrem, align 8 + %"$gascmp_372" = icmp ugt i64 1, %"$gasrem_371" + br i1 %"$gascmp_372", label %"$out_of_gas_373", label %"$have_gas_374" + +"$out_of_gas_373": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_374" + +"$have_gas_374": ; preds = %"$out_of_gas_373", %entry + %"$consume_375" = sub i64 %"$gasrem_371", 1 + store i64 %"$consume_375", i64* @_gasrem, align 8 + %"$$fundef_59_envp_376_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_59_envp_376_salloc" = call i8* @_salloc(i8* %"$$fundef_59_envp_376_load", i64 32) + %"$$fundef_59_envp_376" = bitcast i8* %"$$fundef_59_envp_376_salloc" to %"$$fundef_59_env_105"* + %"$$fundef_59_env_voidp_378" = bitcast %"$$fundef_59_env_105"* %"$$fundef_59_envp_376" to i8* + %"$$fundef_59_cloval_379" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_59_env_105"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_59" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_59_env_voidp_378", 1 + %"$$fundef_59_env_m_380" = getelementptr inbounds %"$$fundef_59_env_105", %"$$fundef_59_env_105"* %"$$fundef_59_envp_376", i32 0, i32 0 + %"$m_381" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_381", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_m_380", align 8 + %"$$fundef_59_env_n_382" = getelementptr inbounds %"$$fundef_59_env_105", %"$$fundef_59_env_105"* %"$$fundef_59_envp_376", i32 0, i32 1 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_n_382", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_59_cloval_379", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_58", align 8, !dbg !20 + %"$$retval_58_383" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_58", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_58_383" } -define internal { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } @"$fundef_57"(%"$$fundef_57_env_112"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !23 { +define internal { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } @"$fundef_55"(%"$$fundef_55_env_107"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !21 { entry: - %"$retval_58" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_363" = load i64, i64* @_gasrem, align 8 - %"$gascmp_364" = icmp ugt i64 1, %"$gasrem_363" - br i1 %"$gascmp_364", label %"$out_of_gas_365", label %"$have_gas_366" - -"$out_of_gas_365": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_366" - -"$have_gas_366": ; preds = %"$out_of_gas_365", %entry - %"$consume_367" = sub i64 %"$gasrem_363", 1 - store i64 %"$consume_367", i64* @_gasrem, align 8 - %"$$fundef_59_envp_368_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_59_envp_368_salloc" = call i8* @_salloc(i8* %"$$fundef_59_envp_368_load", i64 16) - %"$$fundef_59_envp_368" = bitcast i8* %"$$fundef_59_envp_368_salloc" to %"$$fundef_59_env_111"* - %"$$fundef_59_env_voidp_370" = bitcast %"$$fundef_59_env_111"* %"$$fundef_59_envp_368" to i8* - %"$$fundef_59_cloval_371" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_59_env_111"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_59" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_59_env_voidp_370", 1 - %"$$fundef_59_env_m_372" = getelementptr inbounds %"$$fundef_59_env_111", %"$$fundef_59_env_111"* %"$$fundef_59_envp_368", i32 0, i32 0 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_m_372", align 8 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$fundef_59_cloval_371", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_58", align 8, !dbg !24 - %"$$retval_58_373" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_58", align 8 - ret { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$retval_58_373" + %"$retval_56" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 + %"$gasrem_358" = load i64, i64* @_gasrem, align 8 + %"$gascmp_359" = icmp ugt i64 1, %"$gasrem_358" + br i1 %"$gascmp_359", label %"$out_of_gas_360", label %"$have_gas_361" + +"$out_of_gas_360": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_361" + +"$have_gas_361": ; preds = %"$out_of_gas_360", %entry + %"$consume_362" = sub i64 %"$gasrem_358", 1 + store i64 %"$consume_362", i64* @_gasrem, align 8 + %"$$fundef_57_envp_363_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_57_envp_363_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_363_load", i64 16) + %"$$fundef_57_envp_363" = bitcast i8* %"$$fundef_57_envp_363_salloc" to %"$$fundef_57_env_106"* + %"$$fundef_57_env_voidp_365" = bitcast %"$$fundef_57_env_106"* %"$$fundef_57_envp_363" to i8* + %"$$fundef_57_cloval_366" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_57_env_106"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_57" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_57_env_voidp_365", 1 + %"$$fundef_57_env_m_367" = getelementptr inbounds %"$$fundef_57_env_106", %"$$fundef_57_env_106"* %"$$fundef_57_envp_363", i32 0, i32 0 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_57_env_m_367", align 8 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$fundef_57_cloval_366", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_56", align 8, !dbg !22 + %"$$retval_56_368" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_56", align 8 + ret { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$retval_56_368" } -define internal %Uint32 @"$fundef_55"(%"$$fundef_55_env_113"* %0, %Uint32 %1) !dbg !25 { +define internal %Uint32 @"$fundef_53"(%"$$fundef_53_env_108"* %0, %Uint32 %1) !dbg !23 { entry: - %"$$fundef_55_env_m_320" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %0, i32 0, i32 0 - %"$m_envload_321" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_55_env_m_320", align 8 + %"$$fundef_53_env_m_315" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %0, i32 0, i32 0 + %"$m_envload_316" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_m_315", align 8 %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_321", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$$fundef_55_env_n_322" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %0, i32 0, i32 1 - %"$n_envload_323" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_55_env_n_322", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_316", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$$fundef_53_env_n_317" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %0, i32 0, i32 1 + %"$n_envload_318" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_n_317", align 8 %n = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_323", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - %"$$fundef_55_env_s_324" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %0, i32 0, i32 2 - %"$s_envload_325" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_55_env_s_324", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_318", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + %"$$fundef_53_env_s_319" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %0, i32 0, i32 2 + %"$s_envload_320" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_53_env_s_319", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_325", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$retval_56" = alloca %Uint32, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_320", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$retval_54" = alloca %Uint32, align 8 + %"$gasrem_321" = load i64, i64* @_gasrem, align 8 + %"$gascmp_322" = icmp ugt i64 1, %"$gasrem_321" + br i1 %"$gascmp_322", label %"$out_of_gas_323", label %"$have_gas_324" + +"$out_of_gas_323": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_324" + +"$have_gas_324": ; preds = %"$out_of_gas_323", %entry + %"$consume_325" = sub i64 %"$gasrem_321", 1 + store i64 %"$consume_325", i64* @_gasrem, align 8 + %nsz = alloca %Uint32, align 8 %"$gasrem_326" = load i64, i64* @_gasrem, align 8 %"$gascmp_327" = icmp ugt i64 1, %"$gasrem_326" br i1 %"$gascmp_327", label %"$out_of_gas_328", label %"$have_gas_329" -"$out_of_gas_328": ; preds = %entry +"$out_of_gas_328": ; preds = %"$have_gas_324" call void @_out_of_gas() br label %"$have_gas_329" -"$have_gas_329": ; preds = %"$out_of_gas_328", %entry +"$have_gas_329": ; preds = %"$out_of_gas_328", %"$have_gas_324" %"$consume_330" = sub i64 %"$gasrem_326", 1 store i64 %"$consume_330", i64* @_gasrem, align 8 - %nsz = alloca %Uint32, align 8 - %"$gasrem_331" = load i64, i64* @_gasrem, align 8 - %"$gascmp_332" = icmp ugt i64 1, %"$gasrem_331" - br i1 %"$gascmp_332", label %"$out_of_gas_333", label %"$have_gas_334" - -"$out_of_gas_333": ; preds = %"$have_gas_329" - call void @_out_of_gas() - br label %"$have_gas_334" - -"$have_gas_334": ; preds = %"$out_of_gas_333", %"$have_gas_329" - %"$consume_335" = sub i64 %"$gasrem_331", 1 - store i64 %"$consume_335", i64* @_gasrem, align 8 %"$n_8" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$n_336" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - %"$n_fptr_337" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_336", 0 - %"$n_envptr_338" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_336", 1 - %"$s_339" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$n_call_340" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_337"(i8* %"$n_envptr_338", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_339"), !dbg !26 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_340", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_8", align 8, !dbg !26 + %"$n_331" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + %"$n_fptr_332" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_331", 0 + %"$n_envptr_333" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_331", 1 + %"$s_334" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$n_call_335" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_332"(i8* %"$n_envptr_333", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_334"), !dbg !24 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_335", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_8", align 8, !dbg !24 %"$n_9" = alloca %Uint32, align 8 - %"$$n_8_341" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_8", align 8 - %"$$n_8_fptr_342" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_8_341", 0 - %"$$n_8_envptr_343" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_8_341", 1 - %"$$n_8_call_344" = call %Uint32 %"$$n_8_fptr_342"(i8* %"$$n_8_envptr_343", %Uint32 %1), !dbg !26 - store %Uint32 %"$$n_8_call_344", %Uint32* %"$n_9", align 4, !dbg !26 - %"$$n_9_345" = load %Uint32, %Uint32* %"$n_9", align 4 - store %Uint32 %"$$n_9_345", %Uint32* %nsz, align 4, !dbg !26 - %"$gasrem_346" = load i64, i64* @_gasrem, align 8 - %"$gascmp_347" = icmp ugt i64 1, %"$gasrem_346" - br i1 %"$gascmp_347", label %"$out_of_gas_348", label %"$have_gas_349" - -"$out_of_gas_348": ; preds = %"$have_gas_334" - call void @_out_of_gas() - br label %"$have_gas_349" - -"$have_gas_349": ; preds = %"$out_of_gas_348", %"$have_gas_334" - %"$consume_350" = sub i64 %"$gasrem_346", 1 - store i64 %"$consume_350", i64* @_gasrem, align 8 + %"$$n_8_336" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_8", align 8 + %"$$n_8_fptr_337" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_8_336", 0 + %"$$n_8_envptr_338" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_8_336", 1 + %"$$n_8_call_339" = call %Uint32 %"$$n_8_fptr_337"(i8* %"$$n_8_envptr_338", %Uint32 %1), !dbg !24 + store %Uint32 %"$$n_8_call_339", %Uint32* %"$n_9", align 4, !dbg !24 + %"$$n_9_340" = load %Uint32, %Uint32* %"$n_9", align 4 + store %Uint32 %"$$n_9_340", %Uint32* %nsz, align 4, !dbg !24 + %"$gasrem_341" = load i64, i64* @_gasrem, align 8 + %"$gascmp_342" = icmp ugt i64 1, %"$gasrem_341" + br i1 %"$gascmp_342", label %"$out_of_gas_343", label %"$have_gas_344" + +"$out_of_gas_343": ; preds = %"$have_gas_329" + call void @_out_of_gas() + br label %"$have_gas_344" + +"$have_gas_344": ; preds = %"$out_of_gas_343", %"$have_gas_329" + %"$consume_345" = sub i64 %"$gasrem_341", 1 + store i64 %"$consume_345", i64* @_gasrem, align 8 %"$m_10" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$m_351" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$m_fptr_352" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_351", 0 - %"$m_envptr_353" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_351", 1 - %"$s_354" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$m_call_355" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_352"(i8* %"$m_envptr_353", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_354"), !dbg !27 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_355", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_10", align 8, !dbg !27 + %"$m_346" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$m_fptr_347" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_346", 0 + %"$m_envptr_348" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_346", 1 + %"$s_349" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$m_call_350" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_347"(i8* %"$m_envptr_348", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_349"), !dbg !25 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_350", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_10", align 8, !dbg !25 %"$m_11" = alloca %Uint32, align 8 - %"$$m_10_356" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_10", align 8 - %"$$m_10_fptr_357" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_10_356", 0 - %"$$m_10_envptr_358" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_10_356", 1 - %"$nsz_359" = load %Uint32, %Uint32* %nsz, align 4 - %"$$m_10_call_360" = call %Uint32 %"$$m_10_fptr_357"(i8* %"$$m_10_envptr_358", %Uint32 %"$nsz_359"), !dbg !27 - store %Uint32 %"$$m_10_call_360", %Uint32* %"$m_11", align 4, !dbg !27 - %"$$m_11_361" = load %Uint32, %Uint32* %"$m_11", align 4 - store %Uint32 %"$$m_11_361", %Uint32* %"$retval_56", align 4, !dbg !27 - %"$$retval_56_362" = load %Uint32, %Uint32* %"$retval_56", align 4 - ret %Uint32 %"$$retval_56_362" + %"$$m_10_351" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_10", align 8 + %"$$m_10_fptr_352" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_10_351", 0 + %"$$m_10_envptr_353" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_10_351", 1 + %"$nsz_354" = load %Uint32, %Uint32* %nsz, align 4 + %"$$m_10_call_355" = call %Uint32 %"$$m_10_fptr_352"(i8* %"$$m_10_envptr_353", %Uint32 %"$nsz_354"), !dbg !25 + store %Uint32 %"$$m_10_call_355", %Uint32* %"$m_11", align 4, !dbg !25 + %"$$m_11_356" = load %Uint32, %Uint32* %"$m_11", align 4 + store %Uint32 %"$$m_11_356", %Uint32* %"$retval_54", align 4, !dbg !25 + %"$$retval_54_357" = load %Uint32, %Uint32* %"$retval_54", align 4 + ret %Uint32 %"$$retval_54_357" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_53"(%"$$fundef_53_env_114"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !28 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_51"(%"$$fundef_51_env_109"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !26 { entry: - %"$$fundef_53_env_m_301" = getelementptr inbounds %"$$fundef_53_env_114", %"$$fundef_53_env_114"* %0, i32 0, i32 0 - %"$m_envload_302" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_m_301", align 8 + %"$$fundef_51_env_m_296" = getelementptr inbounds %"$$fundef_51_env_109", %"$$fundef_51_env_109"* %0, i32 0, i32 0 + %"$m_envload_297" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_m_296", align 8 %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_302", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$$fundef_53_env_n_303" = getelementptr inbounds %"$$fundef_53_env_114", %"$$fundef_53_env_114"* %0, i32 0, i32 1 - %"$n_envload_304" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_n_303", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_297", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$$fundef_51_env_n_298" = getelementptr inbounds %"$$fundef_51_env_109", %"$$fundef_51_env_109"* %0, i32 0, i32 1 + %"$n_envload_299" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_n_298", align 8 %n = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_304", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - %"$retval_54" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_305" = load i64, i64* @_gasrem, align 8 - %"$gascmp_306" = icmp ugt i64 1, %"$gasrem_305" - br i1 %"$gascmp_306", label %"$out_of_gas_307", label %"$have_gas_308" - -"$out_of_gas_307": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_308" - -"$have_gas_308": ; preds = %"$out_of_gas_307", %entry - %"$consume_309" = sub i64 %"$gasrem_305", 1 - store i64 %"$consume_309", i64* @_gasrem, align 8 - %"$$fundef_55_envp_310_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_55_envp_310_salloc" = call i8* @_salloc(i8* %"$$fundef_55_envp_310_load", i64 48) - %"$$fundef_55_envp_310" = bitcast i8* %"$$fundef_55_envp_310_salloc" to %"$$fundef_55_env_113"* - %"$$fundef_55_env_voidp_312" = bitcast %"$$fundef_55_env_113"* %"$$fundef_55_envp_310" to i8* - %"$$fundef_55_cloval_313" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_55_env_113"*, %Uint32)* @"$fundef_55" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_55_env_voidp_312", 1 - %"$$fundef_55_env_m_314" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %"$$fundef_55_envp_310", i32 0, i32 0 - %"$m_315" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_315", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_55_env_m_314", align 8 - %"$$fundef_55_env_n_316" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %"$$fundef_55_envp_310", i32 0, i32 1 - %"$n_317" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_317", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_55_env_n_316", align 8 - %"$$fundef_55_env_s_318" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %"$$fundef_55_envp_310", i32 0, i32 2 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_55_env_s_318", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_55_cloval_313", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_54", align 8, !dbg !29 - %"$$retval_54_319" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_54", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_54_319" + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_299", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + %"$retval_52" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_301" = icmp ugt i64 1, %"$gasrem_300" + br i1 %"$gascmp_301", label %"$out_of_gas_302", label %"$have_gas_303" + +"$out_of_gas_302": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_303" + +"$have_gas_303": ; preds = %"$out_of_gas_302", %entry + %"$consume_304" = sub i64 %"$gasrem_300", 1 + store i64 %"$consume_304", i64* @_gasrem, align 8 + %"$$fundef_53_envp_305_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_53_envp_305_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_305_load", i64 48) + %"$$fundef_53_envp_305" = bitcast i8* %"$$fundef_53_envp_305_salloc" to %"$$fundef_53_env_108"* + %"$$fundef_53_env_voidp_307" = bitcast %"$$fundef_53_env_108"* %"$$fundef_53_envp_305" to i8* + %"$$fundef_53_cloval_308" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_53_env_108"*, %Uint32)* @"$fundef_53" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_53_env_voidp_307", 1 + %"$$fundef_53_env_m_309" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %"$$fundef_53_envp_305", i32 0, i32 0 + %"$m_310" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_310", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_m_309", align 8 + %"$$fundef_53_env_n_311" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %"$$fundef_53_envp_305", i32 0, i32 1 + %"$n_312" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_312", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_n_311", align 8 + %"$$fundef_53_env_s_313" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %"$$fundef_53_envp_305", i32 0, i32 2 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_53_env_s_313", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_53_cloval_308", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_52", align 8, !dbg !27 + %"$$retval_52_314" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_52", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_52_314" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_51"(%"$$fundef_51_env_115"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !30 { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_49"(%"$$fundef_49_env_110"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !28 { entry: - %"$$fundef_51_env_m_286" = getelementptr inbounds %"$$fundef_51_env_115", %"$$fundef_51_env_115"* %0, i32 0, i32 0 - %"$m_envload_287" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_m_286", align 8 + %"$$fundef_49_env_m_281" = getelementptr inbounds %"$$fundef_49_env_110", %"$$fundef_49_env_110"* %0, i32 0, i32 0 + %"$m_envload_282" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_49_env_m_281", align 8 %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_287", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$retval_52" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_288" = load i64, i64* @_gasrem, align 8 - %"$gascmp_289" = icmp ugt i64 1, %"$gasrem_288" - br i1 %"$gascmp_289", label %"$out_of_gas_290", label %"$have_gas_291" - -"$out_of_gas_290": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_291" - -"$have_gas_291": ; preds = %"$out_of_gas_290", %entry - %"$consume_292" = sub i64 %"$gasrem_288", 1 - store i64 %"$consume_292", i64* @_gasrem, align 8 - %"$$fundef_53_envp_293_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_53_envp_293_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_293_load", i64 32) - %"$$fundef_53_envp_293" = bitcast i8* %"$$fundef_53_envp_293_salloc" to %"$$fundef_53_env_114"* - %"$$fundef_53_env_voidp_295" = bitcast %"$$fundef_53_env_114"* %"$$fundef_53_envp_293" to i8* - %"$$fundef_53_cloval_296" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_53_env_114"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_53" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_53_env_voidp_295", 1 - %"$$fundef_53_env_m_297" = getelementptr inbounds %"$$fundef_53_env_114", %"$$fundef_53_env_114"* %"$$fundef_53_envp_293", i32 0, i32 0 - %"$m_298" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_298", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_m_297", align 8 - %"$$fundef_53_env_n_299" = getelementptr inbounds %"$$fundef_53_env_114", %"$$fundef_53_env_114"* %"$$fundef_53_envp_293", i32 0, i32 1 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_n_299", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_53_cloval_296", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_52", align 8, !dbg !31 - %"$$retval_52_300" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_52", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_52_300" + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_282", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$retval_50" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_283" = load i64, i64* @_gasrem, align 8 + %"$gascmp_284" = icmp ugt i64 1, %"$gasrem_283" + br i1 %"$gascmp_284", label %"$out_of_gas_285", label %"$have_gas_286" + +"$out_of_gas_285": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_286" + +"$have_gas_286": ; preds = %"$out_of_gas_285", %entry + %"$consume_287" = sub i64 %"$gasrem_283", 1 + store i64 %"$consume_287", i64* @_gasrem, align 8 + %"$$fundef_51_envp_288_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_51_envp_288_salloc" = call i8* @_salloc(i8* %"$$fundef_51_envp_288_load", i64 32) + %"$$fundef_51_envp_288" = bitcast i8* %"$$fundef_51_envp_288_salloc" to %"$$fundef_51_env_109"* + %"$$fundef_51_env_voidp_290" = bitcast %"$$fundef_51_env_109"* %"$$fundef_51_envp_288" to i8* + %"$$fundef_51_cloval_291" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_51_env_109"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_51" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_51_env_voidp_290", 1 + %"$$fundef_51_env_m_292" = getelementptr inbounds %"$$fundef_51_env_109", %"$$fundef_51_env_109"* %"$$fundef_51_envp_288", i32 0, i32 0 + %"$m_293" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_293", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_m_292", align 8 + %"$$fundef_51_env_n_294" = getelementptr inbounds %"$$fundef_51_env_109", %"$$fundef_51_env_109"* %"$$fundef_51_envp_288", i32 0, i32 1 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_n_294", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_51_cloval_291", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_50", align 8, !dbg !29 + %"$$retval_50_295" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_50", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_50_295" } -define internal { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } @"$fundef_49"(%"$$fundef_49_env_116"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !32 { +define internal { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } @"$fundef_47"(%"$$fundef_47_env_111"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !30 { entry: - %"$retval_50" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_275" = load i64, i64* @_gasrem, align 8 - %"$gascmp_276" = icmp ugt i64 1, %"$gasrem_275" - br i1 %"$gascmp_276", label %"$out_of_gas_277", label %"$have_gas_278" - -"$out_of_gas_277": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_278" - -"$have_gas_278": ; preds = %"$out_of_gas_277", %entry - %"$consume_279" = sub i64 %"$gasrem_275", 1 - store i64 %"$consume_279", i64* @_gasrem, align 8 - %"$$fundef_51_envp_280_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_51_envp_280_salloc" = call i8* @_salloc(i8* %"$$fundef_51_envp_280_load", i64 16) - %"$$fundef_51_envp_280" = bitcast i8* %"$$fundef_51_envp_280_salloc" to %"$$fundef_51_env_115"* - %"$$fundef_51_env_voidp_282" = bitcast %"$$fundef_51_env_115"* %"$$fundef_51_envp_280" to i8* - %"$$fundef_51_cloval_283" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_51_env_115"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_51" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_51_env_voidp_282", 1 - %"$$fundef_51_env_m_284" = getelementptr inbounds %"$$fundef_51_env_115", %"$$fundef_51_env_115"* %"$$fundef_51_envp_280", i32 0, i32 0 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_m_284", align 8 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$fundef_51_cloval_283", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_50", align 8, !dbg !33 - %"$$retval_50_285" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_50", align 8 - ret { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$retval_50_285" + %"$retval_48" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 + %"$gasrem_270" = load i64, i64* @_gasrem, align 8 + %"$gascmp_271" = icmp ugt i64 1, %"$gasrem_270" + br i1 %"$gascmp_271", label %"$out_of_gas_272", label %"$have_gas_273" + +"$out_of_gas_272": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_273" + +"$have_gas_273": ; preds = %"$out_of_gas_272", %entry + %"$consume_274" = sub i64 %"$gasrem_270", 1 + store i64 %"$consume_274", i64* @_gasrem, align 8 + %"$$fundef_49_envp_275_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_49_envp_275_salloc" = call i8* @_salloc(i8* %"$$fundef_49_envp_275_load", i64 16) + %"$$fundef_49_envp_275" = bitcast i8* %"$$fundef_49_envp_275_salloc" to %"$$fundef_49_env_110"* + %"$$fundef_49_env_voidp_277" = bitcast %"$$fundef_49_env_110"* %"$$fundef_49_envp_275" to i8* + %"$$fundef_49_cloval_278" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_49_env_110"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_49" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_49_env_voidp_277", 1 + %"$$fundef_49_env_m_279" = getelementptr inbounds %"$$fundef_49_env_110", %"$$fundef_49_env_110"* %"$$fundef_49_envp_275", i32 0, i32 0 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_49_env_m_279", align 8 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$fundef_49_cloval_278", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_48", align 8, !dbg !31 + %"$$retval_48_280" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_48", align 8 + ret { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$retval_48_280" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_47"(%"$$fundef_47_env_117"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !34 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_45"(%"$$fundef_45_env_112"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !32 { entry: - %"$$fundef_47_env_s_230" = getelementptr inbounds %"$$fundef_47_env_117", %"$$fundef_47_env_117"* %0, i32 0, i32 0 - %"$s_envload_231" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_47_env_s_230", align 8 + %"$$fundef_45_env_s_225" = getelementptr inbounds %"$$fundef_45_env_112", %"$$fundef_45_env_112"* %0, i32 0, i32 0 + %"$s_envload_226" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_45_env_s_225", align 8 %s = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_envload_231", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 - %"$retval_48" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_envload_226", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 + %"$retval_46" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_228" = icmp ugt i64 1, %"$gasrem_227" + br i1 %"$gascmp_228", label %"$out_of_gas_229", label %"$have_gas_230" + +"$out_of_gas_229": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_230" + +"$have_gas_230": ; preds = %"$out_of_gas_229", %entry + %"$consume_231" = sub i64 %"$gasrem_227", 1 + store i64 %"$consume_231", i64* @_gasrem, align 8 + %sz = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_232" = load i64, i64* @_gasrem, align 8 %"$gascmp_233" = icmp ugt i64 1, %"$gasrem_232" br i1 %"$gascmp_233", label %"$out_of_gas_234", label %"$have_gas_235" -"$out_of_gas_234": ; preds = %entry +"$out_of_gas_234": ; preds = %"$have_gas_230" call void @_out_of_gas() br label %"$have_gas_235" -"$have_gas_235": ; preds = %"$out_of_gas_234", %entry +"$have_gas_235": ; preds = %"$out_of_gas_234", %"$have_gas_230" %"$consume_236" = sub i64 %"$gasrem_232", 1 store i64 %"$consume_236", i64* @_gasrem, align 8 - %sz = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_237" = load i64, i64* @_gasrem, align 8 - %"$gascmp_238" = icmp ugt i64 1, %"$gasrem_237" - br i1 %"$gascmp_238", label %"$out_of_gas_239", label %"$have_gas_240" - -"$out_of_gas_239": ; preds = %"$have_gas_235" - call void @_out_of_gas() - br label %"$have_gas_240" - -"$have_gas_240": ; preds = %"$out_of_gas_239", %"$have_gas_235" - %"$consume_241" = sub i64 %"$gasrem_237", 1 - store i64 %"$consume_241", i64* @_gasrem, align 8 %"$s_5" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$s_242" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 - %"$s_fptr_243" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_242", 0 - %"$s_envptr_244" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_242", 1 - %"$s_call_245" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_243"(i8* %"$s_envptr_244", { %Uint32 (i8*, %Uint32)*, i8* } %1), !dbg !35 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_245", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_5", align 8, !dbg !35 - %"$$s_5_246" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_5", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_5_246", { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8, !dbg !35 + %"$s_237" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 + %"$s_fptr_238" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_237", 0 + %"$s_envptr_239" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_237", 1 + %"$s_call_240" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_238"(i8* %"$s_envptr_239", { %Uint32 (i8*, %Uint32)*, i8* } %1), !dbg !33 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_240", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_5", align 8, !dbg !33 + %"$$s_5_241" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_5", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_5_241", { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8, !dbg !33 + %"$gasrem_242" = load i64, i64* @_gasrem, align 8 + %"$gascmp_243" = icmp ugt i64 1, %"$gasrem_242" + br i1 %"$gascmp_243", label %"$out_of_gas_244", label %"$have_gas_245" + +"$out_of_gas_244": ; preds = %"$have_gas_235" + call void @_out_of_gas() + br label %"$have_gas_245" + +"$have_gas_245": ; preds = %"$out_of_gas_244", %"$have_gas_235" + %"$consume_246" = sub i64 %"$gasrem_242", 1 + store i64 %"$consume_246", i64* @_gasrem, align 8 + %ssz = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_247" = load i64, i64* @_gasrem, align 8 %"$gascmp_248" = icmp ugt i64 1, %"$gasrem_247" br i1 %"$gascmp_248", label %"$out_of_gas_249", label %"$have_gas_250" -"$out_of_gas_249": ; preds = %"$have_gas_240" +"$out_of_gas_249": ; preds = %"$have_gas_245" call void @_out_of_gas() br label %"$have_gas_250" -"$have_gas_250": ; preds = %"$out_of_gas_249", %"$have_gas_240" +"$have_gas_250": ; preds = %"$out_of_gas_249", %"$have_gas_245" %"$consume_251" = sub i64 %"$gasrem_247", 1 store i64 %"$consume_251", i64* @_gasrem, align 8 - %ssz = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_252" = load i64, i64* @_gasrem, align 8 - %"$gascmp_253" = icmp ugt i64 1, %"$gasrem_252" - br i1 %"$gascmp_253", label %"$out_of_gas_254", label %"$have_gas_255" - -"$out_of_gas_254": ; preds = %"$have_gas_250" - call void @_out_of_gas() - br label %"$have_gas_255" - -"$have_gas_255": ; preds = %"$out_of_gas_254", %"$have_gas_250" - %"$consume_256" = sub i64 %"$gasrem_252", 1 - store i64 %"$consume_256", i64* @_gasrem, align 8 %"$s_6" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$s_257" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 - %"$s_fptr_258" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_257", 0 - %"$s_envptr_259" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_257", 1 - %"$sz_260" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8 - %"$s_call_261" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_258"(i8* %"$s_envptr_259", { %Uint32 (i8*, %Uint32)*, i8* } %"$sz_260"), !dbg !36 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_261", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_6", align 8, !dbg !36 - %"$$s_6_262" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_6", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_6_262", { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8, !dbg !36 - %"$gasrem_263" = load i64, i64* @_gasrem, align 8 - %"$gascmp_264" = icmp ugt i64 1, %"$gasrem_263" - br i1 %"$gascmp_264", label %"$out_of_gas_265", label %"$have_gas_266" - -"$out_of_gas_265": ; preds = %"$have_gas_255" - call void @_out_of_gas() - br label %"$have_gas_266" - -"$have_gas_266": ; preds = %"$out_of_gas_265", %"$have_gas_255" - %"$consume_267" = sub i64 %"$gasrem_263", 1 - store i64 %"$consume_267", i64* @_gasrem, align 8 + %"$s_252" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 + %"$s_fptr_253" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_252", 0 + %"$s_envptr_254" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_252", 1 + %"$sz_255" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8 + %"$s_call_256" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_253"(i8* %"$s_envptr_254", { %Uint32 (i8*, %Uint32)*, i8* } %"$sz_255"), !dbg !34 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_256", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_6", align 8, !dbg !34 + %"$$s_6_257" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_6", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_6_257", { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8, !dbg !34 + %"$gasrem_258" = load i64, i64* @_gasrem, align 8 + %"$gascmp_259" = icmp ugt i64 1, %"$gasrem_258" + br i1 %"$gascmp_259", label %"$out_of_gas_260", label %"$have_gas_261" + +"$out_of_gas_260": ; preds = %"$have_gas_250" + call void @_out_of_gas() + br label %"$have_gas_261" + +"$have_gas_261": ; preds = %"$out_of_gas_260", %"$have_gas_250" + %"$consume_262" = sub i64 %"$gasrem_258", 1 + store i64 %"$consume_262", i64* @_gasrem, align 8 %"$s_7" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$s_268" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 - %"$s_fptr_269" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_268", 0 - %"$s_envptr_270" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_268", 1 - %"$ssz_271" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8 - %"$s_call_272" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_269"(i8* %"$s_envptr_270", { %Uint32 (i8*, %Uint32)*, i8* } %"$ssz_271"), !dbg !37 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_272", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_7", align 8, !dbg !37 - %"$$s_7_273" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_7", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_7_273", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8, !dbg !37 - %"$$retval_48_274" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_48_274" + %"$s_263" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 + %"$s_fptr_264" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_263", 0 + %"$s_envptr_265" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_263", 1 + %"$ssz_266" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8 + %"$s_call_267" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_264"(i8* %"$s_envptr_265", { %Uint32 (i8*, %Uint32)*, i8* } %"$ssz_266"), !dbg !35 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_267", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_7", align 8, !dbg !35 + %"$$s_7_268" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_7", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_7_268", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_46", align 8, !dbg !35 + %"$$retval_46_269" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_46", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_46_269" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_45"(%"$$fundef_45_env_118"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !38 { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_43"(%"$$fundef_43_env_113"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) !dbg !36 { entry: - %"$retval_46" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_219" = load i64, i64* @_gasrem, align 8 - %"$gascmp_220" = icmp ugt i64 1, %"$gasrem_219" - br i1 %"$gascmp_220", label %"$out_of_gas_221", label %"$have_gas_222" - -"$out_of_gas_221": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_222" - -"$have_gas_222": ; preds = %"$out_of_gas_221", %entry - %"$consume_223" = sub i64 %"$gasrem_219", 1 - store i64 %"$consume_223", i64* @_gasrem, align 8 - %"$$fundef_47_envp_224_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_47_envp_224_salloc" = call i8* @_salloc(i8* %"$$fundef_47_envp_224_load", i64 16) - %"$$fundef_47_envp_224" = bitcast i8* %"$$fundef_47_envp_224_salloc" to %"$$fundef_47_env_117"* - %"$$fundef_47_env_voidp_226" = bitcast %"$$fundef_47_env_117"* %"$$fundef_47_envp_224" to i8* - %"$$fundef_47_cloval_227" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_47_env_117"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_47" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_47_env_voidp_226", 1 - %"$$fundef_47_env_s_228" = getelementptr inbounds %"$$fundef_47_env_117", %"$$fundef_47_env_117"* %"$$fundef_47_envp_224", i32 0, i32 0 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_47_env_s_228", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_47_cloval_227", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_46", align 8, !dbg !39 - %"$$retval_46_229" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_46", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_46_229" + %"$retval_44" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_214" = load i64, i64* @_gasrem, align 8 + %"$gascmp_215" = icmp ugt i64 1, %"$gasrem_214" + br i1 %"$gascmp_215", label %"$out_of_gas_216", label %"$have_gas_217" + +"$out_of_gas_216": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_217" + +"$have_gas_217": ; preds = %"$out_of_gas_216", %entry + %"$consume_218" = sub i64 %"$gasrem_214", 1 + store i64 %"$consume_218", i64* @_gasrem, align 8 + %"$$fundef_45_envp_219_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_45_envp_219_salloc" = call i8* @_salloc(i8* %"$$fundef_45_envp_219_load", i64 16) + %"$$fundef_45_envp_219" = bitcast i8* %"$$fundef_45_envp_219_salloc" to %"$$fundef_45_env_112"* + %"$$fundef_45_env_voidp_221" = bitcast %"$$fundef_45_env_112"* %"$$fundef_45_envp_219" to i8* + %"$$fundef_45_cloval_222" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_45_env_112"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_45" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_45_env_voidp_221", 1 + %"$$fundef_45_env_s_223" = getelementptr inbounds %"$$fundef_45_env_112", %"$$fundef_45_env_112"* %"$$fundef_45_envp_219", i32 0, i32 0 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_45_env_s_223", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_45_cloval_222", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_44", align 8, !dbg !37 + %"$$retval_44_224" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_44", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_44_224" } -define internal %Uint32 @"$fundef_43"(%"$$fundef_43_env_119"* %0, %Uint32 %1) !dbg !40 { +define internal %Uint32 @"$fundef_41"(%"$$fundef_41_env_114"* %0, %Uint32 %1) !dbg !38 { entry: - %"$$fundef_43_env_s_174" = getelementptr inbounds %"$$fundef_43_env_119", %"$$fundef_43_env_119"* %0, i32 0, i32 0 - %"$s_envload_175" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_43_env_s_174", align 8 + %"$$fundef_41_env_s_169" = getelementptr inbounds %"$$fundef_41_env_114", %"$$fundef_41_env_114"* %0, i32 0, i32 0 + %"$s_envload_170" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_41_env_s_169", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_175", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$retval_44" = alloca %Uint32, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_170", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$retval_42" = alloca %Uint32, align 8 + %"$gasrem_171" = load i64, i64* @_gasrem, align 8 + %"$gascmp_172" = icmp ugt i64 1, %"$gasrem_171" + br i1 %"$gascmp_172", label %"$out_of_gas_173", label %"$have_gas_174" + +"$out_of_gas_173": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_174" + +"$have_gas_174": ; preds = %"$out_of_gas_173", %entry + %"$consume_175" = sub i64 %"$gasrem_171", 1 + store i64 %"$consume_175", i64* @_gasrem, align 8 + %sz = alloca %Uint32, align 8 %"$gasrem_176" = load i64, i64* @_gasrem, align 8 %"$gascmp_177" = icmp ugt i64 1, %"$gasrem_176" br i1 %"$gascmp_177", label %"$out_of_gas_178", label %"$have_gas_179" -"$out_of_gas_178": ; preds = %entry +"$out_of_gas_178": ; preds = %"$have_gas_174" call void @_out_of_gas() br label %"$have_gas_179" -"$have_gas_179": ; preds = %"$out_of_gas_178", %entry +"$have_gas_179": ; preds = %"$out_of_gas_178", %"$have_gas_174" %"$consume_180" = sub i64 %"$gasrem_176", 1 store i64 %"$consume_180", i64* @_gasrem, align 8 - %sz = alloca %Uint32, align 8 - %"$gasrem_181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_182" = icmp ugt i64 1, %"$gasrem_181" - br i1 %"$gascmp_182", label %"$out_of_gas_183", label %"$have_gas_184" - -"$out_of_gas_183": ; preds = %"$have_gas_179" - call void @_out_of_gas() - br label %"$have_gas_184" - -"$have_gas_184": ; preds = %"$out_of_gas_183", %"$have_gas_179" - %"$consume_185" = sub i64 %"$gasrem_181", 1 - store i64 %"$consume_185", i64* @_gasrem, align 8 %"$s_2" = alloca %Uint32, align 8 - %"$s_186" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_187" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_186", 0 - %"$s_envptr_188" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_186", 1 - %"$s_call_189" = call %Uint32 %"$s_fptr_187"(i8* %"$s_envptr_188", %Uint32 %1), !dbg !41 - store %Uint32 %"$s_call_189", %Uint32* %"$s_2", align 4, !dbg !41 - %"$$s_2_190" = load %Uint32, %Uint32* %"$s_2", align 4 - store %Uint32 %"$$s_2_190", %Uint32* %sz, align 4, !dbg !41 + %"$s_181" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_182" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_181", 0 + %"$s_envptr_183" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_181", 1 + %"$s_call_184" = call %Uint32 %"$s_fptr_182"(i8* %"$s_envptr_183", %Uint32 %1), !dbg !39 + store %Uint32 %"$s_call_184", %Uint32* %"$s_2", align 4, !dbg !39 + %"$$s_2_185" = load %Uint32, %Uint32* %"$s_2", align 4 + store %Uint32 %"$$s_2_185", %Uint32* %sz, align 4, !dbg !39 + %"$gasrem_186" = load i64, i64* @_gasrem, align 8 + %"$gascmp_187" = icmp ugt i64 1, %"$gasrem_186" + br i1 %"$gascmp_187", label %"$out_of_gas_188", label %"$have_gas_189" + +"$out_of_gas_188": ; preds = %"$have_gas_179" + call void @_out_of_gas() + br label %"$have_gas_189" + +"$have_gas_189": ; preds = %"$out_of_gas_188", %"$have_gas_179" + %"$consume_190" = sub i64 %"$gasrem_186", 1 + store i64 %"$consume_190", i64* @_gasrem, align 8 + %ssz = alloca %Uint32, align 8 %"$gasrem_191" = load i64, i64* @_gasrem, align 8 %"$gascmp_192" = icmp ugt i64 1, %"$gasrem_191" br i1 %"$gascmp_192", label %"$out_of_gas_193", label %"$have_gas_194" -"$out_of_gas_193": ; preds = %"$have_gas_184" +"$out_of_gas_193": ; preds = %"$have_gas_189" call void @_out_of_gas() br label %"$have_gas_194" -"$have_gas_194": ; preds = %"$out_of_gas_193", %"$have_gas_184" +"$have_gas_194": ; preds = %"$out_of_gas_193", %"$have_gas_189" %"$consume_195" = sub i64 %"$gasrem_191", 1 store i64 %"$consume_195", i64* @_gasrem, align 8 - %ssz = alloca %Uint32, align 8 - %"$gasrem_196" = load i64, i64* @_gasrem, align 8 - %"$gascmp_197" = icmp ugt i64 1, %"$gasrem_196" - br i1 %"$gascmp_197", label %"$out_of_gas_198", label %"$have_gas_199" - -"$out_of_gas_198": ; preds = %"$have_gas_194" - call void @_out_of_gas() - br label %"$have_gas_199" - -"$have_gas_199": ; preds = %"$out_of_gas_198", %"$have_gas_194" - %"$consume_200" = sub i64 %"$gasrem_196", 1 - store i64 %"$consume_200", i64* @_gasrem, align 8 %"$s_3" = alloca %Uint32, align 8 - %"$s_201" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_202" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_201", 0 - %"$s_envptr_203" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_201", 1 - %"$sz_204" = load %Uint32, %Uint32* %sz, align 4 - %"$s_call_205" = call %Uint32 %"$s_fptr_202"(i8* %"$s_envptr_203", %Uint32 %"$sz_204"), !dbg !42 - store %Uint32 %"$s_call_205", %Uint32* %"$s_3", align 4, !dbg !42 - %"$$s_3_206" = load %Uint32, %Uint32* %"$s_3", align 4 - store %Uint32 %"$$s_3_206", %Uint32* %ssz, align 4, !dbg !42 - %"$gasrem_207" = load i64, i64* @_gasrem, align 8 - %"$gascmp_208" = icmp ugt i64 1, %"$gasrem_207" - br i1 %"$gascmp_208", label %"$out_of_gas_209", label %"$have_gas_210" - -"$out_of_gas_209": ; preds = %"$have_gas_199" - call void @_out_of_gas() - br label %"$have_gas_210" - -"$have_gas_210": ; preds = %"$out_of_gas_209", %"$have_gas_199" - %"$consume_211" = sub i64 %"$gasrem_207", 1 - store i64 %"$consume_211", i64* @_gasrem, align 8 + %"$s_196" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_197" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_196", 0 + %"$s_envptr_198" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_196", 1 + %"$sz_199" = load %Uint32, %Uint32* %sz, align 4 + %"$s_call_200" = call %Uint32 %"$s_fptr_197"(i8* %"$s_envptr_198", %Uint32 %"$sz_199"), !dbg !40 + store %Uint32 %"$s_call_200", %Uint32* %"$s_3", align 4, !dbg !40 + %"$$s_3_201" = load %Uint32, %Uint32* %"$s_3", align 4 + store %Uint32 %"$$s_3_201", %Uint32* %ssz, align 4, !dbg !40 + %"$gasrem_202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_203" = icmp ugt i64 1, %"$gasrem_202" + br i1 %"$gascmp_203", label %"$out_of_gas_204", label %"$have_gas_205" + +"$out_of_gas_204": ; preds = %"$have_gas_194" + call void @_out_of_gas() + br label %"$have_gas_205" + +"$have_gas_205": ; preds = %"$out_of_gas_204", %"$have_gas_194" + %"$consume_206" = sub i64 %"$gasrem_202", 1 + store i64 %"$consume_206", i64* @_gasrem, align 8 %"$s_4" = alloca %Uint32, align 8 - %"$s_212" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_213" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_212", 0 - %"$s_envptr_214" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_212", 1 - %"$ssz_215" = load %Uint32, %Uint32* %ssz, align 4 - %"$s_call_216" = call %Uint32 %"$s_fptr_213"(i8* %"$s_envptr_214", %Uint32 %"$ssz_215"), !dbg !43 - store %Uint32 %"$s_call_216", %Uint32* %"$s_4", align 4, !dbg !43 - %"$$s_4_217" = load %Uint32, %Uint32* %"$s_4", align 4 - store %Uint32 %"$$s_4_217", %Uint32* %"$retval_44", align 4, !dbg !43 - %"$$retval_44_218" = load %Uint32, %Uint32* %"$retval_44", align 4 - ret %Uint32 %"$$retval_44_218" + %"$s_207" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_208" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_207", 0 + %"$s_envptr_209" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_207", 1 + %"$ssz_210" = load %Uint32, %Uint32* %ssz, align 4 + %"$s_call_211" = call %Uint32 %"$s_fptr_208"(i8* %"$s_envptr_209", %Uint32 %"$ssz_210"), !dbg !41 + store %Uint32 %"$s_call_211", %Uint32* %"$s_4", align 4, !dbg !41 + %"$$s_4_212" = load %Uint32, %Uint32* %"$s_4", align 4 + store %Uint32 %"$$s_4_212", %Uint32* %"$retval_42", align 4, !dbg !41 + %"$$retval_42_213" = load %Uint32, %Uint32* %"$retval_42", align 4 + ret %Uint32 %"$$retval_42_213" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_41"(%"$$fundef_41_env_120"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !44 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_39"(%"$$fundef_39_env_115"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !42 { entry: - %"$retval_42" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_163" = load i64, i64* @_gasrem, align 8 - %"$gascmp_164" = icmp ugt i64 1, %"$gasrem_163" - br i1 %"$gascmp_164", label %"$out_of_gas_165", label %"$have_gas_166" - -"$out_of_gas_165": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_166" - -"$have_gas_166": ; preds = %"$out_of_gas_165", %entry - %"$consume_167" = sub i64 %"$gasrem_163", 1 - store i64 %"$consume_167", i64* @_gasrem, align 8 - %"$$fundef_43_envp_168_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_43_envp_168_salloc" = call i8* @_salloc(i8* %"$$fundef_43_envp_168_load", i64 16) - %"$$fundef_43_envp_168" = bitcast i8* %"$$fundef_43_envp_168_salloc" to %"$$fundef_43_env_119"* - %"$$fundef_43_env_voidp_170" = bitcast %"$$fundef_43_env_119"* %"$$fundef_43_envp_168" to i8* - %"$$fundef_43_cloval_171" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_43_env_119"*, %Uint32)* @"$fundef_43" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_43_env_voidp_170", 1 - %"$$fundef_43_env_s_172" = getelementptr inbounds %"$$fundef_43_env_119", %"$$fundef_43_env_119"* %"$$fundef_43_envp_168", i32 0, i32 0 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_43_env_s_172", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_43_cloval_171", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_42", align 8, !dbg !45 - %"$$retval_42_173" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_42", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_42_173" + %"$retval_40" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_158" = load i64, i64* @_gasrem, align 8 + %"$gascmp_159" = icmp ugt i64 1, %"$gasrem_158" + br i1 %"$gascmp_159", label %"$out_of_gas_160", label %"$have_gas_161" + +"$out_of_gas_160": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_161" + +"$have_gas_161": ; preds = %"$out_of_gas_160", %entry + %"$consume_162" = sub i64 %"$gasrem_158", 1 + store i64 %"$consume_162", i64* @_gasrem, align 8 + %"$$fundef_41_envp_163_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_41_envp_163_salloc" = call i8* @_salloc(i8* %"$$fundef_41_envp_163_load", i64 16) + %"$$fundef_41_envp_163" = bitcast i8* %"$$fundef_41_envp_163_salloc" to %"$$fundef_41_env_114"* + %"$$fundef_41_env_voidp_165" = bitcast %"$$fundef_41_env_114"* %"$$fundef_41_envp_163" to i8* + %"$$fundef_41_cloval_166" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_41_env_114"*, %Uint32)* @"$fundef_41" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_41_env_voidp_165", 1 + %"$$fundef_41_env_s_167" = getelementptr inbounds %"$$fundef_41_env_114", %"$$fundef_41_env_114"* %"$$fundef_41_envp_163", i32 0, i32 0 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_41_env_s_167", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_41_cloval_166", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_40", align 8, !dbg !43 + %"$$retval_40_168" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_40", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_40_168" } -define internal %Uint32 @"$fundef_39"(%"$$fundef_39_env_121"* %0, %Uint32 %1) !dbg !46 { +define internal %Uint32 @"$fundef_37"(%"$$fundef_37_env_116"* %0, %Uint32 %1) !dbg !44 { entry: - %"$$fundef_39_env_s_134" = getelementptr inbounds %"$$fundef_39_env_121", %"$$fundef_39_env_121"* %0, i32 0, i32 0 - %"$s_envload_135" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_39_env_s_134", align 8 + %"$$fundef_37_env_s_129" = getelementptr inbounds %"$$fundef_37_env_116", %"$$fundef_37_env_116"* %0, i32 0, i32 0 + %"$s_envload_130" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_37_env_s_129", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_135", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$retval_40" = alloca %Uint32, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_130", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$retval_38" = alloca %Uint32, align 8 + %"$gasrem_131" = load i64, i64* @_gasrem, align 8 + %"$gascmp_132" = icmp ugt i64 1, %"$gasrem_131" + br i1 %"$gascmp_132", label %"$out_of_gas_133", label %"$have_gas_134" + +"$out_of_gas_133": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_134" + +"$have_gas_134": ; preds = %"$out_of_gas_133", %entry + %"$consume_135" = sub i64 %"$gasrem_131", 1 + store i64 %"$consume_135", i64* @_gasrem, align 8 + %sz = alloca %Uint32, align 8 %"$gasrem_136" = load i64, i64* @_gasrem, align 8 %"$gascmp_137" = icmp ugt i64 1, %"$gasrem_136" br i1 %"$gascmp_137", label %"$out_of_gas_138", label %"$have_gas_139" -"$out_of_gas_138": ; preds = %entry +"$out_of_gas_138": ; preds = %"$have_gas_134" call void @_out_of_gas() br label %"$have_gas_139" -"$have_gas_139": ; preds = %"$out_of_gas_138", %entry +"$have_gas_139": ; preds = %"$out_of_gas_138", %"$have_gas_134" %"$consume_140" = sub i64 %"$gasrem_136", 1 store i64 %"$consume_140", i64* @_gasrem, align 8 - %sz = alloca %Uint32, align 8 - %"$gasrem_141" = load i64, i64* @_gasrem, align 8 - %"$gascmp_142" = icmp ugt i64 1, %"$gasrem_141" - br i1 %"$gascmp_142", label %"$out_of_gas_143", label %"$have_gas_144" - -"$out_of_gas_143": ; preds = %"$have_gas_139" - call void @_out_of_gas() - br label %"$have_gas_144" - -"$have_gas_144": ; preds = %"$out_of_gas_143", %"$have_gas_139" - %"$consume_145" = sub i64 %"$gasrem_141", 1 - store i64 %"$consume_145", i64* @_gasrem, align 8 %"$s_0" = alloca %Uint32, align 8 - %"$s_146" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_147" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_146", 0 - %"$s_envptr_148" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_146", 1 - %"$s_call_149" = call %Uint32 %"$s_fptr_147"(i8* %"$s_envptr_148", %Uint32 %1), !dbg !47 - store %Uint32 %"$s_call_149", %Uint32* %"$s_0", align 4, !dbg !47 - %"$$s_0_150" = load %Uint32, %Uint32* %"$s_0", align 4 - store %Uint32 %"$$s_0_150", %Uint32* %sz, align 4, !dbg !47 - %"$gasrem_151" = load i64, i64* @_gasrem, align 8 - %"$gascmp_152" = icmp ugt i64 1, %"$gasrem_151" - br i1 %"$gascmp_152", label %"$out_of_gas_153", label %"$have_gas_154" - -"$out_of_gas_153": ; preds = %"$have_gas_144" - call void @_out_of_gas() - br label %"$have_gas_154" - -"$have_gas_154": ; preds = %"$out_of_gas_153", %"$have_gas_144" - %"$consume_155" = sub i64 %"$gasrem_151", 1 - store i64 %"$consume_155", i64* @_gasrem, align 8 + %"$s_141" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_142" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_141", 0 + %"$s_envptr_143" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_141", 1 + %"$s_call_144" = call %Uint32 %"$s_fptr_142"(i8* %"$s_envptr_143", %Uint32 %1), !dbg !45 + store %Uint32 %"$s_call_144", %Uint32* %"$s_0", align 4, !dbg !45 + %"$$s_0_145" = load %Uint32, %Uint32* %"$s_0", align 4 + store %Uint32 %"$$s_0_145", %Uint32* %sz, align 4, !dbg !45 + %"$gasrem_146" = load i64, i64* @_gasrem, align 8 + %"$gascmp_147" = icmp ugt i64 1, %"$gasrem_146" + br i1 %"$gascmp_147", label %"$out_of_gas_148", label %"$have_gas_149" + +"$out_of_gas_148": ; preds = %"$have_gas_139" + call void @_out_of_gas() + br label %"$have_gas_149" + +"$have_gas_149": ; preds = %"$out_of_gas_148", %"$have_gas_139" + %"$consume_150" = sub i64 %"$gasrem_146", 1 + store i64 %"$consume_150", i64* @_gasrem, align 8 %"$s_1" = alloca %Uint32, align 8 - %"$s_156" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_157" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_156", 0 - %"$s_envptr_158" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_156", 1 - %"$sz_159" = load %Uint32, %Uint32* %sz, align 4 - %"$s_call_160" = call %Uint32 %"$s_fptr_157"(i8* %"$s_envptr_158", %Uint32 %"$sz_159"), !dbg !48 - store %Uint32 %"$s_call_160", %Uint32* %"$s_1", align 4, !dbg !48 - %"$$s_1_161" = load %Uint32, %Uint32* %"$s_1", align 4 - store %Uint32 %"$$s_1_161", %Uint32* %"$retval_40", align 4, !dbg !48 - %"$$retval_40_162" = load %Uint32, %Uint32* %"$retval_40", align 4 - ret %Uint32 %"$$retval_40_162" + %"$s_151" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_152" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_151", 0 + %"$s_envptr_153" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_151", 1 + %"$sz_154" = load %Uint32, %Uint32* %sz, align 4 + %"$s_call_155" = call %Uint32 %"$s_fptr_152"(i8* %"$s_envptr_153", %Uint32 %"$sz_154"), !dbg !46 + store %Uint32 %"$s_call_155", %Uint32* %"$s_1", align 4, !dbg !46 + %"$$s_1_156" = load %Uint32, %Uint32* %"$s_1", align 4 + store %Uint32 %"$$s_1_156", %Uint32* %"$retval_38", align 4, !dbg !46 + %"$$retval_38_157" = load %Uint32, %Uint32* %"$retval_38", align 4 + ret %Uint32 %"$$retval_38_157" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_37"(%"$$fundef_37_env_122"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !49 { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_35"(%"$$fundef_35_env_117"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) !dbg !47 { entry: - %"$retval_38" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_123" = load i64, i64* @_gasrem, align 8 - %"$gascmp_124" = icmp ugt i64 1, %"$gasrem_123" - br i1 %"$gascmp_124", label %"$out_of_gas_125", label %"$have_gas_126" - -"$out_of_gas_125": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_126" - -"$have_gas_126": ; preds = %"$out_of_gas_125", %entry - %"$consume_127" = sub i64 %"$gasrem_123", 1 - store i64 %"$consume_127", i64* @_gasrem, align 8 - %"$$fundef_39_envp_128_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_39_envp_128_salloc" = call i8* @_salloc(i8* %"$$fundef_39_envp_128_load", i64 16) - %"$$fundef_39_envp_128" = bitcast i8* %"$$fundef_39_envp_128_salloc" to %"$$fundef_39_env_121"* - %"$$fundef_39_env_voidp_130" = bitcast %"$$fundef_39_env_121"* %"$$fundef_39_envp_128" to i8* - %"$$fundef_39_cloval_131" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_39_env_121"*, %Uint32)* @"$fundef_39" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_39_env_voidp_130", 1 - %"$$fundef_39_env_s_132" = getelementptr inbounds %"$$fundef_39_env_121", %"$$fundef_39_env_121"* %"$$fundef_39_envp_128", i32 0, i32 0 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_39_env_s_132", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_39_cloval_131", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_38", align 8, !dbg !50 - %"$$retval_38_133" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_38", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_38_133" + %"$retval_36" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_118" = load i64, i64* @_gasrem, align 8 + %"$gascmp_119" = icmp ugt i64 1, %"$gasrem_118" + br i1 %"$gascmp_119", label %"$out_of_gas_120", label %"$have_gas_121" + +"$out_of_gas_120": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_121" + +"$have_gas_121": ; preds = %"$out_of_gas_120", %entry + %"$consume_122" = sub i64 %"$gasrem_118", 1 + store i64 %"$consume_122", i64* @_gasrem, align 8 + %"$$fundef_37_envp_123_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_37_envp_123_salloc" = call i8* @_salloc(i8* %"$$fundef_37_envp_123_load", i64 16) + %"$$fundef_37_envp_123" = bitcast i8* %"$$fundef_37_envp_123_salloc" to %"$$fundef_37_env_116"* + %"$$fundef_37_env_voidp_125" = bitcast %"$$fundef_37_env_116"* %"$$fundef_37_envp_123" to i8* + %"$$fundef_37_cloval_126" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_37_env_116"*, %Uint32)* @"$fundef_37" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_37_env_voidp_125", 1 + %"$$fundef_37_env_s_127" = getelementptr inbounds %"$$fundef_37_env_116", %"$$fundef_37_env_116"* %"$$fundef_37_envp_123", i32 0, i32 0 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_37_env_s_127", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_37_cloval_126", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_36", align 8, !dbg !48 + %"$$retval_36_128" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_36", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_36_128" } declare void @_out_of_gas() @@ -900,589 +868,580 @@ declare i8* @_salloc(i8*, i64) declare %Uint32 @_add_Uint32(%Uint32, %Uint32) -define void @_init_libs() !dbg !51 { +define void @_init_libs() !dbg !49 { entry: ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !53 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !51 { entry: - %"$expr_36" = alloca %Uint32, align 8 - %"$gasrem_506" = load i64, i64* @_gasrem, align 8 - %"$gascmp_507" = icmp ugt i64 1, %"$gasrem_506" - br i1 %"$gascmp_507", label %"$out_of_gas_508", label %"$have_gas_509" + %"$expr_34" = alloca %Uint32, align 8 + %"$gasrem_487" = load i64, i64* @_gasrem, align 8 + %"$gascmp_488" = icmp ugt i64 1, %"$gasrem_487" + br i1 %"$gascmp_488", label %"$out_of_gas_489", label %"$have_gas_490" -"$out_of_gas_508": ; preds = %entry +"$out_of_gas_489": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_509" + br label %"$have_gas_490" -"$have_gas_509": ; preds = %"$out_of_gas_508", %entry - %"$consume_510" = sub i64 %"$gasrem_506", 1 - store i64 %"$consume_510", i64* @_gasrem, align 8 - %"$gasrem_511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_512" = icmp ugt i64 1, %"$gasrem_511" - br i1 %"$gascmp_512", label %"$out_of_gas_513", label %"$have_gas_514" +"$have_gas_490": ; preds = %"$out_of_gas_489", %entry + %"$consume_491" = sub i64 %"$gasrem_487", 1 + store i64 %"$consume_491", i64* @_gasrem, align 8 + %"$gasrem_492" = load i64, i64* @_gasrem, align 8 + %"$gascmp_493" = icmp ugt i64 1, %"$gasrem_492" + br i1 %"$gascmp_493", label %"$out_of_gas_494", label %"$have_gas_495" -"$out_of_gas_513": ; preds = %"$have_gas_509" +"$out_of_gas_494": ; preds = %"$have_gas_490" call void @_out_of_gas() - br label %"$have_gas_514" + br label %"$have_gas_495" -"$have_gas_514": ; preds = %"$out_of_gas_513", %"$have_gas_509" - %"$consume_515" = sub i64 %"$gasrem_511", 1 - store i64 %"$consume_515", i64* @_gasrem, align 8 - %"$gasrem_516" = load i64, i64* @_gasrem, align 8 - %"$gascmp_517" = icmp ugt i64 1, %"$gasrem_516" - br i1 %"$gascmp_517", label %"$out_of_gas_518", label %"$have_gas_519" +"$have_gas_495": ; preds = %"$out_of_gas_494", %"$have_gas_490" + %"$consume_496" = sub i64 %"$gasrem_492", 1 + store i64 %"$consume_496", i64* @_gasrem, align 8 + %"$gasrem_497" = load i64, i64* @_gasrem, align 8 + %"$gascmp_498" = icmp ugt i64 1, %"$gasrem_497" + br i1 %"$gascmp_498", label %"$out_of_gas_499", label %"$have_gas_500" -"$out_of_gas_518": ; preds = %"$have_gas_514" +"$out_of_gas_499": ; preds = %"$have_gas_495" call void @_out_of_gas() - br label %"$have_gas_519" + br label %"$have_gas_500" -"$have_gas_519": ; preds = %"$out_of_gas_518", %"$have_gas_514" - %"$consume_520" = sub i64 %"$gasrem_516", 1 - store i64 %"$consume_520", i64* @_gasrem, align 8 +"$have_gas_500": ; preds = %"$out_of_gas_499", %"$have_gas_495" + %"$consume_501" = sub i64 %"$gasrem_497", 1 + store i64 %"$consume_501", i64* @_gasrem, align 8 %c2 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_521" = load i64, i64* @_gasrem, align 8 - %"$gascmp_522" = icmp ugt i64 1, %"$gasrem_521" - br i1 %"$gascmp_522", label %"$out_of_gas_523", label %"$have_gas_524" + %"$gasrem_502" = load i64, i64* @_gasrem, align 8 + %"$gascmp_503" = icmp ugt i64 1, %"$gasrem_502" + br i1 %"$gascmp_503", label %"$out_of_gas_504", label %"$have_gas_505" -"$out_of_gas_523": ; preds = %"$have_gas_519" +"$out_of_gas_504": ; preds = %"$have_gas_500" call void @_out_of_gas() - br label %"$have_gas_524" + br label %"$have_gas_505" -"$have_gas_524": ; preds = %"$out_of_gas_523", %"$have_gas_519" - %"$consume_525" = sub i64 %"$gasrem_521", 1 - store i64 %"$consume_525", i64* @_gasrem, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_37_env_122"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_37" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8, !dbg !54 - %"$gasrem_529" = load i64, i64* @_gasrem, align 8 - %"$gascmp_530" = icmp ugt i64 1, %"$gasrem_529" - br i1 %"$gascmp_530", label %"$out_of_gas_531", label %"$have_gas_532" +"$have_gas_505": ; preds = %"$out_of_gas_504", %"$have_gas_500" + %"$consume_506" = sub i64 %"$gasrem_502", 1 + store i64 %"$consume_506", i64* @_gasrem, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_35_env_117"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_35" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8, !dbg !52 + %"$gasrem_510" = load i64, i64* @_gasrem, align 8 + %"$gascmp_511" = icmp ugt i64 1, %"$gasrem_510" + br i1 %"$gascmp_511", label %"$out_of_gas_512", label %"$have_gas_513" -"$out_of_gas_531": ; preds = %"$have_gas_524" +"$out_of_gas_512": ; preds = %"$have_gas_505" call void @_out_of_gas() - br label %"$have_gas_532" + br label %"$have_gas_513" -"$have_gas_532": ; preds = %"$out_of_gas_531", %"$have_gas_524" - %"$consume_533" = sub i64 %"$gasrem_529", 1 - store i64 %"$consume_533", i64* @_gasrem, align 8 +"$have_gas_513": ; preds = %"$out_of_gas_512", %"$have_gas_505" + %"$consume_514" = sub i64 %"$gasrem_510", 1 + store i64 %"$consume_514", i64* @_gasrem, align 8 %c3 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_534" = load i64, i64* @_gasrem, align 8 - %"$gascmp_535" = icmp ugt i64 1, %"$gasrem_534" - br i1 %"$gascmp_535", label %"$out_of_gas_536", label %"$have_gas_537" + %"$gasrem_515" = load i64, i64* @_gasrem, align 8 + %"$gascmp_516" = icmp ugt i64 1, %"$gasrem_515" + br i1 %"$gascmp_516", label %"$out_of_gas_517", label %"$have_gas_518" -"$out_of_gas_536": ; preds = %"$have_gas_532" +"$out_of_gas_517": ; preds = %"$have_gas_513" call void @_out_of_gas() - br label %"$have_gas_537" + br label %"$have_gas_518" -"$have_gas_537": ; preds = %"$out_of_gas_536", %"$have_gas_532" - %"$consume_538" = sub i64 %"$gasrem_534", 1 - store i64 %"$consume_538", i64* @_gasrem, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_41_env_120"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_41" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c3, align 8, !dbg !55 - %"$gasrem_542" = load i64, i64* @_gasrem, align 8 - %"$gascmp_543" = icmp ugt i64 1, %"$gasrem_542" - br i1 %"$gascmp_543", label %"$out_of_gas_544", label %"$have_gas_545" +"$have_gas_518": ; preds = %"$out_of_gas_517", %"$have_gas_513" + %"$consume_519" = sub i64 %"$gasrem_515", 1 + store i64 %"$consume_519", i64* @_gasrem, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_39_env_115"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_39" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c3, align 8, !dbg !53 + %"$gasrem_523" = load i64, i64* @_gasrem, align 8 + %"$gascmp_524" = icmp ugt i64 1, %"$gasrem_523" + br i1 %"$gascmp_524", label %"$out_of_gas_525", label %"$have_gas_526" -"$out_of_gas_544": ; preds = %"$have_gas_537" +"$out_of_gas_525": ; preds = %"$have_gas_518" call void @_out_of_gas() - br label %"$have_gas_545" + br label %"$have_gas_526" -"$have_gas_545": ; preds = %"$out_of_gas_544", %"$have_gas_537" - %"$consume_546" = sub i64 %"$gasrem_542", 1 - store i64 %"$consume_546", i64* @_gasrem, align 8 +"$have_gas_526": ; preds = %"$out_of_gas_525", %"$have_gas_518" + %"$consume_527" = sub i64 %"$gasrem_523", 1 + store i64 %"$consume_527", i64* @_gasrem, align 8 %c3_ = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_547" = load i64, i64* @_gasrem, align 8 - %"$gascmp_548" = icmp ugt i64 1, %"$gasrem_547" - br i1 %"$gascmp_548", label %"$out_of_gas_549", label %"$have_gas_550" + %"$gasrem_528" = load i64, i64* @_gasrem, align 8 + %"$gascmp_529" = icmp ugt i64 1, %"$gasrem_528" + br i1 %"$gascmp_529", label %"$out_of_gas_530", label %"$have_gas_531" -"$out_of_gas_549": ; preds = %"$have_gas_545" +"$out_of_gas_530": ; preds = %"$have_gas_526" call void @_out_of_gas() - br label %"$have_gas_550" + br label %"$have_gas_531" -"$have_gas_550": ; preds = %"$out_of_gas_549", %"$have_gas_545" - %"$consume_551" = sub i64 %"$gasrem_547", 1 - store i64 %"$consume_551", i64* @_gasrem, align 8 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_45_env_118"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_45" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %c3_, align 8, !dbg !56 - %"$gasrem_555" = load i64, i64* @_gasrem, align 8 - %"$gascmp_556" = icmp ugt i64 1, %"$gasrem_555" - br i1 %"$gascmp_556", label %"$out_of_gas_557", label %"$have_gas_558" +"$have_gas_531": ; preds = %"$out_of_gas_530", %"$have_gas_526" + %"$consume_532" = sub i64 %"$gasrem_528", 1 + store i64 %"$consume_532", i64* @_gasrem, align 8 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_43_env_113"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_43" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %c3_, align 8, !dbg !54 + %"$gasrem_536" = load i64, i64* @_gasrem, align 8 + %"$gascmp_537" = icmp ugt i64 1, %"$gasrem_536" + br i1 %"$gascmp_537", label %"$out_of_gas_538", label %"$have_gas_539" -"$out_of_gas_557": ; preds = %"$have_gas_550" +"$out_of_gas_538": ; preds = %"$have_gas_531" call void @_out_of_gas() - br label %"$have_gas_558" + br label %"$have_gas_539" -"$have_gas_558": ; preds = %"$out_of_gas_557", %"$have_gas_550" - %"$consume_559" = sub i64 %"$gasrem_555", 1 - store i64 %"$consume_559", i64* @_gasrem, align 8 +"$have_gas_539": ; preds = %"$out_of_gas_538", %"$have_gas_531" + %"$consume_540" = sub i64 %"$gasrem_536", 1 + store i64 %"$consume_540", i64* @_gasrem, align 8 %cadd = alloca { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_560" = load i64, i64* @_gasrem, align 8 - %"$gascmp_561" = icmp ugt i64 1, %"$gasrem_560" - br i1 %"$gascmp_561", label %"$out_of_gas_562", label %"$have_gas_563" + %"$gasrem_541" = load i64, i64* @_gasrem, align 8 + %"$gascmp_542" = icmp ugt i64 1, %"$gasrem_541" + br i1 %"$gascmp_542", label %"$out_of_gas_543", label %"$have_gas_544" -"$out_of_gas_562": ; preds = %"$have_gas_558" +"$out_of_gas_543": ; preds = %"$have_gas_539" call void @_out_of_gas() - br label %"$have_gas_563" + br label %"$have_gas_544" -"$have_gas_563": ; preds = %"$out_of_gas_562", %"$have_gas_558" - %"$consume_564" = sub i64 %"$gasrem_560", 1 - store i64 %"$consume_564", i64* @_gasrem, align 8 - store { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (%"$$fundef_49_env_116"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_49" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8, !dbg !57 - %"$gasrem_568" = load i64, i64* @_gasrem, align 8 - %"$gascmp_569" = icmp ugt i64 1, %"$gasrem_568" - br i1 %"$gascmp_569", label %"$out_of_gas_570", label %"$have_gas_571" +"$have_gas_544": ; preds = %"$out_of_gas_543", %"$have_gas_539" + %"$consume_545" = sub i64 %"$gasrem_541", 1 + store i64 %"$consume_545", i64* @_gasrem, align 8 + store { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (%"$$fundef_47_env_111"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_47" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8, !dbg !55 + %"$gasrem_549" = load i64, i64* @_gasrem, align 8 + %"$gascmp_550" = icmp ugt i64 1, %"$gasrem_549" + br i1 %"$gascmp_550", label %"$out_of_gas_551", label %"$have_gas_552" -"$out_of_gas_570": ; preds = %"$have_gas_563" +"$out_of_gas_551": ; preds = %"$have_gas_544" call void @_out_of_gas() - br label %"$have_gas_571" + br label %"$have_gas_552" -"$have_gas_571": ; preds = %"$out_of_gas_570", %"$have_gas_563" - %"$consume_572" = sub i64 %"$gasrem_568", 1 - store i64 %"$consume_572", i64* @_gasrem, align 8 +"$have_gas_552": ; preds = %"$out_of_gas_551", %"$have_gas_544" + %"$consume_553" = sub i64 %"$gasrem_549", 1 + store i64 %"$consume_553", i64* @_gasrem, align 8 %cmul = alloca { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_573" = load i64, i64* @_gasrem, align 8 - %"$gascmp_574" = icmp ugt i64 1, %"$gasrem_573" - br i1 %"$gascmp_574", label %"$out_of_gas_575", label %"$have_gas_576" + %"$gasrem_554" = load i64, i64* @_gasrem, align 8 + %"$gascmp_555" = icmp ugt i64 1, %"$gasrem_554" + br i1 %"$gascmp_555", label %"$out_of_gas_556", label %"$have_gas_557" -"$out_of_gas_575": ; preds = %"$have_gas_571" +"$out_of_gas_556": ; preds = %"$have_gas_552" call void @_out_of_gas() - br label %"$have_gas_576" + br label %"$have_gas_557" -"$have_gas_576": ; preds = %"$out_of_gas_575", %"$have_gas_571" - %"$consume_577" = sub i64 %"$gasrem_573", 1 - store i64 %"$consume_577", i64* @_gasrem, align 8 - store { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (%"$$fundef_57_env_112"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_57" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8, !dbg !58 - %"$gasrem_581" = load i64, i64* @_gasrem, align 8 - %"$gascmp_582" = icmp ugt i64 1, %"$gasrem_581" - br i1 %"$gascmp_582", label %"$out_of_gas_583", label %"$have_gas_584" +"$have_gas_557": ; preds = %"$out_of_gas_556", %"$have_gas_552" + %"$consume_558" = sub i64 %"$gasrem_554", 1 + store i64 %"$consume_558", i64* @_gasrem, align 8 + store { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (%"$$fundef_55_env_107"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_55" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8, !dbg !56 + %"$gasrem_562" = load i64, i64* @_gasrem, align 8 + %"$gascmp_563" = icmp ugt i64 1, %"$gasrem_562" + br i1 %"$gascmp_563", label %"$out_of_gas_564", label %"$have_gas_565" -"$out_of_gas_583": ; preds = %"$have_gas_576" +"$out_of_gas_564": ; preds = %"$have_gas_557" call void @_out_of_gas() - br label %"$have_gas_584" + br label %"$have_gas_565" -"$have_gas_584": ; preds = %"$out_of_gas_583", %"$have_gas_576" - %"$consume_585" = sub i64 %"$gasrem_581", 1 - store i64 %"$consume_585", i64* @_gasrem, align 8 - %cexp = alloca { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_586" = load i64, i64* @_gasrem, align 8 - %"$gascmp_587" = icmp ugt i64 1, %"$gasrem_586" - br i1 %"$gascmp_587", label %"$out_of_gas_588", label %"$have_gas_589" +"$have_gas_565": ; preds = %"$out_of_gas_564", %"$have_gas_557" + %"$consume_566" = sub i64 %"$gasrem_562", 1 + store i64 %"$consume_566", i64* @_gasrem, align 8 + %cexp = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, align 8 + %"$gasrem_567" = load i64, i64* @_gasrem, align 8 + %"$gascmp_568" = icmp ugt i64 2, %"$gasrem_567" + br i1 %"$gascmp_568", label %"$out_of_gas_569", label %"$have_gas_570" -"$out_of_gas_588": ; preds = %"$have_gas_584" +"$out_of_gas_569": ; preds = %"$have_gas_565" call void @_out_of_gas() - br label %"$have_gas_589" + br label %"$have_gas_570" -"$have_gas_589": ; preds = %"$out_of_gas_588", %"$have_gas_584" - %"$consume_590" = sub i64 %"$gasrem_586", 1 - store i64 %"$consume_590", i64* @_gasrem, align 8 - store { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (%"$$fundef_63_env_109"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_63" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cexp, align 8, !dbg !59 - %"$gasrem_594" = load i64, i64* @_gasrem, align 8 - %"$gascmp_595" = icmp ugt i64 1, %"$gasrem_594" - br i1 %"$gascmp_595", label %"$out_of_gas_596", label %"$have_gas_597" +"$have_gas_570": ; preds = %"$out_of_gas_569", %"$have_gas_565" + %"$consume_571" = sub i64 %"$gasrem_567", 2 + store i64 %"$consume_571", i64* @_gasrem, align 8 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_61_env_104"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })* @"$fundef_61" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %cexp, align 8, !dbg !57 + %"$gasrem_575" = load i64, i64* @_gasrem, align 8 + %"$gascmp_576" = icmp ugt i64 1, %"$gasrem_575" + br i1 %"$gascmp_576", label %"$out_of_gas_577", label %"$have_gas_578" -"$out_of_gas_596": ; preds = %"$have_gas_589" +"$out_of_gas_577": ; preds = %"$have_gas_570" call void @_out_of_gas() - br label %"$have_gas_597" + br label %"$have_gas_578" -"$have_gas_597": ; preds = %"$out_of_gas_596", %"$have_gas_589" - %"$consume_598" = sub i64 %"$gasrem_594", 1 - store i64 %"$consume_598", i64* @_gasrem, align 8 +"$have_gas_578": ; preds = %"$out_of_gas_577", %"$have_gas_570" + %"$consume_579" = sub i64 %"$gasrem_575", 1 + store i64 %"$consume_579", i64* @_gasrem, align 8 %church_nat_to_uint32 = alloca { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_599" = load i64, i64* @_gasrem, align 8 - %"$gascmp_600" = icmp ugt i64 1, %"$gasrem_599" - br i1 %"$gascmp_600", label %"$out_of_gas_601", label %"$have_gas_602" + %"$gasrem_580" = load i64, i64* @_gasrem, align 8 + %"$gascmp_581" = icmp ugt i64 1, %"$gasrem_580" + br i1 %"$gascmp_581", label %"$out_of_gas_582", label %"$have_gas_583" -"$out_of_gas_601": ; preds = %"$have_gas_597" +"$out_of_gas_582": ; preds = %"$have_gas_578" call void @_out_of_gas() - br label %"$have_gas_602" + br label %"$have_gas_583" -"$have_gas_602": ; preds = %"$out_of_gas_601", %"$have_gas_597" - %"$consume_603" = sub i64 %"$gasrem_599", 1 - store i64 %"$consume_603", i64* @_gasrem, align 8 - store { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast (%Uint32 (%"$$fundef_67_env_107"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_67" to %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %church_nat_to_uint32, align 8, !dbg !60 - %"$gasrem_607" = load i64, i64* @_gasrem, align 8 - %"$gascmp_608" = icmp ugt i64 1, %"$gasrem_607" - br i1 %"$gascmp_608", label %"$out_of_gas_609", label %"$have_gas_610" +"$have_gas_583": ; preds = %"$out_of_gas_582", %"$have_gas_578" + %"$consume_584" = sub i64 %"$gasrem_580", 1 + store i64 %"$consume_584", i64* @_gasrem, align 8 + store { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast (%Uint32 (%"$$fundef_63_env_103"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_63" to %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %church_nat_to_uint32, align 8, !dbg !58 + %"$gasrem_588" = load i64, i64* @_gasrem, align 8 + %"$gascmp_589" = icmp ugt i64 1, %"$gasrem_588" + br i1 %"$gascmp_589", label %"$out_of_gas_590", label %"$have_gas_591" -"$out_of_gas_609": ; preds = %"$have_gas_602" +"$out_of_gas_590": ; preds = %"$have_gas_583" call void @_out_of_gas() - br label %"$have_gas_610" + br label %"$have_gas_591" -"$have_gas_610": ; preds = %"$out_of_gas_609", %"$have_gas_602" - %"$consume_611" = sub i64 %"$gasrem_607", 1 - store i64 %"$consume_611", i64* @_gasrem, align 8 +"$have_gas_591": ; preds = %"$out_of_gas_590", %"$have_gas_583" + %"$consume_592" = sub i64 %"$gasrem_588", 1 + store i64 %"$consume_592", i64* @_gasrem, align 8 %c4 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_612" = load i64, i64* @_gasrem, align 8 - %"$gascmp_613" = icmp ugt i64 1, %"$gasrem_612" - br i1 %"$gascmp_613", label %"$out_of_gas_614", label %"$have_gas_615" + %"$gasrem_593" = load i64, i64* @_gasrem, align 8 + %"$gascmp_594" = icmp ugt i64 1, %"$gasrem_593" + br i1 %"$gascmp_594", label %"$out_of_gas_595", label %"$have_gas_596" -"$out_of_gas_614": ; preds = %"$have_gas_610" +"$out_of_gas_595": ; preds = %"$have_gas_591" call void @_out_of_gas() - br label %"$have_gas_615" + br label %"$have_gas_596" -"$have_gas_615": ; preds = %"$out_of_gas_614", %"$have_gas_610" - %"$consume_616" = sub i64 %"$gasrem_612", 1 - store i64 %"$consume_616", i64* @_gasrem, align 8 +"$have_gas_596": ; preds = %"$out_of_gas_595", %"$have_gas_591" + %"$consume_597" = sub i64 %"$gasrem_593", 1 + store i64 %"$consume_597", i64* @_gasrem, align 8 %"$cmul_17" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cmul_617" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 - %"$cmul_fptr_618" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_617", 0 - %"$cmul_envptr_619" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_617", 1 - %"$c2_620" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8 - %"$cmul_call_621" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_618"(i8* %"$cmul_envptr_619", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_620"), !dbg !61 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_621", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_17", align 8, !dbg !61 + %"$cmul_598" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 + %"$cmul_fptr_599" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_598", 0 + %"$cmul_envptr_600" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_598", 1 + %"$c2_601" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8 + %"$cmul_call_602" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_599"(i8* %"$cmul_envptr_600", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_601"), !dbg !59 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_602", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_17", align 8, !dbg !59 %"$cmul_18" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_17_622" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_17", align 8 - %"$$cmul_17_fptr_623" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_17_622", 0 - %"$$cmul_17_envptr_624" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_17_622", 1 - %"$c2_625" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8 - %"$$cmul_17_call_626" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_17_fptr_623"(i8* %"$$cmul_17_envptr_624", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_625"), !dbg !61 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_17_call_626", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_18", align 8, !dbg !61 - %"$$cmul_18_627" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_18", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_18_627", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8, !dbg !61 - %"$gasrem_628" = load i64, i64* @_gasrem, align 8 - %"$gascmp_629" = icmp ugt i64 1, %"$gasrem_628" - br i1 %"$gascmp_629", label %"$out_of_gas_630", label %"$have_gas_631" - -"$out_of_gas_630": ; preds = %"$have_gas_615" - call void @_out_of_gas() - br label %"$have_gas_631" - -"$have_gas_631": ; preds = %"$out_of_gas_630", %"$have_gas_615" - %"$consume_632" = sub i64 %"$gasrem_628", 1 - store i64 %"$consume_632", i64* @_gasrem, align 8 + %"$$cmul_17_603" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_17", align 8 + %"$$cmul_17_fptr_604" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_17_603", 0 + %"$$cmul_17_envptr_605" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_17_603", 1 + %"$c2_606" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8 + %"$$cmul_17_call_607" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_17_fptr_604"(i8* %"$$cmul_17_envptr_605", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_606"), !dbg !59 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_17_call_607", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_18", align 8, !dbg !59 + %"$$cmul_18_608" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_18", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_18_608", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8, !dbg !59 + %"$gasrem_609" = load i64, i64* @_gasrem, align 8 + %"$gascmp_610" = icmp ugt i64 1, %"$gasrem_609" + br i1 %"$gascmp_610", label %"$out_of_gas_611", label %"$have_gas_612" + +"$out_of_gas_611": ; preds = %"$have_gas_596" + call void @_out_of_gas() + br label %"$have_gas_612" + +"$have_gas_612": ; preds = %"$out_of_gas_611", %"$have_gas_596" + %"$consume_613" = sub i64 %"$gasrem_609", 1 + store i64 %"$consume_613", i64* @_gasrem, align 8 %c16 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_633" = load i64, i64* @_gasrem, align 8 - %"$gascmp_634" = icmp ugt i64 1, %"$gasrem_633" - br i1 %"$gascmp_634", label %"$out_of_gas_635", label %"$have_gas_636" + %"$gasrem_614" = load i64, i64* @_gasrem, align 8 + %"$gascmp_615" = icmp ugt i64 1, %"$gasrem_614" + br i1 %"$gascmp_615", label %"$out_of_gas_616", label %"$have_gas_617" -"$out_of_gas_635": ; preds = %"$have_gas_631" +"$out_of_gas_616": ; preds = %"$have_gas_612" call void @_out_of_gas() - br label %"$have_gas_636" + br label %"$have_gas_617" -"$have_gas_636": ; preds = %"$out_of_gas_635", %"$have_gas_631" - %"$consume_637" = sub i64 %"$gasrem_633", 1 - store i64 %"$consume_637", i64* @_gasrem, align 8 +"$have_gas_617": ; preds = %"$out_of_gas_616", %"$have_gas_612" + %"$consume_618" = sub i64 %"$gasrem_614", 1 + store i64 %"$consume_618", i64* @_gasrem, align 8 %"$cmul_19" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cmul_638" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 - %"$cmul_fptr_639" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_638", 0 - %"$cmul_envptr_640" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_638", 1 - %"$c4_641" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 - %"$cmul_call_642" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_639"(i8* %"$cmul_envptr_640", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_641"), !dbg !62 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_642", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_19", align 8, !dbg !62 + %"$cmul_619" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 + %"$cmul_fptr_620" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_619", 0 + %"$cmul_envptr_621" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_619", 1 + %"$c4_622" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 + %"$cmul_call_623" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_620"(i8* %"$cmul_envptr_621", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_622"), !dbg !60 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_623", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_19", align 8, !dbg !60 %"$cmul_20" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_19_643" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_19", align 8 - %"$$cmul_19_fptr_644" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_19_643", 0 - %"$$cmul_19_envptr_645" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_19_643", 1 - %"$c4_646" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 - %"$$cmul_19_call_647" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_19_fptr_644"(i8* %"$$cmul_19_envptr_645", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_646"), !dbg !62 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_19_call_647", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_20", align 8, !dbg !62 - %"$$cmul_20_648" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_20", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_20_648", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8, !dbg !62 - %"$gasrem_649" = load i64, i64* @_gasrem, align 8 - %"$gascmp_650" = icmp ugt i64 1, %"$gasrem_649" - br i1 %"$gascmp_650", label %"$out_of_gas_651", label %"$have_gas_652" - -"$out_of_gas_651": ; preds = %"$have_gas_636" - call void @_out_of_gas() - br label %"$have_gas_652" - -"$have_gas_652": ; preds = %"$out_of_gas_651", %"$have_gas_636" - %"$consume_653" = sub i64 %"$gasrem_649", 1 - store i64 %"$consume_653", i64* @_gasrem, align 8 + %"$$cmul_19_624" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_19", align 8 + %"$$cmul_19_fptr_625" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_19_624", 0 + %"$$cmul_19_envptr_626" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_19_624", 1 + %"$c4_627" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 + %"$$cmul_19_call_628" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_19_fptr_625"(i8* %"$$cmul_19_envptr_626", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_627"), !dbg !60 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_19_call_628", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_20", align 8, !dbg !60 + %"$$cmul_20_629" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_20", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_20_629", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8, !dbg !60 + %"$gasrem_630" = load i64, i64* @_gasrem, align 8 + %"$gascmp_631" = icmp ugt i64 1, %"$gasrem_630" + br i1 %"$gascmp_631", label %"$out_of_gas_632", label %"$have_gas_633" + +"$out_of_gas_632": ; preds = %"$have_gas_617" + call void @_out_of_gas() + br label %"$have_gas_633" + +"$have_gas_633": ; preds = %"$out_of_gas_632", %"$have_gas_617" + %"$consume_634" = sub i64 %"$gasrem_630", 1 + store i64 %"$consume_634", i64* @_gasrem, align 8 %c32 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_654" = load i64, i64* @_gasrem, align 8 - %"$gascmp_655" = icmp ugt i64 1, %"$gasrem_654" - br i1 %"$gascmp_655", label %"$out_of_gas_656", label %"$have_gas_657" + %"$gasrem_635" = load i64, i64* @_gasrem, align 8 + %"$gascmp_636" = icmp ugt i64 1, %"$gasrem_635" + br i1 %"$gascmp_636", label %"$out_of_gas_637", label %"$have_gas_638" -"$out_of_gas_656": ; preds = %"$have_gas_652" +"$out_of_gas_637": ; preds = %"$have_gas_633" call void @_out_of_gas() - br label %"$have_gas_657" + br label %"$have_gas_638" -"$have_gas_657": ; preds = %"$out_of_gas_656", %"$have_gas_652" - %"$consume_658" = sub i64 %"$gasrem_654", 1 - store i64 %"$consume_658", i64* @_gasrem, align 8 +"$have_gas_638": ; preds = %"$out_of_gas_637", %"$have_gas_633" + %"$consume_639" = sub i64 %"$gasrem_635", 1 + store i64 %"$consume_639", i64* @_gasrem, align 8 %"$cadd_21" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cadd_659" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 - %"$cadd_fptr_660" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_659", 0 - %"$cadd_envptr_661" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_659", 1 - %"$c16_662" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8 - %"$cadd_call_663" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_660"(i8* %"$cadd_envptr_661", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_662"), !dbg !63 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_663", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_21", align 8, !dbg !63 + %"$cadd_640" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 + %"$cadd_fptr_641" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_640", 0 + %"$cadd_envptr_642" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_640", 1 + %"$c16_643" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8 + %"$cadd_call_644" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_641"(i8* %"$cadd_envptr_642", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_643"), !dbg !61 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_644", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_21", align 8, !dbg !61 %"$cadd_22" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_21_664" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_21", align 8 - %"$$cadd_21_fptr_665" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_21_664", 0 - %"$$cadd_21_envptr_666" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_21_664", 1 - %"$c16_667" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8 - %"$$cadd_21_call_668" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_21_fptr_665"(i8* %"$$cadd_21_envptr_666", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_667"), !dbg !63 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_21_call_668", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_22", align 8, !dbg !63 - %"$$cadd_22_669" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_22", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_22_669", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8, !dbg !63 - %"$gasrem_670" = load i64, i64* @_gasrem, align 8 - %"$gascmp_671" = icmp ugt i64 1, %"$gasrem_670" - br i1 %"$gascmp_671", label %"$out_of_gas_672", label %"$have_gas_673" - -"$out_of_gas_672": ; preds = %"$have_gas_657" - call void @_out_of_gas() - br label %"$have_gas_673" - -"$have_gas_673": ; preds = %"$out_of_gas_672", %"$have_gas_657" - %"$consume_674" = sub i64 %"$gasrem_670", 1 - store i64 %"$consume_674", i64* @_gasrem, align 8 + %"$$cadd_21_645" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_21", align 8 + %"$$cadd_21_fptr_646" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_21_645", 0 + %"$$cadd_21_envptr_647" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_21_645", 1 + %"$c16_648" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8 + %"$$cadd_21_call_649" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_21_fptr_646"(i8* %"$$cadd_21_envptr_647", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_648"), !dbg !61 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_21_call_649", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_22", align 8, !dbg !61 + %"$$cadd_22_650" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_22", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_22_650", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8, !dbg !61 + %"$gasrem_651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_652" = icmp ugt i64 1, %"$gasrem_651" + br i1 %"$gascmp_652", label %"$out_of_gas_653", label %"$have_gas_654" + +"$out_of_gas_653": ; preds = %"$have_gas_638" + call void @_out_of_gas() + br label %"$have_gas_654" + +"$have_gas_654": ; preds = %"$out_of_gas_653", %"$have_gas_638" + %"$consume_655" = sub i64 %"$gasrem_651", 1 + store i64 %"$consume_655", i64* @_gasrem, align 8 %c128 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_675" = load i64, i64* @_gasrem, align 8 - %"$gascmp_676" = icmp ugt i64 1, %"$gasrem_675" - br i1 %"$gascmp_676", label %"$out_of_gas_677", label %"$have_gas_678" + %"$gasrem_656" = load i64, i64* @_gasrem, align 8 + %"$gascmp_657" = icmp ugt i64 1, %"$gasrem_656" + br i1 %"$gascmp_657", label %"$out_of_gas_658", label %"$have_gas_659" -"$out_of_gas_677": ; preds = %"$have_gas_673" +"$out_of_gas_658": ; preds = %"$have_gas_654" call void @_out_of_gas() - br label %"$have_gas_678" + br label %"$have_gas_659" -"$have_gas_678": ; preds = %"$out_of_gas_677", %"$have_gas_673" - %"$consume_679" = sub i64 %"$gasrem_675", 1 - store i64 %"$consume_679", i64* @_gasrem, align 8 +"$have_gas_659": ; preds = %"$out_of_gas_658", %"$have_gas_654" + %"$consume_660" = sub i64 %"$gasrem_656", 1 + store i64 %"$consume_660", i64* @_gasrem, align 8 %"$cmul_23" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cmul_680" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 - %"$cmul_fptr_681" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_680", 0 - %"$cmul_envptr_682" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_680", 1 - %"$c4_683" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 - %"$cmul_call_684" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_681"(i8* %"$cmul_envptr_682", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_683"), !dbg !64 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_684", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_23", align 8, !dbg !64 + %"$cmul_661" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 + %"$cmul_fptr_662" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_661", 0 + %"$cmul_envptr_663" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_661", 1 + %"$c4_664" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 + %"$cmul_call_665" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_662"(i8* %"$cmul_envptr_663", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_664"), !dbg !62 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_665", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_23", align 8, !dbg !62 %"$cmul_24" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_23_685" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_23", align 8 - %"$$cmul_23_fptr_686" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_23_685", 0 - %"$$cmul_23_envptr_687" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_23_685", 1 - %"$c32_688" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 - %"$$cmul_23_call_689" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_fptr_686"(i8* %"$$cmul_23_envptr_687", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_688"), !dbg !64 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_call_689", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_24", align 8, !dbg !64 - %"$$cmul_24_690" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_24", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_24_690", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8, !dbg !64 - %"$gasrem_691" = load i64, i64* @_gasrem, align 8 - %"$gascmp_692" = icmp ugt i64 1, %"$gasrem_691" - br i1 %"$gascmp_692", label %"$out_of_gas_693", label %"$have_gas_694" - -"$out_of_gas_693": ; preds = %"$have_gas_678" - call void @_out_of_gas() - br label %"$have_gas_694" - -"$have_gas_694": ; preds = %"$out_of_gas_693", %"$have_gas_678" - %"$consume_695" = sub i64 %"$gasrem_691", 1 - store i64 %"$consume_695", i64* @_gasrem, align 8 + %"$$cmul_23_666" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_23", align 8 + %"$$cmul_23_fptr_667" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_23_666", 0 + %"$$cmul_23_envptr_668" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_23_666", 1 + %"$c32_669" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 + %"$$cmul_23_call_670" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_fptr_667"(i8* %"$$cmul_23_envptr_668", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_669"), !dbg !62 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_call_670", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_24", align 8, !dbg !62 + %"$$cmul_24_671" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_24", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_24_671", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8, !dbg !62 + %"$gasrem_672" = load i64, i64* @_gasrem, align 8 + %"$gascmp_673" = icmp ugt i64 1, %"$gasrem_672" + br i1 %"$gascmp_673", label %"$out_of_gas_674", label %"$have_gas_675" + +"$out_of_gas_674": ; preds = %"$have_gas_659" + call void @_out_of_gas() + br label %"$have_gas_675" + +"$have_gas_675": ; preds = %"$out_of_gas_674", %"$have_gas_659" + %"$consume_676" = sub i64 %"$gasrem_672", 1 + store i64 %"$consume_676", i64* @_gasrem, align 8 %c256 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_696" = load i64, i64* @_gasrem, align 8 - %"$gascmp_697" = icmp ugt i64 1, %"$gasrem_696" - br i1 %"$gascmp_697", label %"$out_of_gas_698", label %"$have_gas_699" + %"$gasrem_677" = load i64, i64* @_gasrem, align 8 + %"$gascmp_678" = icmp ugt i64 1, %"$gasrem_677" + br i1 %"$gascmp_678", label %"$out_of_gas_679", label %"$have_gas_680" -"$out_of_gas_698": ; preds = %"$have_gas_694" +"$out_of_gas_679": ; preds = %"$have_gas_675" call void @_out_of_gas() - br label %"$have_gas_699" + br label %"$have_gas_680" -"$have_gas_699": ; preds = %"$out_of_gas_698", %"$have_gas_694" - %"$consume_700" = sub i64 %"$gasrem_696", 1 - store i64 %"$consume_700", i64* @_gasrem, align 8 +"$have_gas_680": ; preds = %"$out_of_gas_679", %"$have_gas_675" + %"$consume_681" = sub i64 %"$gasrem_677", 1 + store i64 %"$consume_681", i64* @_gasrem, align 8 %"$cadd_25" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cadd_701" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 - %"$cadd_fptr_702" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_701", 0 - %"$cadd_envptr_703" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_701", 1 - %"$c128_704" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8 - %"$cadd_call_705" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_702"(i8* %"$cadd_envptr_703", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_704"), !dbg !65 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_705", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_25", align 8, !dbg !65 + %"$cadd_682" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 + %"$cadd_fptr_683" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_682", 0 + %"$cadd_envptr_684" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_682", 1 + %"$c128_685" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8 + %"$cadd_call_686" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_683"(i8* %"$cadd_envptr_684", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_685"), !dbg !63 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_686", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_25", align 8, !dbg !63 %"$cadd_26" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_25_706" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_25", align 8 - %"$$cadd_25_fptr_707" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_25_706", 0 - %"$$cadd_25_envptr_708" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_25_706", 1 - %"$c128_709" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8 - %"$$cadd_25_call_710" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_25_fptr_707"(i8* %"$$cadd_25_envptr_708", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_709"), !dbg !65 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_25_call_710", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_26", align 8, !dbg !65 - %"$$cadd_26_711" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_26", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_26_711", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8, !dbg !65 - %"$gasrem_712" = load i64, i64* @_gasrem, align 8 - %"$gascmp_713" = icmp ugt i64 1, %"$gasrem_712" - br i1 %"$gascmp_713", label %"$out_of_gas_714", label %"$have_gas_715" - -"$out_of_gas_714": ; preds = %"$have_gas_699" - call void @_out_of_gas() - br label %"$have_gas_715" - -"$have_gas_715": ; preds = %"$out_of_gas_714", %"$have_gas_699" - %"$consume_716" = sub i64 %"$gasrem_712", 1 - store i64 %"$consume_716", i64* @_gasrem, align 8 + %"$$cadd_25_687" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_25", align 8 + %"$$cadd_25_fptr_688" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_25_687", 0 + %"$$cadd_25_envptr_689" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_25_687", 1 + %"$c128_690" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8 + %"$$cadd_25_call_691" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_25_fptr_688"(i8* %"$$cadd_25_envptr_689", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_690"), !dbg !63 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_25_call_691", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_26", align 8, !dbg !63 + %"$$cadd_26_692" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_26", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_26_692", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8, !dbg !63 + %"$gasrem_693" = load i64, i64* @_gasrem, align 8 + %"$gascmp_694" = icmp ugt i64 1, %"$gasrem_693" + br i1 %"$gascmp_694", label %"$out_of_gas_695", label %"$have_gas_696" + +"$out_of_gas_695": ; preds = %"$have_gas_680" + call void @_out_of_gas() + br label %"$have_gas_696" + +"$have_gas_696": ; preds = %"$out_of_gas_695", %"$have_gas_680" + %"$consume_697" = sub i64 %"$gasrem_693", 1 + store i64 %"$consume_697", i64* @_gasrem, align 8 %c65536 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_717" = load i64, i64* @_gasrem, align 8 - %"$gascmp_718" = icmp ugt i64 1, %"$gasrem_717" - br i1 %"$gascmp_718", label %"$out_of_gas_719", label %"$have_gas_720" + %"$gasrem_698" = load i64, i64* @_gasrem, align 8 + %"$gascmp_699" = icmp ugt i64 1, %"$gasrem_698" + br i1 %"$gascmp_699", label %"$out_of_gas_700", label %"$have_gas_701" -"$out_of_gas_719": ; preds = %"$have_gas_715" +"$out_of_gas_700": ; preds = %"$have_gas_696" call void @_out_of_gas() - br label %"$have_gas_720" + br label %"$have_gas_701" -"$have_gas_720": ; preds = %"$out_of_gas_719", %"$have_gas_715" - %"$consume_721" = sub i64 %"$gasrem_717", 1 - store i64 %"$consume_721", i64* @_gasrem, align 8 +"$have_gas_701": ; preds = %"$out_of_gas_700", %"$have_gas_696" + %"$consume_702" = sub i64 %"$gasrem_698", 1 + store i64 %"$consume_702", i64* @_gasrem, align 8 %"$cmul_27" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cmul_722" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 - %"$cmul_fptr_723" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_722", 0 - %"$cmul_envptr_724" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_722", 1 - %"$c256_725" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8 - %"$cmul_call_726" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_723"(i8* %"$cmul_envptr_724", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_725"), !dbg !66 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_726", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_27", align 8, !dbg !66 + %"$cmul_703" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 + %"$cmul_fptr_704" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_703", 0 + %"$cmul_envptr_705" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_703", 1 + %"$c256_706" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8 + %"$cmul_call_707" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_704"(i8* %"$cmul_envptr_705", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_706"), !dbg !64 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_707", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_27", align 8, !dbg !64 %"$cmul_28" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_27_727" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_27", align 8 - %"$$cmul_27_fptr_728" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_27_727", 0 - %"$$cmul_27_envptr_729" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_27_727", 1 - %"$c256_730" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8 - %"$$cmul_27_call_731" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_27_fptr_728"(i8* %"$$cmul_27_envptr_729", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_730"), !dbg !66 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_27_call_731", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_28", align 8, !dbg !66 - %"$$cmul_28_732" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_28", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_28_732", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8, !dbg !66 - %"$gasrem_733" = load i64, i64* @_gasrem, align 8 - %"$gascmp_734" = icmp ugt i64 1, %"$gasrem_733" - br i1 %"$gascmp_734", label %"$out_of_gas_735", label %"$have_gas_736" - -"$out_of_gas_735": ; preds = %"$have_gas_720" - call void @_out_of_gas() - br label %"$have_gas_736" - -"$have_gas_736": ; preds = %"$out_of_gas_735", %"$have_gas_720" - %"$consume_737" = sub i64 %"$gasrem_733", 1 - store i64 %"$consume_737", i64* @_gasrem, align 8 + %"$$cmul_27_708" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_27", align 8 + %"$$cmul_27_fptr_709" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_27_708", 0 + %"$$cmul_27_envptr_710" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_27_708", 1 + %"$c256_711" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8 + %"$$cmul_27_call_712" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_27_fptr_709"(i8* %"$$cmul_27_envptr_710", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_711"), !dbg !64 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_27_call_712", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_28", align 8, !dbg !64 + %"$$cmul_28_713" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_28", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_28_713", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8, !dbg !64 + %"$gasrem_714" = load i64, i64* @_gasrem, align 8 + %"$gascmp_715" = icmp ugt i64 1, %"$gasrem_714" + br i1 %"$gascmp_715", label %"$out_of_gas_716", label %"$have_gas_717" + +"$out_of_gas_716": ; preds = %"$have_gas_701" + call void @_out_of_gas() + br label %"$have_gas_717" + +"$have_gas_717": ; preds = %"$out_of_gas_716", %"$have_gas_701" + %"$consume_718" = sub i64 %"$gasrem_714", 1 + store i64 %"$consume_718", i64* @_gasrem, align 8 %c131072 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_738" = load i64, i64* @_gasrem, align 8 - %"$gascmp_739" = icmp ugt i64 1, %"$gasrem_738" - br i1 %"$gascmp_739", label %"$out_of_gas_740", label %"$have_gas_741" + %"$gasrem_719" = load i64, i64* @_gasrem, align 8 + %"$gascmp_720" = icmp ugt i64 1, %"$gasrem_719" + br i1 %"$gascmp_720", label %"$out_of_gas_721", label %"$have_gas_722" -"$out_of_gas_740": ; preds = %"$have_gas_736" +"$out_of_gas_721": ; preds = %"$have_gas_717" call void @_out_of_gas() - br label %"$have_gas_741" + br label %"$have_gas_722" -"$have_gas_741": ; preds = %"$out_of_gas_740", %"$have_gas_736" - %"$consume_742" = sub i64 %"$gasrem_738", 1 - store i64 %"$consume_742", i64* @_gasrem, align 8 +"$have_gas_722": ; preds = %"$out_of_gas_721", %"$have_gas_717" + %"$consume_723" = sub i64 %"$gasrem_719", 1 + store i64 %"$consume_723", i64* @_gasrem, align 8 %"$cadd_29" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cadd_743" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 - %"$cadd_fptr_744" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_743", 0 - %"$cadd_envptr_745" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_743", 1 - %"$c65536_746" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8 - %"$cadd_call_747" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_744"(i8* %"$cadd_envptr_745", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_746"), !dbg !67 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_747", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_29", align 8, !dbg !67 + %"$cadd_724" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 + %"$cadd_fptr_725" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_724", 0 + %"$cadd_envptr_726" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_724", 1 + %"$c65536_727" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8 + %"$cadd_call_728" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_725"(i8* %"$cadd_envptr_726", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_727"), !dbg !65 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_728", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_29", align 8, !dbg !65 %"$cadd_30" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_29_748" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_29", align 8 - %"$$cadd_29_fptr_749" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_29_748", 0 - %"$$cadd_29_envptr_750" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_29_748", 1 - %"$c65536_751" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8 - %"$$cadd_29_call_752" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_29_fptr_749"(i8* %"$$cadd_29_envptr_750", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_751"), !dbg !67 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_29_call_752", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_30", align 8, !dbg !67 - %"$$cadd_30_753" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_30", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_30_753", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131072, align 8, !dbg !67 - %"$gasrem_754" = load i64, i64* @_gasrem, align 8 - %"$gascmp_755" = icmp ugt i64 1, %"$gasrem_754" - br i1 %"$gascmp_755", label %"$out_of_gas_756", label %"$have_gas_757" - -"$out_of_gas_756": ; preds = %"$have_gas_741" - call void @_out_of_gas() - br label %"$have_gas_757" - -"$have_gas_757": ; preds = %"$out_of_gas_756", %"$have_gas_741" - %"$consume_758" = sub i64 %"$gasrem_754", 1 - store i64 %"$consume_758", i64* @_gasrem, align 8 + %"$$cadd_29_729" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_29", align 8 + %"$$cadd_29_fptr_730" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_29_729", 0 + %"$$cadd_29_envptr_731" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_29_729", 1 + %"$c65536_732" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8 + %"$$cadd_29_call_733" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_29_fptr_730"(i8* %"$$cadd_29_envptr_731", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_732"), !dbg !65 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_29_call_733", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_30", align 8, !dbg !65 + %"$$cadd_30_734" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_30", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_30_734", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131072, align 8, !dbg !65 + %"$gasrem_735" = load i64, i64* @_gasrem, align 8 + %"$gascmp_736" = icmp ugt i64 1, %"$gasrem_735" + br i1 %"$gascmp_736", label %"$out_of_gas_737", label %"$have_gas_738" + +"$out_of_gas_737": ; preds = %"$have_gas_722" + call void @_out_of_gas() + br label %"$have_gas_738" + +"$have_gas_738": ; preds = %"$out_of_gas_737", %"$have_gas_722" + %"$consume_739" = sub i64 %"$gasrem_735", 1 + store i64 %"$consume_739", i64* @_gasrem, align 8 %c27 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_759" = load i64, i64* @_gasrem, align 8 - %"$gascmp_760" = icmp ugt i64 1, %"$gasrem_759" - br i1 %"$gascmp_760", label %"$out_of_gas_761", label %"$have_gas_762" - -"$out_of_gas_761": ; preds = %"$have_gas_757" - call void @_out_of_gas() - br label %"$have_gas_762" - -"$have_gas_762": ; preds = %"$out_of_gas_761", %"$have_gas_757" - %"$consume_763" = sub i64 %"$gasrem_759", 1 - store i64 %"$consume_763", i64* @_gasrem, align 8 - %"$cexp_31" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, align 8 - %"$cexp_764" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cexp, align 8 - %"$cexp_fptr_765" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cexp_764", 0 - %"$cexp_envptr_766" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cexp_764", 1 - %"$c3_767" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c3, align 8 - %"$cexp_call_768" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$cexp_fptr_765"(i8* %"$cexp_envptr_766", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c3_767"), !dbg !68 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$cexp_call_768", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %"$cexp_31", align 8, !dbg !68 - %"$cexp_32" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cexp_31_769" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %"$cexp_31", align 8 - %"$$cexp_31_fptr_770" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$$cexp_31_769", 0 - %"$$cexp_31_envptr_771" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$$cexp_31_769", 1 - %"$c3__772" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %c3_, align 8 - %"$$cexp_31_call_773" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_31_fptr_770"(i8* %"$$cexp_31_envptr_771", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$c3__772"), !dbg !68 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_31_call_773", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cexp_32", align 8, !dbg !68 - %"$$cexp_32_774" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cexp_32", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_32_774", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c27, align 8, !dbg !68 - %"$gasrem_775" = load i64, i64* @_gasrem, align 8 - %"$gascmp_776" = icmp ugt i64 1, %"$gasrem_775" - br i1 %"$gascmp_776", label %"$out_of_gas_777", label %"$have_gas_778" - -"$out_of_gas_777": ; preds = %"$have_gas_762" - call void @_out_of_gas() - br label %"$have_gas_778" - -"$have_gas_778": ; preds = %"$out_of_gas_777", %"$have_gas_762" - %"$consume_779" = sub i64 %"$gasrem_775", 1 - store i64 %"$consume_779", i64* @_gasrem, align 8 + %"$gasrem_740" = load i64, i64* @_gasrem, align 8 + %"$gascmp_741" = icmp ugt i64 1, %"$gasrem_740" + br i1 %"$gascmp_741", label %"$out_of_gas_742", label %"$have_gas_743" + +"$out_of_gas_742": ; preds = %"$have_gas_738" + call void @_out_of_gas() + br label %"$have_gas_743" + +"$have_gas_743": ; preds = %"$out_of_gas_742", %"$have_gas_738" + %"$consume_744" = sub i64 %"$gasrem_740", 1 + store i64 %"$consume_744", i64* @_gasrem, align 8 + %"$cexp_745" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %cexp, align 8 + %"$cexp_fptr_746" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$cexp_745", 0 + %"$cexp_envptr_747" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$cexp_745", 1 + %"$c3_748" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c3, align 8 + %"$c3__749" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %c3_, align 8 + %"$cexp_call_750" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$cexp_fptr_746"(i8* %"$cexp_envptr_747", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c3_748", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$c3__749"), !dbg !66 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$cexp_call_750", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c27, align 8, !dbg !66 + %"$gasrem_751" = load i64, i64* @_gasrem, align 8 + %"$gascmp_752" = icmp ugt i64 1, %"$gasrem_751" + br i1 %"$gascmp_752", label %"$out_of_gas_753", label %"$have_gas_754" + +"$out_of_gas_753": ; preds = %"$have_gas_743" + call void @_out_of_gas() + br label %"$have_gas_754" + +"$have_gas_754": ; preds = %"$out_of_gas_753", %"$have_gas_743" + %"$consume_755" = sub i64 %"$gasrem_751", 1 + store i64 %"$consume_755", i64* @_gasrem, align 8 %c131099 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_780" = load i64, i64* @_gasrem, align 8 - %"$gascmp_781" = icmp ugt i64 1, %"$gasrem_780" - br i1 %"$gascmp_781", label %"$out_of_gas_782", label %"$have_gas_783" - -"$out_of_gas_782": ; preds = %"$have_gas_778" - call void @_out_of_gas() - br label %"$have_gas_783" - -"$have_gas_783": ; preds = %"$out_of_gas_782", %"$have_gas_778" - %"$consume_784" = sub i64 %"$gasrem_780", 1 - store i64 %"$consume_784", i64* @_gasrem, align 8 - %"$cadd_33" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cadd_785" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 - %"$cadd_fptr_786" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_785", 0 - %"$cadd_envptr_787" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_785", 1 - %"$c131072_788" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131072, align 8 - %"$cadd_call_789" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_786"(i8* %"$cadd_envptr_787", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131072_788"), !dbg !69 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_789", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_33", align 8, !dbg !69 - %"$cadd_34" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_33_790" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_33", align 8 - %"$$cadd_33_fptr_791" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_33_790", 0 - %"$$cadd_33_envptr_792" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_33_790", 1 - %"$c27_793" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c27, align 8 - %"$$cadd_33_call_794" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_33_fptr_791"(i8* %"$$cadd_33_envptr_792", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c27_793"), !dbg !69 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_33_call_794", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_34", align 8, !dbg !69 - %"$$cadd_34_795" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_34", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_34_795", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131099, align 8, !dbg !69 - %"$gasrem_796" = load i64, i64* @_gasrem, align 8 - %"$gascmp_797" = icmp ugt i64 1, %"$gasrem_796" - br i1 %"$gascmp_797", label %"$out_of_gas_798", label %"$have_gas_799" - -"$out_of_gas_798": ; preds = %"$have_gas_783" - call void @_out_of_gas() - br label %"$have_gas_799" - -"$have_gas_799": ; preds = %"$out_of_gas_798", %"$have_gas_783" - %"$consume_800" = sub i64 %"$gasrem_796", 1 - store i64 %"$consume_800", i64* @_gasrem, align 8 - %"$church_nat_to_uint32_35" = alloca %Uint32, align 8 - %"$church_nat_to_uint32_801" = load { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %church_nat_to_uint32, align 8 - %"$church_nat_to_uint32_fptr_802" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_801", 0 - %"$church_nat_to_uint32_envptr_803" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_801", 1 - %"$c131099_804" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131099, align 8 - %"$church_nat_to_uint32_call_805" = call %Uint32 %"$church_nat_to_uint32_fptr_802"(i8* %"$church_nat_to_uint32_envptr_803", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131099_804"), !dbg !70 - store %Uint32 %"$church_nat_to_uint32_call_805", %Uint32* %"$church_nat_to_uint32_35", align 4, !dbg !70 - %"$$church_nat_to_uint32_35_806" = load %Uint32, %Uint32* %"$church_nat_to_uint32_35", align 4 - store %Uint32 %"$$church_nat_to_uint32_35_806", %Uint32* %"$expr_36", align 4, !dbg !70 - %"$$expr_36_807" = load %Uint32, %Uint32* %"$expr_36", align 4 - ret %Uint32 %"$$expr_36_807" + %"$gasrem_756" = load i64, i64* @_gasrem, align 8 + %"$gascmp_757" = icmp ugt i64 1, %"$gasrem_756" + br i1 %"$gascmp_757", label %"$out_of_gas_758", label %"$have_gas_759" + +"$out_of_gas_758": ; preds = %"$have_gas_754" + call void @_out_of_gas() + br label %"$have_gas_759" + +"$have_gas_759": ; preds = %"$out_of_gas_758", %"$have_gas_754" + %"$consume_760" = sub i64 %"$gasrem_756", 1 + store i64 %"$consume_760", i64* @_gasrem, align 8 + %"$cadd_31" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 + %"$cadd_761" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 + %"$cadd_fptr_762" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_761", 0 + %"$cadd_envptr_763" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_761", 1 + %"$c131072_764" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131072, align 8 + %"$cadd_call_765" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_762"(i8* %"$cadd_envptr_763", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131072_764"), !dbg !67 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_765", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_31", align 8, !dbg !67 + %"$cadd_32" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$$cadd_31_766" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_31", align 8 + %"$$cadd_31_fptr_767" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_31_766", 0 + %"$$cadd_31_envptr_768" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_31_766", 1 + %"$c27_769" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c27, align 8 + %"$$cadd_31_call_770" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_31_fptr_767"(i8* %"$$cadd_31_envptr_768", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c27_769"), !dbg !67 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_31_call_770", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_32", align 8, !dbg !67 + %"$$cadd_32_771" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_32", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_32_771", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131099, align 8, !dbg !67 + %"$gasrem_772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_773" = icmp ugt i64 1, %"$gasrem_772" + br i1 %"$gascmp_773", label %"$out_of_gas_774", label %"$have_gas_775" + +"$out_of_gas_774": ; preds = %"$have_gas_759" + call void @_out_of_gas() + br label %"$have_gas_775" + +"$have_gas_775": ; preds = %"$out_of_gas_774", %"$have_gas_759" + %"$consume_776" = sub i64 %"$gasrem_772", 1 + store i64 %"$consume_776", i64* @_gasrem, align 8 + %"$church_nat_to_uint32_33" = alloca %Uint32, align 8 + %"$church_nat_to_uint32_777" = load { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %church_nat_to_uint32, align 8 + %"$church_nat_to_uint32_fptr_778" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_777", 0 + %"$church_nat_to_uint32_envptr_779" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_777", 1 + %"$c131099_780" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131099, align 8 + %"$church_nat_to_uint32_call_781" = call %Uint32 %"$church_nat_to_uint32_fptr_778"(i8* %"$church_nat_to_uint32_envptr_779", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131099_780"), !dbg !68 + store %Uint32 %"$church_nat_to_uint32_call_781", %Uint32* %"$church_nat_to_uint32_33", align 4, !dbg !68 + %"$$church_nat_to_uint32_33_782" = load %Uint32, %Uint32* %"$church_nat_to_uint32_33", align 4 + store %Uint32 %"$$church_nat_to_uint32_33_782", %Uint32* %"$expr_34", align 4, !dbg !68 + %"$$expr_34_783" = load %Uint32, %Uint32* %"$expr_34", align 4 + ret %Uint32 %"$$expr_34_783" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_808" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_809" = alloca %Uint32, align 8 - %"$memvoidcast_810" = bitcast %Uint32* %"$pval_809" to i8* - store %Uint32 %"$exprval_808", %Uint32* %"$pval_809", align 4 - %"$execptr_load_811" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_811", %_TyDescrTy_Typ* @"$TyDescr_Uint32_75", i8* %"$memvoidcast_810") + %"$exprval_784" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_785" = alloca %Uint32, align 8 + %"$memvoidcast_786" = bitcast %Uint32* %"$pval_785" to i8* + store %Uint32 %"$exprval_784", %Uint32* %"$pval_785", align 4 + %"$execptr_load_787" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_787", %_TyDescrTy_Typ* @"$TyDescr_Uint32_71", i8* %"$memvoidcast_786") ret void } @@ -1493,70 +1452,68 @@ entry: !1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) !2 = !DIFile(filename: "church_nat_stlc.scilexp", directory: "codegen/expr") !3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_69", linkageName: "$fundef_69", scope: !2, file: !2, line: 47, type: !5, scopeLine: 47, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!4 = distinct !DISubprogram(name: "$fundef_65", linkageName: "$fundef_65", scope: !2, file: !2, line: 47, type: !5, scopeLine: 47, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !5 = !DISubroutineType(types: !6) !6 = !{!7} !7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") !8 = !DILocation(line: 47, column: 36, scope: !4) -!9 = distinct !DISubprogram(name: "$fundef_67", linkageName: "$fundef_67", scope: !2, file: !2, line: 45, type: !5, scopeLine: 45, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!9 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 45, type: !5, scopeLine: 45, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !10 = !DILocation(line: 45, column: 16, scope: !9) !11 = !DILocation(line: 46, column: 15, scope: !9) !12 = !DILocation(line: 47, column: 36, scope: !9) !13 = !DILocation(line: 48, column: 5, scope: !9) -!14 = distinct !DISubprogram(name: "$fundef_65", linkageName: "$fundef_65", scope: !2, file: !2, line: 39, type: !5, scopeLine: 39, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!14 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 38, type: !5, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !15 = !DILocation(line: 39, column: 3, scope: !14) -!16 = distinct !DISubprogram(name: "$fundef_63", linkageName: "$fundef_63", scope: !2, file: !2, line: 38, type: !5, scopeLine: 38, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 39, column: 3, scope: !16) -!18 = distinct !DISubprogram(name: "$fundef_61", linkageName: "$fundef_61", scope: !2, file: !2, line: 31, type: !5, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!19 = !DILocation(line: 31, column: 15, scope: !18) -!20 = !DILocation(line: 32, column: 3, scope: !18) -!21 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", scope: !2, file: !2, line: 30, type: !5, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!22 = !DILocation(line: 31, column: 3, scope: !21) -!23 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 29, type: !5, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!24 = !DILocation(line: 30, column: 3, scope: !23) -!25 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", scope: !2, file: !2, line: 23, type: !5, scopeLine: 23, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!26 = !DILocation(line: 23, column: 13, scope: !25) -!27 = !DILocation(line: 24, column: 3, scope: !25) -!28 = distinct !DISubprogram(name: "$fundef_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!29 = !DILocation(line: 23, column: 3, scope: !28) -!30 = distinct !DISubprogram(name: "$fundef_51", linkageName: "$fundef_51", scope: !2, file: !2, line: 21, type: !5, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!31 = !DILocation(line: 22, column: 3, scope: !30) -!32 = distinct !DISubprogram(name: "$fundef_49", linkageName: "$fundef_49", scope: !2, file: !2, line: 20, type: !5, scopeLine: 20, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!33 = !DILocation(line: 21, column: 3, scope: !32) -!34 = distinct !DISubprogram(name: "$fundef_47", linkageName: "$fundef_47", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!35 = !DILocation(line: 14, column: 104, scope: !34) -!36 = !DILocation(line: 14, column: 121, scope: !34) -!37 = !DILocation(line: 14, column: 129, scope: !34) -!38 = distinct !DISubprogram(name: "$fundef_45", linkageName: "$fundef_45", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!39 = !DILocation(line: 14, column: 95, scope: !38) -!40 = distinct !DISubprogram(name: "$fundef_43", linkageName: "$fundef_43", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!41 = !DILocation(line: 11, column: 69, scope: !40) -!42 = !DILocation(line: 11, column: 86, scope: !40) -!43 = !DILocation(line: 11, column: 94, scope: !40) -!44 = distinct !DISubprogram(name: "$fundef_41", linkageName: "$fundef_41", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!45 = !DILocation(line: 11, column: 60, scope: !44) -!46 = distinct !DISubprogram(name: "$fundef_39", linkageName: "$fundef_39", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!47 = !DILocation(line: 9, column: 69, scope: !46) -!48 = !DILocation(line: 9, column: 76, scope: !46) -!49 = distinct !DISubprogram(name: "$fundef_37", linkageName: "$fundef_37", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!50 = !DILocation(line: 9, column: 60, scope: !49) -!51 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !52, file: !52, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!52 = !DIFile(filename: ".", directory: ".") -!53 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!54 = !DILocation(line: 9, column: 40, scope: !53) -!55 = !DILocation(line: 11, column: 40, scope: !53) -!56 = !DILocation(line: 14, column: 65, scope: !53) -!57 = !DILocation(line: 20, column: 3, scope: !53) -!58 = !DILocation(line: 29, column: 3, scope: !53) -!59 = !DILocation(line: 38, column: 3, scope: !53) -!60 = !DILocation(line: 45, column: 5, scope: !53) -!61 = !DILocation(line: 51, column: 10, scope: !53) -!62 = !DILocation(line: 52, column: 11, scope: !53) -!63 = !DILocation(line: 53, column: 11, scope: !53) -!64 = !DILocation(line: 54, column: 12, scope: !53) -!65 = !DILocation(line: 55, column: 12, scope: !53) -!66 = !DILocation(line: 56, column: 14, scope: !53) -!67 = !DILocation(line: 57, column: 15, scope: !53) -!68 = !DILocation(line: 58, column: 11, scope: !53) -!69 = !DILocation(line: 59, column: 15, scope: !53) -!70 = !DILocation(line: 60, column: 1, scope: !53) +!16 = distinct !DISubprogram(name: "$fundef_59", linkageName: "$fundef_59", scope: !2, file: !2, line: 31, type: !5, scopeLine: 31, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!17 = !DILocation(line: 31, column: 15, scope: !16) +!18 = !DILocation(line: 32, column: 3, scope: !16) +!19 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 30, type: !5, scopeLine: 30, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!20 = !DILocation(line: 31, column: 3, scope: !19) +!21 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", scope: !2, file: !2, line: 29, type: !5, scopeLine: 29, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!22 = !DILocation(line: 30, column: 3, scope: !21) +!23 = distinct !DISubprogram(name: "$fundef_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 23, type: !5, scopeLine: 23, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!24 = !DILocation(line: 23, column: 13, scope: !23) +!25 = !DILocation(line: 24, column: 3, scope: !23) +!26 = distinct !DISubprogram(name: "$fundef_51", linkageName: "$fundef_51", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!27 = !DILocation(line: 23, column: 3, scope: !26) +!28 = distinct !DISubprogram(name: "$fundef_49", linkageName: "$fundef_49", scope: !2, file: !2, line: 21, type: !5, scopeLine: 21, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!29 = !DILocation(line: 22, column: 3, scope: !28) +!30 = distinct !DISubprogram(name: "$fundef_47", linkageName: "$fundef_47", scope: !2, file: !2, line: 20, type: !5, scopeLine: 20, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!31 = !DILocation(line: 21, column: 3, scope: !30) +!32 = distinct !DISubprogram(name: "$fundef_45", linkageName: "$fundef_45", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!33 = !DILocation(line: 14, column: 104, scope: !32) +!34 = !DILocation(line: 14, column: 121, scope: !32) +!35 = !DILocation(line: 14, column: 129, scope: !32) +!36 = distinct !DISubprogram(name: "$fundef_43", linkageName: "$fundef_43", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!37 = !DILocation(line: 14, column: 95, scope: !36) +!38 = distinct !DISubprogram(name: "$fundef_41", linkageName: "$fundef_41", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!39 = !DILocation(line: 11, column: 69, scope: !38) +!40 = !DILocation(line: 11, column: 86, scope: !38) +!41 = !DILocation(line: 11, column: 94, scope: !38) +!42 = distinct !DISubprogram(name: "$fundef_39", linkageName: "$fundef_39", scope: !2, file: !2, line: 11, type: !5, scopeLine: 11, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!43 = !DILocation(line: 11, column: 60, scope: !42) +!44 = distinct !DISubprogram(name: "$fundef_37", linkageName: "$fundef_37", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!45 = !DILocation(line: 9, column: 69, scope: !44) +!46 = !DILocation(line: 9, column: 76, scope: !44) +!47 = distinct !DISubprogram(name: "$fundef_35", linkageName: "$fundef_35", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!48 = !DILocation(line: 9, column: 60, scope: !47) +!49 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !50, file: !50, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!50 = !DIFile(filename: ".", directory: ".") +!51 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) +!52 = !DILocation(line: 9, column: 40, scope: !51) +!53 = !DILocation(line: 11, column: 40, scope: !51) +!54 = !DILocation(line: 14, column: 65, scope: !51) +!55 = !DILocation(line: 20, column: 3, scope: !51) +!56 = !DILocation(line: 29, column: 3, scope: !51) +!57 = !DILocation(line: 38, column: 3, scope: !51) +!58 = !DILocation(line: 45, column: 5, scope: !51) +!59 = !DILocation(line: 51, column: 10, scope: !51) +!60 = !DILocation(line: 52, column: 11, scope: !51) +!61 = !DILocation(line: 53, column: 11, scope: !51) +!62 = !DILocation(line: 54, column: 12, scope: !51) +!63 = !DILocation(line: 55, column: 12, scope: !51) +!64 = !DILocation(line: 56, column: 14, scope: !51) +!65 = !DILocation(line: 57, column: 15, scope: !51) +!66 = !DILocation(line: 58, column: 11, scope: !51) +!67 = !DILocation(line: 59, column: 15, scope: !51) +!68 = !DILocation(line: 60, column: 1, scope: !51) diff --git a/tests/codegen/expr/dgold/cn.scilexp.gold b/tests/codegen/expr/dgold/cn.scilexp.gold index 50e0e4b4..878601f7 100644 --- a/tests/codegen/expr/dgold/cn.scilexp.gold +++ b/tests/codegen/expr/dgold/cn.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_18" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/dce1.scilexp.gold b/tests/codegen/expr/dgold/dce1.scilexp.gold index fcb489a4..a408a0d0 100644 --- a/tests/codegen/expr/dgold/dce1.scilexp.gold +++ b/tests/codegen/expr/dgold/dce1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/event-fun.scilexp.gold b/tests/codegen/expr/dgold/event-fun.scilexp.gold index c0776886..ed349ab9 100644 --- a/tests/codegen/expr/dgold/event-fun.scilexp.gold +++ b/tests/codegen/expr/dgold/event-fun.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/event-fun2.scilexp.gold b/tests/codegen/expr/dgold/event-fun2.scilexp.gold index 8d38e4f5..58b1fe4c 100644 --- a/tests/codegen/expr/dgold/event-fun2.scilexp.gold +++ b/tests/codegen/expr/dgold/event-fun2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/exponential-growth.scilexp.gold b/tests/codegen/expr/dgold/exponential-growth.scilexp.gold index 48b68629..02ee48bd 100644 --- a/tests/codegen/expr/dgold/exponential-growth.scilexp.gold +++ b/tests/codegen/expr/dgold/exponential-growth.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_12" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/fib.scilexp.gold b/tests/codegen/expr/dgold/fib.scilexp.gold index 767d88b5..8ca0be0e 100644 --- a/tests/codegen/expr/dgold/fib.scilexp.gold +++ b/tests/codegen/expr/dgold/fib.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_26" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/fun-type-inst.scilexp.gold b/tests/codegen/expr/dgold/fun-type-inst.scilexp.gold index 21cbd6d7..3b14f898 100644 --- a/tests/codegen/expr/dgold/fun-type-inst.scilexp.gold +++ b/tests/codegen/expr/dgold/fun-type-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_69" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-bnum.scilexp.gold b/tests/codegen/expr/dgold/lit-bnum.scilexp.gold index 237641a6..56f3ca81 100644 --- a/tests/codegen/expr/dgold/lit-bnum.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-bnum.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-bystr3.scilexp.gold b/tests/codegen/expr/dgold/lit-bystr3.scilexp.gold index 882d4190..83478958 100644 --- a/tests/codegen/expr/dgold/lit-bystr3.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-bystr3.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-emp_i32_i32.scilexp.gold b/tests/codegen/expr/dgold/lit-emp_i32_i32.scilexp.gold index becd9828..0221deaf 100644 --- a/tests/codegen/expr/dgold/lit-emp_i32_i32.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-emp_i32_i32.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-emp_i32_list_string.scilexp.gold b/tests/codegen/expr/dgold/lit-emp_i32_list_string.scilexp.gold index 5d621835..97505429 100644 --- a/tests/codegen/expr/dgold/lit-emp_i32_list_string.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-emp_i32_list_string.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-event.scilexp.gold b/tests/codegen/expr/dgold/lit-event.scilexp.gold index 196f59e4..93d1a73f 100644 --- a/tests/codegen/expr/dgold/lit-event.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-event.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-i256-4.scilexp.gold b/tests/codegen/expr/dgold/lit-i256-4.scilexp.gold index bfc3bae3..43b3da11 100644 --- a/tests/codegen/expr/dgold/lit-i256-4.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-i256-4.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-i256-max.scilexp.gold b/tests/codegen/expr/dgold/lit-i256-max.scilexp.gold index 6aae718b..417524fd 100644 --- a/tests/codegen/expr/dgold/lit-i256-max.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-i256-max.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-i256-min.scilexp.gold b/tests/codegen/expr/dgold/lit-i256-min.scilexp.gold index 1f1c1dbe..4de2e397 100644 --- a/tests/codegen/expr/dgold/lit-i256-min.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-i256-min.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-int32-1.scilexp.gold b/tests/codegen/expr/dgold/lit-int32-1.scilexp.gold index be24fc76..b4aa595b 100644 --- a/tests/codegen/expr/dgold/lit-int32-1.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-int32-1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-int32.scilexp.gold b/tests/codegen/expr/dgold/lit-int32.scilexp.gold index e27ec371..ba6c32d4 100644 --- a/tests/codegen/expr/dgold/lit-int32.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-int32.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-nat_two.scilexp.gold b/tests/codegen/expr/dgold/lit-nat_two.scilexp.gold index 7f13dc4a..e2e99680 100644 --- a/tests/codegen/expr/dgold/lit-nat_two.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-nat_two.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-nat_zero.scilexp.gold b/tests/codegen/expr/dgold/lit-nat_zero.scilexp.gold index 71653ff6..d63fcef3 100644 --- a/tests/codegen/expr/dgold/lit-nat_zero.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-nat_zero.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-nil.scilexp.gold b/tests/codegen/expr/dgold/lit-nil.scilexp.gold index bc85cc61..d6a50cce 100644 --- a/tests/codegen/expr/dgold/lit-nil.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-nil.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-pair-list-int.scilexp.gold b/tests/codegen/expr/dgold/lit-pair-list-int.scilexp.gold index c93c5676..18e586be 100644 --- a/tests/codegen/expr/dgold/lit-pair-list-int.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-pair-list-int.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-string.scilexp.gold b/tests/codegen/expr/dgold/lit-string.scilexp.gold index 640765fd..6348defa 100644 --- a/tests/codegen/expr/dgold/lit-string.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-string.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-ui256-4.scilexp.gold b/tests/codegen/expr/dgold/lit-ui256-4.scilexp.gold index 8a7f187f..df63cc31 100644 --- a/tests/codegen/expr/dgold/lit-ui256-4.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-ui256-4.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/lit-ui256-max.scilexp.gold b/tests/codegen/expr/dgold/lit-ui256-max.scilexp.gold index 49326f4f..bef76d2a 100644 --- a/tests/codegen/expr/dgold/lit-ui256-max.scilexp.gold +++ b/tests/codegen/expr/dgold/lit-ui256-max.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/map1.scilexp.gold b/tests/codegen/expr/dgold/map1.scilexp.gold index 38f5d5e4..74855773 100644 --- a/tests/codegen/expr/dgold/map1.scilexp.gold +++ b/tests/codegen/expr/dgold/map1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/map_to_list.scilexp.gold b/tests/codegen/expr/dgold/map_to_list.scilexp.gold index 31ee6908..f43e436e 100644 --- a/tests/codegen/expr/dgold/map_to_list.scilexp.gold +++ b/tests/codegen/expr/dgold/map_to_list.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/map_to_list2.scilexp.gold b/tests/codegen/expr/dgold/map_to_list2.scilexp.gold index f78b6787..6d3d5d8c 100644 --- a/tests/codegen/expr/dgold/map_to_list2.scilexp.gold +++ b/tests/codegen/expr/dgold/map_to_list2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/match_assign.scilexp.gold b/tests/codegen/expr/dgold/match_assign.scilexp.gold index 4fb21524..af583bed 100644 --- a/tests/codegen/expr/dgold/match_assign.scilexp.gold +++ b/tests/codegen/expr/dgold/match_assign.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/multi-type-inst.scilexp.gold b/tests/codegen/expr/dgold/multi-type-inst.scilexp.gold index 343d2381..692ffbb6 100644 --- a/tests/codegen/expr/dgold/multi-type-inst.scilexp.gold +++ b/tests/codegen/expr/dgold/multi-type-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_59" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/name_clash.scilexp.gold b/tests/codegen/expr/dgold/name_clash.scilexp.gold index 4c91a4a1..e9953682 100644 --- a/tests/codegen/expr/dgold/name_clash.scilexp.gold +++ b/tests/codegen/expr/dgold/name_clash.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/name_clash1.scilexp.gold b/tests/codegen/expr/dgold/name_clash1.scilexp.gold index 31ea350b..8616c59d 100644 --- a/tests/codegen/expr/dgold/name_clash1.scilexp.gold +++ b/tests/codegen/expr/dgold/name_clash1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/name_clash2.scilexp.gold b/tests/codegen/expr/dgold/name_clash2.scilexp.gold index ffc726ce..8e148182 100644 --- a/tests/codegen/expr/dgold/name_clash2.scilexp.gold +++ b/tests/codegen/expr/dgold/name_clash2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/name_clash3.scilexp.gold b/tests/codegen/expr/dgold/name_clash3.scilexp.gold index dcb203a1..f0fd333c 100644 --- a/tests/codegen/expr/dgold/name_clash3.scilexp.gold +++ b/tests/codegen/expr/dgold/name_clash3.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/nested-fun.scilexp.gold b/tests/codegen/expr/dgold/nested-fun.scilexp.gold index d9bb27ee..46c84e8d 100644 --- a/tests/codegen/expr/dgold/nested-fun.scilexp.gold +++ b/tests/codegen/expr/dgold/nested-fun.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/nonprenex.scilexp.gold b/tests/codegen/expr/dgold/nonprenex.scilexp.gold index fd768c2e..9c19f626 100644 --- a/tests/codegen/expr/dgold/nonprenex.scilexp.gold +++ b/tests/codegen/expr/dgold/nonprenex.scilexp.gold @@ -1,1206 +1,1092 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_59" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_52" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_91" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_90"** } +%"$TyDescrTy_ADTTyp_84" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_83"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_90" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_92"**, %"$TyDescrTy_ADTTyp_91"* } -%"$TyDescrTy_ADTTyp_Constr_92" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$ParamDescr_1026" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_83" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_85"**, %"$TyDescrTy_ADTTyp_84"* } +%"$TyDescrTy_ADTTyp_Constr_85" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$ParamDescr_976" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1027" = type { %ParamDescrString, i32, %"$ParamDescr_1026"* } -%"$$fundef_57_env_132" = type { %TName_Bool*, { i8*, i8* }* } +%"$TransDescr_977" = type { %ParamDescrString, i32, %"$ParamDescr_976"* } +%"$$fundef_50_env_125" = type {} %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$$fundef_55_env_133" = type { %TName_Bool* } -%"$$fundef_53_env_134" = type {} %Uint32 = type { i32 } -%"$$fundef_51_env_135" = type { { i8*, i8* }* } +%"$$fundef_48_env_126" = type { { i8*, i8* }* } %TName_List_ByStr20 = type { i8, %CName_Cons_ByStr20*, %CName_Nil_ByStr20* } %CName_Cons_ByStr20 = type <{ i8, [20 x i8], %TName_List_ByStr20* }> %CName_Nil_ByStr20 = type <{ i8 }> -%"$$fundef_49_env_136" = type { { i8*, i8* }* } -%"$$fundef_47_env_137" = type { { i8*, i8* }* } +%"$$fundef_46_env_127" = type { { i8*, i8* }* } +%"$$fundef_44_env_128" = type { { i8*, i8* }* } %TName_List_String = type { i8, %CName_Cons_String*, %CName_Nil_String* } %CName_Cons_String = type <{ i8, %String, %TName_List_String* }> %String = type { i8*, i32 } %CName_Nil_String = type <{ i8 }> -%"$$fundef_45_env_138" = type { { i8*, i8* }* } -%"$$fundef_42_env_139" = type { %Uint32, %Uint32 } -%"$$fundef_40_env_140" = type { %Uint32 } -%"$$fundef_38_env_141" = type { { i8*, i8* }* } -%"$$fundef_36_env_142" = type { %Uint32, %Uint32 } -%"$$fundef_34_env_143" = type { %Uint32 } -%"$$fundef_32_env_144" = type { { i8*, i8* }* } -%"$$fundef_30_env_145" = type { { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, %Uint32 } -%"$$fundef_28_env_146" = type { { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } } -%"$$fundef_26_env_147" = type {} -%"$$fundef_24_env_148" = type {} -%"$$fundef_22_env_149" = type {} -%"$$fundef_20_env_150" = type { { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, %Uint32 } -%"$$fundef_18_env_151" = type { { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } } -%"$$fundef_16_env_152" = type {} -%"$$fundef_14_env_153" = type {} -%"$$fundef_12_env_154" = type {} +%"$$fundef_42_env_129" = type { { i8*, i8* }* } +%"$$fundef_39_env_130" = type { %Uint32, %Uint32 } +%"$$fundef_37_env_131" = type { %Uint32 } +%"$$fundef_35_env_132" = type { { i8*, i8* }* } +%"$$fundef_33_env_133" = type { %Uint32, %Uint32 } +%"$$fundef_31_env_134" = type { %Uint32 } +%"$$fundef_29_env_135" = type { { i8*, i8* }* } +%"$$fundef_27_env_136" = type { { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, %Uint32 } +%"$$fundef_25_env_137" = type { { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } } +%"$$fundef_23_env_138" = type {} +%"$$fundef_21_env_139" = type {} +%"$$fundef_19_env_140" = type {} +%"$$fundef_17_env_141" = type { { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, %Uint32 } +%"$$fundef_15_env_142" = type { { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } } +%"$$fundef_13_env_143" = type {} +%"$$fundef_11_env_144" = type {} +%"$$fundef_9_env_145" = type {} @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_60" = global %"$TyDescrTy_PrimTyp_59" zeroinitializer -@"$TyDescr_Int32_61" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Int32_Prim_60" to i8*) } -@"$TyDescr_Uint32_Prim_62" = global %"$TyDescrTy_PrimTyp_59" { i32 1, i32 0 } -@"$TyDescr_Uint32_63" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Uint32_Prim_62" to i8*) } -@"$TyDescr_Int64_Prim_64" = global %"$TyDescrTy_PrimTyp_59" { i32 0, i32 1 } -@"$TyDescr_Int64_65" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Int64_Prim_64" to i8*) } -@"$TyDescr_Uint64_Prim_66" = global %"$TyDescrTy_PrimTyp_59" { i32 1, i32 1 } -@"$TyDescr_Uint64_67" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Uint64_Prim_66" to i8*) } -@"$TyDescr_Int128_Prim_68" = global %"$TyDescrTy_PrimTyp_59" { i32 0, i32 2 } -@"$TyDescr_Int128_69" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Int128_Prim_68" to i8*) } -@"$TyDescr_Uint128_Prim_70" = global %"$TyDescrTy_PrimTyp_59" { i32 1, i32 2 } -@"$TyDescr_Uint128_71" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Uint128_Prim_70" to i8*) } -@"$TyDescr_Int256_Prim_72" = global %"$TyDescrTy_PrimTyp_59" { i32 0, i32 3 } -@"$TyDescr_Int256_73" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Int256_Prim_72" to i8*) } -@"$TyDescr_Uint256_Prim_74" = global %"$TyDescrTy_PrimTyp_59" { i32 1, i32 3 } -@"$TyDescr_Uint256_75" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Uint256_Prim_74" to i8*) } -@"$TyDescr_String_Prim_76" = global %"$TyDescrTy_PrimTyp_59" { i32 2, i32 0 } -@"$TyDescr_String_77" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_String_Prim_76" to i8*) } -@"$TyDescr_Bnum_Prim_78" = global %"$TyDescrTy_PrimTyp_59" { i32 3, i32 0 } -@"$TyDescr_Bnum_79" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Bnum_Prim_78" to i8*) } -@"$TyDescr_Message_Prim_80" = global %"$TyDescrTy_PrimTyp_59" { i32 4, i32 0 } -@"$TyDescr_Message_81" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Message_Prim_80" to i8*) } -@"$TyDescr_Event_Prim_82" = global %"$TyDescrTy_PrimTyp_59" { i32 5, i32 0 } -@"$TyDescr_Event_83" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Event_Prim_82" to i8*) } -@"$TyDescr_Exception_Prim_84" = global %"$TyDescrTy_PrimTyp_59" { i32 6, i32 0 } -@"$TyDescr_Exception_85" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Exception_Prim_84" to i8*) } -@"$TyDescr_Bystr_Prim_86" = global %"$TyDescrTy_PrimTyp_59" { i32 7, i32 0 } -@"$TyDescr_Bystr_87" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Bystr_Prim_86" to i8*) } -@"$TyDescr_Bystr20_Prim_88" = global %"$TyDescrTy_PrimTyp_59" { i32 8, i32 20 } -@"$TyDescr_Bystr20_89" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Bystr20_Prim_88" to i8*) } -@"$TyDescr_ADT_Bool_93" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_Bool_ADTTyp_Specl_108" to i8*) } -@"$TyDescr_ADT_List_ByStr20_94" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_120" to i8*) } -@"$TyDescr_ADT_List_String_95" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_List_String_ADTTyp_Specl_129" to i8*) } -@"$TyDescr_Bool_ADTTyp_99" = unnamed_addr constant %"$TyDescrTy_ADTTyp_91" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_110", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_90"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_90"*], [1 x %"$TyDescrTy_ADTTyp_Specl_90"*]* @"$TyDescr_Bool_ADTTyp_m_specls_109", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_100" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_101" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_102" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_101", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_100", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_103" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_104" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_105" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_104", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_103", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_106" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_92"*] [%"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_Bool_True_ADTTyp_Constr_102", %"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_Bool_False_ADTTyp_Constr_105"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_107" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_108" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_90" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_107", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_92"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_92"*], [2 x %"$TyDescrTy_ADTTyp_Constr_92"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_106", i32 0, i32 0), %"$TyDescrTy_ADTTyp_91"* @"$TyDescr_Bool_ADTTyp_99" } -@"$TyDescr_Bool_ADTTyp_m_specls_109" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_90"*] [%"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_Bool_ADTTyp_Specl_108"] -@"$TyDescr_ADT_Bool_110" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_List_ADTTyp_111" = unnamed_addr constant %"$TyDescrTy_ADTTyp_91" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_131", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_90"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_90"*], [2 x %"$TyDescrTy_ADTTyp_Specl_90"*]* @"$TyDescr_List_ADTTyp_m_specls_130", i32 0, i32 0) } -@"$TyDescr_List_Cons_ByStr20_Constr_m_args_112" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_89", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_94"] -@"$TyDescr_ADT_Cons_113" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_114" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_113", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_ByStr20_Constr_m_args_112", i32 0, i32 0) } -@"$TyDescr_List_Nil_ByStr20_Constr_m_args_115" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_116" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_117" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_116", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_ByStr20_Constr_m_args_115", i32 0, i32 0) } -@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_118" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_92"*] [%"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_114", %"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_117"] -@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_119" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_89"] -@"$TyDescr_List_ByStr20_ADTTyp_Specl_120" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_90" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_119", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_92"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_92"*], [2 x %"$TyDescrTy_ADTTyp_Constr_92"*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_118", i32 0, i32 0), %"$TyDescrTy_ADTTyp_91"* @"$TyDescr_List_ADTTyp_111" } -@"$TyDescr_List_Cons_String_Constr_m_args_121" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_77", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_95"] -@"$TyDescr_ADT_Cons_122" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_String_ADTTyp_Constr_123" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_122", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_String_Constr_m_args_121", i32 0, i32 0) } -@"$TyDescr_List_Nil_String_Constr_m_args_124" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_125" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_String_ADTTyp_Constr_126" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_125", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_String_Constr_m_args_124", i32 0, i32 0) } -@"$TyDescr_List_String_ADTTyp_Specl_m_constrs_127" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_92"*] [%"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_List_Cons_String_ADTTyp_Constr_123", %"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_List_Nil_String_ADTTyp_Constr_126"] -@"$TyDescr_List_String_ADTTyp_Specl_m_TArgs_128" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_77"] -@"$TyDescr_List_String_ADTTyp_Specl_129" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_90" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_String_ADTTyp_Specl_m_TArgs_128", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_92"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_92"*], [2 x %"$TyDescrTy_ADTTyp_Constr_92"*]* @"$TyDescr_List_String_ADTTyp_Specl_m_constrs_127", i32 0, i32 0), %"$TyDescrTy_ADTTyp_91"* @"$TyDescr_List_ADTTyp_111" } -@"$TyDescr_List_ADTTyp_m_specls_130" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_90"*] [%"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_120", %"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_List_String_ADTTyp_Specl_129"] -@"$TyDescr_ADT_List_131" = unnamed_addr constant [4 x i8] c"List" +@"$TyDescr_Int32_Prim_53" = global %"$TyDescrTy_PrimTyp_52" zeroinitializer +@"$TyDescr_Int32_54" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Int32_Prim_53" to i8*) } +@"$TyDescr_Uint32_Prim_55" = global %"$TyDescrTy_PrimTyp_52" { i32 1, i32 0 } +@"$TyDescr_Uint32_56" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Uint32_Prim_55" to i8*) } +@"$TyDescr_Int64_Prim_57" = global %"$TyDescrTy_PrimTyp_52" { i32 0, i32 1 } +@"$TyDescr_Int64_58" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Int64_Prim_57" to i8*) } +@"$TyDescr_Uint64_Prim_59" = global %"$TyDescrTy_PrimTyp_52" { i32 1, i32 1 } +@"$TyDescr_Uint64_60" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Uint64_Prim_59" to i8*) } +@"$TyDescr_Int128_Prim_61" = global %"$TyDescrTy_PrimTyp_52" { i32 0, i32 2 } +@"$TyDescr_Int128_62" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Int128_Prim_61" to i8*) } +@"$TyDescr_Uint128_Prim_63" = global %"$TyDescrTy_PrimTyp_52" { i32 1, i32 2 } +@"$TyDescr_Uint128_64" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Uint128_Prim_63" to i8*) } +@"$TyDescr_Int256_Prim_65" = global %"$TyDescrTy_PrimTyp_52" { i32 0, i32 3 } +@"$TyDescr_Int256_66" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Int256_Prim_65" to i8*) } +@"$TyDescr_Uint256_Prim_67" = global %"$TyDescrTy_PrimTyp_52" { i32 1, i32 3 } +@"$TyDescr_Uint256_68" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Uint256_Prim_67" to i8*) } +@"$TyDescr_String_Prim_69" = global %"$TyDescrTy_PrimTyp_52" { i32 2, i32 0 } +@"$TyDescr_String_70" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_String_Prim_69" to i8*) } +@"$TyDescr_Bnum_Prim_71" = global %"$TyDescrTy_PrimTyp_52" { i32 3, i32 0 } +@"$TyDescr_Bnum_72" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Bnum_Prim_71" to i8*) } +@"$TyDescr_Message_Prim_73" = global %"$TyDescrTy_PrimTyp_52" { i32 4, i32 0 } +@"$TyDescr_Message_74" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Message_Prim_73" to i8*) } +@"$TyDescr_Event_Prim_75" = global %"$TyDescrTy_PrimTyp_52" { i32 5, i32 0 } +@"$TyDescr_Event_76" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Event_Prim_75" to i8*) } +@"$TyDescr_Exception_Prim_77" = global %"$TyDescrTy_PrimTyp_52" { i32 6, i32 0 } +@"$TyDescr_Exception_78" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Exception_Prim_77" to i8*) } +@"$TyDescr_Bystr_Prim_79" = global %"$TyDescrTy_PrimTyp_52" { i32 7, i32 0 } +@"$TyDescr_Bystr_80" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Bystr_Prim_79" to i8*) } +@"$TyDescr_Bystr20_Prim_81" = global %"$TyDescrTy_PrimTyp_52" { i32 8, i32 20 } +@"$TyDescr_Bystr20_82" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Bystr20_Prim_81" to i8*) } +@"$TyDescr_ADT_Bool_86" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_Bool_ADTTyp_Specl_101" to i8*) } +@"$TyDescr_ADT_List_ByStr20_87" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_113" to i8*) } +@"$TyDescr_ADT_List_String_88" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_List_String_ADTTyp_Specl_122" to i8*) } +@"$TyDescr_Bool_ADTTyp_92" = unnamed_addr constant %"$TyDescrTy_ADTTyp_84" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_103", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_83"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_83"*], [1 x %"$TyDescrTy_ADTTyp_Specl_83"*]* @"$TyDescr_Bool_ADTTyp_m_specls_102", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_93" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_94" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_95" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_94", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_93", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_96" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_97" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_98" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_97", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_96", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_99" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_85"*] [%"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_Bool_True_ADTTyp_Constr_95", %"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_Bool_False_ADTTyp_Constr_98"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_100" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_101" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_83" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_100", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_85"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_85"*], [2 x %"$TyDescrTy_ADTTyp_Constr_85"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_99", i32 0, i32 0), %"$TyDescrTy_ADTTyp_84"* @"$TyDescr_Bool_ADTTyp_92" } +@"$TyDescr_Bool_ADTTyp_m_specls_102" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_83"*] [%"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_Bool_ADTTyp_Specl_101"] +@"$TyDescr_ADT_Bool_103" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_List_ADTTyp_104" = unnamed_addr constant %"$TyDescrTy_ADTTyp_84" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_124", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_83"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_83"*], [2 x %"$TyDescrTy_ADTTyp_Specl_83"*]* @"$TyDescr_List_ADTTyp_m_specls_123", i32 0, i32 0) } +@"$TyDescr_List_Cons_ByStr20_Constr_m_args_105" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_82", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_87"] +@"$TyDescr_ADT_Cons_106" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_107" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_106", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_ByStr20_Constr_m_args_105", i32 0, i32 0) } +@"$TyDescr_List_Nil_ByStr20_Constr_m_args_108" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_109" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_110" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_109", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_ByStr20_Constr_m_args_108", i32 0, i32 0) } +@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_111" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_85"*] [%"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_107", %"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_110"] +@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_112" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_82"] +@"$TyDescr_List_ByStr20_ADTTyp_Specl_113" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_83" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_112", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_85"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_85"*], [2 x %"$TyDescrTy_ADTTyp_Constr_85"*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_111", i32 0, i32 0), %"$TyDescrTy_ADTTyp_84"* @"$TyDescr_List_ADTTyp_104" } +@"$TyDescr_List_Cons_String_Constr_m_args_114" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_70", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_88"] +@"$TyDescr_ADT_Cons_115" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_String_ADTTyp_Constr_116" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_115", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_String_Constr_m_args_114", i32 0, i32 0) } +@"$TyDescr_List_Nil_String_Constr_m_args_117" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_118" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_String_ADTTyp_Constr_119" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_118", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_String_Constr_m_args_117", i32 0, i32 0) } +@"$TyDescr_List_String_ADTTyp_Specl_m_constrs_120" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_85"*] [%"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_List_Cons_String_ADTTyp_Constr_116", %"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_List_Nil_String_ADTTyp_Constr_119"] +@"$TyDescr_List_String_ADTTyp_Specl_m_TArgs_121" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_70"] +@"$TyDescr_List_String_ADTTyp_Specl_122" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_83" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_String_ADTTyp_Specl_m_TArgs_121", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_85"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_85"*], [2 x %"$TyDescrTy_ADTTyp_Constr_85"*]* @"$TyDescr_List_String_ADTTyp_Specl_m_constrs_120", i32 0, i32 0), %"$TyDescrTy_ADTTyp_84"* @"$TyDescr_List_ADTTyp_104" } +@"$TyDescr_List_ADTTyp_m_specls_123" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_83"*] [%"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_113", %"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_List_String_ADTTyp_Specl_122"] +@"$TyDescr_ADT_List_124" = unnamed_addr constant [4 x i8] c"List" @list_foldl = global { i8*, i8* }* null @ListUtils.list_length = global { i8*, i8* }* null -@_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_83", %_TyDescrTy_Typ* @"$TyDescr_Int64_65", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_93", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_89", %_TyDescrTy_Typ* @"$TyDescr_Uint256_75", %_TyDescrTy_Typ* @"$TyDescr_Uint32_63", %_TyDescrTy_Typ* @"$TyDescr_Uint64_67", %_TyDescrTy_Typ* @"$TyDescr_Bnum_79", %_TyDescrTy_Typ* @"$TyDescr_Uint128_71", %_TyDescrTy_Typ* @"$TyDescr_Exception_85", %_TyDescrTy_Typ* @"$TyDescr_String_77", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_94", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_95", %_TyDescrTy_Typ* @"$TyDescr_Int256_73", %_TyDescrTy_Typ* @"$TyDescr_Int128_69", %_TyDescrTy_Typ* @"$TyDescr_Bystr_87", %_TyDescrTy_Typ* @"$TyDescr_Message_81", %_TyDescrTy_Typ* @"$TyDescr_Int32_61"] +@_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_76", %_TyDescrTy_Typ* @"$TyDescr_Int64_58", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_86", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_82", %_TyDescrTy_Typ* @"$TyDescr_Uint256_68", %_TyDescrTy_Typ* @"$TyDescr_Uint32_56", %_TyDescrTy_Typ* @"$TyDescr_Uint64_60", %_TyDescrTy_Typ* @"$TyDescr_Bnum_72", %_TyDescrTy_Typ* @"$TyDescr_Uint128_64", %_TyDescrTy_Typ* @"$TyDescr_Exception_78", %_TyDescrTy_Typ* @"$TyDescr_String_70", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_87", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_88", %_TyDescrTy_Typ* @"$TyDescr_Int256_66", %_TyDescrTy_Typ* @"$TyDescr_Int128_62", %_TyDescrTy_Typ* @"$TyDescr_Bystr_80", %_TyDescrTy_Typ* @"$TyDescr_Message_74", %_TyDescrTy_Typ* @"$TyDescr_Int32_54"] @_tydescr_table_length = constant i32 18 -@_contract_parameters = constant [0 x %"$ParamDescr_1026"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_976"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_1027"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_977"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal { i8*, i8* }* @"$fundef_57"(%"$$fundef_57_env_132"* %0, { i8*, i8* }* %1) !dbg !4 { +define internal { i8*, i8* }* @"$fundef_50"(%"$$fundef_50_env_125"* %0, %TName_Bool* %1, { i8*, i8* }* %2, { i8*, i8* }* %3) !dbg !4 { entry: - %"$$fundef_57_env_b_780" = getelementptr inbounds %"$$fundef_57_env_132", %"$$fundef_57_env_132"* %0, i32 0, i32 0 - %"$b_envload_781" = load %TName_Bool*, %TName_Bool** %"$$fundef_57_env_b_780", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_781", %TName_Bool** %b, align 8 - %"$$fundef_57_env_f_782" = getelementptr inbounds %"$$fundef_57_env_132", %"$$fundef_57_env_132"* %0, i32 0, i32 1 - %"$f_envload_783" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_f_782", align 8 - %f = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$f_envload_783", { i8*, i8* }** %f, align 8 - %"$retval_58" = alloca { i8*, i8* }*, align 8 - %"$gasrem_784" = load i64, i64* @_gasrem, align 8 - %"$gascmp_785" = icmp ugt i64 2, %"$gasrem_784" - br i1 %"$gascmp_785", label %"$out_of_gas_786", label %"$have_gas_787" - -"$out_of_gas_786": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_787" - -"$have_gas_787": ; preds = %"$out_of_gas_786", %entry - %"$consume_788" = sub i64 %"$gasrem_784", 2 - store i64 %"$consume_788", i64* @_gasrem, align 8 - %"$b_790" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_791" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_790", i32 0, i32 0 - %"$b_tag_792" = load i8, i8* %"$b_tag_791", align 1 - switch i8 %"$b_tag_792", label %"$empty_default_793" [ - i8 0, label %"$True_794" - i8 1, label %"$False_801" - ], !dbg !8 - -"$True_794": ; preds = %"$have_gas_787" - %"$b_795" = bitcast %TName_Bool* %"$b_790" to %CName_True* - %"$gasrem_796" = load i64, i64* @_gasrem, align 8 - %"$gascmp_797" = icmp ugt i64 1, %"$gasrem_796" - br i1 %"$gascmp_797", label %"$out_of_gas_798", label %"$have_gas_799" + %"$retval_51" = alloca { i8*, i8* }*, align 8 + %"$gasrem_745" = load i64, i64* @_gasrem, align 8 + %"$gascmp_746" = icmp ugt i64 2, %"$gasrem_745" + br i1 %"$gascmp_746", label %"$out_of_gas_747", label %"$have_gas_748" -"$out_of_gas_798": ; preds = %"$True_794" +"$out_of_gas_747": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_799" + br label %"$have_gas_748" -"$have_gas_799": ; preds = %"$out_of_gas_798", %"$True_794" - %"$consume_800" = sub i64 %"$gasrem_796", 1 - store i64 %"$consume_800", i64* @_gasrem, align 8 - store { i8*, i8* }* %1, { i8*, i8* }** %"$retval_58", align 8, !dbg !9 - br label %"$matchsucc_789" +"$have_gas_748": ; preds = %"$out_of_gas_747", %entry + %"$consume_749" = sub i64 %"$gasrem_745", 2 + store i64 %"$consume_749", i64* @_gasrem, align 8 + %"$b_tag_751" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_752" = load i8, i8* %"$b_tag_751", align 1 + switch i8 %"$b_tag_752", label %"$empty_default_753" [ + i8 0, label %"$True_754" + i8 1, label %"$False_761" + ], !dbg !8 -"$False_801": ; preds = %"$have_gas_787" - %"$b_802" = bitcast %TName_Bool* %"$b_790" to %CName_False* - %"$gasrem_803" = load i64, i64* @_gasrem, align 8 - %"$gascmp_804" = icmp ugt i64 1, %"$gasrem_803" - br i1 %"$gascmp_804", label %"$out_of_gas_805", label %"$have_gas_806" +"$True_754": ; preds = %"$have_gas_748" + %"$b_755" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_756" = load i64, i64* @_gasrem, align 8 + %"$gascmp_757" = icmp ugt i64 1, %"$gasrem_756" + br i1 %"$gascmp_757", label %"$out_of_gas_758", label %"$have_gas_759" -"$out_of_gas_805": ; preds = %"$False_801" +"$out_of_gas_758": ; preds = %"$True_754" call void @_out_of_gas() - br label %"$have_gas_806" + br label %"$have_gas_759" -"$have_gas_806": ; preds = %"$out_of_gas_805", %"$False_801" - %"$consume_807" = sub i64 %"$gasrem_803", 1 - store i64 %"$consume_807", i64* @_gasrem, align 8 - %"$f_808" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 - store { i8*, i8* }* %"$f_808", { i8*, i8* }** %"$retval_58", align 8, !dbg !12 - br label %"$matchsucc_789" +"$have_gas_759": ; preds = %"$out_of_gas_758", %"$True_754" + %"$consume_760" = sub i64 %"$gasrem_756", 1 + store i64 %"$consume_760", i64* @_gasrem, align 8 + store { i8*, i8* }* %3, { i8*, i8* }** %"$retval_51", align 8, !dbg !9 + br label %"$matchsucc_750" -"$empty_default_793": ; preds = %"$have_gas_787" - br label %"$matchsucc_789" +"$False_761": ; preds = %"$have_gas_748" + %"$b_762" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_763" = load i64, i64* @_gasrem, align 8 + %"$gascmp_764" = icmp ugt i64 1, %"$gasrem_763" + br i1 %"$gascmp_764", label %"$out_of_gas_765", label %"$have_gas_766" -"$matchsucc_789": ; preds = %"$have_gas_806", %"$have_gas_799", %"$empty_default_793" - %"$$retval_58_809" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_58", align 8 - ret { i8*, i8* }* %"$$retval_58_809" -} +"$out_of_gas_765": ; preds = %"$False_761" + call void @_out_of_gas() + br label %"$have_gas_766" -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_55"(%"$$fundef_55_env_133"* %0, { i8*, i8* }* %1) !dbg !14 { -entry: - %"$$fundef_55_env_b_765" = getelementptr inbounds %"$$fundef_55_env_133", %"$$fundef_55_env_133"* %0, i32 0, i32 0 - %"$b_envload_766" = load %TName_Bool*, %TName_Bool** %"$$fundef_55_env_b_765", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_766", %TName_Bool** %b, align 8 - %"$retval_56" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_767" = load i64, i64* @_gasrem, align 8 - %"$gascmp_768" = icmp ugt i64 1, %"$gasrem_767" - br i1 %"$gascmp_768", label %"$out_of_gas_769", label %"$have_gas_770" - -"$out_of_gas_769": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_770" - -"$have_gas_770": ; preds = %"$out_of_gas_769", %entry - %"$consume_771" = sub i64 %"$gasrem_767", 1 - store i64 %"$consume_771", i64* @_gasrem, align 8 - %"$$fundef_57_envp_772_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_57_envp_772_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_772_load", i64 16) - %"$$fundef_57_envp_772" = bitcast i8* %"$$fundef_57_envp_772_salloc" to %"$$fundef_57_env_132"* - %"$$fundef_57_env_voidp_774" = bitcast %"$$fundef_57_env_132"* %"$$fundef_57_envp_772" to i8* - %"$$fundef_57_cloval_775" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_57_env_132"*, { i8*, i8* }*)* @"$fundef_57" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_57_env_voidp_774", 1 - %"$$fundef_57_env_b_776" = getelementptr inbounds %"$$fundef_57_env_132", %"$$fundef_57_env_132"* %"$$fundef_57_envp_772", i32 0, i32 0 - %"$b_777" = load %TName_Bool*, %TName_Bool** %b, align 8 - store %TName_Bool* %"$b_777", %TName_Bool** %"$$fundef_57_env_b_776", align 8 - %"$$fundef_57_env_f_778" = getelementptr inbounds %"$$fundef_57_env_132", %"$$fundef_57_env_132"* %"$$fundef_57_envp_772", i32 0, i32 1 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_57_env_f_778", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_57_cloval_775", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_56", align 8, !dbg !15 - %"$$retval_56_779" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_56", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_56_779" -} +"$have_gas_766": ; preds = %"$out_of_gas_765", %"$False_761" + %"$consume_767" = sub i64 %"$gasrem_763", 1 + store i64 %"$consume_767", i64* @_gasrem, align 8 + store { i8*, i8* }* %2, { i8*, i8* }** %"$retval_51", align 8, !dbg !12 + br label %"$matchsucc_750" -define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } @"$fundef_53"(%"$$fundef_53_env_134"* %0, %TName_Bool* %1) !dbg !16 { -entry: - %"$retval_54" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_754" = load i64, i64* @_gasrem, align 8 - %"$gascmp_755" = icmp ugt i64 1, %"$gasrem_754" - br i1 %"$gascmp_755", label %"$out_of_gas_756", label %"$have_gas_757" - -"$out_of_gas_756": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_757" - -"$have_gas_757": ; preds = %"$out_of_gas_756", %entry - %"$consume_758" = sub i64 %"$gasrem_754", 1 - store i64 %"$consume_758", i64* @_gasrem, align 8 - %"$$fundef_55_envp_759_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_55_envp_759_salloc" = call i8* @_salloc(i8* %"$$fundef_55_envp_759_load", i64 8) - %"$$fundef_55_envp_759" = bitcast i8* %"$$fundef_55_envp_759_salloc" to %"$$fundef_55_env_133"* - %"$$fundef_55_env_voidp_761" = bitcast %"$$fundef_55_env_133"* %"$$fundef_55_envp_759" to i8* - %"$$fundef_55_cloval_762" = insertvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_55_env_133"*, { i8*, i8* }*)* @"$fundef_55" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_55_env_voidp_761", 1 - %"$$fundef_55_env_b_763" = getelementptr inbounds %"$$fundef_55_env_133", %"$$fundef_55_env_133"* %"$$fundef_55_envp_759", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_55_env_b_763", align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_55_cloval_762", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_54", align 8, !dbg !17 - %"$$retval_54_764" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_54", align 8 - ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$retval_54_764" +"$empty_default_753": ; preds = %"$have_gas_748" + br label %"$matchsucc_750" + +"$matchsucc_750": ; preds = %"$have_gas_766", %"$have_gas_759", %"$empty_default_753" + %"$$retval_51_768" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_51", align 8 + ret { i8*, i8* }* %"$$retval_51_768" } -define internal %Uint32 @"$fundef_51"(%"$$fundef_51_env_135"* %0, %TName_List_ByStr20* %1) !dbg !18 { +define internal %Uint32 @"$fundef_48"(%"$$fundef_48_env_126"* %0, %TName_List_ByStr20* %1) !dbg !14 { entry: - %"$$fundef_51_env_ListUtils.list_length_701" = getelementptr inbounds %"$$fundef_51_env_135", %"$$fundef_51_env_135"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_702" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_51_env_ListUtils.list_length_701", align 8 + %"$$fundef_48_env_ListUtils.list_length_692" = getelementptr inbounds %"$$fundef_48_env_126", %"$$fundef_48_env_126"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_693" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_48_env_ListUtils.list_length_692", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_702", { i8*, i8* }** %ListUtils.list_length, align 8 - %"$retval_52" = alloca %Uint32, align 8 - %"$gasrem_703" = load i64, i64* @_gasrem, align 8 - %"$gascmp_704" = icmp ugt i64 1, %"$gasrem_703" - br i1 %"$gascmp_704", label %"$out_of_gas_705", label %"$have_gas_706" + store { i8*, i8* }* %"$ListUtils.list_length_envload_693", { i8*, i8* }** %ListUtils.list_length, align 8 + %"$retval_49" = alloca %Uint32, align 8 + %"$gasrem_694" = load i64, i64* @_gasrem, align 8 + %"$gascmp_695" = icmp ugt i64 1, %"$gasrem_694" + br i1 %"$gascmp_695", label %"$out_of_gas_696", label %"$have_gas_697" -"$out_of_gas_705": ; preds = %entry +"$out_of_gas_696": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_706" + br label %"$have_gas_697" -"$have_gas_706": ; preds = %"$out_of_gas_705", %entry - %"$consume_707" = sub i64 %"$gasrem_703", 1 - store i64 %"$consume_707", i64* @_gasrem, align 8 +"$have_gas_697": ; preds = %"$out_of_gas_696", %entry + %"$consume_698" = sub i64 %"$gasrem_694", 1 + store i64 %"$consume_698", i64* @_gasrem, align 8 %ll = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_708" = load i64, i64* @_gasrem, align 8 - %"$gascmp_709" = icmp ugt i64 1, %"$gasrem_708" - br i1 %"$gascmp_709", label %"$out_of_gas_710", label %"$have_gas_711" - -"$out_of_gas_710": ; preds = %"$have_gas_706" - call void @_out_of_gas() - br label %"$have_gas_711" - -"$have_gas_711": ; preds = %"$out_of_gas_710", %"$have_gas_706" - %"$consume_712" = sub i64 %"$gasrem_708", 1 - store i64 %"$consume_712", i64* @_gasrem, align 8 - %"$ListUtils.list_length_713" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - %"$ListUtils.list_length_714" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_713", i32 2 - %"$ListUtils.list_length_715" = bitcast { i8*, i8* }* %"$ListUtils.list_length_714" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_length_716" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_715", align 8 - %"$ListUtils.list_length_fptr_717" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_716", 0 - %"$ListUtils.list_length_envptr_718" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_716", 1 - %"$ListUtils.list_length_call_719" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_fptr_717"(i8* %"$ListUtils.list_length_envptr_718"), !dbg !19 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_call_719", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8, !dbg !20 - %"$gasrem_720" = load i64, i64* @_gasrem, align 8 - %"$gascmp_721" = icmp ugt i64 1, %"$gasrem_720" - br i1 %"$gascmp_721", label %"$out_of_gas_722", label %"$have_gas_723" - -"$out_of_gas_722": ; preds = %"$have_gas_711" - call void @_out_of_gas() - br label %"$have_gas_723" - -"$have_gas_723": ; preds = %"$out_of_gas_722", %"$have_gas_711" - %"$consume_724" = sub i64 %"$gasrem_720", 1 - store i64 %"$consume_724", i64* @_gasrem, align 8 + %"$gasrem_699" = load i64, i64* @_gasrem, align 8 + %"$gascmp_700" = icmp ugt i64 1, %"$gasrem_699" + br i1 %"$gascmp_700", label %"$out_of_gas_701", label %"$have_gas_702" + +"$out_of_gas_701": ; preds = %"$have_gas_697" + call void @_out_of_gas() + br label %"$have_gas_702" + +"$have_gas_702": ; preds = %"$out_of_gas_701", %"$have_gas_697" + %"$consume_703" = sub i64 %"$gasrem_699", 1 + store i64 %"$consume_703", i64* @_gasrem, align 8 + %"$ListUtils.list_length_704" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + %"$ListUtils.list_length_705" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_704", i32 2 + %"$ListUtils.list_length_706" = bitcast { i8*, i8* }* %"$ListUtils.list_length_705" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_length_707" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_706", align 8 + %"$ListUtils.list_length_fptr_708" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_707", 0 + %"$ListUtils.list_length_envptr_709" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_707", 1 + %"$ListUtils.list_length_call_710" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_fptr_708"(i8* %"$ListUtils.list_length_envptr_709"), !dbg !15 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_call_710", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8, !dbg !16 + %"$gasrem_711" = load i64, i64* @_gasrem, align 8 + %"$gascmp_712" = icmp ugt i64 1, %"$gasrem_711" + br i1 %"$gascmp_712", label %"$out_of_gas_713", label %"$have_gas_714" + +"$out_of_gas_713": ; preds = %"$have_gas_702" + call void @_out_of_gas() + br label %"$have_gas_714" + +"$have_gas_714": ; preds = %"$out_of_gas_713", %"$have_gas_702" + %"$consume_715" = sub i64 %"$gasrem_711", 1 + store i64 %"$consume_715", i64* @_gasrem, align 8 %n = alloca %Uint32, align 8 - %"$gasrem_725" = load i64, i64* @_gasrem, align 8 - %"$gascmp_726" = icmp ugt i64 1, %"$gasrem_725" - br i1 %"$gascmp_726", label %"$out_of_gas_727", label %"$have_gas_728" + %"$gasrem_716" = load i64, i64* @_gasrem, align 8 + %"$gascmp_717" = icmp ugt i64 1, %"$gasrem_716" + br i1 %"$gascmp_717", label %"$out_of_gas_718", label %"$have_gas_719" -"$out_of_gas_727": ; preds = %"$have_gas_723" +"$out_of_gas_718": ; preds = %"$have_gas_714" call void @_out_of_gas() - br label %"$have_gas_728" + br label %"$have_gas_719" -"$have_gas_728": ; preds = %"$out_of_gas_727", %"$have_gas_723" - %"$consume_729" = sub i64 %"$gasrem_725", 1 - store i64 %"$consume_729", i64* @_gasrem, align 8 +"$have_gas_719": ; preds = %"$out_of_gas_718", %"$have_gas_714" + %"$consume_720" = sub i64 %"$gasrem_716", 1 + store i64 %"$consume_720", i64* @_gasrem, align 8 %"$ll_6" = alloca %Uint32, align 8 - %"$ll_730" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8 - %"$ll_fptr_731" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_730", 0 - %"$ll_envptr_732" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_730", 1 - %"$ll_call_733" = call %Uint32 %"$ll_fptr_731"(i8* %"$ll_envptr_732", %TName_List_ByStr20* %1), !dbg !21 - store %Uint32 %"$ll_call_733", %Uint32* %"$ll_6", align 4, !dbg !21 - %"$$ll_6_734" = load %Uint32, %Uint32* %"$ll_6", align 4 - store %Uint32 %"$$ll_6_734", %Uint32* %n, align 4, !dbg !21 - %"$gasrem_735" = load i64, i64* @_gasrem, align 8 - %"$gascmp_736" = icmp ugt i64 1, %"$gasrem_735" - br i1 %"$gascmp_736", label %"$out_of_gas_737", label %"$have_gas_738" - -"$out_of_gas_737": ; preds = %"$have_gas_728" - call void @_out_of_gas() - br label %"$have_gas_738" - -"$have_gas_738": ; preds = %"$out_of_gas_737", %"$have_gas_728" - %"$consume_739" = sub i64 %"$gasrem_735", 1 - store i64 %"$consume_739", i64* @_gasrem, align 8 + %"$ll_721" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8 + %"$ll_fptr_722" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_721", 0 + %"$ll_envptr_723" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_721", 1 + %"$ll_call_724" = call %Uint32 %"$ll_fptr_722"(i8* %"$ll_envptr_723", %TName_List_ByStr20* %1), !dbg !17 + store %Uint32 %"$ll_call_724", %Uint32* %"$ll_6", align 4, !dbg !17 + %"$$ll_6_725" = load %Uint32, %Uint32* %"$ll_6", align 4 + store %Uint32 %"$$ll_6_725", %Uint32* %n, align 4, !dbg !17 + %"$gasrem_726" = load i64, i64* @_gasrem, align 8 + %"$gascmp_727" = icmp ugt i64 1, %"$gasrem_726" + br i1 %"$gascmp_727", label %"$out_of_gas_728", label %"$have_gas_729" + +"$out_of_gas_728": ; preds = %"$have_gas_719" + call void @_out_of_gas() + br label %"$have_gas_729" + +"$have_gas_729": ; preds = %"$out_of_gas_728", %"$have_gas_719" + %"$consume_730" = sub i64 %"$gasrem_726", 1 + store i64 %"$consume_730", i64* @_gasrem, align 8 %two = alloca %Uint32, align 8 - %"$gasrem_740" = load i64, i64* @_gasrem, align 8 - %"$gascmp_741" = icmp ugt i64 1, %"$gasrem_740" - br i1 %"$gascmp_741", label %"$out_of_gas_742", label %"$have_gas_743" - -"$out_of_gas_742": ; preds = %"$have_gas_738" - call void @_out_of_gas() - br label %"$have_gas_743" - -"$have_gas_743": ; preds = %"$out_of_gas_742", %"$have_gas_738" - %"$consume_744" = sub i64 %"$gasrem_740", 1 - store i64 %"$consume_744", i64* @_gasrem, align 8 - store %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !22 - %"$gasrem_745" = load i64, i64* @_gasrem, align 8 - %"$gascmp_746" = icmp ugt i64 4, %"$gasrem_745" - br i1 %"$gascmp_746", label %"$out_of_gas_747", label %"$have_gas_748" - -"$out_of_gas_747": ; preds = %"$have_gas_743" - call void @_out_of_gas() - br label %"$have_gas_748" - -"$have_gas_748": ; preds = %"$out_of_gas_747", %"$have_gas_743" - %"$consume_749" = sub i64 %"$gasrem_745", 4 - store i64 %"$consume_749", i64* @_gasrem, align 8 - %"$n_750" = load %Uint32, %Uint32* %n, align 4 - %"$two_751" = load %Uint32, %Uint32* %two, align 4 - %"$add_call_752" = call %Uint32 @_add_Uint32(%Uint32 %"$n_750", %Uint32 %"$two_751"), !dbg !23 - store %Uint32 %"$add_call_752", %Uint32* %"$retval_52", align 4, !dbg !23 - %"$$retval_52_753" = load %Uint32, %Uint32* %"$retval_52", align 4 - ret %Uint32 %"$$retval_52_753" + %"$gasrem_731" = load i64, i64* @_gasrem, align 8 + %"$gascmp_732" = icmp ugt i64 1, %"$gasrem_731" + br i1 %"$gascmp_732", label %"$out_of_gas_733", label %"$have_gas_734" + +"$out_of_gas_733": ; preds = %"$have_gas_729" + call void @_out_of_gas() + br label %"$have_gas_734" + +"$have_gas_734": ; preds = %"$out_of_gas_733", %"$have_gas_729" + %"$consume_735" = sub i64 %"$gasrem_731", 1 + store i64 %"$consume_735", i64* @_gasrem, align 8 + store %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !18 + %"$gasrem_736" = load i64, i64* @_gasrem, align 8 + %"$gascmp_737" = icmp ugt i64 4, %"$gasrem_736" + br i1 %"$gascmp_737", label %"$out_of_gas_738", label %"$have_gas_739" + +"$out_of_gas_738": ; preds = %"$have_gas_734" + call void @_out_of_gas() + br label %"$have_gas_739" + +"$have_gas_739": ; preds = %"$out_of_gas_738", %"$have_gas_734" + %"$consume_740" = sub i64 %"$gasrem_736", 4 + store i64 %"$consume_740", i64* @_gasrem, align 8 + %"$n_741" = load %Uint32, %Uint32* %n, align 4 + %"$two_742" = load %Uint32, %Uint32* %two, align 4 + %"$add_call_743" = call %Uint32 @_add_Uint32(%Uint32 %"$n_741", %Uint32 %"$two_742"), !dbg !19 + store %Uint32 %"$add_call_743", %Uint32* %"$retval_49", align 4, !dbg !19 + %"$$retval_49_744" = load %Uint32, %Uint32* %"$retval_49", align 4 + ret %Uint32 %"$$retval_49_744" } -define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_49"(%"$$fundef_49_env_136"* %0) !dbg !24 { +define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_46"(%"$$fundef_46_env_127"* %0) !dbg !20 { entry: - %"$$fundef_49_env_ListUtils.list_length_687" = getelementptr inbounds %"$$fundef_49_env_136", %"$$fundef_49_env_136"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_688" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_49_env_ListUtils.list_length_687", align 8 + %"$$fundef_46_env_ListUtils.list_length_678" = getelementptr inbounds %"$$fundef_46_env_127", %"$$fundef_46_env_127"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_679" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_46_env_ListUtils.list_length_678", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_688", { i8*, i8* }** %ListUtils.list_length, align 8 - %"$retval_50" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_689" = load i64, i64* @_gasrem, align 8 - %"$gascmp_690" = icmp ugt i64 1, %"$gasrem_689" - br i1 %"$gascmp_690", label %"$out_of_gas_691", label %"$have_gas_692" - -"$out_of_gas_691": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_692" - -"$have_gas_692": ; preds = %"$out_of_gas_691", %entry - %"$consume_693" = sub i64 %"$gasrem_689", 1 - store i64 %"$consume_693", i64* @_gasrem, align 8 - %"$$fundef_51_envp_694_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_51_envp_694_salloc" = call i8* @_salloc(i8* %"$$fundef_51_envp_694_load", i64 8) - %"$$fundef_51_envp_694" = bitcast i8* %"$$fundef_51_envp_694_salloc" to %"$$fundef_51_env_135"* - %"$$fundef_51_env_voidp_696" = bitcast %"$$fundef_51_env_135"* %"$$fundef_51_envp_694" to i8* - %"$$fundef_51_cloval_697" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_51_env_135"*, %TName_List_ByStr20*)* @"$fundef_51" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_51_env_voidp_696", 1 - %"$$fundef_51_env_ListUtils.list_length_698" = getelementptr inbounds %"$$fundef_51_env_135", %"$$fundef_51_env_135"* %"$$fundef_51_envp_694", i32 0, i32 0 - %"$ListUtils.list_length_699" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_699", { i8*, i8* }** %"$$fundef_51_env_ListUtils.list_length_698", align 8 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_51_cloval_697", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_50", align 8, !dbg !25 - %"$$retval_50_700" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_50", align 8 - ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_50_700" + store { i8*, i8* }* %"$ListUtils.list_length_envload_679", { i8*, i8* }** %ListUtils.list_length, align 8 + %"$retval_47" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_680" = load i64, i64* @_gasrem, align 8 + %"$gascmp_681" = icmp ugt i64 1, %"$gasrem_680" + br i1 %"$gascmp_681", label %"$out_of_gas_682", label %"$have_gas_683" + +"$out_of_gas_682": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_683" + +"$have_gas_683": ; preds = %"$out_of_gas_682", %entry + %"$consume_684" = sub i64 %"$gasrem_680", 1 + store i64 %"$consume_684", i64* @_gasrem, align 8 + %"$$fundef_48_envp_685_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_48_envp_685_salloc" = call i8* @_salloc(i8* %"$$fundef_48_envp_685_load", i64 8) + %"$$fundef_48_envp_685" = bitcast i8* %"$$fundef_48_envp_685_salloc" to %"$$fundef_48_env_126"* + %"$$fundef_48_env_voidp_687" = bitcast %"$$fundef_48_env_126"* %"$$fundef_48_envp_685" to i8* + %"$$fundef_48_cloval_688" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_48_env_126"*, %TName_List_ByStr20*)* @"$fundef_48" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_48_env_voidp_687", 1 + %"$$fundef_48_env_ListUtils.list_length_689" = getelementptr inbounds %"$$fundef_48_env_126", %"$$fundef_48_env_126"* %"$$fundef_48_envp_685", i32 0, i32 0 + %"$ListUtils.list_length_690" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_690", { i8*, i8* }** %"$$fundef_48_env_ListUtils.list_length_689", align 8 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_48_cloval_688", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_47", align 8, !dbg !21 + %"$$retval_47_691" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_47", align 8 + ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_47_691" } -define internal %Uint32 @"$fundef_47"(%"$$fundef_47_env_137"* %0, %TName_List_String* %1) !dbg !26 { +define internal %Uint32 @"$fundef_44"(%"$$fundef_44_env_128"* %0, %TName_List_String* %1) !dbg !22 { entry: - %"$$fundef_47_env_ListUtils.list_length_634" = getelementptr inbounds %"$$fundef_47_env_137", %"$$fundef_47_env_137"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_635" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_47_env_ListUtils.list_length_634", align 8 + %"$$fundef_44_env_ListUtils.list_length_625" = getelementptr inbounds %"$$fundef_44_env_128", %"$$fundef_44_env_128"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_626" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_44_env_ListUtils.list_length_625", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_635", { i8*, i8* }** %ListUtils.list_length, align 8 - %"$retval_48" = alloca %Uint32, align 8 - %"$gasrem_636" = load i64, i64* @_gasrem, align 8 - %"$gascmp_637" = icmp ugt i64 1, %"$gasrem_636" - br i1 %"$gascmp_637", label %"$out_of_gas_638", label %"$have_gas_639" + store { i8*, i8* }* %"$ListUtils.list_length_envload_626", { i8*, i8* }** %ListUtils.list_length, align 8 + %"$retval_45" = alloca %Uint32, align 8 + %"$gasrem_627" = load i64, i64* @_gasrem, align 8 + %"$gascmp_628" = icmp ugt i64 1, %"$gasrem_627" + br i1 %"$gascmp_628", label %"$out_of_gas_629", label %"$have_gas_630" -"$out_of_gas_638": ; preds = %entry +"$out_of_gas_629": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_639" + br label %"$have_gas_630" -"$have_gas_639": ; preds = %"$out_of_gas_638", %entry - %"$consume_640" = sub i64 %"$gasrem_636", 1 - store i64 %"$consume_640", i64* @_gasrem, align 8 +"$have_gas_630": ; preds = %"$out_of_gas_629", %entry + %"$consume_631" = sub i64 %"$gasrem_627", 1 + store i64 %"$consume_631", i64* @_gasrem, align 8 %ll = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$gasrem_641" = load i64, i64* @_gasrem, align 8 - %"$gascmp_642" = icmp ugt i64 1, %"$gasrem_641" - br i1 %"$gascmp_642", label %"$out_of_gas_643", label %"$have_gas_644" - -"$out_of_gas_643": ; preds = %"$have_gas_639" - call void @_out_of_gas() - br label %"$have_gas_644" - -"$have_gas_644": ; preds = %"$out_of_gas_643", %"$have_gas_639" - %"$consume_645" = sub i64 %"$gasrem_641", 1 - store i64 %"$consume_645", i64* @_gasrem, align 8 - %"$ListUtils.list_length_646" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - %"$ListUtils.list_length_647" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_646", i32 0 - %"$ListUtils.list_length_648" = bitcast { i8*, i8* }* %"$ListUtils.list_length_647" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_length_649" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_648", align 8 - %"$ListUtils.list_length_fptr_650" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_649", 0 - %"$ListUtils.list_length_envptr_651" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_649", 1 - %"$ListUtils.list_length_call_652" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_fptr_650"(i8* %"$ListUtils.list_length_envptr_651"), !dbg !27 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_call_652", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8, !dbg !28 - %"$gasrem_653" = load i64, i64* @_gasrem, align 8 - %"$gascmp_654" = icmp ugt i64 1, %"$gasrem_653" - br i1 %"$gascmp_654", label %"$out_of_gas_655", label %"$have_gas_656" - -"$out_of_gas_655": ; preds = %"$have_gas_644" - call void @_out_of_gas() - br label %"$have_gas_656" - -"$have_gas_656": ; preds = %"$out_of_gas_655", %"$have_gas_644" - %"$consume_657" = sub i64 %"$gasrem_653", 1 - store i64 %"$consume_657", i64* @_gasrem, align 8 + %"$gasrem_632" = load i64, i64* @_gasrem, align 8 + %"$gascmp_633" = icmp ugt i64 1, %"$gasrem_632" + br i1 %"$gascmp_633", label %"$out_of_gas_634", label %"$have_gas_635" + +"$out_of_gas_634": ; preds = %"$have_gas_630" + call void @_out_of_gas() + br label %"$have_gas_635" + +"$have_gas_635": ; preds = %"$out_of_gas_634", %"$have_gas_630" + %"$consume_636" = sub i64 %"$gasrem_632", 1 + store i64 %"$consume_636", i64* @_gasrem, align 8 + %"$ListUtils.list_length_637" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + %"$ListUtils.list_length_638" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_637", i32 0 + %"$ListUtils.list_length_639" = bitcast { i8*, i8* }* %"$ListUtils.list_length_638" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_length_640" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_639", align 8 + %"$ListUtils.list_length_fptr_641" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_640", 0 + %"$ListUtils.list_length_envptr_642" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_640", 1 + %"$ListUtils.list_length_call_643" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_fptr_641"(i8* %"$ListUtils.list_length_envptr_642"), !dbg !23 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_call_643", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8, !dbg !24 + %"$gasrem_644" = load i64, i64* @_gasrem, align 8 + %"$gascmp_645" = icmp ugt i64 1, %"$gasrem_644" + br i1 %"$gascmp_645", label %"$out_of_gas_646", label %"$have_gas_647" + +"$out_of_gas_646": ; preds = %"$have_gas_635" + call void @_out_of_gas() + br label %"$have_gas_647" + +"$have_gas_647": ; preds = %"$out_of_gas_646", %"$have_gas_635" + %"$consume_648" = sub i64 %"$gasrem_644", 1 + store i64 %"$consume_648", i64* @_gasrem, align 8 %n = alloca %Uint32, align 8 - %"$gasrem_658" = load i64, i64* @_gasrem, align 8 - %"$gascmp_659" = icmp ugt i64 1, %"$gasrem_658" - br i1 %"$gascmp_659", label %"$out_of_gas_660", label %"$have_gas_661" + %"$gasrem_649" = load i64, i64* @_gasrem, align 8 + %"$gascmp_650" = icmp ugt i64 1, %"$gasrem_649" + br i1 %"$gascmp_650", label %"$out_of_gas_651", label %"$have_gas_652" -"$out_of_gas_660": ; preds = %"$have_gas_656" +"$out_of_gas_651": ; preds = %"$have_gas_647" call void @_out_of_gas() - br label %"$have_gas_661" + br label %"$have_gas_652" -"$have_gas_661": ; preds = %"$out_of_gas_660", %"$have_gas_656" - %"$consume_662" = sub i64 %"$gasrem_658", 1 - store i64 %"$consume_662", i64* @_gasrem, align 8 +"$have_gas_652": ; preds = %"$out_of_gas_651", %"$have_gas_647" + %"$consume_653" = sub i64 %"$gasrem_649", 1 + store i64 %"$consume_653", i64* @_gasrem, align 8 %"$ll_6" = alloca %Uint32, align 8 - %"$ll_663" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8 - %"$ll_fptr_664" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_663", 0 - %"$ll_envptr_665" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_663", 1 - %"$ll_call_666" = call %Uint32 %"$ll_fptr_664"(i8* %"$ll_envptr_665", %TName_List_String* %1), !dbg !29 - store %Uint32 %"$ll_call_666", %Uint32* %"$ll_6", align 4, !dbg !29 - %"$$ll_6_667" = load %Uint32, %Uint32* %"$ll_6", align 4 - store %Uint32 %"$$ll_6_667", %Uint32* %n, align 4, !dbg !29 - %"$gasrem_668" = load i64, i64* @_gasrem, align 8 - %"$gascmp_669" = icmp ugt i64 1, %"$gasrem_668" - br i1 %"$gascmp_669", label %"$out_of_gas_670", label %"$have_gas_671" - -"$out_of_gas_670": ; preds = %"$have_gas_661" - call void @_out_of_gas() - br label %"$have_gas_671" - -"$have_gas_671": ; preds = %"$out_of_gas_670", %"$have_gas_661" - %"$consume_672" = sub i64 %"$gasrem_668", 1 - store i64 %"$consume_672", i64* @_gasrem, align 8 + %"$ll_654" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8 + %"$ll_fptr_655" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_654", 0 + %"$ll_envptr_656" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_654", 1 + %"$ll_call_657" = call %Uint32 %"$ll_fptr_655"(i8* %"$ll_envptr_656", %TName_List_String* %1), !dbg !25 + store %Uint32 %"$ll_call_657", %Uint32* %"$ll_6", align 4, !dbg !25 + %"$$ll_6_658" = load %Uint32, %Uint32* %"$ll_6", align 4 + store %Uint32 %"$$ll_6_658", %Uint32* %n, align 4, !dbg !25 + %"$gasrem_659" = load i64, i64* @_gasrem, align 8 + %"$gascmp_660" = icmp ugt i64 1, %"$gasrem_659" + br i1 %"$gascmp_660", label %"$out_of_gas_661", label %"$have_gas_662" + +"$out_of_gas_661": ; preds = %"$have_gas_652" + call void @_out_of_gas() + br label %"$have_gas_662" + +"$have_gas_662": ; preds = %"$out_of_gas_661", %"$have_gas_652" + %"$consume_663" = sub i64 %"$gasrem_659", 1 + store i64 %"$consume_663", i64* @_gasrem, align 8 %two = alloca %Uint32, align 8 - %"$gasrem_673" = load i64, i64* @_gasrem, align 8 - %"$gascmp_674" = icmp ugt i64 1, %"$gasrem_673" - br i1 %"$gascmp_674", label %"$out_of_gas_675", label %"$have_gas_676" - -"$out_of_gas_675": ; preds = %"$have_gas_671" - call void @_out_of_gas() - br label %"$have_gas_676" - -"$have_gas_676": ; preds = %"$out_of_gas_675", %"$have_gas_671" - %"$consume_677" = sub i64 %"$gasrem_673", 1 - store i64 %"$consume_677", i64* @_gasrem, align 8 - store %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !30 - %"$gasrem_678" = load i64, i64* @_gasrem, align 8 - %"$gascmp_679" = icmp ugt i64 4, %"$gasrem_678" - br i1 %"$gascmp_679", label %"$out_of_gas_680", label %"$have_gas_681" - -"$out_of_gas_680": ; preds = %"$have_gas_676" - call void @_out_of_gas() - br label %"$have_gas_681" - -"$have_gas_681": ; preds = %"$out_of_gas_680", %"$have_gas_676" - %"$consume_682" = sub i64 %"$gasrem_678", 4 - store i64 %"$consume_682", i64* @_gasrem, align 8 - %"$n_683" = load %Uint32, %Uint32* %n, align 4 - %"$two_684" = load %Uint32, %Uint32* %two, align 4 - %"$add_call_685" = call %Uint32 @_add_Uint32(%Uint32 %"$n_683", %Uint32 %"$two_684"), !dbg !31 - store %Uint32 %"$add_call_685", %Uint32* %"$retval_48", align 4, !dbg !31 - %"$$retval_48_686" = load %Uint32, %Uint32* %"$retval_48", align 4 - ret %Uint32 %"$$retval_48_686" + %"$gasrem_664" = load i64, i64* @_gasrem, align 8 + %"$gascmp_665" = icmp ugt i64 1, %"$gasrem_664" + br i1 %"$gascmp_665", label %"$out_of_gas_666", label %"$have_gas_667" + +"$out_of_gas_666": ; preds = %"$have_gas_662" + call void @_out_of_gas() + br label %"$have_gas_667" + +"$have_gas_667": ; preds = %"$out_of_gas_666", %"$have_gas_662" + %"$consume_668" = sub i64 %"$gasrem_664", 1 + store i64 %"$consume_668", i64* @_gasrem, align 8 + store %Uint32 { i32 2 }, %Uint32* %two, align 4, !dbg !26 + %"$gasrem_669" = load i64, i64* @_gasrem, align 8 + %"$gascmp_670" = icmp ugt i64 4, %"$gasrem_669" + br i1 %"$gascmp_670", label %"$out_of_gas_671", label %"$have_gas_672" + +"$out_of_gas_671": ; preds = %"$have_gas_667" + call void @_out_of_gas() + br label %"$have_gas_672" + +"$have_gas_672": ; preds = %"$out_of_gas_671", %"$have_gas_667" + %"$consume_673" = sub i64 %"$gasrem_669", 4 + store i64 %"$consume_673", i64* @_gasrem, align 8 + %"$n_674" = load %Uint32, %Uint32* %n, align 4 + %"$two_675" = load %Uint32, %Uint32* %two, align 4 + %"$add_call_676" = call %Uint32 @_add_Uint32(%Uint32 %"$n_674", %Uint32 %"$two_675"), !dbg !27 + store %Uint32 %"$add_call_676", %Uint32* %"$retval_45", align 4, !dbg !27 + %"$$retval_45_677" = load %Uint32, %Uint32* %"$retval_45", align 4 + ret %Uint32 %"$$retval_45_677" } -define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_45"(%"$$fundef_45_env_138"* %0) !dbg !32 { +define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_42"(%"$$fundef_42_env_129"* %0) !dbg !28 { entry: - %"$$fundef_45_env_ListUtils.list_length_620" = getelementptr inbounds %"$$fundef_45_env_138", %"$$fundef_45_env_138"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_621" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_45_env_ListUtils.list_length_620", align 8 + %"$$fundef_42_env_ListUtils.list_length_611" = getelementptr inbounds %"$$fundef_42_env_129", %"$$fundef_42_env_129"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_612" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_42_env_ListUtils.list_length_611", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_621", { i8*, i8* }** %ListUtils.list_length, align 8 - %"$retval_46" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$gasrem_622" = load i64, i64* @_gasrem, align 8 - %"$gascmp_623" = icmp ugt i64 1, %"$gasrem_622" - br i1 %"$gascmp_623", label %"$out_of_gas_624", label %"$have_gas_625" - -"$out_of_gas_624": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_625" - -"$have_gas_625": ; preds = %"$out_of_gas_624", %entry - %"$consume_626" = sub i64 %"$gasrem_622", 1 - store i64 %"$consume_626", i64* @_gasrem, align 8 - %"$$fundef_47_envp_627_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_47_envp_627_salloc" = call i8* @_salloc(i8* %"$$fundef_47_envp_627_load", i64 8) - %"$$fundef_47_envp_627" = bitcast i8* %"$$fundef_47_envp_627_salloc" to %"$$fundef_47_env_137"* - %"$$fundef_47_env_voidp_629" = bitcast %"$$fundef_47_env_137"* %"$$fundef_47_envp_627" to i8* - %"$$fundef_47_cloval_630" = insertvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } { %Uint32 (i8*, %TName_List_String*)* bitcast (%Uint32 (%"$$fundef_47_env_137"*, %TName_List_String*)* @"$fundef_47" to %Uint32 (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_47_env_voidp_629", 1 - %"$$fundef_47_env_ListUtils.list_length_631" = getelementptr inbounds %"$$fundef_47_env_137", %"$$fundef_47_env_137"* %"$$fundef_47_envp_627", i32 0, i32 0 - %"$ListUtils.list_length_632" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_632", { i8*, i8* }** %"$$fundef_47_env_ListUtils.list_length_631", align 8 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_47_cloval_630", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_46", align 8, !dbg !33 - %"$$retval_46_633" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_46", align 8 - ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_46_633" + store { i8*, i8* }* %"$ListUtils.list_length_envload_612", { i8*, i8* }** %ListUtils.list_length, align 8 + %"$retval_43" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 + %"$gasrem_613" = load i64, i64* @_gasrem, align 8 + %"$gascmp_614" = icmp ugt i64 1, %"$gasrem_613" + br i1 %"$gascmp_614", label %"$out_of_gas_615", label %"$have_gas_616" + +"$out_of_gas_615": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_616" + +"$have_gas_616": ; preds = %"$out_of_gas_615", %entry + %"$consume_617" = sub i64 %"$gasrem_613", 1 + store i64 %"$consume_617", i64* @_gasrem, align 8 + %"$$fundef_44_envp_618_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_44_envp_618_salloc" = call i8* @_salloc(i8* %"$$fundef_44_envp_618_load", i64 8) + %"$$fundef_44_envp_618" = bitcast i8* %"$$fundef_44_envp_618_salloc" to %"$$fundef_44_env_128"* + %"$$fundef_44_env_voidp_620" = bitcast %"$$fundef_44_env_128"* %"$$fundef_44_envp_618" to i8* + %"$$fundef_44_cloval_621" = insertvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } { %Uint32 (i8*, %TName_List_String*)* bitcast (%Uint32 (%"$$fundef_44_env_128"*, %TName_List_String*)* @"$fundef_44" to %Uint32 (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_44_env_voidp_620", 1 + %"$$fundef_44_env_ListUtils.list_length_622" = getelementptr inbounds %"$$fundef_44_env_128", %"$$fundef_44_env_128"* %"$$fundef_44_envp_618", i32 0, i32 0 + %"$ListUtils.list_length_623" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_623", { i8*, i8* }** %"$$fundef_44_env_ListUtils.list_length_622", align 8 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_44_cloval_621", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_43", align 8, !dbg !29 + %"$$retval_43_624" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_43", align 8 + ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_43_624" } -define internal %Uint32 @"$fundef_42"(%"$$fundef_42_env_139"* %0, [20 x i8]* %1) !dbg !34 { +define internal %Uint32 @"$fundef_39"(%"$$fundef_39_env_130"* %0, [20 x i8]* %1) !dbg !30 { entry: %h = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_42_env_one_607" = getelementptr inbounds %"$$fundef_42_env_139", %"$$fundef_42_env_139"* %0, i32 0, i32 0 - %"$one_envload_608" = load %Uint32, %Uint32* %"$$fundef_42_env_one_607", align 4 + %"$$fundef_39_env_one_598" = getelementptr inbounds %"$$fundef_39_env_130", %"$$fundef_39_env_130"* %0, i32 0, i32 0 + %"$one_envload_599" = load %Uint32, %Uint32* %"$$fundef_39_env_one_598", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_608", %Uint32* %one, align 4 - %"$$fundef_42_env_z_609" = getelementptr inbounds %"$$fundef_42_env_139", %"$$fundef_42_env_139"* %0, i32 0, i32 1 - %"$z_envload_610" = load %Uint32, %Uint32* %"$$fundef_42_env_z_609", align 4 + store %Uint32 %"$one_envload_599", %Uint32* %one, align 4 + %"$$fundef_39_env_z_600" = getelementptr inbounds %"$$fundef_39_env_130", %"$$fundef_39_env_130"* %0, i32 0, i32 1 + %"$z_envload_601" = load %Uint32, %Uint32* %"$$fundef_39_env_z_600", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_610", %Uint32* %z, align 4 - %"$retval_43" = alloca %Uint32, align 8 - %"$gasrem_611" = load i64, i64* @_gasrem, align 8 - %"$gascmp_612" = icmp ugt i64 4, %"$gasrem_611" - br i1 %"$gascmp_612", label %"$out_of_gas_613", label %"$have_gas_614" - -"$out_of_gas_613": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_614" - -"$have_gas_614": ; preds = %"$out_of_gas_613", %entry - %"$consume_615" = sub i64 %"$gasrem_611", 4 - store i64 %"$consume_615", i64* @_gasrem, align 8 - %"$one_616" = load %Uint32, %Uint32* %one, align 4 - %"$z_617" = load %Uint32, %Uint32* %z, align 4 - %"$add_call_618" = call %Uint32 @_add_Uint32(%Uint32 %"$one_616", %Uint32 %"$z_617"), !dbg !36 - store %Uint32 %"$add_call_618", %Uint32* %"$retval_43", align 4, !dbg !36 - %"$$retval_43_619" = load %Uint32, %Uint32* %"$retval_43", align 4 - ret %Uint32 %"$$retval_43_619" + store %Uint32 %"$z_envload_601", %Uint32* %z, align 4 + %"$retval_40" = alloca %Uint32, align 8 + %"$gasrem_602" = load i64, i64* @_gasrem, align 8 + %"$gascmp_603" = icmp ugt i64 4, %"$gasrem_602" + br i1 %"$gascmp_603", label %"$out_of_gas_604", label %"$have_gas_605" + +"$out_of_gas_604": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_605" + +"$have_gas_605": ; preds = %"$out_of_gas_604", %entry + %"$consume_606" = sub i64 %"$gasrem_602", 4 + store i64 %"$consume_606", i64* @_gasrem, align 8 + %"$one_607" = load %Uint32, %Uint32* %one, align 4 + %"$z_608" = load %Uint32, %Uint32* %z, align 4 + %"$add_call_609" = call %Uint32 @_add_Uint32(%Uint32 %"$one_607", %Uint32 %"$z_608"), !dbg !32 + store %Uint32 %"$add_call_609", %Uint32* %"$retval_40", align 4, !dbg !32 + %"$$retval_40_610" = load %Uint32, %Uint32* %"$retval_40", align 4 + ret %Uint32 %"$$retval_40_610" } -define internal { %Uint32 (i8*, [20 x i8]*)*, i8* } @"$fundef_40"(%"$$fundef_40_env_140"* %0, %Uint32 %1) !dbg !37 { +define internal { %Uint32 (i8*, [20 x i8]*)*, i8* } @"$fundef_37"(%"$$fundef_37_env_131"* %0, %Uint32 %1) !dbg !33 { entry: - %"$$fundef_40_env_one_592" = getelementptr inbounds %"$$fundef_40_env_140", %"$$fundef_40_env_140"* %0, i32 0, i32 0 - %"$one_envload_593" = load %Uint32, %Uint32* %"$$fundef_40_env_one_592", align 4 + %"$$fundef_37_env_one_583" = getelementptr inbounds %"$$fundef_37_env_131", %"$$fundef_37_env_131"* %0, i32 0, i32 0 + %"$one_envload_584" = load %Uint32, %Uint32* %"$$fundef_37_env_one_583", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_593", %Uint32* %one, align 4 - %"$retval_41" = alloca { %Uint32 (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_594" = load i64, i64* @_gasrem, align 8 - %"$gascmp_595" = icmp ugt i64 1, %"$gasrem_594" - br i1 %"$gascmp_595", label %"$out_of_gas_596", label %"$have_gas_597" - -"$out_of_gas_596": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_597" - -"$have_gas_597": ; preds = %"$out_of_gas_596", %entry - %"$consume_598" = sub i64 %"$gasrem_594", 1 - store i64 %"$consume_598", i64* @_gasrem, align 8 - %"$$fundef_42_envp_599_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_42_envp_599_salloc" = call i8* @_salloc(i8* %"$$fundef_42_envp_599_load", i64 8) - %"$$fundef_42_envp_599" = bitcast i8* %"$$fundef_42_envp_599_salloc" to %"$$fundef_42_env_139"* - %"$$fundef_42_env_voidp_601" = bitcast %"$$fundef_42_env_139"* %"$$fundef_42_envp_599" to i8* - %"$$fundef_42_cloval_602" = insertvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } { %Uint32 (i8*, [20 x i8]*)* bitcast (%Uint32 (%"$$fundef_42_env_139"*, [20 x i8]*)* @"$fundef_42" to %Uint32 (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_42_env_voidp_601", 1 - %"$$fundef_42_env_one_603" = getelementptr inbounds %"$$fundef_42_env_139", %"$$fundef_42_env_139"* %"$$fundef_42_envp_599", i32 0, i32 0 - %"$one_604" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_604", %Uint32* %"$$fundef_42_env_one_603", align 4 - %"$$fundef_42_env_z_605" = getelementptr inbounds %"$$fundef_42_env_139", %"$$fundef_42_env_139"* %"$$fundef_42_envp_599", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_42_env_z_605", align 4 - store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$fundef_42_cloval_602", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_41", align 8, !dbg !38 - %"$$retval_41_606" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_41", align 8 - ret { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$retval_41_606" + store %Uint32 %"$one_envload_584", %Uint32* %one, align 4 + %"$retval_38" = alloca { %Uint32 (i8*, [20 x i8]*)*, i8* }, align 8 + %"$gasrem_585" = load i64, i64* @_gasrem, align 8 + %"$gascmp_586" = icmp ugt i64 1, %"$gasrem_585" + br i1 %"$gascmp_586", label %"$out_of_gas_587", label %"$have_gas_588" + +"$out_of_gas_587": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_588" + +"$have_gas_588": ; preds = %"$out_of_gas_587", %entry + %"$consume_589" = sub i64 %"$gasrem_585", 1 + store i64 %"$consume_589", i64* @_gasrem, align 8 + %"$$fundef_39_envp_590_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_39_envp_590_salloc" = call i8* @_salloc(i8* %"$$fundef_39_envp_590_load", i64 8) + %"$$fundef_39_envp_590" = bitcast i8* %"$$fundef_39_envp_590_salloc" to %"$$fundef_39_env_130"* + %"$$fundef_39_env_voidp_592" = bitcast %"$$fundef_39_env_130"* %"$$fundef_39_envp_590" to i8* + %"$$fundef_39_cloval_593" = insertvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } { %Uint32 (i8*, [20 x i8]*)* bitcast (%Uint32 (%"$$fundef_39_env_130"*, [20 x i8]*)* @"$fundef_39" to %Uint32 (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_39_env_voidp_592", 1 + %"$$fundef_39_env_one_594" = getelementptr inbounds %"$$fundef_39_env_130", %"$$fundef_39_env_130"* %"$$fundef_39_envp_590", i32 0, i32 0 + %"$one_595" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_595", %Uint32* %"$$fundef_39_env_one_594", align 4 + %"$$fundef_39_env_z_596" = getelementptr inbounds %"$$fundef_39_env_130", %"$$fundef_39_env_130"* %"$$fundef_39_envp_590", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_39_env_z_596", align 4 + store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$fundef_39_cloval_593", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_38", align 8, !dbg !34 + %"$$retval_38_597" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_38", align 8 + ret { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$retval_38_597" } -define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_38"(%"$$fundef_38_env_141"* %0) !dbg !39 { +define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_35"(%"$$fundef_35_env_132"* %0) !dbg !35 { entry: - %"$$fundef_38_env_list_foldl_514" = getelementptr inbounds %"$$fundef_38_env_141", %"$$fundef_38_env_141"* %0, i32 0, i32 0 - %"$list_foldl_envload_515" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_38_env_list_foldl_514", align 8 + %"$$fundef_35_env_list_foldl_505" = getelementptr inbounds %"$$fundef_35_env_132", %"$$fundef_35_env_132"* %0, i32 0, i32 0 + %"$list_foldl_envload_506" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_35_env_list_foldl_505", align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldl_envload_515", { i8*, i8* }** %list_foldl, align 8 - %"$retval_39" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_516" = load i64, i64* @_gasrem, align 8 - %"$gascmp_517" = icmp ugt i64 1, %"$gasrem_516" - br i1 %"$gascmp_517", label %"$out_of_gas_518", label %"$have_gas_519" + store { i8*, i8* }* %"$list_foldl_envload_506", { i8*, i8* }** %list_foldl, align 8 + %"$retval_36" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_507" = load i64, i64* @_gasrem, align 8 + %"$gascmp_508" = icmp ugt i64 1, %"$gasrem_507" + br i1 %"$gascmp_508", label %"$out_of_gas_509", label %"$have_gas_510" -"$out_of_gas_518": ; preds = %entry +"$out_of_gas_509": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_519" + br label %"$have_gas_510" -"$have_gas_519": ; preds = %"$out_of_gas_518", %entry - %"$consume_520" = sub i64 %"$gasrem_516", 1 - store i64 %"$consume_520", i64* @_gasrem, align 8 +"$have_gas_510": ; preds = %"$out_of_gas_509", %entry + %"$consume_511" = sub i64 %"$gasrem_507", 1 + store i64 %"$consume_511", i64* @_gasrem, align 8 %foldl = alloca { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_521" = load i64, i64* @_gasrem, align 8 - %"$gascmp_522" = icmp ugt i64 1, %"$gasrem_521" - br i1 %"$gascmp_522", label %"$out_of_gas_523", label %"$have_gas_524" - -"$out_of_gas_523": ; preds = %"$have_gas_519" - call void @_out_of_gas() - br label %"$have_gas_524" - -"$have_gas_524": ; preds = %"$out_of_gas_523", %"$have_gas_519" - %"$consume_525" = sub i64 %"$gasrem_521", 1 - store i64 %"$consume_525", i64* @_gasrem, align 8 - %"$list_foldl_526" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - %"$list_foldl_527" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_526", i32 2 - %"$list_foldl_528" = bitcast { i8*, i8* }* %"$list_foldl_527" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldl_529" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_528", align 8 - %"$list_foldl_fptr_530" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_529", 0 - %"$list_foldl_envptr_531" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_529", 1 - %"$list_foldl_call_532" = call { i8*, i8* }* %"$list_foldl_fptr_530"(i8* %"$list_foldl_envptr_531"), !dbg !40 - %"$list_foldl_533" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_532", i32 1 - %"$list_foldl_534" = bitcast { i8*, i8* }* %"$list_foldl_533" to { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldl_535" = load { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_534", align 8 - %"$list_foldl_fptr_536" = extractvalue { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_535", 0 - %"$list_foldl_envptr_537" = extractvalue { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_535", 1 - %"$list_foldl_call_538" = call { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_536"(i8* %"$list_foldl_envptr_537"), !dbg !40 - store { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_538", { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !41 - %"$gasrem_539" = load i64, i64* @_gasrem, align 8 - %"$gascmp_540" = icmp ugt i64 1, %"$gasrem_539" - br i1 %"$gascmp_540", label %"$out_of_gas_541", label %"$have_gas_542" - -"$out_of_gas_541": ; preds = %"$have_gas_524" - call void @_out_of_gas() - br label %"$have_gas_542" - -"$have_gas_542": ; preds = %"$out_of_gas_541", %"$have_gas_524" - %"$consume_543" = sub i64 %"$gasrem_539", 1 - store i64 %"$consume_543", i64* @_gasrem, align 8 + %"$gasrem_512" = load i64, i64* @_gasrem, align 8 + %"$gascmp_513" = icmp ugt i64 1, %"$gasrem_512" + br i1 %"$gascmp_513", label %"$out_of_gas_514", label %"$have_gas_515" + +"$out_of_gas_514": ; preds = %"$have_gas_510" + call void @_out_of_gas() + br label %"$have_gas_515" + +"$have_gas_515": ; preds = %"$out_of_gas_514", %"$have_gas_510" + %"$consume_516" = sub i64 %"$gasrem_512", 1 + store i64 %"$consume_516", i64* @_gasrem, align 8 + %"$list_foldl_517" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + %"$list_foldl_518" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_517", i32 2 + %"$list_foldl_519" = bitcast { i8*, i8* }* %"$list_foldl_518" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldl_520" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_519", align 8 + %"$list_foldl_fptr_521" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_520", 0 + %"$list_foldl_envptr_522" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_520", 1 + %"$list_foldl_call_523" = call { i8*, i8* }* %"$list_foldl_fptr_521"(i8* %"$list_foldl_envptr_522"), !dbg !36 + %"$list_foldl_524" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_523", i32 1 + %"$list_foldl_525" = bitcast { i8*, i8* }* %"$list_foldl_524" to { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldl_526" = load { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_525", align 8 + %"$list_foldl_fptr_527" = extractvalue { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_526", 0 + %"$list_foldl_envptr_528" = extractvalue { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_526", 1 + %"$list_foldl_call_529" = call { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_527"(i8* %"$list_foldl_envptr_528"), !dbg !36 + store { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_529", { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !37 + %"$gasrem_530" = load i64, i64* @_gasrem, align 8 + %"$gascmp_531" = icmp ugt i64 1, %"$gasrem_530" + br i1 %"$gascmp_531", label %"$out_of_gas_532", label %"$have_gas_533" + +"$out_of_gas_532": ; preds = %"$have_gas_515" + call void @_out_of_gas() + br label %"$have_gas_533" + +"$have_gas_533": ; preds = %"$out_of_gas_532", %"$have_gas_515" + %"$consume_534" = sub i64 %"$gasrem_530", 1 + store i64 %"$consume_534", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_544" = load i64, i64* @_gasrem, align 8 - %"$gascmp_545" = icmp ugt i64 1, %"$gasrem_544" - br i1 %"$gascmp_545", label %"$out_of_gas_546", label %"$have_gas_547" + %"$gasrem_535" = load i64, i64* @_gasrem, align 8 + %"$gascmp_536" = icmp ugt i64 1, %"$gasrem_535" + br i1 %"$gascmp_536", label %"$out_of_gas_537", label %"$have_gas_538" -"$out_of_gas_546": ; preds = %"$have_gas_542" +"$out_of_gas_537": ; preds = %"$have_gas_533" call void @_out_of_gas() - br label %"$have_gas_547" + br label %"$have_gas_538" -"$have_gas_547": ; preds = %"$out_of_gas_546", %"$have_gas_542" - %"$consume_548" = sub i64 %"$gasrem_544", 1 - store i64 %"$consume_548", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !42 - %"$gasrem_549" = load i64, i64* @_gasrem, align 8 - %"$gascmp_550" = icmp ugt i64 1, %"$gasrem_549" - br i1 %"$gascmp_550", label %"$out_of_gas_551", label %"$have_gas_552" +"$have_gas_538": ; preds = %"$out_of_gas_537", %"$have_gas_533" + %"$consume_539" = sub i64 %"$gasrem_535", 1 + store i64 %"$consume_539", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !38 + %"$gasrem_540" = load i64, i64* @_gasrem, align 8 + %"$gascmp_541" = icmp ugt i64 1, %"$gasrem_540" + br i1 %"$gascmp_541", label %"$out_of_gas_542", label %"$have_gas_543" -"$out_of_gas_551": ; preds = %"$have_gas_547" +"$out_of_gas_542": ; preds = %"$have_gas_538" call void @_out_of_gas() - br label %"$have_gas_552" + br label %"$have_gas_543" -"$have_gas_552": ; preds = %"$out_of_gas_551", %"$have_gas_547" - %"$consume_553" = sub i64 %"$gasrem_549", 1 - store i64 %"$consume_553", i64* @_gasrem, align 8 +"$have_gas_543": ; preds = %"$out_of_gas_542", %"$have_gas_538" + %"$consume_544" = sub i64 %"$gasrem_540", 1 + store i64 %"$consume_544", i64* @_gasrem, align 8 %iter = alloca { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_554" = load i64, i64* @_gasrem, align 8 - %"$gascmp_555" = icmp ugt i64 1, %"$gasrem_554" - br i1 %"$gascmp_555", label %"$out_of_gas_556", label %"$have_gas_557" - -"$out_of_gas_556": ; preds = %"$have_gas_552" - call void @_out_of_gas() - br label %"$have_gas_557" - -"$have_gas_557": ; preds = %"$out_of_gas_556", %"$have_gas_552" - %"$consume_558" = sub i64 %"$gasrem_554", 1 - store i64 %"$consume_558", i64* @_gasrem, align 8 - %"$$fundef_40_envp_559_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_40_envp_559_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_559_load", i64 4) - %"$$fundef_40_envp_559" = bitcast i8* %"$$fundef_40_envp_559_salloc" to %"$$fundef_40_env_140"* - %"$$fundef_40_env_voidp_561" = bitcast %"$$fundef_40_env_140"* %"$$fundef_40_envp_559" to i8* - %"$$fundef_40_cloval_562" = insertvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, [20 x i8]*)*, i8* } (%"$$fundef_40_env_140"*, %Uint32)* @"$fundef_40" to { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_40_env_voidp_561", 1 - %"$$fundef_40_env_one_563" = getelementptr inbounds %"$$fundef_40_env_140", %"$$fundef_40_env_140"* %"$$fundef_40_envp_559", i32 0, i32 0 - %"$one_564" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_564", %Uint32* %"$$fundef_40_env_one_563", align 4 - store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_40_cloval_562", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !43 - %"$gasrem_565" = load i64, i64* @_gasrem, align 8 - %"$gascmp_566" = icmp ugt i64 1, %"$gasrem_565" - br i1 %"$gascmp_566", label %"$out_of_gas_567", label %"$have_gas_568" - -"$out_of_gas_567": ; preds = %"$have_gas_557" - call void @_out_of_gas() - br label %"$have_gas_568" - -"$have_gas_568": ; preds = %"$out_of_gas_567", %"$have_gas_557" - %"$consume_569" = sub i64 %"$gasrem_565", 1 - store i64 %"$consume_569", i64* @_gasrem, align 8 + %"$gasrem_545" = load i64, i64* @_gasrem, align 8 + %"$gascmp_546" = icmp ugt i64 1, %"$gasrem_545" + br i1 %"$gascmp_546", label %"$out_of_gas_547", label %"$have_gas_548" + +"$out_of_gas_547": ; preds = %"$have_gas_543" + call void @_out_of_gas() + br label %"$have_gas_548" + +"$have_gas_548": ; preds = %"$out_of_gas_547", %"$have_gas_543" + %"$consume_549" = sub i64 %"$gasrem_545", 1 + store i64 %"$consume_549", i64* @_gasrem, align 8 + %"$$fundef_37_envp_550_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_37_envp_550_salloc" = call i8* @_salloc(i8* %"$$fundef_37_envp_550_load", i64 4) + %"$$fundef_37_envp_550" = bitcast i8* %"$$fundef_37_envp_550_salloc" to %"$$fundef_37_env_131"* + %"$$fundef_37_env_voidp_552" = bitcast %"$$fundef_37_env_131"* %"$$fundef_37_envp_550" to i8* + %"$$fundef_37_cloval_553" = insertvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, [20 x i8]*)*, i8* } (%"$$fundef_37_env_131"*, %Uint32)* @"$fundef_37" to { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_37_env_voidp_552", 1 + %"$$fundef_37_env_one_554" = getelementptr inbounds %"$$fundef_37_env_131", %"$$fundef_37_env_131"* %"$$fundef_37_envp_550", i32 0, i32 0 + %"$one_555" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_555", %Uint32* %"$$fundef_37_env_one_554", align 4 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_37_cloval_553", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !39 + %"$gasrem_556" = load i64, i64* @_gasrem, align 8 + %"$gascmp_557" = icmp ugt i64 1, %"$gasrem_556" + br i1 %"$gascmp_557", label %"$out_of_gas_558", label %"$have_gas_559" + +"$out_of_gas_558": ; preds = %"$have_gas_548" + call void @_out_of_gas() + br label %"$have_gas_559" + +"$have_gas_559": ; preds = %"$out_of_gas_558", %"$have_gas_548" + %"$consume_560" = sub i64 %"$gasrem_556", 1 + store i64 %"$consume_560", i64* @_gasrem, align 8 %init = alloca %Uint32, align 8 - %"$gasrem_570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_571" = icmp ugt i64 1, %"$gasrem_570" - br i1 %"$gascmp_571", label %"$out_of_gas_572", label %"$have_gas_573" + %"$gasrem_561" = load i64, i64* @_gasrem, align 8 + %"$gascmp_562" = icmp ugt i64 1, %"$gasrem_561" + br i1 %"$gascmp_562", label %"$out_of_gas_563", label %"$have_gas_564" -"$out_of_gas_572": ; preds = %"$have_gas_568" +"$out_of_gas_563": ; preds = %"$have_gas_559" call void @_out_of_gas() - br label %"$have_gas_573" + br label %"$have_gas_564" -"$have_gas_573": ; preds = %"$out_of_gas_572", %"$have_gas_568" - %"$consume_574" = sub i64 %"$gasrem_570", 1 - store i64 %"$consume_574", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !44 - %"$gasrem_575" = load i64, i64* @_gasrem, align 8 - %"$gascmp_576" = icmp ugt i64 1, %"$gasrem_575" - br i1 %"$gascmp_576", label %"$out_of_gas_577", label %"$have_gas_578" +"$have_gas_564": ; preds = %"$out_of_gas_563", %"$have_gas_559" + %"$consume_565" = sub i64 %"$gasrem_561", 1 + store i64 %"$consume_565", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !40 + %"$gasrem_566" = load i64, i64* @_gasrem, align 8 + %"$gascmp_567" = icmp ugt i64 1, %"$gasrem_566" + br i1 %"$gascmp_567", label %"$out_of_gas_568", label %"$have_gas_569" -"$out_of_gas_577": ; preds = %"$have_gas_573" +"$out_of_gas_568": ; preds = %"$have_gas_564" call void @_out_of_gas() - br label %"$have_gas_578" + br label %"$have_gas_569" -"$have_gas_578": ; preds = %"$out_of_gas_577", %"$have_gas_573" - %"$consume_579" = sub i64 %"$gasrem_575", 1 - store i64 %"$consume_579", i64* @_gasrem, align 8 +"$have_gas_569": ; preds = %"$out_of_gas_568", %"$have_gas_564" + %"$consume_570" = sub i64 %"$gasrem_566", 1 + store i64 %"$consume_570", i64* @_gasrem, align 8 %"$foldl_4" = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$foldl_580" = load { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 - %"$foldl_fptr_581" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_580", 0 - %"$foldl_envptr_582" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_580", 1 - %"$iter_583" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$foldl_call_584" = call { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_581"(i8* %"$foldl_envptr_582", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_583"), !dbg !45 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_584", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8, !dbg !45 + %"$foldl_571" = load { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 + %"$foldl_fptr_572" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_571", 0 + %"$foldl_envptr_573" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_571", 1 + %"$iter_574" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$foldl_call_575" = call { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_572"(i8* %"$foldl_envptr_573", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_574"), !dbg !41 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_575", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8, !dbg !41 %"$foldl_5" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$foldl_4_585" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 - %"$$foldl_4_fptr_586" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_585", 0 - %"$$foldl_4_envptr_587" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_585", 1 - %"$init_588" = load %Uint32, %Uint32* %init, align 4 - %"$$foldl_4_call_589" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_4_fptr_586"(i8* %"$$foldl_4_envptr_587", %Uint32 %"$init_588"), !dbg !45 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_4_call_589", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_5", align 8, !dbg !45 - %"$$foldl_5_590" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_5", align 8 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_5_590", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_39", align 8, !dbg !45 - %"$$retval_39_591" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_39", align 8 - ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_39_591" + %"$$foldl_4_576" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 + %"$$foldl_4_fptr_577" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_576", 0 + %"$$foldl_4_envptr_578" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_576", 1 + %"$init_579" = load %Uint32, %Uint32* %init, align 4 + %"$$foldl_4_call_580" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_4_fptr_577"(i8* %"$$foldl_4_envptr_578", %Uint32 %"$init_579"), !dbg !41 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_4_call_580", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_5", align 8, !dbg !41 + %"$$foldl_5_581" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_5", align 8 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_5_581", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_36", align 8, !dbg !41 + %"$$retval_36_582" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_36", align 8 + ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_36_582" } -define internal %Uint32 @"$fundef_36"(%"$$fundef_36_env_142"* %0, %String %1) !dbg !46 { +define internal %Uint32 @"$fundef_33"(%"$$fundef_33_env_133"* %0, %String %1) !dbg !42 { entry: - %"$$fundef_36_env_one_501" = getelementptr inbounds %"$$fundef_36_env_142", %"$$fundef_36_env_142"* %0, i32 0, i32 0 - %"$one_envload_502" = load %Uint32, %Uint32* %"$$fundef_36_env_one_501", align 4 + %"$$fundef_33_env_one_492" = getelementptr inbounds %"$$fundef_33_env_133", %"$$fundef_33_env_133"* %0, i32 0, i32 0 + %"$one_envload_493" = load %Uint32, %Uint32* %"$$fundef_33_env_one_492", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_502", %Uint32* %one, align 4 - %"$$fundef_36_env_z_503" = getelementptr inbounds %"$$fundef_36_env_142", %"$$fundef_36_env_142"* %0, i32 0, i32 1 - %"$z_envload_504" = load %Uint32, %Uint32* %"$$fundef_36_env_z_503", align 4 + store %Uint32 %"$one_envload_493", %Uint32* %one, align 4 + %"$$fundef_33_env_z_494" = getelementptr inbounds %"$$fundef_33_env_133", %"$$fundef_33_env_133"* %0, i32 0, i32 1 + %"$z_envload_495" = load %Uint32, %Uint32* %"$$fundef_33_env_z_494", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_504", %Uint32* %z, align 4 - %"$retval_37" = alloca %Uint32, align 8 - %"$gasrem_505" = load i64, i64* @_gasrem, align 8 - %"$gascmp_506" = icmp ugt i64 4, %"$gasrem_505" - br i1 %"$gascmp_506", label %"$out_of_gas_507", label %"$have_gas_508" - -"$out_of_gas_507": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_508" - -"$have_gas_508": ; preds = %"$out_of_gas_507", %entry - %"$consume_509" = sub i64 %"$gasrem_505", 4 - store i64 %"$consume_509", i64* @_gasrem, align 8 - %"$one_510" = load %Uint32, %Uint32* %one, align 4 - %"$z_511" = load %Uint32, %Uint32* %z, align 4 - %"$add_call_512" = call %Uint32 @_add_Uint32(%Uint32 %"$one_510", %Uint32 %"$z_511"), !dbg !47 - store %Uint32 %"$add_call_512", %Uint32* %"$retval_37", align 4, !dbg !47 - %"$$retval_37_513" = load %Uint32, %Uint32* %"$retval_37", align 4 - ret %Uint32 %"$$retval_37_513" + store %Uint32 %"$z_envload_495", %Uint32* %z, align 4 + %"$retval_34" = alloca %Uint32, align 8 + %"$gasrem_496" = load i64, i64* @_gasrem, align 8 + %"$gascmp_497" = icmp ugt i64 4, %"$gasrem_496" + br i1 %"$gascmp_497", label %"$out_of_gas_498", label %"$have_gas_499" + +"$out_of_gas_498": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_499" + +"$have_gas_499": ; preds = %"$out_of_gas_498", %entry + %"$consume_500" = sub i64 %"$gasrem_496", 4 + store i64 %"$consume_500", i64* @_gasrem, align 8 + %"$one_501" = load %Uint32, %Uint32* %one, align 4 + %"$z_502" = load %Uint32, %Uint32* %z, align 4 + %"$add_call_503" = call %Uint32 @_add_Uint32(%Uint32 %"$one_501", %Uint32 %"$z_502"), !dbg !43 + store %Uint32 %"$add_call_503", %Uint32* %"$retval_34", align 4, !dbg !43 + %"$$retval_34_504" = load %Uint32, %Uint32* %"$retval_34", align 4 + ret %Uint32 %"$$retval_34_504" } -define internal { %Uint32 (i8*, %String)*, i8* } @"$fundef_34"(%"$$fundef_34_env_143"* %0, %Uint32 %1) !dbg !48 { +define internal { %Uint32 (i8*, %String)*, i8* } @"$fundef_31"(%"$$fundef_31_env_134"* %0, %Uint32 %1) !dbg !44 { entry: - %"$$fundef_34_env_one_486" = getelementptr inbounds %"$$fundef_34_env_143", %"$$fundef_34_env_143"* %0, i32 0, i32 0 - %"$one_envload_487" = load %Uint32, %Uint32* %"$$fundef_34_env_one_486", align 4 + %"$$fundef_31_env_one_477" = getelementptr inbounds %"$$fundef_31_env_134", %"$$fundef_31_env_134"* %0, i32 0, i32 0 + %"$one_envload_478" = load %Uint32, %Uint32* %"$$fundef_31_env_one_477", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_487", %Uint32* %one, align 4 - %"$retval_35" = alloca { %Uint32 (i8*, %String)*, i8* }, align 8 - %"$gasrem_488" = load i64, i64* @_gasrem, align 8 - %"$gascmp_489" = icmp ugt i64 1, %"$gasrem_488" - br i1 %"$gascmp_489", label %"$out_of_gas_490", label %"$have_gas_491" - -"$out_of_gas_490": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_491" - -"$have_gas_491": ; preds = %"$out_of_gas_490", %entry - %"$consume_492" = sub i64 %"$gasrem_488", 1 - store i64 %"$consume_492", i64* @_gasrem, align 8 - %"$$fundef_36_envp_493_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_36_envp_493_salloc" = call i8* @_salloc(i8* %"$$fundef_36_envp_493_load", i64 8) - %"$$fundef_36_envp_493" = bitcast i8* %"$$fundef_36_envp_493_salloc" to %"$$fundef_36_env_142"* - %"$$fundef_36_env_voidp_495" = bitcast %"$$fundef_36_env_142"* %"$$fundef_36_envp_493" to i8* - %"$$fundef_36_cloval_496" = insertvalue { %Uint32 (i8*, %String)*, i8* } { %Uint32 (i8*, %String)* bitcast (%Uint32 (%"$$fundef_36_env_142"*, %String)* @"$fundef_36" to %Uint32 (i8*, %String)*), i8* undef }, i8* %"$$fundef_36_env_voidp_495", 1 - %"$$fundef_36_env_one_497" = getelementptr inbounds %"$$fundef_36_env_142", %"$$fundef_36_env_142"* %"$$fundef_36_envp_493", i32 0, i32 0 - %"$one_498" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_498", %Uint32* %"$$fundef_36_env_one_497", align 4 - %"$$fundef_36_env_z_499" = getelementptr inbounds %"$$fundef_36_env_142", %"$$fundef_36_env_142"* %"$$fundef_36_envp_493", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_36_env_z_499", align 4 - store { %Uint32 (i8*, %String)*, i8* } %"$$fundef_36_cloval_496", { %Uint32 (i8*, %String)*, i8* }* %"$retval_35", align 8, !dbg !49 - %"$$retval_35_500" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$retval_35", align 8 - ret { %Uint32 (i8*, %String)*, i8* } %"$$retval_35_500" + store %Uint32 %"$one_envload_478", %Uint32* %one, align 4 + %"$retval_32" = alloca { %Uint32 (i8*, %String)*, i8* }, align 8 + %"$gasrem_479" = load i64, i64* @_gasrem, align 8 + %"$gascmp_480" = icmp ugt i64 1, %"$gasrem_479" + br i1 %"$gascmp_480", label %"$out_of_gas_481", label %"$have_gas_482" + +"$out_of_gas_481": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_482" + +"$have_gas_482": ; preds = %"$out_of_gas_481", %entry + %"$consume_483" = sub i64 %"$gasrem_479", 1 + store i64 %"$consume_483", i64* @_gasrem, align 8 + %"$$fundef_33_envp_484_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_33_envp_484_salloc" = call i8* @_salloc(i8* %"$$fundef_33_envp_484_load", i64 8) + %"$$fundef_33_envp_484" = bitcast i8* %"$$fundef_33_envp_484_salloc" to %"$$fundef_33_env_133"* + %"$$fundef_33_env_voidp_486" = bitcast %"$$fundef_33_env_133"* %"$$fundef_33_envp_484" to i8* + %"$$fundef_33_cloval_487" = insertvalue { %Uint32 (i8*, %String)*, i8* } { %Uint32 (i8*, %String)* bitcast (%Uint32 (%"$$fundef_33_env_133"*, %String)* @"$fundef_33" to %Uint32 (i8*, %String)*), i8* undef }, i8* %"$$fundef_33_env_voidp_486", 1 + %"$$fundef_33_env_one_488" = getelementptr inbounds %"$$fundef_33_env_133", %"$$fundef_33_env_133"* %"$$fundef_33_envp_484", i32 0, i32 0 + %"$one_489" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_489", %Uint32* %"$$fundef_33_env_one_488", align 4 + %"$$fundef_33_env_z_490" = getelementptr inbounds %"$$fundef_33_env_133", %"$$fundef_33_env_133"* %"$$fundef_33_envp_484", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_33_env_z_490", align 4 + store { %Uint32 (i8*, %String)*, i8* } %"$$fundef_33_cloval_487", { %Uint32 (i8*, %String)*, i8* }* %"$retval_32", align 8, !dbg !45 + %"$$retval_32_491" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$retval_32", align 8 + ret { %Uint32 (i8*, %String)*, i8* } %"$$retval_32_491" } -define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_32"(%"$$fundef_32_env_144"* %0) !dbg !50 { +define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_29"(%"$$fundef_29_env_135"* %0) !dbg !46 { entry: - %"$$fundef_32_env_list_foldl_408" = getelementptr inbounds %"$$fundef_32_env_144", %"$$fundef_32_env_144"* %0, i32 0, i32 0 - %"$list_foldl_envload_409" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_32_env_list_foldl_408", align 8 + %"$$fundef_29_env_list_foldl_399" = getelementptr inbounds %"$$fundef_29_env_135", %"$$fundef_29_env_135"* %0, i32 0, i32 0 + %"$list_foldl_envload_400" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_29_env_list_foldl_399", align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldl_envload_409", { i8*, i8* }** %list_foldl, align 8 - %"$retval_33" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$gasrem_410" = load i64, i64* @_gasrem, align 8 - %"$gascmp_411" = icmp ugt i64 1, %"$gasrem_410" - br i1 %"$gascmp_411", label %"$out_of_gas_412", label %"$have_gas_413" + store { i8*, i8* }* %"$list_foldl_envload_400", { i8*, i8* }** %list_foldl, align 8 + %"$retval_30" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 + %"$gasrem_401" = load i64, i64* @_gasrem, align 8 + %"$gascmp_402" = icmp ugt i64 1, %"$gasrem_401" + br i1 %"$gascmp_402", label %"$out_of_gas_403", label %"$have_gas_404" -"$out_of_gas_412": ; preds = %entry +"$out_of_gas_403": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_413" + br label %"$have_gas_404" -"$have_gas_413": ; preds = %"$out_of_gas_412", %entry - %"$consume_414" = sub i64 %"$gasrem_410", 1 - store i64 %"$consume_414", i64* @_gasrem, align 8 +"$have_gas_404": ; preds = %"$out_of_gas_403", %entry + %"$consume_405" = sub i64 %"$gasrem_401", 1 + store i64 %"$consume_405", i64* @_gasrem, align 8 %foldl = alloca { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_415" = load i64, i64* @_gasrem, align 8 - %"$gascmp_416" = icmp ugt i64 1, %"$gasrem_415" - br i1 %"$gascmp_416", label %"$out_of_gas_417", label %"$have_gas_418" - -"$out_of_gas_417": ; preds = %"$have_gas_413" - call void @_out_of_gas() - br label %"$have_gas_418" - -"$have_gas_418": ; preds = %"$out_of_gas_417", %"$have_gas_413" - %"$consume_419" = sub i64 %"$gasrem_415", 1 - store i64 %"$consume_419", i64* @_gasrem, align 8 - %"$list_foldl_420" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - %"$list_foldl_421" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_420", i32 0 - %"$list_foldl_422" = bitcast { i8*, i8* }* %"$list_foldl_421" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldl_423" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_422", align 8 - %"$list_foldl_fptr_424" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_423", 0 - %"$list_foldl_envptr_425" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_423", 1 - %"$list_foldl_call_426" = call { i8*, i8* }* %"$list_foldl_fptr_424"(i8* %"$list_foldl_envptr_425"), !dbg !51 - %"$list_foldl_427" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_426", i32 1 - %"$list_foldl_428" = bitcast { i8*, i8* }* %"$list_foldl_427" to { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldl_429" = load { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_428", align 8 - %"$list_foldl_fptr_430" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_429", 0 - %"$list_foldl_envptr_431" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_429", 1 - %"$list_foldl_call_432" = call { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_430"(i8* %"$list_foldl_envptr_431"), !dbg !51 - store { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_432", { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !52 - %"$gasrem_433" = load i64, i64* @_gasrem, align 8 - %"$gascmp_434" = icmp ugt i64 1, %"$gasrem_433" - br i1 %"$gascmp_434", label %"$out_of_gas_435", label %"$have_gas_436" - -"$out_of_gas_435": ; preds = %"$have_gas_418" - call void @_out_of_gas() - br label %"$have_gas_436" - -"$have_gas_436": ; preds = %"$out_of_gas_435", %"$have_gas_418" - %"$consume_437" = sub i64 %"$gasrem_433", 1 - store i64 %"$consume_437", i64* @_gasrem, align 8 + %"$gasrem_406" = load i64, i64* @_gasrem, align 8 + %"$gascmp_407" = icmp ugt i64 1, %"$gasrem_406" + br i1 %"$gascmp_407", label %"$out_of_gas_408", label %"$have_gas_409" + +"$out_of_gas_408": ; preds = %"$have_gas_404" + call void @_out_of_gas() + br label %"$have_gas_409" + +"$have_gas_409": ; preds = %"$out_of_gas_408", %"$have_gas_404" + %"$consume_410" = sub i64 %"$gasrem_406", 1 + store i64 %"$consume_410", i64* @_gasrem, align 8 + %"$list_foldl_411" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + %"$list_foldl_412" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_411", i32 0 + %"$list_foldl_413" = bitcast { i8*, i8* }* %"$list_foldl_412" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldl_414" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_413", align 8 + %"$list_foldl_fptr_415" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_414", 0 + %"$list_foldl_envptr_416" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_414", 1 + %"$list_foldl_call_417" = call { i8*, i8* }* %"$list_foldl_fptr_415"(i8* %"$list_foldl_envptr_416"), !dbg !47 + %"$list_foldl_418" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_417", i32 1 + %"$list_foldl_419" = bitcast { i8*, i8* }* %"$list_foldl_418" to { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldl_420" = load { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_419", align 8 + %"$list_foldl_fptr_421" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_420", 0 + %"$list_foldl_envptr_422" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_420", 1 + %"$list_foldl_call_423" = call { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_421"(i8* %"$list_foldl_envptr_422"), !dbg !47 + store { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_423", { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8, !dbg !48 + %"$gasrem_424" = load i64, i64* @_gasrem, align 8 + %"$gascmp_425" = icmp ugt i64 1, %"$gasrem_424" + br i1 %"$gascmp_425", label %"$out_of_gas_426", label %"$have_gas_427" + +"$out_of_gas_426": ; preds = %"$have_gas_409" + call void @_out_of_gas() + br label %"$have_gas_427" + +"$have_gas_427": ; preds = %"$out_of_gas_426", %"$have_gas_409" + %"$consume_428" = sub i64 %"$gasrem_424", 1 + store i64 %"$consume_428", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_438" = load i64, i64* @_gasrem, align 8 - %"$gascmp_439" = icmp ugt i64 1, %"$gasrem_438" - br i1 %"$gascmp_439", label %"$out_of_gas_440", label %"$have_gas_441" + %"$gasrem_429" = load i64, i64* @_gasrem, align 8 + %"$gascmp_430" = icmp ugt i64 1, %"$gasrem_429" + br i1 %"$gascmp_430", label %"$out_of_gas_431", label %"$have_gas_432" -"$out_of_gas_440": ; preds = %"$have_gas_436" +"$out_of_gas_431": ; preds = %"$have_gas_427" call void @_out_of_gas() - br label %"$have_gas_441" + br label %"$have_gas_432" -"$have_gas_441": ; preds = %"$out_of_gas_440", %"$have_gas_436" - %"$consume_442" = sub i64 %"$gasrem_438", 1 - store i64 %"$consume_442", i64* @_gasrem, align 8 - store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !53 - %"$gasrem_443" = load i64, i64* @_gasrem, align 8 - %"$gascmp_444" = icmp ugt i64 1, %"$gasrem_443" - br i1 %"$gascmp_444", label %"$out_of_gas_445", label %"$have_gas_446" +"$have_gas_432": ; preds = %"$out_of_gas_431", %"$have_gas_427" + %"$consume_433" = sub i64 %"$gasrem_429", 1 + store i64 %"$consume_433", i64* @_gasrem, align 8 + store %Uint32 { i32 1 }, %Uint32* %one, align 4, !dbg !49 + %"$gasrem_434" = load i64, i64* @_gasrem, align 8 + %"$gascmp_435" = icmp ugt i64 1, %"$gasrem_434" + br i1 %"$gascmp_435", label %"$out_of_gas_436", label %"$have_gas_437" -"$out_of_gas_445": ; preds = %"$have_gas_441" +"$out_of_gas_436": ; preds = %"$have_gas_432" call void @_out_of_gas() - br label %"$have_gas_446" + br label %"$have_gas_437" -"$have_gas_446": ; preds = %"$out_of_gas_445", %"$have_gas_441" - %"$consume_447" = sub i64 %"$gasrem_443", 1 - store i64 %"$consume_447", i64* @_gasrem, align 8 +"$have_gas_437": ; preds = %"$out_of_gas_436", %"$have_gas_432" + %"$consume_438" = sub i64 %"$gasrem_434", 1 + store i64 %"$consume_438", i64* @_gasrem, align 8 %iter = alloca { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_448" = load i64, i64* @_gasrem, align 8 - %"$gascmp_449" = icmp ugt i64 1, %"$gasrem_448" - br i1 %"$gascmp_449", label %"$out_of_gas_450", label %"$have_gas_451" - -"$out_of_gas_450": ; preds = %"$have_gas_446" - call void @_out_of_gas() - br label %"$have_gas_451" - -"$have_gas_451": ; preds = %"$out_of_gas_450", %"$have_gas_446" - %"$consume_452" = sub i64 %"$gasrem_448", 1 - store i64 %"$consume_452", i64* @_gasrem, align 8 - %"$$fundef_34_envp_453_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_34_envp_453_salloc" = call i8* @_salloc(i8* %"$$fundef_34_envp_453_load", i64 4) - %"$$fundef_34_envp_453" = bitcast i8* %"$$fundef_34_envp_453_salloc" to %"$$fundef_34_env_143"* - %"$$fundef_34_env_voidp_455" = bitcast %"$$fundef_34_env_143"* %"$$fundef_34_envp_453" to i8* - %"$$fundef_34_cloval_456" = insertvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %String)*, i8* } (%"$$fundef_34_env_143"*, %Uint32)* @"$fundef_34" to { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_34_env_voidp_455", 1 - %"$$fundef_34_env_one_457" = getelementptr inbounds %"$$fundef_34_env_143", %"$$fundef_34_env_143"* %"$$fundef_34_envp_453", i32 0, i32 0 - %"$one_458" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_458", %Uint32* %"$$fundef_34_env_one_457", align 4 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_34_cloval_456", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !54 - %"$gasrem_459" = load i64, i64* @_gasrem, align 8 - %"$gascmp_460" = icmp ugt i64 1, %"$gasrem_459" - br i1 %"$gascmp_460", label %"$out_of_gas_461", label %"$have_gas_462" - -"$out_of_gas_461": ; preds = %"$have_gas_451" - call void @_out_of_gas() - br label %"$have_gas_462" - -"$have_gas_462": ; preds = %"$out_of_gas_461", %"$have_gas_451" - %"$consume_463" = sub i64 %"$gasrem_459", 1 - store i64 %"$consume_463", i64* @_gasrem, align 8 + %"$gasrem_439" = load i64, i64* @_gasrem, align 8 + %"$gascmp_440" = icmp ugt i64 1, %"$gasrem_439" + br i1 %"$gascmp_440", label %"$out_of_gas_441", label %"$have_gas_442" + +"$out_of_gas_441": ; preds = %"$have_gas_437" + call void @_out_of_gas() + br label %"$have_gas_442" + +"$have_gas_442": ; preds = %"$out_of_gas_441", %"$have_gas_437" + %"$consume_443" = sub i64 %"$gasrem_439", 1 + store i64 %"$consume_443", i64* @_gasrem, align 8 + %"$$fundef_31_envp_444_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_31_envp_444_salloc" = call i8* @_salloc(i8* %"$$fundef_31_envp_444_load", i64 4) + %"$$fundef_31_envp_444" = bitcast i8* %"$$fundef_31_envp_444_salloc" to %"$$fundef_31_env_134"* + %"$$fundef_31_env_voidp_446" = bitcast %"$$fundef_31_env_134"* %"$$fundef_31_envp_444" to i8* + %"$$fundef_31_cloval_447" = insertvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %String)*, i8* } (%"$$fundef_31_env_134"*, %Uint32)* @"$fundef_31" to { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_31_env_voidp_446", 1 + %"$$fundef_31_env_one_448" = getelementptr inbounds %"$$fundef_31_env_134", %"$$fundef_31_env_134"* %"$$fundef_31_envp_444", i32 0, i32 0 + %"$one_449" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_449", %Uint32* %"$$fundef_31_env_one_448", align 4 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_31_cloval_447", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8, !dbg !50 + %"$gasrem_450" = load i64, i64* @_gasrem, align 8 + %"$gascmp_451" = icmp ugt i64 1, %"$gasrem_450" + br i1 %"$gascmp_451", label %"$out_of_gas_452", label %"$have_gas_453" + +"$out_of_gas_452": ; preds = %"$have_gas_442" + call void @_out_of_gas() + br label %"$have_gas_453" + +"$have_gas_453": ; preds = %"$out_of_gas_452", %"$have_gas_442" + %"$consume_454" = sub i64 %"$gasrem_450", 1 + store i64 %"$consume_454", i64* @_gasrem, align 8 %init = alloca %Uint32, align 8 - %"$gasrem_464" = load i64, i64* @_gasrem, align 8 - %"$gascmp_465" = icmp ugt i64 1, %"$gasrem_464" - br i1 %"$gascmp_465", label %"$out_of_gas_466", label %"$have_gas_467" + %"$gasrem_455" = load i64, i64* @_gasrem, align 8 + %"$gascmp_456" = icmp ugt i64 1, %"$gasrem_455" + br i1 %"$gascmp_456", label %"$out_of_gas_457", label %"$have_gas_458" -"$out_of_gas_466": ; preds = %"$have_gas_462" +"$out_of_gas_457": ; preds = %"$have_gas_453" call void @_out_of_gas() - br label %"$have_gas_467" + br label %"$have_gas_458" -"$have_gas_467": ; preds = %"$out_of_gas_466", %"$have_gas_462" - %"$consume_468" = sub i64 %"$gasrem_464", 1 - store i64 %"$consume_468", i64* @_gasrem, align 8 - store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !55 - %"$gasrem_469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_470" = icmp ugt i64 1, %"$gasrem_469" - br i1 %"$gascmp_470", label %"$out_of_gas_471", label %"$have_gas_472" +"$have_gas_458": ; preds = %"$out_of_gas_457", %"$have_gas_453" + %"$consume_459" = sub i64 %"$gasrem_455", 1 + store i64 %"$consume_459", i64* @_gasrem, align 8 + store %Uint32 zeroinitializer, %Uint32* %init, align 4, !dbg !51 + %"$gasrem_460" = load i64, i64* @_gasrem, align 8 + %"$gascmp_461" = icmp ugt i64 1, %"$gasrem_460" + br i1 %"$gascmp_461", label %"$out_of_gas_462", label %"$have_gas_463" -"$out_of_gas_471": ; preds = %"$have_gas_467" +"$out_of_gas_462": ; preds = %"$have_gas_458" call void @_out_of_gas() - br label %"$have_gas_472" + br label %"$have_gas_463" -"$have_gas_472": ; preds = %"$out_of_gas_471", %"$have_gas_467" - %"$consume_473" = sub i64 %"$gasrem_469", 1 - store i64 %"$consume_473", i64* @_gasrem, align 8 +"$have_gas_463": ; preds = %"$out_of_gas_462", %"$have_gas_458" + %"$consume_464" = sub i64 %"$gasrem_460", 1 + store i64 %"$consume_464", i64* @_gasrem, align 8 %"$foldl_4" = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$foldl_474" = load { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 - %"$foldl_fptr_475" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_474", 0 - %"$foldl_envptr_476" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_474", 1 - %"$iter_477" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$foldl_call_478" = call { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_475"(i8* %"$foldl_envptr_476", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_477"), !dbg !56 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_478", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8, !dbg !56 + %"$foldl_465" = load { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 + %"$foldl_fptr_466" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_465", 0 + %"$foldl_envptr_467" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_465", 1 + %"$iter_468" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$foldl_call_469" = call { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_466"(i8* %"$foldl_envptr_467", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_468"), !dbg !52 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_469", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8, !dbg !52 %"$foldl_5" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$$foldl_4_479" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 - %"$$foldl_4_fptr_480" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_479", 0 - %"$$foldl_4_envptr_481" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_479", 1 - %"$init_482" = load %Uint32, %Uint32* %init, align 4 - %"$$foldl_4_call_483" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_4_fptr_480"(i8* %"$$foldl_4_envptr_481", %Uint32 %"$init_482"), !dbg !56 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_4_call_483", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_5", align 8, !dbg !56 - %"$$foldl_5_484" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_5", align 8 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_5_484", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_33", align 8, !dbg !56 - %"$$retval_33_485" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_33", align 8 - ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_33_485" + %"$$foldl_4_470" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 + %"$$foldl_4_fptr_471" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_470", 0 + %"$$foldl_4_envptr_472" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_470", 1 + %"$init_473" = load %Uint32, %Uint32* %init, align 4 + %"$$foldl_4_call_474" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_4_fptr_471"(i8* %"$$foldl_4_envptr_472", %Uint32 %"$init_473"), !dbg !52 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_4_call_474", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_5", align 8, !dbg !52 + %"$$foldl_5_475" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_5", align 8 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_5_475", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_30", align 8, !dbg !52 + %"$$retval_30_476" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_30", align 8 + ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_30_476" } -define internal %Uint32 @"$fundef_30"(%"$$fundef_30_env_145"* %0, %TName_List_ByStr20* %1) !dbg !57 { +define internal %Uint32 @"$fundef_27"(%"$$fundef_27_env_136"* %0, %TName_List_ByStr20* %1) !dbg !53 { entry: - %"$$fundef_30_env_f_340" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %0, i32 0, i32 0 - %"$f_envload_341" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_30_env_f_340", align 8 + %"$$fundef_27_env_f_331" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %0, i32 0, i32 0 + %"$f_envload_332" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_27_env_f_331", align 8 %f = alloca { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_341", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_30_env_g_342" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %0, i32 0, i32 1 - %"$g_envload_343" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_30_env_g_342", align 8 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_332", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_27_env_g_333" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %0, i32 0, i32 1 + %"$g_envload_334" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_27_env_g_333", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_343", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_30_env_z_344" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %0, i32 0, i32 2 - %"$z_envload_345" = load %Uint32, %Uint32* %"$$fundef_30_env_z_344", align 4 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_334", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_27_env_z_335" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %0, i32 0, i32 2 + %"$z_envload_336" = load %Uint32, %Uint32* %"$$fundef_27_env_z_335", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_345", %Uint32* %z, align 4 - %"$retval_31" = alloca %Uint32, align 8 - %"$gasrem_346" = load i64, i64* @_gasrem, align 8 - %"$gascmp_347" = icmp ugt i64 2, %"$gasrem_346" - br i1 %"$gascmp_347", label %"$out_of_gas_348", label %"$have_gas_349" - -"$out_of_gas_348": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_349" - -"$have_gas_349": ; preds = %"$out_of_gas_348", %entry - %"$consume_350" = sub i64 %"$gasrem_346", 2 - store i64 %"$consume_350", i64* @_gasrem, align 8 - %"$l_tag_352" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 - %"$l_tag_353" = load i8, i8* %"$l_tag_352", align 1 - switch i8 %"$l_tag_353", label %"$empty_default_354" [ - i8 0, label %"$Cons_355" - i8 1, label %"$Nil_399" - ], !dbg !59 - -"$Cons_355": ; preds = %"$have_gas_349" - %"$l_356" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* - %"$h_gep_357" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_356", i32 0, i32 1 - %"$h_load_358" = load [20 x i8], [20 x i8]* %"$h_gep_357", align 1 + store %Uint32 %"$z_envload_336", %Uint32* %z, align 4 + %"$retval_28" = alloca %Uint32, align 8 + %"$gasrem_337" = load i64, i64* @_gasrem, align 8 + %"$gascmp_338" = icmp ugt i64 2, %"$gasrem_337" + br i1 %"$gascmp_338", label %"$out_of_gas_339", label %"$have_gas_340" + +"$out_of_gas_339": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_340" + +"$have_gas_340": ; preds = %"$out_of_gas_339", %entry + %"$consume_341" = sub i64 %"$gasrem_337", 2 + store i64 %"$consume_341", i64* @_gasrem, align 8 + %"$l_tag_343" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 + %"$l_tag_344" = load i8, i8* %"$l_tag_343", align 1 + switch i8 %"$l_tag_344", label %"$empty_default_345" [ + i8 0, label %"$Cons_346" + i8 1, label %"$Nil_390" + ], !dbg !55 + +"$Cons_346": ; preds = %"$have_gas_340" + %"$l_347" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* + %"$h_gep_348" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_347", i32 0, i32 1 + %"$h_load_349" = load [20 x i8], [20 x i8]* %"$h_gep_348", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_load_358", [20 x i8]* %h, align 1 - %"$t_gep_359" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_356", i32 0, i32 2 - %"$t_load_360" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_359", align 8 + store [20 x i8] %"$h_load_349", [20 x i8]* %h, align 1 + %"$t_gep_350" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_347", i32 0, i32 2 + %"$t_load_351" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_350", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_load_360", %TName_List_ByStr20** %t, align 8 - %"$gasrem_361" = load i64, i64* @_gasrem, align 8 - %"$gascmp_362" = icmp ugt i64 1, %"$gasrem_361" - br i1 %"$gascmp_362", label %"$out_of_gas_363", label %"$have_gas_364" + store %TName_List_ByStr20* %"$t_load_351", %TName_List_ByStr20** %t, align 8 + %"$gasrem_352" = load i64, i64* @_gasrem, align 8 + %"$gascmp_353" = icmp ugt i64 1, %"$gasrem_352" + br i1 %"$gascmp_353", label %"$out_of_gas_354", label %"$have_gas_355" -"$out_of_gas_363": ; preds = %"$Cons_355" +"$out_of_gas_354": ; preds = %"$Cons_346" call void @_out_of_gas() - br label %"$have_gas_364" + br label %"$have_gas_355" -"$have_gas_364": ; preds = %"$out_of_gas_363", %"$Cons_355" - %"$consume_365" = sub i64 %"$gasrem_361", 1 - store i64 %"$consume_365", i64* @_gasrem, align 8 +"$have_gas_355": ; preds = %"$out_of_gas_354", %"$Cons_346" + %"$consume_356" = sub i64 %"$gasrem_352", 1 + store i64 %"$consume_356", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$gasrem_366" = load i64, i64* @_gasrem, align 8 - %"$gascmp_367" = icmp ugt i64 1, %"$gasrem_366" - br i1 %"$gascmp_367", label %"$out_of_gas_368", label %"$have_gas_369" + %"$gasrem_357" = load i64, i64* @_gasrem, align 8 + %"$gascmp_358" = icmp ugt i64 1, %"$gasrem_357" + br i1 %"$gascmp_358", label %"$out_of_gas_359", label %"$have_gas_360" -"$out_of_gas_368": ; preds = %"$have_gas_364" +"$out_of_gas_359": ; preds = %"$have_gas_355" call void @_out_of_gas() - br label %"$have_gas_369" + br label %"$have_gas_360" -"$have_gas_369": ; preds = %"$out_of_gas_368", %"$have_gas_364" - %"$consume_370" = sub i64 %"$gasrem_366", 1 - store i64 %"$consume_370", i64* @_gasrem, align 8 +"$have_gas_360": ; preds = %"$out_of_gas_359", %"$have_gas_355" + %"$consume_361" = sub i64 %"$gasrem_357", 1 + store i64 %"$consume_361", i64* @_gasrem, align 8 %"$f_0" = alloca { %Uint32 (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_371" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$f_fptr_372" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_371", 0 - %"$f_envptr_373" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_371", 1 - %"$z_374" = load %Uint32, %Uint32* %z, align 4 - %"$f_call_375" = call { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_fptr_372"(i8* %"$f_envptr_373", %Uint32 %"$z_374"), !dbg !60 - store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_call_375", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_0", align 8, !dbg !60 + %"$f_362" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$f_fptr_363" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_362", 0 + %"$f_envptr_364" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_362", 1 + %"$z_365" = load %Uint32, %Uint32* %z, align 4 + %"$f_call_366" = call { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_fptr_363"(i8* %"$f_envptr_364", %Uint32 %"$z_365"), !dbg !56 + store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_call_366", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_0", align 8, !dbg !56 %"$f_1" = alloca %Uint32, align 8 - %"$$f_0_376" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_0", align 8 - %"$$f_0_fptr_377" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_0_376", 0 - %"$$f_0_envptr_378" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_0_376", 1 - %"$$f_0_h_379" = alloca [20 x i8], align 1 - %"$h_380" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_380", [20 x i8]* %"$$f_0_h_379", align 1 - %"$$f_0_call_381" = call %Uint32 %"$$f_0_fptr_377"(i8* %"$$f_0_envptr_378", [20 x i8]* %"$$f_0_h_379"), !dbg !60 - store %Uint32 %"$$f_0_call_381", %Uint32* %"$f_1", align 4, !dbg !60 - %"$$f_1_382" = load %Uint32, %Uint32* %"$f_1", align 4 - store %Uint32 %"$$f_1_382", %Uint32* %res, align 4, !dbg !60 - %"$gasrem_383" = load i64, i64* @_gasrem, align 8 - %"$gascmp_384" = icmp ugt i64 1, %"$gasrem_383" - br i1 %"$gascmp_384", label %"$out_of_gas_385", label %"$have_gas_386" - -"$out_of_gas_385": ; preds = %"$have_gas_369" - call void @_out_of_gas() - br label %"$have_gas_386" - -"$have_gas_386": ; preds = %"$out_of_gas_385", %"$have_gas_369" - %"$consume_387" = sub i64 %"$gasrem_383", 1 - store i64 %"$consume_387", i64* @_gasrem, align 8 + %"$$f_0_367" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_0", align 8 + %"$$f_0_fptr_368" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_0_367", 0 + %"$$f_0_envptr_369" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_0_367", 1 + %"$$f_0_h_370" = alloca [20 x i8], align 1 + %"$h_371" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_371", [20 x i8]* %"$$f_0_h_370", align 1 + %"$$f_0_call_372" = call %Uint32 %"$$f_0_fptr_368"(i8* %"$$f_0_envptr_369", [20 x i8]* %"$$f_0_h_370"), !dbg !56 + store %Uint32 %"$$f_0_call_372", %Uint32* %"$f_1", align 4, !dbg !56 + %"$$f_1_373" = load %Uint32, %Uint32* %"$f_1", align 4 + store %Uint32 %"$$f_1_373", %Uint32* %res, align 4, !dbg !56 + %"$gasrem_374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_375" = icmp ugt i64 1, %"$gasrem_374" + br i1 %"$gascmp_375", label %"$out_of_gas_376", label %"$have_gas_377" + +"$out_of_gas_376": ; preds = %"$have_gas_360" + call void @_out_of_gas() + br label %"$have_gas_377" + +"$have_gas_377": ; preds = %"$out_of_gas_376", %"$have_gas_360" + %"$consume_378" = sub i64 %"$gasrem_374", 1 + store i64 %"$consume_378", i64* @_gasrem, align 8 %"$g_2" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$g_388" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_389" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_388", 0 - %"$g_envptr_390" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_388", 1 - %"$res_391" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_392" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_389"(i8* %"$g_envptr_390", %Uint32 %"$res_391"), !dbg !63 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_392", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_2", align 8, !dbg !63 + %"$g_379" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_380" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_379", 0 + %"$g_envptr_381" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_379", 1 + %"$res_382" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_383" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_380"(i8* %"$g_envptr_381", %Uint32 %"$res_382"), !dbg !59 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_383", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_2", align 8, !dbg !59 %"$g_3" = alloca %Uint32, align 8 - %"$$g_2_393" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_2", align 8 - %"$$g_2_fptr_394" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_2_393", 0 - %"$$g_2_envptr_395" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_2_393", 1 - %"$t_396" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - %"$$g_2_call_397" = call %Uint32 %"$$g_2_fptr_394"(i8* %"$$g_2_envptr_395", %TName_List_ByStr20* %"$t_396"), !dbg !63 - store %Uint32 %"$$g_2_call_397", %Uint32* %"$g_3", align 4, !dbg !63 - %"$$g_3_398" = load %Uint32, %Uint32* %"$g_3", align 4 - store %Uint32 %"$$g_3_398", %Uint32* %"$retval_31", align 4, !dbg !63 - br label %"$matchsucc_351" - -"$Nil_399": ; preds = %"$have_gas_349" - %"$l_400" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* - %"$gasrem_401" = load i64, i64* @_gasrem, align 8 - %"$gascmp_402" = icmp ugt i64 1, %"$gasrem_401" - br i1 %"$gascmp_402", label %"$out_of_gas_403", label %"$have_gas_404" - -"$out_of_gas_403": ; preds = %"$Nil_399" - call void @_out_of_gas() - br label %"$have_gas_404" - -"$have_gas_404": ; preds = %"$out_of_gas_403", %"$Nil_399" - %"$consume_405" = sub i64 %"$gasrem_401", 1 - store i64 %"$consume_405", i64* @_gasrem, align 8 - %"$z_406" = load %Uint32, %Uint32* %z, align 4 - store %Uint32 %"$z_406", %Uint32* %"$retval_31", align 4, !dbg !64 - br label %"$matchsucc_351" - -"$empty_default_354": ; preds = %"$have_gas_349" - br label %"$matchsucc_351" - -"$matchsucc_351": ; preds = %"$have_gas_404", %"$have_gas_386", %"$empty_default_354" - %"$$retval_31_407" = load %Uint32, %Uint32* %"$retval_31", align 4 - ret %Uint32 %"$$retval_31_407" + %"$$g_2_384" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_2", align 8 + %"$$g_2_fptr_385" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_2_384", 0 + %"$$g_2_envptr_386" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_2_384", 1 + %"$t_387" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + %"$$g_2_call_388" = call %Uint32 %"$$g_2_fptr_385"(i8* %"$$g_2_envptr_386", %TName_List_ByStr20* %"$t_387"), !dbg !59 + store %Uint32 %"$$g_2_call_388", %Uint32* %"$g_3", align 4, !dbg !59 + %"$$g_3_389" = load %Uint32, %Uint32* %"$g_3", align 4 + store %Uint32 %"$$g_3_389", %Uint32* %"$retval_28", align 4, !dbg !59 + br label %"$matchsucc_342" + +"$Nil_390": ; preds = %"$have_gas_340" + %"$l_391" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* + %"$gasrem_392" = load i64, i64* @_gasrem, align 8 + %"$gascmp_393" = icmp ugt i64 1, %"$gasrem_392" + br i1 %"$gascmp_393", label %"$out_of_gas_394", label %"$have_gas_395" + +"$out_of_gas_394": ; preds = %"$Nil_390" + call void @_out_of_gas() + br label %"$have_gas_395" + +"$have_gas_395": ; preds = %"$out_of_gas_394", %"$Nil_390" + %"$consume_396" = sub i64 %"$gasrem_392", 1 + store i64 %"$consume_396", i64* @_gasrem, align 8 + %"$z_397" = load %Uint32, %Uint32* %z, align 4 + store %Uint32 %"$z_397", %Uint32* %"$retval_28", align 4, !dbg !60 + br label %"$matchsucc_342" + +"$empty_default_345": ; preds = %"$have_gas_340" + br label %"$matchsucc_342" + +"$matchsucc_342": ; preds = %"$have_gas_395", %"$have_gas_377", %"$empty_default_345" + %"$$retval_28_398" = load %Uint32, %Uint32* %"$retval_28", align 4 + ret %Uint32 %"$$retval_28_398" } -define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_28"(%"$$fundef_28_env_146"* %0, %Uint32 %1) !dbg !66 { +define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_25"(%"$$fundef_25_env_137"* %0, %Uint32 %1) !dbg !62 { entry: - %"$$fundef_28_env_f_321" = getelementptr inbounds %"$$fundef_28_env_146", %"$$fundef_28_env_146"* %0, i32 0, i32 0 - %"$f_envload_322" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_28_env_f_321", align 8 + %"$$fundef_25_env_f_312" = getelementptr inbounds %"$$fundef_25_env_137", %"$$fundef_25_env_137"* %0, i32 0, i32 0 + %"$f_envload_313" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_25_env_f_312", align 8 %f = alloca { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_322", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_28_env_g_323" = getelementptr inbounds %"$$fundef_28_env_146", %"$$fundef_28_env_146"* %0, i32 0, i32 1 - %"$g_envload_324" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_28_env_g_323", align 8 - %g = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_324", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$retval_29" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_325" = load i64, i64* @_gasrem, align 8 - %"$gascmp_326" = icmp ugt i64 1, %"$gasrem_325" - br i1 %"$gascmp_326", label %"$out_of_gas_327", label %"$have_gas_328" - -"$out_of_gas_327": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_328" - -"$have_gas_328": ; preds = %"$out_of_gas_327", %entry - %"$consume_329" = sub i64 %"$gasrem_325", 1 - store i64 %"$consume_329", i64* @_gasrem, align 8 - %"$$fundef_30_envp_330_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_30_envp_330_salloc" = call i8* @_salloc(i8* %"$$fundef_30_envp_330_load", i64 40) - %"$$fundef_30_envp_330" = bitcast i8* %"$$fundef_30_envp_330_salloc" to %"$$fundef_30_env_145"* - %"$$fundef_30_env_voidp_332" = bitcast %"$$fundef_30_env_145"* %"$$fundef_30_envp_330" to i8* - %"$$fundef_30_cloval_333" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_30_env_145"*, %TName_List_ByStr20*)* @"$fundef_30" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_30_env_voidp_332", 1 - %"$$fundef_30_env_f_334" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %"$$fundef_30_envp_330", i32 0, i32 0 - %"$f_335" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_335", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_30_env_f_334", align 8 - %"$$fundef_30_env_g_336" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %"$$fundef_30_envp_330", i32 0, i32 1 - %"$g_337" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_337", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_30_env_g_336", align 8 - %"$$fundef_30_env_z_338" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %"$$fundef_30_envp_330", i32 0, i32 2 - store %Uint32 %1, %Uint32* %"$$fundef_30_env_z_338", align 4 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_30_cloval_333", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_29", align 8, !dbg !67 - %"$$retval_29_339" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_29", align 8 - ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_29_339" -} - -define internal { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_26"(%"$$fundef_26_env_147"* %0, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !68 { -entry: - %"$retval_27" = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_302" = load i64, i64* @_gasrem, align 8 - %"$gascmp_303" = icmp ugt i64 1, %"$gasrem_302" - br i1 %"$gascmp_303", label %"$out_of_gas_304", label %"$have_gas_305" - -"$out_of_gas_304": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_305" - -"$have_gas_305": ; preds = %"$out_of_gas_304", %entry - %"$consume_306" = sub i64 %"$gasrem_302", 1 - store i64 %"$consume_306", i64* @_gasrem, align 8 - %"$gasrem_307" = load i64, i64* @_gasrem, align 8 - %"$gascmp_308" = icmp ugt i64 1, %"$gasrem_307" - br i1 %"$gascmp_308", label %"$out_of_gas_309", label %"$have_gas_310" - -"$out_of_gas_309": ; preds = %"$have_gas_305" - call void @_out_of_gas() - br label %"$have_gas_310" - -"$have_gas_310": ; preds = %"$out_of_gas_309", %"$have_gas_305" - %"$consume_311" = sub i64 %"$gasrem_307", 1 - store i64 %"$consume_311", i64* @_gasrem, align 8 - %"$$fundef_28_envp_312_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_28_envp_312_salloc" = call i8* @_salloc(i8* %"$$fundef_28_envp_312_load", i64 32) - %"$$fundef_28_envp_312" = bitcast i8* %"$$fundef_28_envp_312_salloc" to %"$$fundef_28_env_146"* - %"$$fundef_28_env_voidp_314" = bitcast %"$$fundef_28_env_146"* %"$$fundef_28_envp_312" to i8* - %"$$fundef_28_cloval_315" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_28_env_146"*, %Uint32)* @"$fundef_28" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_28_env_voidp_314", 1 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_313", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_25_env_g_314" = getelementptr inbounds %"$$fundef_25_env_137", %"$$fundef_25_env_137"* %0, i32 0, i32 1 + %"$g_envload_315" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_25_env_g_314", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_28_cloval_315", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !69 - %"$$fundef_28_env_f_316" = getelementptr inbounds %"$$fundef_28_env_146", %"$$fundef_28_env_146"* %"$$fundef_28_envp_312", i32 0, i32 0 - store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_28_env_f_316", align 8 - %"$$fundef_28_env_g_317" = getelementptr inbounds %"$$fundef_28_env_146", %"$$fundef_28_env_146"* %"$$fundef_28_envp_312", i32 0, i32 1 - %"$g_318" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_318", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_28_env_g_317", align 8 - %"$g_319" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_319", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_27", align 8, !dbg !69 - %"$$retval_27_320" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_27", align 8 - ret { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_27_320" + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_315", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$retval_26" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_316" = load i64, i64* @_gasrem, align 8 + %"$gascmp_317" = icmp ugt i64 1, %"$gasrem_316" + br i1 %"$gascmp_317", label %"$out_of_gas_318", label %"$have_gas_319" + +"$out_of_gas_318": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_319" + +"$have_gas_319": ; preds = %"$out_of_gas_318", %entry + %"$consume_320" = sub i64 %"$gasrem_316", 1 + store i64 %"$consume_320", i64* @_gasrem, align 8 + %"$$fundef_27_envp_321_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_27_envp_321_salloc" = call i8* @_salloc(i8* %"$$fundef_27_envp_321_load", i64 40) + %"$$fundef_27_envp_321" = bitcast i8* %"$$fundef_27_envp_321_salloc" to %"$$fundef_27_env_136"* + %"$$fundef_27_env_voidp_323" = bitcast %"$$fundef_27_env_136"* %"$$fundef_27_envp_321" to i8* + %"$$fundef_27_cloval_324" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_27_env_136"*, %TName_List_ByStr20*)* @"$fundef_27" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_27_env_voidp_323", 1 + %"$$fundef_27_env_f_325" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %"$$fundef_27_envp_321", i32 0, i32 0 + %"$f_326" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_326", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_27_env_f_325", align 8 + %"$$fundef_27_env_g_327" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %"$$fundef_27_envp_321", i32 0, i32 1 + %"$g_328" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_328", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_27_env_g_327", align 8 + %"$$fundef_27_env_z_329" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %"$$fundef_27_envp_321", i32 0, i32 2 + store %Uint32 %1, %Uint32* %"$$fundef_27_env_z_329", align 4 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_27_cloval_324", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_26", align 8, !dbg !63 + %"$$retval_26_330" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_26", align 8 + ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_26_330" } -define internal { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_24"(%"$$fundef_24_env_148"* %0) !dbg !70 { +define internal { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_23"(%"$$fundef_23_env_138"* %0, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !64 { entry: - %"$retval_25" = alloca { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$retval_24" = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_293" = load i64, i64* @_gasrem, align 8 %"$gascmp_294" = icmp ugt i64 1, %"$gasrem_293" br i1 %"$gascmp_294", label %"$out_of_gas_295", label %"$have_gas_296" @@ -1212,259 +1098,259 @@ entry: "$have_gas_296": ; preds = %"$out_of_gas_295", %entry %"$consume_297" = sub i64 %"$gasrem_293", 1 store i64 %"$consume_297", i64* @_gasrem, align 8 - store { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_26_env_147"*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_26" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_25", align 8, !dbg !71 - %"$$retval_25_301" = load { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_25", align 8 - ret { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_25_301" + %"$gasrem_298" = load i64, i64* @_gasrem, align 8 + %"$gascmp_299" = icmp ugt i64 1, %"$gasrem_298" + br i1 %"$gascmp_299", label %"$out_of_gas_300", label %"$have_gas_301" + +"$out_of_gas_300": ; preds = %"$have_gas_296" + call void @_out_of_gas() + br label %"$have_gas_301" + +"$have_gas_301": ; preds = %"$out_of_gas_300", %"$have_gas_296" + %"$consume_302" = sub i64 %"$gasrem_298", 1 + store i64 %"$consume_302", i64* @_gasrem, align 8 + %"$$fundef_25_envp_303_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_25_envp_303_salloc" = call i8* @_salloc(i8* %"$$fundef_25_envp_303_load", i64 32) + %"$$fundef_25_envp_303" = bitcast i8* %"$$fundef_25_envp_303_salloc" to %"$$fundef_25_env_137"* + %"$$fundef_25_env_voidp_305" = bitcast %"$$fundef_25_env_137"* %"$$fundef_25_envp_303" to i8* + %"$$fundef_25_cloval_306" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_25_env_137"*, %Uint32)* @"$fundef_25" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_25_env_voidp_305", 1 + %g = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_25_cloval_306", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !65 + %"$$fundef_25_env_f_307" = getelementptr inbounds %"$$fundef_25_env_137", %"$$fundef_25_env_137"* %"$$fundef_25_envp_303", i32 0, i32 0 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_25_env_f_307", align 8 + %"$$fundef_25_env_g_308" = getelementptr inbounds %"$$fundef_25_env_137", %"$$fundef_25_env_137"* %"$$fundef_25_envp_303", i32 0, i32 1 + %"$g_309" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_309", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_25_env_g_308", align 8 + %"$g_310" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_310", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_24", align 8, !dbg !65 + %"$$retval_24_311" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_24", align 8 + ret { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_24_311" } -define internal { i8*, i8* }* @"$fundef_22"(%"$$fundef_22_env_149"* %0) !dbg !72 { +define internal { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_21"(%"$$fundef_21_env_139"* %0) !dbg !66 { entry: - %"$retval_23" = alloca { i8*, i8* }*, align 8 - %"$gasrem_281" = load i64, i64* @_gasrem, align 8 - %"$gascmp_282" = icmp ugt i64 1, %"$gasrem_281" - br i1 %"$gascmp_282", label %"$out_of_gas_283", label %"$have_gas_284" - -"$out_of_gas_283": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_284" - -"$have_gas_284": ; preds = %"$out_of_gas_283", %entry - %"$consume_285" = sub i64 %"$gasrem_281", 1 - store i64 %"$consume_285", i64* @_gasrem, align 8 - %"$dyndisp_table_289_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_289_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_289_salloc_load", i64 48) - %"$dyndisp_table_289_salloc" = bitcast i8* %"$dyndisp_table_289_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_289" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_289_salloc" to { i8*, i8* }* - %"$dyndisp_gep_290" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_289", i32 1 - %"$dyndisp_pcast_291" = bitcast { i8*, i8* }* %"$dyndisp_gep_290" to { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_24_env_148"*)* @"$fundef_24" to { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_291", align 8 - store { i8*, i8* }* %"$dyndisp_table_289", { i8*, i8* }** %"$retval_23", align 8, !dbg !73 - %"$$retval_23_292" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_23", align 8 - ret { i8*, i8* }* %"$$retval_23_292" + %"$retval_22" = alloca { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_284" = load i64, i64* @_gasrem, align 8 + %"$gascmp_285" = icmp ugt i64 1, %"$gasrem_284" + br i1 %"$gascmp_285", label %"$out_of_gas_286", label %"$have_gas_287" + +"$out_of_gas_286": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_287" + +"$have_gas_287": ; preds = %"$out_of_gas_286", %entry + %"$consume_288" = sub i64 %"$gasrem_284", 1 + store i64 %"$consume_288", i64* @_gasrem, align 8 + store { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_23_env_138"*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_23" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_22", align 8, !dbg !67 + %"$$retval_22_292" = load { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_22", align 8 + ret { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_22_292" +} + +define internal { i8*, i8* }* @"$fundef_19"(%"$$fundef_19_env_140"* %0) !dbg !68 { +entry: + %"$retval_20" = alloca { i8*, i8* }*, align 8 + %"$gasrem_272" = load i64, i64* @_gasrem, align 8 + %"$gascmp_273" = icmp ugt i64 1, %"$gasrem_272" + br i1 %"$gascmp_273", label %"$out_of_gas_274", label %"$have_gas_275" + +"$out_of_gas_274": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_275" + +"$have_gas_275": ; preds = %"$out_of_gas_274", %entry + %"$consume_276" = sub i64 %"$gasrem_272", 1 + store i64 %"$consume_276", i64* @_gasrem, align 8 + %"$dyndisp_table_280_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_280_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_280_salloc_load", i64 48) + %"$dyndisp_table_280_salloc" = bitcast i8* %"$dyndisp_table_280_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_280" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_280_salloc" to { i8*, i8* }* + %"$dyndisp_gep_281" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_280", i32 1 + %"$dyndisp_pcast_282" = bitcast { i8*, i8* }* %"$dyndisp_gep_281" to { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_21_env_139"*)* @"$fundef_21" to { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_282", align 8 + store { i8*, i8* }* %"$dyndisp_table_280", { i8*, i8* }** %"$retval_20", align 8, !dbg !69 + %"$$retval_20_283" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_20", align 8 + ret { i8*, i8* }* %"$$retval_20_283" } -define internal %Uint32 @"$fundef_20"(%"$$fundef_20_env_150"* %0, %TName_List_String* %1) !dbg !74 { +define internal %Uint32 @"$fundef_17"(%"$$fundef_17_env_141"* %0, %TName_List_String* %1) !dbg !70 { entry: - %"$$fundef_20_env_f_214" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %0, i32 0, i32 0 - %"$f_envload_215" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_20_env_f_214", align 8 + %"$$fundef_17_env_f_205" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %0, i32 0, i32 0 + %"$f_envload_206" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_17_env_f_205", align 8 %f = alloca { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_215", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_20_env_g_216" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %0, i32 0, i32 1 - %"$g_envload_217" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_20_env_g_216", align 8 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_206", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_17_env_g_207" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %0, i32 0, i32 1 + %"$g_envload_208" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_17_env_g_207", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_217", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_20_env_z_218" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %0, i32 0, i32 2 - %"$z_envload_219" = load %Uint32, %Uint32* %"$$fundef_20_env_z_218", align 4 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_208", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_17_env_z_209" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %0, i32 0, i32 2 + %"$z_envload_210" = load %Uint32, %Uint32* %"$$fundef_17_env_z_209", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_219", %Uint32* %z, align 4 - %"$retval_21" = alloca %Uint32, align 8 - %"$gasrem_220" = load i64, i64* @_gasrem, align 8 - %"$gascmp_221" = icmp ugt i64 2, %"$gasrem_220" - br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" - -"$out_of_gas_222": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_223" - -"$have_gas_223": ; preds = %"$out_of_gas_222", %entry - %"$consume_224" = sub i64 %"$gasrem_220", 2 - store i64 %"$consume_224", i64* @_gasrem, align 8 - %"$l_tag_226" = getelementptr inbounds %TName_List_String, %TName_List_String* %1, i32 0, i32 0 - %"$l_tag_227" = load i8, i8* %"$l_tag_226", align 1 - switch i8 %"$l_tag_227", label %"$empty_default_228" [ - i8 0, label %"$Cons_229" - i8 1, label %"$Nil_272" - ], !dbg !75 - -"$Cons_229": ; preds = %"$have_gas_223" - %"$l_230" = bitcast %TName_List_String* %1 to %CName_Cons_String* - %"$h_gep_231" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_230", i32 0, i32 1 - %"$h_load_232" = load %String, %String* %"$h_gep_231", align 8 + store %Uint32 %"$z_envload_210", %Uint32* %z, align 4 + %"$retval_18" = alloca %Uint32, align 8 + %"$gasrem_211" = load i64, i64* @_gasrem, align 8 + %"$gascmp_212" = icmp ugt i64 2, %"$gasrem_211" + br i1 %"$gascmp_212", label %"$out_of_gas_213", label %"$have_gas_214" + +"$out_of_gas_213": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_214" + +"$have_gas_214": ; preds = %"$out_of_gas_213", %entry + %"$consume_215" = sub i64 %"$gasrem_211", 2 + store i64 %"$consume_215", i64* @_gasrem, align 8 + %"$l_tag_217" = getelementptr inbounds %TName_List_String, %TName_List_String* %1, i32 0, i32 0 + %"$l_tag_218" = load i8, i8* %"$l_tag_217", align 1 + switch i8 %"$l_tag_218", label %"$empty_default_219" [ + i8 0, label %"$Cons_220" + i8 1, label %"$Nil_263" + ], !dbg !71 + +"$Cons_220": ; preds = %"$have_gas_214" + %"$l_221" = bitcast %TName_List_String* %1 to %CName_Cons_String* + %"$h_gep_222" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_221", i32 0, i32 1 + %"$h_load_223" = load %String, %String* %"$h_gep_222", align 8 %h = alloca %String, align 8 - store %String %"$h_load_232", %String* %h, align 8 - %"$t_gep_233" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_230", i32 0, i32 2 - %"$t_load_234" = load %TName_List_String*, %TName_List_String** %"$t_gep_233", align 8 + store %String %"$h_load_223", %String* %h, align 8 + %"$t_gep_224" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_221", i32 0, i32 2 + %"$t_load_225" = load %TName_List_String*, %TName_List_String** %"$t_gep_224", align 8 %t = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$t_load_234", %TName_List_String** %t, align 8 - %"$gasrem_235" = load i64, i64* @_gasrem, align 8 - %"$gascmp_236" = icmp ugt i64 1, %"$gasrem_235" - br i1 %"$gascmp_236", label %"$out_of_gas_237", label %"$have_gas_238" + store %TName_List_String* %"$t_load_225", %TName_List_String** %t, align 8 + %"$gasrem_226" = load i64, i64* @_gasrem, align 8 + %"$gascmp_227" = icmp ugt i64 1, %"$gasrem_226" + br i1 %"$gascmp_227", label %"$out_of_gas_228", label %"$have_gas_229" -"$out_of_gas_237": ; preds = %"$Cons_229" +"$out_of_gas_228": ; preds = %"$Cons_220" call void @_out_of_gas() - br label %"$have_gas_238" + br label %"$have_gas_229" -"$have_gas_238": ; preds = %"$out_of_gas_237", %"$Cons_229" - %"$consume_239" = sub i64 %"$gasrem_235", 1 - store i64 %"$consume_239", i64* @_gasrem, align 8 +"$have_gas_229": ; preds = %"$out_of_gas_228", %"$Cons_220" + %"$consume_230" = sub i64 %"$gasrem_226", 1 + store i64 %"$consume_230", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$gasrem_240" = load i64, i64* @_gasrem, align 8 - %"$gascmp_241" = icmp ugt i64 1, %"$gasrem_240" - br i1 %"$gascmp_241", label %"$out_of_gas_242", label %"$have_gas_243" + %"$gasrem_231" = load i64, i64* @_gasrem, align 8 + %"$gascmp_232" = icmp ugt i64 1, %"$gasrem_231" + br i1 %"$gascmp_232", label %"$out_of_gas_233", label %"$have_gas_234" -"$out_of_gas_242": ; preds = %"$have_gas_238" +"$out_of_gas_233": ; preds = %"$have_gas_229" call void @_out_of_gas() - br label %"$have_gas_243" + br label %"$have_gas_234" -"$have_gas_243": ; preds = %"$out_of_gas_242", %"$have_gas_238" - %"$consume_244" = sub i64 %"$gasrem_240", 1 - store i64 %"$consume_244", i64* @_gasrem, align 8 +"$have_gas_234": ; preds = %"$out_of_gas_233", %"$have_gas_229" + %"$consume_235" = sub i64 %"$gasrem_231", 1 + store i64 %"$consume_235", i64* @_gasrem, align 8 %"$f_0" = alloca { %Uint32 (i8*, %String)*, i8* }, align 8 - %"$f_245" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$f_fptr_246" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_245", 0 - %"$f_envptr_247" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_245", 1 - %"$z_248" = load %Uint32, %Uint32* %z, align 4 - %"$f_call_249" = call { %Uint32 (i8*, %String)*, i8* } %"$f_fptr_246"(i8* %"$f_envptr_247", %Uint32 %"$z_248"), !dbg !76 - store { %Uint32 (i8*, %String)*, i8* } %"$f_call_249", { %Uint32 (i8*, %String)*, i8* }* %"$f_0", align 8, !dbg !76 + %"$f_236" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$f_fptr_237" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_236", 0 + %"$f_envptr_238" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_236", 1 + %"$z_239" = load %Uint32, %Uint32* %z, align 4 + %"$f_call_240" = call { %Uint32 (i8*, %String)*, i8* } %"$f_fptr_237"(i8* %"$f_envptr_238", %Uint32 %"$z_239"), !dbg !72 + store { %Uint32 (i8*, %String)*, i8* } %"$f_call_240", { %Uint32 (i8*, %String)*, i8* }* %"$f_0", align 8, !dbg !72 %"$f_1" = alloca %Uint32, align 8 - %"$$f_0_250" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$f_0", align 8 - %"$$f_0_fptr_251" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_0_250", 0 - %"$$f_0_envptr_252" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_0_250", 1 - %"$h_253" = load %String, %String* %h, align 8 - %"$$f_0_call_254" = call %Uint32 %"$$f_0_fptr_251"(i8* %"$$f_0_envptr_252", %String %"$h_253"), !dbg !76 - store %Uint32 %"$$f_0_call_254", %Uint32* %"$f_1", align 4, !dbg !76 - %"$$f_1_255" = load %Uint32, %Uint32* %"$f_1", align 4 - store %Uint32 %"$$f_1_255", %Uint32* %res, align 4, !dbg !76 - %"$gasrem_256" = load i64, i64* @_gasrem, align 8 - %"$gascmp_257" = icmp ugt i64 1, %"$gasrem_256" - br i1 %"$gascmp_257", label %"$out_of_gas_258", label %"$have_gas_259" - -"$out_of_gas_258": ; preds = %"$have_gas_243" - call void @_out_of_gas() - br label %"$have_gas_259" - -"$have_gas_259": ; preds = %"$out_of_gas_258", %"$have_gas_243" - %"$consume_260" = sub i64 %"$gasrem_256", 1 - store i64 %"$consume_260", i64* @_gasrem, align 8 + %"$$f_0_241" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$f_0", align 8 + %"$$f_0_fptr_242" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_0_241", 0 + %"$$f_0_envptr_243" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_0_241", 1 + %"$h_244" = load %String, %String* %h, align 8 + %"$$f_0_call_245" = call %Uint32 %"$$f_0_fptr_242"(i8* %"$$f_0_envptr_243", %String %"$h_244"), !dbg !72 + store %Uint32 %"$$f_0_call_245", %Uint32* %"$f_1", align 4, !dbg !72 + %"$$f_1_246" = load %Uint32, %Uint32* %"$f_1", align 4 + store %Uint32 %"$$f_1_246", %Uint32* %res, align 4, !dbg !72 + %"$gasrem_247" = load i64, i64* @_gasrem, align 8 + %"$gascmp_248" = icmp ugt i64 1, %"$gasrem_247" + br i1 %"$gascmp_248", label %"$out_of_gas_249", label %"$have_gas_250" + +"$out_of_gas_249": ; preds = %"$have_gas_234" + call void @_out_of_gas() + br label %"$have_gas_250" + +"$have_gas_250": ; preds = %"$out_of_gas_249", %"$have_gas_234" + %"$consume_251" = sub i64 %"$gasrem_247", 1 + store i64 %"$consume_251", i64* @_gasrem, align 8 %"$g_2" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$g_261" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_262" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_261", 0 - %"$g_envptr_263" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_261", 1 - %"$res_264" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_265" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_fptr_262"(i8* %"$g_envptr_263", %Uint32 %"$res_264"), !dbg !79 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_call_265", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_2", align 8, !dbg !79 + %"$g_252" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_253" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_252", 0 + %"$g_envptr_254" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_252", 1 + %"$res_255" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_256" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_fptr_253"(i8* %"$g_envptr_254", %Uint32 %"$res_255"), !dbg !75 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_call_256", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_2", align 8, !dbg !75 %"$g_3" = alloca %Uint32, align 8 - %"$$g_2_266" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_2", align 8 - %"$$g_2_fptr_267" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_2_266", 0 - %"$$g_2_envptr_268" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_2_266", 1 - %"$t_269" = load %TName_List_String*, %TName_List_String** %t, align 8 - %"$$g_2_call_270" = call %Uint32 %"$$g_2_fptr_267"(i8* %"$$g_2_envptr_268", %TName_List_String* %"$t_269"), !dbg !79 - store %Uint32 %"$$g_2_call_270", %Uint32* %"$g_3", align 4, !dbg !79 - %"$$g_3_271" = load %Uint32, %Uint32* %"$g_3", align 4 - store %Uint32 %"$$g_3_271", %Uint32* %"$retval_21", align 4, !dbg !79 - br label %"$matchsucc_225" - -"$Nil_272": ; preds = %"$have_gas_223" - %"$l_273" = bitcast %TName_List_String* %1 to %CName_Nil_String* - %"$gasrem_274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_275" = icmp ugt i64 1, %"$gasrem_274" - br i1 %"$gascmp_275", label %"$out_of_gas_276", label %"$have_gas_277" - -"$out_of_gas_276": ; preds = %"$Nil_272" - call void @_out_of_gas() - br label %"$have_gas_277" - -"$have_gas_277": ; preds = %"$out_of_gas_276", %"$Nil_272" - %"$consume_278" = sub i64 %"$gasrem_274", 1 - store i64 %"$consume_278", i64* @_gasrem, align 8 - %"$z_279" = load %Uint32, %Uint32* %z, align 4 - store %Uint32 %"$z_279", %Uint32* %"$retval_21", align 4, !dbg !80 - br label %"$matchsucc_225" - -"$empty_default_228": ; preds = %"$have_gas_223" - br label %"$matchsucc_225" - -"$matchsucc_225": ; preds = %"$have_gas_277", %"$have_gas_259", %"$empty_default_228" - %"$$retval_21_280" = load %Uint32, %Uint32* %"$retval_21", align 4 - ret %Uint32 %"$$retval_21_280" + %"$$g_2_257" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_2", align 8 + %"$$g_2_fptr_258" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_2_257", 0 + %"$$g_2_envptr_259" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_2_257", 1 + %"$t_260" = load %TName_List_String*, %TName_List_String** %t, align 8 + %"$$g_2_call_261" = call %Uint32 %"$$g_2_fptr_258"(i8* %"$$g_2_envptr_259", %TName_List_String* %"$t_260"), !dbg !75 + store %Uint32 %"$$g_2_call_261", %Uint32* %"$g_3", align 4, !dbg !75 + %"$$g_3_262" = load %Uint32, %Uint32* %"$g_3", align 4 + store %Uint32 %"$$g_3_262", %Uint32* %"$retval_18", align 4, !dbg !75 + br label %"$matchsucc_216" + +"$Nil_263": ; preds = %"$have_gas_214" + %"$l_264" = bitcast %TName_List_String* %1 to %CName_Nil_String* + %"$gasrem_265" = load i64, i64* @_gasrem, align 8 + %"$gascmp_266" = icmp ugt i64 1, %"$gasrem_265" + br i1 %"$gascmp_266", label %"$out_of_gas_267", label %"$have_gas_268" + +"$out_of_gas_267": ; preds = %"$Nil_263" + call void @_out_of_gas() + br label %"$have_gas_268" + +"$have_gas_268": ; preds = %"$out_of_gas_267", %"$Nil_263" + %"$consume_269" = sub i64 %"$gasrem_265", 1 + store i64 %"$consume_269", i64* @_gasrem, align 8 + %"$z_270" = load %Uint32, %Uint32* %z, align 4 + store %Uint32 %"$z_270", %Uint32* %"$retval_18", align 4, !dbg !76 + br label %"$matchsucc_216" + +"$empty_default_219": ; preds = %"$have_gas_214" + br label %"$matchsucc_216" + +"$matchsucc_216": ; preds = %"$have_gas_268", %"$have_gas_250", %"$empty_default_219" + %"$$retval_18_271" = load %Uint32, %Uint32* %"$retval_18", align 4 + ret %Uint32 %"$$retval_18_271" } -define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_18"(%"$$fundef_18_env_151"* %0, %Uint32 %1) !dbg !82 { +define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_15"(%"$$fundef_15_env_142"* %0, %Uint32 %1) !dbg !78 { entry: - %"$$fundef_18_env_f_195" = getelementptr inbounds %"$$fundef_18_env_151", %"$$fundef_18_env_151"* %0, i32 0, i32 0 - %"$f_envload_196" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_18_env_f_195", align 8 + %"$$fundef_15_env_f_186" = getelementptr inbounds %"$$fundef_15_env_142", %"$$fundef_15_env_142"* %0, i32 0, i32 0 + %"$f_envload_187" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_15_env_f_186", align 8 %f = alloca { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_196", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_18_env_g_197" = getelementptr inbounds %"$$fundef_18_env_151", %"$$fundef_18_env_151"* %0, i32 0, i32 1 - %"$g_envload_198" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_18_env_g_197", align 8 - %g = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_198", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$retval_19" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$gasrem_199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_200" = icmp ugt i64 1, %"$gasrem_199" - br i1 %"$gascmp_200", label %"$out_of_gas_201", label %"$have_gas_202" - -"$out_of_gas_201": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_202" - -"$have_gas_202": ; preds = %"$out_of_gas_201", %entry - %"$consume_203" = sub i64 %"$gasrem_199", 1 - store i64 %"$consume_203", i64* @_gasrem, align 8 - %"$$fundef_20_envp_204_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_20_envp_204_salloc" = call i8* @_salloc(i8* %"$$fundef_20_envp_204_load", i64 40) - %"$$fundef_20_envp_204" = bitcast i8* %"$$fundef_20_envp_204_salloc" to %"$$fundef_20_env_150"* - %"$$fundef_20_env_voidp_206" = bitcast %"$$fundef_20_env_150"* %"$$fundef_20_envp_204" to i8* - %"$$fundef_20_cloval_207" = insertvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } { %Uint32 (i8*, %TName_List_String*)* bitcast (%Uint32 (%"$$fundef_20_env_150"*, %TName_List_String*)* @"$fundef_20" to %Uint32 (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_20_env_voidp_206", 1 - %"$$fundef_20_env_f_208" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %"$$fundef_20_envp_204", i32 0, i32 0 - %"$f_209" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_209", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_20_env_f_208", align 8 - %"$$fundef_20_env_g_210" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %"$$fundef_20_envp_204", i32 0, i32 1 - %"$g_211" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_211", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_20_env_g_210", align 8 - %"$$fundef_20_env_z_212" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %"$$fundef_20_envp_204", i32 0, i32 2 - store %Uint32 %1, %Uint32* %"$$fundef_20_env_z_212", align 4 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_20_cloval_207", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_19", align 8, !dbg !83 - %"$$retval_19_213" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_19", align 8 - ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_19_213" -} - -define internal { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_16"(%"$$fundef_16_env_152"* %0, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !84 { -entry: - %"$retval_17" = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_176" = load i64, i64* @_gasrem, align 8 - %"$gascmp_177" = icmp ugt i64 1, %"$gasrem_176" - br i1 %"$gascmp_177", label %"$out_of_gas_178", label %"$have_gas_179" - -"$out_of_gas_178": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_179" - -"$have_gas_179": ; preds = %"$out_of_gas_178", %entry - %"$consume_180" = sub i64 %"$gasrem_176", 1 - store i64 %"$consume_180", i64* @_gasrem, align 8 - %"$gasrem_181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_182" = icmp ugt i64 1, %"$gasrem_181" - br i1 %"$gascmp_182", label %"$out_of_gas_183", label %"$have_gas_184" - -"$out_of_gas_183": ; preds = %"$have_gas_179" - call void @_out_of_gas() - br label %"$have_gas_184" - -"$have_gas_184": ; preds = %"$out_of_gas_183", %"$have_gas_179" - %"$consume_185" = sub i64 %"$gasrem_181", 1 - store i64 %"$consume_185", i64* @_gasrem, align 8 - %"$$fundef_18_envp_186_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_18_envp_186_salloc" = call i8* @_salloc(i8* %"$$fundef_18_envp_186_load", i64 32) - %"$$fundef_18_envp_186" = bitcast i8* %"$$fundef_18_envp_186_salloc" to %"$$fundef_18_env_151"* - %"$$fundef_18_env_voidp_188" = bitcast %"$$fundef_18_env_151"* %"$$fundef_18_envp_186" to i8* - %"$$fundef_18_cloval_189" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_18_env_151"*, %Uint32)* @"$fundef_18" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_18_env_voidp_188", 1 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_187", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_15_env_g_188" = getelementptr inbounds %"$$fundef_15_env_142", %"$$fundef_15_env_142"* %0, i32 0, i32 1 + %"$g_envload_189" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_15_env_g_188", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_18_cloval_189", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !85 - %"$$fundef_18_env_f_190" = getelementptr inbounds %"$$fundef_18_env_151", %"$$fundef_18_env_151"* %"$$fundef_18_envp_186", i32 0, i32 0 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_18_env_f_190", align 8 - %"$$fundef_18_env_g_191" = getelementptr inbounds %"$$fundef_18_env_151", %"$$fundef_18_env_151"* %"$$fundef_18_envp_186", i32 0, i32 1 - %"$g_192" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_192", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_18_env_g_191", align 8 - %"$g_193" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_193", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_17", align 8, !dbg !85 - %"$$retval_17_194" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_17", align 8 - ret { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_17_194" + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_189", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$retval_16" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 + %"$gasrem_190" = load i64, i64* @_gasrem, align 8 + %"$gascmp_191" = icmp ugt i64 1, %"$gasrem_190" + br i1 %"$gascmp_191", label %"$out_of_gas_192", label %"$have_gas_193" + +"$out_of_gas_192": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_193" + +"$have_gas_193": ; preds = %"$out_of_gas_192", %entry + %"$consume_194" = sub i64 %"$gasrem_190", 1 + store i64 %"$consume_194", i64* @_gasrem, align 8 + %"$$fundef_17_envp_195_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_17_envp_195_salloc" = call i8* @_salloc(i8* %"$$fundef_17_envp_195_load", i64 40) + %"$$fundef_17_envp_195" = bitcast i8* %"$$fundef_17_envp_195_salloc" to %"$$fundef_17_env_141"* + %"$$fundef_17_env_voidp_197" = bitcast %"$$fundef_17_env_141"* %"$$fundef_17_envp_195" to i8* + %"$$fundef_17_cloval_198" = insertvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } { %Uint32 (i8*, %TName_List_String*)* bitcast (%Uint32 (%"$$fundef_17_env_141"*, %TName_List_String*)* @"$fundef_17" to %Uint32 (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_17_env_voidp_197", 1 + %"$$fundef_17_env_f_199" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %"$$fundef_17_envp_195", i32 0, i32 0 + %"$f_200" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_200", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_17_env_f_199", align 8 + %"$$fundef_17_env_g_201" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %"$$fundef_17_envp_195", i32 0, i32 1 + %"$g_202" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_202", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_17_env_g_201", align 8 + %"$$fundef_17_env_z_203" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %"$$fundef_17_envp_195", i32 0, i32 2 + store %Uint32 %1, %Uint32* %"$$fundef_17_env_z_203", align 4 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_17_cloval_198", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_16", align 8, !dbg !79 + %"$$retval_16_204" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_16", align 8 + ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_16_204" } -define internal { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_14"(%"$$fundef_14_env_153"* %0) !dbg !86 { +define internal { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_13"(%"$$fundef_13_env_143"* %0, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %1) !dbg !80 { entry: - %"$retval_15" = alloca { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$retval_14" = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_167" = load i64, i64* @_gasrem, align 8 %"$gascmp_168" = icmp ugt i64 1, %"$gasrem_167" br i1 %"$gascmp_168", label %"$out_of_gas_169", label %"$have_gas_170" @@ -1476,35 +1362,78 @@ entry: "$have_gas_170": ; preds = %"$out_of_gas_169", %entry %"$consume_171" = sub i64 %"$gasrem_167", 1 store i64 %"$consume_171", i64* @_gasrem, align 8 - store { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_16_env_152"*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_16" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_15", align 8, !dbg !87 - %"$$retval_15_175" = load { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_15", align 8 - ret { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_15_175" + %"$gasrem_172" = load i64, i64* @_gasrem, align 8 + %"$gascmp_173" = icmp ugt i64 1, %"$gasrem_172" + br i1 %"$gascmp_173", label %"$out_of_gas_174", label %"$have_gas_175" + +"$out_of_gas_174": ; preds = %"$have_gas_170" + call void @_out_of_gas() + br label %"$have_gas_175" + +"$have_gas_175": ; preds = %"$out_of_gas_174", %"$have_gas_170" + %"$consume_176" = sub i64 %"$gasrem_172", 1 + store i64 %"$consume_176", i64* @_gasrem, align 8 + %"$$fundef_15_envp_177_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_15_envp_177_salloc" = call i8* @_salloc(i8* %"$$fundef_15_envp_177_load", i64 32) + %"$$fundef_15_envp_177" = bitcast i8* %"$$fundef_15_envp_177_salloc" to %"$$fundef_15_env_142"* + %"$$fundef_15_env_voidp_179" = bitcast %"$$fundef_15_env_142"* %"$$fundef_15_envp_177" to i8* + %"$$fundef_15_cloval_180" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_15_env_142"*, %Uint32)* @"$fundef_15" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_15_env_voidp_179", 1 + %g = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_15_cloval_180", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8, !dbg !81 + %"$$fundef_15_env_f_181" = getelementptr inbounds %"$$fundef_15_env_142", %"$$fundef_15_env_142"* %"$$fundef_15_envp_177", i32 0, i32 0 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_15_env_f_181", align 8 + %"$$fundef_15_env_g_182" = getelementptr inbounds %"$$fundef_15_env_142", %"$$fundef_15_env_142"* %"$$fundef_15_envp_177", i32 0, i32 1 + %"$g_183" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_183", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_15_env_g_182", align 8 + %"$g_184" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_184", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_14", align 8, !dbg !81 + %"$$retval_14_185" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_14", align 8 + ret { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_14_185" +} + +define internal { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_11"(%"$$fundef_11_env_144"* %0) !dbg !82 { +entry: + %"$retval_12" = alloca { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_158" = load i64, i64* @_gasrem, align 8 + %"$gascmp_159" = icmp ugt i64 1, %"$gasrem_158" + br i1 %"$gascmp_159", label %"$out_of_gas_160", label %"$have_gas_161" + +"$out_of_gas_160": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_161" + +"$have_gas_161": ; preds = %"$out_of_gas_160", %entry + %"$consume_162" = sub i64 %"$gasrem_158", 1 + store i64 %"$consume_162", i64* @_gasrem, align 8 + store { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_13_env_143"*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_13" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_12", align 8, !dbg !83 + %"$$retval_12_166" = load { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_12", align 8 + ret { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_12_166" } -define internal { i8*, i8* }* @"$fundef_12"(%"$$fundef_12_env_154"* %0) !dbg !88 { +define internal { i8*, i8* }* @"$fundef_9"(%"$$fundef_9_env_145"* %0) !dbg !84 { entry: - %"$retval_13" = alloca { i8*, i8* }*, align 8 - %"$gasrem_155" = load i64, i64* @_gasrem, align 8 - %"$gascmp_156" = icmp ugt i64 1, %"$gasrem_155" - br i1 %"$gascmp_156", label %"$out_of_gas_157", label %"$have_gas_158" - -"$out_of_gas_157": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_158" - -"$have_gas_158": ; preds = %"$out_of_gas_157", %entry - %"$consume_159" = sub i64 %"$gasrem_155", 1 - store i64 %"$consume_159", i64* @_gasrem, align 8 - %"$dyndisp_table_163_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_163_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_163_salloc_load", i64 48) - %"$dyndisp_table_163_salloc" = bitcast i8* %"$dyndisp_table_163_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_163" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_163_salloc" to { i8*, i8* }* - %"$dyndisp_gep_164" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_163", i32 1 - %"$dyndisp_pcast_165" = bitcast { i8*, i8* }* %"$dyndisp_gep_164" to { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_14_env_153"*)* @"$fundef_14" to { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_165", align 8 - store { i8*, i8* }* %"$dyndisp_table_163", { i8*, i8* }** %"$retval_13", align 8, !dbg !89 - %"$$retval_13_166" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_13", align 8 - ret { i8*, i8* }* %"$$retval_13_166" + %"$retval_10" = alloca { i8*, i8* }*, align 8 + %"$gasrem_146" = load i64, i64* @_gasrem, align 8 + %"$gascmp_147" = icmp ugt i64 1, %"$gasrem_146" + br i1 %"$gascmp_147", label %"$out_of_gas_148", label %"$have_gas_149" + +"$out_of_gas_148": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_149" + +"$have_gas_149": ; preds = %"$out_of_gas_148", %entry + %"$consume_150" = sub i64 %"$gasrem_146", 1 + store i64 %"$consume_150", i64* @_gasrem, align 8 + %"$dyndisp_table_154_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_154_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_154_salloc_load", i64 48) + %"$dyndisp_table_154_salloc" = bitcast i8* %"$dyndisp_table_154_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_154" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_154_salloc" to { i8*, i8* }* + %"$dyndisp_gep_155" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_154", i32 1 + %"$dyndisp_pcast_156" = bitcast { i8*, i8* }* %"$dyndisp_gep_155" to { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_11_env_144"*)* @"$fundef_11" to { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_156", align 8 + store { i8*, i8* }* %"$dyndisp_table_154", { i8*, i8* }** %"$retval_10", align 8, !dbg !85 + %"$$retval_10_157" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_10", align 8 + ret { i8*, i8* }* %"$$retval_10_157" } declare void @_out_of_gas() @@ -1513,427 +1442,412 @@ declare i8* @_salloc(i8*, i64) declare %Uint32 @_add_Uint32(%Uint32, %Uint32) -define void @_init_libs() !dbg !90 { +define void @_init_libs() !dbg !86 { entry: - %"$gasrem_810" = load i64, i64* @_gasrem, align 8 - %"$gascmp_811" = icmp ugt i64 1, %"$gasrem_810" - br i1 %"$gascmp_811", label %"$out_of_gas_812", label %"$have_gas_813" - -"$out_of_gas_812": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_813" - -"$have_gas_813": ; preds = %"$out_of_gas_812", %entry - %"$consume_814" = sub i64 %"$gasrem_810", 1 - store i64 %"$consume_814", i64* @_gasrem, align 8 - %"$dyndisp_table_821_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_821_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_821_salloc_load", i64 48) - %"$dyndisp_table_821_salloc" = bitcast i8* %"$dyndisp_table_821_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_821" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_821_salloc" to { i8*, i8* }* - %"$dyndisp_gep_822" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_821", i32 0 - %"$dyndisp_pcast_823" = bitcast { i8*, i8* }* %"$dyndisp_gep_822" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_12_env_154"*)* @"$fundef_12" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_823", align 8 - %"$dyndisp_gep_824" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_821", i32 2 - %"$dyndisp_pcast_825" = bitcast { i8*, i8* }* %"$dyndisp_gep_824" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_22_env_149"*)* @"$fundef_22" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_825", align 8 - store { i8*, i8* }* %"$dyndisp_table_821", { i8*, i8* }** @list_foldl, align 8, !dbg !92 - %"$gasrem_826" = load i64, i64* @_gasrem, align 8 - %"$gascmp_827" = icmp ugt i64 1, %"$gasrem_826" - br i1 %"$gascmp_827", label %"$out_of_gas_828", label %"$have_gas_829" - -"$out_of_gas_828": ; preds = %"$have_gas_813" - call void @_out_of_gas() - br label %"$have_gas_829" - -"$have_gas_829": ; preds = %"$out_of_gas_828", %"$have_gas_813" - %"$consume_830" = sub i64 %"$gasrem_826", 1 - store i64 %"$consume_830", i64* @_gasrem, align 8 - %"$$fundef_32_envp_831_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_32_envp_831_salloc" = call i8* @_salloc(i8* %"$$fundef_32_envp_831_load", i64 8) - %"$$fundef_32_envp_831" = bitcast i8* %"$$fundef_32_envp_831_salloc" to %"$$fundef_32_env_144"* - %"$$fundef_32_env_voidp_833" = bitcast %"$$fundef_32_env_144"* %"$$fundef_32_envp_831" to i8* - %"$$fundef_32_cloval_834" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_32_env_144"*)* @"$fundef_32" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_32_env_voidp_833", 1 - %"$$fundef_32_env_list_foldl_835" = getelementptr inbounds %"$$fundef_32_env_144", %"$$fundef_32_env_144"* %"$$fundef_32_envp_831", i32 0, i32 0 - %"$list_foldl_836" = load { i8*, i8* }*, { i8*, i8* }** @list_foldl, align 8 - store { i8*, i8* }* %"$list_foldl_836", { i8*, i8* }** %"$$fundef_32_env_list_foldl_835", align 8 - %"$$fundef_38_env_voidp_838" = bitcast %"$$fundef_32_env_144"* %"$$fundef_32_envp_831" to i8* - %"$$fundef_38_cloval_839" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_38_env_141"*)* @"$fundef_38" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_38_env_voidp_838", 1 - %"$dyndisp_table_840_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_840_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_840_salloc_load", i64 48) - %"$dyndisp_table_840_salloc" = bitcast i8* %"$dyndisp_table_840_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_840" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_840_salloc" to { i8*, i8* }* - %"$dyndisp_gep_841" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_840", i32 0 - %"$dyndisp_pcast_842" = bitcast { i8*, i8* }* %"$dyndisp_gep_841" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_32_cloval_834", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_842", align 8 - %"$dyndisp_gep_843" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_840", i32 2 - %"$dyndisp_pcast_844" = bitcast { i8*, i8* }* %"$dyndisp_gep_843" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_38_cloval_839", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_844", align 8 - store { i8*, i8* }* %"$dyndisp_table_840", { i8*, i8* }** @ListUtils.list_length, align 8, !dbg !93 + %"$gasrem_769" = load i64, i64* @_gasrem, align 8 + %"$gascmp_770" = icmp ugt i64 1, %"$gasrem_769" + br i1 %"$gascmp_770", label %"$out_of_gas_771", label %"$have_gas_772" + +"$out_of_gas_771": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_772" + +"$have_gas_772": ; preds = %"$out_of_gas_771", %entry + %"$consume_773" = sub i64 %"$gasrem_769", 1 + store i64 %"$consume_773", i64* @_gasrem, align 8 + %"$dyndisp_table_780_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_780_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_780_salloc_load", i64 48) + %"$dyndisp_table_780_salloc" = bitcast i8* %"$dyndisp_table_780_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_780" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_780_salloc" to { i8*, i8* }* + %"$dyndisp_gep_781" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_780", i32 0 + %"$dyndisp_pcast_782" = bitcast { i8*, i8* }* %"$dyndisp_gep_781" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_9_env_145"*)* @"$fundef_9" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_782", align 8 + %"$dyndisp_gep_783" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_780", i32 2 + %"$dyndisp_pcast_784" = bitcast { i8*, i8* }* %"$dyndisp_gep_783" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_19_env_140"*)* @"$fundef_19" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_784", align 8 + store { i8*, i8* }* %"$dyndisp_table_780", { i8*, i8* }** @list_foldl, align 8, !dbg !88 + %"$gasrem_785" = load i64, i64* @_gasrem, align 8 + %"$gascmp_786" = icmp ugt i64 1, %"$gasrem_785" + br i1 %"$gascmp_786", label %"$out_of_gas_787", label %"$have_gas_788" + +"$out_of_gas_787": ; preds = %"$have_gas_772" + call void @_out_of_gas() + br label %"$have_gas_788" + +"$have_gas_788": ; preds = %"$out_of_gas_787", %"$have_gas_772" + %"$consume_789" = sub i64 %"$gasrem_785", 1 + store i64 %"$consume_789", i64* @_gasrem, align 8 + %"$$fundef_29_envp_790_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_29_envp_790_salloc" = call i8* @_salloc(i8* %"$$fundef_29_envp_790_load", i64 8) + %"$$fundef_29_envp_790" = bitcast i8* %"$$fundef_29_envp_790_salloc" to %"$$fundef_29_env_135"* + %"$$fundef_29_env_voidp_792" = bitcast %"$$fundef_29_env_135"* %"$$fundef_29_envp_790" to i8* + %"$$fundef_29_cloval_793" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_29_env_135"*)* @"$fundef_29" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_29_env_voidp_792", 1 + %"$$fundef_29_env_list_foldl_794" = getelementptr inbounds %"$$fundef_29_env_135", %"$$fundef_29_env_135"* %"$$fundef_29_envp_790", i32 0, i32 0 + %"$list_foldl_795" = load { i8*, i8* }*, { i8*, i8* }** @list_foldl, align 8 + store { i8*, i8* }* %"$list_foldl_795", { i8*, i8* }** %"$$fundef_29_env_list_foldl_794", align 8 + %"$$fundef_35_env_voidp_797" = bitcast %"$$fundef_29_env_135"* %"$$fundef_29_envp_790" to i8* + %"$$fundef_35_cloval_798" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_35_env_132"*)* @"$fundef_35" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_35_env_voidp_797", 1 + %"$dyndisp_table_799_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_799_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_799_salloc_load", i64 48) + %"$dyndisp_table_799_salloc" = bitcast i8* %"$dyndisp_table_799_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_799" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_799_salloc" to { i8*, i8* }* + %"$dyndisp_gep_800" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_799", i32 0 + %"$dyndisp_pcast_801" = bitcast { i8*, i8* }* %"$dyndisp_gep_800" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_29_cloval_793", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_801", align 8 + %"$dyndisp_gep_802" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_799", i32 2 + %"$dyndisp_pcast_803" = bitcast { i8*, i8* }* %"$dyndisp_gep_802" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_35_cloval_798", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_803", align 8 + store { i8*, i8* }* %"$dyndisp_table_799", { i8*, i8* }** @ListUtils.list_length, align 8, !dbg !89 ret void } -define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !94 { +define internal %Uint32 @_scilla_expr_fun(i8* %0) !dbg !90 { entry: - %"$expr_44" = alloca %Uint32, align 8 - %"$gasrem_845" = load i64, i64* @_gasrem, align 8 - %"$gascmp_846" = icmp ugt i64 1, %"$gasrem_845" - br i1 %"$gascmp_846", label %"$out_of_gas_847", label %"$have_gas_848" + %"$expr_41" = alloca %Uint32, align 8 + %"$gasrem_804" = load i64, i64* @_gasrem, align 8 + %"$gascmp_805" = icmp ugt i64 1, %"$gasrem_804" + br i1 %"$gascmp_805", label %"$out_of_gas_806", label %"$have_gas_807" -"$out_of_gas_847": ; preds = %entry +"$out_of_gas_806": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_848" + br label %"$have_gas_807" -"$have_gas_848": ; preds = %"$out_of_gas_847", %entry - %"$consume_849" = sub i64 %"$gasrem_845", 1 - store i64 %"$consume_849", i64* @_gasrem, align 8 +"$have_gas_807": ; preds = %"$out_of_gas_806", %entry + %"$consume_808" = sub i64 %"$gasrem_804", 1 + store i64 %"$consume_808", i64* @_gasrem, align 8 %list_length2 = alloca { i8*, i8* }*, align 8 - %"$gasrem_850" = load i64, i64* @_gasrem, align 8 - %"$gascmp_851" = icmp ugt i64 1, %"$gasrem_850" - br i1 %"$gascmp_851", label %"$out_of_gas_852", label %"$have_gas_853" - -"$out_of_gas_852": ; preds = %"$have_gas_848" - call void @_out_of_gas() - br label %"$have_gas_853" - -"$have_gas_853": ; preds = %"$out_of_gas_852", %"$have_gas_848" - %"$consume_854" = sub i64 %"$gasrem_850", 1 - store i64 %"$consume_854", i64* @_gasrem, align 8 - %"$$fundef_45_envp_855_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_45_envp_855_salloc" = call i8* @_salloc(i8* %"$$fundef_45_envp_855_load", i64 8) - %"$$fundef_45_envp_855" = bitcast i8* %"$$fundef_45_envp_855_salloc" to %"$$fundef_45_env_138"* - %"$$fundef_45_env_voidp_857" = bitcast %"$$fundef_45_env_138"* %"$$fundef_45_envp_855" to i8* - %"$$fundef_45_cloval_858" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_45_env_138"*)* @"$fundef_45" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_45_env_voidp_857", 1 - %"$$fundef_45_env_ListUtils.list_length_859" = getelementptr inbounds %"$$fundef_45_env_138", %"$$fundef_45_env_138"* %"$$fundef_45_envp_855", i32 0, i32 0 - %"$ListUtils.list_length_860" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_860", { i8*, i8* }** %"$$fundef_45_env_ListUtils.list_length_859", align 8 - %"$$fundef_49_env_voidp_862" = bitcast %"$$fundef_45_env_138"* %"$$fundef_45_envp_855" to i8* - %"$$fundef_49_cloval_863" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_49_env_136"*)* @"$fundef_49" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_49_env_voidp_862", 1 - %"$dyndisp_table_864_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_864_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_864_salloc_load", i64 48) - %"$dyndisp_table_864_salloc" = bitcast i8* %"$dyndisp_table_864_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_864" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_864_salloc" to { i8*, i8* }* - %"$dyndisp_gep_865" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_864", i32 0 - %"$dyndisp_pcast_866" = bitcast { i8*, i8* }* %"$dyndisp_gep_865" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_45_cloval_858", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_866", align 8 - %"$dyndisp_gep_867" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_864", i32 2 - %"$dyndisp_pcast_868" = bitcast { i8*, i8* }* %"$dyndisp_gep_867" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_49_cloval_863", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_868", align 8 - store { i8*, i8* }* %"$dyndisp_table_864", { i8*, i8* }** %list_length2, align 8, !dbg !95 - %"$gasrem_869" = load i64, i64* @_gasrem, align 8 - %"$gascmp_870" = icmp ugt i64 1, %"$gasrem_869" - br i1 %"$gascmp_870", label %"$out_of_gas_871", label %"$have_gas_872" - -"$out_of_gas_871": ; preds = %"$have_gas_853" - call void @_out_of_gas() - br label %"$have_gas_872" - -"$have_gas_872": ; preds = %"$out_of_gas_871", %"$have_gas_853" - %"$consume_873" = sub i64 %"$gasrem_869", 1 - store i64 %"$consume_873", i64* @_gasrem, align 8 - %t = alloca { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_874" = load i64, i64* @_gasrem, align 8 - %"$gascmp_875" = icmp ugt i64 1, %"$gasrem_874" - br i1 %"$gascmp_875", label %"$out_of_gas_876", label %"$have_gas_877" - -"$out_of_gas_876": ; preds = %"$have_gas_872" - call void @_out_of_gas() - br label %"$have_gas_877" - -"$have_gas_877": ; preds = %"$out_of_gas_876", %"$have_gas_872" - %"$consume_878" = sub i64 %"$gasrem_874", 1 - store i64 %"$consume_878", i64* @_gasrem, align 8 - store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_53_env_134"*, %TName_Bool*)* @"$fundef_53" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %t, align 8, !dbg !96 - %"$gasrem_882" = load i64, i64* @_gasrem, align 8 - %"$gascmp_883" = icmp ugt i64 1, %"$gasrem_882" - br i1 %"$gascmp_883", label %"$out_of_gas_884", label %"$have_gas_885" - -"$out_of_gas_884": ; preds = %"$have_gas_877" - call void @_out_of_gas() - br label %"$have_gas_885" - -"$have_gas_885": ; preds = %"$out_of_gas_884", %"$have_gas_877" - %"$consume_886" = sub i64 %"$gasrem_882", 1 - store i64 %"$consume_886", i64* @_gasrem, align 8 + %"$gasrem_809" = load i64, i64* @_gasrem, align 8 + %"$gascmp_810" = icmp ugt i64 1, %"$gasrem_809" + br i1 %"$gascmp_810", label %"$out_of_gas_811", label %"$have_gas_812" + +"$out_of_gas_811": ; preds = %"$have_gas_807" + call void @_out_of_gas() + br label %"$have_gas_812" + +"$have_gas_812": ; preds = %"$out_of_gas_811", %"$have_gas_807" + %"$consume_813" = sub i64 %"$gasrem_809", 1 + store i64 %"$consume_813", i64* @_gasrem, align 8 + %"$$fundef_42_envp_814_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_42_envp_814_salloc" = call i8* @_salloc(i8* %"$$fundef_42_envp_814_load", i64 8) + %"$$fundef_42_envp_814" = bitcast i8* %"$$fundef_42_envp_814_salloc" to %"$$fundef_42_env_129"* + %"$$fundef_42_env_voidp_816" = bitcast %"$$fundef_42_env_129"* %"$$fundef_42_envp_814" to i8* + %"$$fundef_42_cloval_817" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_42_env_129"*)* @"$fundef_42" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_42_env_voidp_816", 1 + %"$$fundef_42_env_ListUtils.list_length_818" = getelementptr inbounds %"$$fundef_42_env_129", %"$$fundef_42_env_129"* %"$$fundef_42_envp_814", i32 0, i32 0 + %"$ListUtils.list_length_819" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_819", { i8*, i8* }** %"$$fundef_42_env_ListUtils.list_length_818", align 8 + %"$$fundef_46_env_voidp_821" = bitcast %"$$fundef_42_env_129"* %"$$fundef_42_envp_814" to i8* + %"$$fundef_46_cloval_822" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_46_env_127"*)* @"$fundef_46" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_46_env_voidp_821", 1 + %"$dyndisp_table_823_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_823_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_823_salloc_load", i64 48) + %"$dyndisp_table_823_salloc" = bitcast i8* %"$dyndisp_table_823_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_823" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_823_salloc" to { i8*, i8* }* + %"$dyndisp_gep_824" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_823", i32 0 + %"$dyndisp_pcast_825" = bitcast { i8*, i8* }* %"$dyndisp_gep_824" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_42_cloval_817", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_825", align 8 + %"$dyndisp_gep_826" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_823", i32 2 + %"$dyndisp_pcast_827" = bitcast { i8*, i8* }* %"$dyndisp_gep_826" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_46_cloval_822", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_827", align 8 + store { i8*, i8* }* %"$dyndisp_table_823", { i8*, i8* }** %list_length2, align 8, !dbg !91 + %"$gasrem_828" = load i64, i64* @_gasrem, align 8 + %"$gascmp_829" = icmp ugt i64 1, %"$gasrem_828" + br i1 %"$gascmp_829", label %"$out_of_gas_830", label %"$have_gas_831" + +"$out_of_gas_830": ; preds = %"$have_gas_812" + call void @_out_of_gas() + br label %"$have_gas_831" + +"$have_gas_831": ; preds = %"$out_of_gas_830", %"$have_gas_812" + %"$consume_832" = sub i64 %"$gasrem_828", 1 + store i64 %"$consume_832", i64* @_gasrem, align 8 + %t = alloca { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_833" = load i64, i64* @_gasrem, align 8 + %"$gascmp_834" = icmp ugt i64 3, %"$gasrem_833" + br i1 %"$gascmp_834", label %"$out_of_gas_835", label %"$have_gas_836" + +"$out_of_gas_835": ; preds = %"$have_gas_831" + call void @_out_of_gas() + br label %"$have_gas_836" + +"$have_gas_836": ; preds = %"$out_of_gas_835", %"$have_gas_831" + %"$consume_837" = sub i64 %"$gasrem_833", 3 + store i64 %"$consume_837", i64* @_gasrem, align 8 + store { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_50_env_125"*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)* @"$fundef_50" to { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*), i8* null }, { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %t, align 8, !dbg !92 + %"$gasrem_841" = load i64, i64* @_gasrem, align 8 + %"$gascmp_842" = icmp ugt i64 1, %"$gasrem_841" + br i1 %"$gascmp_842", label %"$out_of_gas_843", label %"$have_gas_844" + +"$out_of_gas_843": ; preds = %"$have_gas_836" + call void @_out_of_gas() + br label %"$have_gas_844" + +"$have_gas_844": ; preds = %"$out_of_gas_843", %"$have_gas_836" + %"$consume_845" = sub i64 %"$gasrem_841", 1 + store i64 %"$consume_845", i64* @_gasrem, align 8 %true = alloca %TName_Bool*, align 8 - %"$gasrem_887" = load i64, i64* @_gasrem, align 8 - %"$gascmp_888" = icmp ugt i64 1, %"$gasrem_887" - br i1 %"$gascmp_888", label %"$out_of_gas_889", label %"$have_gas_890" - -"$out_of_gas_889": ; preds = %"$have_gas_885" - call void @_out_of_gas() - br label %"$have_gas_890" - -"$have_gas_890": ; preds = %"$out_of_gas_889", %"$have_gas_885" - %"$consume_891" = sub i64 %"$gasrem_887", 1 - store i64 %"$consume_891", i64* @_gasrem, align 8 - %"$adtval_892_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_892_salloc" = call i8* @_salloc(i8* %"$adtval_892_load", i64 1) - %"$adtval_892" = bitcast i8* %"$adtval_892_salloc" to %CName_True* - %"$adtgep_893" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_892", i32 0, i32 0 - store i8 0, i8* %"$adtgep_893", align 1 - %"$adtptr_894" = bitcast %CName_True* %"$adtval_892" to %TName_Bool* - store %TName_Bool* %"$adtptr_894", %TName_Bool** %true, align 8, !dbg !97 - %"$gasrem_895" = load i64, i64* @_gasrem, align 8 - %"$gascmp_896" = icmp ugt i64 1, %"$gasrem_895" - br i1 %"$gascmp_896", label %"$out_of_gas_897", label %"$have_gas_898" - -"$out_of_gas_897": ; preds = %"$have_gas_890" - call void @_out_of_gas() - br label %"$have_gas_898" - -"$have_gas_898": ; preds = %"$out_of_gas_897", %"$have_gas_890" - %"$consume_899" = sub i64 %"$gasrem_895", 1 - store i64 %"$consume_899", i64* @_gasrem, align 8 + %"$gasrem_846" = load i64, i64* @_gasrem, align 8 + %"$gascmp_847" = icmp ugt i64 1, %"$gasrem_846" + br i1 %"$gascmp_847", label %"$out_of_gas_848", label %"$have_gas_849" + +"$out_of_gas_848": ; preds = %"$have_gas_844" + call void @_out_of_gas() + br label %"$have_gas_849" + +"$have_gas_849": ; preds = %"$out_of_gas_848", %"$have_gas_844" + %"$consume_850" = sub i64 %"$gasrem_846", 1 + store i64 %"$consume_850", i64* @_gasrem, align 8 + %"$adtval_851_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_851_salloc" = call i8* @_salloc(i8* %"$adtval_851_load", i64 1) + %"$adtval_851" = bitcast i8* %"$adtval_851_salloc" to %CName_True* + %"$adtgep_852" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_851", i32 0, i32 0 + store i8 0, i8* %"$adtgep_852", align 1 + %"$adtptr_853" = bitcast %CName_True* %"$adtval_851" to %TName_Bool* + store %TName_Bool* %"$adtptr_853", %TName_Bool** %true, align 8, !dbg !93 + %"$gasrem_854" = load i64, i64* @_gasrem, align 8 + %"$gascmp_855" = icmp ugt i64 1, %"$gasrem_854" + br i1 %"$gascmp_855", label %"$out_of_gas_856", label %"$have_gas_857" + +"$out_of_gas_856": ; preds = %"$have_gas_849" + call void @_out_of_gas() + br label %"$have_gas_857" + +"$have_gas_857": ; preds = %"$out_of_gas_856", %"$have_gas_849" + %"$consume_858" = sub i64 %"$gasrem_854", 1 + store i64 %"$consume_858", i64* @_gasrem, align 8 %f = alloca { i8*, i8* }*, align 8 - %"$gasrem_900" = load i64, i64* @_gasrem, align 8 - %"$gascmp_901" = icmp ugt i64 1, %"$gasrem_900" - br i1 %"$gascmp_901", label %"$out_of_gas_902", label %"$have_gas_903" - -"$out_of_gas_902": ; preds = %"$have_gas_898" - call void @_out_of_gas() - br label %"$have_gas_903" - -"$have_gas_903": ; preds = %"$out_of_gas_902", %"$have_gas_898" - %"$consume_904" = sub i64 %"$gasrem_900", 1 - store i64 %"$consume_904", i64* @_gasrem, align 8 - %"$t_7" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$t_905" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %t, align 8 - %"$t_fptr_906" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$t_905", 0 - %"$t_envptr_907" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$t_905", 1 - %"$true_908" = load %TName_Bool*, %TName_Bool** %true, align 8 - %"$t_call_909" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_fptr_906"(i8* %"$t_envptr_907", %TName_Bool* %"$true_908"), !dbg !98 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_call_909", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$t_7", align 8, !dbg !98 - %"$t_8" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$$t_7_910" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$t_7", align 8 - %"$$t_7_fptr_911" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$t_7_910", 0 - %"$$t_7_envptr_912" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$t_7_910", 1 - %"$ListUtils.list_length_913" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 - %"$$t_7_call_914" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_7_fptr_911"(i8* %"$$t_7_envptr_912", { i8*, i8* }* %"$ListUtils.list_length_913"), !dbg !98 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_7_call_914", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$t_8", align 8, !dbg !98 - %"$t_9" = alloca { i8*, i8* }*, align 8 - %"$$t_8_915" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$t_8", align 8 - %"$$t_8_fptr_916" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_8_915", 0 - %"$$t_8_envptr_917" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_8_915", 1 - %"$list_length2_918" = load { i8*, i8* }*, { i8*, i8* }** %list_length2, align 8 - %"$$t_8_call_919" = call { i8*, i8* }* %"$$t_8_fptr_916"(i8* %"$$t_8_envptr_917", { i8*, i8* }* %"$list_length2_918"), !dbg !98 - store { i8*, i8* }* %"$$t_8_call_919", { i8*, i8* }** %"$t_9", align 8, !dbg !98 - %"$$t_9_920" = load { i8*, i8* }*, { i8*, i8* }** %"$t_9", align 8 - store { i8*, i8* }* %"$$t_9_920", { i8*, i8* }** %f, align 8, !dbg !98 - %"$gasrem_921" = load i64, i64* @_gasrem, align 8 - %"$gascmp_922" = icmp ugt i64 1, %"$gasrem_921" - br i1 %"$gascmp_922", label %"$out_of_gas_923", label %"$have_gas_924" - -"$out_of_gas_923": ; preds = %"$have_gas_903" - call void @_out_of_gas() - br label %"$have_gas_924" - -"$have_gas_924": ; preds = %"$out_of_gas_923", %"$have_gas_903" - %"$consume_925" = sub i64 %"$gasrem_921", 1 - store i64 %"$consume_925", i64* @_gasrem, align 8 + %"$gasrem_859" = load i64, i64* @_gasrem, align 8 + %"$gascmp_860" = icmp ugt i64 1, %"$gasrem_859" + br i1 %"$gascmp_860", label %"$out_of_gas_861", label %"$have_gas_862" + +"$out_of_gas_861": ; preds = %"$have_gas_857" + call void @_out_of_gas() + br label %"$have_gas_862" + +"$have_gas_862": ; preds = %"$out_of_gas_861", %"$have_gas_857" + %"$consume_863" = sub i64 %"$gasrem_859", 1 + store i64 %"$consume_863", i64* @_gasrem, align 8 + %"$t_864" = load { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %t, align 8 + %"$t_fptr_865" = extractvalue { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$t_864", 0 + %"$t_envptr_866" = extractvalue { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$t_864", 1 + %"$true_867" = load %TName_Bool*, %TName_Bool** %true, align 8 + %"$ListUtils.list_length_868" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 + %"$list_length2_869" = load { i8*, i8* }*, { i8*, i8* }** %list_length2, align 8 + %"$t_call_870" = call { i8*, i8* }* %"$t_fptr_865"(i8* %"$t_envptr_866", %TName_Bool* %"$true_867", { i8*, i8* }* %"$ListUtils.list_length_868", { i8*, i8* }* %"$list_length2_869"), !dbg !94 + store { i8*, i8* }* %"$t_call_870", { i8*, i8* }** %f, align 8, !dbg !94 + %"$gasrem_871" = load i64, i64* @_gasrem, align 8 + %"$gascmp_872" = icmp ugt i64 1, %"$gasrem_871" + br i1 %"$gascmp_872", label %"$out_of_gas_873", label %"$have_gas_874" + +"$out_of_gas_873": ; preds = %"$have_gas_862" + call void @_out_of_gas() + br label %"$have_gas_874" + +"$have_gas_874": ; preds = %"$out_of_gas_873", %"$have_gas_862" + %"$consume_875" = sub i64 %"$gasrem_871", 1 + store i64 %"$consume_875", i64* @_gasrem, align 8 %f_string = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$gasrem_926" = load i64, i64* @_gasrem, align 8 - %"$gascmp_927" = icmp ugt i64 1, %"$gasrem_926" - br i1 %"$gascmp_927", label %"$out_of_gas_928", label %"$have_gas_929" - -"$out_of_gas_928": ; preds = %"$have_gas_924" - call void @_out_of_gas() - br label %"$have_gas_929" - -"$have_gas_929": ; preds = %"$out_of_gas_928", %"$have_gas_924" - %"$consume_930" = sub i64 %"$gasrem_926", 1 - store i64 %"$consume_930", i64* @_gasrem, align 8 - %"$f_931" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 - %"$f_932" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_931", i32 0 - %"$f_933" = bitcast { i8*, i8* }* %"$f_932" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - %"$f_934" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$f_933", align 8 - %"$f_fptr_935" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_934", 0 - %"$f_envptr_936" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_934", 1 - %"$f_call_937" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_fptr_935"(i8* %"$f_envptr_936"), !dbg !99 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_call_937", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8, !dbg !100 - %"$gasrem_938" = load i64, i64* @_gasrem, align 8 - %"$gascmp_939" = icmp ugt i64 1, %"$gasrem_938" - br i1 %"$gascmp_939", label %"$out_of_gas_940", label %"$have_gas_941" - -"$out_of_gas_940": ; preds = %"$have_gas_929" - call void @_out_of_gas() - br label %"$have_gas_941" - -"$have_gas_941": ; preds = %"$out_of_gas_940", %"$have_gas_929" - %"$consume_942" = sub i64 %"$gasrem_938", 1 - store i64 %"$consume_942", i64* @_gasrem, align 8 + %"$gasrem_876" = load i64, i64* @_gasrem, align 8 + %"$gascmp_877" = icmp ugt i64 1, %"$gasrem_876" + br i1 %"$gascmp_877", label %"$out_of_gas_878", label %"$have_gas_879" + +"$out_of_gas_878": ; preds = %"$have_gas_874" + call void @_out_of_gas() + br label %"$have_gas_879" + +"$have_gas_879": ; preds = %"$out_of_gas_878", %"$have_gas_874" + %"$consume_880" = sub i64 %"$gasrem_876", 1 + store i64 %"$consume_880", i64* @_gasrem, align 8 + %"$f_881" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 + %"$f_882" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_881", i32 0 + %"$f_883" = bitcast { i8*, i8* }* %"$f_882" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + %"$f_884" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$f_883", align 8 + %"$f_fptr_885" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_884", 0 + %"$f_envptr_886" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_884", 1 + %"$f_call_887" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_fptr_885"(i8* %"$f_envptr_886"), !dbg !95 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_call_887", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8, !dbg !96 + %"$gasrem_888" = load i64, i64* @_gasrem, align 8 + %"$gascmp_889" = icmp ugt i64 1, %"$gasrem_888" + br i1 %"$gascmp_889", label %"$out_of_gas_890", label %"$have_gas_891" + +"$out_of_gas_890": ; preds = %"$have_gas_879" + call void @_out_of_gas() + br label %"$have_gas_891" + +"$have_gas_891": ; preds = %"$out_of_gas_890", %"$have_gas_879" + %"$consume_892" = sub i64 %"$gasrem_888", 1 + store i64 %"$consume_892", i64* @_gasrem, align 8 %f_bystr20 = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_943" = load i64, i64* @_gasrem, align 8 - %"$gascmp_944" = icmp ugt i64 1, %"$gasrem_943" - br i1 %"$gascmp_944", label %"$out_of_gas_945", label %"$have_gas_946" - -"$out_of_gas_945": ; preds = %"$have_gas_941" - call void @_out_of_gas() - br label %"$have_gas_946" - -"$have_gas_946": ; preds = %"$out_of_gas_945", %"$have_gas_941" - %"$consume_947" = sub i64 %"$gasrem_943", 1 - store i64 %"$consume_947", i64* @_gasrem, align 8 - %"$f_948" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 - %"$f_949" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_948", i32 2 - %"$f_950" = bitcast { i8*, i8* }* %"$f_949" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - %"$f_951" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$f_950", align 8 - %"$f_fptr_952" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_951", 0 - %"$f_envptr_953" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_951", 1 - %"$f_call_954" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_952"(i8* %"$f_envptr_953"), !dbg !101 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_954", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8, !dbg !102 - %"$gasrem_955" = load i64, i64* @_gasrem, align 8 - %"$gascmp_956" = icmp ugt i64 1, %"$gasrem_955" - br i1 %"$gascmp_956", label %"$out_of_gas_957", label %"$have_gas_958" - -"$out_of_gas_957": ; preds = %"$have_gas_946" - call void @_out_of_gas() - br label %"$have_gas_958" - -"$have_gas_958": ; preds = %"$out_of_gas_957", %"$have_gas_946" - %"$consume_959" = sub i64 %"$gasrem_955", 1 - store i64 %"$consume_959", i64* @_gasrem, align 8 + %"$gasrem_893" = load i64, i64* @_gasrem, align 8 + %"$gascmp_894" = icmp ugt i64 1, %"$gasrem_893" + br i1 %"$gascmp_894", label %"$out_of_gas_895", label %"$have_gas_896" + +"$out_of_gas_895": ; preds = %"$have_gas_891" + call void @_out_of_gas() + br label %"$have_gas_896" + +"$have_gas_896": ; preds = %"$out_of_gas_895", %"$have_gas_891" + %"$consume_897" = sub i64 %"$gasrem_893", 1 + store i64 %"$consume_897", i64* @_gasrem, align 8 + %"$f_898" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 + %"$f_899" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_898", i32 2 + %"$f_900" = bitcast { i8*, i8* }* %"$f_899" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + %"$f_901" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$f_900", align 8 + %"$f_fptr_902" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_901", 0 + %"$f_envptr_903" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_901", 1 + %"$f_call_904" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_902"(i8* %"$f_envptr_903"), !dbg !97 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_904", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8, !dbg !98 + %"$gasrem_905" = load i64, i64* @_gasrem, align 8 + %"$gascmp_906" = icmp ugt i64 1, %"$gasrem_905" + br i1 %"$gascmp_906", label %"$out_of_gas_907", label %"$have_gas_908" + +"$out_of_gas_907": ; preds = %"$have_gas_896" + call void @_out_of_gas() + br label %"$have_gas_908" + +"$have_gas_908": ; preds = %"$out_of_gas_907", %"$have_gas_896" + %"$consume_909" = sub i64 %"$gasrem_905", 1 + store i64 %"$consume_909", i64* @_gasrem, align 8 %nil_string = alloca %TName_List_String*, align 8 - %"$gasrem_960" = load i64, i64* @_gasrem, align 8 - %"$gascmp_961" = icmp ugt i64 1, %"$gasrem_960" - br i1 %"$gascmp_961", label %"$out_of_gas_962", label %"$have_gas_963" - -"$out_of_gas_962": ; preds = %"$have_gas_958" - call void @_out_of_gas() - br label %"$have_gas_963" - -"$have_gas_963": ; preds = %"$out_of_gas_962", %"$have_gas_958" - %"$consume_964" = sub i64 %"$gasrem_960", 1 - store i64 %"$consume_964", i64* @_gasrem, align 8 - %"$adtval_965_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_965_salloc" = call i8* @_salloc(i8* %"$adtval_965_load", i64 1) - %"$adtval_965" = bitcast i8* %"$adtval_965_salloc" to %CName_Nil_String* - %"$adtgep_966" = getelementptr inbounds %CName_Nil_String, %CName_Nil_String* %"$adtval_965", i32 0, i32 0 - store i8 1, i8* %"$adtgep_966", align 1 - %"$adtptr_967" = bitcast %CName_Nil_String* %"$adtval_965" to %TName_List_String* - store %TName_List_String* %"$adtptr_967", %TName_List_String** %nil_string, align 8, !dbg !103 - %"$gasrem_968" = load i64, i64* @_gasrem, align 8 - %"$gascmp_969" = icmp ugt i64 1, %"$gasrem_968" - br i1 %"$gascmp_969", label %"$out_of_gas_970", label %"$have_gas_971" - -"$out_of_gas_970": ; preds = %"$have_gas_963" - call void @_out_of_gas() - br label %"$have_gas_971" - -"$have_gas_971": ; preds = %"$out_of_gas_970", %"$have_gas_963" - %"$consume_972" = sub i64 %"$gasrem_968", 1 - store i64 %"$consume_972", i64* @_gasrem, align 8 + %"$gasrem_910" = load i64, i64* @_gasrem, align 8 + %"$gascmp_911" = icmp ugt i64 1, %"$gasrem_910" + br i1 %"$gascmp_911", label %"$out_of_gas_912", label %"$have_gas_913" + +"$out_of_gas_912": ; preds = %"$have_gas_908" + call void @_out_of_gas() + br label %"$have_gas_913" + +"$have_gas_913": ; preds = %"$out_of_gas_912", %"$have_gas_908" + %"$consume_914" = sub i64 %"$gasrem_910", 1 + store i64 %"$consume_914", i64* @_gasrem, align 8 + %"$adtval_915_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_915_salloc" = call i8* @_salloc(i8* %"$adtval_915_load", i64 1) + %"$adtval_915" = bitcast i8* %"$adtval_915_salloc" to %CName_Nil_String* + %"$adtgep_916" = getelementptr inbounds %CName_Nil_String, %CName_Nil_String* %"$adtval_915", i32 0, i32 0 + store i8 1, i8* %"$adtgep_916", align 1 + %"$adtptr_917" = bitcast %CName_Nil_String* %"$adtval_915" to %TName_List_String* + store %TName_List_String* %"$adtptr_917", %TName_List_String** %nil_string, align 8, !dbg !99 + %"$gasrem_918" = load i64, i64* @_gasrem, align 8 + %"$gascmp_919" = icmp ugt i64 1, %"$gasrem_918" + br i1 %"$gascmp_919", label %"$out_of_gas_920", label %"$have_gas_921" + +"$out_of_gas_920": ; preds = %"$have_gas_913" + call void @_out_of_gas() + br label %"$have_gas_921" + +"$have_gas_921": ; preds = %"$out_of_gas_920", %"$have_gas_913" + %"$consume_922" = sub i64 %"$gasrem_918", 1 + store i64 %"$consume_922", i64* @_gasrem, align 8 %nil_bystr20 = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_973" = load i64, i64* @_gasrem, align 8 - %"$gascmp_974" = icmp ugt i64 1, %"$gasrem_973" - br i1 %"$gascmp_974", label %"$out_of_gas_975", label %"$have_gas_976" - -"$out_of_gas_975": ; preds = %"$have_gas_971" - call void @_out_of_gas() - br label %"$have_gas_976" - -"$have_gas_976": ; preds = %"$out_of_gas_975", %"$have_gas_971" - %"$consume_977" = sub i64 %"$gasrem_973", 1 - store i64 %"$consume_977", i64* @_gasrem, align 8 - %"$adtval_978_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_978_salloc" = call i8* @_salloc(i8* %"$adtval_978_load", i64 1) - %"$adtval_978" = bitcast i8* %"$adtval_978_salloc" to %CName_Nil_ByStr20* - %"$adtgep_979" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_978", i32 0, i32 0 - store i8 1, i8* %"$adtgep_979", align 1 - %"$adtptr_980" = bitcast %CName_Nil_ByStr20* %"$adtval_978" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_980", %TName_List_ByStr20** %nil_bystr20, align 8, !dbg !104 - %"$gasrem_981" = load i64, i64* @_gasrem, align 8 - %"$gascmp_982" = icmp ugt i64 1, %"$gasrem_981" - br i1 %"$gascmp_982", label %"$out_of_gas_983", label %"$have_gas_984" - -"$out_of_gas_983": ; preds = %"$have_gas_976" - call void @_out_of_gas() - br label %"$have_gas_984" - -"$have_gas_984": ; preds = %"$out_of_gas_983", %"$have_gas_976" - %"$consume_985" = sub i64 %"$gasrem_981", 1 - store i64 %"$consume_985", i64* @_gasrem, align 8 + %"$gasrem_923" = load i64, i64* @_gasrem, align 8 + %"$gascmp_924" = icmp ugt i64 1, %"$gasrem_923" + br i1 %"$gascmp_924", label %"$out_of_gas_925", label %"$have_gas_926" + +"$out_of_gas_925": ; preds = %"$have_gas_921" + call void @_out_of_gas() + br label %"$have_gas_926" + +"$have_gas_926": ; preds = %"$out_of_gas_925", %"$have_gas_921" + %"$consume_927" = sub i64 %"$gasrem_923", 1 + store i64 %"$consume_927", i64* @_gasrem, align 8 + %"$adtval_928_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_928_salloc" = call i8* @_salloc(i8* %"$adtval_928_load", i64 1) + %"$adtval_928" = bitcast i8* %"$adtval_928_salloc" to %CName_Nil_ByStr20* + %"$adtgep_929" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_928", i32 0, i32 0 + store i8 1, i8* %"$adtgep_929", align 1 + %"$adtptr_930" = bitcast %CName_Nil_ByStr20* %"$adtval_928" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_930", %TName_List_ByStr20** %nil_bystr20, align 8, !dbg !100 + %"$gasrem_931" = load i64, i64* @_gasrem, align 8 + %"$gascmp_932" = icmp ugt i64 1, %"$gasrem_931" + br i1 %"$gascmp_932", label %"$out_of_gas_933", label %"$have_gas_934" + +"$out_of_gas_933": ; preds = %"$have_gas_926" + call void @_out_of_gas() + br label %"$have_gas_934" + +"$have_gas_934": ; preds = %"$out_of_gas_933", %"$have_gas_926" + %"$consume_935" = sub i64 %"$gasrem_931", 1 + store i64 %"$consume_935", i64* @_gasrem, align 8 %a = alloca %Uint32, align 8 - %"$gasrem_986" = load i64, i64* @_gasrem, align 8 - %"$gascmp_987" = icmp ugt i64 1, %"$gasrem_986" - br i1 %"$gascmp_987", label %"$out_of_gas_988", label %"$have_gas_989" - -"$out_of_gas_988": ; preds = %"$have_gas_984" - call void @_out_of_gas() - br label %"$have_gas_989" - -"$have_gas_989": ; preds = %"$out_of_gas_988", %"$have_gas_984" - %"$consume_990" = sub i64 %"$gasrem_986", 1 - store i64 %"$consume_990", i64* @_gasrem, align 8 - %"$f_string_10" = alloca %Uint32, align 8 - %"$f_string_991" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8 - %"$f_string_fptr_992" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_991", 0 - %"$f_string_envptr_993" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_991", 1 - %"$nil_string_994" = load %TName_List_String*, %TName_List_String** %nil_string, align 8 - %"$f_string_call_995" = call %Uint32 %"$f_string_fptr_992"(i8* %"$f_string_envptr_993", %TName_List_String* %"$nil_string_994"), !dbg !105 - store %Uint32 %"$f_string_call_995", %Uint32* %"$f_string_10", align 4, !dbg !105 - %"$$f_string_10_996" = load %Uint32, %Uint32* %"$f_string_10", align 4 - store %Uint32 %"$$f_string_10_996", %Uint32* %a, align 4, !dbg !105 - %"$gasrem_997" = load i64, i64* @_gasrem, align 8 - %"$gascmp_998" = icmp ugt i64 1, %"$gasrem_997" - br i1 %"$gascmp_998", label %"$out_of_gas_999", label %"$have_gas_1000" - -"$out_of_gas_999": ; preds = %"$have_gas_989" - call void @_out_of_gas() - br label %"$have_gas_1000" - -"$have_gas_1000": ; preds = %"$out_of_gas_999", %"$have_gas_989" - %"$consume_1001" = sub i64 %"$gasrem_997", 1 - store i64 %"$consume_1001", i64* @_gasrem, align 8 + %"$gasrem_936" = load i64, i64* @_gasrem, align 8 + %"$gascmp_937" = icmp ugt i64 1, %"$gasrem_936" + br i1 %"$gascmp_937", label %"$out_of_gas_938", label %"$have_gas_939" + +"$out_of_gas_938": ; preds = %"$have_gas_934" + call void @_out_of_gas() + br label %"$have_gas_939" + +"$have_gas_939": ; preds = %"$out_of_gas_938", %"$have_gas_934" + %"$consume_940" = sub i64 %"$gasrem_936", 1 + store i64 %"$consume_940", i64* @_gasrem, align 8 + %"$f_string_7" = alloca %Uint32, align 8 + %"$f_string_941" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8 + %"$f_string_fptr_942" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_941", 0 + %"$f_string_envptr_943" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_941", 1 + %"$nil_string_944" = load %TName_List_String*, %TName_List_String** %nil_string, align 8 + %"$f_string_call_945" = call %Uint32 %"$f_string_fptr_942"(i8* %"$f_string_envptr_943", %TName_List_String* %"$nil_string_944"), !dbg !101 + store %Uint32 %"$f_string_call_945", %Uint32* %"$f_string_7", align 4, !dbg !101 + %"$$f_string_7_946" = load %Uint32, %Uint32* %"$f_string_7", align 4 + store %Uint32 %"$$f_string_7_946", %Uint32* %a, align 4, !dbg !101 + %"$gasrem_947" = load i64, i64* @_gasrem, align 8 + %"$gascmp_948" = icmp ugt i64 1, %"$gasrem_947" + br i1 %"$gascmp_948", label %"$out_of_gas_949", label %"$have_gas_950" + +"$out_of_gas_949": ; preds = %"$have_gas_939" + call void @_out_of_gas() + br label %"$have_gas_950" + +"$have_gas_950": ; preds = %"$out_of_gas_949", %"$have_gas_939" + %"$consume_951" = sub i64 %"$gasrem_947", 1 + store i64 %"$consume_951", i64* @_gasrem, align 8 %b = alloca %Uint32, align 8 - %"$gasrem_1002" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1003" = icmp ugt i64 1, %"$gasrem_1002" - br i1 %"$gascmp_1003", label %"$out_of_gas_1004", label %"$have_gas_1005" - -"$out_of_gas_1004": ; preds = %"$have_gas_1000" - call void @_out_of_gas() - br label %"$have_gas_1005" - -"$have_gas_1005": ; preds = %"$out_of_gas_1004", %"$have_gas_1000" - %"$consume_1006" = sub i64 %"$gasrem_1002", 1 - store i64 %"$consume_1006", i64* @_gasrem, align 8 - %"$f_bystr20_11" = alloca %Uint32, align 8 - %"$f_bystr20_1007" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8 - %"$f_bystr20_fptr_1008" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_1007", 0 - %"$f_bystr20_envptr_1009" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_1007", 1 - %"$nil_bystr20_1010" = load %TName_List_ByStr20*, %TName_List_ByStr20** %nil_bystr20, align 8 - %"$f_bystr20_call_1011" = call %Uint32 %"$f_bystr20_fptr_1008"(i8* %"$f_bystr20_envptr_1009", %TName_List_ByStr20* %"$nil_bystr20_1010"), !dbg !106 - store %Uint32 %"$f_bystr20_call_1011", %Uint32* %"$f_bystr20_11", align 4, !dbg !106 - %"$$f_bystr20_11_1012" = load %Uint32, %Uint32* %"$f_bystr20_11", align 4 - store %Uint32 %"$$f_bystr20_11_1012", %Uint32* %b, align 4, !dbg !106 - %"$gasrem_1013" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1014" = icmp ugt i64 4, %"$gasrem_1013" - br i1 %"$gascmp_1014", label %"$out_of_gas_1015", label %"$have_gas_1016" - -"$out_of_gas_1015": ; preds = %"$have_gas_1005" - call void @_out_of_gas() - br label %"$have_gas_1016" - -"$have_gas_1016": ; preds = %"$out_of_gas_1015", %"$have_gas_1005" - %"$consume_1017" = sub i64 %"$gasrem_1013", 4 - store i64 %"$consume_1017", i64* @_gasrem, align 8 - %"$a_1018" = load %Uint32, %Uint32* %a, align 4 - %"$b_1019" = load %Uint32, %Uint32* %b, align 4 - %"$add_call_1020" = call %Uint32 @_add_Uint32(%Uint32 %"$a_1018", %Uint32 %"$b_1019"), !dbg !107 - store %Uint32 %"$add_call_1020", %Uint32* %"$expr_44", align 4, !dbg !107 - %"$$expr_44_1021" = load %Uint32, %Uint32* %"$expr_44", align 4 - ret %Uint32 %"$$expr_44_1021" + %"$gasrem_952" = load i64, i64* @_gasrem, align 8 + %"$gascmp_953" = icmp ugt i64 1, %"$gasrem_952" + br i1 %"$gascmp_953", label %"$out_of_gas_954", label %"$have_gas_955" + +"$out_of_gas_954": ; preds = %"$have_gas_950" + call void @_out_of_gas() + br label %"$have_gas_955" + +"$have_gas_955": ; preds = %"$out_of_gas_954", %"$have_gas_950" + %"$consume_956" = sub i64 %"$gasrem_952", 1 + store i64 %"$consume_956", i64* @_gasrem, align 8 + %"$f_bystr20_8" = alloca %Uint32, align 8 + %"$f_bystr20_957" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8 + %"$f_bystr20_fptr_958" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_957", 0 + %"$f_bystr20_envptr_959" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_957", 1 + %"$nil_bystr20_960" = load %TName_List_ByStr20*, %TName_List_ByStr20** %nil_bystr20, align 8 + %"$f_bystr20_call_961" = call %Uint32 %"$f_bystr20_fptr_958"(i8* %"$f_bystr20_envptr_959", %TName_List_ByStr20* %"$nil_bystr20_960"), !dbg !102 + store %Uint32 %"$f_bystr20_call_961", %Uint32* %"$f_bystr20_8", align 4, !dbg !102 + %"$$f_bystr20_8_962" = load %Uint32, %Uint32* %"$f_bystr20_8", align 4 + store %Uint32 %"$$f_bystr20_8_962", %Uint32* %b, align 4, !dbg !102 + %"$gasrem_963" = load i64, i64* @_gasrem, align 8 + %"$gascmp_964" = icmp ugt i64 4, %"$gasrem_963" + br i1 %"$gascmp_964", label %"$out_of_gas_965", label %"$have_gas_966" + +"$out_of_gas_965": ; preds = %"$have_gas_955" + call void @_out_of_gas() + br label %"$have_gas_966" + +"$have_gas_966": ; preds = %"$out_of_gas_965", %"$have_gas_955" + %"$consume_967" = sub i64 %"$gasrem_963", 4 + store i64 %"$consume_967", i64* @_gasrem, align 8 + %"$a_968" = load %Uint32, %Uint32* %a, align 4 + %"$b_969" = load %Uint32, %Uint32* %b, align 4 + %"$add_call_970" = call %Uint32 @_add_Uint32(%Uint32 %"$a_968", %Uint32 %"$b_969"), !dbg !103 + store %Uint32 %"$add_call_970", %Uint32* %"$expr_41", align 4, !dbg !103 + %"$$expr_41_971" = load %Uint32, %Uint32* %"$expr_41", align 4 + ret %Uint32 %"$$expr_41_971" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_1022" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_1023" = alloca %Uint32, align 8 - %"$memvoidcast_1024" = bitcast %Uint32* %"$pval_1023" to i8* - store %Uint32 %"$exprval_1022", %Uint32* %"$pval_1023", align 4 - %"$execptr_load_1025" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_1025", %_TyDescrTy_Typ* @"$TyDescr_Uint32_63", i8* %"$memvoidcast_1024") + %"$exprval_972" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_973" = alloca %Uint32, align 8 + %"$memvoidcast_974" = bitcast %Uint32* %"$pval_973" to i8* + store %Uint32 %"$exprval_972", %Uint32* %"$pval_973", align 4 + %"$execptr_load_975" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_975", %_TyDescrTy_Typ* @"$TyDescr_Uint32_56", i8* %"$memvoidcast_974") ret void } @@ -1944,7 +1858,7 @@ entry: !1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) !2 = !DIFile(filename: "nonprenex.scilexp", directory: "codegen/expr") !3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_57", linkageName: "$fundef_57", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!4 = distinct !DISubprogram(name: "$fundef_50", linkageName: "$fundef_50", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !5 = !DISubroutineType(types: !6) !6 = !{!7} !7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") @@ -1954,97 +1868,93 @@ entry: !11 = distinct !DILexicalBlock(scope: !4, file: !2, line: 14, column: 5) !12 = !DILocation(line: 16, column: 16, scope: !13) !13 = distinct !DILexicalBlock(scope: !11, file: !2, line: 16, column: 7) -!14 = distinct !DISubprogram(name: "$fundef_55", linkageName: "$fundef_55", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DILocation(line: 14, column: 5, scope: !14) -!16 = distinct !DISubprogram(name: "$fundef_53", linkageName: "$fundef_53", scope: !2, file: !2, line: 12, type: !5, scopeLine: 12, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 13, column: 3, scope: !16) -!18 = distinct !DISubprogram(name: "$fundef_51", linkageName: "$fundef_51", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!19 = !DILocation(line: 4, column: 15, scope: !18) -!20 = !DILocation(line: 4, column: 14, scope: !18) -!21 = !DILocation(line: 5, column: 13, scope: !18) -!22 = !DILocation(line: 6, column: 15, scope: !18) -!23 = !DILocation(line: 7, column: 5, scope: !18) -!24 = distinct !DISubprogram(name: "$fundef_49", linkageName: "$fundef_49", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!25 = !DILocation(line: 4, column: 5, scope: !24) -!26 = distinct !DISubprogram(name: "$fundef_47", linkageName: "$fundef_47", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!27 = !DILocation(line: 4, column: 15, scope: !26) -!28 = !DILocation(line: 4, column: 14, scope: !26) -!29 = !DILocation(line: 5, column: 13, scope: !26) -!30 = !DILocation(line: 6, column: 15, scope: !26) -!31 = !DILocation(line: 7, column: 5, scope: !26) -!32 = distinct !DISubprogram(name: "$fundef_45", linkageName: "$fundef_45", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!33 = !DILocation(line: 4, column: 5, scope: !32) -!34 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !35, file: !35, line: 104, type: !5, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!35 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") -!36 = !DILocation(line: 104, column: 5, scope: !34) -!37 = distinct !DISubprogram(name: "$fundef_40", linkageName: "$fundef_40", scope: !35, file: !35, line: 103, type: !5, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!38 = !DILocation(line: 104, column: 5, scope: !37) -!39 = distinct !DISubprogram(name: "$fundef_38", linkageName: "$fundef_38", scope: !35, file: !35, line: 101, type: !5, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!40 = !DILocation(line: 101, column: 16, scope: !39) -!41 = !DILocation(line: 101, column: 15, scope: !39) -!42 = !DILocation(line: 102, column: 13, scope: !39) -!43 = !DILocation(line: 103, column: 34, scope: !39) -!44 = !DILocation(line: 105, column: 14, scope: !39) -!45 = !DILocation(line: 106, column: 3, scope: !39) -!46 = distinct !DISubprogram(name: "$fundef_36", linkageName: "$fundef_36", scope: !35, file: !35, line: 104, type: !5, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!47 = !DILocation(line: 104, column: 5, scope: !46) -!48 = distinct !DISubprogram(name: "$fundef_34", linkageName: "$fundef_34", scope: !35, file: !35, line: 103, type: !5, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!49 = !DILocation(line: 104, column: 5, scope: !48) -!50 = distinct !DISubprogram(name: "$fundef_32", linkageName: "$fundef_32", scope: !35, file: !35, line: 101, type: !5, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!51 = !DILocation(line: 101, column: 16, scope: !50) -!52 = !DILocation(line: 101, column: 15, scope: !50) -!53 = !DILocation(line: 102, column: 13, scope: !50) -!54 = !DILocation(line: 103, column: 34, scope: !50) -!55 = !DILocation(line: 105, column: 14, scope: !50) -!56 = !DILocation(line: 106, column: 3, scope: !50) -!57 = distinct !DISubprogram(name: "$fundef_30", linkageName: "$fundef_30", scope: !58, file: !58, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!58 = !DIFile(filename: "Prelude", directory: ".") -!59 = !DILocation(line: 1, column: 37, scope: !57) -!60 = !DILocation(line: 1, column: 74, scope: !61) -!61 = distinct !DILexicalBlock(scope: !62, file: !58, line: 1, column: 52) -!62 = distinct !DILexicalBlock(scope: !57, file: !58, line: 1, column: 37) -!63 = !DILocation(line: 1, column: 83, scope: !61) -!64 = !DILocation(line: 1, column: 100, scope: !65) -!65 = distinct !DILexicalBlock(scope: !62, file: !58, line: 1, column: 93) -!66 = distinct !DISubprogram(name: "$fundef_28", linkageName: "$fundef_28", scope: !58, file: !58, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!67 = !DILocation(line: 1, column: 37, scope: !66) -!68 = distinct !DISubprogram(name: "$fundef_26", linkageName: "$fundef_26", scope: !58, file: !58, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!14 = distinct !DISubprogram(name: "$fundef_48", linkageName: "$fundef_48", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!15 = !DILocation(line: 4, column: 15, scope: !14) +!16 = !DILocation(line: 4, column: 14, scope: !14) +!17 = !DILocation(line: 5, column: 13, scope: !14) +!18 = !DILocation(line: 6, column: 15, scope: !14) +!19 = !DILocation(line: 7, column: 5, scope: !14) +!20 = distinct !DISubprogram(name: "$fundef_46", linkageName: "$fundef_46", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!21 = !DILocation(line: 4, column: 5, scope: !20) +!22 = distinct !DISubprogram(name: "$fundef_44", linkageName: "$fundef_44", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!23 = !DILocation(line: 4, column: 15, scope: !22) +!24 = !DILocation(line: 4, column: 14, scope: !22) +!25 = !DILocation(line: 5, column: 13, scope: !22) +!26 = !DILocation(line: 6, column: 15, scope: !22) +!27 = !DILocation(line: 7, column: 5, scope: !22) +!28 = distinct !DISubprogram(name: "$fundef_42", linkageName: "$fundef_42", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!29 = !DILocation(line: 4, column: 5, scope: !28) +!30 = distinct !DISubprogram(name: "$fundef_39", linkageName: "$fundef_39", scope: !31, file: !31, line: 104, type: !5, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!31 = !DIFile(filename: "ListUtils.scillib", directory: "../src/stdlib") +!32 = !DILocation(line: 104, column: 5, scope: !30) +!33 = distinct !DISubprogram(name: "$fundef_37", linkageName: "$fundef_37", scope: !31, file: !31, line: 103, type: !5, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!34 = !DILocation(line: 104, column: 5, scope: !33) +!35 = distinct !DISubprogram(name: "$fundef_35", linkageName: "$fundef_35", scope: !31, file: !31, line: 101, type: !5, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!36 = !DILocation(line: 101, column: 16, scope: !35) +!37 = !DILocation(line: 101, column: 15, scope: !35) +!38 = !DILocation(line: 102, column: 13, scope: !35) +!39 = !DILocation(line: 103, column: 34, scope: !35) +!40 = !DILocation(line: 105, column: 14, scope: !35) +!41 = !DILocation(line: 106, column: 3, scope: !35) +!42 = distinct !DISubprogram(name: "$fundef_33", linkageName: "$fundef_33", scope: !31, file: !31, line: 104, type: !5, scopeLine: 104, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!43 = !DILocation(line: 104, column: 5, scope: !42) +!44 = distinct !DISubprogram(name: "$fundef_31", linkageName: "$fundef_31", scope: !31, file: !31, line: 103, type: !5, scopeLine: 103, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!45 = !DILocation(line: 104, column: 5, scope: !44) +!46 = distinct !DISubprogram(name: "$fundef_29", linkageName: "$fundef_29", scope: !31, file: !31, line: 101, type: !5, scopeLine: 101, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!47 = !DILocation(line: 101, column: 16, scope: !46) +!48 = !DILocation(line: 101, column: 15, scope: !46) +!49 = !DILocation(line: 102, column: 13, scope: !46) +!50 = !DILocation(line: 103, column: 34, scope: !46) +!51 = !DILocation(line: 105, column: 14, scope: !46) +!52 = !DILocation(line: 106, column: 3, scope: !46) +!53 = distinct !DISubprogram(name: "$fundef_27", linkageName: "$fundef_27", scope: !54, file: !54, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!54 = !DIFile(filename: "Prelude", directory: ".") +!55 = !DILocation(line: 1, column: 37, scope: !53) +!56 = !DILocation(line: 1, column: 74, scope: !57) +!57 = distinct !DILexicalBlock(scope: !58, file: !54, line: 1, column: 52) +!58 = distinct !DILexicalBlock(scope: !53, file: !54, line: 1, column: 37) +!59 = !DILocation(line: 1, column: 83, scope: !57) +!60 = !DILocation(line: 1, column: 100, scope: !61) +!61 = distinct !DILexicalBlock(scope: !58, file: !54, line: 1, column: 93) +!62 = distinct !DISubprogram(name: "$fundef_25", linkageName: "$fundef_25", scope: !54, file: !54, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!63 = !DILocation(line: 1, column: 37, scope: !62) +!64 = distinct !DISubprogram(name: "$fundef_23", linkageName: "$fundef_23", scope: !54, file: !54, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!65 = !DILocation(line: 1, column: 17, scope: !64) +!66 = distinct !DISubprogram(name: "$fundef_21", linkageName: "$fundef_21", scope: !54, file: !54, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!67 = !DILocation(line: 1, column: 17, scope: !66) +!68 = distinct !DISubprogram(name: "$fundef_19", linkageName: "$fundef_19", scope: !54, file: !54, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !69 = !DILocation(line: 1, column: 17, scope: !68) -!70 = distinct !DISubprogram(name: "$fundef_24", linkageName: "$fundef_24", scope: !58, file: !58, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!71 = !DILocation(line: 1, column: 17, scope: !70) -!72 = distinct !DISubprogram(name: "$fundef_22", linkageName: "$fundef_22", scope: !58, file: !58, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!73 = !DILocation(line: 1, column: 17, scope: !72) -!74 = distinct !DISubprogram(name: "$fundef_20", linkageName: "$fundef_20", scope: !58, file: !58, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!75 = !DILocation(line: 1, column: 37, scope: !74) -!76 = !DILocation(line: 1, column: 74, scope: !77) -!77 = distinct !DILexicalBlock(scope: !78, file: !58, line: 1, column: 52) -!78 = distinct !DILexicalBlock(scope: !74, file: !58, line: 1, column: 37) -!79 = !DILocation(line: 1, column: 83, scope: !77) -!80 = !DILocation(line: 1, column: 100, scope: !81) -!81 = distinct !DILexicalBlock(scope: !78, file: !58, line: 1, column: 93) -!82 = distinct !DISubprogram(name: "$fundef_18", linkageName: "$fundef_18", scope: !58, file: !58, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!83 = !DILocation(line: 1, column: 37, scope: !82) -!84 = distinct !DISubprogram(name: "$fundef_16", linkageName: "$fundef_16", scope: !58, file: !58, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!70 = distinct !DISubprogram(name: "$fundef_17", linkageName: "$fundef_17", scope: !54, file: !54, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!71 = !DILocation(line: 1, column: 37, scope: !70) +!72 = !DILocation(line: 1, column: 74, scope: !73) +!73 = distinct !DILexicalBlock(scope: !74, file: !54, line: 1, column: 52) +!74 = distinct !DILexicalBlock(scope: !70, file: !54, line: 1, column: 37) +!75 = !DILocation(line: 1, column: 83, scope: !73) +!76 = !DILocation(line: 1, column: 100, scope: !77) +!77 = distinct !DILexicalBlock(scope: !74, file: !54, line: 1, column: 93) +!78 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !54, file: !54, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!79 = !DILocation(line: 1, column: 37, scope: !78) +!80 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !54, file: !54, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!81 = !DILocation(line: 1, column: 17, scope: !80) +!82 = distinct !DISubprogram(name: "$fundef_11", linkageName: "$fundef_11", scope: !54, file: !54, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!83 = !DILocation(line: 1, column: 17, scope: !82) +!84 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !54, file: !54, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !85 = !DILocation(line: 1, column: 17, scope: !84) -!86 = distinct !DISubprogram(name: "$fundef_14", linkageName: "$fundef_14", scope: !58, file: !58, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!87 = !DILocation(line: 1, column: 17, scope: !86) -!88 = distinct !DISubprogram(name: "$fundef_12", linkageName: "$fundef_12", scope: !58, file: !58, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!89 = !DILocation(line: 1, column: 17, scope: !88) -!90 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !91, file: !91, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!91 = !DIFile(filename: ".", directory: ".") -!92 = !DILocation(line: 1, column: 17, scope: !90) -!93 = !DILocation(line: 100, column: 3, scope: !90) -!94 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !5, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!95 = !DILocation(line: 2, column: 3, scope: !94) -!96 = !DILocation(line: 12, column: 3, scope: !94) -!97 = !DILocation(line: 20, column: 12, scope: !94) -!98 = !DILocation(line: 22, column: 9, scope: !94) -!99 = !DILocation(line: 24, column: 17, scope: !94) -!100 = !DILocation(line: 24, column: 16, scope: !94) -!101 = !DILocation(line: 25, column: 18, scope: !94) -!102 = !DILocation(line: 25, column: 17, scope: !94) -!103 = !DILocation(line: 26, column: 18, scope: !94) -!104 = !DILocation(line: 27, column: 19, scope: !94) -!105 = !DILocation(line: 29, column: 9, scope: !94) -!106 = !DILocation(line: 30, column: 9, scope: !94) -!107 = !DILocation(line: 31, column: 1, scope: !94) +!86 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !87, file: !87, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!87 = !DIFile(filename: ".", directory: ".") +!88 = !DILocation(line: 1, column: 17, scope: !86) +!89 = !DILocation(line: 100, column: 3, scope: !86) +!90 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !5, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) +!91 = !DILocation(line: 2, column: 3, scope: !90) +!92 = !DILocation(line: 12, column: 3, scope: !90) +!93 = !DILocation(line: 20, column: 12, scope: !90) +!94 = !DILocation(line: 22, column: 9, scope: !90) +!95 = !DILocation(line: 24, column: 17, scope: !90) +!96 = !DILocation(line: 24, column: 16, scope: !90) +!97 = !DILocation(line: 25, column: 18, scope: !90) +!98 = !DILocation(line: 25, column: 17, scope: !90) +!99 = !DILocation(line: 26, column: 18, scope: !90) +!100 = !DILocation(line: 27, column: 19, scope: !90) +!101 = !DILocation(line: 29, column: 9, scope: !90) +!102 = !DILocation(line: 30, column: 9, scope: !90) +!103 = !DILocation(line: 31, column: 1, scope: !90) diff --git a/tests/codegen/expr/dgold/pm1.scilexp.gold b/tests/codegen/expr/dgold/pm1.scilexp.gold index 9c2b17ca..a27d5092 100644 --- a/tests/codegen/expr/dgold/pm1.scilexp.gold +++ b/tests/codegen/expr/dgold/pm1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/pm2.scilexp.gold b/tests/codegen/expr/dgold/pm2.scilexp.gold index a3e81dbb..00c6b451 100644 --- a/tests/codegen/expr/dgold/pm2.scilexp.gold +++ b/tests/codegen/expr/dgold/pm2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/pm3.scilexp.gold b/tests/codegen/expr/dgold/pm3.scilexp.gold index 07c3fede..9c4dba28 100644 --- a/tests/codegen/expr/dgold/pm3.scilexp.gold +++ b/tests/codegen/expr/dgold/pm3.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/pm4.scilexp.gold b/tests/codegen/expr/dgold/pm4.scilexp.gold index 84b2e680..3dc661df 100644 --- a/tests/codegen/expr/dgold/pm4.scilexp.gold +++ b/tests/codegen/expr/dgold/pm4.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/pm5.scilexp.gold b/tests/codegen/expr/dgold/pm5.scilexp.gold index 8760542e..e1c1bb98 100644 --- a/tests/codegen/expr/dgold/pm5.scilexp.gold +++ b/tests/codegen/expr/dgold/pm5.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/pm6.scilexp.gold b/tests/codegen/expr/dgold/pm6.scilexp.gold index 2f437207..f96d9fbd 100644 --- a/tests/codegen/expr/dgold/pm6.scilexp.gold +++ b/tests/codegen/expr/dgold/pm6.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_10" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/pm7.scilexp.gold b/tests/codegen/expr/dgold/pm7.scilexp.gold index 35c2f8e9..f765604d 100644 --- a/tests/codegen/expr/dgold/pm7.scilexp.gold +++ b/tests/codegen/expr/dgold/pm7.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_14" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/sdivtests1.scilexp.gold b/tests/codegen/expr/dgold/sdivtests1.scilexp.gold index 429b155e..ab13c9a9 100644 --- a/tests/codegen/expr/dgold/sdivtests1.scilexp.gold +++ b/tests/codegen/expr/dgold/sdivtests1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/sdivtests2.scilexp.gold b/tests/codegen/expr/dgold/sdivtests2.scilexp.gold index 11e2d2c6..a191efcf 100644 --- a/tests/codegen/expr/dgold/sdivtests2.scilexp.gold +++ b/tests/codegen/expr/dgold/sdivtests2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/sdivtests3.scilexp.gold b/tests/codegen/expr/dgold/sdivtests3.scilexp.gold index 19e60b2e..4fc80c17 100644 --- a/tests/codegen/expr/dgold/sdivtests3.scilexp.gold +++ b/tests/codegen/expr/dgold/sdivtests3.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/sdivtests4.scilexp.gold b/tests/codegen/expr/dgold/sdivtests4.scilexp.gold index 586a1a96..0d350904 100644 --- a/tests/codegen/expr/dgold/sdivtests4.scilexp.gold +++ b/tests/codegen/expr/dgold/sdivtests4.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/simple-fun.scilexp.gold b/tests/codegen/expr/dgold/simple-fun.scilexp.gold index cf9548c3..54a6404b 100644 --- a/tests/codegen/expr/dgold/simple-fun.scilexp.gold +++ b/tests/codegen/expr/dgold/simple-fun.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/simple_ho.scilexp.gold b/tests/codegen/expr/dgold/simple_ho.scilexp.gold index 603a24a4..e35879f1 100644 --- a/tests/codegen/expr/dgold/simple_ho.scilexp.gold +++ b/tests/codegen/expr/dgold/simple_ho.scilexp.gold @@ -1,283 +1,240 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_10" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$ParamDescr_147" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_123" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_148" = type { %ParamDescrString, i32, %"$ParamDescr_147"* } -%"$$fundef_8_env_45" = type {} +%"$TransDescr_124" = type { %ParamDescrString, i32, %"$ParamDescr_123"* } +%"$$fundef_4_env_41" = type {} %Int32 = type { i32 } -%"$$fundef_6_env_46" = type { { %Int32 (i8*, %Int32)*, i8* } } -%"$$fundef_4_env_47" = type {} +%"$$fundef_2_env_42" = type {} @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_11" = global %"$TyDescrTy_PrimTyp_10" zeroinitializer -@"$TyDescr_Int32_12" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int32_Prim_11" to i8*) } -@"$TyDescr_Uint32_Prim_13" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 0 } -@"$TyDescr_Uint32_14" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint32_Prim_13" to i8*) } -@"$TyDescr_Int64_Prim_15" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 1 } -@"$TyDescr_Int64_16" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int64_Prim_15" to i8*) } -@"$TyDescr_Uint64_Prim_17" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 1 } -@"$TyDescr_Uint64_18" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint64_Prim_17" to i8*) } -@"$TyDescr_Int128_Prim_19" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 2 } -@"$TyDescr_Int128_20" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int128_Prim_19" to i8*) } -@"$TyDescr_Uint128_Prim_21" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 2 } -@"$TyDescr_Uint128_22" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint128_Prim_21" to i8*) } -@"$TyDescr_Int256_Prim_23" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 3 } -@"$TyDescr_Int256_24" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int256_Prim_23" to i8*) } -@"$TyDescr_Uint256_Prim_25" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 3 } -@"$TyDescr_Uint256_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint256_Prim_25" to i8*) } -@"$TyDescr_String_Prim_27" = global %"$TyDescrTy_PrimTyp_10" { i32 2, i32 0 } -@"$TyDescr_String_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_String_Prim_27" to i8*) } -@"$TyDescr_Bnum_Prim_29" = global %"$TyDescrTy_PrimTyp_10" { i32 3, i32 0 } -@"$TyDescr_Bnum_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Bnum_Prim_29" to i8*) } -@"$TyDescr_Message_Prim_31" = global %"$TyDescrTy_PrimTyp_10" { i32 4, i32 0 } -@"$TyDescr_Message_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Message_Prim_31" to i8*) } -@"$TyDescr_Event_Prim_33" = global %"$TyDescrTy_PrimTyp_10" { i32 5, i32 0 } -@"$TyDescr_Event_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Event_Prim_33" to i8*) } -@"$TyDescr_Exception_Prim_35" = global %"$TyDescrTy_PrimTyp_10" { i32 6, i32 0 } -@"$TyDescr_Exception_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Exception_Prim_35" to i8*) } -@"$TyDescr_Bystr_Prim_37" = global %"$TyDescrTy_PrimTyp_10" { i32 7, i32 0 } -@"$TyDescr_Bystr_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Bystr_Prim_37" to i8*) } -@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_34", %_TyDescrTy_Typ* @"$TyDescr_Int64_16", %_TyDescrTy_Typ* @"$TyDescr_Uint256_26", %_TyDescrTy_Typ* @"$TyDescr_Uint32_14", %_TyDescrTy_Typ* @"$TyDescr_Uint64_18", %_TyDescrTy_Typ* @"$TyDescr_Bnum_30", %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ* @"$TyDescr_Exception_36", %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ* @"$TyDescr_Int256_24", %_TyDescrTy_Typ* @"$TyDescr_Int128_20", %_TyDescrTy_Typ* @"$TyDescr_Bystr_38", %_TyDescrTy_Typ* @"$TyDescr_Message_32", %_TyDescrTy_Typ* @"$TyDescr_Int32_12"] +@"$TyDescr_Int32_Prim_7" = global %"$TyDescrTy_PrimTyp_6" zeroinitializer +@"$TyDescr_Int32_8" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int32_Prim_7" to i8*) } +@"$TyDescr_Uint32_Prim_9" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 0 } +@"$TyDescr_Uint32_10" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint32_Prim_9" to i8*) } +@"$TyDescr_Int64_Prim_11" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 1 } +@"$TyDescr_Int64_12" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int64_Prim_11" to i8*) } +@"$TyDescr_Uint64_Prim_13" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 1 } +@"$TyDescr_Uint64_14" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint64_Prim_13" to i8*) } +@"$TyDescr_Int128_Prim_15" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 2 } +@"$TyDescr_Int128_16" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int128_Prim_15" to i8*) } +@"$TyDescr_Uint128_Prim_17" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 2 } +@"$TyDescr_Uint128_18" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint128_Prim_17" to i8*) } +@"$TyDescr_Int256_Prim_19" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 3 } +@"$TyDescr_Int256_20" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int256_Prim_19" to i8*) } +@"$TyDescr_Uint256_Prim_21" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 3 } +@"$TyDescr_Uint256_22" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint256_Prim_21" to i8*) } +@"$TyDescr_String_Prim_23" = global %"$TyDescrTy_PrimTyp_6" { i32 2, i32 0 } +@"$TyDescr_String_24" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_String_Prim_23" to i8*) } +@"$TyDescr_Bnum_Prim_25" = global %"$TyDescrTy_PrimTyp_6" { i32 3, i32 0 } +@"$TyDescr_Bnum_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Bnum_Prim_25" to i8*) } +@"$TyDescr_Message_Prim_27" = global %"$TyDescrTy_PrimTyp_6" { i32 4, i32 0 } +@"$TyDescr_Message_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Message_Prim_27" to i8*) } +@"$TyDescr_Event_Prim_29" = global %"$TyDescrTy_PrimTyp_6" { i32 5, i32 0 } +@"$TyDescr_Event_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Event_Prim_29" to i8*) } +@"$TyDescr_Exception_Prim_31" = global %"$TyDescrTy_PrimTyp_6" { i32 6, i32 0 } +@"$TyDescr_Exception_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Exception_Prim_31" to i8*) } +@"$TyDescr_Bystr_Prim_33" = global %"$TyDescrTy_PrimTyp_6" { i32 7, i32 0 } +@"$TyDescr_Bystr_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Bystr_Prim_33" to i8*) } +@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_30", %_TyDescrTy_Typ* @"$TyDescr_Int64_12", %_TyDescrTy_Typ* @"$TyDescr_Uint256_22", %_TyDescrTy_Typ* @"$TyDescr_Uint32_10", %_TyDescrTy_Typ* @"$TyDescr_Uint64_14", %_TyDescrTy_Typ* @"$TyDescr_Bnum_26", %_TyDescrTy_Typ* @"$TyDescr_Uint128_18", %_TyDescrTy_Typ* @"$TyDescr_Exception_32", %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ* @"$TyDescr_Int256_20", %_TyDescrTy_Typ* @"$TyDescr_Int128_16", %_TyDescrTy_Typ* @"$TyDescr_Bystr_34", %_TyDescrTy_Typ* @"$TyDescr_Message_28", %_TyDescrTy_Typ* @"$TyDescr_Int32_8"] @_tydescr_table_length = constant i32 14 -@_contract_parameters = constant [0 x %"$ParamDescr_147"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_123"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_148"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_124"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Int32 @"$fundef_8"(%"$$fundef_8_env_45"* %0, %Int32 %1) !dbg !4 { +define internal %Int32 @"$fundef_4"(%"$$fundef_4_env_41"* %0, %Int32 %1) !dbg !4 { entry: - %"$retval_9" = alloca %Int32, align 8 - %"$gasrem_72" = load i64, i64* @_gasrem, align 8 - %"$gascmp_73" = icmp ugt i64 1, %"$gasrem_72" - br i1 %"$gascmp_73", label %"$out_of_gas_74", label %"$have_gas_75" + %"$retval_5" = alloca %Int32, align 8 + %"$gasrem_53" = load i64, i64* @_gasrem, align 8 + %"$gascmp_54" = icmp ugt i64 1, %"$gasrem_53" + br i1 %"$gascmp_54", label %"$out_of_gas_55", label %"$have_gas_56" -"$out_of_gas_74": ; preds = %entry +"$out_of_gas_55": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_75" + br label %"$have_gas_56" -"$have_gas_75": ; preds = %"$out_of_gas_74", %entry - %"$consume_76" = sub i64 %"$gasrem_72", 1 - store i64 %"$consume_76", i64* @_gasrem, align 8 +"$have_gas_56": ; preds = %"$out_of_gas_55", %entry + %"$consume_57" = sub i64 %"$gasrem_53", 1 + store i64 %"$consume_57", i64* @_gasrem, align 8 %b = alloca %Int32, align 8 - %"$gasrem_77" = load i64, i64* @_gasrem, align 8 - %"$gascmp_78" = icmp ugt i64 1, %"$gasrem_77" - br i1 %"$gascmp_78", label %"$out_of_gas_79", label %"$have_gas_80" + %"$gasrem_58" = load i64, i64* @_gasrem, align 8 + %"$gascmp_59" = icmp ugt i64 1, %"$gasrem_58" + br i1 %"$gascmp_59", label %"$out_of_gas_60", label %"$have_gas_61" -"$out_of_gas_79": ; preds = %"$have_gas_75" +"$out_of_gas_60": ; preds = %"$have_gas_56" call void @_out_of_gas() - br label %"$have_gas_80" + br label %"$have_gas_61" -"$have_gas_80": ; preds = %"$out_of_gas_79", %"$have_gas_75" - %"$consume_81" = sub i64 %"$gasrem_77", 1 - store i64 %"$consume_81", i64* @_gasrem, align 8 +"$have_gas_61": ; preds = %"$out_of_gas_60", %"$have_gas_56" + %"$consume_62" = sub i64 %"$gasrem_58", 1 + store i64 %"$consume_62", i64* @_gasrem, align 8 store %Int32 { i32 1 }, %Int32* %b, align 4, !dbg !8 - %"$gasrem_82" = load i64, i64* @_gasrem, align 8 - %"$gascmp_83" = icmp ugt i64 4, %"$gasrem_82" - br i1 %"$gascmp_83", label %"$out_of_gas_84", label %"$have_gas_85" + %"$gasrem_63" = load i64, i64* @_gasrem, align 8 + %"$gascmp_64" = icmp ugt i64 4, %"$gasrem_63" + br i1 %"$gascmp_64", label %"$out_of_gas_65", label %"$have_gas_66" -"$out_of_gas_84": ; preds = %"$have_gas_80" +"$out_of_gas_65": ; preds = %"$have_gas_61" call void @_out_of_gas() - br label %"$have_gas_85" - -"$have_gas_85": ; preds = %"$out_of_gas_84", %"$have_gas_80" - %"$consume_86" = sub i64 %"$gasrem_82", 4 - store i64 %"$consume_86", i64* @_gasrem, align 8 - %"$b_87" = load %Int32, %Int32* %b, align 4 - %"$add_call_88" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %"$b_87"), !dbg !9 - store %Int32 %"$add_call_88", %Int32* %"$retval_9", align 4, !dbg !9 - %"$$retval_9_89" = load %Int32, %Int32* %"$retval_9", align 4 - ret %Int32 %"$$retval_9_89" + br label %"$have_gas_66" + +"$have_gas_66": ; preds = %"$out_of_gas_65", %"$have_gas_61" + %"$consume_67" = sub i64 %"$gasrem_63", 4 + store i64 %"$consume_67", i64* @_gasrem, align 8 + %"$b_68" = load %Int32, %Int32* %b, align 4 + %"$add_call_69" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %"$b_68"), !dbg !9 + store %Int32 %"$add_call_69", %Int32* %"$retval_5", align 4, !dbg !9 + %"$$retval_5_70" = load %Int32, %Int32* %"$retval_5", align 4 + ret %Int32 %"$$retval_5_70" } -define internal %Int32 @"$fundef_6"(%"$$fundef_6_env_46"* %0, %Int32 %1) !dbg !10 { +define internal %Int32 @"$fundef_2"(%"$$fundef_2_env_42"* %0, { %Int32 (i8*, %Int32)*, i8* } %1, %Int32 %2) !dbg !10 { entry: - %"$$fundef_6_env_h_59" = getelementptr inbounds %"$$fundef_6_env_46", %"$$fundef_6_env_46"* %0, i32 0, i32 0 - %"$h_envload_60" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$$fundef_6_env_h_59", align 8 - %h = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 - store { %Int32 (i8*, %Int32)*, i8* } %"$h_envload_60", { %Int32 (i8*, %Int32)*, i8* }* %h, align 8 - %"$retval_7" = alloca %Int32, align 8 - %"$gasrem_61" = load i64, i64* @_gasrem, align 8 - %"$gascmp_62" = icmp ugt i64 1, %"$gasrem_61" - br i1 %"$gascmp_62", label %"$out_of_gas_63", label %"$have_gas_64" - -"$out_of_gas_63": ; preds = %entry + %"$retval_3" = alloca %Int32, align 8 + %"$gasrem_43" = load i64, i64* @_gasrem, align 8 + %"$gascmp_44" = icmp ugt i64 1, %"$gasrem_43" + br i1 %"$gascmp_44", label %"$out_of_gas_45", label %"$have_gas_46" + +"$out_of_gas_45": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_64" + br label %"$have_gas_46" -"$have_gas_64": ; preds = %"$out_of_gas_63", %entry - %"$consume_65" = sub i64 %"$gasrem_61", 1 - store i64 %"$consume_65", i64* @_gasrem, align 8 +"$have_gas_46": ; preds = %"$out_of_gas_45", %entry + %"$consume_47" = sub i64 %"$gasrem_43", 1 + store i64 %"$consume_47", i64* @_gasrem, align 8 %"$h_0" = alloca %Int32, align 8 - %"$h_66" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %h, align 8 - %"$h_fptr_67" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$h_66", 0 - %"$h_envptr_68" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$h_66", 1 - %"$h_call_69" = call %Int32 %"$h_fptr_67"(i8* %"$h_envptr_68", %Int32 %1), !dbg !11 - store %Int32 %"$h_call_69", %Int32* %"$h_0", align 4, !dbg !11 - %"$$h_0_70" = load %Int32, %Int32* %"$h_0", align 4 - store %Int32 %"$$h_0_70", %Int32* %"$retval_7", align 4, !dbg !11 - %"$$retval_7_71" = load %Int32, %Int32* %"$retval_7", align 4 - ret %Int32 %"$$retval_7_71" -} - -define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_4"(%"$$fundef_4_env_47"* %0, { %Int32 (i8*, %Int32)*, i8* } %1) !dbg !12 { -entry: - %"$retval_5" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 - %"$gasrem_48" = load i64, i64* @_gasrem, align 8 - %"$gascmp_49" = icmp ugt i64 1, %"$gasrem_48" - br i1 %"$gascmp_49", label %"$out_of_gas_50", label %"$have_gas_51" - -"$out_of_gas_50": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_51" - -"$have_gas_51": ; preds = %"$out_of_gas_50", %entry - %"$consume_52" = sub i64 %"$gasrem_48", 1 - store i64 %"$consume_52", i64* @_gasrem, align 8 - %"$$fundef_6_envp_53_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_6_envp_53_salloc" = call i8* @_salloc(i8* %"$$fundef_6_envp_53_load", i64 16) - %"$$fundef_6_envp_53" = bitcast i8* %"$$fundef_6_envp_53_salloc" to %"$$fundef_6_env_46"* - %"$$fundef_6_env_voidp_55" = bitcast %"$$fundef_6_env_46"* %"$$fundef_6_envp_53" to i8* - %"$$fundef_6_cloval_56" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_6_env_46"*, %Int32)* @"$fundef_6" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_6_env_voidp_55", 1 - %"$$fundef_6_env_h_57" = getelementptr inbounds %"$$fundef_6_env_46", %"$$fundef_6_env_46"* %"$$fundef_6_envp_53", i32 0, i32 0 - store { %Int32 (i8*, %Int32)*, i8* } %1, { %Int32 (i8*, %Int32)*, i8* }* %"$$fundef_6_env_h_57", align 8 - store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_6_cloval_56", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_5", align 8, !dbg !13 - %"$$retval_5_58" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_5", align 8 - ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_5_58" + %"$h_fptr_48" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %1, 0 + %"$h_envptr_49" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %1, 1 + %"$h_call_50" = call %Int32 %"$h_fptr_48"(i8* %"$h_envptr_49", %Int32 %2), !dbg !11 + store %Int32 %"$h_call_50", %Int32* %"$h_0", align 4, !dbg !11 + %"$$h_0_51" = load %Int32, %Int32* %"$h_0", align 4 + store %Int32 %"$$h_0_51", %Int32* %"$retval_3", align 4, !dbg !11 + %"$$retval_3_52" = load %Int32, %Int32* %"$retval_3", align 4 + ret %Int32 %"$$retval_3_52" } declare void @_out_of_gas() -declare i8* @_salloc(i8*, i64) - declare %Int32 @_add_Int32(%Int32, %Int32) -define void @_init_libs() !dbg !14 { +define void @_init_libs() !dbg !12 { entry: ret void } -define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !16 { +define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !14 { entry: - %"$expr_3" = alloca %Int32, align 8 - %"$gasrem_90" = load i64, i64* @_gasrem, align 8 - %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" - br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" + %"$expr_1" = alloca %Int32, align 8 + %"$gasrem_71" = load i64, i64* @_gasrem, align 8 + %"$gascmp_72" = icmp ugt i64 1, %"$gasrem_71" + br i1 %"$gascmp_72", label %"$out_of_gas_73", label %"$have_gas_74" -"$out_of_gas_92": ; preds = %entry +"$out_of_gas_73": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_93" + br label %"$have_gas_74" -"$have_gas_93": ; preds = %"$out_of_gas_92", %entry - %"$consume_94" = sub i64 %"$gasrem_90", 1 - store i64 %"$consume_94", i64* @_gasrem, align 8 - %ho = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* }, align 8 - %"$gasrem_95" = load i64, i64* @_gasrem, align 8 - %"$gascmp_96" = icmp ugt i64 1, %"$gasrem_95" - br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" +"$have_gas_74": ; preds = %"$out_of_gas_73", %entry + %"$consume_75" = sub i64 %"$gasrem_71", 1 + store i64 %"$consume_75", i64* @_gasrem, align 8 + %ho = alloca { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* }, align 8 + %"$gasrem_76" = load i64, i64* @_gasrem, align 8 + %"$gascmp_77" = icmp ugt i64 2, %"$gasrem_76" + br i1 %"$gascmp_77", label %"$out_of_gas_78", label %"$have_gas_79" -"$out_of_gas_97": ; preds = %"$have_gas_93" +"$out_of_gas_78": ; preds = %"$have_gas_74" call void @_out_of_gas() - br label %"$have_gas_98" + br label %"$have_gas_79" -"$have_gas_98": ; preds = %"$out_of_gas_97", %"$have_gas_93" - %"$consume_99" = sub i64 %"$gasrem_95", 1 - store i64 %"$consume_99", i64* @_gasrem, align 8 - store { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_4_env_47"*, { %Int32 (i8*, %Int32)*, i8* })* @"$fundef_4" to { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* }* %ho, align 8, !dbg !17 - %"$gasrem_103" = load i64, i64* @_gasrem, align 8 - %"$gascmp_104" = icmp ugt i64 1, %"$gasrem_103" - br i1 %"$gascmp_104", label %"$out_of_gas_105", label %"$have_gas_106" +"$have_gas_79": ; preds = %"$out_of_gas_78", %"$have_gas_74" + %"$consume_80" = sub i64 %"$gasrem_76", 2 + store i64 %"$consume_80", i64* @_gasrem, align 8 + store { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* } { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)* bitcast (%Int32 (%"$$fundef_2_env_42"*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)* @"$fundef_2" to %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*), i8* null }, { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* }* %ho, align 8, !dbg !15 + %"$gasrem_84" = load i64, i64* @_gasrem, align 8 + %"$gascmp_85" = icmp ugt i64 1, %"$gasrem_84" + br i1 %"$gascmp_85", label %"$out_of_gas_86", label %"$have_gas_87" -"$out_of_gas_105": ; preds = %"$have_gas_98" +"$out_of_gas_86": ; preds = %"$have_gas_79" call void @_out_of_gas() - br label %"$have_gas_106" + br label %"$have_gas_87" -"$have_gas_106": ; preds = %"$out_of_gas_105", %"$have_gas_98" - %"$consume_107" = sub i64 %"$gasrem_103", 1 - store i64 %"$consume_107", i64* @_gasrem, align 8 +"$have_gas_87": ; preds = %"$out_of_gas_86", %"$have_gas_79" + %"$consume_88" = sub i64 %"$gasrem_84", 1 + store i64 %"$consume_88", i64* @_gasrem, align 8 %inc = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 - %"$gasrem_108" = load i64, i64* @_gasrem, align 8 - %"$gascmp_109" = icmp ugt i64 1, %"$gasrem_108" - br i1 %"$gascmp_109", label %"$out_of_gas_110", label %"$have_gas_111" + %"$gasrem_89" = load i64, i64* @_gasrem, align 8 + %"$gascmp_90" = icmp ugt i64 1, %"$gasrem_89" + br i1 %"$gascmp_90", label %"$out_of_gas_91", label %"$have_gas_92" -"$out_of_gas_110": ; preds = %"$have_gas_106" +"$out_of_gas_91": ; preds = %"$have_gas_87" call void @_out_of_gas() - br label %"$have_gas_111" + br label %"$have_gas_92" -"$have_gas_111": ; preds = %"$out_of_gas_110", %"$have_gas_106" - %"$consume_112" = sub i64 %"$gasrem_108", 1 - store i64 %"$consume_112", i64* @_gasrem, align 8 - store { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_8_env_45"*, %Int32)* @"$fundef_8" to %Int32 (i8*, %Int32)*), i8* null }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8, !dbg !18 - %"$gasrem_116" = load i64, i64* @_gasrem, align 8 - %"$gascmp_117" = icmp ugt i64 1, %"$gasrem_116" - br i1 %"$gascmp_117", label %"$out_of_gas_118", label %"$have_gas_119" +"$have_gas_92": ; preds = %"$out_of_gas_91", %"$have_gas_87" + %"$consume_93" = sub i64 %"$gasrem_89", 1 + store i64 %"$consume_93", i64* @_gasrem, align 8 + store { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_4_env_41"*, %Int32)* @"$fundef_4" to %Int32 (i8*, %Int32)*), i8* null }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8, !dbg !16 + %"$gasrem_97" = load i64, i64* @_gasrem, align 8 + %"$gascmp_98" = icmp ugt i64 1, %"$gasrem_97" + br i1 %"$gascmp_98", label %"$out_of_gas_99", label %"$have_gas_100" -"$out_of_gas_118": ; preds = %"$have_gas_111" +"$out_of_gas_99": ; preds = %"$have_gas_92" call void @_out_of_gas() - br label %"$have_gas_119" + br label %"$have_gas_100" -"$have_gas_119": ; preds = %"$out_of_gas_118", %"$have_gas_111" - %"$consume_120" = sub i64 %"$gasrem_116", 1 - store i64 %"$consume_120", i64* @_gasrem, align 8 +"$have_gas_100": ; preds = %"$out_of_gas_99", %"$have_gas_92" + %"$consume_101" = sub i64 %"$gasrem_97", 1 + store i64 %"$consume_101", i64* @_gasrem, align 8 %hundred = alloca %Int32, align 8 - %"$gasrem_121" = load i64, i64* @_gasrem, align 8 - %"$gascmp_122" = icmp ugt i64 1, %"$gasrem_121" - br i1 %"$gascmp_122", label %"$out_of_gas_123", label %"$have_gas_124" + %"$gasrem_102" = load i64, i64* @_gasrem, align 8 + %"$gascmp_103" = icmp ugt i64 1, %"$gasrem_102" + br i1 %"$gascmp_103", label %"$out_of_gas_104", label %"$have_gas_105" -"$out_of_gas_123": ; preds = %"$have_gas_119" +"$out_of_gas_104": ; preds = %"$have_gas_100" call void @_out_of_gas() - br label %"$have_gas_124" + br label %"$have_gas_105" -"$have_gas_124": ; preds = %"$out_of_gas_123", %"$have_gas_119" - %"$consume_125" = sub i64 %"$gasrem_121", 1 - store i64 %"$consume_125", i64* @_gasrem, align 8 - store %Int32 { i32 100 }, %Int32* %hundred, align 4, !dbg !19 - %"$gasrem_126" = load i64, i64* @_gasrem, align 8 - %"$gascmp_127" = icmp ugt i64 1, %"$gasrem_126" - br i1 %"$gascmp_127", label %"$out_of_gas_128", label %"$have_gas_129" +"$have_gas_105": ; preds = %"$out_of_gas_104", %"$have_gas_100" + %"$consume_106" = sub i64 %"$gasrem_102", 1 + store i64 %"$consume_106", i64* @_gasrem, align 8 + store %Int32 { i32 100 }, %Int32* %hundred, align 4, !dbg !17 + %"$gasrem_107" = load i64, i64* @_gasrem, align 8 + %"$gascmp_108" = icmp ugt i64 1, %"$gasrem_107" + br i1 %"$gascmp_108", label %"$out_of_gas_109", label %"$have_gas_110" -"$out_of_gas_128": ; preds = %"$have_gas_124" +"$out_of_gas_109": ; preds = %"$have_gas_105" call void @_out_of_gas() - br label %"$have_gas_129" - -"$have_gas_129": ; preds = %"$out_of_gas_128", %"$have_gas_124" - %"$consume_130" = sub i64 %"$gasrem_126", 1 - store i64 %"$consume_130", i64* @_gasrem, align 8 - %"$ho_1" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 - %"$ho_131" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* }* %ho, align 8 - %"$ho_fptr_132" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* } %"$ho_131", 0 - %"$ho_envptr_133" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* } %"$ho_131", 1 - %"$inc_134" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8 - %"$ho_call_135" = call { %Int32 (i8*, %Int32)*, i8* } %"$ho_fptr_132"(i8* %"$ho_envptr_133", { %Int32 (i8*, %Int32)*, i8* } %"$inc_134"), !dbg !20 - store { %Int32 (i8*, %Int32)*, i8* } %"$ho_call_135", { %Int32 (i8*, %Int32)*, i8* }* %"$ho_1", align 8, !dbg !20 - %"$ho_2" = alloca %Int32, align 8 - %"$$ho_1_136" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$ho_1", align 8 - %"$$ho_1_fptr_137" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$ho_1_136", 0 - %"$$ho_1_envptr_138" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$ho_1_136", 1 - %"$hundred_139" = load %Int32, %Int32* %hundred, align 4 - %"$$ho_1_call_140" = call %Int32 %"$$ho_1_fptr_137"(i8* %"$$ho_1_envptr_138", %Int32 %"$hundred_139"), !dbg !20 - store %Int32 %"$$ho_1_call_140", %Int32* %"$ho_2", align 4, !dbg !20 - %"$$ho_2_141" = load %Int32, %Int32* %"$ho_2", align 4 - store %Int32 %"$$ho_2_141", %Int32* %"$expr_3", align 4, !dbg !20 - %"$$expr_3_142" = load %Int32, %Int32* %"$expr_3", align 4 - ret %Int32 %"$$expr_3_142" + br label %"$have_gas_110" + +"$have_gas_110": ; preds = %"$out_of_gas_109", %"$have_gas_105" + %"$consume_111" = sub i64 %"$gasrem_107", 1 + store i64 %"$consume_111", i64* @_gasrem, align 8 + %"$ho_112" = load { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* }, { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* }* %ho, align 8 + %"$ho_fptr_113" = extractvalue { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* } %"$ho_112", 0 + %"$ho_envptr_114" = extractvalue { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* } %"$ho_112", 1 + %"$inc_115" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8 + %"$hundred_116" = load %Int32, %Int32* %hundred, align 4 + %"$ho_call_117" = call %Int32 %"$ho_fptr_113"(i8* %"$ho_envptr_114", { %Int32 (i8*, %Int32)*, i8* } %"$inc_115", %Int32 %"$hundred_116"), !dbg !18 + store %Int32 %"$ho_call_117", %Int32* %"$expr_1", align 4, !dbg !18 + %"$$expr_1_118" = load %Int32, %Int32* %"$expr_1", align 4 + ret %Int32 %"$$expr_1_118" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_143" = call %Int32 @_scilla_expr_fun(i8* null) - %"$pval_144" = alloca %Int32, align 8 - %"$memvoidcast_145" = bitcast %Int32* %"$pval_144" to i8* - store %Int32 %"$exprval_143", %Int32* %"$pval_144", align 4 - %"$execptr_load_146" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_146", %_TyDescrTy_Typ* @"$TyDescr_Int32_12", i8* %"$memvoidcast_145") + %"$exprval_119" = call %Int32 @_scilla_expr_fun(i8* null) + %"$pval_120" = alloca %Int32, align 8 + %"$memvoidcast_121" = bitcast %Int32* %"$pval_120" to i8* + store %Int32 %"$exprval_119", %Int32* %"$pval_120", align 4 + %"$execptr_load_122" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_122", %_TyDescrTy_Typ* @"$TyDescr_Int32_8", i8* %"$memvoidcast_121") ret void } @@ -288,20 +245,18 @@ entry: !1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) !2 = !DIFile(filename: "simple_ho.scilexp", directory: "codegen/expr") !3 = !{} -!4 = distinct !DISubprogram(name: "$fundef_8", linkageName: "$fundef_8", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!4 = distinct !DISubprogram(name: "$fundef_4", linkageName: "$fundef_4", scope: !2, file: !2, line: 9, type: !5, scopeLine: 9, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !5 = !DISubroutineType(types: !6) !6 = !{!7} !7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") !8 = !DILocation(line: 9, column: 13, scope: !4) !9 = !DILocation(line: 10, column: 5, scope: !4) -!10 = distinct !DISubprogram(name: "$fundef_6", linkageName: "$fundef_6", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!10 = distinct !DISubprogram(name: "$fundef_2", linkageName: "$fundef_2", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) !11 = !DILocation(line: 4, column: 5, scope: !10) -!12 = distinct !DISubprogram(name: "$fundef_4", linkageName: "$fundef_4", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!13 = !DILocation(line: 4, column: 5, scope: !12) -!14 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !15, file: !15, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) -!15 = !DIFile(filename: ".", directory: ".") -!16 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !5, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) -!17 = !DILocation(line: 3, column: 3, scope: !16) -!18 = !DILocation(line: 9, column: 5, scope: !16) -!19 = !DILocation(line: 13, column: 15, scope: !16) -!20 = !DILocation(line: 14, column: 1, scope: !16) +!12 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !13, file: !13, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!13 = !DIFile(filename: ".", directory: ".") +!14 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 2, type: !5, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) +!15 = !DILocation(line: 3, column: 3, scope: !14) +!16 = !DILocation(line: 9, column: 5, scope: !14) +!17 = !DILocation(line: 13, column: 15, scope: !14) +!18 = !DILocation(line: 14, column: 1, scope: !14) diff --git a/tests/codegen/expr/dgold/tfun-val.scilexp.gold b/tests/codegen/expr/dgold/tfun-val.scilexp.gold index 56053ba1..0ffe1c72 100644 --- a/tests/codegen/expr/dgold/tfun-val.scilexp.gold +++ b/tests/codegen/expr/dgold/tfun-val.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/tname_clash.scilexp.gold b/tests/codegen/expr/dgold/tname_clash.scilexp.gold index 2333c4a1..509f38ca 100644 --- a/tests/codegen/expr/dgold/tname_clash.scilexp.gold +++ b/tests/codegen/expr/dgold/tname_clash.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/typ-inst.scilexp.gold b/tests/codegen/expr/dgold/typ-inst.scilexp.gold index e63b560d..63340439 100644 --- a/tests/codegen/expr/dgold/typ-inst.scilexp.gold +++ b/tests/codegen/expr/dgold/typ-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/typ1-inst.scilexp.gold b/tests/codegen/expr/dgold/typ1-inst.scilexp.gold index 4750140d..e0fe7d46 100644 --- a/tests/codegen/expr/dgold/typ1-inst.scilexp.gold +++ b/tests/codegen/expr/dgold/typ1-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_11" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/typ2-inst.scilexp.gold b/tests/codegen/expr/dgold/typ2-inst.scilexp.gold index 8b416c5a..a92207af 100644 --- a/tests/codegen/expr/dgold/typ2-inst.scilexp.gold +++ b/tests/codegen/expr/dgold/typ2-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_29" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/typ3-inst.scilexp.gold b/tests/codegen/expr/dgold/typ3-inst.scilexp.gold index 0876c802..16f5de68 100644 --- a/tests/codegen/expr/dgold/typ3-inst.scilexp.gold +++ b/tests/codegen/expr/dgold/typ3-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_31" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/uint256-fun.scilexp.gold b/tests/codegen/expr/dgold/uint256-fun.scilexp.gold index 217a0212..054aefb0 100644 --- a/tests/codegen/expr/dgold/uint256-fun.scilexp.gold +++ b/tests/codegen/expr/dgold/uint256-fun.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/dgold/uncurry_simple.scilexp.gold b/tests/codegen/expr/dgold/uncurry_simple.scilexp.gold new file mode 100644 index 00000000..13e9a8ab --- /dev/null +++ b/tests/codegen/expr/dgold/uncurry_simple.scilexp.gold @@ -0,0 +1,585 @@ +; ModuleID = 'scilla_expr' +source_filename = "scilla_expr" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" + +%"$TyDescrTy_PrimTyp_17" = type { i32, i32 } +%_TyDescrTy_Typ = type { i32, i8* } +%"$ParamDescr_282" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%ParamDescrString = type { i8*, i32 } +%"$TransDescr_283" = type { %ParamDescrString, i32, %"$ParamDescr_282"* } +%"$$fundef_15_env_52" = type { %Int32 } +%Int32 = type { i32 } +%"$$fundef_13_env_53" = type {} +%"$$fundef_11_env_54" = type { %Int32 } +%"$$fundef_9_env_55" = type {} +%"$$fundef_7_env_56" = type {} + +@_execptr = global i8* null +@_gasrem = global i64 0 +@"$TyDescr_Int32_Prim_18" = global %"$TyDescrTy_PrimTyp_17" zeroinitializer +@"$TyDescr_Int32_19" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Int32_Prim_18" to i8*) } +@"$TyDescr_Uint32_Prim_20" = global %"$TyDescrTy_PrimTyp_17" { i32 1, i32 0 } +@"$TyDescr_Uint32_21" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Uint32_Prim_20" to i8*) } +@"$TyDescr_Int64_Prim_22" = global %"$TyDescrTy_PrimTyp_17" { i32 0, i32 1 } +@"$TyDescr_Int64_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Int64_Prim_22" to i8*) } +@"$TyDescr_Uint64_Prim_24" = global %"$TyDescrTy_PrimTyp_17" { i32 1, i32 1 } +@"$TyDescr_Uint64_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Uint64_Prim_24" to i8*) } +@"$TyDescr_Int128_Prim_26" = global %"$TyDescrTy_PrimTyp_17" { i32 0, i32 2 } +@"$TyDescr_Int128_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Int128_Prim_26" to i8*) } +@"$TyDescr_Uint128_Prim_28" = global %"$TyDescrTy_PrimTyp_17" { i32 1, i32 2 } +@"$TyDescr_Uint128_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Uint128_Prim_28" to i8*) } +@"$TyDescr_Int256_Prim_30" = global %"$TyDescrTy_PrimTyp_17" { i32 0, i32 3 } +@"$TyDescr_Int256_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Int256_Prim_30" to i8*) } +@"$TyDescr_Uint256_Prim_32" = global %"$TyDescrTy_PrimTyp_17" { i32 1, i32 3 } +@"$TyDescr_Uint256_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Uint256_Prim_32" to i8*) } +@"$TyDescr_String_Prim_34" = global %"$TyDescrTy_PrimTyp_17" { i32 2, i32 0 } +@"$TyDescr_String_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_String_Prim_34" to i8*) } +@"$TyDescr_Bnum_Prim_36" = global %"$TyDescrTy_PrimTyp_17" { i32 3, i32 0 } +@"$TyDescr_Bnum_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Bnum_Prim_36" to i8*) } +@"$TyDescr_Message_Prim_38" = global %"$TyDescrTy_PrimTyp_17" { i32 4, i32 0 } +@"$TyDescr_Message_39" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Message_Prim_38" to i8*) } +@"$TyDescr_Event_Prim_40" = global %"$TyDescrTy_PrimTyp_17" { i32 5, i32 0 } +@"$TyDescr_Event_41" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Event_Prim_40" to i8*) } +@"$TyDescr_Exception_Prim_42" = global %"$TyDescrTy_PrimTyp_17" { i32 6, i32 0 } +@"$TyDescr_Exception_43" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Exception_Prim_42" to i8*) } +@"$TyDescr_Bystr_Prim_44" = global %"$TyDescrTy_PrimTyp_17" { i32 7, i32 0 } +@"$TyDescr_Bystr_45" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Bystr_Prim_44" to i8*) } +@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_41", %_TyDescrTy_Typ* @"$TyDescr_Int64_23", %_TyDescrTy_Typ* @"$TyDescr_Uint256_33", %_TyDescrTy_Typ* @"$TyDescr_Uint32_21", %_TyDescrTy_Typ* @"$TyDescr_Uint64_25", %_TyDescrTy_Typ* @"$TyDescr_Bnum_37", %_TyDescrTy_Typ* @"$TyDescr_Uint128_29", %_TyDescrTy_Typ* @"$TyDescr_Exception_43", %_TyDescrTy_Typ* @"$TyDescr_String_35", %_TyDescrTy_Typ* @"$TyDescr_Int256_31", %_TyDescrTy_Typ* @"$TyDescr_Int128_27", %_TyDescrTy_Typ* @"$TyDescr_Bystr_45", %_TyDescrTy_Typ* @"$TyDescr_Message_39", %_TyDescrTy_Typ* @"$TyDescr_Int32_19"] +@_tydescr_table_length = constant i32 14 +@_contract_parameters = constant [0 x %"$ParamDescr_282"] zeroinitializer +@_contract_parameters_length = constant i32 0 +@_transition_parameters = constant [0 x %"$TransDescr_283"] zeroinitializer +@_transition_parameters_length = constant i32 0 + +define internal %Int32 @"$fundef_15"(%"$$fundef_15_env_52"* %0, %Int32 %1) !dbg !4 { +entry: + %"$$fundef_15_env_a__107" = getelementptr inbounds %"$$fundef_15_env_52", %"$$fundef_15_env_52"* %0, i32 0, i32 0 + %"$a__envload_108" = load %Int32, %Int32* %"$$fundef_15_env_a__107", align 4 + %a_ = alloca %Int32, align 8 + store %Int32 %"$a__envload_108", %Int32* %a_, align 4 + %"$retval_16" = alloca %Int32, align 8 + %"$gasrem_109" = load i64, i64* @_gasrem, align 8 + %"$gascmp_110" = icmp ugt i64 4, %"$gasrem_109" + br i1 %"$gascmp_110", label %"$out_of_gas_111", label %"$have_gas_112" + +"$out_of_gas_111": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_112" + +"$have_gas_112": ; preds = %"$out_of_gas_111", %entry + %"$consume_113" = sub i64 %"$gasrem_109", 4 + store i64 %"$consume_113", i64* @_gasrem, align 8 + %"$a__114" = load %Int32, %Int32* %a_, align 4 + %"$add_call_115" = call %Int32 @_add_Int32(%Int32 %"$a__114", %Int32 %1), !dbg !8 + store %Int32 %"$add_call_115", %Int32* %"$retval_16", align 4, !dbg !8 + %"$$retval_16_116" = load %Int32, %Int32* %"$retval_16", align 4 + ret %Int32 %"$$retval_16_116" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_13"(%"$$fundef_13_env_53"* %0, %Int32 %1) !dbg !9 { +entry: + %"$retval_14" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_85" = load i64, i64* @_gasrem, align 8 + %"$gascmp_86" = icmp ugt i64 1, %"$gasrem_85" + br i1 %"$gascmp_86", label %"$out_of_gas_87", label %"$have_gas_88" + +"$out_of_gas_87": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_88" + +"$have_gas_88": ; preds = %"$out_of_gas_87", %entry + %"$consume_89" = sub i64 %"$gasrem_85", 1 + store i64 %"$consume_89", i64* @_gasrem, align 8 + %a_ = alloca %Int32, align 8 + %"$gasrem_90" = load i64, i64* @_gasrem, align 8 + %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" + br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" + +"$out_of_gas_92": ; preds = %"$have_gas_88" + call void @_out_of_gas() + br label %"$have_gas_93" + +"$have_gas_93": ; preds = %"$out_of_gas_92", %"$have_gas_88" + %"$consume_94" = sub i64 %"$gasrem_90", 1 + store i64 %"$consume_94", i64* @_gasrem, align 8 + store %Int32 %1, %Int32* %a_, align 4, !dbg !10 + %"$gasrem_95" = load i64, i64* @_gasrem, align 8 + %"$gascmp_96" = icmp ugt i64 1, %"$gasrem_95" + br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" + +"$out_of_gas_97": ; preds = %"$have_gas_93" + call void @_out_of_gas() + br label %"$have_gas_98" + +"$have_gas_98": ; preds = %"$out_of_gas_97", %"$have_gas_93" + %"$consume_99" = sub i64 %"$gasrem_95", 1 + store i64 %"$consume_99", i64* @_gasrem, align 8 + %"$$fundef_15_envp_100_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_15_envp_100_salloc" = call i8* @_salloc(i8* %"$$fundef_15_envp_100_load", i64 4) + %"$$fundef_15_envp_100" = bitcast i8* %"$$fundef_15_envp_100_salloc" to %"$$fundef_15_env_52"* + %"$$fundef_15_env_voidp_102" = bitcast %"$$fundef_15_env_52"* %"$$fundef_15_envp_100" to i8* + %"$$fundef_15_cloval_103" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_15_env_52"*, %Int32)* @"$fundef_15" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_15_env_voidp_102", 1 + %"$$fundef_15_env_a__104" = getelementptr inbounds %"$$fundef_15_env_52", %"$$fundef_15_env_52"* %"$$fundef_15_envp_100", i32 0, i32 0 + %"$a__105" = load %Int32, %Int32* %a_, align 4 + store %Int32 %"$a__105", %Int32* %"$$fundef_15_env_a__104", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_15_cloval_103", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_14", align 8, !dbg !11 + %"$$retval_14_106" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_14", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_14_106" +} + +define internal %Int32 @"$fundef_11"(%"$$fundef_11_env_54"* %0, %Int32 %1) !dbg !12 { +entry: + %"$$fundef_11_env_a_75" = getelementptr inbounds %"$$fundef_11_env_54", %"$$fundef_11_env_54"* %0, i32 0, i32 0 + %"$a_envload_76" = load %Int32, %Int32* %"$$fundef_11_env_a_75", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_76", %Int32* %a, align 4 + %"$retval_12" = alloca %Int32, align 8 + %"$gasrem_77" = load i64, i64* @_gasrem, align 8 + %"$gascmp_78" = icmp ugt i64 4, %"$gasrem_77" + br i1 %"$gascmp_78", label %"$out_of_gas_79", label %"$have_gas_80" + +"$out_of_gas_79": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_80" + +"$have_gas_80": ; preds = %"$out_of_gas_79", %entry + %"$consume_81" = sub i64 %"$gasrem_77", 4 + store i64 %"$consume_81", i64* @_gasrem, align 8 + %"$a_82" = load %Int32, %Int32* %a, align 4 + %"$sub_call_83" = call %Int32 @_sub_Int32(%Int32 %"$a_82", %Int32 %1), !dbg !13 + store %Int32 %"$sub_call_83", %Int32* %"$retval_12", align 4, !dbg !13 + %"$$retval_12_84" = load %Int32, %Int32* %"$retval_12", align 4 + ret %Int32 %"$$retval_12_84" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_9"(%"$$fundef_9_env_55"* %0, %Int32 %1) !dbg !14 { +entry: + %"$retval_10" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_64" = load i64, i64* @_gasrem, align 8 + %"$gascmp_65" = icmp ugt i64 1, %"$gasrem_64" + br i1 %"$gascmp_65", label %"$out_of_gas_66", label %"$have_gas_67" + +"$out_of_gas_66": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_67" + +"$have_gas_67": ; preds = %"$out_of_gas_66", %entry + %"$consume_68" = sub i64 %"$gasrem_64", 1 + store i64 %"$consume_68", i64* @_gasrem, align 8 + %"$$fundef_11_envp_69_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_11_envp_69_salloc" = call i8* @_salloc(i8* %"$$fundef_11_envp_69_load", i64 4) + %"$$fundef_11_envp_69" = bitcast i8* %"$$fundef_11_envp_69_salloc" to %"$$fundef_11_env_54"* + %"$$fundef_11_env_voidp_71" = bitcast %"$$fundef_11_env_54"* %"$$fundef_11_envp_69" to i8* + %"$$fundef_11_cloval_72" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_11_env_54"*, %Int32)* @"$fundef_11" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_11_env_voidp_71", 1 + %"$$fundef_11_env_a_73" = getelementptr inbounds %"$$fundef_11_env_54", %"$$fundef_11_env_54"* %"$$fundef_11_envp_69", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_11_env_a_73", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_11_cloval_72", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_10", align 8, !dbg !15 + %"$$retval_10_74" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_10", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_10_74" +} + +define internal %Int32 @"$fundef_7"(%"$$fundef_7_env_56"* %0, %Int32 %1, %Int32 %2) !dbg !16 { +entry: + %"$retval_8" = alloca %Int32, align 8 + %"$gasrem_57" = load i64, i64* @_gasrem, align 8 + %"$gascmp_58" = icmp ugt i64 4, %"$gasrem_57" + br i1 %"$gascmp_58", label %"$out_of_gas_59", label %"$have_gas_60" + +"$out_of_gas_59": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_60" + +"$have_gas_60": ; preds = %"$out_of_gas_59", %entry + %"$consume_61" = sub i64 %"$gasrem_57", 4 + store i64 %"$consume_61", i64* @_gasrem, align 8 + %"$add_call_62" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %2), !dbg !17 + store %Int32 %"$add_call_62", %Int32* %"$retval_8", align 4, !dbg !17 + %"$$retval_8_63" = load %Int32, %Int32* %"$retval_8", align 4 + ret %Int32 %"$$retval_8_63" +} + +declare void @_out_of_gas() + +declare %Int32 @_add_Int32(%Int32, %Int32) + +declare i8* @_salloc(i8*, i64) + +declare %Int32 @_sub_Int32(%Int32, %Int32) + +define void @_init_libs() !dbg !18 { +entry: + ret void +} + +define internal %Int32 @_scilla_expr_fun(i8* %0) !dbg !20 { +entry: + %"$expr_6" = alloca %Int32, align 8 + %"$gasrem_117" = load i64, i64* @_gasrem, align 8 + %"$gascmp_118" = icmp ugt i64 1, %"$gasrem_117" + br i1 %"$gascmp_118", label %"$out_of_gas_119", label %"$have_gas_120" + +"$out_of_gas_119": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_120" + +"$have_gas_120": ; preds = %"$out_of_gas_119", %entry + %"$consume_121" = sub i64 %"$gasrem_117", 1 + store i64 %"$consume_121", i64* @_gasrem, align 8 + %f1 = alloca { %Int32 (i8*, %Int32, %Int32)*, i8* }, align 8 + %"$gasrem_122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_123" = icmp ugt i64 2, %"$gasrem_122" + br i1 %"$gascmp_123", label %"$out_of_gas_124", label %"$have_gas_125" + +"$out_of_gas_124": ; preds = %"$have_gas_120" + call void @_out_of_gas() + br label %"$have_gas_125" + +"$have_gas_125": ; preds = %"$out_of_gas_124", %"$have_gas_120" + %"$consume_126" = sub i64 %"$gasrem_122", 2 + store i64 %"$consume_126", i64* @_gasrem, align 8 + store { %Int32 (i8*, %Int32, %Int32)*, i8* } { %Int32 (i8*, %Int32, %Int32)* bitcast (%Int32 (%"$$fundef_7_env_56"*, %Int32, %Int32)* @"$fundef_7" to %Int32 (i8*, %Int32, %Int32)*), i8* null }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* %f1, align 8, !dbg !21 + %"$gasrem_130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_131" = icmp ugt i64 1, %"$gasrem_130" + br i1 %"$gascmp_131", label %"$out_of_gas_132", label %"$have_gas_133" + +"$out_of_gas_132": ; preds = %"$have_gas_125" + call void @_out_of_gas() + br label %"$have_gas_133" + +"$have_gas_133": ; preds = %"$out_of_gas_132", %"$have_gas_125" + %"$consume_134" = sub i64 %"$gasrem_130", 1 + store i64 %"$consume_134", i64* @_gasrem, align 8 + %f3 = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_135" = load i64, i64* @_gasrem, align 8 + %"$gascmp_136" = icmp ugt i64 1, %"$gasrem_135" + br i1 %"$gascmp_136", label %"$out_of_gas_137", label %"$have_gas_138" + +"$out_of_gas_137": ; preds = %"$have_gas_133" + call void @_out_of_gas() + br label %"$have_gas_138" + +"$have_gas_138": ; preds = %"$out_of_gas_137", %"$have_gas_133" + %"$consume_139" = sub i64 %"$gasrem_135", 1 + store i64 %"$consume_139", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_9_env_55"*, %Int32)* @"$fundef_9" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f3, align 8, !dbg !22 + %"$gasrem_143" = load i64, i64* @_gasrem, align 8 + %"$gascmp_144" = icmp ugt i64 1, %"$gasrem_143" + br i1 %"$gascmp_144", label %"$out_of_gas_145", label %"$have_gas_146" + +"$out_of_gas_145": ; preds = %"$have_gas_138" + call void @_out_of_gas() + br label %"$have_gas_146" + +"$have_gas_146": ; preds = %"$out_of_gas_145", %"$have_gas_138" + %"$consume_147" = sub i64 %"$gasrem_143", 1 + store i64 %"$consume_147", i64* @_gasrem, align 8 + %f2 = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_148" = load i64, i64* @_gasrem, align 8 + %"$gascmp_149" = icmp ugt i64 1, %"$gasrem_148" + br i1 %"$gascmp_149", label %"$out_of_gas_150", label %"$have_gas_151" + +"$out_of_gas_150": ; preds = %"$have_gas_146" + call void @_out_of_gas() + br label %"$have_gas_151" + +"$have_gas_151": ; preds = %"$out_of_gas_150", %"$have_gas_146" + %"$consume_152" = sub i64 %"$gasrem_148", 1 + store i64 %"$consume_152", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_13_env_53"*, %Int32)* @"$fundef_13" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f2, align 8, !dbg !23 + %"$gasrem_156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_157" = icmp ugt i64 1, %"$gasrem_156" + br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" + +"$out_of_gas_158": ; preds = %"$have_gas_151" + call void @_out_of_gas() + br label %"$have_gas_159" + +"$have_gas_159": ; preds = %"$out_of_gas_158", %"$have_gas_151" + %"$consume_160" = sub i64 %"$gasrem_156", 1 + store i64 %"$consume_160", i64* @_gasrem, align 8 + %n1 = alloca %Int32, align 8 + %"$gasrem_161" = load i64, i64* @_gasrem, align 8 + %"$gascmp_162" = icmp ugt i64 1, %"$gasrem_161" + br i1 %"$gascmp_162", label %"$out_of_gas_163", label %"$have_gas_164" + +"$out_of_gas_163": ; preds = %"$have_gas_159" + call void @_out_of_gas() + br label %"$have_gas_164" + +"$have_gas_164": ; preds = %"$out_of_gas_163", %"$have_gas_159" + %"$consume_165" = sub i64 %"$gasrem_161", 1 + store i64 %"$consume_165", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* %n1, align 4, !dbg !24 + %"$gasrem_166" = load i64, i64* @_gasrem, align 8 + %"$gascmp_167" = icmp ugt i64 1, %"$gasrem_166" + br i1 %"$gascmp_167", label %"$out_of_gas_168", label %"$have_gas_169" + +"$out_of_gas_168": ; preds = %"$have_gas_164" + call void @_out_of_gas() + br label %"$have_gas_169" + +"$have_gas_169": ; preds = %"$out_of_gas_168", %"$have_gas_164" + %"$consume_170" = sub i64 %"$gasrem_166", 1 + store i64 %"$consume_170", i64* @_gasrem, align 8 + %n2 = alloca %Int32, align 8 + %"$gasrem_171" = load i64, i64* @_gasrem, align 8 + %"$gascmp_172" = icmp ugt i64 1, %"$gasrem_171" + br i1 %"$gascmp_172", label %"$out_of_gas_173", label %"$have_gas_174" + +"$out_of_gas_173": ; preds = %"$have_gas_169" + call void @_out_of_gas() + br label %"$have_gas_174" + +"$have_gas_174": ; preds = %"$out_of_gas_173", %"$have_gas_169" + %"$consume_175" = sub i64 %"$gasrem_171", 1 + store i64 %"$consume_175", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* %n2, align 4, !dbg !25 + %"$gasrem_176" = load i64, i64* @_gasrem, align 8 + %"$gascmp_177" = icmp ugt i64 1, %"$gasrem_176" + br i1 %"$gascmp_177", label %"$out_of_gas_178", label %"$have_gas_179" + +"$out_of_gas_178": ; preds = %"$have_gas_174" + call void @_out_of_gas() + br label %"$have_gas_179" + +"$have_gas_179": ; preds = %"$out_of_gas_178", %"$have_gas_174" + %"$consume_180" = sub i64 %"$gasrem_176", 1 + store i64 %"$consume_180", i64* @_gasrem, align 8 + %res1 = alloca %Int32, align 8 + %"$gasrem_181" = load i64, i64* @_gasrem, align 8 + %"$gascmp_182" = icmp ugt i64 1, %"$gasrem_181" + br i1 %"$gascmp_182", label %"$out_of_gas_183", label %"$have_gas_184" + +"$out_of_gas_183": ; preds = %"$have_gas_179" + call void @_out_of_gas() + br label %"$have_gas_184" + +"$have_gas_184": ; preds = %"$out_of_gas_183", %"$have_gas_179" + %"$consume_185" = sub i64 %"$gasrem_181", 1 + store i64 %"$consume_185", i64* @_gasrem, align 8 + %"$f1_186" = load { %Int32 (i8*, %Int32, %Int32)*, i8* }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* %f1, align 8 + %"$f1_fptr_187" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$f1_186", 0 + %"$f1_envptr_188" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$f1_186", 1 + %"$n1_189" = load %Int32, %Int32* %n1, align 4 + %"$n2_190" = load %Int32, %Int32* %n2, align 4 + %"$f1_call_191" = call %Int32 %"$f1_fptr_187"(i8* %"$f1_envptr_188", %Int32 %"$n1_189", %Int32 %"$n2_190"), !dbg !26 + store %Int32 %"$f1_call_191", %Int32* %res1, align 4, !dbg !26 + %"$gasrem_192" = load i64, i64* @_gasrem, align 8 + %"$gascmp_193" = icmp ugt i64 1, %"$gasrem_192" + br i1 %"$gascmp_193", label %"$out_of_gas_194", label %"$have_gas_195" + +"$out_of_gas_194": ; preds = %"$have_gas_184" + call void @_out_of_gas() + br label %"$have_gas_195" + +"$have_gas_195": ; preds = %"$out_of_gas_194", %"$have_gas_184" + %"$consume_196" = sub i64 %"$gasrem_192", 1 + store i64 %"$consume_196", i64* @_gasrem, align 8 + %res2 = alloca %Int32, align 8 + %"$gasrem_197" = load i64, i64* @_gasrem, align 8 + %"$gascmp_198" = icmp ugt i64 1, %"$gasrem_197" + br i1 %"$gascmp_198", label %"$out_of_gas_199", label %"$have_gas_200" + +"$out_of_gas_199": ; preds = %"$have_gas_195" + call void @_out_of_gas() + br label %"$have_gas_200" + +"$have_gas_200": ; preds = %"$out_of_gas_199", %"$have_gas_195" + %"$consume_201" = sub i64 %"$gasrem_197", 1 + store i64 %"$consume_201", i64* @_gasrem, align 8 + %"$f2_0" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$f2_202" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f2, align 8 + %"$f2_fptr_203" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f2_202", 0 + %"$f2_envptr_204" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f2_202", 1 + %"$res1_205" = load %Int32, %Int32* %res1, align 4 + %"$f2_call_206" = call { %Int32 (i8*, %Int32)*, i8* } %"$f2_fptr_203"(i8* %"$f2_envptr_204", %Int32 %"$res1_205"), !dbg !27 + store { %Int32 (i8*, %Int32)*, i8* } %"$f2_call_206", { %Int32 (i8*, %Int32)*, i8* }* %"$f2_0", align 8, !dbg !27 + %"$f2_1" = alloca %Int32, align 8 + %"$$f2_0_207" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$f2_0", align 8 + %"$$f2_0_fptr_208" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f2_0_207", 0 + %"$$f2_0_envptr_209" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f2_0_207", 1 + %"$n1_210" = load %Int32, %Int32* %n1, align 4 + %"$$f2_0_call_211" = call %Int32 %"$$f2_0_fptr_208"(i8* %"$$f2_0_envptr_209", %Int32 %"$n1_210"), !dbg !27 + store %Int32 %"$$f2_0_call_211", %Int32* %"$f2_1", align 4, !dbg !27 + %"$$f2_1_212" = load %Int32, %Int32* %"$f2_1", align 4 + store %Int32 %"$$f2_1_212", %Int32* %res2, align 4, !dbg !27 + %"$gasrem_213" = load i64, i64* @_gasrem, align 8 + %"$gascmp_214" = icmp ugt i64 1, %"$gasrem_213" + br i1 %"$gascmp_214", label %"$out_of_gas_215", label %"$have_gas_216" + +"$out_of_gas_215": ; preds = %"$have_gas_200" + call void @_out_of_gas() + br label %"$have_gas_216" + +"$have_gas_216": ; preds = %"$out_of_gas_215", %"$have_gas_200" + %"$consume_217" = sub i64 %"$gasrem_213", 1 + store i64 %"$consume_217", i64* @_gasrem, align 8 + %partial = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_218" = load i64, i64* @_gasrem, align 8 + %"$gascmp_219" = icmp ugt i64 1, %"$gasrem_218" + br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" + +"$out_of_gas_220": ; preds = %"$have_gas_216" + call void @_out_of_gas() + br label %"$have_gas_221" + +"$have_gas_221": ; preds = %"$out_of_gas_220", %"$have_gas_216" + %"$consume_222" = sub i64 %"$gasrem_218", 1 + store i64 %"$consume_222", i64* @_gasrem, align 8 + %"$f3_2" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$f3_223" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f3, align 8 + %"$f3_fptr_224" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f3_223", 0 + %"$f3_envptr_225" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f3_223", 1 + %"$res2_226" = load %Int32, %Int32* %res2, align 4 + %"$f3_call_227" = call { %Int32 (i8*, %Int32)*, i8* } %"$f3_fptr_224"(i8* %"$f3_envptr_225", %Int32 %"$res2_226"), !dbg !28 + store { %Int32 (i8*, %Int32)*, i8* } %"$f3_call_227", { %Int32 (i8*, %Int32)*, i8* }* %"$f3_2", align 8, !dbg !28 + %"$$f3_2_228" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$f3_2", align 8 + store { %Int32 (i8*, %Int32)*, i8* } %"$$f3_2_228", { %Int32 (i8*, %Int32)*, i8* }* %partial, align 8, !dbg !28 + %"$gasrem_229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_230" = icmp ugt i64 1, %"$gasrem_229" + br i1 %"$gascmp_230", label %"$out_of_gas_231", label %"$have_gas_232" + +"$out_of_gas_231": ; preds = %"$have_gas_221" + call void @_out_of_gas() + br label %"$have_gas_232" + +"$have_gas_232": ; preds = %"$out_of_gas_231", %"$have_gas_221" + %"$consume_233" = sub i64 %"$gasrem_229", 1 + store i64 %"$consume_233", i64* @_gasrem, align 8 + %total = alloca %Int32, align 8 + %"$gasrem_234" = load i64, i64* @_gasrem, align 8 + %"$gascmp_235" = icmp ugt i64 1, %"$gasrem_234" + br i1 %"$gascmp_235", label %"$out_of_gas_236", label %"$have_gas_237" + +"$out_of_gas_236": ; preds = %"$have_gas_232" + call void @_out_of_gas() + br label %"$have_gas_237" + +"$have_gas_237": ; preds = %"$out_of_gas_236", %"$have_gas_232" + %"$consume_238" = sub i64 %"$gasrem_234", 1 + store i64 %"$consume_238", i64* @_gasrem, align 8 + %"$partial_3" = alloca %Int32, align 8 + %"$partial_239" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %partial, align 8 + %"$partial_fptr_240" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_239", 0 + %"$partial_envptr_241" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_239", 1 + %"$n1_242" = load %Int32, %Int32* %n1, align 4 + %"$partial_call_243" = call %Int32 %"$partial_fptr_240"(i8* %"$partial_envptr_241", %Int32 %"$n1_242"), !dbg !29 + store %Int32 %"$partial_call_243", %Int32* %"$partial_3", align 4, !dbg !29 + %"$$partial_3_244" = load %Int32, %Int32* %"$partial_3", align 4 + store %Int32 %"$$partial_3_244", %Int32* %total, align 4, !dbg !29 + %"$gasrem_245" = load i64, i64* @_gasrem, align 8 + %"$gascmp_246" = icmp ugt i64 1, %"$gasrem_245" + br i1 %"$gascmp_246", label %"$out_of_gas_247", label %"$have_gas_248" + +"$out_of_gas_247": ; preds = %"$have_gas_237" + call void @_out_of_gas() + br label %"$have_gas_248" + +"$have_gas_248": ; preds = %"$out_of_gas_247", %"$have_gas_237" + %"$consume_249" = sub i64 %"$gasrem_245", 1 + store i64 %"$consume_249", i64* @_gasrem, align 8 + %res3 = alloca %Int32, align 8 + %"$gasrem_250" = load i64, i64* @_gasrem, align 8 + %"$gascmp_251" = icmp ugt i64 1, %"$gasrem_250" + br i1 %"$gascmp_251", label %"$out_of_gas_252", label %"$have_gas_253" + +"$out_of_gas_252": ; preds = %"$have_gas_248" + call void @_out_of_gas() + br label %"$have_gas_253" + +"$have_gas_253": ; preds = %"$out_of_gas_252", %"$have_gas_248" + %"$consume_254" = sub i64 %"$gasrem_250", 1 + store i64 %"$consume_254", i64* @_gasrem, align 8 + %"$f3_4" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$f3_255" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f3, align 8 + %"$f3_fptr_256" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f3_255", 0 + %"$f3_envptr_257" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f3_255", 1 + %"$total_258" = load %Int32, %Int32* %total, align 4 + %"$f3_call_259" = call { %Int32 (i8*, %Int32)*, i8* } %"$f3_fptr_256"(i8* %"$f3_envptr_257", %Int32 %"$total_258"), !dbg !30 + store { %Int32 (i8*, %Int32)*, i8* } %"$f3_call_259", { %Int32 (i8*, %Int32)*, i8* }* %"$f3_4", align 8, !dbg !30 + %"$f3_5" = alloca %Int32, align 8 + %"$$f3_4_260" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$f3_4", align 8 + %"$$f3_4_fptr_261" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f3_4_260", 0 + %"$$f3_4_envptr_262" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f3_4_260", 1 + %"$n1_263" = load %Int32, %Int32* %n1, align 4 + %"$$f3_4_call_264" = call %Int32 %"$$f3_4_fptr_261"(i8* %"$$f3_4_envptr_262", %Int32 %"$n1_263"), !dbg !30 + store %Int32 %"$$f3_4_call_264", %Int32* %"$f3_5", align 4, !dbg !30 + %"$$f3_5_265" = load %Int32, %Int32* %"$f3_5", align 4 + store %Int32 %"$$f3_5_265", %Int32* %res3, align 4, !dbg !30 + %"$gasrem_266" = load i64, i64* @_gasrem, align 8 + %"$gascmp_267" = icmp ugt i64 1, %"$gasrem_266" + br i1 %"$gascmp_267", label %"$out_of_gas_268", label %"$have_gas_269" + +"$out_of_gas_268": ; preds = %"$have_gas_253" + call void @_out_of_gas() + br label %"$have_gas_269" + +"$have_gas_269": ; preds = %"$out_of_gas_268", %"$have_gas_253" + %"$consume_270" = sub i64 %"$gasrem_266", 1 + store i64 %"$consume_270", i64* @_gasrem, align 8 + %"$gasrem_271" = load i64, i64* @_gasrem, align 8 + %"$gascmp_272" = icmp ugt i64 1, %"$gasrem_271" + br i1 %"$gascmp_272", label %"$out_of_gas_273", label %"$have_gas_274" + +"$out_of_gas_273": ; preds = %"$have_gas_269" + call void @_out_of_gas() + br label %"$have_gas_274" + +"$have_gas_274": ; preds = %"$out_of_gas_273", %"$have_gas_269" + %"$consume_275" = sub i64 %"$gasrem_271", 1 + store i64 %"$consume_275", i64* @_gasrem, align 8 + %"$res3_276" = load %Int32, %Int32* %res3, align 4 + store %Int32 %"$res3_276", %Int32* %"$expr_6", align 4, !dbg !31 + %"$$expr_6_277" = load %Int32, %Int32* %"$expr_6", align 4 + ret %Int32 %"$$expr_6_277" +} + +declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) + +define void @scilla_main() { +entry: + %"$exprval_278" = call %Int32 @_scilla_expr_fun(i8* null) + %"$pval_279" = alloca %Int32, align 8 + %"$memvoidcast_280" = bitcast %Int32* %"$pval_279" to i8* + store %Int32 %"$exprval_278", %Int32* %"$pval_279", align 4 + %"$execptr_load_281" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_281", %_TyDescrTy_Typ* @"$TyDescr_Int32_19", i8* %"$memvoidcast_280") + ret void +} + +!llvm.module.flags = !{!0} +!llvm.dbg.cu = !{!1} + +!0 = !{i32 2, !"Debug Info Version", i32 3} +!1 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "Scilla Compiler", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !3, splitDebugInlining: false) +!2 = !DIFile(filename: "uncurry_simple.scilexp", directory: "codegen/expr") +!3 = !{} +!4 = distinct !DISubprogram(name: "$fundef_15", linkageName: "$fundef_15", scope: !2, file: !2, line: 22, type: !5, scopeLine: 22, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!5 = !DISubroutineType(types: !6) +!6 = !{!7} +!7 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "void") +!8 = !DILocation(line: 22, column: 17, scope: !4) +!9 = distinct !DISubprogram(name: "$fundef_13", linkageName: "$fundef_13", scope: !2, file: !2, line: 20, type: !5, scopeLine: 20, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!10 = !DILocation(line: 20, column: 18, scope: !9) +!11 = !DILocation(line: 22, column: 17, scope: !9) +!12 = distinct !DISubprogram(name: "$fundef_11", linkageName: "$fundef_11", scope: !2, file: !2, line: 14, type: !5, scopeLine: 14, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!13 = !DILocation(line: 14, column: 13, scope: !12) +!14 = distinct !DISubprogram(name: "$fundef_9", linkageName: "$fundef_9", scope: !2, file: !2, line: 13, type: !5, scopeLine: 13, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!15 = !DILocation(line: 14, column: 13, scope: !14) +!16 = distinct !DISubprogram(name: "$fundef_7", linkageName: "$fundef_7", scope: !2, file: !2, line: 4, type: !5, scopeLine: 4, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!17 = !DILocation(line: 5, column: 13, scope: !16) +!18 = distinct !DISubprogram(name: "_init_libs", linkageName: "_init_libs", scope: !19, file: !19, type: !5, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1, retainedNodes: !3) +!19 = !DIFile(filename: ".", directory: ".") +!20 = distinct !DISubprogram(name: "_scilla_expr_fun", linkageName: "_scilla_expr_fun", scope: !2, file: !2, line: 3, type: !5, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !3) +!21 = !DILocation(line: 4, column: 9, scope: !20) +!22 = !DILocation(line: 13, column: 9, scope: !20) +!23 = !DILocation(line: 20, column: 9, scope: !20) +!24 = !DILocation(line: 25, column: 10, scope: !20) +!25 = !DILocation(line: 26, column: 10, scope: !20) +!26 = !DILocation(line: 29, column: 12, scope: !20) +!27 = !DILocation(line: 32, column: 12, scope: !20) +!28 = !DILocation(line: 35, column: 15, scope: !20) +!29 = !DILocation(line: 36, column: 13, scope: !20) +!30 = !DILocation(line: 39, column: 12, scope: !20) +!31 = !DILocation(line: 43, column: 1, scope: !20) diff --git a/tests/codegen/expr/gold/ackermann.scilexp.gold b/tests/codegen/expr/gold/ackermann.scilexp.gold index ed2948b4..d7d807f0 100644 --- a/tests/codegen/expr/gold/ackermann.scilexp.gold +++ b/tests/codegen/expr/gold/ackermann.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_157" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/ackermann_3_7.scilexp.gold b/tests/codegen/expr/gold/ackermann_3_7.scilexp.gold index fd55d5b8..8fa388f7 100644 --- a/tests/codegen/expr/gold/ackermann_3_7.scilexp.gold +++ b/tests/codegen/expr/gold/ackermann_3_7.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_84" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/adt-fun.scilexp.gold b/tests/codegen/expr/gold/adt-fun.scilexp.gold index fd449b05..aef9e443 100644 --- a/tests/codegen/expr/gold/adt-fun.scilexp.gold +++ b/tests/codegen/expr/gold/adt-fun.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin-ecdsa_recover.scilexp.gold b/tests/codegen/expr/gold/builtin-ecdsa_recover.scilexp.gold index 5d4bb361..ee81e25b 100644 --- a/tests/codegen/expr/gold/builtin-ecdsa_recover.scilexp.gold +++ b/tests/codegen/expr/gold/builtin-ecdsa_recover.scilexp.gold @@ -1,477 +1,543 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_15" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_8" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_55" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_54"** } +%"$TyDescrTy_ADTTyp_48" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_47"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_54" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_56"**, %"$TyDescrTy_ADTTyp_55"* } -%"$TyDescrTy_ADTTyp_Constr_56" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$ParamDescr_552" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_47" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_49"**, %"$TyDescrTy_ADTTyp_48"* } +%"$TyDescrTy_ADTTyp_Constr_49" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$ParamDescr_501" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_553" = type { %ParamDescrString, i32, %"$ParamDescr_552"* } -%"$$fundef_13_env_86" = type {} +%"$TransDescr_502" = type { %ParamDescrString, i32, %"$ParamDescr_501"* } +%"$$fundef_6_env_79" = type {} %Bystr = type { i8*, i32 } -%"$$fundef_11_env_87" = type { %Bystr, [64 x i8] } +%"$$fundef_4_env_80" = type {} %Uint32 = type { i32 } %TName_Option_ByStr20 = type { i8, %CName_Some_ByStr20*, %CName_None_ByStr20* } %CName_Some_ByStr20 = type <{ i8, [20 x i8] }> %CName_None_ByStr20 = type <{ i8 }> -%"$$fundef_9_env_88" = type { %Bystr } -%"$$fundef_7_env_89" = type {} %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_16" = global %"$TyDescrTy_PrimTyp_15" zeroinitializer -@"$TyDescr_Int32_17" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Int32_Prim_16" to i8*) } -@"$TyDescr_Uint32_Prim_18" = global %"$TyDescrTy_PrimTyp_15" { i32 1, i32 0 } -@"$TyDescr_Uint32_19" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Uint32_Prim_18" to i8*) } -@"$TyDescr_Int64_Prim_20" = global %"$TyDescrTy_PrimTyp_15" { i32 0, i32 1 } -@"$TyDescr_Int64_21" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Int64_Prim_20" to i8*) } -@"$TyDescr_Uint64_Prim_22" = global %"$TyDescrTy_PrimTyp_15" { i32 1, i32 1 } -@"$TyDescr_Uint64_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Uint64_Prim_22" to i8*) } -@"$TyDescr_Int128_Prim_24" = global %"$TyDescrTy_PrimTyp_15" { i32 0, i32 2 } -@"$TyDescr_Int128_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Int128_Prim_24" to i8*) } -@"$TyDescr_Uint128_Prim_26" = global %"$TyDescrTy_PrimTyp_15" { i32 1, i32 2 } -@"$TyDescr_Uint128_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Uint128_Prim_26" to i8*) } -@"$TyDescr_Int256_Prim_28" = global %"$TyDescrTy_PrimTyp_15" { i32 0, i32 3 } -@"$TyDescr_Int256_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Int256_Prim_28" to i8*) } -@"$TyDescr_Uint256_Prim_30" = global %"$TyDescrTy_PrimTyp_15" { i32 1, i32 3 } -@"$TyDescr_Uint256_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Uint256_Prim_30" to i8*) } -@"$TyDescr_String_Prim_32" = global %"$TyDescrTy_PrimTyp_15" { i32 2, i32 0 } -@"$TyDescr_String_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_String_Prim_32" to i8*) } -@"$TyDescr_Bnum_Prim_34" = global %"$TyDescrTy_PrimTyp_15" { i32 3, i32 0 } -@"$TyDescr_Bnum_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bnum_Prim_34" to i8*) } -@"$TyDescr_Message_Prim_36" = global %"$TyDescrTy_PrimTyp_15" { i32 4, i32 0 } -@"$TyDescr_Message_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Message_Prim_36" to i8*) } -@"$TyDescr_Event_Prim_38" = global %"$TyDescrTy_PrimTyp_15" { i32 5, i32 0 } -@"$TyDescr_Event_39" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Event_Prim_38" to i8*) } -@"$TyDescr_Exception_Prim_40" = global %"$TyDescrTy_PrimTyp_15" { i32 6, i32 0 } -@"$TyDescr_Exception_41" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Exception_Prim_40" to i8*) } -@"$TyDescr_Bystr_Prim_42" = global %"$TyDescrTy_PrimTyp_15" { i32 7, i32 0 } -@"$TyDescr_Bystr_43" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr_Prim_42" to i8*) } -@"$TyDescr_Bystr1591_Prim_44" = global %"$TyDescrTy_PrimTyp_15" { i32 8, i32 1591 } -@"$TyDescr_Bystr1591_45" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr1591_Prim_44" to i8*) } -@"$TyDescr_Bystr32_Prim_46" = global %"$TyDescrTy_PrimTyp_15" { i32 8, i32 32 } -@"$TyDescr_Bystr32_47" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr32_Prim_46" to i8*) } -@"$TyDescr_Bystr65_Prim_48" = global %"$TyDescrTy_PrimTyp_15" { i32 8, i32 65 } -@"$TyDescr_Bystr65_49" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr65_Prim_48" to i8*) } -@"$TyDescr_Bystr64_Prim_50" = global %"$TyDescrTy_PrimTyp_15" { i32 8, i32 64 } -@"$TyDescr_Bystr64_51" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr64_Prim_50" to i8*) } -@"$TyDescr_Bystr20_Prim_52" = global %"$TyDescrTy_PrimTyp_15" { i32 8, i32 20 } -@"$TyDescr_Bystr20_53" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_15"* @"$TyDescr_Bystr20_Prim_52" to i8*) } -@"$TyDescr_ADT_Bool_57" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_54"* @"$TyDescr_Bool_ADTTyp_Specl_71" to i8*) } -@"$TyDescr_ADT_Option_ByStr20_58" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_54"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_83" to i8*) } -@"$TyDescr_Bool_ADTTyp_62" = unnamed_addr constant %"$TyDescrTy_ADTTyp_55" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_73", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_54"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_54"*], [1 x %"$TyDescrTy_ADTTyp_Specl_54"*]* @"$TyDescr_Bool_ADTTyp_m_specls_72", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_63" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_64" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_65" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_56" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_64", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_63", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_66" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_67" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_68" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_56" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_67", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_66", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_69" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_56"*] [%"$TyDescrTy_ADTTyp_Constr_56"* @"$TyDescr_Bool_True_ADTTyp_Constr_65", %"$TyDescrTy_ADTTyp_Constr_56"* @"$TyDescr_Bool_False_ADTTyp_Constr_68"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_70" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_71" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_54" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_70", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_56"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_56"*], [2 x %"$TyDescrTy_ADTTyp_Constr_56"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_69", i32 0, i32 0), %"$TyDescrTy_ADTTyp_55"* @"$TyDescr_Bool_ADTTyp_62" } -@"$TyDescr_Bool_ADTTyp_m_specls_72" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_54"*] [%"$TyDescrTy_ADTTyp_Specl_54"* @"$TyDescr_Bool_ADTTyp_Specl_71"] -@"$TyDescr_ADT_Bool_73" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_Option_ADTTyp_74" = unnamed_addr constant %"$TyDescrTy_ADTTyp_55" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_85", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_54"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_54"*], [1 x %"$TyDescrTy_ADTTyp_Specl_54"*]* @"$TyDescr_Option_ADTTyp_m_specls_84", i32 0, i32 0) } -@"$TyDescr_Option_Some_ByStr20_Constr_m_args_75" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_53"] -@"$TyDescr_ADT_Some_76" = unnamed_addr constant [4 x i8] c"Some" -@"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_77" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_56" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_76", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ByStr20_Constr_m_args_75", i32 0, i32 0) } -@"$TyDescr_Option_None_ByStr20_Constr_m_args_78" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_None_79" = unnamed_addr constant [4 x i8] c"None" -@"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_80" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_56" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_79", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ByStr20_Constr_m_args_78", i32 0, i32 0) } -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_81" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_56"*] [%"$TyDescrTy_ADTTyp_Constr_56"* @"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_77", %"$TyDescrTy_ADTTyp_Constr_56"* @"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_80"] -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_82" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_53"] -@"$TyDescr_Option_ByStr20_ADTTyp_Specl_83" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_54" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_82", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_56"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_56"*], [2 x %"$TyDescrTy_ADTTyp_Constr_56"*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_81", i32 0, i32 0), %"$TyDescrTy_ADTTyp_55"* @"$TyDescr_Option_ADTTyp_74" } -@"$TyDescr_Option_ADTTyp_m_specls_84" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_54"*] [%"$TyDescrTy_ADTTyp_Specl_54"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_83"] -@"$TyDescr_ADT_Option_85" = unnamed_addr constant [6 x i8] c"Option" -@_tydescr_table = constant [21 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_39", %_TyDescrTy_Typ* @"$TyDescr_Int64_21", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_58", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_57", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_53", %_TyDescrTy_Typ* @"$TyDescr_Uint256_31", %_TyDescrTy_Typ* @"$TyDescr_Uint32_19", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_51", %_TyDescrTy_Typ* @"$TyDescr_Uint64_23", %_TyDescrTy_Typ* @"$TyDescr_Bnum_35", %_TyDescrTy_Typ* @"$TyDescr_Uint128_27", %_TyDescrTy_Typ* @"$TyDescr_Exception_41", %_TyDescrTy_Typ* @"$TyDescr_String_33", %_TyDescrTy_Typ* @"$TyDescr_Bystr65_49", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_47", %_TyDescrTy_Typ* @"$TyDescr_Int256_29", %_TyDescrTy_Typ* @"$TyDescr_Int128_25", %_TyDescrTy_Typ* @"$TyDescr_Bystr_43", %_TyDescrTy_Typ* @"$TyDescr_Message_37", %_TyDescrTy_Typ* @"$TyDescr_Bystr1591_45", %_TyDescrTy_Typ* @"$TyDescr_Int32_17"] +@"$TyDescr_Int32_Prim_9" = global %"$TyDescrTy_PrimTyp_8" zeroinitializer +@"$TyDescr_Int32_10" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Int32_Prim_9" to i8*) } +@"$TyDescr_Uint32_Prim_11" = global %"$TyDescrTy_PrimTyp_8" { i32 1, i32 0 } +@"$TyDescr_Uint32_12" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Uint32_Prim_11" to i8*) } +@"$TyDescr_Int64_Prim_13" = global %"$TyDescrTy_PrimTyp_8" { i32 0, i32 1 } +@"$TyDescr_Int64_14" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Int64_Prim_13" to i8*) } +@"$TyDescr_Uint64_Prim_15" = global %"$TyDescrTy_PrimTyp_8" { i32 1, i32 1 } +@"$TyDescr_Uint64_16" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Uint64_Prim_15" to i8*) } +@"$TyDescr_Int128_Prim_17" = global %"$TyDescrTy_PrimTyp_8" { i32 0, i32 2 } +@"$TyDescr_Int128_18" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Int128_Prim_17" to i8*) } +@"$TyDescr_Uint128_Prim_19" = global %"$TyDescrTy_PrimTyp_8" { i32 1, i32 2 } +@"$TyDescr_Uint128_20" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Uint128_Prim_19" to i8*) } +@"$TyDescr_Int256_Prim_21" = global %"$TyDescrTy_PrimTyp_8" { i32 0, i32 3 } +@"$TyDescr_Int256_22" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Int256_Prim_21" to i8*) } +@"$TyDescr_Uint256_Prim_23" = global %"$TyDescrTy_PrimTyp_8" { i32 1, i32 3 } +@"$TyDescr_Uint256_24" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Uint256_Prim_23" to i8*) } +@"$TyDescr_String_Prim_25" = global %"$TyDescrTy_PrimTyp_8" { i32 2, i32 0 } +@"$TyDescr_String_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_String_Prim_25" to i8*) } +@"$TyDescr_Bnum_Prim_27" = global %"$TyDescrTy_PrimTyp_8" { i32 3, i32 0 } +@"$TyDescr_Bnum_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bnum_Prim_27" to i8*) } +@"$TyDescr_Message_Prim_29" = global %"$TyDescrTy_PrimTyp_8" { i32 4, i32 0 } +@"$TyDescr_Message_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Message_Prim_29" to i8*) } +@"$TyDescr_Event_Prim_31" = global %"$TyDescrTy_PrimTyp_8" { i32 5, i32 0 } +@"$TyDescr_Event_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Event_Prim_31" to i8*) } +@"$TyDescr_Exception_Prim_33" = global %"$TyDescrTy_PrimTyp_8" { i32 6, i32 0 } +@"$TyDescr_Exception_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Exception_Prim_33" to i8*) } +@"$TyDescr_Bystr_Prim_35" = global %"$TyDescrTy_PrimTyp_8" { i32 7, i32 0 } +@"$TyDescr_Bystr_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr_Prim_35" to i8*) } +@"$TyDescr_Bystr1591_Prim_37" = global %"$TyDescrTy_PrimTyp_8" { i32 8, i32 1591 } +@"$TyDescr_Bystr1591_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr1591_Prim_37" to i8*) } +@"$TyDescr_Bystr32_Prim_39" = global %"$TyDescrTy_PrimTyp_8" { i32 8, i32 32 } +@"$TyDescr_Bystr32_40" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr32_Prim_39" to i8*) } +@"$TyDescr_Bystr65_Prim_41" = global %"$TyDescrTy_PrimTyp_8" { i32 8, i32 65 } +@"$TyDescr_Bystr65_42" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr65_Prim_41" to i8*) } +@"$TyDescr_Bystr64_Prim_43" = global %"$TyDescrTy_PrimTyp_8" { i32 8, i32 64 } +@"$TyDescr_Bystr64_44" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr64_Prim_43" to i8*) } +@"$TyDescr_Bystr20_Prim_45" = global %"$TyDescrTy_PrimTyp_8" { i32 8, i32 20 } +@"$TyDescr_Bystr20_46" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_8"* @"$TyDescr_Bystr20_Prim_45" to i8*) } +@"$TyDescr_ADT_Bool_50" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_47"* @"$TyDescr_Bool_ADTTyp_Specl_64" to i8*) } +@"$TyDescr_ADT_Option_ByStr20_51" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_47"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_76" to i8*) } +@"$TyDescr_Bool_ADTTyp_55" = unnamed_addr constant %"$TyDescrTy_ADTTyp_48" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_66", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_47"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_47"*], [1 x %"$TyDescrTy_ADTTyp_Specl_47"*]* @"$TyDescr_Bool_ADTTyp_m_specls_65", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_56" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_57" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_58" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_49" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_57", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_56", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_59" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_60" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_61" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_49" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_60", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_59", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_62" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_49"*] [%"$TyDescrTy_ADTTyp_Constr_49"* @"$TyDescr_Bool_True_ADTTyp_Constr_58", %"$TyDescrTy_ADTTyp_Constr_49"* @"$TyDescr_Bool_False_ADTTyp_Constr_61"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_63" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_64" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_47" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_63", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_49"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_49"*], [2 x %"$TyDescrTy_ADTTyp_Constr_49"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_62", i32 0, i32 0), %"$TyDescrTy_ADTTyp_48"* @"$TyDescr_Bool_ADTTyp_55" } +@"$TyDescr_Bool_ADTTyp_m_specls_65" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_47"*] [%"$TyDescrTy_ADTTyp_Specl_47"* @"$TyDescr_Bool_ADTTyp_Specl_64"] +@"$TyDescr_ADT_Bool_66" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_Option_ADTTyp_67" = unnamed_addr constant %"$TyDescrTy_ADTTyp_48" { %TyDescrString { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"$TyDescr_ADT_Option_78", i32 0, i32 0), i32 6 }, i32 1, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_47"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_47"*], [1 x %"$TyDescrTy_ADTTyp_Specl_47"*]* @"$TyDescr_Option_ADTTyp_m_specls_77", i32 0, i32 0) } +@"$TyDescr_Option_Some_ByStr20_Constr_m_args_68" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_46"] +@"$TyDescr_ADT_Some_69" = unnamed_addr constant [4 x i8] c"Some" +@"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_70" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_49" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Some_69", i32 0, i32 0), i32 4 }, i32 1, %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_Some_ByStr20_Constr_m_args_68", i32 0, i32 0) } +@"$TyDescr_Option_None_ByStr20_Constr_m_args_71" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_None_72" = unnamed_addr constant [4 x i8] c"None" +@"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_73" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_49" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_None_72", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_None_ByStr20_Constr_m_args_71", i32 0, i32 0) } +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_74" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_49"*] [%"$TyDescrTy_ADTTyp_Constr_49"* @"$TyDescr_Option_Some_ByStr20_ADTTyp_Constr_70", %"$TyDescrTy_ADTTyp_Constr_49"* @"$TyDescr_Option_None_ByStr20_ADTTyp_Constr_73"] +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_75" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_46"] +@"$TyDescr_Option_ByStr20_ADTTyp_Specl_76" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_47" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_TArgs_75", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_49"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_49"*], [2 x %"$TyDescrTy_ADTTyp_Constr_49"*]* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_m_constrs_74", i32 0, i32 0), %"$TyDescrTy_ADTTyp_48"* @"$TyDescr_Option_ADTTyp_67" } +@"$TyDescr_Option_ADTTyp_m_specls_77" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_47"*] [%"$TyDescrTy_ADTTyp_Specl_47"* @"$TyDescr_Option_ByStr20_ADTTyp_Specl_76"] +@"$TyDescr_ADT_Option_78" = unnamed_addr constant [6 x i8] c"Option" +@_tydescr_table = constant [21 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_32", %_TyDescrTy_Typ* @"$TyDescr_Int64_14", %_TyDescrTy_Typ* @"$TyDescr_ADT_Option_ByStr20_51", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_46", %_TyDescrTy_Typ* @"$TyDescr_Uint256_24", %_TyDescrTy_Typ* @"$TyDescr_Uint32_12", %_TyDescrTy_Typ* @"$TyDescr_Bystr64_44", %_TyDescrTy_Typ* @"$TyDescr_Uint64_16", %_TyDescrTy_Typ* @"$TyDescr_Bnum_28", %_TyDescrTy_Typ* @"$TyDescr_Uint128_20", %_TyDescrTy_Typ* @"$TyDescr_Exception_34", %_TyDescrTy_Typ* @"$TyDescr_String_26", %_TyDescrTy_Typ* @"$TyDescr_Bystr65_42", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_40", %_TyDescrTy_Typ* @"$TyDescr_Int256_22", %_TyDescrTy_Typ* @"$TyDescr_Int128_18", %_TyDescrTy_Typ* @"$TyDescr_Bystr_36", %_TyDescrTy_Typ* @"$TyDescr_Message_30", %_TyDescrTy_Typ* @"$TyDescr_Bystr1591_38", %_TyDescrTy_Typ* @"$TyDescr_Int32_10"] @_tydescr_table_length = constant i32 21 -@_contract_parameters = constant [0 x %"$ParamDescr_552"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_501"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_553"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_502"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Bystr @"$fundef_13"(%"$$fundef_13_env_86"* %0, %Bystr %1) { +define internal %Bystr @"$fundef_6"(%"$$fundef_6_env_79"* %0, %Bystr %1) { entry: - %"$retval_14" = alloca %Bystr, align 8 - %"$gasrem_348" = load i64, i64* @_gasrem, align 8 - %"$gascmp_349" = icmp ugt i64 1, %"$gasrem_348" - br i1 %"$gascmp_349", label %"$out_of_gas_350", label %"$have_gas_351" + %"$retval_7" = alloca %Bystr, align 8 + %"$gasrem_306" = load i64, i64* @_gasrem, align 8 + %"$gascmp_307" = icmp ugt i64 1, %"$gasrem_306" + br i1 %"$gascmp_307", label %"$out_of_gas_308", label %"$have_gas_309" -"$out_of_gas_350": ; preds = %entry +"$out_of_gas_308": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_351" + br label %"$have_gas_309" -"$have_gas_351": ; preds = %"$out_of_gas_350", %entry - %"$consume_352" = sub i64 %"$gasrem_348", 1 - store i64 %"$consume_352", i64* @_gasrem, align 8 +"$have_gas_309": ; preds = %"$out_of_gas_308", %entry + %"$consume_310" = sub i64 %"$gasrem_306", 1 + store i64 %"$consume_310", i64* @_gasrem, align 8 %h1 = alloca [32 x i8], align 1 - %"$_literal_cost_header_353" = alloca %Bystr, align 8 - store %Bystr %1, %Bystr* %"$_literal_cost_header_353", align 8 - %"$$_literal_cost_header_353_354" = bitcast %Bystr* %"$_literal_cost_header_353" to i8* - %"$_literal_cost_call_355" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$_literal_cost_header_353_354") - %"$gasdivceil_356" = urem i64 %"$_literal_cost_call_355", 960 - %"$gasdivceil_357" = udiv i64 %"$_literal_cost_call_355", 960 - %"$gasdivceil_358" = icmp eq i64 %"$gasdivceil_356", 0 - %"$gasdivceil_359" = add i64 %"$gasdivceil_357", 1 - %"$gasdivceil_360" = select i1 %"$gasdivceil_358", i64 %"$gasdivceil_357", i64 %"$gasdivceil_359" - %"$gasrem_361" = load i64, i64* @_gasrem, align 8 - %"$gascmp_362" = icmp ugt i64 %"$gasdivceil_360", %"$gasrem_361" - br i1 %"$gascmp_362", label %"$out_of_gas_363", label %"$have_gas_364" - -"$out_of_gas_363": ; preds = %"$have_gas_351" - call void @_out_of_gas() - br label %"$have_gas_364" - -"$have_gas_364": ; preds = %"$out_of_gas_363", %"$have_gas_351" - %"$consume_365" = sub i64 %"$gasrem_361", %"$gasdivceil_360" - store i64 %"$consume_365", i64* @_gasrem, align 8 - %"$execptr_load_366" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_header_367" = alloca %Bystr, align 8 - store %Bystr %1, %Bystr* %"$sha256hash_header_367", align 8 - %"$$sha256hash_header_367_368" = bitcast %Bystr* %"$sha256hash_header_367" to i8* - %"$sha256hash_call_369" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_366", %_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$sha256hash_header_367_368") - %"$sha256hash_371" = load [32 x i8], [32 x i8]* %"$sha256hash_call_369", align 1 - store [32 x i8] %"$sha256hash_371", [32 x i8]* %h1, align 1 - %"$gasrem_372" = load i64, i64* @_gasrem, align 8 - %"$gascmp_373" = icmp ugt i64 1, %"$gasrem_372" - br i1 %"$gascmp_373", label %"$out_of_gas_374", label %"$have_gas_375" - -"$out_of_gas_374": ; preds = %"$have_gas_364" - call void @_out_of_gas() - br label %"$have_gas_375" - -"$have_gas_375": ; preds = %"$out_of_gas_374", %"$have_gas_364" - %"$consume_376" = sub i64 %"$gasrem_372", 1 - store i64 %"$consume_376", i64* @_gasrem, align 8 + %"$_literal_cost_header_311" = alloca %Bystr, align 8 + store %Bystr %1, %Bystr* %"$_literal_cost_header_311", align 8 + %"$$_literal_cost_header_311_312" = bitcast %Bystr* %"$_literal_cost_header_311" to i8* + %"$_literal_cost_call_313" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$_literal_cost_header_311_312") + %"$gasdivceil_314" = urem i64 %"$_literal_cost_call_313", 960 + %"$gasdivceil_315" = udiv i64 %"$_literal_cost_call_313", 960 + %"$gasdivceil_316" = icmp eq i64 %"$gasdivceil_314", 0 + %"$gasdivceil_317" = add i64 %"$gasdivceil_315", 1 + %"$gasdivceil_318" = select i1 %"$gasdivceil_316", i64 %"$gasdivceil_315", i64 %"$gasdivceil_317" + %"$gasrem_319" = load i64, i64* @_gasrem, align 8 + %"$gascmp_320" = icmp ugt i64 %"$gasdivceil_318", %"$gasrem_319" + br i1 %"$gascmp_320", label %"$out_of_gas_321", label %"$have_gas_322" + +"$out_of_gas_321": ; preds = %"$have_gas_309" + call void @_out_of_gas() + br label %"$have_gas_322" + +"$have_gas_322": ; preds = %"$out_of_gas_321", %"$have_gas_309" + %"$consume_323" = sub i64 %"$gasrem_319", %"$gasdivceil_318" + store i64 %"$consume_323", i64* @_gasrem, align 8 + %"$execptr_load_324" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_header_325" = alloca %Bystr, align 8 + store %Bystr %1, %Bystr* %"$sha256hash_header_325", align 8 + %"$$sha256hash_header_325_326" = bitcast %Bystr* %"$sha256hash_header_325" to i8* + %"$sha256hash_call_327" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_324", %_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$sha256hash_header_325_326") + %"$sha256hash_329" = load [32 x i8], [32 x i8]* %"$sha256hash_call_327", align 1 + store [32 x i8] %"$sha256hash_329", [32 x i8]* %h1, align 1 + %"$gasrem_330" = load i64, i64* @_gasrem, align 8 + %"$gascmp_331" = icmp ugt i64 1, %"$gasrem_330" + br i1 %"$gascmp_331", label %"$out_of_gas_332", label %"$have_gas_333" + +"$out_of_gas_332": ; preds = %"$have_gas_322" + call void @_out_of_gas() + br label %"$have_gas_333" + +"$have_gas_333": ; preds = %"$out_of_gas_332", %"$have_gas_322" + %"$consume_334" = sub i64 %"$gasrem_330", 1 + store i64 %"$consume_334", i64* @_gasrem, align 8 %h2 = alloca [32 x i8], align 1 - %"$_literal_cost_h1_377" = alloca [32 x i8], align 1 - %"$h1_378" = load [32 x i8], [32 x i8]* %h1, align 1 - store [32 x i8] %"$h1_378", [32 x i8]* %"$_literal_cost_h1_377", align 1 - %"$$_literal_cost_h1_377_379" = bitcast [32 x i8]* %"$_literal_cost_h1_377" to i8* - %"$_literal_cost_call_380" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_47", i8* %"$$_literal_cost_h1_377_379") - %"$gasdivceil_381" = urem i64 %"$_literal_cost_call_380", 960 - %"$gasdivceil_382" = udiv i64 %"$_literal_cost_call_380", 960 - %"$gasdivceil_383" = icmp eq i64 %"$gasdivceil_381", 0 - %"$gasdivceil_384" = add i64 %"$gasdivceil_382", 1 - %"$gasdivceil_385" = select i1 %"$gasdivceil_383", i64 %"$gasdivceil_382", i64 %"$gasdivceil_384" - %"$gasrem_386" = load i64, i64* @_gasrem, align 8 - %"$gascmp_387" = icmp ugt i64 %"$gasdivceil_385", %"$gasrem_386" - br i1 %"$gascmp_387", label %"$out_of_gas_388", label %"$have_gas_389" - -"$out_of_gas_388": ; preds = %"$have_gas_375" - call void @_out_of_gas() - br label %"$have_gas_389" - -"$have_gas_389": ; preds = %"$out_of_gas_388", %"$have_gas_375" - %"$consume_390" = sub i64 %"$gasrem_386", %"$gasdivceil_385" - store i64 %"$consume_390", i64* @_gasrem, align 8 - %"$execptr_load_391" = load i8*, i8** @_execptr, align 8 - %"$sha256hash_h1_392" = alloca [32 x i8], align 1 - %"$h1_393" = load [32 x i8], [32 x i8]* %h1, align 1 - store [32 x i8] %"$h1_393", [32 x i8]* %"$sha256hash_h1_392", align 1 - %"$$sha256hash_h1_392_394" = bitcast [32 x i8]* %"$sha256hash_h1_392" to i8* - %"$sha256hash_call_395" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_391", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_47", i8* %"$$sha256hash_h1_392_394") - %"$sha256hash_397" = load [32 x i8], [32 x i8]* %"$sha256hash_call_395", align 1 - store [32 x i8] %"$sha256hash_397", [32 x i8]* %h2, align 1 - %"$gasrem_398" = load i64, i64* @_gasrem, align 8 - %"$gascmp_399" = icmp ugt i64 32, %"$gasrem_398" - br i1 %"$gascmp_399", label %"$out_of_gas_400", label %"$have_gas_401" - -"$out_of_gas_400": ; preds = %"$have_gas_389" - call void @_out_of_gas() - br label %"$have_gas_401" - -"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_389" - %"$consume_402" = sub i64 %"$gasrem_398", 32 - store i64 %"$consume_402", i64* @_gasrem, align 8 - %"$execptr_load_403" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_h2_404" = alloca [32 x i8], align 1 - %"$h2_405" = load [32 x i8], [32 x i8]* %h2, align 1 - store [32 x i8] %"$h2_405", [32 x i8]* %"$to_bystr_h2_404", align 1 - %"$$to_bystr_h2_404_406" = bitcast [32 x i8]* %"$to_bystr_h2_404" to i8* - %"$to_bystr_call_407" = call %Bystr @_to_bystr(i8* %"$execptr_load_403", i32 32, i8* %"$$to_bystr_h2_404_406") - store %Bystr %"$to_bystr_call_407", %Bystr* %"$retval_14", align 8 - %"$$retval_14_408" = load %Bystr, %Bystr* %"$retval_14", align 8 - ret %Bystr %"$$retval_14_408" + %"$_literal_cost_h1_335" = alloca [32 x i8], align 1 + %"$h1_336" = load [32 x i8], [32 x i8]* %h1, align 1 + store [32 x i8] %"$h1_336", [32 x i8]* %"$_literal_cost_h1_335", align 1 + %"$$_literal_cost_h1_335_337" = bitcast [32 x i8]* %"$_literal_cost_h1_335" to i8* + %"$_literal_cost_call_338" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr32_40", i8* %"$$_literal_cost_h1_335_337") + %"$gasdivceil_339" = urem i64 %"$_literal_cost_call_338", 960 + %"$gasdivceil_340" = udiv i64 %"$_literal_cost_call_338", 960 + %"$gasdivceil_341" = icmp eq i64 %"$gasdivceil_339", 0 + %"$gasdivceil_342" = add i64 %"$gasdivceil_340", 1 + %"$gasdivceil_343" = select i1 %"$gasdivceil_341", i64 %"$gasdivceil_340", i64 %"$gasdivceil_342" + %"$gasrem_344" = load i64, i64* @_gasrem, align 8 + %"$gascmp_345" = icmp ugt i64 %"$gasdivceil_343", %"$gasrem_344" + br i1 %"$gascmp_345", label %"$out_of_gas_346", label %"$have_gas_347" + +"$out_of_gas_346": ; preds = %"$have_gas_333" + call void @_out_of_gas() + br label %"$have_gas_347" + +"$have_gas_347": ; preds = %"$out_of_gas_346", %"$have_gas_333" + %"$consume_348" = sub i64 %"$gasrem_344", %"$gasdivceil_343" + store i64 %"$consume_348", i64* @_gasrem, align 8 + %"$execptr_load_349" = load i8*, i8** @_execptr, align 8 + %"$sha256hash_h1_350" = alloca [32 x i8], align 1 + %"$h1_351" = load [32 x i8], [32 x i8]* %h1, align 1 + store [32 x i8] %"$h1_351", [32 x i8]* %"$sha256hash_h1_350", align 1 + %"$$sha256hash_h1_350_352" = bitcast [32 x i8]* %"$sha256hash_h1_350" to i8* + %"$sha256hash_call_353" = call [32 x i8]* @_sha256hash(i8* %"$execptr_load_349", %_TyDescrTy_Typ* @"$TyDescr_Bystr32_40", i8* %"$$sha256hash_h1_350_352") + %"$sha256hash_355" = load [32 x i8], [32 x i8]* %"$sha256hash_call_353", align 1 + store [32 x i8] %"$sha256hash_355", [32 x i8]* %h2, align 1 + %"$gasrem_356" = load i64, i64* @_gasrem, align 8 + %"$gascmp_357" = icmp ugt i64 32, %"$gasrem_356" + br i1 %"$gascmp_357", label %"$out_of_gas_358", label %"$have_gas_359" + +"$out_of_gas_358": ; preds = %"$have_gas_347" + call void @_out_of_gas() + br label %"$have_gas_359" + +"$have_gas_359": ; preds = %"$out_of_gas_358", %"$have_gas_347" + %"$consume_360" = sub i64 %"$gasrem_356", 32 + store i64 %"$consume_360", i64* @_gasrem, align 8 + %"$execptr_load_361" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_h2_362" = alloca [32 x i8], align 1 + %"$h2_363" = load [32 x i8], [32 x i8]* %h2, align 1 + store [32 x i8] %"$h2_363", [32 x i8]* %"$to_bystr_h2_362", align 1 + %"$$to_bystr_h2_362_364" = bitcast [32 x i8]* %"$to_bystr_h2_362" to i8* + %"$to_bystr_call_365" = call %Bystr @_to_bystr(i8* %"$execptr_load_361", i32 32, i8* %"$$to_bystr_h2_362_364") + store %Bystr %"$to_bystr_call_365", %Bystr* %"$retval_7", align 8 + %"$$retval_7_366" = load %Bystr, %Bystr* %"$retval_7", align 8 + ret %Bystr %"$$retval_7_366" } -define internal void @"$fundef_11"(%"$$fundef_11_env_87"* %0, [20 x i8]* %1, %Uint32 %2) { +define internal void @"$fundef_4"(%"$$fundef_4_env_80"* %0, [20 x i8]* %1, %Bystr %2, [64 x i8]* %3, %Uint32 %4) { entry: - %"$$fundef_11_env_msg_116" = getelementptr inbounds %"$$fundef_11_env_87", %"$$fundef_11_env_87"* %0, i32 0, i32 0 - %"$msg_envload_117" = load %Bystr, %Bystr* %"$$fundef_11_env_msg_116", align 8 - %msg = alloca %Bystr, align 8 - store %Bystr %"$msg_envload_117", %Bystr* %msg, align 8 - %"$$fundef_11_env_sig_118" = getelementptr inbounds %"$$fundef_11_env_87", %"$$fundef_11_env_87"* %0, i32 0, i32 1 - %"$sig_envload_119" = load [64 x i8], [64 x i8]* %"$$fundef_11_env_sig_118", align 1 - %sig = alloca [64 x i8], align 1 - store [64 x i8] %"$sig_envload_119", [64 x i8]* %sig, align 1 - %"$retval_12" = alloca [20 x i8], align 1 - %"$gasrem_120" = load i64, i64* @_gasrem, align 8 - %"$gascmp_121" = icmp ugt i64 1, %"$gasrem_120" - br i1 %"$gascmp_121", label %"$out_of_gas_122", label %"$have_gas_123" + %sig = load [64 x i8], [64 x i8]* %3, align 1 + %"$retval_5" = alloca [20 x i8], align 1 + %"$gasrem_81" = load i64, i64* @_gasrem, align 8 + %"$gascmp_82" = icmp ugt i64 1, %"$gasrem_81" + br i1 %"$gascmp_82", label %"$out_of_gas_83", label %"$have_gas_84" -"$out_of_gas_122": ; preds = %entry +"$out_of_gas_83": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_123" + br label %"$have_gas_84" -"$have_gas_123": ; preds = %"$out_of_gas_122", %entry - %"$consume_124" = sub i64 %"$gasrem_120", 1 - store i64 %"$consume_124", i64* @_gasrem, align 8 +"$have_gas_84": ; preds = %"$out_of_gas_83", %entry + %"$consume_85" = sub i64 %"$gasrem_81", 1 + store i64 %"$consume_85", i64* @_gasrem, align 8 %pk = alloca [65 x i8], align 1 - %"$_literal_cost_msg_125" = alloca %Bystr, align 8 - %"$msg_126" = load %Bystr, %Bystr* %msg, align 8 - store %Bystr %"$msg_126", %Bystr* %"$_literal_cost_msg_125", align 8 - %"$$_literal_cost_msg_125_127" = bitcast %Bystr* %"$_literal_cost_msg_125" to i8* - %"$_literal_cost_call_128" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$_literal_cost_msg_125_127") - %"$gasdivceil_129" = urem i64 %"$_literal_cost_call_128", 960 - %"$gasdivceil_130" = udiv i64 %"$_literal_cost_call_128", 960 - %"$gasdivceil_131" = icmp eq i64 %"$gasdivceil_129", 0 - %"$gasdivceil_132" = add i64 %"$gasdivceil_130", 1 - %"$gasdivceil_133" = select i1 %"$gasdivceil_131", i64 %"$gasdivceil_130", i64 %"$gasdivceil_132" - %"$gasrem_134" = load i64, i64* @_gasrem, align 8 - %"$gascmp_135" = icmp ugt i64 %"$gasdivceil_133", %"$gasrem_134" - br i1 %"$gascmp_135", label %"$out_of_gas_136", label %"$have_gas_137" - -"$out_of_gas_136": ; preds = %"$have_gas_123" - call void @_out_of_gas() - br label %"$have_gas_137" - -"$have_gas_137": ; preds = %"$out_of_gas_136", %"$have_gas_123" - %"$consume_138" = sub i64 %"$gasrem_134", %"$gasdivceil_133" - store i64 %"$consume_138", i64* @_gasrem, align 8 - %"$execptr_load_139" = load i8*, i8** @_execptr, align 8 - %"$msg_140" = load %Bystr, %Bystr* %msg, align 8 - %"$ecdsa_recover_pk_sig_141" = alloca [64 x i8], align 1 - %"$sig_142" = load [64 x i8], [64 x i8]* %sig, align 1 - store [64 x i8] %"$sig_142", [64 x i8]* %"$ecdsa_recover_pk_sig_141", align 1 - %"$ecdsa_recover_pk_call_143" = call [65 x i8]* @_ecdsa_recover_pk(i8* %"$execptr_load_139", %Bystr %"$msg_140", [64 x i8]* %"$ecdsa_recover_pk_sig_141", %Uint32 %2) - %"$ecdsa_recover_pk_145" = load [65 x i8], [65 x i8]* %"$ecdsa_recover_pk_call_143", align 1 - store [65 x i8] %"$ecdsa_recover_pk_145", [65 x i8]* %pk, align 1 - %"$gasrem_146" = load i64, i64* @_gasrem, align 8 - %"$gascmp_147" = icmp ugt i64 1, %"$gasrem_146" - br i1 %"$gascmp_147", label %"$out_of_gas_148", label %"$have_gas_149" - -"$out_of_gas_148": ; preds = %"$have_gas_137" - call void @_out_of_gas() - br label %"$have_gas_149" - -"$have_gas_149": ; preds = %"$out_of_gas_148", %"$have_gas_137" - %"$consume_150" = sub i64 %"$gasrem_146", 1 - store i64 %"$consume_150", i64* @_gasrem, align 8 + %"$_literal_cost_msg_86" = alloca %Bystr, align 8 + store %Bystr %2, %Bystr* %"$_literal_cost_msg_86", align 8 + %"$$_literal_cost_msg_86_87" = bitcast %Bystr* %"$_literal_cost_msg_86" to i8* + %"$_literal_cost_call_88" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$_literal_cost_msg_86_87") + %"$gasdivceil_89" = urem i64 %"$_literal_cost_call_88", 960 + %"$gasdivceil_90" = udiv i64 %"$_literal_cost_call_88", 960 + %"$gasdivceil_91" = icmp eq i64 %"$gasdivceil_89", 0 + %"$gasdivceil_92" = add i64 %"$gasdivceil_90", 1 + %"$gasdivceil_93" = select i1 %"$gasdivceil_91", i64 %"$gasdivceil_90", i64 %"$gasdivceil_92" + %"$gasrem_94" = load i64, i64* @_gasrem, align 8 + %"$gascmp_95" = icmp ugt i64 %"$gasdivceil_93", %"$gasrem_94" + br i1 %"$gascmp_95", label %"$out_of_gas_96", label %"$have_gas_97" + +"$out_of_gas_96": ; preds = %"$have_gas_84" + call void @_out_of_gas() + br label %"$have_gas_97" + +"$have_gas_97": ; preds = %"$out_of_gas_96", %"$have_gas_84" + %"$consume_98" = sub i64 %"$gasrem_94", %"$gasdivceil_93" + store i64 %"$consume_98", i64* @_gasrem, align 8 + %"$execptr_load_99" = load i8*, i8** @_execptr, align 8 + %"$ecdsa_recover_pk_sig_100" = alloca [64 x i8], align 1 + store [64 x i8] %sig, [64 x i8]* %"$ecdsa_recover_pk_sig_100", align 1 + %"$ecdsa_recover_pk_call_101" = call [65 x i8]* @_ecdsa_recover_pk(i8* %"$execptr_load_99", %Bystr %2, [64 x i8]* %"$ecdsa_recover_pk_sig_100", %Uint32 %4) + %"$ecdsa_recover_pk_103" = load [65 x i8], [65 x i8]* %"$ecdsa_recover_pk_call_101", align 1 + store [65 x i8] %"$ecdsa_recover_pk_103", [65 x i8]* %pk, align 1 + %"$gasrem_104" = load i64, i64* @_gasrem, align 8 + %"$gascmp_105" = icmp ugt i64 1, %"$gasrem_104" + br i1 %"$gascmp_105", label %"$out_of_gas_106", label %"$have_gas_107" + +"$out_of_gas_106": ; preds = %"$have_gas_97" + call void @_out_of_gas() + br label %"$have_gas_107" + +"$have_gas_107": ; preds = %"$out_of_gas_106", %"$have_gas_97" + %"$consume_108" = sub i64 %"$gasrem_104", 1 + store i64 %"$consume_108", i64* @_gasrem, align 8 %pos = alloca %Uint32, align 8 - %"$gasrem_151" = load i64, i64* @_gasrem, align 8 - %"$gascmp_152" = icmp ugt i64 1, %"$gasrem_151" - br i1 %"$gascmp_152", label %"$out_of_gas_153", label %"$have_gas_154" + %"$gasrem_109" = load i64, i64* @_gasrem, align 8 + %"$gascmp_110" = icmp ugt i64 1, %"$gasrem_109" + br i1 %"$gascmp_110", label %"$out_of_gas_111", label %"$have_gas_112" -"$out_of_gas_153": ; preds = %"$have_gas_149" +"$out_of_gas_111": ; preds = %"$have_gas_107" call void @_out_of_gas() - br label %"$have_gas_154" + br label %"$have_gas_112" -"$have_gas_154": ; preds = %"$out_of_gas_153", %"$have_gas_149" - %"$consume_155" = sub i64 %"$gasrem_151", 1 - store i64 %"$consume_155", i64* @_gasrem, align 8 +"$have_gas_112": ; preds = %"$out_of_gas_111", %"$have_gas_107" + %"$consume_113" = sub i64 %"$gasrem_109", 1 + store i64 %"$consume_113", i64* @_gasrem, align 8 store %Uint32 { i32 1 }, %Uint32* %pos, align 4 - %"$gasrem_156" = load i64, i64* @_gasrem, align 8 - %"$gascmp_157" = icmp ugt i64 1, %"$gasrem_156" - br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" + %"$gasrem_114" = load i64, i64* @_gasrem, align 8 + %"$gascmp_115" = icmp ugt i64 1, %"$gasrem_114" + br i1 %"$gascmp_115", label %"$out_of_gas_116", label %"$have_gas_117" -"$out_of_gas_158": ; preds = %"$have_gas_154" +"$out_of_gas_116": ; preds = %"$have_gas_112" call void @_out_of_gas() - br label %"$have_gas_159" + br label %"$have_gas_117" -"$have_gas_159": ; preds = %"$out_of_gas_158", %"$have_gas_154" - %"$consume_160" = sub i64 %"$gasrem_156", 1 - store i64 %"$consume_160", i64* @_gasrem, align 8 +"$have_gas_117": ; preds = %"$out_of_gas_116", %"$have_gas_112" + %"$consume_118" = sub i64 %"$gasrem_114", 1 + store i64 %"$consume_118", i64* @_gasrem, align 8 %len = alloca %Uint32, align 8 - %"$gasrem_161" = load i64, i64* @_gasrem, align 8 - %"$gascmp_162" = icmp ugt i64 1, %"$gasrem_161" - br i1 %"$gascmp_162", label %"$out_of_gas_163", label %"$have_gas_164" + %"$gasrem_119" = load i64, i64* @_gasrem, align 8 + %"$gascmp_120" = icmp ugt i64 1, %"$gasrem_119" + br i1 %"$gascmp_120", label %"$out_of_gas_121", label %"$have_gas_122" -"$out_of_gas_163": ; preds = %"$have_gas_159" +"$out_of_gas_121": ; preds = %"$have_gas_117" call void @_out_of_gas() - br label %"$have_gas_164" + br label %"$have_gas_122" -"$have_gas_164": ; preds = %"$out_of_gas_163", %"$have_gas_159" - %"$consume_165" = sub i64 %"$gasrem_161", 1 - store i64 %"$consume_165", i64* @_gasrem, align 8 +"$have_gas_122": ; preds = %"$out_of_gas_121", %"$have_gas_117" + %"$consume_123" = sub i64 %"$gasrem_119", 1 + store i64 %"$consume_123", i64* @_gasrem, align 8 store %Uint32 { i32 64 }, %Uint32* %len, align 4 + %"$gasrem_124" = load i64, i64* @_gasrem, align 8 + %"$gascmp_125" = icmp ugt i64 1, %"$gasrem_124" + br i1 %"$gascmp_125", label %"$out_of_gas_126", label %"$have_gas_127" + +"$out_of_gas_126": ; preds = %"$have_gas_122" + call void @_out_of_gas() + br label %"$have_gas_127" + +"$have_gas_127": ; preds = %"$out_of_gas_126", %"$have_gas_122" + %"$consume_128" = sub i64 %"$gasrem_124", 1 + store i64 %"$consume_128", i64* @_gasrem, align 8 + %pk_bs = alloca %Bystr, align 8 + %"$gasrem_129" = load i64, i64* @_gasrem, align 8 + %"$gascmp_130" = icmp ugt i64 65, %"$gasrem_129" + br i1 %"$gascmp_130", label %"$out_of_gas_131", label %"$have_gas_132" + +"$out_of_gas_131": ; preds = %"$have_gas_127" + call void @_out_of_gas() + br label %"$have_gas_132" + +"$have_gas_132": ; preds = %"$out_of_gas_131", %"$have_gas_127" + %"$consume_133" = sub i64 %"$gasrem_129", 65 + store i64 %"$consume_133", i64* @_gasrem, align 8 + %"$execptr_load_134" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_pk_135" = alloca [65 x i8], align 1 + %"$pk_136" = load [65 x i8], [65 x i8]* %pk, align 1 + store [65 x i8] %"$pk_136", [65 x i8]* %"$to_bystr_pk_135", align 1 + %"$$to_bystr_pk_135_137" = bitcast [65 x i8]* %"$to_bystr_pk_135" to i8* + %"$to_bystr_call_138" = call %Bystr @_to_bystr(i8* %"$execptr_load_134", i32 65, i8* %"$$to_bystr_pk_135_137") + store %Bystr %"$to_bystr_call_138", %Bystr* %pk_bs, align 8 + %"$gasrem_139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_140" = icmp ugt i64 1, %"$gasrem_139" + br i1 %"$gascmp_140", label %"$out_of_gas_141", label %"$have_gas_142" + +"$out_of_gas_141": ; preds = %"$have_gas_132" + call void @_out_of_gas() + br label %"$have_gas_142" + +"$have_gas_142": ; preds = %"$out_of_gas_141", %"$have_gas_132" + %"$consume_143" = sub i64 %"$gasrem_139", 1 + store i64 %"$consume_143", i64* @_gasrem, align 8 + %pk_ = alloca %Bystr, align 8 + %"$_literal_cost_pk_bs_144" = alloca %Bystr, align 8 + %"$pk_bs_145" = load %Bystr, %Bystr* %pk_bs, align 8 + store %Bystr %"$pk_bs_145", %Bystr* %"$_literal_cost_pk_bs_144", align 8 + %"$$_literal_cost_pk_bs_144_146" = bitcast %Bystr* %"$_literal_cost_pk_bs_144" to i8* + %"$_literal_cost_call_147" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$_literal_cost_pk_bs_144_146") + %"$pos_148" = load %Uint32, %Uint32* %pos, align 4 + %"$valueof_149" = extractvalue %Uint32 %"$pos_148", 0 + %"$valueof_150" = zext i32 %"$valueof_149" to i64 + %"$len_151" = load %Uint32, %Uint32* %len, align 4 + %"$valueof_152" = extractvalue %Uint32 %"$len_151", 0 + %"$valueof_153" = zext i32 %"$valueof_152" to i64 + %"$gasadd_154" = add i64 %"$valueof_150", %"$valueof_153" + %"$gasmin_155" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_147", i64 %"$gasadd_154") + %"$gasrem_156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_157" = icmp ugt i64 %"$gasmin_155", %"$gasrem_156" + br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" + +"$out_of_gas_158": ; preds = %"$have_gas_142" + call void @_out_of_gas() + br label %"$have_gas_159" + +"$have_gas_159": ; preds = %"$out_of_gas_158", %"$have_gas_142" + %"$consume_160" = sub i64 %"$gasrem_156", %"$gasmin_155" + store i64 %"$consume_160", i64* @_gasrem, align 8 + %"$execptr_load_161" = load i8*, i8** @_execptr, align 8 + %"$pk_bs_162" = load %Bystr, %Bystr* %pk_bs, align 8 + %"$pos_163" = load %Uint32, %Uint32* %pos, align 4 + %"$len_164" = load %Uint32, %Uint32* %len, align 4 + %"$substr_call_165" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_161", %Bystr %"$pk_bs_162", %Uint32 %"$pos_163", %Uint32 %"$len_164") + store %Bystr %"$substr_call_165", %Bystr* %pk_, align 8 %"$gasrem_166" = load i64, i64* @_gasrem, align 8 %"$gascmp_167" = icmp ugt i64 1, %"$gasrem_166" br i1 %"$gascmp_167", label %"$out_of_gas_168", label %"$have_gas_169" -"$out_of_gas_168": ; preds = %"$have_gas_164" +"$out_of_gas_168": ; preds = %"$have_gas_159" call void @_out_of_gas() br label %"$have_gas_169" -"$have_gas_169": ; preds = %"$out_of_gas_168", %"$have_gas_164" +"$have_gas_169": ; preds = %"$out_of_gas_168", %"$have_gas_159" %"$consume_170" = sub i64 %"$gasrem_166", 1 store i64 %"$consume_170", i64* @_gasrem, align 8 - %pk_bs = alloca %Bystr, align 8 - %"$gasrem_171" = load i64, i64* @_gasrem, align 8 - %"$gascmp_172" = icmp ugt i64 65, %"$gasrem_171" - br i1 %"$gascmp_172", label %"$out_of_gas_173", label %"$have_gas_174" + %pkHash = alloca [32 x i8], align 1 + %"$_literal_cost_pk__171" = alloca %Bystr, align 8 + %"$pk__172" = load %Bystr, %Bystr* %pk_, align 8 + store %Bystr %"$pk__172", %Bystr* %"$_literal_cost_pk__171", align 8 + %"$$_literal_cost_pk__171_173" = bitcast %Bystr* %"$_literal_cost_pk__171" to i8* + %"$_literal_cost_call_174" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$_literal_cost_pk__171_173") + %"$gasdivceil_175" = urem i64 %"$_literal_cost_call_174", 2040 + %"$gasdivceil_176" = udiv i64 %"$_literal_cost_call_174", 2040 + %"$gasdivceil_177" = icmp eq i64 %"$gasdivceil_175", 0 + %"$gasdivceil_178" = add i64 %"$gasdivceil_176", 1 + %"$gasdivceil_179" = select i1 %"$gasdivceil_177", i64 %"$gasdivceil_176", i64 %"$gasdivceil_178" + %"$gasrem_180" = load i64, i64* @_gasrem, align 8 + %"$gascmp_181" = icmp ugt i64 %"$gasdivceil_179", %"$gasrem_180" + br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" + +"$out_of_gas_182": ; preds = %"$have_gas_169" + call void @_out_of_gas() + br label %"$have_gas_183" + +"$have_gas_183": ; preds = %"$out_of_gas_182", %"$have_gas_169" + %"$consume_184" = sub i64 %"$gasrem_180", %"$gasdivceil_179" + store i64 %"$consume_184", i64* @_gasrem, align 8 + %"$execptr_load_185" = load i8*, i8** @_execptr, align 8 + %"$keccak256hash_pk__186" = alloca %Bystr, align 8 + %"$pk__187" = load %Bystr, %Bystr* %pk_, align 8 + store %Bystr %"$pk__187", %Bystr* %"$keccak256hash_pk__186", align 8 + %"$$keccak256hash_pk__186_188" = bitcast %Bystr* %"$keccak256hash_pk__186" to i8* + %"$keccak256hash_call_189" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_185", %_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$keccak256hash_pk__186_188") + %"$keccak256hash_191" = load [32 x i8], [32 x i8]* %"$keccak256hash_call_189", align 1 + store [32 x i8] %"$keccak256hash_191", [32 x i8]* %pkHash, align 1 + %"$gasrem_192" = load i64, i64* @_gasrem, align 8 + %"$gascmp_193" = icmp ugt i64 1, %"$gasrem_192" + br i1 %"$gascmp_193", label %"$out_of_gas_194", label %"$have_gas_195" + +"$out_of_gas_194": ; preds = %"$have_gas_183" + call void @_out_of_gas() + br label %"$have_gas_195" + +"$have_gas_195": ; preds = %"$out_of_gas_194", %"$have_gas_183" + %"$consume_196" = sub i64 %"$gasrem_192", 1 + store i64 %"$consume_196", i64* @_gasrem, align 8 + %pkHash_bs = alloca %Bystr, align 8 + %"$gasrem_197" = load i64, i64* @_gasrem, align 8 + %"$gascmp_198" = icmp ugt i64 32, %"$gasrem_197" + br i1 %"$gascmp_198", label %"$out_of_gas_199", label %"$have_gas_200" + +"$out_of_gas_199": ; preds = %"$have_gas_195" + call void @_out_of_gas() + br label %"$have_gas_200" + +"$have_gas_200": ; preds = %"$out_of_gas_199", %"$have_gas_195" + %"$consume_201" = sub i64 %"$gasrem_197", 32 + store i64 %"$consume_201", i64* @_gasrem, align 8 + %"$execptr_load_202" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_pkHash_203" = alloca [32 x i8], align 1 + %"$pkHash_204" = load [32 x i8], [32 x i8]* %pkHash, align 1 + store [32 x i8] %"$pkHash_204", [32 x i8]* %"$to_bystr_pkHash_203", align 1 + %"$$to_bystr_pkHash_203_205" = bitcast [32 x i8]* %"$to_bystr_pkHash_203" to i8* + %"$to_bystr_call_206" = call %Bystr @_to_bystr(i8* %"$execptr_load_202", i32 32, i8* %"$$to_bystr_pkHash_203_205") + store %Bystr %"$to_bystr_call_206", %Bystr* %pkHash_bs, align 8 + %"$gasrem_207" = load i64, i64* @_gasrem, align 8 + %"$gascmp_208" = icmp ugt i64 1, %"$gasrem_207" + br i1 %"$gascmp_208", label %"$out_of_gas_209", label %"$have_gas_210" + +"$out_of_gas_209": ; preds = %"$have_gas_200" + call void @_out_of_gas() + br label %"$have_gas_210" + +"$have_gas_210": ; preds = %"$out_of_gas_209", %"$have_gas_200" + %"$consume_211" = sub i64 %"$gasrem_207", 1 + store i64 %"$consume_211", i64* @_gasrem, align 8 + %"$pos_0" = alloca %Uint32, align 8 + %"$gasrem_212" = load i64, i64* @_gasrem, align 8 + %"$gascmp_213" = icmp ugt i64 1, %"$gasrem_212" + br i1 %"$gascmp_213", label %"$out_of_gas_214", label %"$have_gas_215" -"$out_of_gas_173": ; preds = %"$have_gas_169" - call void @_out_of_gas() - br label %"$have_gas_174" - -"$have_gas_174": ; preds = %"$out_of_gas_173", %"$have_gas_169" - %"$consume_175" = sub i64 %"$gasrem_171", 65 - store i64 %"$consume_175", i64* @_gasrem, align 8 - %"$execptr_load_176" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_pk_177" = alloca [65 x i8], align 1 - %"$pk_178" = load [65 x i8], [65 x i8]* %pk, align 1 - store [65 x i8] %"$pk_178", [65 x i8]* %"$to_bystr_pk_177", align 1 - %"$$to_bystr_pk_177_179" = bitcast [65 x i8]* %"$to_bystr_pk_177" to i8* - %"$to_bystr_call_180" = call %Bystr @_to_bystr(i8* %"$execptr_load_176", i32 65, i8* %"$$to_bystr_pk_177_179") - store %Bystr %"$to_bystr_call_180", %Bystr* %pk_bs, align 8 - %"$gasrem_181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_182" = icmp ugt i64 1, %"$gasrem_181" - br i1 %"$gascmp_182", label %"$out_of_gas_183", label %"$have_gas_184" - -"$out_of_gas_183": ; preds = %"$have_gas_174" +"$out_of_gas_214": ; preds = %"$have_gas_210" call void @_out_of_gas() - br label %"$have_gas_184" + br label %"$have_gas_215" -"$have_gas_184": ; preds = %"$out_of_gas_183", %"$have_gas_174" - %"$consume_185" = sub i64 %"$gasrem_181", 1 - store i64 %"$consume_185", i64* @_gasrem, align 8 - %pk_ = alloca %Bystr, align 8 - %"$_literal_cost_pk_bs_186" = alloca %Bystr, align 8 - %"$pk_bs_187" = load %Bystr, %Bystr* %pk_bs, align 8 - store %Bystr %"$pk_bs_187", %Bystr* %"$_literal_cost_pk_bs_186", align 8 - %"$$_literal_cost_pk_bs_186_188" = bitcast %Bystr* %"$_literal_cost_pk_bs_186" to i8* - %"$_literal_cost_call_189" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$_literal_cost_pk_bs_186_188") - %"$pos_190" = load %Uint32, %Uint32* %pos, align 4 - %"$valueof_191" = extractvalue %Uint32 %"$pos_190", 0 - %"$valueof_192" = zext i32 %"$valueof_191" to i64 - %"$len_193" = load %Uint32, %Uint32* %len, align 4 - %"$valueof_194" = extractvalue %Uint32 %"$len_193", 0 - %"$valueof_195" = zext i32 %"$valueof_194" to i64 - %"$gasadd_196" = add i64 %"$valueof_192", %"$valueof_195" - %"$gasmin_197" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_189", i64 %"$gasadd_196") - %"$gasrem_198" = load i64, i64* @_gasrem, align 8 - %"$gascmp_199" = icmp ugt i64 %"$gasmin_197", %"$gasrem_198" - br i1 %"$gascmp_199", label %"$out_of_gas_200", label %"$have_gas_201" - -"$out_of_gas_200": ; preds = %"$have_gas_184" - call void @_out_of_gas() - br label %"$have_gas_201" - -"$have_gas_201": ; preds = %"$out_of_gas_200", %"$have_gas_184" - %"$consume_202" = sub i64 %"$gasrem_198", %"$gasmin_197" - store i64 %"$consume_202", i64* @_gasrem, align 8 - %"$execptr_load_203" = load i8*, i8** @_execptr, align 8 - %"$pk_bs_204" = load %Bystr, %Bystr* %pk_bs, align 8 - %"$pos_205" = load %Uint32, %Uint32* %pos, align 4 - %"$len_206" = load %Uint32, %Uint32* %len, align 4 - %"$substr_call_207" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_203", %Bystr %"$pk_bs_204", %Uint32 %"$pos_205", %Uint32 %"$len_206") - store %Bystr %"$substr_call_207", %Bystr* %pk_, align 8 - %"$gasrem_208" = load i64, i64* @_gasrem, align 8 - %"$gascmp_209" = icmp ugt i64 1, %"$gasrem_208" - br i1 %"$gascmp_209", label %"$out_of_gas_210", label %"$have_gas_211" - -"$out_of_gas_210": ; preds = %"$have_gas_201" +"$have_gas_215": ; preds = %"$out_of_gas_214", %"$have_gas_210" + %"$consume_216" = sub i64 %"$gasrem_212", 1 + store i64 %"$consume_216", i64* @_gasrem, align 8 + store %Uint32 { i32 12 }, %Uint32* %"$pos_0", align 4 + %"$gasrem_217" = load i64, i64* @_gasrem, align 8 + %"$gascmp_218" = icmp ugt i64 1, %"$gasrem_217" + br i1 %"$gascmp_218", label %"$out_of_gas_219", label %"$have_gas_220" + +"$out_of_gas_219": ; preds = %"$have_gas_215" call void @_out_of_gas() - br label %"$have_gas_211" + br label %"$have_gas_220" -"$have_gas_211": ; preds = %"$out_of_gas_210", %"$have_gas_201" - %"$consume_212" = sub i64 %"$gasrem_208", 1 - store i64 %"$consume_212", i64* @_gasrem, align 8 - %pkHash = alloca [32 x i8], align 1 - %"$_literal_cost_pk__213" = alloca %Bystr, align 8 - %"$pk__214" = load %Bystr, %Bystr* %pk_, align 8 - store %Bystr %"$pk__214", %Bystr* %"$_literal_cost_pk__213", align 8 - %"$$_literal_cost_pk__213_215" = bitcast %Bystr* %"$_literal_cost_pk__213" to i8* - %"$_literal_cost_call_216" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$_literal_cost_pk__213_215") - %"$gasdivceil_217" = urem i64 %"$_literal_cost_call_216", 2040 - %"$gasdivceil_218" = udiv i64 %"$_literal_cost_call_216", 2040 - %"$gasdivceil_219" = icmp eq i64 %"$gasdivceil_217", 0 - %"$gasdivceil_220" = add i64 %"$gasdivceil_218", 1 - %"$gasdivceil_221" = select i1 %"$gasdivceil_219", i64 %"$gasdivceil_218", i64 %"$gasdivceil_220" +"$have_gas_220": ; preds = %"$out_of_gas_219", %"$have_gas_215" + %"$consume_221" = sub i64 %"$gasrem_217", 1 + store i64 %"$consume_221", i64* @_gasrem, align 8 + %"$len_1" = alloca %Uint32, align 8 %"$gasrem_222" = load i64, i64* @_gasrem, align 8 - %"$gascmp_223" = icmp ugt i64 %"$gasdivceil_221", %"$gasrem_222" + %"$gascmp_223" = icmp ugt i64 1, %"$gasrem_222" br i1 %"$gascmp_223", label %"$out_of_gas_224", label %"$have_gas_225" -"$out_of_gas_224": ; preds = %"$have_gas_211" +"$out_of_gas_224": ; preds = %"$have_gas_220" call void @_out_of_gas() br label %"$have_gas_225" -"$have_gas_225": ; preds = %"$out_of_gas_224", %"$have_gas_211" - %"$consume_226" = sub i64 %"$gasrem_222", %"$gasdivceil_221" +"$have_gas_225": ; preds = %"$out_of_gas_224", %"$have_gas_220" + %"$consume_226" = sub i64 %"$gasrem_222", 1 store i64 %"$consume_226", i64* @_gasrem, align 8 - %"$execptr_load_227" = load i8*, i8** @_execptr, align 8 - %"$keccak256hash_pk__228" = alloca %Bystr, align 8 - %"$pk__229" = load %Bystr, %Bystr* %pk_, align 8 - store %Bystr %"$pk__229", %Bystr* %"$keccak256hash_pk__228", align 8 - %"$$keccak256hash_pk__228_230" = bitcast %Bystr* %"$keccak256hash_pk__228" to i8* - %"$keccak256hash_call_231" = call [32 x i8]* @_keccak256hash(i8* %"$execptr_load_227", %_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$keccak256hash_pk__228_230") - %"$keccak256hash_233" = load [32 x i8], [32 x i8]* %"$keccak256hash_call_231", align 1 - store [32 x i8] %"$keccak256hash_233", [32 x i8]* %pkHash, align 1 - %"$gasrem_234" = load i64, i64* @_gasrem, align 8 - %"$gascmp_235" = icmp ugt i64 1, %"$gasrem_234" - br i1 %"$gascmp_235", label %"$out_of_gas_236", label %"$have_gas_237" - -"$out_of_gas_236": ; preds = %"$have_gas_225" - call void @_out_of_gas() - br label %"$have_gas_237" - -"$have_gas_237": ; preds = %"$out_of_gas_236", %"$have_gas_225" - %"$consume_238" = sub i64 %"$gasrem_234", 1 - store i64 %"$consume_238", i64* @_gasrem, align 8 - %pkHash_bs = alloca %Bystr, align 8 - %"$gasrem_239" = load i64, i64* @_gasrem, align 8 - %"$gascmp_240" = icmp ugt i64 32, %"$gasrem_239" - br i1 %"$gascmp_240", label %"$out_of_gas_241", label %"$have_gas_242" + store %Uint32 { i32 20 }, %Uint32* %"$len_1", align 4 + %"$gasrem_227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_228" = icmp ugt i64 1, %"$gasrem_227" + br i1 %"$gascmp_228", label %"$out_of_gas_229", label %"$have_gas_230" -"$out_of_gas_241": ; preds = %"$have_gas_237" - call void @_out_of_gas() - br label %"$have_gas_242" - -"$have_gas_242": ; preds = %"$out_of_gas_241", %"$have_gas_237" - %"$consume_243" = sub i64 %"$gasrem_239", 32 - store i64 %"$consume_243", i64* @_gasrem, align 8 - %"$execptr_load_244" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_pkHash_245" = alloca [32 x i8], align 1 - %"$pkHash_246" = load [32 x i8], [32 x i8]* %pkHash, align 1 - store [32 x i8] %"$pkHash_246", [32 x i8]* %"$to_bystr_pkHash_245", align 1 - %"$$to_bystr_pkHash_245_247" = bitcast [32 x i8]* %"$to_bystr_pkHash_245" to i8* - %"$to_bystr_call_248" = call %Bystr @_to_bystr(i8* %"$execptr_load_244", i32 32, i8* %"$$to_bystr_pkHash_245_247") - store %Bystr %"$to_bystr_call_248", %Bystr* %pkHash_bs, align 8 - %"$gasrem_249" = load i64, i64* @_gasrem, align 8 - %"$gascmp_250" = icmp ugt i64 1, %"$gasrem_249" - br i1 %"$gascmp_250", label %"$out_of_gas_251", label %"$have_gas_252" - -"$out_of_gas_251": ; preds = %"$have_gas_242" +"$out_of_gas_229": ; preds = %"$have_gas_225" call void @_out_of_gas() - br label %"$have_gas_252" + br label %"$have_gas_230" -"$have_gas_252": ; preds = %"$out_of_gas_251", %"$have_gas_242" - %"$consume_253" = sub i64 %"$gasrem_249", 1 - store i64 %"$consume_253", i64* @_gasrem, align 8 - %"$pos_0" = alloca %Uint32, align 8 +"$have_gas_230": ; preds = %"$out_of_gas_229", %"$have_gas_225" + %"$consume_231" = sub i64 %"$gasrem_227", 1 + store i64 %"$consume_231", i64* @_gasrem, align 8 + %addr_bs = alloca %Bystr, align 8 + %"$_literal_cost_pkHash_bs_232" = alloca %Bystr, align 8 + %"$pkHash_bs_233" = load %Bystr, %Bystr* %pkHash_bs, align 8 + store %Bystr %"$pkHash_bs_233", %Bystr* %"$_literal_cost_pkHash_bs_232", align 8 + %"$$_literal_cost_pkHash_bs_232_234" = bitcast %Bystr* %"$_literal_cost_pkHash_bs_232" to i8* + %"$_literal_cost_call_235" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_36", i8* %"$$_literal_cost_pkHash_bs_232_234") + %"$$pos_0_236" = load %Uint32, %Uint32* %"$pos_0", align 4 + %"$valueof_237" = extractvalue %Uint32 %"$$pos_0_236", 0 + %"$valueof_238" = zext i32 %"$valueof_237" to i64 + %"$$len_1_239" = load %Uint32, %Uint32* %"$len_1", align 4 + %"$valueof_240" = extractvalue %Uint32 %"$$len_1_239", 0 + %"$valueof_241" = zext i32 %"$valueof_240" to i64 + %"$gasadd_242" = add i64 %"$valueof_238", %"$valueof_241" + %"$gasmin_243" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_235", i64 %"$gasadd_242") + %"$gasrem_244" = load i64, i64* @_gasrem, align 8 + %"$gascmp_245" = icmp ugt i64 %"$gasmin_243", %"$gasrem_244" + br i1 %"$gascmp_245", label %"$out_of_gas_246", label %"$have_gas_247" + +"$out_of_gas_246": ; preds = %"$have_gas_230" + call void @_out_of_gas() + br label %"$have_gas_247" + +"$have_gas_247": ; preds = %"$out_of_gas_246", %"$have_gas_230" + %"$consume_248" = sub i64 %"$gasrem_244", %"$gasmin_243" + store i64 %"$consume_248", i64* @_gasrem, align 8 + %"$execptr_load_249" = load i8*, i8** @_execptr, align 8 + %"$pkHash_bs_250" = load %Bystr, %Bystr* %pkHash_bs, align 8 + %"$$pos_0_251" = load %Uint32, %Uint32* %"$pos_0", align 4 + %"$$len_1_252" = load %Uint32, %Uint32* %"$len_1", align 4 + %"$substr_call_253" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_249", %Bystr %"$pkHash_bs_250", %Uint32 %"$$pos_0_251", %Uint32 %"$$len_1_252") + store %Bystr %"$substr_call_253", %Bystr* %addr_bs, align 8 %"$gasrem_254" = load i64, i64* @_gasrem, align 8 %"$gascmp_255" = icmp ugt i64 1, %"$gasrem_254" br i1 %"$gascmp_255", label %"$out_of_gas_256", label %"$have_gas_257" -"$out_of_gas_256": ; preds = %"$have_gas_252" +"$out_of_gas_256": ; preds = %"$have_gas_247" call void @_out_of_gas() br label %"$have_gas_257" -"$have_gas_257": ; preds = %"$out_of_gas_256", %"$have_gas_252" +"$have_gas_257": ; preds = %"$out_of_gas_256", %"$have_gas_247" %"$consume_258" = sub i64 %"$gasrem_254", 1 store i64 %"$consume_258", i64* @_gasrem, align 8 - store %Uint32 { i32 12 }, %Uint32* %"$pos_0", align 4 + %addr_opt = alloca %TName_Option_ByStr20*, align 8 %"$gasrem_259" = load i64, i64* @_gasrem, align 8 - %"$gascmp_260" = icmp ugt i64 1, %"$gasrem_259" + %"$gascmp_260" = icmp ugt i64 20, %"$gasrem_259" br i1 %"$gascmp_260", label %"$out_of_gas_261", label %"$have_gas_262" "$out_of_gas_261": ; preds = %"$have_gas_257" @@ -479,242 +545,102 @@ entry: br label %"$have_gas_262" "$have_gas_262": ; preds = %"$out_of_gas_261", %"$have_gas_257" - %"$consume_263" = sub i64 %"$gasrem_259", 1 + %"$consume_263" = sub i64 %"$gasrem_259", 20 store i64 %"$consume_263", i64* @_gasrem, align 8 - %"$len_1" = alloca %Uint32, align 8 - %"$gasrem_264" = load i64, i64* @_gasrem, align 8 - %"$gascmp_265" = icmp ugt i64 1, %"$gasrem_264" - br i1 %"$gascmp_265", label %"$out_of_gas_266", label %"$have_gas_267" - -"$out_of_gas_266": ; preds = %"$have_gas_262" - call void @_out_of_gas() - br label %"$have_gas_267" - -"$have_gas_267": ; preds = %"$out_of_gas_266", %"$have_gas_262" - %"$consume_268" = sub i64 %"$gasrem_264", 1 - store i64 %"$consume_268", i64* @_gasrem, align 8 - store %Uint32 { i32 20 }, %Uint32* %"$len_1", align 4 - %"$gasrem_269" = load i64, i64* @_gasrem, align 8 - %"$gascmp_270" = icmp ugt i64 1, %"$gasrem_269" - br i1 %"$gascmp_270", label %"$out_of_gas_271", label %"$have_gas_272" + %"$execptr_load_264" = load i8*, i8** @_execptr, align 8 + %"$addr_bs_265" = load %Bystr, %Bystr* %addr_bs, align 8 + %"$to_bystr20_call_266" = call i8* @_bystr_to_bystrx(i8* %"$execptr_load_264", i32 20, %Bystr %"$addr_bs_265") + %"$to_bystr20_267" = bitcast i8* %"$to_bystr20_call_266" to %TName_Option_ByStr20* + store %TName_Option_ByStr20* %"$to_bystr20_267", %TName_Option_ByStr20** %addr_opt, align 8 + %"$gasrem_268" = load i64, i64* @_gasrem, align 8 + %"$gascmp_269" = icmp ugt i64 2, %"$gasrem_268" + br i1 %"$gascmp_269", label %"$out_of_gas_270", label %"$have_gas_271" + +"$out_of_gas_270": ; preds = %"$have_gas_262" + call void @_out_of_gas() + br label %"$have_gas_271" + +"$have_gas_271": ; preds = %"$out_of_gas_270", %"$have_gas_262" + %"$consume_272" = sub i64 %"$gasrem_268", 2 + store i64 %"$consume_272", i64* @_gasrem, align 8 + %"$addr_opt_274" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %addr_opt, align 8 + %"$addr_opt_tag_275" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$addr_opt_274", i32 0, i32 0 + %"$addr_opt_tag_276" = load i8, i8* %"$addr_opt_tag_275", align 1 + switch i8 %"$addr_opt_tag_276", label %"$empty_default_277" [ + i8 0, label %"$Some_278" + i8 1, label %"$None_288" + ] -"$out_of_gas_271": ; preds = %"$have_gas_267" - call void @_out_of_gas() - br label %"$have_gas_272" +"$Some_278": ; preds = %"$have_gas_271" + %"$addr_opt_279" = bitcast %TName_Option_ByStr20* %"$addr_opt_274" to %CName_Some_ByStr20* + %"$addr_gep_280" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$addr_opt_279", i32 0, i32 1 + %"$addr_load_281" = load [20 x i8], [20 x i8]* %"$addr_gep_280", align 1 + %addr = alloca [20 x i8], align 1 + store [20 x i8] %"$addr_load_281", [20 x i8]* %addr, align 1 + %"$gasrem_282" = load i64, i64* @_gasrem, align 8 + %"$gascmp_283" = icmp ugt i64 1, %"$gasrem_282" + br i1 %"$gascmp_283", label %"$out_of_gas_284", label %"$have_gas_285" -"$have_gas_272": ; preds = %"$out_of_gas_271", %"$have_gas_267" - %"$consume_273" = sub i64 %"$gasrem_269", 1 - store i64 %"$consume_273", i64* @_gasrem, align 8 - %addr_bs = alloca %Bystr, align 8 - %"$_literal_cost_pkHash_bs_274" = alloca %Bystr, align 8 - %"$pkHash_bs_275" = load %Bystr, %Bystr* %pkHash_bs, align 8 - store %Bystr %"$pkHash_bs_275", %Bystr* %"$_literal_cost_pkHash_bs_274", align 8 - %"$$_literal_cost_pkHash_bs_274_276" = bitcast %Bystr* %"$_literal_cost_pkHash_bs_274" to i8* - %"$_literal_cost_call_277" = call i64 @_literal_cost(%_TyDescrTy_Typ* @"$TyDescr_Bystr_43", i8* %"$$_literal_cost_pkHash_bs_274_276") - %"$$pos_0_278" = load %Uint32, %Uint32* %"$pos_0", align 4 - %"$valueof_279" = extractvalue %Uint32 %"$$pos_0_278", 0 - %"$valueof_280" = zext i32 %"$valueof_279" to i64 - %"$$len_1_281" = load %Uint32, %Uint32* %"$len_1", align 4 - %"$valueof_282" = extractvalue %Uint32 %"$$len_1_281", 0 - %"$valueof_283" = zext i32 %"$valueof_282" to i64 - %"$gasadd_284" = add i64 %"$valueof_280", %"$valueof_283" - %"$gasmin_285" = call i64 @llvm.umin.i64(i64 %"$_literal_cost_call_277", i64 %"$gasadd_284") - %"$gasrem_286" = load i64, i64* @_gasrem, align 8 - %"$gascmp_287" = icmp ugt i64 %"$gasmin_285", %"$gasrem_286" - br i1 %"$gascmp_287", label %"$out_of_gas_288", label %"$have_gas_289" - -"$out_of_gas_288": ; preds = %"$have_gas_272" - call void @_out_of_gas() - br label %"$have_gas_289" - -"$have_gas_289": ; preds = %"$out_of_gas_288", %"$have_gas_272" - %"$consume_290" = sub i64 %"$gasrem_286", %"$gasmin_285" - store i64 %"$consume_290", i64* @_gasrem, align 8 - %"$execptr_load_291" = load i8*, i8** @_execptr, align 8 - %"$pkHash_bs_292" = load %Bystr, %Bystr* %pkHash_bs, align 8 - %"$$pos_0_293" = load %Uint32, %Uint32* %"$pos_0", align 4 - %"$$len_1_294" = load %Uint32, %Uint32* %"$len_1", align 4 - %"$substr_call_295" = call %Bystr @_substr_ByStr(i8* %"$execptr_load_291", %Bystr %"$pkHash_bs_292", %Uint32 %"$$pos_0_293", %Uint32 %"$$len_1_294") - store %Bystr %"$substr_call_295", %Bystr* %addr_bs, align 8 - %"$gasrem_296" = load i64, i64* @_gasrem, align 8 - %"$gascmp_297" = icmp ugt i64 1, %"$gasrem_296" - br i1 %"$gascmp_297", label %"$out_of_gas_298", label %"$have_gas_299" - -"$out_of_gas_298": ; preds = %"$have_gas_289" +"$out_of_gas_284": ; preds = %"$Some_278" call void @_out_of_gas() - br label %"$have_gas_299" + br label %"$have_gas_285" -"$have_gas_299": ; preds = %"$out_of_gas_298", %"$have_gas_289" - %"$consume_300" = sub i64 %"$gasrem_296", 1 - store i64 %"$consume_300", i64* @_gasrem, align 8 - %addr_opt = alloca %TName_Option_ByStr20*, align 8 - %"$gasrem_301" = load i64, i64* @_gasrem, align 8 - %"$gascmp_302" = icmp ugt i64 20, %"$gasrem_301" - br i1 %"$gascmp_302", label %"$out_of_gas_303", label %"$have_gas_304" - -"$out_of_gas_303": ; preds = %"$have_gas_299" - call void @_out_of_gas() - br label %"$have_gas_304" - -"$have_gas_304": ; preds = %"$out_of_gas_303", %"$have_gas_299" - %"$consume_305" = sub i64 %"$gasrem_301", 20 - store i64 %"$consume_305", i64* @_gasrem, align 8 - %"$execptr_load_306" = load i8*, i8** @_execptr, align 8 - %"$addr_bs_307" = load %Bystr, %Bystr* %addr_bs, align 8 - %"$to_bystr20_call_308" = call i8* @_bystr_to_bystrx(i8* %"$execptr_load_306", i32 20, %Bystr %"$addr_bs_307") - %"$to_bystr20_309" = bitcast i8* %"$to_bystr20_call_308" to %TName_Option_ByStr20* - store %TName_Option_ByStr20* %"$to_bystr20_309", %TName_Option_ByStr20** %addr_opt, align 8 - %"$gasrem_310" = load i64, i64* @_gasrem, align 8 - %"$gascmp_311" = icmp ugt i64 2, %"$gasrem_310" - br i1 %"$gascmp_311", label %"$out_of_gas_312", label %"$have_gas_313" - -"$out_of_gas_312": ; preds = %"$have_gas_304" - call void @_out_of_gas() - br label %"$have_gas_313" - -"$have_gas_313": ; preds = %"$out_of_gas_312", %"$have_gas_304" - %"$consume_314" = sub i64 %"$gasrem_310", 2 - store i64 %"$consume_314", i64* @_gasrem, align 8 - %"$addr_opt_316" = load %TName_Option_ByStr20*, %TName_Option_ByStr20** %addr_opt, align 8 - %"$addr_opt_tag_317" = getelementptr inbounds %TName_Option_ByStr20, %TName_Option_ByStr20* %"$addr_opt_316", i32 0, i32 0 - %"$addr_opt_tag_318" = load i8, i8* %"$addr_opt_tag_317", align 1 - switch i8 %"$addr_opt_tag_318", label %"$empty_default_319" [ - i8 0, label %"$Some_320" - i8 1, label %"$None_330" - ] +"$have_gas_285": ; preds = %"$out_of_gas_284", %"$Some_278" + %"$consume_286" = sub i64 %"$gasrem_282", 1 + store i64 %"$consume_286", i64* @_gasrem, align 8 + %"$addr_287" = load [20 x i8], [20 x i8]* %addr, align 1 + store [20 x i8] %"$addr_287", [20 x i8]* %"$retval_5", align 1 + br label %"$matchsucc_273" -"$Some_320": ; preds = %"$have_gas_313" - %"$addr_opt_321" = bitcast %TName_Option_ByStr20* %"$addr_opt_316" to %CName_Some_ByStr20* - %"$addr_gep_322" = getelementptr inbounds %CName_Some_ByStr20, %CName_Some_ByStr20* %"$addr_opt_321", i32 0, i32 1 - %"$addr_load_323" = load [20 x i8], [20 x i8]* %"$addr_gep_322", align 1 - %addr = alloca [20 x i8], align 1 - store [20 x i8] %"$addr_load_323", [20 x i8]* %addr, align 1 - %"$gasrem_324" = load i64, i64* @_gasrem, align 8 - %"$gascmp_325" = icmp ugt i64 1, %"$gasrem_324" - br i1 %"$gascmp_325", label %"$out_of_gas_326", label %"$have_gas_327" +"$None_288": ; preds = %"$have_gas_271" + %"$addr_opt_289" = bitcast %TName_Option_ByStr20* %"$addr_opt_274" to %CName_None_ByStr20* + %"$gasrem_290" = load i64, i64* @_gasrem, align 8 + %"$gascmp_291" = icmp ugt i64 1, %"$gasrem_290" + br i1 %"$gascmp_291", label %"$out_of_gas_292", label %"$have_gas_293" -"$out_of_gas_326": ; preds = %"$Some_320" +"$out_of_gas_292": ; preds = %"$None_288" call void @_out_of_gas() - br label %"$have_gas_327" - -"$have_gas_327": ; preds = %"$out_of_gas_326", %"$Some_320" - %"$consume_328" = sub i64 %"$gasrem_324", 1 - store i64 %"$consume_328", i64* @_gasrem, align 8 - %"$addr_329" = load [20 x i8], [20 x i8]* %addr, align 1 - store [20 x i8] %"$addr_329", [20 x i8]* %"$retval_12", align 1 - br label %"$matchsucc_315" - -"$None_330": ; preds = %"$have_gas_313" - %"$addr_opt_331" = bitcast %TName_Option_ByStr20* %"$addr_opt_316" to %CName_None_ByStr20* - %"$gasrem_332" = load i64, i64* @_gasrem, align 8 - %"$gascmp_333" = icmp ugt i64 1, %"$gasrem_332" - br i1 %"$gascmp_333", label %"$out_of_gas_334", label %"$have_gas_335" - -"$out_of_gas_334": ; preds = %"$None_330" - call void @_out_of_gas() - br label %"$have_gas_335" + br label %"$have_gas_293" -"$have_gas_335": ; preds = %"$out_of_gas_334", %"$None_330" - %"$consume_336" = sub i64 %"$gasrem_332", 1 - store i64 %"$consume_336", i64* @_gasrem, align 8 - %"$gasrem_337" = load i64, i64* @_gasrem, align 8 - %"$gascmp_338" = icmp ugt i64 1, %"$gasrem_337" - br i1 %"$gascmp_338", label %"$out_of_gas_339", label %"$have_gas_340" +"$have_gas_293": ; preds = %"$out_of_gas_292", %"$None_288" + %"$consume_294" = sub i64 %"$gasrem_290", 1 + store i64 %"$consume_294", i64* @_gasrem, align 8 + %"$gasrem_295" = load i64, i64* @_gasrem, align 8 + %"$gascmp_296" = icmp ugt i64 1, %"$gasrem_295" + br i1 %"$gascmp_296", label %"$out_of_gas_297", label %"$have_gas_298" -"$out_of_gas_339": ; preds = %"$have_gas_335" +"$out_of_gas_297": ; preds = %"$have_gas_293" call void @_out_of_gas() - br label %"$have_gas_340" + br label %"$have_gas_298" -"$have_gas_340": ; preds = %"$out_of_gas_339", %"$have_gas_335" - %"$consume_341" = sub i64 %"$gasrem_337", 1 - store i64 %"$consume_341", i64* @_gasrem, align 8 - %"$gasrem_342" = load i64, i64* @_gasrem, align 8 - %"$gascmp_343" = icmp ugt i64 1, %"$gasrem_342" - br i1 %"$gascmp_343", label %"$out_of_gas_344", label %"$have_gas_345" +"$have_gas_298": ; preds = %"$out_of_gas_297", %"$have_gas_293" + %"$consume_299" = sub i64 %"$gasrem_295", 1 + store i64 %"$consume_299", i64* @_gasrem, align 8 + %"$gasrem_300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_301" = icmp ugt i64 1, %"$gasrem_300" + br i1 %"$gascmp_301", label %"$out_of_gas_302", label %"$have_gas_303" -"$out_of_gas_344": ; preds = %"$have_gas_340" +"$out_of_gas_302": ; preds = %"$have_gas_298" call void @_out_of_gas() - br label %"$have_gas_345" + br label %"$have_gas_303" -"$have_gas_345": ; preds = %"$out_of_gas_344", %"$have_gas_340" - %"$consume_346" = sub i64 %"$gasrem_342", 1 - store i64 %"$consume_346", i64* @_gasrem, align 8 - store [20 x i8] zeroinitializer, [20 x i8]* %"$retval_12", align 1 - br label %"$matchsucc_315" +"$have_gas_303": ; preds = %"$out_of_gas_302", %"$have_gas_298" + %"$consume_304" = sub i64 %"$gasrem_300", 1 + store i64 %"$consume_304", i64* @_gasrem, align 8 + store [20 x i8] zeroinitializer, [20 x i8]* %"$retval_5", align 1 + br label %"$matchsucc_273" -"$empty_default_319": ; preds = %"$have_gas_313" - br label %"$matchsucc_315" +"$empty_default_277": ; preds = %"$have_gas_271" + br label %"$matchsucc_273" -"$matchsucc_315": ; preds = %"$have_gas_345", %"$have_gas_327", %"$empty_default_319" - %"$$retval_12_347" = load [20 x i8], [20 x i8]* %"$retval_12", align 1 - store [20 x i8] %"$$retval_12_347", [20 x i8]* %1, align 1 +"$matchsucc_273": ; preds = %"$have_gas_303", %"$have_gas_285", %"$empty_default_277" + %"$$retval_5_305" = load [20 x i8], [20 x i8]* %"$retval_5", align 1 + store [20 x i8] %"$$retval_5_305", [20 x i8]* %1, align 1 ret void } -define internal { void (i8*, [20 x i8]*, %Uint32)*, i8* } @"$fundef_9"(%"$$fundef_9_env_88"* %0, [64 x i8]* %1) { -entry: - %sig = load [64 x i8], [64 x i8]* %1, align 1 - %"$$fundef_9_env_msg_101" = getelementptr inbounds %"$$fundef_9_env_88", %"$$fundef_9_env_88"* %0, i32 0, i32 0 - %"$msg_envload_102" = load %Bystr, %Bystr* %"$$fundef_9_env_msg_101", align 8 - %msg = alloca %Bystr, align 8 - store %Bystr %"$msg_envload_102", %Bystr* %msg, align 8 - %"$retval_10" = alloca { void (i8*, [20 x i8]*, %Uint32)*, i8* }, align 8 - %"$gasrem_103" = load i64, i64* @_gasrem, align 8 - %"$gascmp_104" = icmp ugt i64 1, %"$gasrem_103" - br i1 %"$gascmp_104", label %"$out_of_gas_105", label %"$have_gas_106" - -"$out_of_gas_105": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_106" - -"$have_gas_106": ; preds = %"$out_of_gas_105", %entry - %"$consume_107" = sub i64 %"$gasrem_103", 1 - store i64 %"$consume_107", i64* @_gasrem, align 8 - %"$$fundef_11_envp_108_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_11_envp_108_salloc" = call i8* @_salloc(i8* %"$$fundef_11_envp_108_load", i64 80) - %"$$fundef_11_envp_108" = bitcast i8* %"$$fundef_11_envp_108_salloc" to %"$$fundef_11_env_87"* - %"$$fundef_11_env_voidp_110" = bitcast %"$$fundef_11_env_87"* %"$$fundef_11_envp_108" to i8* - %"$$fundef_11_cloval_111" = insertvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } { void (i8*, [20 x i8]*, %Uint32)* bitcast (void (%"$$fundef_11_env_87"*, [20 x i8]*, %Uint32)* @"$fundef_11" to void (i8*, [20 x i8]*, %Uint32)*), i8* undef }, i8* %"$$fundef_11_env_voidp_110", 1 - %"$$fundef_11_env_msg_112" = getelementptr inbounds %"$$fundef_11_env_87", %"$$fundef_11_env_87"* %"$$fundef_11_envp_108", i32 0, i32 0 - %"$msg_113" = load %Bystr, %Bystr* %msg, align 8 - store %Bystr %"$msg_113", %Bystr* %"$$fundef_11_env_msg_112", align 8 - %"$$fundef_11_env_sig_114" = getelementptr inbounds %"$$fundef_11_env_87", %"$$fundef_11_env_87"* %"$$fundef_11_envp_108", i32 0, i32 1 - store [64 x i8] %sig, [64 x i8]* %"$$fundef_11_env_sig_114", align 1 - store { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$fundef_11_cloval_111", { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$retval_10", align 8 - %"$$retval_10_115" = load { void (i8*, [20 x i8]*, %Uint32)*, i8* }, { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$retval_10", align 8 - ret { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$retval_10_115" -} - -define internal { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } @"$fundef_7"(%"$$fundef_7_env_89"* %0, %Bystr %1) { -entry: - %"$retval_8" = alloca { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }, align 8 - %"$gasrem_90" = load i64, i64* @_gasrem, align 8 - %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" - br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" - -"$out_of_gas_92": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_93" - -"$have_gas_93": ; preds = %"$out_of_gas_92", %entry - %"$consume_94" = sub i64 %"$gasrem_90", 1 - store i64 %"$consume_94", i64* @_gasrem, align 8 - %"$$fundef_9_envp_95_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_9_envp_95_salloc" = call i8* @_salloc(i8* %"$$fundef_9_envp_95_load", i64 16) - %"$$fundef_9_envp_95" = bitcast i8* %"$$fundef_9_envp_95_salloc" to %"$$fundef_9_env_88"* - %"$$fundef_9_env_voidp_97" = bitcast %"$$fundef_9_env_88"* %"$$fundef_9_envp_95" to i8* - %"$$fundef_9_cloval_98" = insertvalue { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)* bitcast ({ void (i8*, [20 x i8]*, %Uint32)*, i8* } (%"$$fundef_9_env_88"*, [64 x i8]*)* @"$fundef_9" to { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*), i8* undef }, i8* %"$$fundef_9_env_voidp_97", 1 - %"$$fundef_9_env_msg_99" = getelementptr inbounds %"$$fundef_9_env_88", %"$$fundef_9_env_88"* %"$$fundef_9_envp_95", i32 0, i32 0 - store %Bystr %1, %Bystr* %"$$fundef_9_env_msg_99", align 8 - store { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$fundef_9_cloval_98", { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$retval_8", align 8 - %"$$retval_8_100" = load { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }, { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$retval_8", align 8 - ret { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$retval_8_100" -} - declare void @_out_of_gas() -declare i8* @_salloc(i8*, i64) - declare i64 @_literal_cost(%_TyDescrTy_Typ*, i8*) declare [65 x i8]* @_ecdsa_recover_pk(i8*, %Bystr, [64 x i8]*, %Uint32) @@ -739,287 +665,272 @@ entry: define internal %TName_Bool* @_scilla_expr_fun(i8* %0) { entry: - %"$expr_6" = alloca %TName_Bool*, align 8 - %"$gasrem_409" = load i64, i64* @_gasrem, align 8 - %"$gascmp_410" = icmp ugt i64 1, %"$gasrem_409" - br i1 %"$gascmp_410", label %"$out_of_gas_411", label %"$have_gas_412" + %"$expr_3" = alloca %TName_Bool*, align 8 + %"$gasrem_367" = load i64, i64* @_gasrem, align 8 + %"$gascmp_368" = icmp ugt i64 1, %"$gasrem_367" + br i1 %"$gascmp_368", label %"$out_of_gas_369", label %"$have_gas_370" -"$out_of_gas_411": ; preds = %entry +"$out_of_gas_369": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_412" + br label %"$have_gas_370" -"$have_gas_412": ; preds = %"$out_of_gas_411", %entry - %"$consume_413" = sub i64 %"$gasrem_409", 1 - store i64 %"$consume_413", i64* @_gasrem, align 8 - %ecrecover = alloca { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* }, align 8 - %"$gasrem_414" = load i64, i64* @_gasrem, align 8 - %"$gascmp_415" = icmp ugt i64 1, %"$gasrem_414" - br i1 %"$gascmp_415", label %"$out_of_gas_416", label %"$have_gas_417" +"$have_gas_370": ; preds = %"$out_of_gas_369", %entry + %"$consume_371" = sub i64 %"$gasrem_367", 1 + store i64 %"$consume_371", i64* @_gasrem, align 8 + %ecrecover = alloca { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* }, align 8 + %"$gasrem_372" = load i64, i64* @_gasrem, align 8 + %"$gascmp_373" = icmp ugt i64 3, %"$gasrem_372" + br i1 %"$gascmp_373", label %"$out_of_gas_374", label %"$have_gas_375" -"$out_of_gas_416": ; preds = %"$have_gas_412" +"$out_of_gas_374": ; preds = %"$have_gas_370" call void @_out_of_gas() - br label %"$have_gas_417" + br label %"$have_gas_375" -"$have_gas_417": ; preds = %"$out_of_gas_416", %"$have_gas_412" - %"$consume_418" = sub i64 %"$gasrem_414", 1 - store i64 %"$consume_418", i64* @_gasrem, align 8 - store { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* } { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)* bitcast ({ { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (%"$$fundef_7_env_89"*, %Bystr)* @"$fundef_7" to { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*), i8* null }, { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* }* %ecrecover, align 8 - %"$gasrem_422" = load i64, i64* @_gasrem, align 8 - %"$gascmp_423" = icmp ugt i64 1, %"$gasrem_422" - br i1 %"$gascmp_423", label %"$out_of_gas_424", label %"$have_gas_425" +"$have_gas_375": ; preds = %"$out_of_gas_374", %"$have_gas_370" + %"$consume_376" = sub i64 %"$gasrem_372", 3 + store i64 %"$consume_376", i64* @_gasrem, align 8 + store { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* } { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)* bitcast (void (%"$$fundef_4_env_80"*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)* @"$fundef_4" to void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*), i8* null }, { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* }* %ecrecover, align 8 + %"$gasrem_380" = load i64, i64* @_gasrem, align 8 + %"$gascmp_381" = icmp ugt i64 1, %"$gasrem_380" + br i1 %"$gascmp_381", label %"$out_of_gas_382", label %"$have_gas_383" -"$out_of_gas_424": ; preds = %"$have_gas_417" +"$out_of_gas_382": ; preds = %"$have_gas_375" call void @_out_of_gas() - br label %"$have_gas_425" + br label %"$have_gas_383" -"$have_gas_425": ; preds = %"$out_of_gas_424", %"$have_gas_417" - %"$consume_426" = sub i64 %"$gasrem_422", 1 - store i64 %"$consume_426", i64* @_gasrem, align 8 +"$have_gas_383": ; preds = %"$out_of_gas_382", %"$have_gas_375" + %"$consume_384" = sub i64 %"$gasrem_380", 1 + store i64 %"$consume_384", i64* @_gasrem, align 8 %header_hash = alloca { %Bystr (i8*, %Bystr)*, i8* }, align 8 - %"$gasrem_427" = load i64, i64* @_gasrem, align 8 - %"$gascmp_428" = icmp ugt i64 1, %"$gasrem_427" - br i1 %"$gascmp_428", label %"$out_of_gas_429", label %"$have_gas_430" + %"$gasrem_385" = load i64, i64* @_gasrem, align 8 + %"$gascmp_386" = icmp ugt i64 1, %"$gasrem_385" + br i1 %"$gascmp_386", label %"$out_of_gas_387", label %"$have_gas_388" -"$out_of_gas_429": ; preds = %"$have_gas_425" +"$out_of_gas_387": ; preds = %"$have_gas_383" call void @_out_of_gas() - br label %"$have_gas_430" + br label %"$have_gas_388" -"$have_gas_430": ; preds = %"$out_of_gas_429", %"$have_gas_425" - %"$consume_431" = sub i64 %"$gasrem_427", 1 - store i64 %"$consume_431", i64* @_gasrem, align 8 - store { %Bystr (i8*, %Bystr)*, i8* } { %Bystr (i8*, %Bystr)* bitcast (%Bystr (%"$$fundef_13_env_86"*, %Bystr)* @"$fundef_13" to %Bystr (i8*, %Bystr)*), i8* null }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8 - %"$gasrem_435" = load i64, i64* @_gasrem, align 8 - %"$gascmp_436" = icmp ugt i64 1, %"$gasrem_435" - br i1 %"$gascmp_436", label %"$out_of_gas_437", label %"$have_gas_438" +"$have_gas_388": ; preds = %"$out_of_gas_387", %"$have_gas_383" + %"$consume_389" = sub i64 %"$gasrem_385", 1 + store i64 %"$consume_389", i64* @_gasrem, align 8 + store { %Bystr (i8*, %Bystr)*, i8* } { %Bystr (i8*, %Bystr)* bitcast (%Bystr (%"$$fundef_6_env_79"*, %Bystr)* @"$fundef_6" to %Bystr (i8*, %Bystr)*), i8* null }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8 + %"$gasrem_393" = load i64, i64* @_gasrem, align 8 + %"$gascmp_394" = icmp ugt i64 1, %"$gasrem_393" + br i1 %"$gascmp_394", label %"$out_of_gas_395", label %"$have_gas_396" -"$out_of_gas_437": ; preds = %"$have_gas_430" +"$out_of_gas_395": ; preds = %"$have_gas_388" call void @_out_of_gas() - br label %"$have_gas_438" + br label %"$have_gas_396" -"$have_gas_438": ; preds = %"$out_of_gas_437", %"$have_gas_430" - %"$consume_439" = sub i64 %"$gasrem_435", 1 - store i64 %"$consume_439", i64* @_gasrem, align 8 +"$have_gas_396": ; preds = %"$out_of_gas_395", %"$have_gas_388" + %"$consume_397" = sub i64 %"$gasrem_393", 1 + store i64 %"$consume_397", i64* @_gasrem, align 8 %sig = alloca [64 x i8], align 1 - %"$gasrem_440" = load i64, i64* @_gasrem, align 8 - %"$gascmp_441" = icmp ugt i64 1, %"$gasrem_440" - br i1 %"$gascmp_441", label %"$out_of_gas_442", label %"$have_gas_443" + %"$gasrem_398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_399" = icmp ugt i64 1, %"$gasrem_398" + br i1 %"$gascmp_399", label %"$out_of_gas_400", label %"$have_gas_401" -"$out_of_gas_442": ; preds = %"$have_gas_438" +"$out_of_gas_400": ; preds = %"$have_gas_396" call void @_out_of_gas() - br label %"$have_gas_443" + br label %"$have_gas_401" -"$have_gas_443": ; preds = %"$out_of_gas_442", %"$have_gas_438" - %"$consume_444" = sub i64 %"$gasrem_440", 1 - store i64 %"$consume_444", i64* @_gasrem, align 8 +"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_396" + %"$consume_402" = sub i64 %"$gasrem_398", 1 + store i64 %"$consume_402", i64* @_gasrem, align 8 store [64 x i8] c"}X\8Dy\AC\9F\091\C6\91P\DEk\FER\89\F0\14x\93x\1B\FF\BC\C3+^\07\BDh}\10H\DD\A09\FF\C1\E8}\E2\E9\86\10\DC\87n\97A\1D`IHG9\04\B1+d\BE\D8\88\0B\CC", [64 x i8]* %sig, align 1 - %"$gasrem_445" = load i64, i64* @_gasrem, align 8 - %"$gascmp_446" = icmp ugt i64 1, %"$gasrem_445" - br i1 %"$gascmp_446", label %"$out_of_gas_447", label %"$have_gas_448" + %"$gasrem_403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_404" = icmp ugt i64 1, %"$gasrem_403" + br i1 %"$gascmp_404", label %"$out_of_gas_405", label %"$have_gas_406" -"$out_of_gas_447": ; preds = %"$have_gas_443" +"$out_of_gas_405": ; preds = %"$have_gas_401" call void @_out_of_gas() - br label %"$have_gas_448" + br label %"$have_gas_406" -"$have_gas_448": ; preds = %"$out_of_gas_447", %"$have_gas_443" - %"$consume_449" = sub i64 %"$gasrem_445", 1 - store i64 %"$consume_449", i64* @_gasrem, align 8 +"$have_gas_406": ; preds = %"$out_of_gas_405", %"$have_gas_401" + %"$consume_407" = sub i64 %"$gasrem_403", 1 + store i64 %"$consume_407", i64* @_gasrem, align 8 %msg = alloca [1591 x i8], align 1 - %"$gasrem_450" = load i64, i64* @_gasrem, align 8 - %"$gascmp_451" = icmp ugt i64 1, %"$gasrem_450" - br i1 %"$gascmp_451", label %"$out_of_gas_452", label %"$have_gas_453" + %"$gasrem_408" = load i64, i64* @_gasrem, align 8 + %"$gascmp_409" = icmp ugt i64 1, %"$gasrem_408" + br i1 %"$gascmp_409", label %"$out_of_gas_410", label %"$have_gas_411" -"$out_of_gas_452": ; preds = %"$have_gas_448" +"$out_of_gas_410": ; preds = %"$have_gas_406" call void @_out_of_gas() - br label %"$have_gas_453" + br label %"$have_gas_411" -"$have_gas_453": ; preds = %"$out_of_gas_452", %"$have_gas_448" - %"$consume_454" = sub i64 %"$gasrem_450", 1 - store i64 %"$consume_454", i64* @_gasrem, align 8 +"$have_gas_411": ; preds = %"$out_of_gas_410", %"$have_gas_406" + %"$consume_412" = sub i64 %"$gasrem_408", 1 + store i64 %"$consume_412", i64* @_gasrem, align 8 store [1591 x i8] c"\00\00\00\00\9B\91V\17\00\00\00\00\F4\8A@W\BE\F2h\CC?\DB\03Ni\DC.\94)\07\E0\8A\C4\A4 \D1\B1\96\B8\C2\8E\BF[\F2\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00*\8B\E0\A1`Zc\A3\17\04\AE\C4\EBO\10#\F1\EC\C2\93K\D8o\11\9A\B7u&\F9Gz\F9\A5~\1A_P\8E\00\00A\07\82r\0A\B1\89\FF\FD\84\05{\22leader\22:3,\22vrf_value\22:\22BOO3oXyk2RIpeVQY38Tq3qJB82szJh6nOorJUp/JMX+GLpz4zIsG9LJl4xJo4etHgOV5qi6MHKftqOirOuZIZiY=\22,\22vrf_proof\22:\22cYSRWFPoi9GHABGRbUdh6a+5PoO1wv5JUzSAtWxhEcpqut0SjYXs4LtS55tSJt3AtI0YamLgRJyzROhVGVbm4g==\22,\22last_config_block_num\22:36432,\22new_chain_config\22:{\22version\22:1,\22view\22:4,\22n\22:8,\22c\22:2,\22block_msg_delay\22:10000000000,\22hash_msg_delay\22:10000000000,\22peer_handshake_timeout\22:10000000000,\22peers\22:[{\22index\22:1,\22id\22:\221205028172918540b2b512eae1872a2a2e3a28d989c60d95dab8829ada7d7dd706d658\22},{\22index\22:4,\22id\22:\22120502679930a42aaf3c69798ca8a3f12e134c019405818d783d11748e039de8515988\22},{\22index\22:3,\22id\22:\22120502482acb6564b19b90653f6e9c806292e8aa83f78e7a9382a24a6efe41c0c06f39\22},{\22index\22:5,\22id\22:\22120502468dd1899ed2d1cc2b829882a165a0ecb6a745af0c72eb2982d66b4311b4ef73\22},{\22index\22:8,\22id\22:\2212050393421445b9421bd4cc90d7bc88c9301558047a76b20c59e7c511ee7d229982b1\22},{\22index\22:2,\22id\22:\221205038b8af6210ecfdcbcab22552ef8d8cf41c6f86f9cf9ab53d865741cfdb833f06b\22},{\22index\22:7,\22id\22:\221205031e0779f5c5ccb2612352fe4a200f99d3e7758e70ba53f607c59ff22a30f678ff\22},{\22index\22:6,\22id\22:\22120502eb1baab602c5899282561cdaaa7aabbcdd0ccfcbc3e79793ac24acf90778f35a\22}],\22pos_table\22:[2,8,5,5,8,7,1,4,5,6,5,4,7,7,3,3,4,6,1,2,4,8,5,4,7,4,6,6,2,2,1,1,8,8,6,6,6,7,8,7,4,8,5,1,3,3,8,5,3,6,3,6,7,5,6,2,3,1,2,6,5,2,1,4,2,1,8,4,8,3,8,7,7,5,1,7,4,4,1,5,2,5,6,1,2,8,3,3,1,3,1,4,1,7,8,6,8,2,5,1,4,5,3,2,2,2,8,3,3,3,6,7,4,7,4,2,7,5,6,7],\22max_block_change_view\22:60000}}\F8\FCz\1Fj\85c\13\C5\91\A3\A7G\F4\EC\A7!\8A\82\0B", [1591 x i8]* %msg, align 1 - %"$gasrem_455" = load i64, i64* @_gasrem, align 8 - %"$gascmp_456" = icmp ugt i64 1, %"$gasrem_455" - br i1 %"$gascmp_456", label %"$out_of_gas_457", label %"$have_gas_458" + %"$gasrem_413" = load i64, i64* @_gasrem, align 8 + %"$gascmp_414" = icmp ugt i64 1, %"$gasrem_413" + br i1 %"$gascmp_414", label %"$out_of_gas_415", label %"$have_gas_416" -"$out_of_gas_457": ; preds = %"$have_gas_453" +"$out_of_gas_415": ; preds = %"$have_gas_411" call void @_out_of_gas() - br label %"$have_gas_458" + br label %"$have_gas_416" -"$have_gas_458": ; preds = %"$out_of_gas_457", %"$have_gas_453" - %"$consume_459" = sub i64 %"$gasrem_455", 1 - store i64 %"$consume_459", i64* @_gasrem, align 8 +"$have_gas_416": ; preds = %"$out_of_gas_415", %"$have_gas_411" + %"$consume_417" = sub i64 %"$gasrem_413", 1 + store i64 %"$consume_417", i64* @_gasrem, align 8 %addr_gold = alloca [20 x i8], align 1 - %"$gasrem_460" = load i64, i64* @_gasrem, align 8 - %"$gascmp_461" = icmp ugt i64 1, %"$gasrem_460" - br i1 %"$gascmp_461", label %"$out_of_gas_462", label %"$have_gas_463" + %"$gasrem_418" = load i64, i64* @_gasrem, align 8 + %"$gascmp_419" = icmp ugt i64 1, %"$gasrem_418" + br i1 %"$gascmp_419", label %"$out_of_gas_420", label %"$have_gas_421" -"$out_of_gas_462": ; preds = %"$have_gas_458" +"$out_of_gas_420": ; preds = %"$have_gas_416" call void @_out_of_gas() - br label %"$have_gas_463" + br label %"$have_gas_421" -"$have_gas_463": ; preds = %"$out_of_gas_462", %"$have_gas_458" - %"$consume_464" = sub i64 %"$gasrem_460", 1 - store i64 %"$consume_464", i64* @_gasrem, align 8 +"$have_gas_421": ; preds = %"$out_of_gas_420", %"$have_gas_416" + %"$consume_422" = sub i64 %"$gasrem_418", 1 + store i64 %"$consume_422", i64* @_gasrem, align 8 store [20 x i8] c"\A4*N\85\03M[\EB\C2%t=\A4\00\CCL\0ECrz", [20 x i8]* %addr_gold, align 1 - %"$gasrem_465" = load i64, i64* @_gasrem, align 8 - %"$gascmp_466" = icmp ugt i64 1, %"$gasrem_465" - br i1 %"$gascmp_466", label %"$out_of_gas_467", label %"$have_gas_468" + %"$gasrem_423" = load i64, i64* @_gasrem, align 8 + %"$gascmp_424" = icmp ugt i64 1, %"$gasrem_423" + br i1 %"$gascmp_424", label %"$out_of_gas_425", label %"$have_gas_426" -"$out_of_gas_467": ; preds = %"$have_gas_463" +"$out_of_gas_425": ; preds = %"$have_gas_421" call void @_out_of_gas() - br label %"$have_gas_468" + br label %"$have_gas_426" -"$have_gas_468": ; preds = %"$out_of_gas_467", %"$have_gas_463" - %"$consume_469" = sub i64 %"$gasrem_465", 1 - store i64 %"$consume_469", i64* @_gasrem, align 8 +"$have_gas_426": ; preds = %"$out_of_gas_425", %"$have_gas_421" + %"$consume_427" = sub i64 %"$gasrem_423", 1 + store i64 %"$consume_427", i64* @_gasrem, align 8 %msg_bs = alloca %Bystr, align 8 - %"$gasrem_470" = load i64, i64* @_gasrem, align 8 - %"$gascmp_471" = icmp ugt i64 1591, %"$gasrem_470" - br i1 %"$gascmp_471", label %"$out_of_gas_472", label %"$have_gas_473" - -"$out_of_gas_472": ; preds = %"$have_gas_468" - call void @_out_of_gas() - br label %"$have_gas_473" - -"$have_gas_473": ; preds = %"$out_of_gas_472", %"$have_gas_468" - %"$consume_474" = sub i64 %"$gasrem_470", 1591 - store i64 %"$consume_474", i64* @_gasrem, align 8 - %"$execptr_load_475" = load i8*, i8** @_execptr, align 8 - %"$to_bystr_msg_476" = alloca [1591 x i8], align 1 - %"$msg_477" = load [1591 x i8], [1591 x i8]* %msg, align 1 - store [1591 x i8] %"$msg_477", [1591 x i8]* %"$to_bystr_msg_476", align 1 - %"$$to_bystr_msg_476_478" = bitcast [1591 x i8]* %"$to_bystr_msg_476" to i8* - %"$to_bystr_call_479" = call %Bystr @_to_bystr(i8* %"$execptr_load_475", i32 1591, i8* %"$$to_bystr_msg_476_478") - store %Bystr %"$to_bystr_call_479", %Bystr* %msg_bs, align 8 - %"$gasrem_480" = load i64, i64* @_gasrem, align 8 - %"$gascmp_481" = icmp ugt i64 1, %"$gasrem_480" - br i1 %"$gascmp_481", label %"$out_of_gas_482", label %"$have_gas_483" - -"$out_of_gas_482": ; preds = %"$have_gas_473" - call void @_out_of_gas() - br label %"$have_gas_483" - -"$have_gas_483": ; preds = %"$out_of_gas_482", %"$have_gas_473" - %"$consume_484" = sub i64 %"$gasrem_480", 1 - store i64 %"$consume_484", i64* @_gasrem, align 8 + %"$gasrem_428" = load i64, i64* @_gasrem, align 8 + %"$gascmp_429" = icmp ugt i64 1591, %"$gasrem_428" + br i1 %"$gascmp_429", label %"$out_of_gas_430", label %"$have_gas_431" + +"$out_of_gas_430": ; preds = %"$have_gas_426" + call void @_out_of_gas() + br label %"$have_gas_431" + +"$have_gas_431": ; preds = %"$out_of_gas_430", %"$have_gas_426" + %"$consume_432" = sub i64 %"$gasrem_428", 1591 + store i64 %"$consume_432", i64* @_gasrem, align 8 + %"$execptr_load_433" = load i8*, i8** @_execptr, align 8 + %"$to_bystr_msg_434" = alloca [1591 x i8], align 1 + %"$msg_435" = load [1591 x i8], [1591 x i8]* %msg, align 1 + store [1591 x i8] %"$msg_435", [1591 x i8]* %"$to_bystr_msg_434", align 1 + %"$$to_bystr_msg_434_436" = bitcast [1591 x i8]* %"$to_bystr_msg_434" to i8* + %"$to_bystr_call_437" = call %Bystr @_to_bystr(i8* %"$execptr_load_433", i32 1591, i8* %"$$to_bystr_msg_434_436") + store %Bystr %"$to_bystr_call_437", %Bystr* %msg_bs, align 8 + %"$gasrem_438" = load i64, i64* @_gasrem, align 8 + %"$gascmp_439" = icmp ugt i64 1, %"$gasrem_438" + br i1 %"$gascmp_439", label %"$out_of_gas_440", label %"$have_gas_441" + +"$out_of_gas_440": ; preds = %"$have_gas_431" + call void @_out_of_gas() + br label %"$have_gas_441" + +"$have_gas_441": ; preds = %"$out_of_gas_440", %"$have_gas_431" + %"$consume_442" = sub i64 %"$gasrem_438", 1 + store i64 %"$consume_442", i64* @_gasrem, align 8 %msg_hashed = alloca %Bystr, align 8 - %"$gasrem_485" = load i64, i64* @_gasrem, align 8 - %"$gascmp_486" = icmp ugt i64 1, %"$gasrem_485" - br i1 %"$gascmp_486", label %"$out_of_gas_487", label %"$have_gas_488" + %"$gasrem_443" = load i64, i64* @_gasrem, align 8 + %"$gascmp_444" = icmp ugt i64 1, %"$gasrem_443" + br i1 %"$gascmp_444", label %"$out_of_gas_445", label %"$have_gas_446" -"$out_of_gas_487": ; preds = %"$have_gas_483" +"$out_of_gas_445": ; preds = %"$have_gas_441" call void @_out_of_gas() - br label %"$have_gas_488" + br label %"$have_gas_446" -"$have_gas_488": ; preds = %"$out_of_gas_487", %"$have_gas_483" - %"$consume_489" = sub i64 %"$gasrem_485", 1 - store i64 %"$consume_489", i64* @_gasrem, align 8 +"$have_gas_446": ; preds = %"$out_of_gas_445", %"$have_gas_441" + %"$consume_447" = sub i64 %"$gasrem_443", 1 + store i64 %"$consume_447", i64* @_gasrem, align 8 %"$header_hash_2" = alloca %Bystr, align 8 - %"$header_hash_490" = load { %Bystr (i8*, %Bystr)*, i8* }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8 - %"$header_hash_fptr_491" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_490", 0 - %"$header_hash_envptr_492" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_490", 1 - %"$msg_bs_493" = load %Bystr, %Bystr* %msg_bs, align 8 - %"$header_hash_call_494" = call %Bystr %"$header_hash_fptr_491"(i8* %"$header_hash_envptr_492", %Bystr %"$msg_bs_493") - store %Bystr %"$header_hash_call_494", %Bystr* %"$header_hash_2", align 8 - %"$$header_hash_2_495" = load %Bystr, %Bystr* %"$header_hash_2", align 8 - store %Bystr %"$$header_hash_2_495", %Bystr* %msg_hashed, align 8 - %"$gasrem_496" = load i64, i64* @_gasrem, align 8 - %"$gascmp_497" = icmp ugt i64 1, %"$gasrem_496" - br i1 %"$gascmp_497", label %"$out_of_gas_498", label %"$have_gas_499" - -"$out_of_gas_498": ; preds = %"$have_gas_488" - call void @_out_of_gas() - br label %"$have_gas_499" - -"$have_gas_499": ; preds = %"$out_of_gas_498", %"$have_gas_488" - %"$consume_500" = sub i64 %"$gasrem_496", 1 - store i64 %"$consume_500", i64* @_gasrem, align 8 + %"$header_hash_448" = load { %Bystr (i8*, %Bystr)*, i8* }, { %Bystr (i8*, %Bystr)*, i8* }* %header_hash, align 8 + %"$header_hash_fptr_449" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_448", 0 + %"$header_hash_envptr_450" = extractvalue { %Bystr (i8*, %Bystr)*, i8* } %"$header_hash_448", 1 + %"$msg_bs_451" = load %Bystr, %Bystr* %msg_bs, align 8 + %"$header_hash_call_452" = call %Bystr %"$header_hash_fptr_449"(i8* %"$header_hash_envptr_450", %Bystr %"$msg_bs_451") + store %Bystr %"$header_hash_call_452", %Bystr* %"$header_hash_2", align 8 + %"$$header_hash_2_453" = load %Bystr, %Bystr* %"$header_hash_2", align 8 + store %Bystr %"$$header_hash_2_453", %Bystr* %msg_hashed, align 8 + %"$gasrem_454" = load i64, i64* @_gasrem, align 8 + %"$gascmp_455" = icmp ugt i64 1, %"$gasrem_454" + br i1 %"$gascmp_455", label %"$out_of_gas_456", label %"$have_gas_457" + +"$out_of_gas_456": ; preds = %"$have_gas_446" + call void @_out_of_gas() + br label %"$have_gas_457" + +"$have_gas_457": ; preds = %"$out_of_gas_456", %"$have_gas_446" + %"$consume_458" = sub i64 %"$gasrem_454", 1 + store i64 %"$consume_458", i64* @_gasrem, align 8 %recid = alloca %Uint32, align 8 - %"$gasrem_501" = load i64, i64* @_gasrem, align 8 - %"$gascmp_502" = icmp ugt i64 1, %"$gasrem_501" - br i1 %"$gascmp_502", label %"$out_of_gas_503", label %"$have_gas_504" + %"$gasrem_459" = load i64, i64* @_gasrem, align 8 + %"$gascmp_460" = icmp ugt i64 1, %"$gasrem_459" + br i1 %"$gascmp_460", label %"$out_of_gas_461", label %"$have_gas_462" -"$out_of_gas_503": ; preds = %"$have_gas_499" +"$out_of_gas_461": ; preds = %"$have_gas_457" call void @_out_of_gas() - br label %"$have_gas_504" + br label %"$have_gas_462" -"$have_gas_504": ; preds = %"$out_of_gas_503", %"$have_gas_499" - %"$consume_505" = sub i64 %"$gasrem_501", 1 - store i64 %"$consume_505", i64* @_gasrem, align 8 +"$have_gas_462": ; preds = %"$out_of_gas_461", %"$have_gas_457" + %"$consume_463" = sub i64 %"$gasrem_459", 1 + store i64 %"$consume_463", i64* @_gasrem, align 8 store %Uint32 zeroinitializer, %Uint32* %recid, align 4 - %"$gasrem_506" = load i64, i64* @_gasrem, align 8 - %"$gascmp_507" = icmp ugt i64 1, %"$gasrem_506" - br i1 %"$gascmp_507", label %"$out_of_gas_508", label %"$have_gas_509" + %"$gasrem_464" = load i64, i64* @_gasrem, align 8 + %"$gascmp_465" = icmp ugt i64 1, %"$gasrem_464" + br i1 %"$gascmp_465", label %"$out_of_gas_466", label %"$have_gas_467" -"$out_of_gas_508": ; preds = %"$have_gas_504" +"$out_of_gas_466": ; preds = %"$have_gas_462" call void @_out_of_gas() - br label %"$have_gas_509" + br label %"$have_gas_467" -"$have_gas_509": ; preds = %"$out_of_gas_508", %"$have_gas_504" - %"$consume_510" = sub i64 %"$gasrem_506", 1 - store i64 %"$consume_510", i64* @_gasrem, align 8 +"$have_gas_467": ; preds = %"$out_of_gas_466", %"$have_gas_462" + %"$consume_468" = sub i64 %"$gasrem_464", 1 + store i64 %"$consume_468", i64* @_gasrem, align 8 %addr_computed = alloca [20 x i8], align 1 - %"$gasrem_511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_512" = icmp ugt i64 1, %"$gasrem_511" - br i1 %"$gascmp_512", label %"$out_of_gas_513", label %"$have_gas_514" - -"$out_of_gas_513": ; preds = %"$have_gas_509" - call void @_out_of_gas() - br label %"$have_gas_514" - -"$have_gas_514": ; preds = %"$out_of_gas_513", %"$have_gas_509" - %"$consume_515" = sub i64 %"$gasrem_511", 1 - store i64 %"$consume_515", i64* @_gasrem, align 8 - %"$ecrecover_3" = alloca { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }, align 8 - %"$ecrecover_516" = load { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* }, { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* }* %ecrecover, align 8 - %"$ecrecover_fptr_517" = extractvalue { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* } %"$ecrecover_516", 0 - %"$ecrecover_envptr_518" = extractvalue { { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } (i8*, %Bystr)*, i8* } %"$ecrecover_516", 1 - %"$msg_hashed_519" = load %Bystr, %Bystr* %msg_hashed, align 8 - %"$ecrecover_call_520" = call { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$ecrecover_fptr_517"(i8* %"$ecrecover_envptr_518", %Bystr %"$msg_hashed_519") - store { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$ecrecover_call_520", { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$ecrecover_3", align 8 - %"$ecrecover_4" = alloca { void (i8*, [20 x i8]*, %Uint32)*, i8* }, align 8 - %"$$ecrecover_3_521" = load { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }, { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* }* %"$ecrecover_3", align 8 - %"$$ecrecover_3_fptr_522" = extractvalue { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$ecrecover_3_521", 0 - %"$$ecrecover_3_envptr_523" = extractvalue { { void (i8*, [20 x i8]*, %Uint32)*, i8* } (i8*, [64 x i8]*)*, i8* } %"$$ecrecover_3_521", 1 - %"$$ecrecover_3_sig_524" = alloca [64 x i8], align 1 - %"$sig_525" = load [64 x i8], [64 x i8]* %sig, align 1 - store [64 x i8] %"$sig_525", [64 x i8]* %"$$ecrecover_3_sig_524", align 1 - %"$$ecrecover_3_call_526" = call { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_3_fptr_522"(i8* %"$$ecrecover_3_envptr_523", [64 x i8]* %"$$ecrecover_3_sig_524") - store { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_3_call_526", { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$ecrecover_4", align 8 - %"$ecrecover_5" = alloca [20 x i8], align 1 - %"$$ecrecover_4_527" = load { void (i8*, [20 x i8]*, %Uint32)*, i8* }, { void (i8*, [20 x i8]*, %Uint32)*, i8* }* %"$ecrecover_4", align 8 - %"$$ecrecover_4_fptr_528" = extractvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_4_527", 0 - %"$$ecrecover_4_envptr_529" = extractvalue { void (i8*, [20 x i8]*, %Uint32)*, i8* } %"$$ecrecover_4_527", 1 - %"$recid_530" = load %Uint32, %Uint32* %recid, align 4 - %"$$ecrecover_4_retalloca_531" = alloca [20 x i8], align 1 - call void %"$$ecrecover_4_fptr_528"(i8* %"$$ecrecover_4_envptr_529", [20 x i8]* %"$$ecrecover_4_retalloca_531", %Uint32 %"$recid_530") - %"$$ecrecover_4_ret_532" = load [20 x i8], [20 x i8]* %"$$ecrecover_4_retalloca_531", align 1 - store [20 x i8] %"$$ecrecover_4_ret_532", [20 x i8]* %"$ecrecover_5", align 1 - %"$$ecrecover_5_533" = load [20 x i8], [20 x i8]* %"$ecrecover_5", align 1 - store [20 x i8] %"$$ecrecover_5_533", [20 x i8]* %addr_computed, align 1 - %"$gasrem_534" = load i64, i64* @_gasrem, align 8 - %"$gascmp_535" = icmp ugt i64 20, %"$gasrem_534" - br i1 %"$gascmp_535", label %"$out_of_gas_536", label %"$have_gas_537" - -"$out_of_gas_536": ; preds = %"$have_gas_514" - call void @_out_of_gas() - br label %"$have_gas_537" - -"$have_gas_537": ; preds = %"$out_of_gas_536", %"$have_gas_514" - %"$consume_538" = sub i64 %"$gasrem_534", 20 - store i64 %"$consume_538", i64* @_gasrem, align 8 - %"$execptr_load_539" = load i8*, i8** @_execptr, align 8 - %"$eq_addr_computed_540" = alloca [20 x i8], align 1 - %"$addr_computed_541" = load [20 x i8], [20 x i8]* %addr_computed, align 1 - store [20 x i8] %"$addr_computed_541", [20 x i8]* %"$eq_addr_computed_540", align 1 - %"$$eq_addr_computed_540_542" = bitcast [20 x i8]* %"$eq_addr_computed_540" to i8* - %"$eq_addr_gold_543" = alloca [20 x i8], align 1 - %"$addr_gold_544" = load [20 x i8], [20 x i8]* %addr_gold, align 1 - store [20 x i8] %"$addr_gold_544", [20 x i8]* %"$eq_addr_gold_543", align 1 - %"$$eq_addr_gold_543_545" = bitcast [20 x i8]* %"$eq_addr_gold_543" to i8* - %"$eq_call_546" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_539", i32 20, i8* %"$$eq_addr_computed_540_542", i8* %"$$eq_addr_gold_543_545") - store %TName_Bool* %"$eq_call_546", %TName_Bool** %"$expr_6", align 8 - %"$$expr_6_548" = load %TName_Bool*, %TName_Bool** %"$expr_6", align 8 - ret %TName_Bool* %"$$expr_6_548" + %"$gasrem_469" = load i64, i64* @_gasrem, align 8 + %"$gascmp_470" = icmp ugt i64 1, %"$gasrem_469" + br i1 %"$gascmp_470", label %"$out_of_gas_471", label %"$have_gas_472" + +"$out_of_gas_471": ; preds = %"$have_gas_467" + call void @_out_of_gas() + br label %"$have_gas_472" + +"$have_gas_472": ; preds = %"$out_of_gas_471", %"$have_gas_467" + %"$consume_473" = sub i64 %"$gasrem_469", 1 + store i64 %"$consume_473", i64* @_gasrem, align 8 + %"$ecrecover_474" = load { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* }, { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* }* %ecrecover, align 8 + %"$ecrecover_fptr_475" = extractvalue { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* } %"$ecrecover_474", 0 + %"$ecrecover_envptr_476" = extractvalue { void (i8*, [20 x i8]*, %Bystr, [64 x i8]*, %Uint32)*, i8* } %"$ecrecover_474", 1 + %"$msg_hashed_477" = load %Bystr, %Bystr* %msg_hashed, align 8 + %"$ecrecover_sig_478" = alloca [64 x i8], align 1 + %"$sig_479" = load [64 x i8], [64 x i8]* %sig, align 1 + store [64 x i8] %"$sig_479", [64 x i8]* %"$ecrecover_sig_478", align 1 + %"$recid_480" = load %Uint32, %Uint32* %recid, align 4 + %"$ecrecover_retalloca_481" = alloca [20 x i8], align 1 + call void %"$ecrecover_fptr_475"(i8* %"$ecrecover_envptr_476", [20 x i8]* %"$ecrecover_retalloca_481", %Bystr %"$msg_hashed_477", [64 x i8]* %"$ecrecover_sig_478", %Uint32 %"$recid_480") + %"$ecrecover_ret_482" = load [20 x i8], [20 x i8]* %"$ecrecover_retalloca_481", align 1 + store [20 x i8] %"$ecrecover_ret_482", [20 x i8]* %addr_computed, align 1 + %"$gasrem_483" = load i64, i64* @_gasrem, align 8 + %"$gascmp_484" = icmp ugt i64 20, %"$gasrem_483" + br i1 %"$gascmp_484", label %"$out_of_gas_485", label %"$have_gas_486" + +"$out_of_gas_485": ; preds = %"$have_gas_472" + call void @_out_of_gas() + br label %"$have_gas_486" + +"$have_gas_486": ; preds = %"$out_of_gas_485", %"$have_gas_472" + %"$consume_487" = sub i64 %"$gasrem_483", 20 + store i64 %"$consume_487", i64* @_gasrem, align 8 + %"$execptr_load_488" = load i8*, i8** @_execptr, align 8 + %"$eq_addr_computed_489" = alloca [20 x i8], align 1 + %"$addr_computed_490" = load [20 x i8], [20 x i8]* %addr_computed, align 1 + store [20 x i8] %"$addr_computed_490", [20 x i8]* %"$eq_addr_computed_489", align 1 + %"$$eq_addr_computed_489_491" = bitcast [20 x i8]* %"$eq_addr_computed_489" to i8* + %"$eq_addr_gold_492" = alloca [20 x i8], align 1 + %"$addr_gold_493" = load [20 x i8], [20 x i8]* %addr_gold, align 1 + store [20 x i8] %"$addr_gold_493", [20 x i8]* %"$eq_addr_gold_492", align 1 + %"$$eq_addr_gold_492_494" = bitcast [20 x i8]* %"$eq_addr_gold_492" to i8* + %"$eq_call_495" = call %TName_Bool* @_eq_ByStrX(i8* %"$execptr_load_488", i32 20, i8* %"$$eq_addr_computed_489_491", i8* %"$$eq_addr_gold_492_494") + store %TName_Bool* %"$eq_call_495", %TName_Bool** %"$expr_3", align 8 + %"$$expr_3_497" = load %TName_Bool*, %TName_Bool** %"$expr_3", align 8 + ret %TName_Bool* %"$$expr_3_497" } declare %TName_Bool* @_eq_ByStrX(i8*, i32, i8*, i8*) @@ -1028,10 +939,10 @@ declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_549" = call %TName_Bool* @_scilla_expr_fun(i8* null) - %"$memvoidcast_550" = bitcast %TName_Bool* %"$exprval_549" to i8* - %"$execptr_load_551" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_551", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_57", i8* %"$memvoidcast_550") + %"$exprval_498" = call %TName_Bool* @_scilla_expr_fun(i8* null) + %"$memvoidcast_499" = bitcast %TName_Bool* %"$exprval_498" to i8* + %"$execptr_load_500" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_500", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_50", i8* %"$memvoidcast_499") ret void } diff --git a/tests/codegen/expr/gold/builtin-isqrt.scilexp.gold b/tests/codegen/expr/gold/builtin-isqrt.scilexp.gold index 8fecdc5c..81d1d989 100644 --- a/tests/codegen/expr/gold/builtin-isqrt.scilexp.gold +++ b/tests/codegen/expr/gold/builtin-isqrt.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin-pow.scilexp.gold b/tests/codegen/expr/gold/builtin-pow.scilexp.gold index 5e3cd818..0db3497f 100644 --- a/tests/codegen/expr/gold/builtin-pow.scilexp.gold +++ b/tests/codegen/expr/gold/builtin-pow.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_206" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin-schnorr_get_address.scilexp.gold b/tests/codegen/expr/gold/builtin-schnorr_get_address.scilexp.gold index 76c6af13..de11d71d 100644 --- a/tests/codegen/expr/gold/builtin-schnorr_get_address.scilexp.gold +++ b/tests/codegen/expr/gold/builtin-schnorr_get_address.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_29" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_add_int256.scilexp.gold b/tests/codegen/expr/gold/builtin_add_int256.scilexp.gold index 3219e052..28484202 100644 --- a/tests/codegen/expr/gold/builtin_add_int256.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_add_int256.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_add_int32.scilexp.gold b/tests/codegen/expr/gold/builtin_add_int32.scilexp.gold index 0b4d2451..6bb36e5d 100644 --- a/tests/codegen/expr/gold/builtin_add_int32.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_add_int32.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_add_uint256.scilexp.gold b/tests/codegen/expr/gold/builtin_add_uint256.scilexp.gold index 261db43e..d5e6e615 100644 --- a/tests/codegen/expr/gold/builtin_add_uint256.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_add_uint256.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_add_uint32.scilexp.gold b/tests/codegen/expr/gold/builtin_add_uint32.scilexp.gold index 7995c170..0280ea99 100644 --- a/tests/codegen/expr/gold/builtin_add_uint32.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_add_uint32.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_baddsub.scilexp.gold b/tests/codegen/expr/gold/builtin_baddsub.scilexp.gold index f9fd14e7..dbcde57c 100644 --- a/tests/codegen/expr/gold/builtin_baddsub.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_baddsub.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_7" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_bech32-invalid.scilexp.gold b/tests/codegen/expr/gold/builtin_bech32-invalid.scilexp.gold index 36bab4d7..e5266fa7 100644 --- a/tests/codegen/expr/gold/builtin_bech32-invalid.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_bech32-invalid.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_bech32.scilexp.gold b/tests/codegen/expr/gold/builtin_bech32.scilexp.gold index c9320a50..04f1b4ab 100644 --- a/tests/codegen/expr/gold/builtin_bech32.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_bech32.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_bech32_rev.scilexp.gold b/tests/codegen/expr/gold/builtin_bech32_rev.scilexp.gold index 4732a9d2..6fbf0f00 100644 --- a/tests/codegen/expr/gold/builtin_bech32_rev.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_bech32_rev.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_concat.scilexp.gold b/tests/codegen/expr/gold/builtin_concat.scilexp.gold index bc6a1d6a..f28d649d 100644 --- a/tests/codegen/expr/gold/builtin_concat.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_concat.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_div_rem.scilexp.gold b/tests/codegen/expr/gold/builtin_div_rem.scilexp.gold index 3942302c..52d4adfe 100644 --- a/tests/codegen/expr/gold/builtin_div_rem.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_div_rem.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_80" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_ecdsa_verify_false.scilexp.gold b/tests/codegen/expr/gold/builtin_ecdsa_verify_false.scilexp.gold index f698fada..080b3148 100644 --- a/tests/codegen/expr/gold/builtin_ecdsa_verify_false.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_ecdsa_verify_false.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_ecdsa_verify_true.scilexp.gold b/tests/codegen/expr/gold/builtin_ecdsa_verify_true.scilexp.gold index 03f7bbb0..f48360f0 100644 --- a/tests/codegen/expr/gold/builtin_ecdsa_verify_true.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_ecdsa_verify_true.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_eq.scilexp.gold b/tests/codegen/expr/gold/builtin_eq.scilexp.gold index 72db98bd..f263ae07 100644 --- a/tests/codegen/expr/gold/builtin_eq.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_eq.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_31" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_keccak256hash.scilexp.gold b/tests/codegen/expr/gold/builtin_keccak256hash.scilexp.gold index 07b8b13d..1a31c1bb 100644 --- a/tests/codegen/expr/gold/builtin_keccak256hash.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_keccak256hash.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_lt.scilexp.gold b/tests/codegen/expr/gold/builtin_lt.scilexp.gold index d4804e3b..86d6a1cb 100644 --- a/tests/codegen/expr/gold/builtin_lt.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_lt.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_22" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_map.scilexp.gold b/tests/codegen/expr/gold/builtin_map.scilexp.gold index 02f3fe82..d9315c0a 100644 --- a/tests/codegen/expr/gold/builtin_map.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_map.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_10" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_mul.scilexp.gold b/tests/codegen/expr/gold/builtin_mul.scilexp.gold index c62f8e2a..ef525ec8 100644 --- a/tests/codegen/expr/gold/builtin_mul.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_mul.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_168" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_overflow1.scilexp.gold b/tests/codegen/expr/gold/builtin_overflow1.scilexp.gold index acbc54cf..330883df 100644 --- a/tests/codegen/expr/gold/builtin_overflow1.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_overflow1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_overflow2.scilexp.gold b/tests/codegen/expr/gold/builtin_overflow2.scilexp.gold index bf0953b6..399b66fd 100644 --- a/tests/codegen/expr/gold/builtin_overflow2.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_overflow2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_overflow3.scilexp.gold b/tests/codegen/expr/gold/builtin_overflow3.scilexp.gold index 39d91b91..c3971981 100644 --- a/tests/codegen/expr/gold/builtin_overflow3.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_overflow3.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_overflow4.scilexp.gold b/tests/codegen/expr/gold/builtin_overflow4.scilexp.gold index b7803b84..2f424807 100644 --- a/tests/codegen/expr/gold/builtin_overflow4.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_overflow4.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_overflow5.scilexp.gold b/tests/codegen/expr/gold/builtin_overflow5.scilexp.gold index e0ba97b2..f8b9ad0e 100644 --- a/tests/codegen/expr/gold/builtin_overflow5.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_overflow5.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_overflow6.scilexp.gold b/tests/codegen/expr/gold/builtin_overflow6.scilexp.gold index 71b9272f..53bb3fa8 100644 --- a/tests/codegen/expr/gold/builtin_overflow6.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_overflow6.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_ripemd160hash.scilexp.gold b/tests/codegen/expr/gold/builtin_ripemd160hash.scilexp.gold index 8d31a51d..df48c0af 100644 --- a/tests/codegen/expr/gold/builtin_ripemd160hash.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_ripemd160hash.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_schnorr_verify_false.scilexp.gold b/tests/codegen/expr/gold/builtin_schnorr_verify_false.scilexp.gold index 8440140e..42569024 100644 --- a/tests/codegen/expr/gold/builtin_schnorr_verify_false.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_schnorr_verify_false.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_schnorr_verify_true.scilexp.gold b/tests/codegen/expr/gold/builtin_schnorr_verify_true.scilexp.gold index 945b4207..edca8ff5 100644 --- a/tests/codegen/expr/gold/builtin_schnorr_verify_true.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_schnorr_verify_true.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_sha256hash.scilexp.gold b/tests/codegen/expr/gold/builtin_sha256hash.scilexp.gold index 2b541a8f..9c559dd4 100644 --- a/tests/codegen/expr/gold/builtin_sha256hash.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_sha256hash.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_strlen.scilexp.gold b/tests/codegen/expr/gold/builtin_strlen.scilexp.gold index 6106247b..35e2e038 100644 --- a/tests/codegen/expr/gold/builtin_strlen.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_strlen.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_strrev.scilexp.gold b/tests/codegen/expr/gold/builtin_strrev.scilexp.gold index a8fbb6fb..c03210e6 100644 --- a/tests/codegen/expr/gold/builtin_strrev.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_strrev.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_sub.scilexp.gold b/tests/codegen/expr/gold/builtin_sub.scilexp.gold index 1045b98f..869aab82 100644 --- a/tests/codegen/expr/gold/builtin_sub.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_sub.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_104" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_substr.scilexp.gold b/tests/codegen/expr/gold/builtin_substr.scilexp.gold index c4787614..33b20ed5 100644 --- a/tests/codegen/expr/gold/builtin_substr.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_substr.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_substr_rfail.scilexp.gold b/tests/codegen/expr/gold/builtin_substr_rfail.scilexp.gold index b5c85b2a..4d41c95d 100644 --- a/tests/codegen/expr/gold/builtin_substr_rfail.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_substr_rfail.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_to_ascii.scilexp.gold b/tests/codegen/expr/gold/builtin_to_ascii.scilexp.gold index 6fa299e0..e90056b3 100644 --- a/tests/codegen/expr/gold/builtin_to_ascii.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_to_ascii.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_to_ascii_error.scilexp.gold b/tests/codegen/expr/gold/builtin_to_ascii_error.scilexp.gold index 980690a4..de4377d6 100644 --- a/tests/codegen/expr/gold/builtin_to_ascii_error.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_to_ascii_error.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_to_bystrx.scilexp.gold b/tests/codegen/expr/gold/builtin_to_bystrx.scilexp.gold index 3f68d496..e09020a4 100644 --- a/tests/codegen/expr/gold/builtin_to_bystrx.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_to_bystrx.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_to_int.scilexp.gold b/tests/codegen/expr/gold/builtin_to_int.scilexp.gold index df3220e5..cc42716a 100644 --- a/tests/codegen/expr/gold/builtin_to_int.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_to_int.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_80" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_to_nat.scilexp.gold b/tests/codegen/expr/gold/builtin_to_nat.scilexp.gold index 431d7b1e..067ca7c7 100644 --- a/tests/codegen/expr/gold/builtin_to_nat.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_to_nat.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_to_string.scilexp.gold b/tests/codegen/expr/gold/builtin_to_string.scilexp.gold index 3d0ac12c..27f36aca 100644 --- a/tests/codegen/expr/gold/builtin_to_string.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_to_string.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_9" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/builtin_to_uint.scilexp.gold b/tests/codegen/expr/gold/builtin_to_uint.scilexp.gold index 3b56b823..acbffbf7 100644 --- a/tests/codegen/expr/gold/builtin_to_uint.scilexp.gold +++ b/tests/codegen/expr/gold/builtin_to_uint.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_107" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/bystrx_uint_conversions.scilexp.gold b/tests/codegen/expr/gold/bystrx_uint_conversions.scilexp.gold index a6a82305..c5a2ac7c 100644 --- a/tests/codegen/expr/gold/bystrx_uint_conversions.scilexp.gold +++ b/tests/codegen/expr/gold/bystrx_uint_conversions.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/church_nat.scilexp.gold b/tests/codegen/expr/gold/church_nat.scilexp.gold index e7001136..014dc2e6 100644 --- a/tests/codegen/expr/gold/church_nat.scilexp.gold +++ b/tests/codegen/expr/gold/church_nat.scilexp.gold @@ -1,1238 +1,1192 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_73" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_63" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$ParamDescr_926" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_873" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_927" = type { %ParamDescrString, i32, %"$ParamDescr_926"* } -%"$$fundef_71_env_108" = type { %Uint32 } +%"$TransDescr_874" = type { %ParamDescrString, i32, %"$ParamDescr_873"* } +%"$$fundef_61_env_98" = type { %Uint32 } %Uint32 = type { i32 } -%"$$fundef_69_env_109" = type {} -%"$$fundef_67_env_110" = type { { i8*, i8* }*, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { i8*, i8* }* } -%"$$fundef_65_env_111" = type { { i8*, i8* }*, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } } -%"$$fundef_63_env_112" = type { { i8*, i8* }*, { i8*, i8* }*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } } -%"$$fundef_61_env_113" = type { { i8*, i8* }*, { i8*, i8* }* } -%"$$fundef_59_env_114" = type { { i8*, i8* }*, { i8*, i8* }* } -%"$$fundef_57_env_115" = type { { i8*, i8* }*, { i8*, i8* }*, { %Uint32 (i8*, %Uint32)*, i8* } } -%"$$fundef_55_env_116" = type { { i8*, i8* }*, { i8*, i8* }* } -%"$$fundef_53_env_117" = type { { i8*, i8* }*, { i8*, i8* }* } -%"$$fundef_51_env_118" = type { { i8*, i8* }* } -%"$$fundef_49_env_119" = type {} -%"$$fundef_47_env_120" = type { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } } -%"$$fundef_45_env_121" = type {} -%"$$fundef_43_env_122" = type {} -%"$$fundef_41_env_123" = type { { %Uint32 (i8*, %Uint32)*, i8* } } -%"$$fundef_39_env_124" = type {} -%"$$fundef_37_env_125" = type {} -%"$$fundef_35_env_126" = type {} -%"$$fundef_33_env_127" = type {} -%"$$fundef_31_env_128" = type {} -%"$$fundef_29_env_129" = type {} -%"$$fundef_27_env_130" = type {} -%"$$fundef_25_env_131" = type {} +%"$$fundef_59_env_99" = type {} +%"$$fundef_57_env_100" = type { { i8*, i8* }*, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } } +%"$$fundef_55_env_101" = type { { i8*, i8* }*, { i8*, i8* }*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } } +%"$$fundef_53_env_102" = type { { i8*, i8* }*, { i8*, i8* }* } +%"$$fundef_51_env_103" = type { { i8*, i8* }*, { i8*, i8* }* } +%"$$fundef_49_env_104" = type { { i8*, i8* }*, { i8*, i8* }*, { %Uint32 (i8*, %Uint32)*, i8* } } +%"$$fundef_47_env_105" = type { { i8*, i8* }*, { i8*, i8* }* } +%"$$fundef_45_env_106" = type { { i8*, i8* }*, { i8*, i8* }* } +%"$$fundef_43_env_107" = type { { i8*, i8* }* } +%"$$fundef_41_env_108" = type {} +%"$$fundef_39_env_109" = type { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } } +%"$$fundef_37_env_110" = type {} +%"$$fundef_35_env_111" = type {} +%"$$fundef_33_env_112" = type { { %Uint32 (i8*, %Uint32)*, i8* } } +%"$$fundef_31_env_113" = type {} +%"$$fundef_29_env_114" = type {} +%"$$fundef_27_env_115" = type {} +%"$$fundef_25_env_116" = type {} +%"$$fundef_23_env_117" = type {} +%"$$fundef_21_env_118" = type {} +%"$$fundef_19_env_119" = type {} +%"$$fundef_17_env_120" = type {} @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_74" = global %"$TyDescrTy_PrimTyp_73" zeroinitializer -@"$TyDescr_Int32_75" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Int32_Prim_74" to i8*) } -@"$TyDescr_Uint32_Prim_76" = global %"$TyDescrTy_PrimTyp_73" { i32 1, i32 0 } -@"$TyDescr_Uint32_77" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Uint32_Prim_76" to i8*) } -@"$TyDescr_Int64_Prim_78" = global %"$TyDescrTy_PrimTyp_73" { i32 0, i32 1 } -@"$TyDescr_Int64_79" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Int64_Prim_78" to i8*) } -@"$TyDescr_Uint64_Prim_80" = global %"$TyDescrTy_PrimTyp_73" { i32 1, i32 1 } -@"$TyDescr_Uint64_81" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Uint64_Prim_80" to i8*) } -@"$TyDescr_Int128_Prim_82" = global %"$TyDescrTy_PrimTyp_73" { i32 0, i32 2 } -@"$TyDescr_Int128_83" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Int128_Prim_82" to i8*) } -@"$TyDescr_Uint128_Prim_84" = global %"$TyDescrTy_PrimTyp_73" { i32 1, i32 2 } -@"$TyDescr_Uint128_85" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Uint128_Prim_84" to i8*) } -@"$TyDescr_Int256_Prim_86" = global %"$TyDescrTy_PrimTyp_73" { i32 0, i32 3 } -@"$TyDescr_Int256_87" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Int256_Prim_86" to i8*) } -@"$TyDescr_Uint256_Prim_88" = global %"$TyDescrTy_PrimTyp_73" { i32 1, i32 3 } -@"$TyDescr_Uint256_89" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Uint256_Prim_88" to i8*) } -@"$TyDescr_String_Prim_90" = global %"$TyDescrTy_PrimTyp_73" { i32 2, i32 0 } -@"$TyDescr_String_91" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_String_Prim_90" to i8*) } -@"$TyDescr_Bnum_Prim_92" = global %"$TyDescrTy_PrimTyp_73" { i32 3, i32 0 } -@"$TyDescr_Bnum_93" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Bnum_Prim_92" to i8*) } -@"$TyDescr_Message_Prim_94" = global %"$TyDescrTy_PrimTyp_73" { i32 4, i32 0 } -@"$TyDescr_Message_95" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Message_Prim_94" to i8*) } -@"$TyDescr_Event_Prim_96" = global %"$TyDescrTy_PrimTyp_73" { i32 5, i32 0 } -@"$TyDescr_Event_97" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Event_Prim_96" to i8*) } -@"$TyDescr_Exception_Prim_98" = global %"$TyDescrTy_PrimTyp_73" { i32 6, i32 0 } -@"$TyDescr_Exception_99" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Exception_Prim_98" to i8*) } -@"$TyDescr_Bystr_Prim_100" = global %"$TyDescrTy_PrimTyp_73" { i32 7, i32 0 } -@"$TyDescr_Bystr_101" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_73"* @"$TyDescr_Bystr_Prim_100" to i8*) } -@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_97", %_TyDescrTy_Typ* @"$TyDescr_Int64_79", %_TyDescrTy_Typ* @"$TyDescr_Uint256_89", %_TyDescrTy_Typ* @"$TyDescr_Uint32_77", %_TyDescrTy_Typ* @"$TyDescr_Uint64_81", %_TyDescrTy_Typ* @"$TyDescr_Bnum_93", %_TyDescrTy_Typ* @"$TyDescr_Uint128_85", %_TyDescrTy_Typ* @"$TyDescr_Exception_99", %_TyDescrTy_Typ* @"$TyDescr_String_91", %_TyDescrTy_Typ* @"$TyDescr_Int256_87", %_TyDescrTy_Typ* @"$TyDescr_Int128_83", %_TyDescrTy_Typ* @"$TyDescr_Bystr_101", %_TyDescrTy_Typ* @"$TyDescr_Message_95", %_TyDescrTy_Typ* @"$TyDescr_Int32_75"] +@"$TyDescr_Int32_Prim_64" = global %"$TyDescrTy_PrimTyp_63" zeroinitializer +@"$TyDescr_Int32_65" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Int32_Prim_64" to i8*) } +@"$TyDescr_Uint32_Prim_66" = global %"$TyDescrTy_PrimTyp_63" { i32 1, i32 0 } +@"$TyDescr_Uint32_67" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Uint32_Prim_66" to i8*) } +@"$TyDescr_Int64_Prim_68" = global %"$TyDescrTy_PrimTyp_63" { i32 0, i32 1 } +@"$TyDescr_Int64_69" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Int64_Prim_68" to i8*) } +@"$TyDescr_Uint64_Prim_70" = global %"$TyDescrTy_PrimTyp_63" { i32 1, i32 1 } +@"$TyDescr_Uint64_71" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Uint64_Prim_70" to i8*) } +@"$TyDescr_Int128_Prim_72" = global %"$TyDescrTy_PrimTyp_63" { i32 0, i32 2 } +@"$TyDescr_Int128_73" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Int128_Prim_72" to i8*) } +@"$TyDescr_Uint128_Prim_74" = global %"$TyDescrTy_PrimTyp_63" { i32 1, i32 2 } +@"$TyDescr_Uint128_75" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Uint128_Prim_74" to i8*) } +@"$TyDescr_Int256_Prim_76" = global %"$TyDescrTy_PrimTyp_63" { i32 0, i32 3 } +@"$TyDescr_Int256_77" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Int256_Prim_76" to i8*) } +@"$TyDescr_Uint256_Prim_78" = global %"$TyDescrTy_PrimTyp_63" { i32 1, i32 3 } +@"$TyDescr_Uint256_79" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Uint256_Prim_78" to i8*) } +@"$TyDescr_String_Prim_80" = global %"$TyDescrTy_PrimTyp_63" { i32 2, i32 0 } +@"$TyDescr_String_81" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_String_Prim_80" to i8*) } +@"$TyDescr_Bnum_Prim_82" = global %"$TyDescrTy_PrimTyp_63" { i32 3, i32 0 } +@"$TyDescr_Bnum_83" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Bnum_Prim_82" to i8*) } +@"$TyDescr_Message_Prim_84" = global %"$TyDescrTy_PrimTyp_63" { i32 4, i32 0 } +@"$TyDescr_Message_85" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Message_Prim_84" to i8*) } +@"$TyDescr_Event_Prim_86" = global %"$TyDescrTy_PrimTyp_63" { i32 5, i32 0 } +@"$TyDescr_Event_87" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Event_Prim_86" to i8*) } +@"$TyDescr_Exception_Prim_88" = global %"$TyDescrTy_PrimTyp_63" { i32 6, i32 0 } +@"$TyDescr_Exception_89" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Exception_Prim_88" to i8*) } +@"$TyDescr_Bystr_Prim_90" = global %"$TyDescrTy_PrimTyp_63" { i32 7, i32 0 } +@"$TyDescr_Bystr_91" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_63"* @"$TyDescr_Bystr_Prim_90" to i8*) } +@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_87", %_TyDescrTy_Typ* @"$TyDescr_Int64_69", %_TyDescrTy_Typ* @"$TyDescr_Uint256_79", %_TyDescrTy_Typ* @"$TyDescr_Uint32_67", %_TyDescrTy_Typ* @"$TyDescr_Uint64_71", %_TyDescrTy_Typ* @"$TyDescr_Bnum_83", %_TyDescrTy_Typ* @"$TyDescr_Uint128_75", %_TyDescrTy_Typ* @"$TyDescr_Exception_89", %_TyDescrTy_Typ* @"$TyDescr_String_81", %_TyDescrTy_Typ* @"$TyDescr_Int256_77", %_TyDescrTy_Typ* @"$TyDescr_Int128_73", %_TyDescrTy_Typ* @"$TyDescr_Bystr_91", %_TyDescrTy_Typ* @"$TyDescr_Message_85", %_TyDescrTy_Typ* @"$TyDescr_Int32_65"] @_tydescr_table_length = constant i32 14 -@_contract_parameters = constant [0 x %"$ParamDescr_926"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_873"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_927"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_874"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Uint32 @"$fundef_71"(%"$$fundef_71_env_108"* %0, %Uint32 %1) { +define internal %Uint32 @"$fundef_61"(%"$$fundef_61_env_98"* %0, %Uint32 %1) { entry: - %"$$fundef_71_env_one_683" = getelementptr inbounds %"$$fundef_71_env_108", %"$$fundef_71_env_108"* %0, i32 0, i32 0 - %"$one_envload_684" = load %Uint32, %Uint32* %"$$fundef_71_env_one_683", align 4 + %"$$fundef_61_env_one_650" = getelementptr inbounds %"$$fundef_61_env_98", %"$$fundef_61_env_98"* %0, i32 0, i32 0 + %"$one_envload_651" = load %Uint32, %Uint32* %"$$fundef_61_env_one_650", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_684", %Uint32* %one, align 4 - %"$retval_72" = alloca %Uint32, align 8 - %"$gasrem_685" = load i64, i64* @_gasrem, align 8 - %"$gascmp_686" = icmp ugt i64 4, %"$gasrem_685" - br i1 %"$gascmp_686", label %"$out_of_gas_687", label %"$have_gas_688" - -"$out_of_gas_687": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_688" - -"$have_gas_688": ; preds = %"$out_of_gas_687", %entry - %"$consume_689" = sub i64 %"$gasrem_685", 4 - store i64 %"$consume_689", i64* @_gasrem, align 8 - %"$one_690" = load %Uint32, %Uint32* %one, align 4 - %"$add_call_691" = call %Uint32 @_add_Uint32(%Uint32 %"$one_690", %Uint32 %1) - store %Uint32 %"$add_call_691", %Uint32* %"$retval_72", align 4 - %"$$retval_72_692" = load %Uint32, %Uint32* %"$retval_72", align 4 - ret %Uint32 %"$$retval_72_692" + store %Uint32 %"$one_envload_651", %Uint32* %one, align 4 + %"$retval_62" = alloca %Uint32, align 8 + %"$gasrem_652" = load i64, i64* @_gasrem, align 8 + %"$gascmp_653" = icmp ugt i64 4, %"$gasrem_652" + br i1 %"$gascmp_653", label %"$out_of_gas_654", label %"$have_gas_655" + +"$out_of_gas_654": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_655" + +"$have_gas_655": ; preds = %"$out_of_gas_654", %entry + %"$consume_656" = sub i64 %"$gasrem_652", 4 + store i64 %"$consume_656", i64* @_gasrem, align 8 + %"$one_657" = load %Uint32, %Uint32* %one, align 4 + %"$add_call_658" = call %Uint32 @_add_Uint32(%Uint32 %"$one_657", %Uint32 %1) + store %Uint32 %"$add_call_658", %Uint32* %"$retval_62", align 4 + %"$$retval_62_659" = load %Uint32, %Uint32* %"$retval_62", align 4 + ret %Uint32 %"$$retval_62_659" } -define internal %Uint32 @"$fundef_69"(%"$$fundef_69_env_109"* %0, { i8*, i8* }* %1) { +define internal %Uint32 @"$fundef_59"(%"$$fundef_59_env_99"* %0, { i8*, i8* }* %1) { entry: - %"$retval_70" = alloca %Uint32, align 8 - %"$gasrem_614" = load i64, i64* @_gasrem, align 8 - %"$gascmp_615" = icmp ugt i64 1, %"$gasrem_614" - br i1 %"$gascmp_615", label %"$out_of_gas_616", label %"$have_gas_617" + %"$retval_60" = alloca %Uint32, align 8 + %"$gasrem_581" = load i64, i64* @_gasrem, align 8 + %"$gascmp_582" = icmp ugt i64 1, %"$gasrem_581" + br i1 %"$gascmp_582", label %"$out_of_gas_583", label %"$have_gas_584" -"$out_of_gas_616": ; preds = %entry +"$out_of_gas_583": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_617" + br label %"$have_gas_584" -"$have_gas_617": ; preds = %"$out_of_gas_616", %entry - %"$consume_618" = sub i64 %"$gasrem_614", 1 - store i64 %"$consume_618", i64* @_gasrem, align 8 +"$have_gas_584": ; preds = %"$out_of_gas_583", %entry + %"$consume_585" = sub i64 %"$gasrem_581", 1 + store i64 %"$consume_585", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 - %"$gasrem_619" = load i64, i64* @_gasrem, align 8 - %"$gascmp_620" = icmp ugt i64 1, %"$gasrem_619" - br i1 %"$gascmp_620", label %"$out_of_gas_621", label %"$have_gas_622" + %"$gasrem_586" = load i64, i64* @_gasrem, align 8 + %"$gascmp_587" = icmp ugt i64 1, %"$gasrem_586" + br i1 %"$gascmp_587", label %"$out_of_gas_588", label %"$have_gas_589" -"$out_of_gas_621": ; preds = %"$have_gas_617" +"$out_of_gas_588": ; preds = %"$have_gas_584" call void @_out_of_gas() - br label %"$have_gas_622" + br label %"$have_gas_589" -"$have_gas_622": ; preds = %"$out_of_gas_621", %"$have_gas_617" - %"$consume_623" = sub i64 %"$gasrem_619", 1 - store i64 %"$consume_623", i64* @_gasrem, align 8 +"$have_gas_589": ; preds = %"$out_of_gas_588", %"$have_gas_584" + %"$consume_590" = sub i64 %"$gasrem_586", 1 + store i64 %"$consume_590", i64* @_gasrem, align 8 store %Uint32 zeroinitializer, %Uint32* %zero, align 4 - %"$gasrem_624" = load i64, i64* @_gasrem, align 8 - %"$gascmp_625" = icmp ugt i64 1, %"$gasrem_624" - br i1 %"$gascmp_625", label %"$out_of_gas_626", label %"$have_gas_627" + %"$gasrem_591" = load i64, i64* @_gasrem, align 8 + %"$gascmp_592" = icmp ugt i64 1, %"$gasrem_591" + br i1 %"$gascmp_592", label %"$out_of_gas_593", label %"$have_gas_594" -"$out_of_gas_626": ; preds = %"$have_gas_622" +"$out_of_gas_593": ; preds = %"$have_gas_589" call void @_out_of_gas() - br label %"$have_gas_627" + br label %"$have_gas_594" -"$have_gas_627": ; preds = %"$out_of_gas_626", %"$have_gas_622" - %"$consume_628" = sub i64 %"$gasrem_624", 1 - store i64 %"$consume_628", i64* @_gasrem, align 8 +"$have_gas_594": ; preds = %"$out_of_gas_593", %"$have_gas_589" + %"$consume_595" = sub i64 %"$gasrem_591", 1 + store i64 %"$consume_595", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_629" = load i64, i64* @_gasrem, align 8 - %"$gascmp_630" = icmp ugt i64 1, %"$gasrem_629" - br i1 %"$gascmp_630", label %"$out_of_gas_631", label %"$have_gas_632" + %"$gasrem_596" = load i64, i64* @_gasrem, align 8 + %"$gascmp_597" = icmp ugt i64 1, %"$gasrem_596" + br i1 %"$gascmp_597", label %"$out_of_gas_598", label %"$have_gas_599" -"$out_of_gas_631": ; preds = %"$have_gas_627" +"$out_of_gas_598": ; preds = %"$have_gas_594" call void @_out_of_gas() - br label %"$have_gas_632" + br label %"$have_gas_599" -"$have_gas_632": ; preds = %"$out_of_gas_631", %"$have_gas_627" - %"$consume_633" = sub i64 %"$gasrem_629", 1 - store i64 %"$consume_633", i64* @_gasrem, align 8 +"$have_gas_599": ; preds = %"$out_of_gas_598", %"$have_gas_594" + %"$consume_600" = sub i64 %"$gasrem_596", 1 + store i64 %"$consume_600", i64* @_gasrem, align 8 store %Uint32 { i32 1 }, %Uint32* %one, align 4 - %"$gasrem_634" = load i64, i64* @_gasrem, align 8 - %"$gascmp_635" = icmp ugt i64 1, %"$gasrem_634" - br i1 %"$gascmp_635", label %"$out_of_gas_636", label %"$have_gas_637" + %"$gasrem_601" = load i64, i64* @_gasrem, align 8 + %"$gascmp_602" = icmp ugt i64 1, %"$gasrem_601" + br i1 %"$gascmp_602", label %"$out_of_gas_603", label %"$have_gas_604" -"$out_of_gas_636": ; preds = %"$have_gas_632" +"$out_of_gas_603": ; preds = %"$have_gas_599" call void @_out_of_gas() - br label %"$have_gas_637" + br label %"$have_gas_604" -"$have_gas_637": ; preds = %"$out_of_gas_636", %"$have_gas_632" - %"$consume_638" = sub i64 %"$gasrem_634", 1 - store i64 %"$consume_638", i64* @_gasrem, align 8 +"$have_gas_604": ; preds = %"$out_of_gas_603", %"$have_gas_599" + %"$consume_605" = sub i64 %"$gasrem_601", 1 + store i64 %"$consume_605", i64* @_gasrem, align 8 %add1 = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_639" = load i64, i64* @_gasrem, align 8 - %"$gascmp_640" = icmp ugt i64 1, %"$gasrem_639" - br i1 %"$gascmp_640", label %"$out_of_gas_641", label %"$have_gas_642" - -"$out_of_gas_641": ; preds = %"$have_gas_637" - call void @_out_of_gas() - br label %"$have_gas_642" - -"$have_gas_642": ; preds = %"$out_of_gas_641", %"$have_gas_637" - %"$consume_643" = sub i64 %"$gasrem_639", 1 - store i64 %"$consume_643", i64* @_gasrem, align 8 - %"$$fundef_71_envp_644_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_71_envp_644_salloc" = call i8* @_salloc(i8* %"$$fundef_71_envp_644_load", i64 4) - %"$$fundef_71_envp_644" = bitcast i8* %"$$fundef_71_envp_644_salloc" to %"$$fundef_71_env_108"* - %"$$fundef_71_env_voidp_646" = bitcast %"$$fundef_71_env_108"* %"$$fundef_71_envp_644" to i8* - %"$$fundef_71_cloval_647" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_71_env_108"*, %Uint32)* @"$fundef_71" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_71_env_voidp_646", 1 - %"$$fundef_71_env_one_648" = getelementptr inbounds %"$$fundef_71_env_108", %"$$fundef_71_env_108"* %"$$fundef_71_envp_644", i32 0, i32 0 - %"$one_649" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_649", %Uint32* %"$$fundef_71_env_one_648", align 4 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_71_cloval_647", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 - %"$gasrem_650" = load i64, i64* @_gasrem, align 8 - %"$gascmp_651" = icmp ugt i64 1, %"$gasrem_650" - br i1 %"$gascmp_651", label %"$out_of_gas_652", label %"$have_gas_653" - -"$out_of_gas_652": ; preds = %"$have_gas_642" - call void @_out_of_gas() - br label %"$have_gas_653" - -"$have_gas_653": ; preds = %"$out_of_gas_652", %"$have_gas_642" - %"$consume_654" = sub i64 %"$gasrem_650", 1 - store i64 %"$consume_654", i64* @_gasrem, align 8 + %"$gasrem_606" = load i64, i64* @_gasrem, align 8 + %"$gascmp_607" = icmp ugt i64 1, %"$gasrem_606" + br i1 %"$gascmp_607", label %"$out_of_gas_608", label %"$have_gas_609" + +"$out_of_gas_608": ; preds = %"$have_gas_604" + call void @_out_of_gas() + br label %"$have_gas_609" + +"$have_gas_609": ; preds = %"$out_of_gas_608", %"$have_gas_604" + %"$consume_610" = sub i64 %"$gasrem_606", 1 + store i64 %"$consume_610", i64* @_gasrem, align 8 + %"$$fundef_61_envp_611_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_61_envp_611_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_611_load", i64 4) + %"$$fundef_61_envp_611" = bitcast i8* %"$$fundef_61_envp_611_salloc" to %"$$fundef_61_env_98"* + %"$$fundef_61_env_voidp_613" = bitcast %"$$fundef_61_env_98"* %"$$fundef_61_envp_611" to i8* + %"$$fundef_61_cloval_614" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_61_env_98"*, %Uint32)* @"$fundef_61" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_61_env_voidp_613", 1 + %"$$fundef_61_env_one_615" = getelementptr inbounds %"$$fundef_61_env_98", %"$$fundef_61_env_98"* %"$$fundef_61_envp_611", i32 0, i32 0 + %"$one_616" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_616", %Uint32* %"$$fundef_61_env_one_615", align 4 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_61_cloval_614", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 + %"$gasrem_617" = load i64, i64* @_gasrem, align 8 + %"$gascmp_618" = icmp ugt i64 1, %"$gasrem_617" + br i1 %"$gascmp_618", label %"$out_of_gas_619", label %"$have_gas_620" + +"$out_of_gas_619": ; preds = %"$have_gas_609" + call void @_out_of_gas() + br label %"$have_gas_620" + +"$have_gas_620": ; preds = %"$out_of_gas_619", %"$have_gas_609" + %"$consume_621" = sub i64 %"$gasrem_617", 1 + store i64 %"$consume_621", i64* @_gasrem, align 8 %c32 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_655" = load i64, i64* @_gasrem, align 8 - %"$gascmp_656" = icmp ugt i64 1, %"$gasrem_655" - br i1 %"$gascmp_656", label %"$out_of_gas_657", label %"$have_gas_658" - -"$out_of_gas_657": ; preds = %"$have_gas_653" - call void @_out_of_gas() - br label %"$have_gas_658" - -"$have_gas_658": ; preds = %"$out_of_gas_657", %"$have_gas_653" - %"$consume_659" = sub i64 %"$gasrem_655", 1 - store i64 %"$consume_659", i64* @_gasrem, align 8 - %"$c_660" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 0 - %"$c_661" = bitcast { i8*, i8* }* %"$c_660" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$c_662" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$c_661", align 8 - %"$c_fptr_663" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_662", 0 - %"$c_envptr_664" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_662", 1 - %"$c_call_665" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_fptr_663"(i8* %"$c_envptr_664") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_call_665", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 - %"$gasrem_666" = load i64, i64* @_gasrem, align 8 - %"$gascmp_667" = icmp ugt i64 1, %"$gasrem_666" - br i1 %"$gascmp_667", label %"$out_of_gas_668", label %"$have_gas_669" - -"$out_of_gas_668": ; preds = %"$have_gas_658" - call void @_out_of_gas() - br label %"$have_gas_669" - -"$have_gas_669": ; preds = %"$out_of_gas_668", %"$have_gas_658" - %"$consume_670" = sub i64 %"$gasrem_666", 1 - store i64 %"$consume_670", i64* @_gasrem, align 8 + %"$gasrem_622" = load i64, i64* @_gasrem, align 8 + %"$gascmp_623" = icmp ugt i64 1, %"$gasrem_622" + br i1 %"$gascmp_623", label %"$out_of_gas_624", label %"$have_gas_625" + +"$out_of_gas_624": ; preds = %"$have_gas_620" + call void @_out_of_gas() + br label %"$have_gas_625" + +"$have_gas_625": ; preds = %"$out_of_gas_624", %"$have_gas_620" + %"$consume_626" = sub i64 %"$gasrem_622", 1 + store i64 %"$consume_626", i64* @_gasrem, align 8 + %"$c_627" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 0 + %"$c_628" = bitcast { i8*, i8* }* %"$c_627" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$c_629" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$c_628", align 8 + %"$c_fptr_630" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_629", 0 + %"$c_envptr_631" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$c_629", 1 + %"$c_call_632" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_fptr_630"(i8* %"$c_envptr_631") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c_call_632", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 + %"$gasrem_633" = load i64, i64* @_gasrem, align 8 + %"$gascmp_634" = icmp ugt i64 1, %"$gasrem_633" + br i1 %"$gascmp_634", label %"$out_of_gas_635", label %"$have_gas_636" + +"$out_of_gas_635": ; preds = %"$have_gas_625" + call void @_out_of_gas() + br label %"$have_gas_636" + +"$have_gas_636": ; preds = %"$out_of_gas_635", %"$have_gas_625" + %"$consume_637" = sub i64 %"$gasrem_633", 1 + store i64 %"$consume_637", i64* @_gasrem, align 8 %"$c32_9" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$c32_671" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 - %"$c32_fptr_672" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_671", 0 - %"$c32_envptr_673" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_671", 1 - %"$add1_674" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 - %"$c32_call_675" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_fptr_672"(i8* %"$c32_envptr_673", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_674") - store { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_call_675", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_9", align 8 + %"$c32_638" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 + %"$c32_fptr_639" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_638", 0 + %"$c32_envptr_640" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_638", 1 + %"$add1_641" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 + %"$c32_call_642" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_fptr_639"(i8* %"$c32_envptr_640", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_641") + store { %Uint32 (i8*, %Uint32)*, i8* } %"$c32_call_642", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_9", align 8 %"$c32_10" = alloca %Uint32, align 8 - %"$$c32_9_676" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_9", align 8 - %"$$c32_9_fptr_677" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_9_676", 0 - %"$$c32_9_envptr_678" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_9_676", 1 - %"$zero_679" = load %Uint32, %Uint32* %zero, align 4 - %"$$c32_9_call_680" = call %Uint32 %"$$c32_9_fptr_677"(i8* %"$$c32_9_envptr_678", %Uint32 %"$zero_679") - store %Uint32 %"$$c32_9_call_680", %Uint32* %"$c32_10", align 4 - %"$$c32_10_681" = load %Uint32, %Uint32* %"$c32_10", align 4 - store %Uint32 %"$$c32_10_681", %Uint32* %"$retval_70", align 4 - %"$$retval_70_682" = load %Uint32, %Uint32* %"$retval_70", align 4 - ret %Uint32 %"$$retval_70_682" + %"$$c32_9_643" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c32_9", align 8 + %"$$c32_9_fptr_644" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_9_643", 0 + %"$$c32_9_envptr_645" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c32_9_643", 1 + %"$zero_646" = load %Uint32, %Uint32* %zero, align 4 + %"$$c32_9_call_647" = call %Uint32 %"$$c32_9_fptr_644"(i8* %"$$c32_9_envptr_645", %Uint32 %"$zero_646") + store %Uint32 %"$$c32_9_call_647", %Uint32* %"$c32_10", align 4 + %"$$c32_10_648" = load %Uint32, %Uint32* %"$c32_10", align 4 + store %Uint32 %"$$c32_10_648", %Uint32* %"$retval_60", align 4 + %"$$retval_60_649" = load %Uint32, %Uint32* %"$retval_60", align 4 + ret %Uint32 %"$$retval_60_649" } -define internal { i8*, i8* }* @"$fundef_67"(%"$$fundef_67_env_110"* %0, { i8*, i8* }* %1) { +define internal { i8*, i8* }* @"$fundef_57"(%"$$fundef_57_env_100"* %0, { i8*, i8* }* %1, { i8*, i8* }* %2) { entry: - %"$$fundef_67_env_c0_559" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %0, i32 0, i32 0 - %"$c0_envload_560" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_67_env_c0_559", align 8 + %"$$fundef_57_env_c0_529" = getelementptr inbounds %"$$fundef_57_env_100", %"$$fundef_57_env_100"* %0, i32 0, i32 0 + %"$c0_envload_530" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_c0_529", align 8 %c0 = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$c0_envload_560", { i8*, i8* }** %c0, align 8 - %"$$fundef_67_env_cadd_561" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %0, i32 0, i32 1 - %"$cadd_envload_562" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_67_env_cadd_561", align 8 + store { i8*, i8* }* %"$c0_envload_530", { i8*, i8* }** %c0, align 8 + %"$$fundef_57_env_cadd_531" = getelementptr inbounds %"$$fundef_57_env_100", %"$$fundef_57_env_100"* %0, i32 0, i32 1 + %"$cadd_envload_532" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_57_env_cadd_531", align 8 %cadd = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_envload_562", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$$fundef_67_env_m_563" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %0, i32 0, i32 2 - %"$m_envload_564" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_67_env_m_563", align 8 - %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_564", { i8*, i8* }** %m, align 8 - %"$retval_68" = alloca { i8*, i8* }*, align 8 - %"$gasrem_565" = load i64, i64* @_gasrem, align 8 - %"$gascmp_566" = icmp ugt i64 1, %"$gasrem_565" - br i1 %"$gascmp_566", label %"$out_of_gas_567", label %"$have_gas_568" + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_envload_532", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + %"$retval_58" = alloca { i8*, i8* }*, align 8 + %"$gasrem_533" = load i64, i64* @_gasrem, align 8 + %"$gascmp_534" = icmp ugt i64 1, %"$gasrem_533" + br i1 %"$gascmp_534", label %"$out_of_gas_535", label %"$have_gas_536" -"$out_of_gas_567": ; preds = %entry +"$out_of_gas_535": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_568" + br label %"$have_gas_536" -"$have_gas_568": ; preds = %"$out_of_gas_567", %entry - %"$consume_569" = sub i64 %"$gasrem_565", 1 - store i64 %"$consume_569", i64* @_gasrem, align 8 +"$have_gas_536": ; preds = %"$out_of_gas_535", %entry + %"$consume_537" = sub i64 %"$gasrem_533", 1 + store i64 %"$consume_537", i64* @_gasrem, align 8 %cadd_m = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_571" = icmp ugt i64 1, %"$gasrem_570" - br i1 %"$gascmp_571", label %"$out_of_gas_572", label %"$have_gas_573" + %"$gasrem_538" = load i64, i64* @_gasrem, align 8 + %"$gascmp_539" = icmp ugt i64 1, %"$gasrem_538" + br i1 %"$gascmp_539", label %"$out_of_gas_540", label %"$have_gas_541" -"$out_of_gas_572": ; preds = %"$have_gas_568" +"$out_of_gas_540": ; preds = %"$have_gas_536" call void @_out_of_gas() - br label %"$have_gas_573" + br label %"$have_gas_541" -"$have_gas_573": ; preds = %"$out_of_gas_572", %"$have_gas_568" - %"$consume_574" = sub i64 %"$gasrem_570", 1 - store i64 %"$consume_574", i64* @_gasrem, align 8 +"$have_gas_541": ; preds = %"$out_of_gas_540", %"$have_gas_536" + %"$consume_542" = sub i64 %"$gasrem_538", 1 + store i64 %"$consume_542", i64* @_gasrem, align 8 %"$cadd_6" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cadd_575" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$cadd_fptr_576" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_575", 0 - %"$cadd_envptr_577" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_575", 1 - %"$m_578" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - %"$cadd_call_579" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_576"(i8* %"$cadd_envptr_577", { i8*, i8* }* %"$m_578") - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_579", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_6", align 8 - %"$$cadd_6_580" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_6", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_6_580", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8 - %"$gasrem_581" = load i64, i64* @_gasrem, align 8 - %"$gascmp_582" = icmp ugt i64 1, %"$gasrem_581" - br i1 %"$gascmp_582", label %"$out_of_gas_583", label %"$have_gas_584" - -"$out_of_gas_583": ; preds = %"$have_gas_573" - call void @_out_of_gas() - br label %"$have_gas_584" - -"$have_gas_584": ; preds = %"$out_of_gas_583", %"$have_gas_573" - %"$consume_585" = sub i64 %"$gasrem_581", 1 - store i64 %"$consume_585", i64* @_gasrem, align 8 + %"$cadd_543" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + %"$cadd_fptr_544" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_543", 0 + %"$cadd_envptr_545" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_543", 1 + %"$cadd_call_546" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_544"(i8* %"$cadd_envptr_545", { i8*, i8* }* %1) + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_546", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_6", align 8 + %"$$cadd_6_547" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_6", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_6_547", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8 + %"$gasrem_548" = load i64, i64* @_gasrem, align 8 + %"$gascmp_549" = icmp ugt i64 1, %"$gasrem_548" + br i1 %"$gascmp_549", label %"$out_of_gas_550", label %"$have_gas_551" + +"$out_of_gas_550": ; preds = %"$have_gas_541" + call void @_out_of_gas() + br label %"$have_gas_551" + +"$have_gas_551": ; preds = %"$out_of_gas_550", %"$have_gas_541" + %"$consume_552" = sub i64 %"$gasrem_548", 1 + store i64 %"$consume_552", i64* @_gasrem, align 8 %nI = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_586" = load i64, i64* @_gasrem, align 8 - %"$gascmp_587" = icmp ugt i64 1, %"$gasrem_586" - br i1 %"$gascmp_587", label %"$out_of_gas_588", label %"$have_gas_589" - -"$out_of_gas_588": ; preds = %"$have_gas_584" - call void @_out_of_gas() - br label %"$have_gas_589" - -"$have_gas_589": ; preds = %"$out_of_gas_588", %"$have_gas_584" - %"$consume_590" = sub i64 %"$gasrem_586", 1 - store i64 %"$consume_590", i64* @_gasrem, align 8 - %"$n_591" = getelementptr { i8*, i8* }, { i8*, i8* }* %1, i32 1 - %"$n_592" = bitcast { i8*, i8* }* %"$n_591" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$n_593" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_592", align 8 - %"$n_fptr_594" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_593", 0 - %"$n_envptr_595" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_593", 1 - %"$n_call_596" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_594"(i8* %"$n_envptr_595") - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_596", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nI, align 8 - %"$gasrem_597" = load i64, i64* @_gasrem, align 8 - %"$gascmp_598" = icmp ugt i64 1, %"$gasrem_597" - br i1 %"$gascmp_598", label %"$out_of_gas_599", label %"$have_gas_600" - -"$out_of_gas_599": ; preds = %"$have_gas_589" - call void @_out_of_gas() - br label %"$have_gas_600" - -"$have_gas_600": ; preds = %"$out_of_gas_599", %"$have_gas_589" - %"$consume_601" = sub i64 %"$gasrem_597", 1 - store i64 %"$consume_601", i64* @_gasrem, align 8 + %"$gasrem_553" = load i64, i64* @_gasrem, align 8 + %"$gascmp_554" = icmp ugt i64 1, %"$gasrem_553" + br i1 %"$gascmp_554", label %"$out_of_gas_555", label %"$have_gas_556" + +"$out_of_gas_555": ; preds = %"$have_gas_551" + call void @_out_of_gas() + br label %"$have_gas_556" + +"$have_gas_556": ; preds = %"$out_of_gas_555", %"$have_gas_551" + %"$consume_557" = sub i64 %"$gasrem_553", 1 + store i64 %"$consume_557", i64* @_gasrem, align 8 + %"$n_558" = getelementptr { i8*, i8* }, { i8*, i8* }* %2, i32 1 + %"$n_559" = bitcast { i8*, i8* }* %"$n_558" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$n_560" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_559", align 8 + %"$n_fptr_561" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_560", 0 + %"$n_envptr_562" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_560", 1 + %"$n_call_563" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_561"(i8* %"$n_envptr_562") + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_563", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nI, align 8 + %"$gasrem_564" = load i64, i64* @_gasrem, align 8 + %"$gascmp_565" = icmp ugt i64 1, %"$gasrem_564" + br i1 %"$gascmp_565", label %"$out_of_gas_566", label %"$have_gas_567" + +"$out_of_gas_566": ; preds = %"$have_gas_556" + call void @_out_of_gas() + br label %"$have_gas_567" + +"$have_gas_567": ; preds = %"$out_of_gas_566", %"$have_gas_556" + %"$consume_568" = sub i64 %"$gasrem_564", 1 + store i64 %"$consume_568", i64* @_gasrem, align 8 %"$nI_7" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$nI_602" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nI, align 8 - %"$nI_fptr_603" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_602", 0 - %"$nI_envptr_604" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_602", 1 - %"$cadd_m_605" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8 - %"$nI_call_606" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_fptr_603"(i8* %"$nI_envptr_604", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_m_605") - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_call_606", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_7", align 8 + %"$nI_569" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nI, align 8 + %"$nI_fptr_570" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_569", 0 + %"$nI_envptr_571" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nI_569", 1 + %"$cadd_m_572" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %cadd_m, align 8 + %"$nI_call_573" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_fptr_570"(i8* %"$nI_envptr_571", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_m_572") + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nI_call_573", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_7", align 8 %"$nI_8" = alloca { i8*, i8* }*, align 8 - %"$$nI_7_607" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_7", align 8 - %"$$nI_7_fptr_608" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_7_607", 0 - %"$$nI_7_envptr_609" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_7_607", 1 - %"$c0_610" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 - %"$$nI_7_call_611" = call { i8*, i8* }* %"$$nI_7_fptr_608"(i8* %"$$nI_7_envptr_609", { i8*, i8* }* %"$c0_610") - store { i8*, i8* }* %"$$nI_7_call_611", { i8*, i8* }** %"$nI_8", align 8 - %"$$nI_8_612" = load { i8*, i8* }*, { i8*, i8* }** %"$nI_8", align 8 - store { i8*, i8* }* %"$$nI_8_612", { i8*, i8* }** %"$retval_68", align 8 - %"$$retval_68_613" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_68", align 8 - ret { i8*, i8* }* %"$$retval_68_613" -} - -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_65"(%"$$fundef_65_env_111"* %0, { i8*, i8* }* %1) { -entry: - %"$$fundef_65_env_c0_540" = getelementptr inbounds %"$$fundef_65_env_111", %"$$fundef_65_env_111"* %0, i32 0, i32 0 - %"$c0_envload_541" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_65_env_c0_540", align 8 - %c0 = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$c0_envload_541", { i8*, i8* }** %c0, align 8 - %"$$fundef_65_env_cadd_542" = getelementptr inbounds %"$$fundef_65_env_111", %"$$fundef_65_env_111"* %0, i32 0, i32 1 - %"$cadd_envload_543" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_65_env_cadd_542", align 8 - %cadd = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_envload_543", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$retval_66" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_544" = load i64, i64* @_gasrem, align 8 - %"$gascmp_545" = icmp ugt i64 1, %"$gasrem_544" - br i1 %"$gascmp_545", label %"$out_of_gas_546", label %"$have_gas_547" - -"$out_of_gas_546": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_547" - -"$have_gas_547": ; preds = %"$out_of_gas_546", %entry - %"$consume_548" = sub i64 %"$gasrem_544", 1 - store i64 %"$consume_548", i64* @_gasrem, align 8 - %"$$fundef_67_envp_549_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_67_envp_549_salloc" = call i8* @_salloc(i8* %"$$fundef_67_envp_549_load", i64 32) - %"$$fundef_67_envp_549" = bitcast i8* %"$$fundef_67_envp_549_salloc" to %"$$fundef_67_env_110"* - %"$$fundef_67_env_voidp_551" = bitcast %"$$fundef_67_env_110"* %"$$fundef_67_envp_549" to i8* - %"$$fundef_67_cloval_552" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_67_env_110"*, { i8*, i8* }*)* @"$fundef_67" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_67_env_voidp_551", 1 - %"$$fundef_67_env_c0_553" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %"$$fundef_67_envp_549", i32 0, i32 0 - %"$c0_554" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 - store { i8*, i8* }* %"$c0_554", { i8*, i8* }** %"$$fundef_67_env_c0_553", align 8 - %"$$fundef_67_env_cadd_555" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %"$$fundef_67_envp_549", i32 0, i32 1 - %"$cadd_556" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_556", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_67_env_cadd_555", align 8 - %"$$fundef_67_env_m_557" = getelementptr inbounds %"$$fundef_67_env_110", %"$$fundef_67_env_110"* %"$$fundef_67_envp_549", i32 0, i32 2 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_67_env_m_557", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_67_cloval_552", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_66", align 8 - %"$$retval_66_558" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_66", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_66_558" + %"$$nI_7_574" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nI_7", align 8 + %"$$nI_7_fptr_575" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_7_574", 0 + %"$$nI_7_envptr_576" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nI_7_574", 1 + %"$c0_577" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 + %"$$nI_7_call_578" = call { i8*, i8* }* %"$$nI_7_fptr_575"(i8* %"$$nI_7_envptr_576", { i8*, i8* }* %"$c0_577") + store { i8*, i8* }* %"$$nI_7_call_578", { i8*, i8* }** %"$nI_8", align 8 + %"$$nI_8_579" = load { i8*, i8* }*, { i8*, i8* }** %"$nI_8", align 8 + store { i8*, i8* }* %"$$nI_8_579", { i8*, i8* }** %"$retval_58", align 8 + %"$$retval_58_580" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_58", align 8 + ret { i8*, i8* }* %"$$retval_58_580" } -define internal { i8*, i8* }* @"$fundef_63"(%"$$fundef_63_env_112"* %0, { i8*, i8* }* %1) { +define internal { i8*, i8* }* @"$fundef_55"(%"$$fundef_55_env_101"* %0, { i8*, i8* }* %1) { entry: - %"$$fundef_63_env_m_463" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %0, i32 0, i32 0 - %"$m_envload_464" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_63_env_m_463", align 8 + %"$$fundef_55_env_m_452" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %0, i32 0, i32 0 + %"$m_envload_453" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_55_env_m_452", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_464", { i8*, i8* }** %m, align 8 - %"$$fundef_63_env_n_465" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %0, i32 0, i32 1 - %"$n_envload_466" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_63_env_n_465", align 8 + store { i8*, i8* }* %"$m_envload_453", { i8*, i8* }** %m, align 8 + %"$$fundef_55_env_n_454" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %0, i32 0, i32 1 + %"$n_envload_455" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_55_env_n_454", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_466", { i8*, i8* }** %n, align 8 - %"$$fundef_63_env_s_467" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %0, i32 0, i32 2 - %"$s_envload_468" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_63_env_s_467", align 8 + store { i8*, i8* }* %"$n_envload_455", { i8*, i8* }** %n, align 8 + %"$$fundef_55_env_s_456" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %0, i32 0, i32 2 + %"$s_envload_457" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_55_env_s_456", align 8 %s = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_468", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$retval_64" = alloca { i8*, i8* }*, align 8 - %"$gasrem_469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_470" = icmp ugt i64 1, %"$gasrem_469" - br i1 %"$gascmp_470", label %"$out_of_gas_471", label %"$have_gas_472" + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_457", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$retval_56" = alloca { i8*, i8* }*, align 8 + %"$gasrem_458" = load i64, i64* @_gasrem, align 8 + %"$gascmp_459" = icmp ugt i64 1, %"$gasrem_458" + br i1 %"$gascmp_459", label %"$out_of_gas_460", label %"$have_gas_461" -"$out_of_gas_471": ; preds = %entry +"$out_of_gas_460": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_472" + br label %"$have_gas_461" -"$have_gas_472": ; preds = %"$out_of_gas_471", %entry - %"$consume_473" = sub i64 %"$gasrem_469", 1 - store i64 %"$consume_473", i64* @_gasrem, align 8 +"$have_gas_461": ; preds = %"$out_of_gas_460", %entry + %"$consume_462" = sub i64 %"$gasrem_458", 1 + store i64 %"$consume_462", i64* @_gasrem, align 8 %mX = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_474" = load i64, i64* @_gasrem, align 8 - %"$gascmp_475" = icmp ugt i64 1, %"$gasrem_474" - br i1 %"$gascmp_475", label %"$out_of_gas_476", label %"$have_gas_477" - -"$out_of_gas_476": ; preds = %"$have_gas_472" - call void @_out_of_gas() - br label %"$have_gas_477" - -"$have_gas_477": ; preds = %"$out_of_gas_476", %"$have_gas_472" - %"$consume_478" = sub i64 %"$gasrem_474", 1 - store i64 %"$consume_478", i64* @_gasrem, align 8 - %"$m_479" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - %"$m_480" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_479", i32 1 - %"$m_481" = bitcast { i8*, i8* }* %"$m_480" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$m_482" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$m_481", align 8 - %"$m_fptr_483" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_482", 0 - %"$m_envptr_484" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_482", 1 - %"$m_call_485" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_fptr_483"(i8* %"$m_envptr_484") - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_call_485", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %mX, align 8 - %"$gasrem_486" = load i64, i64* @_gasrem, align 8 - %"$gascmp_487" = icmp ugt i64 1, %"$gasrem_486" - br i1 %"$gascmp_487", label %"$out_of_gas_488", label %"$have_gas_489" - -"$out_of_gas_488": ; preds = %"$have_gas_477" - call void @_out_of_gas() - br label %"$have_gas_489" - -"$have_gas_489": ; preds = %"$out_of_gas_488", %"$have_gas_477" - %"$consume_490" = sub i64 %"$gasrem_486", 1 - store i64 %"$consume_490", i64* @_gasrem, align 8 + %"$gasrem_463" = load i64, i64* @_gasrem, align 8 + %"$gascmp_464" = icmp ugt i64 1, %"$gasrem_463" + br i1 %"$gascmp_464", label %"$out_of_gas_465", label %"$have_gas_466" + +"$out_of_gas_465": ; preds = %"$have_gas_461" + call void @_out_of_gas() + br label %"$have_gas_466" + +"$have_gas_466": ; preds = %"$out_of_gas_465", %"$have_gas_461" + %"$consume_467" = sub i64 %"$gasrem_463", 1 + store i64 %"$consume_467", i64* @_gasrem, align 8 + %"$m_468" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + %"$m_469" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_468", i32 1 + %"$m_470" = bitcast { i8*, i8* }* %"$m_469" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$m_471" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$m_470", align 8 + %"$m_fptr_472" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_471", 0 + %"$m_envptr_473" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$m_471", 1 + %"$m_call_474" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_fptr_472"(i8* %"$m_envptr_473") + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$m_call_474", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %mX, align 8 + %"$gasrem_475" = load i64, i64* @_gasrem, align 8 + %"$gascmp_476" = icmp ugt i64 1, %"$gasrem_475" + br i1 %"$gascmp_476", label %"$out_of_gas_477", label %"$have_gas_478" + +"$out_of_gas_477": ; preds = %"$have_gas_466" + call void @_out_of_gas() + br label %"$have_gas_478" + +"$have_gas_478": ; preds = %"$out_of_gas_477", %"$have_gas_466" + %"$consume_479" = sub i64 %"$gasrem_475", 1 + store i64 %"$consume_479", i64* @_gasrem, align 8 %nX = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_491" = load i64, i64* @_gasrem, align 8 - %"$gascmp_492" = icmp ugt i64 1, %"$gasrem_491" - br i1 %"$gascmp_492", label %"$out_of_gas_493", label %"$have_gas_494" - -"$out_of_gas_493": ; preds = %"$have_gas_489" - call void @_out_of_gas() - br label %"$have_gas_494" - -"$have_gas_494": ; preds = %"$out_of_gas_493", %"$have_gas_489" - %"$consume_495" = sub i64 %"$gasrem_491", 1 - store i64 %"$consume_495", i64* @_gasrem, align 8 - %"$n_496" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - %"$n_497" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_496", i32 1 - %"$n_498" = bitcast { i8*, i8* }* %"$n_497" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - %"$n_499" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_498", align 8 - %"$n_fptr_500" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_499", 0 - %"$n_envptr_501" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_499", 1 - %"$n_call_502" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_500"(i8* %"$n_envptr_501") - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_502", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nX, align 8 - %"$gasrem_503" = load i64, i64* @_gasrem, align 8 - %"$gascmp_504" = icmp ugt i64 1, %"$gasrem_503" - br i1 %"$gascmp_504", label %"$out_of_gas_505", label %"$have_gas_506" - -"$out_of_gas_505": ; preds = %"$have_gas_494" - call void @_out_of_gas() - br label %"$have_gas_506" - -"$have_gas_506": ; preds = %"$out_of_gas_505", %"$have_gas_494" - %"$consume_507" = sub i64 %"$gasrem_503", 1 - store i64 %"$consume_507", i64* @_gasrem, align 8 + %"$gasrem_480" = load i64, i64* @_gasrem, align 8 + %"$gascmp_481" = icmp ugt i64 1, %"$gasrem_480" + br i1 %"$gascmp_481", label %"$out_of_gas_482", label %"$have_gas_483" + +"$out_of_gas_482": ; preds = %"$have_gas_478" + call void @_out_of_gas() + br label %"$have_gas_483" + +"$have_gas_483": ; preds = %"$out_of_gas_482", %"$have_gas_478" + %"$consume_484" = sub i64 %"$gasrem_480", 1 + store i64 %"$consume_484", i64* @_gasrem, align 8 + %"$n_485" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + %"$n_486" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_485", i32 1 + %"$n_487" = bitcast { i8*, i8* }* %"$n_486" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + %"$n_488" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_487", align 8 + %"$n_fptr_489" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_488", 0 + %"$n_envptr_490" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$n_488", 1 + %"$n_call_491" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_fptr_489"(i8* %"$n_envptr_490") + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$n_call_491", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nX, align 8 + %"$gasrem_492" = load i64, i64* @_gasrem, align 8 + %"$gascmp_493" = icmp ugt i64 1, %"$gasrem_492" + br i1 %"$gascmp_493", label %"$out_of_gas_494", label %"$have_gas_495" + +"$out_of_gas_494": ; preds = %"$have_gas_483" + call void @_out_of_gas() + br label %"$have_gas_495" + +"$have_gas_495": ; preds = %"$out_of_gas_494", %"$have_gas_483" + %"$consume_496" = sub i64 %"$gasrem_492", 1 + store i64 %"$consume_496", i64* @_gasrem, align 8 %nXsz = alloca { i8*, i8* }*, align 8 - %"$gasrem_508" = load i64, i64* @_gasrem, align 8 - %"$gascmp_509" = icmp ugt i64 1, %"$gasrem_508" - br i1 %"$gascmp_509", label %"$out_of_gas_510", label %"$have_gas_511" + %"$gasrem_497" = load i64, i64* @_gasrem, align 8 + %"$gascmp_498" = icmp ugt i64 1, %"$gasrem_497" + br i1 %"$gascmp_498", label %"$out_of_gas_499", label %"$have_gas_500" -"$out_of_gas_510": ; preds = %"$have_gas_506" +"$out_of_gas_499": ; preds = %"$have_gas_495" call void @_out_of_gas() - br label %"$have_gas_511" + br label %"$have_gas_500" -"$have_gas_511": ; preds = %"$out_of_gas_510", %"$have_gas_506" - %"$consume_512" = sub i64 %"$gasrem_508", 1 - store i64 %"$consume_512", i64* @_gasrem, align 8 +"$have_gas_500": ; preds = %"$out_of_gas_499", %"$have_gas_495" + %"$consume_501" = sub i64 %"$gasrem_497", 1 + store i64 %"$consume_501", i64* @_gasrem, align 8 %"$nX_2" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$nX_513" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nX, align 8 - %"$nX_fptr_514" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_513", 0 - %"$nX_envptr_515" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_513", 1 - %"$s_516" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$nX_call_517" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_fptr_514"(i8* %"$nX_envptr_515", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_516") - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_call_517", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_2", align 8 + %"$nX_502" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %nX, align 8 + %"$nX_fptr_503" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_502", 0 + %"$nX_envptr_504" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$nX_502", 1 + %"$s_505" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$nX_call_506" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_fptr_503"(i8* %"$nX_envptr_504", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_505") + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$nX_call_506", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_2", align 8 %"$nX_3" = alloca { i8*, i8* }*, align 8 - %"$$nX_2_518" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_2", align 8 - %"$$nX_2_fptr_519" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_2_518", 0 - %"$$nX_2_envptr_520" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_2_518", 1 - %"$$nX_2_call_521" = call { i8*, i8* }* %"$$nX_2_fptr_519"(i8* %"$$nX_2_envptr_520", { i8*, i8* }* %1) - store { i8*, i8* }* %"$$nX_2_call_521", { i8*, i8* }** %"$nX_3", align 8 - %"$$nX_3_522" = load { i8*, i8* }*, { i8*, i8* }** %"$nX_3", align 8 - store { i8*, i8* }* %"$$nX_3_522", { i8*, i8* }** %nXsz, align 8 - %"$gasrem_523" = load i64, i64* @_gasrem, align 8 - %"$gascmp_524" = icmp ugt i64 1, %"$gasrem_523" - br i1 %"$gascmp_524", label %"$out_of_gas_525", label %"$have_gas_526" - -"$out_of_gas_525": ; preds = %"$have_gas_511" - call void @_out_of_gas() - br label %"$have_gas_526" - -"$have_gas_526": ; preds = %"$out_of_gas_525", %"$have_gas_511" - %"$consume_527" = sub i64 %"$gasrem_523", 1 - store i64 %"$consume_527", i64* @_gasrem, align 8 + %"$$nX_2_507" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$nX_2", align 8 + %"$$nX_2_fptr_508" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_2_507", 0 + %"$$nX_2_envptr_509" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$nX_2_507", 1 + %"$$nX_2_call_510" = call { i8*, i8* }* %"$$nX_2_fptr_508"(i8* %"$$nX_2_envptr_509", { i8*, i8* }* %1) + store { i8*, i8* }* %"$$nX_2_call_510", { i8*, i8* }** %"$nX_3", align 8 + %"$$nX_3_511" = load { i8*, i8* }*, { i8*, i8* }** %"$nX_3", align 8 + store { i8*, i8* }* %"$$nX_3_511", { i8*, i8* }** %nXsz, align 8 + %"$gasrem_512" = load i64, i64* @_gasrem, align 8 + %"$gascmp_513" = icmp ugt i64 1, %"$gasrem_512" + br i1 %"$gascmp_513", label %"$out_of_gas_514", label %"$have_gas_515" + +"$out_of_gas_514": ; preds = %"$have_gas_500" + call void @_out_of_gas() + br label %"$have_gas_515" + +"$have_gas_515": ; preds = %"$out_of_gas_514", %"$have_gas_500" + %"$consume_516" = sub i64 %"$gasrem_512", 1 + store i64 %"$consume_516", i64* @_gasrem, align 8 %"$mX_4" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$mX_528" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %mX, align 8 - %"$mX_fptr_529" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_528", 0 - %"$mX_envptr_530" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_528", 1 - %"$s_531" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$mX_call_532" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_fptr_529"(i8* %"$mX_envptr_530", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_531") - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_call_532", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_4", align 8 + %"$mX_517" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %mX, align 8 + %"$mX_fptr_518" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_517", 0 + %"$mX_envptr_519" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$mX_517", 1 + %"$s_520" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$mX_call_521" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_fptr_518"(i8* %"$mX_envptr_519", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_520") + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$mX_call_521", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_4", align 8 %"$mX_5" = alloca { i8*, i8* }*, align 8 - %"$$mX_4_533" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_4", align 8 - %"$$mX_4_fptr_534" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_4_533", 0 - %"$$mX_4_envptr_535" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_4_533", 1 - %"$nXsz_536" = load { i8*, i8* }*, { i8*, i8* }** %nXsz, align 8 - %"$$mX_4_call_537" = call { i8*, i8* }* %"$$mX_4_fptr_534"(i8* %"$$mX_4_envptr_535", { i8*, i8* }* %"$nXsz_536") - store { i8*, i8* }* %"$$mX_4_call_537", { i8*, i8* }** %"$mX_5", align 8 - %"$$mX_5_538" = load { i8*, i8* }*, { i8*, i8* }** %"$mX_5", align 8 - store { i8*, i8* }* %"$$mX_5_538", { i8*, i8* }** %"$retval_64", align 8 - %"$$retval_64_539" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_64", align 8 - ret { i8*, i8* }* %"$$retval_64_539" + %"$$mX_4_522" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$mX_4", align 8 + %"$$mX_4_fptr_523" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_4_522", 0 + %"$$mX_4_envptr_524" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$mX_4_522", 1 + %"$nXsz_525" = load { i8*, i8* }*, { i8*, i8* }** %nXsz, align 8 + %"$$mX_4_call_526" = call { i8*, i8* }* %"$$mX_4_fptr_523"(i8* %"$$mX_4_envptr_524", { i8*, i8* }* %"$nXsz_525") + store { i8*, i8* }* %"$$mX_4_call_526", { i8*, i8* }** %"$mX_5", align 8 + %"$$mX_5_527" = load { i8*, i8* }*, { i8*, i8* }** %"$mX_5", align 8 + store { i8*, i8* }* %"$$mX_5_527", { i8*, i8* }** %"$retval_56", align 8 + %"$$retval_56_528" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_56", align 8 + ret { i8*, i8* }* %"$$retval_56_528" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_61"(%"$$fundef_61_env_113"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_53"(%"$$fundef_53_env_102"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) { entry: - %"$$fundef_61_env_m_444" = getelementptr inbounds %"$$fundef_61_env_113", %"$$fundef_61_env_113"* %0, i32 0, i32 0 - %"$m_envload_445" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_61_env_m_444", align 8 + %"$$fundef_53_env_m_433" = getelementptr inbounds %"$$fundef_53_env_102", %"$$fundef_53_env_102"* %0, i32 0, i32 0 + %"$m_envload_434" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_53_env_m_433", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_445", { i8*, i8* }** %m, align 8 - %"$$fundef_61_env_n_446" = getelementptr inbounds %"$$fundef_61_env_113", %"$$fundef_61_env_113"* %0, i32 0, i32 1 - %"$n_envload_447" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_61_env_n_446", align 8 + store { i8*, i8* }* %"$m_envload_434", { i8*, i8* }** %m, align 8 + %"$$fundef_53_env_n_435" = getelementptr inbounds %"$$fundef_53_env_102", %"$$fundef_53_env_102"* %0, i32 0, i32 1 + %"$n_envload_436" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_53_env_n_435", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_447", { i8*, i8* }** %n, align 8 - %"$retval_62" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_448" = load i64, i64* @_gasrem, align 8 - %"$gascmp_449" = icmp ugt i64 1, %"$gasrem_448" - br i1 %"$gascmp_449", label %"$out_of_gas_450", label %"$have_gas_451" - -"$out_of_gas_450": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_451" - -"$have_gas_451": ; preds = %"$out_of_gas_450", %entry - %"$consume_452" = sub i64 %"$gasrem_448", 1 - store i64 %"$consume_452", i64* @_gasrem, align 8 - %"$$fundef_63_envp_453_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_63_envp_453_salloc" = call i8* @_salloc(i8* %"$$fundef_63_envp_453_load", i64 32) - %"$$fundef_63_envp_453" = bitcast i8* %"$$fundef_63_envp_453_salloc" to %"$$fundef_63_env_112"* - %"$$fundef_63_env_voidp_455" = bitcast %"$$fundef_63_env_112"* %"$$fundef_63_envp_453" to i8* - %"$$fundef_63_cloval_456" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_63_env_112"*, { i8*, i8* }*)* @"$fundef_63" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_63_env_voidp_455", 1 - %"$$fundef_63_env_m_457" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %"$$fundef_63_envp_453", i32 0, i32 0 - %"$m_458" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_458", { i8*, i8* }** %"$$fundef_63_env_m_457", align 8 - %"$$fundef_63_env_n_459" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %"$$fundef_63_envp_453", i32 0, i32 1 - %"$n_460" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_460", { i8*, i8* }** %"$$fundef_63_env_n_459", align 8 - %"$$fundef_63_env_s_461" = getelementptr inbounds %"$$fundef_63_env_112", %"$$fundef_63_env_112"* %"$$fundef_63_envp_453", i32 0, i32 2 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_63_env_s_461", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_63_cloval_456", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_62", align 8 - %"$$retval_62_462" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_62", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_62_462" + store { i8*, i8* }* %"$n_envload_436", { i8*, i8* }** %n, align 8 + %"$retval_54" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_437" = load i64, i64* @_gasrem, align 8 + %"$gascmp_438" = icmp ugt i64 1, %"$gasrem_437" + br i1 %"$gascmp_438", label %"$out_of_gas_439", label %"$have_gas_440" + +"$out_of_gas_439": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_440" + +"$have_gas_440": ; preds = %"$out_of_gas_439", %entry + %"$consume_441" = sub i64 %"$gasrem_437", 1 + store i64 %"$consume_441", i64* @_gasrem, align 8 + %"$$fundef_55_envp_442_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_55_envp_442_salloc" = call i8* @_salloc(i8* %"$$fundef_55_envp_442_load", i64 32) + %"$$fundef_55_envp_442" = bitcast i8* %"$$fundef_55_envp_442_salloc" to %"$$fundef_55_env_101"* + %"$$fundef_55_env_voidp_444" = bitcast %"$$fundef_55_env_101"* %"$$fundef_55_envp_442" to i8* + %"$$fundef_55_cloval_445" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_55_env_101"*, { i8*, i8* }*)* @"$fundef_55" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_55_env_voidp_444", 1 + %"$$fundef_55_env_m_446" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %"$$fundef_55_envp_442", i32 0, i32 0 + %"$m_447" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_447", { i8*, i8* }** %"$$fundef_55_env_m_446", align 8 + %"$$fundef_55_env_n_448" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %"$$fundef_55_envp_442", i32 0, i32 1 + %"$n_449" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_449", { i8*, i8* }** %"$$fundef_55_env_n_448", align 8 + %"$$fundef_55_env_s_450" = getelementptr inbounds %"$$fundef_55_env_101", %"$$fundef_55_env_101"* %"$$fundef_55_envp_442", i32 0, i32 2 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_55_env_s_450", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_55_cloval_445", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_54", align 8 + %"$$retval_54_451" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_54", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_54_451" } -define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_59"(%"$$fundef_59_env_114"* %0) { +define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_51"(%"$$fundef_51_env_103"* %0) { entry: - %"$$fundef_59_env_m_426" = getelementptr inbounds %"$$fundef_59_env_114", %"$$fundef_59_env_114"* %0, i32 0, i32 0 - %"$m_envload_427" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_59_env_m_426", align 8 + %"$$fundef_51_env_m_415" = getelementptr inbounds %"$$fundef_51_env_103", %"$$fundef_51_env_103"* %0, i32 0, i32 0 + %"$m_envload_416" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_51_env_m_415", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_427", { i8*, i8* }** %m, align 8 - %"$$fundef_59_env_n_428" = getelementptr inbounds %"$$fundef_59_env_114", %"$$fundef_59_env_114"* %0, i32 0, i32 1 - %"$n_envload_429" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_59_env_n_428", align 8 + store { i8*, i8* }* %"$m_envload_416", { i8*, i8* }** %m, align 8 + %"$$fundef_51_env_n_417" = getelementptr inbounds %"$$fundef_51_env_103", %"$$fundef_51_env_103"* %0, i32 0, i32 1 + %"$n_envload_418" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_51_env_n_417", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_429", { i8*, i8* }** %n, align 8 - %"$retval_60" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_430" = load i64, i64* @_gasrem, align 8 - %"$gascmp_431" = icmp ugt i64 1, %"$gasrem_430" - br i1 %"$gascmp_431", label %"$out_of_gas_432", label %"$have_gas_433" - -"$out_of_gas_432": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_433" - -"$have_gas_433": ; preds = %"$out_of_gas_432", %entry - %"$consume_434" = sub i64 %"$gasrem_430", 1 - store i64 %"$consume_434", i64* @_gasrem, align 8 - %"$$fundef_61_envp_435_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_61_envp_435_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_435_load", i64 16) - %"$$fundef_61_envp_435" = bitcast i8* %"$$fundef_61_envp_435_salloc" to %"$$fundef_61_env_113"* - %"$$fundef_61_env_voidp_437" = bitcast %"$$fundef_61_env_113"* %"$$fundef_61_envp_435" to i8* - %"$$fundef_61_cloval_438" = insertvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_61_env_113"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_61" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* undef }, i8* %"$$fundef_61_env_voidp_437", 1 - %"$$fundef_61_env_m_439" = getelementptr inbounds %"$$fundef_61_env_113", %"$$fundef_61_env_113"* %"$$fundef_61_envp_435", i32 0, i32 0 - %"$m_440" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_440", { i8*, i8* }** %"$$fundef_61_env_m_439", align 8 - %"$$fundef_61_env_n_441" = getelementptr inbounds %"$$fundef_61_env_113", %"$$fundef_61_env_113"* %"$$fundef_61_envp_435", i32 0, i32 1 - %"$n_442" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_442", { i8*, i8* }** %"$$fundef_61_env_n_441", align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$fundef_61_cloval_438", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_60", align 8 - %"$$retval_60_443" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_60", align 8 - ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_60_443" + store { i8*, i8* }* %"$n_envload_418", { i8*, i8* }** %n, align 8 + %"$retval_52" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 + %"$gasrem_419" = load i64, i64* @_gasrem, align 8 + %"$gascmp_420" = icmp ugt i64 1, %"$gasrem_419" + br i1 %"$gascmp_420", label %"$out_of_gas_421", label %"$have_gas_422" + +"$out_of_gas_421": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_422" + +"$have_gas_422": ; preds = %"$out_of_gas_421", %entry + %"$consume_423" = sub i64 %"$gasrem_419", 1 + store i64 %"$consume_423", i64* @_gasrem, align 8 + %"$$fundef_53_envp_424_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_53_envp_424_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_424_load", i64 16) + %"$$fundef_53_envp_424" = bitcast i8* %"$$fundef_53_envp_424_salloc" to %"$$fundef_53_env_102"* + %"$$fundef_53_env_voidp_426" = bitcast %"$$fundef_53_env_102"* %"$$fundef_53_envp_424" to i8* + %"$$fundef_53_cloval_427" = insertvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_53_env_102"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_53" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* undef }, i8* %"$$fundef_53_env_voidp_426", 1 + %"$$fundef_53_env_m_428" = getelementptr inbounds %"$$fundef_53_env_102", %"$$fundef_53_env_102"* %"$$fundef_53_envp_424", i32 0, i32 0 + %"$m_429" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_429", { i8*, i8* }** %"$$fundef_53_env_m_428", align 8 + %"$$fundef_53_env_n_430" = getelementptr inbounds %"$$fundef_53_env_102", %"$$fundef_53_env_102"* %"$$fundef_53_envp_424", i32 0, i32 1 + %"$n_431" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_431", { i8*, i8* }** %"$$fundef_53_env_n_430", align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$fundef_53_cloval_427", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_52", align 8 + %"$$retval_52_432" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_52", align 8 + ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_52_432" } -define internal %Uint32 @"$fundef_57"(%"$$fundef_57_env_115"* %0, %Uint32 %1) { +define internal %Uint32 @"$fundef_49"(%"$$fundef_49_env_104"* %0, %Uint32 %1) { entry: - %"$$fundef_57_env_m_349" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %0, i32 0, i32 0 - %"$m_envload_350" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_m_349", align 8 + %"$$fundef_49_env_m_338" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %0, i32 0, i32 0 + %"$m_envload_339" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_49_env_m_338", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_350", { i8*, i8* }** %m, align 8 - %"$$fundef_57_env_n_351" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %0, i32 0, i32 1 - %"$n_envload_352" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_n_351", align 8 + store { i8*, i8* }* %"$m_envload_339", { i8*, i8* }** %m, align 8 + %"$$fundef_49_env_n_340" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %0, i32 0, i32 1 + %"$n_envload_341" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_49_env_n_340", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_352", { i8*, i8* }** %n, align 8 - %"$$fundef_57_env_s_353" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %0, i32 0, i32 2 - %"$s_envload_354" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_57_env_s_353", align 8 + store { i8*, i8* }* %"$n_envload_341", { i8*, i8* }** %n, align 8 + %"$$fundef_49_env_s_342" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %0, i32 0, i32 2 + %"$s_envload_343" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_49_env_s_342", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_354", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$retval_58" = alloca %Uint32, align 8 - %"$gasrem_355" = load i64, i64* @_gasrem, align 8 - %"$gascmp_356" = icmp ugt i64 1, %"$gasrem_355" - br i1 %"$gascmp_356", label %"$out_of_gas_357", label %"$have_gas_358" + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_343", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$retval_50" = alloca %Uint32, align 8 + %"$gasrem_344" = load i64, i64* @_gasrem, align 8 + %"$gascmp_345" = icmp ugt i64 1, %"$gasrem_344" + br i1 %"$gascmp_345", label %"$out_of_gas_346", label %"$have_gas_347" -"$out_of_gas_357": ; preds = %entry +"$out_of_gas_346": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_358" + br label %"$have_gas_347" -"$have_gas_358": ; preds = %"$out_of_gas_357", %entry - %"$consume_359" = sub i64 %"$gasrem_355", 1 - store i64 %"$consume_359", i64* @_gasrem, align 8 +"$have_gas_347": ; preds = %"$out_of_gas_346", %entry + %"$consume_348" = sub i64 %"$gasrem_344", 1 + store i64 %"$consume_348", i64* @_gasrem, align 8 %mX = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_360" = load i64, i64* @_gasrem, align 8 - %"$gascmp_361" = icmp ugt i64 1, %"$gasrem_360" - br i1 %"$gascmp_361", label %"$out_of_gas_362", label %"$have_gas_363" - -"$out_of_gas_362": ; preds = %"$have_gas_358" - call void @_out_of_gas() - br label %"$have_gas_363" - -"$have_gas_363": ; preds = %"$out_of_gas_362", %"$have_gas_358" - %"$consume_364" = sub i64 %"$gasrem_360", 1 - store i64 %"$consume_364", i64* @_gasrem, align 8 - %"$m_365" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - %"$m_366" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_365", i32 0 - %"$m_367" = bitcast { i8*, i8* }* %"$m_366" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$m_368" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$m_367", align 8 - %"$m_fptr_369" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_368", 0 - %"$m_envptr_370" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_368", 1 - %"$m_call_371" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_fptr_369"(i8* %"$m_envptr_370") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_call_371", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %mX, align 8 - %"$gasrem_372" = load i64, i64* @_gasrem, align 8 - %"$gascmp_373" = icmp ugt i64 1, %"$gasrem_372" - br i1 %"$gascmp_373", label %"$out_of_gas_374", label %"$have_gas_375" - -"$out_of_gas_374": ; preds = %"$have_gas_363" - call void @_out_of_gas() - br label %"$have_gas_375" - -"$have_gas_375": ; preds = %"$out_of_gas_374", %"$have_gas_363" - %"$consume_376" = sub i64 %"$gasrem_372", 1 - store i64 %"$consume_376", i64* @_gasrem, align 8 + %"$gasrem_349" = load i64, i64* @_gasrem, align 8 + %"$gascmp_350" = icmp ugt i64 1, %"$gasrem_349" + br i1 %"$gascmp_350", label %"$out_of_gas_351", label %"$have_gas_352" + +"$out_of_gas_351": ; preds = %"$have_gas_347" + call void @_out_of_gas() + br label %"$have_gas_352" + +"$have_gas_352": ; preds = %"$out_of_gas_351", %"$have_gas_347" + %"$consume_353" = sub i64 %"$gasrem_349", 1 + store i64 %"$consume_353", i64* @_gasrem, align 8 + %"$m_354" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + %"$m_355" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$m_354", i32 0 + %"$m_356" = bitcast { i8*, i8* }* %"$m_355" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$m_357" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$m_356", align 8 + %"$m_fptr_358" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_357", 0 + %"$m_envptr_359" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$m_357", 1 + %"$m_call_360" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_fptr_358"(i8* %"$m_envptr_359") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_call_360", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %mX, align 8 + %"$gasrem_361" = load i64, i64* @_gasrem, align 8 + %"$gascmp_362" = icmp ugt i64 1, %"$gasrem_361" + br i1 %"$gascmp_362", label %"$out_of_gas_363", label %"$have_gas_364" + +"$out_of_gas_363": ; preds = %"$have_gas_352" + call void @_out_of_gas() + br label %"$have_gas_364" + +"$have_gas_364": ; preds = %"$out_of_gas_363", %"$have_gas_352" + %"$consume_365" = sub i64 %"$gasrem_361", 1 + store i64 %"$consume_365", i64* @_gasrem, align 8 %nX = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_377" = load i64, i64* @_gasrem, align 8 - %"$gascmp_378" = icmp ugt i64 1, %"$gasrem_377" - br i1 %"$gascmp_378", label %"$out_of_gas_379", label %"$have_gas_380" - -"$out_of_gas_379": ; preds = %"$have_gas_375" - call void @_out_of_gas() - br label %"$have_gas_380" - -"$have_gas_380": ; preds = %"$out_of_gas_379", %"$have_gas_375" - %"$consume_381" = sub i64 %"$gasrem_377", 1 - store i64 %"$consume_381", i64* @_gasrem, align 8 - %"$n_382" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - %"$n_383" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_382", i32 0 - %"$n_384" = bitcast { i8*, i8* }* %"$n_383" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$n_385" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_384", align 8 - %"$n_fptr_386" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_385", 0 - %"$n_envptr_387" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_385", 1 - %"$n_call_388" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_386"(i8* %"$n_envptr_387") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_388", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %nX, align 8 - %"$gasrem_389" = load i64, i64* @_gasrem, align 8 - %"$gascmp_390" = icmp ugt i64 1, %"$gasrem_389" - br i1 %"$gascmp_390", label %"$out_of_gas_391", label %"$have_gas_392" - -"$out_of_gas_391": ; preds = %"$have_gas_380" - call void @_out_of_gas() - br label %"$have_gas_392" - -"$have_gas_392": ; preds = %"$out_of_gas_391", %"$have_gas_380" - %"$consume_393" = sub i64 %"$gasrem_389", 1 - store i64 %"$consume_393", i64* @_gasrem, align 8 + %"$gasrem_366" = load i64, i64* @_gasrem, align 8 + %"$gascmp_367" = icmp ugt i64 1, %"$gasrem_366" + br i1 %"$gascmp_367", label %"$out_of_gas_368", label %"$have_gas_369" + +"$out_of_gas_368": ; preds = %"$have_gas_364" + call void @_out_of_gas() + br label %"$have_gas_369" + +"$have_gas_369": ; preds = %"$out_of_gas_368", %"$have_gas_364" + %"$consume_370" = sub i64 %"$gasrem_366", 1 + store i64 %"$consume_370", i64* @_gasrem, align 8 + %"$n_371" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + %"$n_372" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$n_371", i32 0 + %"$n_373" = bitcast { i8*, i8* }* %"$n_372" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$n_374" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$n_373", align 8 + %"$n_fptr_375" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_374", 0 + %"$n_envptr_376" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$n_374", 1 + %"$n_call_377" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_375"(i8* %"$n_envptr_376") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_377", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %nX, align 8 + %"$gasrem_378" = load i64, i64* @_gasrem, align 8 + %"$gascmp_379" = icmp ugt i64 1, %"$gasrem_378" + br i1 %"$gascmp_379", label %"$out_of_gas_380", label %"$have_gas_381" + +"$out_of_gas_380": ; preds = %"$have_gas_369" + call void @_out_of_gas() + br label %"$have_gas_381" + +"$have_gas_381": ; preds = %"$out_of_gas_380", %"$have_gas_369" + %"$consume_382" = sub i64 %"$gasrem_378", 1 + store i64 %"$consume_382", i64* @_gasrem, align 8 %nXsz = alloca %Uint32, align 8 - %"$gasrem_394" = load i64, i64* @_gasrem, align 8 - %"$gascmp_395" = icmp ugt i64 1, %"$gasrem_394" - br i1 %"$gascmp_395", label %"$out_of_gas_396", label %"$have_gas_397" + %"$gasrem_383" = load i64, i64* @_gasrem, align 8 + %"$gascmp_384" = icmp ugt i64 1, %"$gasrem_383" + br i1 %"$gascmp_384", label %"$out_of_gas_385", label %"$have_gas_386" -"$out_of_gas_396": ; preds = %"$have_gas_392" +"$out_of_gas_385": ; preds = %"$have_gas_381" call void @_out_of_gas() - br label %"$have_gas_397" + br label %"$have_gas_386" -"$have_gas_397": ; preds = %"$out_of_gas_396", %"$have_gas_392" - %"$consume_398" = sub i64 %"$gasrem_394", 1 - store i64 %"$consume_398", i64* @_gasrem, align 8 +"$have_gas_386": ; preds = %"$out_of_gas_385", %"$have_gas_381" + %"$consume_387" = sub i64 %"$gasrem_383", 1 + store i64 %"$consume_387", i64* @_gasrem, align 8 %"$nX_2" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$nX_399" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %nX, align 8 - %"$nX_fptr_400" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_399", 0 - %"$nX_envptr_401" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_399", 1 - %"$s_402" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$nX_call_403" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_fptr_400"(i8* %"$nX_envptr_401", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_402") - store { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_call_403", { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_2", align 8 + %"$nX_388" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %nX, align 8 + %"$nX_fptr_389" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_388", 0 + %"$nX_envptr_390" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$nX_388", 1 + %"$s_391" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$nX_call_392" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_fptr_389"(i8* %"$nX_envptr_390", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_391") + store { %Uint32 (i8*, %Uint32)*, i8* } %"$nX_call_392", { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_2", align 8 %"$nX_3" = alloca %Uint32, align 8 - %"$$nX_2_404" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_2", align 8 - %"$$nX_2_fptr_405" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_2_404", 0 - %"$$nX_2_envptr_406" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_2_404", 1 - %"$$nX_2_call_407" = call %Uint32 %"$$nX_2_fptr_405"(i8* %"$$nX_2_envptr_406", %Uint32 %1) - store %Uint32 %"$$nX_2_call_407", %Uint32* %"$nX_3", align 4 - %"$$nX_3_408" = load %Uint32, %Uint32* %"$nX_3", align 4 - store %Uint32 %"$$nX_3_408", %Uint32* %nXsz, align 4 - %"$gasrem_409" = load i64, i64* @_gasrem, align 8 - %"$gascmp_410" = icmp ugt i64 1, %"$gasrem_409" - br i1 %"$gascmp_410", label %"$out_of_gas_411", label %"$have_gas_412" - -"$out_of_gas_411": ; preds = %"$have_gas_397" - call void @_out_of_gas() - br label %"$have_gas_412" - -"$have_gas_412": ; preds = %"$out_of_gas_411", %"$have_gas_397" - %"$consume_413" = sub i64 %"$gasrem_409", 1 - store i64 %"$consume_413", i64* @_gasrem, align 8 + %"$$nX_2_393" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$nX_2", align 8 + %"$$nX_2_fptr_394" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_2_393", 0 + %"$$nX_2_envptr_395" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$nX_2_393", 1 + %"$$nX_2_call_396" = call %Uint32 %"$$nX_2_fptr_394"(i8* %"$$nX_2_envptr_395", %Uint32 %1) + store %Uint32 %"$$nX_2_call_396", %Uint32* %"$nX_3", align 4 + %"$$nX_3_397" = load %Uint32, %Uint32* %"$nX_3", align 4 + store %Uint32 %"$$nX_3_397", %Uint32* %nXsz, align 4 + %"$gasrem_398" = load i64, i64* @_gasrem, align 8 + %"$gascmp_399" = icmp ugt i64 1, %"$gasrem_398" + br i1 %"$gascmp_399", label %"$out_of_gas_400", label %"$have_gas_401" + +"$out_of_gas_400": ; preds = %"$have_gas_386" + call void @_out_of_gas() + br label %"$have_gas_401" + +"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_386" + %"$consume_402" = sub i64 %"$gasrem_398", 1 + store i64 %"$consume_402", i64* @_gasrem, align 8 %"$mX_4" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$mX_414" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %mX, align 8 - %"$mX_fptr_415" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_414", 0 - %"$mX_envptr_416" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_414", 1 - %"$s_417" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$mX_call_418" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_fptr_415"(i8* %"$mX_envptr_416", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_417") - store { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_call_418", { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_4", align 8 + %"$mX_403" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %mX, align 8 + %"$mX_fptr_404" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_403", 0 + %"$mX_envptr_405" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$mX_403", 1 + %"$s_406" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$mX_call_407" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_fptr_404"(i8* %"$mX_envptr_405", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_406") + store { %Uint32 (i8*, %Uint32)*, i8* } %"$mX_call_407", { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_4", align 8 %"$mX_5" = alloca %Uint32, align 8 - %"$$mX_4_419" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_4", align 8 - %"$$mX_4_fptr_420" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_4_419", 0 - %"$$mX_4_envptr_421" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_4_419", 1 - %"$nXsz_422" = load %Uint32, %Uint32* %nXsz, align 4 - %"$$mX_4_call_423" = call %Uint32 %"$$mX_4_fptr_420"(i8* %"$$mX_4_envptr_421", %Uint32 %"$nXsz_422") - store %Uint32 %"$$mX_4_call_423", %Uint32* %"$mX_5", align 4 - %"$$mX_5_424" = load %Uint32, %Uint32* %"$mX_5", align 4 - store %Uint32 %"$$mX_5_424", %Uint32* %"$retval_58", align 4 - %"$$retval_58_425" = load %Uint32, %Uint32* %"$retval_58", align 4 - ret %Uint32 %"$$retval_58_425" + %"$$mX_4_408" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$mX_4", align 8 + %"$$mX_4_fptr_409" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_4_408", 0 + %"$$mX_4_envptr_410" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$mX_4_408", 1 + %"$nXsz_411" = load %Uint32, %Uint32* %nXsz, align 4 + %"$$mX_4_call_412" = call %Uint32 %"$$mX_4_fptr_409"(i8* %"$$mX_4_envptr_410", %Uint32 %"$nXsz_411") + store %Uint32 %"$$mX_4_call_412", %Uint32* %"$mX_5", align 4 + %"$$mX_5_413" = load %Uint32, %Uint32* %"$mX_5", align 4 + store %Uint32 %"$$mX_5_413", %Uint32* %"$retval_50", align 4 + %"$$retval_50_414" = load %Uint32, %Uint32* %"$retval_50", align 4 + ret %Uint32 %"$$retval_50_414" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_55"(%"$$fundef_55_env_116"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_47"(%"$$fundef_47_env_105"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { entry: - %"$$fundef_55_env_m_330" = getelementptr inbounds %"$$fundef_55_env_116", %"$$fundef_55_env_116"* %0, i32 0, i32 0 - %"$m_envload_331" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_55_env_m_330", align 8 + %"$$fundef_47_env_m_319" = getelementptr inbounds %"$$fundef_47_env_105", %"$$fundef_47_env_105"* %0, i32 0, i32 0 + %"$m_envload_320" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_47_env_m_319", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_331", { i8*, i8* }** %m, align 8 - %"$$fundef_55_env_n_332" = getelementptr inbounds %"$$fundef_55_env_116", %"$$fundef_55_env_116"* %0, i32 0, i32 1 - %"$n_envload_333" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_55_env_n_332", align 8 + store { i8*, i8* }* %"$m_envload_320", { i8*, i8* }** %m, align 8 + %"$$fundef_47_env_n_321" = getelementptr inbounds %"$$fundef_47_env_105", %"$$fundef_47_env_105"* %0, i32 0, i32 1 + %"$n_envload_322" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_47_env_n_321", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_333", { i8*, i8* }** %n, align 8 - %"$retval_56" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_334" = load i64, i64* @_gasrem, align 8 - %"$gascmp_335" = icmp ugt i64 1, %"$gasrem_334" - br i1 %"$gascmp_335", label %"$out_of_gas_336", label %"$have_gas_337" - -"$out_of_gas_336": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_337" - -"$have_gas_337": ; preds = %"$out_of_gas_336", %entry - %"$consume_338" = sub i64 %"$gasrem_334", 1 - store i64 %"$consume_338", i64* @_gasrem, align 8 - %"$$fundef_57_envp_339_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_57_envp_339_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_339_load", i64 32) - %"$$fundef_57_envp_339" = bitcast i8* %"$$fundef_57_envp_339_salloc" to %"$$fundef_57_env_115"* - %"$$fundef_57_env_voidp_341" = bitcast %"$$fundef_57_env_115"* %"$$fundef_57_envp_339" to i8* - %"$$fundef_57_cloval_342" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_57_env_115"*, %Uint32)* @"$fundef_57" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_57_env_voidp_341", 1 - %"$$fundef_57_env_m_343" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %"$$fundef_57_envp_339", i32 0, i32 0 - %"$m_344" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_344", { i8*, i8* }** %"$$fundef_57_env_m_343", align 8 - %"$$fundef_57_env_n_345" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %"$$fundef_57_envp_339", i32 0, i32 1 - %"$n_346" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_346", { i8*, i8* }** %"$$fundef_57_env_n_345", align 8 - %"$$fundef_57_env_s_347" = getelementptr inbounds %"$$fundef_57_env_115", %"$$fundef_57_env_115"* %"$$fundef_57_envp_339", i32 0, i32 2 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_57_env_s_347", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_57_cloval_342", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_56", align 8 - %"$$retval_56_348" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_56", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_56_348" + store { i8*, i8* }* %"$n_envload_322", { i8*, i8* }** %n, align 8 + %"$retval_48" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_323" = load i64, i64* @_gasrem, align 8 + %"$gascmp_324" = icmp ugt i64 1, %"$gasrem_323" + br i1 %"$gascmp_324", label %"$out_of_gas_325", label %"$have_gas_326" + +"$out_of_gas_325": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_326" + +"$have_gas_326": ; preds = %"$out_of_gas_325", %entry + %"$consume_327" = sub i64 %"$gasrem_323", 1 + store i64 %"$consume_327", i64* @_gasrem, align 8 + %"$$fundef_49_envp_328_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_49_envp_328_salloc" = call i8* @_salloc(i8* %"$$fundef_49_envp_328_load", i64 32) + %"$$fundef_49_envp_328" = bitcast i8* %"$$fundef_49_envp_328_salloc" to %"$$fundef_49_env_104"* + %"$$fundef_49_env_voidp_330" = bitcast %"$$fundef_49_env_104"* %"$$fundef_49_envp_328" to i8* + %"$$fundef_49_cloval_331" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_49_env_104"*, %Uint32)* @"$fundef_49" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_49_env_voidp_330", 1 + %"$$fundef_49_env_m_332" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %"$$fundef_49_envp_328", i32 0, i32 0 + %"$m_333" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_333", { i8*, i8* }** %"$$fundef_49_env_m_332", align 8 + %"$$fundef_49_env_n_334" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %"$$fundef_49_envp_328", i32 0, i32 1 + %"$n_335" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_335", { i8*, i8* }** %"$$fundef_49_env_n_334", align 8 + %"$$fundef_49_env_s_336" = getelementptr inbounds %"$$fundef_49_env_104", %"$$fundef_49_env_104"* %"$$fundef_49_envp_328", i32 0, i32 2 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_49_env_s_336", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_49_cloval_331", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8 + %"$$retval_48_337" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_48_337" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_53"(%"$$fundef_53_env_117"* %0) { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_45"(%"$$fundef_45_env_106"* %0) { entry: - %"$$fundef_53_env_m_312" = getelementptr inbounds %"$$fundef_53_env_117", %"$$fundef_53_env_117"* %0, i32 0, i32 0 - %"$m_envload_313" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_53_env_m_312", align 8 + %"$$fundef_45_env_m_301" = getelementptr inbounds %"$$fundef_45_env_106", %"$$fundef_45_env_106"* %0, i32 0, i32 0 + %"$m_envload_302" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_45_env_m_301", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_313", { i8*, i8* }** %m, align 8 - %"$$fundef_53_env_n_314" = getelementptr inbounds %"$$fundef_53_env_117", %"$$fundef_53_env_117"* %0, i32 0, i32 1 - %"$n_envload_315" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_53_env_n_314", align 8 + store { i8*, i8* }* %"$m_envload_302", { i8*, i8* }** %m, align 8 + %"$$fundef_45_env_n_303" = getelementptr inbounds %"$$fundef_45_env_106", %"$$fundef_45_env_106"* %0, i32 0, i32 1 + %"$n_envload_304" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_45_env_n_303", align 8 %n = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$n_envload_315", { i8*, i8* }** %n, align 8 - %"$retval_54" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_316" = load i64, i64* @_gasrem, align 8 - %"$gascmp_317" = icmp ugt i64 1, %"$gasrem_316" - br i1 %"$gascmp_317", label %"$out_of_gas_318", label %"$have_gas_319" - -"$out_of_gas_318": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_319" - -"$have_gas_319": ; preds = %"$out_of_gas_318", %entry - %"$consume_320" = sub i64 %"$gasrem_316", 1 - store i64 %"$consume_320", i64* @_gasrem, align 8 - %"$$fundef_55_envp_321_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_55_envp_321_salloc" = call i8* @_salloc(i8* %"$$fundef_55_envp_321_load", i64 16) - %"$$fundef_55_envp_321" = bitcast i8* %"$$fundef_55_envp_321_salloc" to %"$$fundef_55_env_116"* - %"$$fundef_55_env_voidp_323" = bitcast %"$$fundef_55_env_116"* %"$$fundef_55_envp_321" to i8* - %"$$fundef_55_cloval_324" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_55_env_116"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_55" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_55_env_voidp_323", 1 - %"$$fundef_55_env_m_325" = getelementptr inbounds %"$$fundef_55_env_116", %"$$fundef_55_env_116"* %"$$fundef_55_envp_321", i32 0, i32 0 - %"$m_326" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_326", { i8*, i8* }** %"$$fundef_55_env_m_325", align 8 - %"$$fundef_55_env_n_327" = getelementptr inbounds %"$$fundef_55_env_116", %"$$fundef_55_env_116"* %"$$fundef_55_envp_321", i32 0, i32 1 - %"$n_328" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 - store { i8*, i8* }* %"$n_328", { i8*, i8* }** %"$$fundef_55_env_n_327", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_55_cloval_324", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_54", align 8 - %"$$retval_54_329" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_54", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_54_329" + store { i8*, i8* }* %"$n_envload_304", { i8*, i8* }** %n, align 8 + %"$retval_46" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_305" = load i64, i64* @_gasrem, align 8 + %"$gascmp_306" = icmp ugt i64 1, %"$gasrem_305" + br i1 %"$gascmp_306", label %"$out_of_gas_307", label %"$have_gas_308" + +"$out_of_gas_307": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_308" + +"$have_gas_308": ; preds = %"$out_of_gas_307", %entry + %"$consume_309" = sub i64 %"$gasrem_305", 1 + store i64 %"$consume_309", i64* @_gasrem, align 8 + %"$$fundef_47_envp_310_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_47_envp_310_salloc" = call i8* @_salloc(i8* %"$$fundef_47_envp_310_load", i64 16) + %"$$fundef_47_envp_310" = bitcast i8* %"$$fundef_47_envp_310_salloc" to %"$$fundef_47_env_105"* + %"$$fundef_47_env_voidp_312" = bitcast %"$$fundef_47_env_105"* %"$$fundef_47_envp_310" to i8* + %"$$fundef_47_cloval_313" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_47_env_105"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_47" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_47_env_voidp_312", 1 + %"$$fundef_47_env_m_314" = getelementptr inbounds %"$$fundef_47_env_105", %"$$fundef_47_env_105"* %"$$fundef_47_envp_310", i32 0, i32 0 + %"$m_315" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_315", { i8*, i8* }** %"$$fundef_47_env_m_314", align 8 + %"$$fundef_47_env_n_316" = getelementptr inbounds %"$$fundef_47_env_105", %"$$fundef_47_env_105"* %"$$fundef_47_envp_310", i32 0, i32 1 + %"$n_317" = load { i8*, i8* }*, { i8*, i8* }** %n, align 8 + store { i8*, i8* }* %"$n_317", { i8*, i8* }** %"$$fundef_47_env_n_316", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_47_cloval_313", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_46", align 8 + %"$$retval_46_318" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_46", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_46_318" } -define internal { i8*, i8* }* @"$fundef_51"(%"$$fundef_51_env_118"* %0, { i8*, i8* }* %1) { +define internal { i8*, i8* }* @"$fundef_43"(%"$$fundef_43_env_107"* %0, { i8*, i8* }* %1) { entry: - %"$$fundef_51_env_m_289" = getelementptr inbounds %"$$fundef_51_env_118", %"$$fundef_51_env_118"* %0, i32 0, i32 0 - %"$m_envload_290" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_51_env_m_289", align 8 + %"$$fundef_43_env_m_278" = getelementptr inbounds %"$$fundef_43_env_107", %"$$fundef_43_env_107"* %0, i32 0, i32 0 + %"$m_envload_279" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_43_env_m_278", align 8 %m = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$m_envload_290", { i8*, i8* }** %m, align 8 - %"$retval_52" = alloca { i8*, i8* }*, align 8 - %"$gasrem_291" = load i64, i64* @_gasrem, align 8 - %"$gascmp_292" = icmp ugt i64 1, %"$gasrem_291" - br i1 %"$gascmp_292", label %"$out_of_gas_293", label %"$have_gas_294" - -"$out_of_gas_293": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_294" - -"$have_gas_294": ; preds = %"$out_of_gas_293", %entry - %"$consume_295" = sub i64 %"$gasrem_291", 1 - store i64 %"$consume_295", i64* @_gasrem, align 8 - %"$$fundef_53_envp_296_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_53_envp_296_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_296_load", i64 16) - %"$$fundef_53_envp_296" = bitcast i8* %"$$fundef_53_envp_296_salloc" to %"$$fundef_53_env_117"* - %"$$fundef_53_env_voidp_298" = bitcast %"$$fundef_53_env_117"* %"$$fundef_53_envp_296" to i8* - %"$$fundef_53_cloval_299" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_53_env_117"*)* @"$fundef_53" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_53_env_voidp_298", 1 - %"$$fundef_53_env_m_300" = getelementptr inbounds %"$$fundef_53_env_117", %"$$fundef_53_env_117"* %"$$fundef_53_envp_296", i32 0, i32 0 - %"$m_301" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 - store { i8*, i8* }* %"$m_301", { i8*, i8* }** %"$$fundef_53_env_m_300", align 8 - %"$$fundef_53_env_n_302" = getelementptr inbounds %"$$fundef_53_env_117", %"$$fundef_53_env_117"* %"$$fundef_53_envp_296", i32 0, i32 1 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_53_env_n_302", align 8 - %"$$fundef_59_env_voidp_304" = bitcast %"$$fundef_53_env_117"* %"$$fundef_53_envp_296" to i8* - %"$$fundef_59_cloval_305" = insertvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_59_env_114"*)* @"$fundef_59" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_59_env_voidp_304", 1 - %"$dyndisp_table_306_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_306_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_306_salloc_load", i64 32) - %"$dyndisp_table_306_salloc" = bitcast i8* %"$dyndisp_table_306_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_306" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_306_salloc" to { i8*, i8* }* - %"$dyndisp_gep_307" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_306", i32 0 - %"$dyndisp_pcast_308" = bitcast { i8*, i8* }* %"$dyndisp_gep_307" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_53_cloval_299", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_308", align 8 - %"$dyndisp_gep_309" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_306", i32 1 - %"$dyndisp_pcast_310" = bitcast { i8*, i8* }* %"$dyndisp_gep_309" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_59_cloval_305", { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_310", align 8 - store { i8*, i8* }* %"$dyndisp_table_306", { i8*, i8* }** %"$retval_52", align 8 - %"$$retval_52_311" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_52", align 8 - ret { i8*, i8* }* %"$$retval_52_311" + store { i8*, i8* }* %"$m_envload_279", { i8*, i8* }** %m, align 8 + %"$retval_44" = alloca { i8*, i8* }*, align 8 + %"$gasrem_280" = load i64, i64* @_gasrem, align 8 + %"$gascmp_281" = icmp ugt i64 1, %"$gasrem_280" + br i1 %"$gascmp_281", label %"$out_of_gas_282", label %"$have_gas_283" + +"$out_of_gas_282": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_283" + +"$have_gas_283": ; preds = %"$out_of_gas_282", %entry + %"$consume_284" = sub i64 %"$gasrem_280", 1 + store i64 %"$consume_284", i64* @_gasrem, align 8 + %"$$fundef_45_envp_285_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_45_envp_285_salloc" = call i8* @_salloc(i8* %"$$fundef_45_envp_285_load", i64 16) + %"$$fundef_45_envp_285" = bitcast i8* %"$$fundef_45_envp_285_salloc" to %"$$fundef_45_env_106"* + %"$$fundef_45_env_voidp_287" = bitcast %"$$fundef_45_env_106"* %"$$fundef_45_envp_285" to i8* + %"$$fundef_45_cloval_288" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_45_env_106"*)* @"$fundef_45" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_45_env_voidp_287", 1 + %"$$fundef_45_env_m_289" = getelementptr inbounds %"$$fundef_45_env_106", %"$$fundef_45_env_106"* %"$$fundef_45_envp_285", i32 0, i32 0 + %"$m_290" = load { i8*, i8* }*, { i8*, i8* }** %m, align 8 + store { i8*, i8* }* %"$m_290", { i8*, i8* }** %"$$fundef_45_env_m_289", align 8 + %"$$fundef_45_env_n_291" = getelementptr inbounds %"$$fundef_45_env_106", %"$$fundef_45_env_106"* %"$$fundef_45_envp_285", i32 0, i32 1 + store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_45_env_n_291", align 8 + %"$$fundef_51_env_voidp_293" = bitcast %"$$fundef_45_env_106"* %"$$fundef_45_envp_285" to i8* + %"$$fundef_51_cloval_294" = insertvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_51_env_103"*)* @"$fundef_51" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_51_env_voidp_293", 1 + %"$dyndisp_table_295_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_295_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_295_salloc_load", i64 32) + %"$dyndisp_table_295_salloc" = bitcast i8* %"$dyndisp_table_295_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_295" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_295_salloc" to { i8*, i8* }* + %"$dyndisp_gep_296" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_295", i32 0 + %"$dyndisp_pcast_297" = bitcast { i8*, i8* }* %"$dyndisp_gep_296" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_45_cloval_288", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_297", align 8 + %"$dyndisp_gep_298" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_295", i32 1 + %"$dyndisp_pcast_299" = bitcast { i8*, i8* }* %"$dyndisp_gep_298" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } %"$$fundef_51_cloval_294", { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_299", align 8 + store { i8*, i8* }* %"$dyndisp_table_295", { i8*, i8* }** %"$retval_44", align 8 + %"$$retval_44_300" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_44", align 8 + ret { i8*, i8* }* %"$$retval_44_300" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_49"(%"$$fundef_49_env_119"* %0, { i8*, i8* }* %1) { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_41"(%"$$fundef_41_env_108"* %0, { i8*, i8* }* %1) { entry: - %"$retval_50" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_278" = load i64, i64* @_gasrem, align 8 - %"$gascmp_279" = icmp ugt i64 1, %"$gasrem_278" - br i1 %"$gascmp_279", label %"$out_of_gas_280", label %"$have_gas_281" - -"$out_of_gas_280": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_281" - -"$have_gas_281": ; preds = %"$out_of_gas_280", %entry - %"$consume_282" = sub i64 %"$gasrem_278", 1 - store i64 %"$consume_282", i64* @_gasrem, align 8 - %"$$fundef_51_envp_283_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_51_envp_283_salloc" = call i8* @_salloc(i8* %"$$fundef_51_envp_283_load", i64 8) - %"$$fundef_51_envp_283" = bitcast i8* %"$$fundef_51_envp_283_salloc" to %"$$fundef_51_env_118"* - %"$$fundef_51_env_voidp_285" = bitcast %"$$fundef_51_env_118"* %"$$fundef_51_envp_283" to i8* - %"$$fundef_51_cloval_286" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_51_env_118"*, { i8*, i8* }*)* @"$fundef_51" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_51_env_voidp_285", 1 - %"$$fundef_51_env_m_287" = getelementptr inbounds %"$$fundef_51_env_118", %"$$fundef_51_env_118"* %"$$fundef_51_envp_283", i32 0, i32 0 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_51_env_m_287", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_51_cloval_286", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_50", align 8 - %"$$retval_50_288" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_50", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_50_288" + %"$retval_42" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_267" = load i64, i64* @_gasrem, align 8 + %"$gascmp_268" = icmp ugt i64 1, %"$gasrem_267" + br i1 %"$gascmp_268", label %"$out_of_gas_269", label %"$have_gas_270" + +"$out_of_gas_269": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_270" + +"$have_gas_270": ; preds = %"$out_of_gas_269", %entry + %"$consume_271" = sub i64 %"$gasrem_267", 1 + store i64 %"$consume_271", i64* @_gasrem, align 8 + %"$$fundef_43_envp_272_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_43_envp_272_salloc" = call i8* @_salloc(i8* %"$$fundef_43_envp_272_load", i64 8) + %"$$fundef_43_envp_272" = bitcast i8* %"$$fundef_43_envp_272_salloc" to %"$$fundef_43_env_107"* + %"$$fundef_43_env_voidp_274" = bitcast %"$$fundef_43_env_107"* %"$$fundef_43_envp_272" to i8* + %"$$fundef_43_cloval_275" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_43_env_107"*, { i8*, i8* }*)* @"$fundef_43" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_43_env_voidp_274", 1 + %"$$fundef_43_env_m_276" = getelementptr inbounds %"$$fundef_43_env_107", %"$$fundef_43_env_107"* %"$$fundef_43_envp_272", i32 0, i32 0 + store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_43_env_m_276", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_43_cloval_275", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_42", align 8 + %"$$retval_42_277" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_42", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_42_277" } -define internal { i8*, i8* }* @"$fundef_47"(%"$$fundef_47_env_120"* %0, { i8*, i8* }* %1) { +define internal { i8*, i8* }* @"$fundef_39"(%"$$fundef_39_env_109"* %0, { i8*, i8* }* %1) { entry: - %"$$fundef_47_env_s_249" = getelementptr inbounds %"$$fundef_47_env_120", %"$$fundef_47_env_120"* %0, i32 0, i32 0 - %"$s_envload_250" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_47_env_s_249", align 8 + %"$$fundef_39_env_s_238" = getelementptr inbounds %"$$fundef_39_env_109", %"$$fundef_39_env_109"* %0, i32 0, i32 0 + %"$s_envload_239" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_39_env_s_238", align 8 %s = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_250", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$retval_48" = alloca { i8*, i8* }*, align 8 - %"$gasrem_251" = load i64, i64* @_gasrem, align 8 - %"$gascmp_252" = icmp ugt i64 1, %"$gasrem_251" - br i1 %"$gascmp_252", label %"$out_of_gas_253", label %"$have_gas_254" + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_envload_239", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$retval_40" = alloca { i8*, i8* }*, align 8 + %"$gasrem_240" = load i64, i64* @_gasrem, align 8 + %"$gascmp_241" = icmp ugt i64 1, %"$gasrem_240" + br i1 %"$gascmp_241", label %"$out_of_gas_242", label %"$have_gas_243" -"$out_of_gas_253": ; preds = %entry +"$out_of_gas_242": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_254" + br label %"$have_gas_243" -"$have_gas_254": ; preds = %"$out_of_gas_253", %entry - %"$consume_255" = sub i64 %"$gasrem_251", 1 - store i64 %"$consume_255", i64* @_gasrem, align 8 +"$have_gas_243": ; preds = %"$out_of_gas_242", %entry + %"$consume_244" = sub i64 %"$gasrem_240", 1 + store i64 %"$consume_244", i64* @_gasrem, align 8 %sz = alloca { i8*, i8* }*, align 8 - %"$gasrem_256" = load i64, i64* @_gasrem, align 8 - %"$gascmp_257" = icmp ugt i64 1, %"$gasrem_256" - br i1 %"$gascmp_257", label %"$out_of_gas_258", label %"$have_gas_259" + %"$gasrem_245" = load i64, i64* @_gasrem, align 8 + %"$gascmp_246" = icmp ugt i64 1, %"$gasrem_245" + br i1 %"$gascmp_246", label %"$out_of_gas_247", label %"$have_gas_248" -"$out_of_gas_258": ; preds = %"$have_gas_254" +"$out_of_gas_247": ; preds = %"$have_gas_243" call void @_out_of_gas() - br label %"$have_gas_259" + br label %"$have_gas_248" -"$have_gas_259": ; preds = %"$out_of_gas_258", %"$have_gas_254" - %"$consume_260" = sub i64 %"$gasrem_256", 1 - store i64 %"$consume_260", i64* @_gasrem, align 8 +"$have_gas_248": ; preds = %"$out_of_gas_247", %"$have_gas_243" + %"$consume_249" = sub i64 %"$gasrem_245", 1 + store i64 %"$consume_249", i64* @_gasrem, align 8 %"$s_0" = alloca { i8*, i8* }*, align 8 - %"$s_261" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$s_fptr_262" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_261", 0 - %"$s_envptr_263" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_261", 1 - %"$s_call_264" = call { i8*, i8* }* %"$s_fptr_262"(i8* %"$s_envptr_263", { i8*, i8* }* %1) - store { i8*, i8* }* %"$s_call_264", { i8*, i8* }** %"$s_0", align 8 - %"$$s_0_265" = load { i8*, i8* }*, { i8*, i8* }** %"$s_0", align 8 - store { i8*, i8* }* %"$$s_0_265", { i8*, i8* }** %sz, align 8 - %"$gasrem_266" = load i64, i64* @_gasrem, align 8 - %"$gascmp_267" = icmp ugt i64 1, %"$gasrem_266" - br i1 %"$gascmp_267", label %"$out_of_gas_268", label %"$have_gas_269" - -"$out_of_gas_268": ; preds = %"$have_gas_259" - call void @_out_of_gas() - br label %"$have_gas_269" - -"$have_gas_269": ; preds = %"$out_of_gas_268", %"$have_gas_259" - %"$consume_270" = sub i64 %"$gasrem_266", 1 - store i64 %"$consume_270", i64* @_gasrem, align 8 + %"$s_250" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$s_fptr_251" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_250", 0 + %"$s_envptr_252" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_250", 1 + %"$s_call_253" = call { i8*, i8* }* %"$s_fptr_251"(i8* %"$s_envptr_252", { i8*, i8* }* %1) + store { i8*, i8* }* %"$s_call_253", { i8*, i8* }** %"$s_0", align 8 + %"$$s_0_254" = load { i8*, i8* }*, { i8*, i8* }** %"$s_0", align 8 + store { i8*, i8* }* %"$$s_0_254", { i8*, i8* }** %sz, align 8 + %"$gasrem_255" = load i64, i64* @_gasrem, align 8 + %"$gascmp_256" = icmp ugt i64 1, %"$gasrem_255" + br i1 %"$gascmp_256", label %"$out_of_gas_257", label %"$have_gas_258" + +"$out_of_gas_257": ; preds = %"$have_gas_248" + call void @_out_of_gas() + br label %"$have_gas_258" + +"$have_gas_258": ; preds = %"$out_of_gas_257", %"$have_gas_248" + %"$consume_259" = sub i64 %"$gasrem_255", 1 + store i64 %"$consume_259", i64* @_gasrem, align 8 %"$s_1" = alloca { i8*, i8* }*, align 8 - %"$s_271" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 - %"$s_fptr_272" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_271", 0 - %"$s_envptr_273" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_271", 1 - %"$sz_274" = load { i8*, i8* }*, { i8*, i8* }** %sz, align 8 - %"$s_call_275" = call { i8*, i8* }* %"$s_fptr_272"(i8* %"$s_envptr_273", { i8*, i8* }* %"$sz_274") - store { i8*, i8* }* %"$s_call_275", { i8*, i8* }** %"$s_1", align 8 - %"$$s_1_276" = load { i8*, i8* }*, { i8*, i8* }** %"$s_1", align 8 - store { i8*, i8* }* %"$$s_1_276", { i8*, i8* }** %"$retval_48", align 8 - %"$$retval_48_277" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_48", align 8 - ret { i8*, i8* }* %"$$retval_48_277" + %"$s_260" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %s, align 8 + %"$s_fptr_261" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_260", 0 + %"$s_envptr_262" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$s_260", 1 + %"$sz_263" = load { i8*, i8* }*, { i8*, i8* }** %sz, align 8 + %"$s_call_264" = call { i8*, i8* }* %"$s_fptr_261"(i8* %"$s_envptr_262", { i8*, i8* }* %"$sz_263") + store { i8*, i8* }* %"$s_call_264", { i8*, i8* }** %"$s_1", align 8 + %"$$s_1_265" = load { i8*, i8* }*, { i8*, i8* }** %"$s_1", align 8 + store { i8*, i8* }* %"$$s_1_265", { i8*, i8* }** %"$retval_40", align 8 + %"$$retval_40_266" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_40", align 8 + ret { i8*, i8* }* %"$$retval_40_266" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_45"(%"$$fundef_45_env_121"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_37"(%"$$fundef_37_env_110"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) { entry: - %"$retval_46" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_238" = load i64, i64* @_gasrem, align 8 - %"$gascmp_239" = icmp ugt i64 1, %"$gasrem_238" - br i1 %"$gascmp_239", label %"$out_of_gas_240", label %"$have_gas_241" - -"$out_of_gas_240": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_241" - -"$have_gas_241": ; preds = %"$out_of_gas_240", %entry - %"$consume_242" = sub i64 %"$gasrem_238", 1 - store i64 %"$consume_242", i64* @_gasrem, align 8 - %"$$fundef_47_envp_243_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_47_envp_243_salloc" = call i8* @_salloc(i8* %"$$fundef_47_envp_243_load", i64 16) - %"$$fundef_47_envp_243" = bitcast i8* %"$$fundef_47_envp_243_salloc" to %"$$fundef_47_env_120"* - %"$$fundef_47_env_voidp_245" = bitcast %"$$fundef_47_env_120"* %"$$fundef_47_envp_243" to i8* - %"$$fundef_47_cloval_246" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_47_env_120"*, { i8*, i8* }*)* @"$fundef_47" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_47_env_voidp_245", 1 - %"$$fundef_47_env_s_247" = getelementptr inbounds %"$$fundef_47_env_120", %"$$fundef_47_env_120"* %"$$fundef_47_envp_243", i32 0, i32 0 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_47_env_s_247", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_47_cloval_246", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_46", align 8 - %"$$retval_46_248" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_46", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_46_248" + %"$retval_38" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_228" = icmp ugt i64 1, %"$gasrem_227" + br i1 %"$gascmp_228", label %"$out_of_gas_229", label %"$have_gas_230" + +"$out_of_gas_229": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_230" + +"$have_gas_230": ; preds = %"$out_of_gas_229", %entry + %"$consume_231" = sub i64 %"$gasrem_227", 1 + store i64 %"$consume_231", i64* @_gasrem, align 8 + %"$$fundef_39_envp_232_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_39_envp_232_salloc" = call i8* @_salloc(i8* %"$$fundef_39_envp_232_load", i64 16) + %"$$fundef_39_envp_232" = bitcast i8* %"$$fundef_39_envp_232_salloc" to %"$$fundef_39_env_109"* + %"$$fundef_39_env_voidp_234" = bitcast %"$$fundef_39_env_109"* %"$$fundef_39_envp_232" to i8* + %"$$fundef_39_cloval_235" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_39_env_109"*, { i8*, i8* }*)* @"$fundef_39" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_39_env_voidp_234", 1 + %"$$fundef_39_env_s_236" = getelementptr inbounds %"$$fundef_39_env_109", %"$$fundef_39_env_109"* %"$$fundef_39_envp_232", i32 0, i32 0 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_39_env_s_236", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_39_cloval_235", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_38", align 8 + %"$$retval_38_237" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_38", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_38_237" } -define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_43"(%"$$fundef_43_env_122"* %0) { +define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_35"(%"$$fundef_35_env_111"* %0) { entry: - %"$retval_44" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_229" = load i64, i64* @_gasrem, align 8 - %"$gascmp_230" = icmp ugt i64 1, %"$gasrem_229" - br i1 %"$gascmp_230", label %"$out_of_gas_231", label %"$have_gas_232" + %"$retval_36" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 + %"$gasrem_218" = load i64, i64* @_gasrem, align 8 + %"$gascmp_219" = icmp ugt i64 1, %"$gasrem_218" + br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" -"$out_of_gas_231": ; preds = %entry +"$out_of_gas_220": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_232" + br label %"$have_gas_221" -"$have_gas_232": ; preds = %"$out_of_gas_231", %entry - %"$consume_233" = sub i64 %"$gasrem_229", 1 - store i64 %"$consume_233", i64* @_gasrem, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_45_env_121"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_45" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_44", align 8 - %"$$retval_44_237" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_44", align 8 - ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_44_237" +"$have_gas_221": ; preds = %"$out_of_gas_220", %entry + %"$consume_222" = sub i64 %"$gasrem_218", 1 + store i64 %"$consume_222", i64* @_gasrem, align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_37_env_110"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_37" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_36", align 8 + %"$$retval_36_226" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_36", align 8 + ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_36_226" } -define internal %Uint32 @"$fundef_41"(%"$$fundef_41_env_123"* %0, %Uint32 %1) { +define internal %Uint32 @"$fundef_33"(%"$$fundef_33_env_112"* %0, %Uint32 %1) { entry: - %"$$fundef_41_env_s_200" = getelementptr inbounds %"$$fundef_41_env_123", %"$$fundef_41_env_123"* %0, i32 0, i32 0 - %"$s_envload_201" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_41_env_s_200", align 8 + %"$$fundef_33_env_s_189" = getelementptr inbounds %"$$fundef_33_env_112", %"$$fundef_33_env_112"* %0, i32 0, i32 0 + %"$s_envload_190" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_33_env_s_189", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_201", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$retval_42" = alloca %Uint32, align 8 - %"$gasrem_202" = load i64, i64* @_gasrem, align 8 - %"$gascmp_203" = icmp ugt i64 1, %"$gasrem_202" - br i1 %"$gascmp_203", label %"$out_of_gas_204", label %"$have_gas_205" + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_190", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$retval_34" = alloca %Uint32, align 8 + %"$gasrem_191" = load i64, i64* @_gasrem, align 8 + %"$gascmp_192" = icmp ugt i64 1, %"$gasrem_191" + br i1 %"$gascmp_192", label %"$out_of_gas_193", label %"$have_gas_194" -"$out_of_gas_204": ; preds = %entry +"$out_of_gas_193": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_205" + br label %"$have_gas_194" -"$have_gas_205": ; preds = %"$out_of_gas_204", %entry - %"$consume_206" = sub i64 %"$gasrem_202", 1 - store i64 %"$consume_206", i64* @_gasrem, align 8 +"$have_gas_194": ; preds = %"$out_of_gas_193", %entry + %"$consume_195" = sub i64 %"$gasrem_191", 1 + store i64 %"$consume_195", i64* @_gasrem, align 8 %sz = alloca %Uint32, align 8 - %"$gasrem_207" = load i64, i64* @_gasrem, align 8 - %"$gascmp_208" = icmp ugt i64 1, %"$gasrem_207" - br i1 %"$gascmp_208", label %"$out_of_gas_209", label %"$have_gas_210" + %"$gasrem_196" = load i64, i64* @_gasrem, align 8 + %"$gascmp_197" = icmp ugt i64 1, %"$gasrem_196" + br i1 %"$gascmp_197", label %"$out_of_gas_198", label %"$have_gas_199" -"$out_of_gas_209": ; preds = %"$have_gas_205" +"$out_of_gas_198": ; preds = %"$have_gas_194" call void @_out_of_gas() - br label %"$have_gas_210" + br label %"$have_gas_199" -"$have_gas_210": ; preds = %"$out_of_gas_209", %"$have_gas_205" - %"$consume_211" = sub i64 %"$gasrem_207", 1 - store i64 %"$consume_211", i64* @_gasrem, align 8 +"$have_gas_199": ; preds = %"$out_of_gas_198", %"$have_gas_194" + %"$consume_200" = sub i64 %"$gasrem_196", 1 + store i64 %"$consume_200", i64* @_gasrem, align 8 %"$s_0" = alloca %Uint32, align 8 - %"$s_212" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_213" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_212", 0 - %"$s_envptr_214" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_212", 1 - %"$s_call_215" = call %Uint32 %"$s_fptr_213"(i8* %"$s_envptr_214", %Uint32 %1) - store %Uint32 %"$s_call_215", %Uint32* %"$s_0", align 4 - %"$$s_0_216" = load %Uint32, %Uint32* %"$s_0", align 4 - store %Uint32 %"$$s_0_216", %Uint32* %sz, align 4 - %"$gasrem_217" = load i64, i64* @_gasrem, align 8 - %"$gascmp_218" = icmp ugt i64 1, %"$gasrem_217" - br i1 %"$gascmp_218", label %"$out_of_gas_219", label %"$have_gas_220" - -"$out_of_gas_219": ; preds = %"$have_gas_210" - call void @_out_of_gas() - br label %"$have_gas_220" - -"$have_gas_220": ; preds = %"$out_of_gas_219", %"$have_gas_210" - %"$consume_221" = sub i64 %"$gasrem_217", 1 - store i64 %"$consume_221", i64* @_gasrem, align 8 + %"$s_201" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_202" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_201", 0 + %"$s_envptr_203" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_201", 1 + %"$s_call_204" = call %Uint32 %"$s_fptr_202"(i8* %"$s_envptr_203", %Uint32 %1) + store %Uint32 %"$s_call_204", %Uint32* %"$s_0", align 4 + %"$$s_0_205" = load %Uint32, %Uint32* %"$s_0", align 4 + store %Uint32 %"$$s_0_205", %Uint32* %sz, align 4 + %"$gasrem_206" = load i64, i64* @_gasrem, align 8 + %"$gascmp_207" = icmp ugt i64 1, %"$gasrem_206" + br i1 %"$gascmp_207", label %"$out_of_gas_208", label %"$have_gas_209" + +"$out_of_gas_208": ; preds = %"$have_gas_199" + call void @_out_of_gas() + br label %"$have_gas_209" + +"$have_gas_209": ; preds = %"$out_of_gas_208", %"$have_gas_199" + %"$consume_210" = sub i64 %"$gasrem_206", 1 + store i64 %"$consume_210", i64* @_gasrem, align 8 %"$s_1" = alloca %Uint32, align 8 - %"$s_222" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_223" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_222", 0 - %"$s_envptr_224" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_222", 1 - %"$sz_225" = load %Uint32, %Uint32* %sz, align 4 - %"$s_call_226" = call %Uint32 %"$s_fptr_223"(i8* %"$s_envptr_224", %Uint32 %"$sz_225") - store %Uint32 %"$s_call_226", %Uint32* %"$s_1", align 4 - %"$$s_1_227" = load %Uint32, %Uint32* %"$s_1", align 4 - store %Uint32 %"$$s_1_227", %Uint32* %"$retval_42", align 4 - %"$$retval_42_228" = load %Uint32, %Uint32* %"$retval_42", align 4 - ret %Uint32 %"$$retval_42_228" + %"$s_211" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_212" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_211", 0 + %"$s_envptr_213" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_211", 1 + %"$sz_214" = load %Uint32, %Uint32* %sz, align 4 + %"$s_call_215" = call %Uint32 %"$s_fptr_212"(i8* %"$s_envptr_213", %Uint32 %"$sz_214") + store %Uint32 %"$s_call_215", %Uint32* %"$s_1", align 4 + %"$$s_1_216" = load %Uint32, %Uint32* %"$s_1", align 4 + store %Uint32 %"$$s_1_216", %Uint32* %"$retval_34", align 4 + %"$$retval_34_217" = load %Uint32, %Uint32* %"$retval_34", align 4 + ret %Uint32 %"$$retval_34_217" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_39"(%"$$fundef_39_env_124"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_31"(%"$$fundef_31_env_113"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { entry: - %"$retval_40" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_189" = load i64, i64* @_gasrem, align 8 - %"$gascmp_190" = icmp ugt i64 1, %"$gasrem_189" - br i1 %"$gascmp_190", label %"$out_of_gas_191", label %"$have_gas_192" - -"$out_of_gas_191": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_192" - -"$have_gas_192": ; preds = %"$out_of_gas_191", %entry - %"$consume_193" = sub i64 %"$gasrem_189", 1 - store i64 %"$consume_193", i64* @_gasrem, align 8 - %"$$fundef_41_envp_194_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_41_envp_194_salloc" = call i8* @_salloc(i8* %"$$fundef_41_envp_194_load", i64 16) - %"$$fundef_41_envp_194" = bitcast i8* %"$$fundef_41_envp_194_salloc" to %"$$fundef_41_env_123"* - %"$$fundef_41_env_voidp_196" = bitcast %"$$fundef_41_env_123"* %"$$fundef_41_envp_194" to i8* - %"$$fundef_41_cloval_197" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_41_env_123"*, %Uint32)* @"$fundef_41" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_41_env_voidp_196", 1 - %"$$fundef_41_env_s_198" = getelementptr inbounds %"$$fundef_41_env_123", %"$$fundef_41_env_123"* %"$$fundef_41_envp_194", i32 0, i32 0 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_41_env_s_198", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_41_cloval_197", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_40", align 8 - %"$$retval_40_199" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_40", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_40_199" + %"$retval_32" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_178" = load i64, i64* @_gasrem, align 8 + %"$gascmp_179" = icmp ugt i64 1, %"$gasrem_178" + br i1 %"$gascmp_179", label %"$out_of_gas_180", label %"$have_gas_181" + +"$out_of_gas_180": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_181" + +"$have_gas_181": ; preds = %"$out_of_gas_180", %entry + %"$consume_182" = sub i64 %"$gasrem_178", 1 + store i64 %"$consume_182", i64* @_gasrem, align 8 + %"$$fundef_33_envp_183_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_33_envp_183_salloc" = call i8* @_salloc(i8* %"$$fundef_33_envp_183_load", i64 16) + %"$$fundef_33_envp_183" = bitcast i8* %"$$fundef_33_envp_183_salloc" to %"$$fundef_33_env_112"* + %"$$fundef_33_env_voidp_185" = bitcast %"$$fundef_33_env_112"* %"$$fundef_33_envp_183" to i8* + %"$$fundef_33_cloval_186" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_33_env_112"*, %Uint32)* @"$fundef_33" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_33_env_voidp_185", 1 + %"$$fundef_33_env_s_187" = getelementptr inbounds %"$$fundef_33_env_112", %"$$fundef_33_env_112"* %"$$fundef_33_envp_183", i32 0, i32 0 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_33_env_s_187", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_33_cloval_186", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_32", align 8 + %"$$retval_32_188" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_32", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_32_188" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_37"(%"$$fundef_37_env_125"* %0) { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_29"(%"$$fundef_29_env_114"* %0) { entry: - %"$retval_38" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_180" = load i64, i64* @_gasrem, align 8 - %"$gascmp_181" = icmp ugt i64 1, %"$gasrem_180" - br i1 %"$gascmp_181", label %"$out_of_gas_182", label %"$have_gas_183" + %"$retval_30" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_169" = load i64, i64* @_gasrem, align 8 + %"$gascmp_170" = icmp ugt i64 1, %"$gasrem_169" + br i1 %"$gascmp_170", label %"$out_of_gas_171", label %"$have_gas_172" -"$out_of_gas_182": ; preds = %entry +"$out_of_gas_171": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_183" + br label %"$have_gas_172" -"$have_gas_183": ; preds = %"$out_of_gas_182", %entry - %"$consume_184" = sub i64 %"$gasrem_180", 1 - store i64 %"$consume_184", i64* @_gasrem, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_39_env_124"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_39" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_38", align 8 - %"$$retval_38_188" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_38", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_38_188" +"$have_gas_172": ; preds = %"$out_of_gas_171", %entry + %"$consume_173" = sub i64 %"$gasrem_169", 1 + store i64 %"$consume_173", i64* @_gasrem, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_31_env_113"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_31" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_30", align 8 + %"$$retval_30_177" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_30", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_30_177" } -define internal { i8*, i8* }* @"$fundef_35"(%"$$fundef_35_env_126"* %0, { i8*, i8* }* %1) { +define internal { i8*, i8* }* @"$fundef_27"(%"$$fundef_27_env_115"* %0, { i8*, i8* }* %1) { entry: - %"$retval_36" = alloca { i8*, i8* }*, align 8 - %"$gasrem_174" = load i64, i64* @_gasrem, align 8 - %"$gascmp_175" = icmp ugt i64 1, %"$gasrem_174" - br i1 %"$gascmp_175", label %"$out_of_gas_176", label %"$have_gas_177" + %"$retval_28" = alloca { i8*, i8* }*, align 8 + %"$gasrem_163" = load i64, i64* @_gasrem, align 8 + %"$gascmp_164" = icmp ugt i64 1, %"$gasrem_163" + br i1 %"$gascmp_164", label %"$out_of_gas_165", label %"$have_gas_166" -"$out_of_gas_176": ; preds = %entry +"$out_of_gas_165": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_177" + br label %"$have_gas_166" -"$have_gas_177": ; preds = %"$out_of_gas_176", %entry - %"$consume_178" = sub i64 %"$gasrem_174", 1 - store i64 %"$consume_178", i64* @_gasrem, align 8 - store { i8*, i8* }* %1, { i8*, i8* }** %"$retval_36", align 8 - %"$$retval_36_179" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_36", align 8 - ret { i8*, i8* }* %"$$retval_36_179" +"$have_gas_166": ; preds = %"$out_of_gas_165", %entry + %"$consume_167" = sub i64 %"$gasrem_163", 1 + store i64 %"$consume_167", i64* @_gasrem, align 8 + store { i8*, i8* }* %1, { i8*, i8* }** %"$retval_28", align 8 + %"$$retval_28_168" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_28", align 8 + ret { i8*, i8* }* %"$$retval_28_168" } -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_33"(%"$$fundef_33_env_127"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) { +define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_25"(%"$$fundef_25_env_116"* %0, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %1) { entry: - %"$retval_34" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_165" = load i64, i64* @_gasrem, align 8 - %"$gascmp_166" = icmp ugt i64 1, %"$gasrem_165" - br i1 %"$gascmp_166", label %"$out_of_gas_167", label %"$have_gas_168" + %"$retval_26" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_154" = load i64, i64* @_gasrem, align 8 + %"$gascmp_155" = icmp ugt i64 1, %"$gasrem_154" + br i1 %"$gascmp_155", label %"$out_of_gas_156", label %"$have_gas_157" -"$out_of_gas_167": ; preds = %entry +"$out_of_gas_156": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_168" + br label %"$have_gas_157" -"$have_gas_168": ; preds = %"$out_of_gas_167", %entry - %"$consume_169" = sub i64 %"$gasrem_165", 1 - store i64 %"$consume_169", i64* @_gasrem, align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_35_env_126"*, { i8*, i8* }*)* @"$fundef_35" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* null }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_34", align 8 - %"$$retval_34_173" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_34", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_34_173" +"$have_gas_157": ; preds = %"$out_of_gas_156", %entry + %"$consume_158" = sub i64 %"$gasrem_154", 1 + store i64 %"$consume_158", i64* @_gasrem, align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_27_env_115"*, { i8*, i8* }*)* @"$fundef_27" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* null }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_26", align 8 + %"$$retval_26_162" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_26", align 8 + ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_26_162" } -define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_31"(%"$$fundef_31_env_128"* %0) { +define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } @"$fundef_23"(%"$$fundef_23_env_117"* %0) { entry: - %"$retval_32" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 - %"$gasrem_156" = load i64, i64* @_gasrem, align 8 - %"$gascmp_157" = icmp ugt i64 1, %"$gasrem_156" - br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" + %"$retval_24" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, align 8 + %"$gasrem_145" = load i64, i64* @_gasrem, align 8 + %"$gascmp_146" = icmp ugt i64 1, %"$gasrem_145" + br i1 %"$gascmp_146", label %"$out_of_gas_147", label %"$have_gas_148" -"$out_of_gas_158": ; preds = %entry +"$out_of_gas_147": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_159" + br label %"$have_gas_148" -"$have_gas_159": ; preds = %"$out_of_gas_158", %entry - %"$consume_160" = sub i64 %"$gasrem_156", 1 - store i64 %"$consume_160", i64* @_gasrem, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_33_env_127"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_33" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_32", align 8 - %"$$retval_32_164" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_32", align 8 - ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_32_164" +"$have_gas_148": ; preds = %"$out_of_gas_147", %entry + %"$consume_149" = sub i64 %"$gasrem_145", 1 + store i64 %"$consume_149", i64* @_gasrem, align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_25_env_116"*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })* @"$fundef_25" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_24", align 8 + %"$$retval_24_153" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* }* %"$retval_24", align 8 + ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } %"$$retval_24_153" } -define internal %Uint32 @"$fundef_29"(%"$$fundef_29_env_129"* %0, %Uint32 %1) { +define internal %Uint32 @"$fundef_21"(%"$$fundef_21_env_118"* %0, %Uint32 %1) { entry: - %"$retval_30" = alloca %Uint32, align 8 - %"$gasrem_150" = load i64, i64* @_gasrem, align 8 - %"$gascmp_151" = icmp ugt i64 1, %"$gasrem_150" - br i1 %"$gascmp_151", label %"$out_of_gas_152", label %"$have_gas_153" + %"$retval_22" = alloca %Uint32, align 8 + %"$gasrem_139" = load i64, i64* @_gasrem, align 8 + %"$gascmp_140" = icmp ugt i64 1, %"$gasrem_139" + br i1 %"$gascmp_140", label %"$out_of_gas_141", label %"$have_gas_142" -"$out_of_gas_152": ; preds = %entry +"$out_of_gas_141": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_153" + br label %"$have_gas_142" -"$have_gas_153": ; preds = %"$out_of_gas_152", %entry - %"$consume_154" = sub i64 %"$gasrem_150", 1 - store i64 %"$consume_154", i64* @_gasrem, align 8 - store %Uint32 %1, %Uint32* %"$retval_30", align 4 - %"$$retval_30_155" = load %Uint32, %Uint32* %"$retval_30", align 4 - ret %Uint32 %"$$retval_30_155" +"$have_gas_142": ; preds = %"$out_of_gas_141", %entry + %"$consume_143" = sub i64 %"$gasrem_139", 1 + store i64 %"$consume_143", i64* @_gasrem, align 8 + store %Uint32 %1, %Uint32* %"$retval_22", align 4 + %"$$retval_22_144" = load %Uint32, %Uint32* %"$retval_22", align 4 + ret %Uint32 %"$$retval_22_144" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_27"(%"$$fundef_27_env_130"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_19"(%"$$fundef_19_env_119"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { entry: - %"$retval_28" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_141" = load i64, i64* @_gasrem, align 8 - %"$gascmp_142" = icmp ugt i64 1, %"$gasrem_141" - br i1 %"$gascmp_142", label %"$out_of_gas_143", label %"$have_gas_144" + %"$retval_20" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_131" = icmp ugt i64 1, %"$gasrem_130" + br i1 %"$gascmp_131", label %"$out_of_gas_132", label %"$have_gas_133" -"$out_of_gas_143": ; preds = %entry +"$out_of_gas_132": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_144" + br label %"$have_gas_133" -"$have_gas_144": ; preds = %"$out_of_gas_143", %entry - %"$consume_145" = sub i64 %"$gasrem_141", 1 - store i64 %"$consume_145", i64* @_gasrem, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_29_env_129"*, %Uint32)* @"$fundef_29" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_28", align 8 - %"$$retval_28_149" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_28", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_28_149" +"$have_gas_133": ; preds = %"$out_of_gas_132", %entry + %"$consume_134" = sub i64 %"$gasrem_130", 1 + store i64 %"$consume_134", i64* @_gasrem, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_21_env_118"*, %Uint32)* @"$fundef_21" to %Uint32 (i8*, %Uint32)*), i8* null }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_20", align 8 + %"$$retval_20_138" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_20", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_20_138" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_25"(%"$$fundef_25_env_131"* %0) { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_17"(%"$$fundef_17_env_120"* %0) { entry: - %"$retval_26" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_132" = load i64, i64* @_gasrem, align 8 - %"$gascmp_133" = icmp ugt i64 1, %"$gasrem_132" - br i1 %"$gascmp_133", label %"$out_of_gas_134", label %"$have_gas_135" + %"$retval_18" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_121" = load i64, i64* @_gasrem, align 8 + %"$gascmp_122" = icmp ugt i64 1, %"$gasrem_121" + br i1 %"$gascmp_122", label %"$out_of_gas_123", label %"$have_gas_124" -"$out_of_gas_134": ; preds = %entry +"$out_of_gas_123": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_135" + br label %"$have_gas_124" -"$have_gas_135": ; preds = %"$out_of_gas_134", %entry - %"$consume_136" = sub i64 %"$gasrem_132", 1 - store i64 %"$consume_136", i64* @_gasrem, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_27_env_130"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_27" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_26", align 8 - %"$$retval_26_140" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_26", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_26_140" +"$have_gas_124": ; preds = %"$out_of_gas_123", %entry + %"$consume_125" = sub i64 %"$gasrem_121", 1 + store i64 %"$consume_125", i64* @_gasrem, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_19_env_119"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_19" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_18", align 8 + %"$$retval_18_129" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_18", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_18_129" } declare void @_out_of_gas() @@ -1248,436 +1202,400 @@ entry: define internal %Uint32 @_scilla_expr_fun(i8* %0) { entry: - %"$expr_24" = alloca %Uint32, align 8 - %"$gasrem_693" = load i64, i64* @_gasrem, align 8 - %"$gascmp_694" = icmp ugt i64 1, %"$gasrem_693" - br i1 %"$gascmp_694", label %"$out_of_gas_695", label %"$have_gas_696" + %"$expr_16" = alloca %Uint32, align 8 + %"$gasrem_660" = load i64, i64* @_gasrem, align 8 + %"$gascmp_661" = icmp ugt i64 1, %"$gasrem_660" + br i1 %"$gascmp_661", label %"$out_of_gas_662", label %"$have_gas_663" -"$out_of_gas_695": ; preds = %entry +"$out_of_gas_662": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_696" + br label %"$have_gas_663" -"$have_gas_696": ; preds = %"$out_of_gas_695", %entry - %"$consume_697" = sub i64 %"$gasrem_693", 1 - store i64 %"$consume_697", i64* @_gasrem, align 8 +"$have_gas_663": ; preds = %"$out_of_gas_662", %entry + %"$consume_664" = sub i64 %"$gasrem_660", 1 + store i64 %"$consume_664", i64* @_gasrem, align 8 %c0 = alloca { i8*, i8* }*, align 8 - %"$gasrem_698" = load i64, i64* @_gasrem, align 8 - %"$gascmp_699" = icmp ugt i64 1, %"$gasrem_698" - br i1 %"$gascmp_699", label %"$out_of_gas_700", label %"$have_gas_701" - -"$out_of_gas_700": ; preds = %"$have_gas_696" - call void @_out_of_gas() - br label %"$have_gas_701" - -"$have_gas_701": ; preds = %"$out_of_gas_700", %"$have_gas_696" - %"$consume_702" = sub i64 %"$gasrem_698", 1 - store i64 %"$consume_702", i64* @_gasrem, align 8 - %"$dyndisp_table_709_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_709_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_709_salloc_load", i64 32) - %"$dyndisp_table_709_salloc" = bitcast i8* %"$dyndisp_table_709_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_709" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_709_salloc" to { i8*, i8* }* - %"$dyndisp_gep_710" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_709", i32 0 - %"$dyndisp_pcast_711" = bitcast { i8*, i8* }* %"$dyndisp_gep_710" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_25_env_131"*)* @"$fundef_25" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_711", align 8 - %"$dyndisp_gep_712" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_709", i32 1 - %"$dyndisp_pcast_713" = bitcast { i8*, i8* }* %"$dyndisp_gep_712" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_31_env_128"*)* @"$fundef_31" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_713", align 8 - store { i8*, i8* }* %"$dyndisp_table_709", { i8*, i8* }** %c0, align 8 - %"$gasrem_714" = load i64, i64* @_gasrem, align 8 - %"$gascmp_715" = icmp ugt i64 1, %"$gasrem_714" - br i1 %"$gascmp_715", label %"$out_of_gas_716", label %"$have_gas_717" - -"$out_of_gas_716": ; preds = %"$have_gas_701" - call void @_out_of_gas() - br label %"$have_gas_717" - -"$have_gas_717": ; preds = %"$out_of_gas_716", %"$have_gas_701" - %"$consume_718" = sub i64 %"$gasrem_714", 1 - store i64 %"$consume_718", i64* @_gasrem, align 8 - %"$gasrem_719" = load i64, i64* @_gasrem, align 8 - %"$gascmp_720" = icmp ugt i64 1, %"$gasrem_719" - br i1 %"$gascmp_720", label %"$out_of_gas_721", label %"$have_gas_722" - -"$out_of_gas_721": ; preds = %"$have_gas_717" - call void @_out_of_gas() - br label %"$have_gas_722" - -"$have_gas_722": ; preds = %"$out_of_gas_721", %"$have_gas_717" - %"$consume_723" = sub i64 %"$gasrem_719", 1 - store i64 %"$consume_723", i64* @_gasrem, align 8 + %"$gasrem_665" = load i64, i64* @_gasrem, align 8 + %"$gascmp_666" = icmp ugt i64 1, %"$gasrem_665" + br i1 %"$gascmp_666", label %"$out_of_gas_667", label %"$have_gas_668" + +"$out_of_gas_667": ; preds = %"$have_gas_663" + call void @_out_of_gas() + br label %"$have_gas_668" + +"$have_gas_668": ; preds = %"$out_of_gas_667", %"$have_gas_663" + %"$consume_669" = sub i64 %"$gasrem_665", 1 + store i64 %"$consume_669", i64* @_gasrem, align 8 + %"$dyndisp_table_676_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_676_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_676_salloc_load", i64 32) + %"$dyndisp_table_676_salloc" = bitcast i8* %"$dyndisp_table_676_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_676" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_676_salloc" to { i8*, i8* }* + %"$dyndisp_gep_677" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_676", i32 0 + %"$dyndisp_pcast_678" = bitcast { i8*, i8* }* %"$dyndisp_gep_677" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_17_env_120"*)* @"$fundef_17" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_678", align 8 + %"$dyndisp_gep_679" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_676", i32 1 + %"$dyndisp_pcast_680" = bitcast { i8*, i8* }* %"$dyndisp_gep_679" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_23_env_117"*)* @"$fundef_23" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_680", align 8 + store { i8*, i8* }* %"$dyndisp_table_676", { i8*, i8* }** %c0, align 8 + %"$gasrem_681" = load i64, i64* @_gasrem, align 8 + %"$gascmp_682" = icmp ugt i64 1, %"$gasrem_681" + br i1 %"$gascmp_682", label %"$out_of_gas_683", label %"$have_gas_684" + +"$out_of_gas_683": ; preds = %"$have_gas_668" + call void @_out_of_gas() + br label %"$have_gas_684" + +"$have_gas_684": ; preds = %"$out_of_gas_683", %"$have_gas_668" + %"$consume_685" = sub i64 %"$gasrem_681", 1 + store i64 %"$consume_685", i64* @_gasrem, align 8 + %"$gasrem_686" = load i64, i64* @_gasrem, align 8 + %"$gascmp_687" = icmp ugt i64 1, %"$gasrem_686" + br i1 %"$gascmp_687", label %"$out_of_gas_688", label %"$have_gas_689" + +"$out_of_gas_688": ; preds = %"$have_gas_684" + call void @_out_of_gas() + br label %"$have_gas_689" + +"$have_gas_689": ; preds = %"$out_of_gas_688", %"$have_gas_684" + %"$consume_690" = sub i64 %"$gasrem_686", 1 + store i64 %"$consume_690", i64* @_gasrem, align 8 %c2 = alloca { i8*, i8* }*, align 8 - %"$gasrem_724" = load i64, i64* @_gasrem, align 8 - %"$gascmp_725" = icmp ugt i64 1, %"$gasrem_724" - br i1 %"$gascmp_725", label %"$out_of_gas_726", label %"$have_gas_727" - -"$out_of_gas_726": ; preds = %"$have_gas_722" - call void @_out_of_gas() - br label %"$have_gas_727" - -"$have_gas_727": ; preds = %"$out_of_gas_726", %"$have_gas_722" - %"$consume_728" = sub i64 %"$gasrem_724", 1 - store i64 %"$consume_728", i64* @_gasrem, align 8 - %"$dyndisp_table_735_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_735_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_735_salloc_load", i64 32) - %"$dyndisp_table_735_salloc" = bitcast i8* %"$dyndisp_table_735_salloc_salloc" to [2 x { i8*, i8* }]* - %"$dyndisp_table_735" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_735_salloc" to { i8*, i8* }* - %"$dyndisp_gep_736" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_735", i32 0 - %"$dyndisp_pcast_737" = bitcast { i8*, i8* }* %"$dyndisp_gep_736" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_37_env_125"*)* @"$fundef_37" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_737", align 8 - %"$dyndisp_gep_738" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_735", i32 1 - %"$dyndisp_pcast_739" = bitcast { i8*, i8* }* %"$dyndisp_gep_738" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_43_env_122"*)* @"$fundef_43" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_739", align 8 - store { i8*, i8* }* %"$dyndisp_table_735", { i8*, i8* }** %c2, align 8 - %"$gasrem_740" = load i64, i64* @_gasrem, align 8 - %"$gascmp_741" = icmp ugt i64 1, %"$gasrem_740" - br i1 %"$gascmp_741", label %"$out_of_gas_742", label %"$have_gas_743" - -"$out_of_gas_742": ; preds = %"$have_gas_727" - call void @_out_of_gas() - br label %"$have_gas_743" - -"$have_gas_743": ; preds = %"$out_of_gas_742", %"$have_gas_727" - %"$consume_744" = sub i64 %"$gasrem_740", 1 - store i64 %"$consume_744", i64* @_gasrem, align 8 + %"$gasrem_691" = load i64, i64* @_gasrem, align 8 + %"$gascmp_692" = icmp ugt i64 1, %"$gasrem_691" + br i1 %"$gascmp_692", label %"$out_of_gas_693", label %"$have_gas_694" + +"$out_of_gas_693": ; preds = %"$have_gas_689" + call void @_out_of_gas() + br label %"$have_gas_694" + +"$have_gas_694": ; preds = %"$out_of_gas_693", %"$have_gas_689" + %"$consume_695" = sub i64 %"$gasrem_691", 1 + store i64 %"$consume_695", i64* @_gasrem, align 8 + %"$dyndisp_table_702_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_702_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_702_salloc_load", i64 32) + %"$dyndisp_table_702_salloc" = bitcast i8* %"$dyndisp_table_702_salloc_salloc" to [2 x { i8*, i8* }]* + %"$dyndisp_table_702" = bitcast [2 x { i8*, i8* }]* %"$dyndisp_table_702_salloc" to { i8*, i8* }* + %"$dyndisp_gep_703" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_702", i32 0 + %"$dyndisp_pcast_704" = bitcast { i8*, i8* }* %"$dyndisp_gep_703" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_29_env_114"*)* @"$fundef_29" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_704", align 8 + %"$dyndisp_gep_705" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_702", i32 1 + %"$dyndisp_pcast_706" = bitcast { i8*, i8* }* %"$dyndisp_gep_705" to { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (%"$$fundef_35_env_111"*)* @"$fundef_35" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_706", align 8 + store { i8*, i8* }* %"$dyndisp_table_702", { i8*, i8* }** %c2, align 8 + %"$gasrem_707" = load i64, i64* @_gasrem, align 8 + %"$gascmp_708" = icmp ugt i64 1, %"$gasrem_707" + br i1 %"$gascmp_708", label %"$out_of_gas_709", label %"$have_gas_710" + +"$out_of_gas_709": ; preds = %"$have_gas_694" + call void @_out_of_gas() + br label %"$have_gas_710" + +"$have_gas_710": ; preds = %"$out_of_gas_709", %"$have_gas_694" + %"$consume_711" = sub i64 %"$gasrem_707", 1 + store i64 %"$consume_711", i64* @_gasrem, align 8 %cadd = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_745" = load i64, i64* @_gasrem, align 8 - %"$gascmp_746" = icmp ugt i64 1, %"$gasrem_745" - br i1 %"$gascmp_746", label %"$out_of_gas_747", label %"$have_gas_748" - -"$out_of_gas_747": ; preds = %"$have_gas_743" - call void @_out_of_gas() - br label %"$have_gas_748" - -"$have_gas_748": ; preds = %"$out_of_gas_747", %"$have_gas_743" - %"$consume_749" = sub i64 %"$gasrem_745", 1 - store i64 %"$consume_749", i64* @_gasrem, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_49_env_119"*, { i8*, i8* }*)* @"$fundef_49" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$gasrem_753" = load i64, i64* @_gasrem, align 8 - %"$gascmp_754" = icmp ugt i64 1, %"$gasrem_753" - br i1 %"$gascmp_754", label %"$out_of_gas_755", label %"$have_gas_756" - -"$out_of_gas_755": ; preds = %"$have_gas_748" - call void @_out_of_gas() - br label %"$have_gas_756" - -"$have_gas_756": ; preds = %"$out_of_gas_755", %"$have_gas_748" - %"$consume_757" = sub i64 %"$gasrem_753", 1 - store i64 %"$consume_757", i64* @_gasrem, align 8 - %cmul = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_758" = load i64, i64* @_gasrem, align 8 - %"$gascmp_759" = icmp ugt i64 1, %"$gasrem_758" - br i1 %"$gascmp_759", label %"$out_of_gas_760", label %"$have_gas_761" - -"$out_of_gas_760": ; preds = %"$have_gas_756" - call void @_out_of_gas() - br label %"$have_gas_761" - -"$have_gas_761": ; preds = %"$out_of_gas_760", %"$have_gas_756" - %"$consume_762" = sub i64 %"$gasrem_758", 1 - store i64 %"$consume_762", i64* @_gasrem, align 8 - %"$$fundef_65_envp_763_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_65_envp_763_salloc" = call i8* @_salloc(i8* %"$$fundef_65_envp_763_load", i64 24) - %"$$fundef_65_envp_763" = bitcast i8* %"$$fundef_65_envp_763_salloc" to %"$$fundef_65_env_111"* - %"$$fundef_65_env_voidp_765" = bitcast %"$$fundef_65_env_111"* %"$$fundef_65_envp_763" to i8* - %"$$fundef_65_cloval_766" = insertvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_65_env_111"*, { i8*, i8* }*)* @"$fundef_65" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_65_env_voidp_765", 1 - %"$$fundef_65_env_c0_767" = getelementptr inbounds %"$$fundef_65_env_111", %"$$fundef_65_env_111"* %"$$fundef_65_envp_763", i32 0, i32 0 - %"$c0_768" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 - store { i8*, i8* }* %"$c0_768", { i8*, i8* }** %"$$fundef_65_env_c0_767", align 8 - %"$$fundef_65_env_cadd_769" = getelementptr inbounds %"$$fundef_65_env_111", %"$$fundef_65_env_111"* %"$$fundef_65_envp_763", i32 0, i32 1 - %"$cadd_770" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_770", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_65_env_cadd_769", align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_65_cloval_766", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8 - %"$gasrem_771" = load i64, i64* @_gasrem, align 8 - %"$gascmp_772" = icmp ugt i64 1, %"$gasrem_771" - br i1 %"$gascmp_772", label %"$out_of_gas_773", label %"$have_gas_774" - -"$out_of_gas_773": ; preds = %"$have_gas_761" - call void @_out_of_gas() - br label %"$have_gas_774" - -"$have_gas_774": ; preds = %"$out_of_gas_773", %"$have_gas_761" - %"$consume_775" = sub i64 %"$gasrem_771", 1 - store i64 %"$consume_775", i64* @_gasrem, align 8 + %"$gasrem_712" = load i64, i64* @_gasrem, align 8 + %"$gascmp_713" = icmp ugt i64 1, %"$gasrem_712" + br i1 %"$gascmp_713", label %"$out_of_gas_714", label %"$have_gas_715" + +"$out_of_gas_714": ; preds = %"$have_gas_710" + call void @_out_of_gas() + br label %"$have_gas_715" + +"$have_gas_715": ; preds = %"$out_of_gas_714", %"$have_gas_710" + %"$consume_716" = sub i64 %"$gasrem_712", 1 + store i64 %"$consume_716", i64* @_gasrem, align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_41_env_108"*, { i8*, i8* }*)* @"$fundef_41" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* null }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + %"$gasrem_720" = load i64, i64* @_gasrem, align 8 + %"$gascmp_721" = icmp ugt i64 1, %"$gasrem_720" + br i1 %"$gascmp_721", label %"$out_of_gas_722", label %"$have_gas_723" + +"$out_of_gas_722": ; preds = %"$have_gas_715" + call void @_out_of_gas() + br label %"$have_gas_723" + +"$have_gas_723": ; preds = %"$out_of_gas_722", %"$have_gas_715" + %"$consume_724" = sub i64 %"$gasrem_720", 1 + store i64 %"$consume_724", i64* @_gasrem, align 8 + %cmul = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_725" = load i64, i64* @_gasrem, align 8 + %"$gascmp_726" = icmp ugt i64 2, %"$gasrem_725" + br i1 %"$gascmp_726", label %"$out_of_gas_727", label %"$have_gas_728" + +"$out_of_gas_727": ; preds = %"$have_gas_723" + call void @_out_of_gas() + br label %"$have_gas_728" + +"$have_gas_728": ; preds = %"$out_of_gas_727", %"$have_gas_723" + %"$consume_729" = sub i64 %"$gasrem_725", 2 + store i64 %"$consume_729", i64* @_gasrem, align 8 + %"$$fundef_57_envp_730_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_57_envp_730_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_730_load", i64 24) + %"$$fundef_57_envp_730" = bitcast i8* %"$$fundef_57_envp_730_salloc" to %"$$fundef_57_env_100"* + %"$$fundef_57_env_voidp_732" = bitcast %"$$fundef_57_env_100"* %"$$fundef_57_envp_730" to i8* + %"$$fundef_57_cloval_733" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_57_env_100"*, { i8*, i8* }*, { i8*, i8* }*)* @"$fundef_57" to { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_57_env_voidp_732", 1 + %"$$fundef_57_env_c0_734" = getelementptr inbounds %"$$fundef_57_env_100", %"$$fundef_57_env_100"* %"$$fundef_57_envp_730", i32 0, i32 0 + %"$c0_735" = load { i8*, i8* }*, { i8*, i8* }** %c0, align 8 + store { i8*, i8* }* %"$c0_735", { i8*, i8* }** %"$$fundef_57_env_c0_734", align 8 + %"$$fundef_57_env_cadd_736" = getelementptr inbounds %"$$fundef_57_env_100", %"$$fundef_57_env_100"* %"$$fundef_57_envp_730", i32 0, i32 1 + %"$cadd_737" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_737", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$$fundef_57_env_cadd_736", align 8 + store { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$$fundef_57_cloval_733", { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %cmul, align 8 + %"$gasrem_738" = load i64, i64* @_gasrem, align 8 + %"$gascmp_739" = icmp ugt i64 1, %"$gasrem_738" + br i1 %"$gascmp_739", label %"$out_of_gas_740", label %"$have_gas_741" + +"$out_of_gas_740": ; preds = %"$have_gas_728" + call void @_out_of_gas() + br label %"$have_gas_741" + +"$have_gas_741": ; preds = %"$out_of_gas_740", %"$have_gas_728" + %"$consume_742" = sub i64 %"$gasrem_738", 1 + store i64 %"$consume_742", i64* @_gasrem, align 8 %church_nat_to_uint32 = alloca { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_776" = load i64, i64* @_gasrem, align 8 - %"$gascmp_777" = icmp ugt i64 1, %"$gasrem_776" - br i1 %"$gascmp_777", label %"$out_of_gas_778", label %"$have_gas_779" + %"$gasrem_743" = load i64, i64* @_gasrem, align 8 + %"$gascmp_744" = icmp ugt i64 1, %"$gasrem_743" + br i1 %"$gascmp_744", label %"$out_of_gas_745", label %"$have_gas_746" -"$out_of_gas_778": ; preds = %"$have_gas_774" +"$out_of_gas_745": ; preds = %"$have_gas_741" call void @_out_of_gas() - br label %"$have_gas_779" + br label %"$have_gas_746" -"$have_gas_779": ; preds = %"$out_of_gas_778", %"$have_gas_774" - %"$consume_780" = sub i64 %"$gasrem_776", 1 - store i64 %"$consume_780", i64* @_gasrem, align 8 - store { %Uint32 (i8*, { i8*, i8* }*)*, i8* } { %Uint32 (i8*, { i8*, i8* }*)* bitcast (%Uint32 (%"$$fundef_69_env_109"*, { i8*, i8* }*)* @"$fundef_69" to %Uint32 (i8*, { i8*, i8* }*)*), i8* null }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8 - %"$gasrem_784" = load i64, i64* @_gasrem, align 8 - %"$gascmp_785" = icmp ugt i64 1, %"$gasrem_784" - br i1 %"$gascmp_785", label %"$out_of_gas_786", label %"$have_gas_787" +"$have_gas_746": ; preds = %"$out_of_gas_745", %"$have_gas_741" + %"$consume_747" = sub i64 %"$gasrem_743", 1 + store i64 %"$consume_747", i64* @_gasrem, align 8 + store { %Uint32 (i8*, { i8*, i8* }*)*, i8* } { %Uint32 (i8*, { i8*, i8* }*)* bitcast (%Uint32 (%"$$fundef_59_env_99"*, { i8*, i8* }*)* @"$fundef_59" to %Uint32 (i8*, { i8*, i8* }*)*), i8* null }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8 + %"$gasrem_751" = load i64, i64* @_gasrem, align 8 + %"$gascmp_752" = icmp ugt i64 1, %"$gasrem_751" + br i1 %"$gascmp_752", label %"$out_of_gas_753", label %"$have_gas_754" -"$out_of_gas_786": ; preds = %"$have_gas_779" +"$out_of_gas_753": ; preds = %"$have_gas_746" call void @_out_of_gas() - br label %"$have_gas_787" + br label %"$have_gas_754" -"$have_gas_787": ; preds = %"$out_of_gas_786", %"$have_gas_779" - %"$consume_788" = sub i64 %"$gasrem_784", 1 - store i64 %"$consume_788", i64* @_gasrem, align 8 +"$have_gas_754": ; preds = %"$out_of_gas_753", %"$have_gas_746" + %"$consume_755" = sub i64 %"$gasrem_751", 1 + store i64 %"$consume_755", i64* @_gasrem, align 8 %c4 = alloca { i8*, i8* }*, align 8 - %"$gasrem_789" = load i64, i64* @_gasrem, align 8 - %"$gascmp_790" = icmp ugt i64 1, %"$gasrem_789" - br i1 %"$gascmp_790", label %"$out_of_gas_791", label %"$have_gas_792" - -"$out_of_gas_791": ; preds = %"$have_gas_787" - call void @_out_of_gas() - br label %"$have_gas_792" - -"$have_gas_792": ; preds = %"$out_of_gas_791", %"$have_gas_787" - %"$consume_793" = sub i64 %"$gasrem_789", 1 - store i64 %"$consume_793", i64* @_gasrem, align 8 - %"$cmul_11" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_794" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8 - %"$cmul_fptr_795" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_794", 0 - %"$cmul_envptr_796" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_794", 1 - %"$c2_797" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 - %"$cmul_call_798" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_795"(i8* %"$cmul_envptr_796", { i8*, i8* }* %"$c2_797") - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_798", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_11", align 8 - %"$cmul_12" = alloca { i8*, i8* }*, align 8 - %"$$cmul_11_799" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_11", align 8 - %"$$cmul_11_fptr_800" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_11_799", 0 - %"$$cmul_11_envptr_801" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_11_799", 1 - %"$c2_802" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 - %"$$cmul_11_call_803" = call { i8*, i8* }* %"$$cmul_11_fptr_800"(i8* %"$$cmul_11_envptr_801", { i8*, i8* }* %"$c2_802") - store { i8*, i8* }* %"$$cmul_11_call_803", { i8*, i8* }** %"$cmul_12", align 8 - %"$$cmul_12_804" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_12", align 8 - store { i8*, i8* }* %"$$cmul_12_804", { i8*, i8* }** %c4, align 8 - %"$gasrem_805" = load i64, i64* @_gasrem, align 8 - %"$gascmp_806" = icmp ugt i64 1, %"$gasrem_805" - br i1 %"$gascmp_806", label %"$out_of_gas_807", label %"$have_gas_808" - -"$out_of_gas_807": ; preds = %"$have_gas_792" - call void @_out_of_gas() - br label %"$have_gas_808" - -"$have_gas_808": ; preds = %"$out_of_gas_807", %"$have_gas_792" - %"$consume_809" = sub i64 %"$gasrem_805", 1 - store i64 %"$consume_809", i64* @_gasrem, align 8 + %"$gasrem_756" = load i64, i64* @_gasrem, align 8 + %"$gascmp_757" = icmp ugt i64 1, %"$gasrem_756" + br i1 %"$gascmp_757", label %"$out_of_gas_758", label %"$have_gas_759" + +"$out_of_gas_758": ; preds = %"$have_gas_754" + call void @_out_of_gas() + br label %"$have_gas_759" + +"$have_gas_759": ; preds = %"$out_of_gas_758", %"$have_gas_754" + %"$consume_760" = sub i64 %"$gasrem_756", 1 + store i64 %"$consume_760", i64* @_gasrem, align 8 + %"$cmul_761" = load { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %cmul, align 8 + %"$cmul_fptr_762" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_761", 0 + %"$cmul_envptr_763" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_761", 1 + %"$c2_764" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 + %"$c2_765" = load { i8*, i8* }*, { i8*, i8* }** %c2, align 8 + %"$cmul_call_766" = call { i8*, i8* }* %"$cmul_fptr_762"(i8* %"$cmul_envptr_763", { i8*, i8* }* %"$c2_764", { i8*, i8* }* %"$c2_765") + store { i8*, i8* }* %"$cmul_call_766", { i8*, i8* }** %c4, align 8 + %"$gasrem_767" = load i64, i64* @_gasrem, align 8 + %"$gascmp_768" = icmp ugt i64 1, %"$gasrem_767" + br i1 %"$gascmp_768", label %"$out_of_gas_769", label %"$have_gas_770" + +"$out_of_gas_769": ; preds = %"$have_gas_759" + call void @_out_of_gas() + br label %"$have_gas_770" + +"$have_gas_770": ; preds = %"$out_of_gas_769", %"$have_gas_759" + %"$consume_771" = sub i64 %"$gasrem_767", 1 + store i64 %"$consume_771", i64* @_gasrem, align 8 %c16 = alloca { i8*, i8* }*, align 8 - %"$gasrem_810" = load i64, i64* @_gasrem, align 8 - %"$gascmp_811" = icmp ugt i64 1, %"$gasrem_810" - br i1 %"$gascmp_811", label %"$out_of_gas_812", label %"$have_gas_813" - -"$out_of_gas_812": ; preds = %"$have_gas_808" - call void @_out_of_gas() - br label %"$have_gas_813" - -"$have_gas_813": ; preds = %"$out_of_gas_812", %"$have_gas_808" - %"$consume_814" = sub i64 %"$gasrem_810", 1 - store i64 %"$consume_814", i64* @_gasrem, align 8 - %"$cmul_13" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_815" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8 - %"$cmul_fptr_816" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_815", 0 - %"$cmul_envptr_817" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_815", 1 - %"$c4_818" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 - %"$cmul_call_819" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_816"(i8* %"$cmul_envptr_817", { i8*, i8* }* %"$c4_818") - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_819", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_13", align 8 - %"$cmul_14" = alloca { i8*, i8* }*, align 8 - %"$$cmul_13_820" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_13", align 8 - %"$$cmul_13_fptr_821" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_13_820", 0 - %"$$cmul_13_envptr_822" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_13_820", 1 - %"$c4_823" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 - %"$$cmul_13_call_824" = call { i8*, i8* }* %"$$cmul_13_fptr_821"(i8* %"$$cmul_13_envptr_822", { i8*, i8* }* %"$c4_823") - store { i8*, i8* }* %"$$cmul_13_call_824", { i8*, i8* }** %"$cmul_14", align 8 - %"$$cmul_14_825" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_14", align 8 - store { i8*, i8* }* %"$$cmul_14_825", { i8*, i8* }** %c16, align 8 - %"$gasrem_826" = load i64, i64* @_gasrem, align 8 - %"$gascmp_827" = icmp ugt i64 1, %"$gasrem_826" - br i1 %"$gascmp_827", label %"$out_of_gas_828", label %"$have_gas_829" - -"$out_of_gas_828": ; preds = %"$have_gas_813" - call void @_out_of_gas() - br label %"$have_gas_829" - -"$have_gas_829": ; preds = %"$out_of_gas_828", %"$have_gas_813" - %"$consume_830" = sub i64 %"$gasrem_826", 1 - store i64 %"$consume_830", i64* @_gasrem, align 8 + %"$gasrem_772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_773" = icmp ugt i64 1, %"$gasrem_772" + br i1 %"$gascmp_773", label %"$out_of_gas_774", label %"$have_gas_775" + +"$out_of_gas_774": ; preds = %"$have_gas_770" + call void @_out_of_gas() + br label %"$have_gas_775" + +"$have_gas_775": ; preds = %"$out_of_gas_774", %"$have_gas_770" + %"$consume_776" = sub i64 %"$gasrem_772", 1 + store i64 %"$consume_776", i64* @_gasrem, align 8 + %"$cmul_777" = load { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %cmul, align 8 + %"$cmul_fptr_778" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_777", 0 + %"$cmul_envptr_779" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_777", 1 + %"$c4_780" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 + %"$c4_781" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 + %"$cmul_call_782" = call { i8*, i8* }* %"$cmul_fptr_778"(i8* %"$cmul_envptr_779", { i8*, i8* }* %"$c4_780", { i8*, i8* }* %"$c4_781") + store { i8*, i8* }* %"$cmul_call_782", { i8*, i8* }** %c16, align 8 + %"$gasrem_783" = load i64, i64* @_gasrem, align 8 + %"$gascmp_784" = icmp ugt i64 1, %"$gasrem_783" + br i1 %"$gascmp_784", label %"$out_of_gas_785", label %"$have_gas_786" + +"$out_of_gas_785": ; preds = %"$have_gas_775" + call void @_out_of_gas() + br label %"$have_gas_786" + +"$have_gas_786": ; preds = %"$out_of_gas_785", %"$have_gas_775" + %"$consume_787" = sub i64 %"$gasrem_783", 1 + store i64 %"$consume_787", i64* @_gasrem, align 8 %c32 = alloca { i8*, i8* }*, align 8 - %"$gasrem_831" = load i64, i64* @_gasrem, align 8 - %"$gascmp_832" = icmp ugt i64 1, %"$gasrem_831" - br i1 %"$gascmp_832", label %"$out_of_gas_833", label %"$have_gas_834" - -"$out_of_gas_833": ; preds = %"$have_gas_829" - call void @_out_of_gas() - br label %"$have_gas_834" - -"$have_gas_834": ; preds = %"$out_of_gas_833", %"$have_gas_829" - %"$consume_835" = sub i64 %"$gasrem_831", 1 - store i64 %"$consume_835", i64* @_gasrem, align 8 - %"$cadd_15" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cadd_836" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$cadd_fptr_837" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_836", 0 - %"$cadd_envptr_838" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_836", 1 - %"$c16_839" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 - %"$cadd_call_840" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_837"(i8* %"$cadd_envptr_838", { i8*, i8* }* %"$c16_839") - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_840", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_15", align 8 - %"$cadd_16" = alloca { i8*, i8* }*, align 8 - %"$$cadd_15_841" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_15", align 8 - %"$$cadd_15_fptr_842" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_15_841", 0 - %"$$cadd_15_envptr_843" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_15_841", 1 - %"$c16_844" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 - %"$$cadd_15_call_845" = call { i8*, i8* }* %"$$cadd_15_fptr_842"(i8* %"$$cadd_15_envptr_843", { i8*, i8* }* %"$c16_844") - store { i8*, i8* }* %"$$cadd_15_call_845", { i8*, i8* }** %"$cadd_16", align 8 - %"$$cadd_16_846" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_16", align 8 - store { i8*, i8* }* %"$$cadd_16_846", { i8*, i8* }** %c32, align 8 - %"$gasrem_847" = load i64, i64* @_gasrem, align 8 - %"$gascmp_848" = icmp ugt i64 1, %"$gasrem_847" - br i1 %"$gascmp_848", label %"$out_of_gas_849", label %"$have_gas_850" - -"$out_of_gas_849": ; preds = %"$have_gas_834" - call void @_out_of_gas() - br label %"$have_gas_850" - -"$have_gas_850": ; preds = %"$out_of_gas_849", %"$have_gas_834" - %"$consume_851" = sub i64 %"$gasrem_847", 1 - store i64 %"$consume_851", i64* @_gasrem, align 8 + %"$gasrem_788" = load i64, i64* @_gasrem, align 8 + %"$gascmp_789" = icmp ugt i64 1, %"$gasrem_788" + br i1 %"$gascmp_789", label %"$out_of_gas_790", label %"$have_gas_791" + +"$out_of_gas_790": ; preds = %"$have_gas_786" + call void @_out_of_gas() + br label %"$have_gas_791" + +"$have_gas_791": ; preds = %"$out_of_gas_790", %"$have_gas_786" + %"$consume_792" = sub i64 %"$gasrem_788", 1 + store i64 %"$consume_792", i64* @_gasrem, align 8 + %"$cadd_11" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$cadd_793" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + %"$cadd_fptr_794" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_793", 0 + %"$cadd_envptr_795" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_793", 1 + %"$c16_796" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 + %"$cadd_call_797" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_794"(i8* %"$cadd_envptr_795", { i8*, i8* }* %"$c16_796") + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_797", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_11", align 8 + %"$cadd_12" = alloca { i8*, i8* }*, align 8 + %"$$cadd_11_798" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_11", align 8 + %"$$cadd_11_fptr_799" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_11_798", 0 + %"$$cadd_11_envptr_800" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_11_798", 1 + %"$c16_801" = load { i8*, i8* }*, { i8*, i8* }** %c16, align 8 + %"$$cadd_11_call_802" = call { i8*, i8* }* %"$$cadd_11_fptr_799"(i8* %"$$cadd_11_envptr_800", { i8*, i8* }* %"$c16_801") + store { i8*, i8* }* %"$$cadd_11_call_802", { i8*, i8* }** %"$cadd_12", align 8 + %"$$cadd_12_803" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_12", align 8 + store { i8*, i8* }* %"$$cadd_12_803", { i8*, i8* }** %c32, align 8 + %"$gasrem_804" = load i64, i64* @_gasrem, align 8 + %"$gascmp_805" = icmp ugt i64 1, %"$gasrem_804" + br i1 %"$gascmp_805", label %"$out_of_gas_806", label %"$have_gas_807" + +"$out_of_gas_806": ; preds = %"$have_gas_791" + call void @_out_of_gas() + br label %"$have_gas_807" + +"$have_gas_807": ; preds = %"$out_of_gas_806", %"$have_gas_791" + %"$consume_808" = sub i64 %"$gasrem_804", 1 + store i64 %"$consume_808", i64* @_gasrem, align 8 %c128 = alloca { i8*, i8* }*, align 8 - %"$gasrem_852" = load i64, i64* @_gasrem, align 8 - %"$gascmp_853" = icmp ugt i64 1, %"$gasrem_852" - br i1 %"$gascmp_853", label %"$out_of_gas_854", label %"$have_gas_855" - -"$out_of_gas_854": ; preds = %"$have_gas_850" - call void @_out_of_gas() - br label %"$have_gas_855" - -"$have_gas_855": ; preds = %"$out_of_gas_854", %"$have_gas_850" - %"$consume_856" = sub i64 %"$gasrem_852", 1 - store i64 %"$consume_856", i64* @_gasrem, align 8 - %"$cmul_17" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_857" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8 - %"$cmul_fptr_858" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_857", 0 - %"$cmul_envptr_859" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_857", 1 - %"$c4_860" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 - %"$cmul_call_861" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_858"(i8* %"$cmul_envptr_859", { i8*, i8* }* %"$c4_860") - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_861", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_17", align 8 - %"$cmul_18" = alloca { i8*, i8* }*, align 8 - %"$$cmul_17_862" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_17", align 8 - %"$$cmul_17_fptr_863" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_17_862", 0 - %"$$cmul_17_envptr_864" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_17_862", 1 - %"$c32_865" = load { i8*, i8* }*, { i8*, i8* }** %c32, align 8 - %"$$cmul_17_call_866" = call { i8*, i8* }* %"$$cmul_17_fptr_863"(i8* %"$$cmul_17_envptr_864", { i8*, i8* }* %"$c32_865") - store { i8*, i8* }* %"$$cmul_17_call_866", { i8*, i8* }** %"$cmul_18", align 8 - %"$$cmul_18_867" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_18", align 8 - store { i8*, i8* }* %"$$cmul_18_867", { i8*, i8* }** %c128, align 8 - %"$gasrem_868" = load i64, i64* @_gasrem, align 8 - %"$gascmp_869" = icmp ugt i64 1, %"$gasrem_868" - br i1 %"$gascmp_869", label %"$out_of_gas_870", label %"$have_gas_871" - -"$out_of_gas_870": ; preds = %"$have_gas_855" - call void @_out_of_gas() - br label %"$have_gas_871" - -"$have_gas_871": ; preds = %"$out_of_gas_870", %"$have_gas_855" - %"$consume_872" = sub i64 %"$gasrem_868", 1 - store i64 %"$consume_872", i64* @_gasrem, align 8 + %"$gasrem_809" = load i64, i64* @_gasrem, align 8 + %"$gascmp_810" = icmp ugt i64 1, %"$gasrem_809" + br i1 %"$gascmp_810", label %"$out_of_gas_811", label %"$have_gas_812" + +"$out_of_gas_811": ; preds = %"$have_gas_807" + call void @_out_of_gas() + br label %"$have_gas_812" + +"$have_gas_812": ; preds = %"$out_of_gas_811", %"$have_gas_807" + %"$consume_813" = sub i64 %"$gasrem_809", 1 + store i64 %"$consume_813", i64* @_gasrem, align 8 + %"$cmul_814" = load { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %cmul, align 8 + %"$cmul_fptr_815" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_814", 0 + %"$cmul_envptr_816" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_814", 1 + %"$c4_817" = load { i8*, i8* }*, { i8*, i8* }** %c4, align 8 + %"$c32_818" = load { i8*, i8* }*, { i8*, i8* }** %c32, align 8 + %"$cmul_call_819" = call { i8*, i8* }* %"$cmul_fptr_815"(i8* %"$cmul_envptr_816", { i8*, i8* }* %"$c4_817", { i8*, i8* }* %"$c32_818") + store { i8*, i8* }* %"$cmul_call_819", { i8*, i8* }** %c128, align 8 + %"$gasrem_820" = load i64, i64* @_gasrem, align 8 + %"$gascmp_821" = icmp ugt i64 1, %"$gasrem_820" + br i1 %"$gascmp_821", label %"$out_of_gas_822", label %"$have_gas_823" + +"$out_of_gas_822": ; preds = %"$have_gas_812" + call void @_out_of_gas() + br label %"$have_gas_823" + +"$have_gas_823": ; preds = %"$out_of_gas_822", %"$have_gas_812" + %"$consume_824" = sub i64 %"$gasrem_820", 1 + store i64 %"$consume_824", i64* @_gasrem, align 8 %c256 = alloca { i8*, i8* }*, align 8 - %"$gasrem_873" = load i64, i64* @_gasrem, align 8 - %"$gascmp_874" = icmp ugt i64 1, %"$gasrem_873" - br i1 %"$gascmp_874", label %"$out_of_gas_875", label %"$have_gas_876" - -"$out_of_gas_875": ; preds = %"$have_gas_871" - call void @_out_of_gas() - br label %"$have_gas_876" - -"$have_gas_876": ; preds = %"$out_of_gas_875", %"$have_gas_871" - %"$consume_877" = sub i64 %"$gasrem_873", 1 - store i64 %"$consume_877", i64* @_gasrem, align 8 - %"$cadd_19" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cadd_878" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 - %"$cadd_fptr_879" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_878", 0 - %"$cadd_envptr_880" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_878", 1 - %"$c128_881" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 - %"$cadd_call_882" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_879"(i8* %"$cadd_envptr_880", { i8*, i8* }* %"$c128_881") - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_882", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_19", align 8 - %"$cadd_20" = alloca { i8*, i8* }*, align 8 - %"$$cadd_19_883" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_19", align 8 - %"$$cadd_19_fptr_884" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_19_883", 0 - %"$$cadd_19_envptr_885" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_19_883", 1 - %"$c128_886" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 - %"$$cadd_19_call_887" = call { i8*, i8* }* %"$$cadd_19_fptr_884"(i8* %"$$cadd_19_envptr_885", { i8*, i8* }* %"$c128_886") - store { i8*, i8* }* %"$$cadd_19_call_887", { i8*, i8* }** %"$cadd_20", align 8 - %"$$cadd_20_888" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_20", align 8 - store { i8*, i8* }* %"$$cadd_20_888", { i8*, i8* }** %c256, align 8 - %"$gasrem_889" = load i64, i64* @_gasrem, align 8 - %"$gascmp_890" = icmp ugt i64 1, %"$gasrem_889" - br i1 %"$gascmp_890", label %"$out_of_gas_891", label %"$have_gas_892" - -"$out_of_gas_891": ; preds = %"$have_gas_876" - call void @_out_of_gas() - br label %"$have_gas_892" - -"$have_gas_892": ; preds = %"$out_of_gas_891", %"$have_gas_876" - %"$consume_893" = sub i64 %"$gasrem_889", 1 - store i64 %"$consume_893", i64* @_gasrem, align 8 + %"$gasrem_825" = load i64, i64* @_gasrem, align 8 + %"$gascmp_826" = icmp ugt i64 1, %"$gasrem_825" + br i1 %"$gascmp_826", label %"$out_of_gas_827", label %"$have_gas_828" + +"$out_of_gas_827": ; preds = %"$have_gas_823" + call void @_out_of_gas() + br label %"$have_gas_828" + +"$have_gas_828": ; preds = %"$out_of_gas_827", %"$have_gas_823" + %"$consume_829" = sub i64 %"$gasrem_825", 1 + store i64 %"$consume_829", i64* @_gasrem, align 8 + %"$cadd_13" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 + %"$cadd_830" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cadd, align 8 + %"$cadd_fptr_831" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_830", 0 + %"$cadd_envptr_832" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cadd_830", 1 + %"$c128_833" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 + %"$cadd_call_834" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_fptr_831"(i8* %"$cadd_envptr_832", { i8*, i8* }* %"$c128_833") + store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cadd_call_834", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_13", align 8 + %"$cadd_14" = alloca { i8*, i8* }*, align 8 + %"$$cadd_13_835" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cadd_13", align 8 + %"$$cadd_13_fptr_836" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_13_835", 0 + %"$$cadd_13_envptr_837" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cadd_13_835", 1 + %"$c128_838" = load { i8*, i8* }*, { i8*, i8* }** %c128, align 8 + %"$$cadd_13_call_839" = call { i8*, i8* }* %"$$cadd_13_fptr_836"(i8* %"$$cadd_13_envptr_837", { i8*, i8* }* %"$c128_838") + store { i8*, i8* }* %"$$cadd_13_call_839", { i8*, i8* }** %"$cadd_14", align 8 + %"$$cadd_14_840" = load { i8*, i8* }*, { i8*, i8* }** %"$cadd_14", align 8 + store { i8*, i8* }* %"$$cadd_14_840", { i8*, i8* }** %c256, align 8 + %"$gasrem_841" = load i64, i64* @_gasrem, align 8 + %"$gascmp_842" = icmp ugt i64 1, %"$gasrem_841" + br i1 %"$gascmp_842", label %"$out_of_gas_843", label %"$have_gas_844" + +"$out_of_gas_843": ; preds = %"$have_gas_828" + call void @_out_of_gas() + br label %"$have_gas_844" + +"$have_gas_844": ; preds = %"$out_of_gas_843", %"$have_gas_828" + %"$consume_845" = sub i64 %"$gasrem_841", 1 + store i64 %"$consume_845", i64* @_gasrem, align 8 %c65536 = alloca { i8*, i8* }*, align 8 - %"$gasrem_894" = load i64, i64* @_gasrem, align 8 - %"$gascmp_895" = icmp ugt i64 1, %"$gasrem_894" - br i1 %"$gascmp_895", label %"$out_of_gas_896", label %"$have_gas_897" - -"$out_of_gas_896": ; preds = %"$have_gas_892" - call void @_out_of_gas() - br label %"$have_gas_897" - -"$have_gas_897": ; preds = %"$out_of_gas_896", %"$have_gas_892" - %"$consume_898" = sub i64 %"$gasrem_894", 1 - store i64 %"$consume_898", i64* @_gasrem, align 8 - %"$cmul_21" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$cmul_899" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %cmul, align 8 - %"$cmul_fptr_900" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_899", 0 - %"$cmul_envptr_901" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$cmul_899", 1 - %"$c256_902" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 - %"$cmul_call_903" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_fptr_900"(i8* %"$cmul_envptr_901", { i8*, i8* }* %"$c256_902") - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$cmul_call_903", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_21", align 8 - %"$cmul_22" = alloca { i8*, i8* }*, align 8 - %"$$cmul_21_904" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$cmul_21", align 8 - %"$$cmul_21_fptr_905" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_21_904", 0 - %"$$cmul_21_envptr_906" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$cmul_21_904", 1 - %"$c256_907" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 - %"$$cmul_21_call_908" = call { i8*, i8* }* %"$$cmul_21_fptr_905"(i8* %"$$cmul_21_envptr_906", { i8*, i8* }* %"$c256_907") - store { i8*, i8* }* %"$$cmul_21_call_908", { i8*, i8* }** %"$cmul_22", align 8 - %"$$cmul_22_909" = load { i8*, i8* }*, { i8*, i8* }** %"$cmul_22", align 8 - store { i8*, i8* }* %"$$cmul_22_909", { i8*, i8* }** %c65536, align 8 - %"$gasrem_910" = load i64, i64* @_gasrem, align 8 - %"$gascmp_911" = icmp ugt i64 1, %"$gasrem_910" - br i1 %"$gascmp_911", label %"$out_of_gas_912", label %"$have_gas_913" - -"$out_of_gas_912": ; preds = %"$have_gas_897" - call void @_out_of_gas() - br label %"$have_gas_913" - -"$have_gas_913": ; preds = %"$out_of_gas_912", %"$have_gas_897" - %"$consume_914" = sub i64 %"$gasrem_910", 1 - store i64 %"$consume_914", i64* @_gasrem, align 8 - %"$church_nat_to_uint32_23" = alloca %Uint32, align 8 - %"$church_nat_to_uint32_915" = load { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8 - %"$church_nat_to_uint32_fptr_916" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_915", 0 - %"$church_nat_to_uint32_envptr_917" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_915", 1 - %"$c65536_918" = load { i8*, i8* }*, { i8*, i8* }** %c65536, align 8 - %"$church_nat_to_uint32_call_919" = call %Uint32 %"$church_nat_to_uint32_fptr_916"(i8* %"$church_nat_to_uint32_envptr_917", { i8*, i8* }* %"$c65536_918") - store %Uint32 %"$church_nat_to_uint32_call_919", %Uint32* %"$church_nat_to_uint32_23", align 4 - %"$$church_nat_to_uint32_23_920" = load %Uint32, %Uint32* %"$church_nat_to_uint32_23", align 4 - store %Uint32 %"$$church_nat_to_uint32_23_920", %Uint32* %"$expr_24", align 4 - %"$$expr_24_921" = load %Uint32, %Uint32* %"$expr_24", align 4 - ret %Uint32 %"$$expr_24_921" + %"$gasrem_846" = load i64, i64* @_gasrem, align 8 + %"$gascmp_847" = icmp ugt i64 1, %"$gasrem_846" + br i1 %"$gascmp_847", label %"$out_of_gas_848", label %"$have_gas_849" + +"$out_of_gas_848": ; preds = %"$have_gas_844" + call void @_out_of_gas() + br label %"$have_gas_849" + +"$have_gas_849": ; preds = %"$out_of_gas_848", %"$have_gas_844" + %"$consume_850" = sub i64 %"$gasrem_846", 1 + store i64 %"$consume_850", i64* @_gasrem, align 8 + %"$cmul_851" = load { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %cmul, align 8 + %"$cmul_fptr_852" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_851", 0 + %"$cmul_envptr_853" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$cmul_851", 1 + %"$c256_854" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 + %"$c256_855" = load { i8*, i8* }*, { i8*, i8* }** %c256, align 8 + %"$cmul_call_856" = call { i8*, i8* }* %"$cmul_fptr_852"(i8* %"$cmul_envptr_853", { i8*, i8* }* %"$c256_854", { i8*, i8* }* %"$c256_855") + store { i8*, i8* }* %"$cmul_call_856", { i8*, i8* }** %c65536, align 8 + %"$gasrem_857" = load i64, i64* @_gasrem, align 8 + %"$gascmp_858" = icmp ugt i64 1, %"$gasrem_857" + br i1 %"$gascmp_858", label %"$out_of_gas_859", label %"$have_gas_860" + +"$out_of_gas_859": ; preds = %"$have_gas_849" + call void @_out_of_gas() + br label %"$have_gas_860" + +"$have_gas_860": ; preds = %"$out_of_gas_859", %"$have_gas_849" + %"$consume_861" = sub i64 %"$gasrem_857", 1 + store i64 %"$consume_861", i64* @_gasrem, align 8 + %"$church_nat_to_uint32_15" = alloca %Uint32, align 8 + %"$church_nat_to_uint32_862" = load { %Uint32 (i8*, { i8*, i8* }*)*, i8* }, { %Uint32 (i8*, { i8*, i8* }*)*, i8* }* %church_nat_to_uint32, align 8 + %"$church_nat_to_uint32_fptr_863" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_862", 0 + %"$church_nat_to_uint32_envptr_864" = extractvalue { %Uint32 (i8*, { i8*, i8* }*)*, i8* } %"$church_nat_to_uint32_862", 1 + %"$c65536_865" = load { i8*, i8* }*, { i8*, i8* }** %c65536, align 8 + %"$church_nat_to_uint32_call_866" = call %Uint32 %"$church_nat_to_uint32_fptr_863"(i8* %"$church_nat_to_uint32_envptr_864", { i8*, i8* }* %"$c65536_865") + store %Uint32 %"$church_nat_to_uint32_call_866", %Uint32* %"$church_nat_to_uint32_15", align 4 + %"$$church_nat_to_uint32_15_867" = load %Uint32, %Uint32* %"$church_nat_to_uint32_15", align 4 + store %Uint32 %"$$church_nat_to_uint32_15_867", %Uint32* %"$expr_16", align 4 + %"$$expr_16_868" = load %Uint32, %Uint32* %"$expr_16", align 4 + ret %Uint32 %"$$expr_16_868" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_922" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_923" = alloca %Uint32, align 8 - %"$memvoidcast_924" = bitcast %Uint32* %"$pval_923" to i8* - store %Uint32 %"$exprval_922", %Uint32* %"$pval_923", align 4 - %"$execptr_load_925" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_925", %_TyDescrTy_Typ* @"$TyDescr_Uint32_77", i8* %"$memvoidcast_924") + %"$exprval_869" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_870" = alloca %Uint32, align 8 + %"$memvoidcast_871" = bitcast %Uint32* %"$pval_870" to i8* + store %Uint32 %"$exprval_869", %Uint32* %"$pval_870", align 4 + %"$execptr_load_872" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_872", %_TyDescrTy_Typ* @"$TyDescr_Uint32_67", i8* %"$memvoidcast_871") ret void } diff --git a/tests/codegen/expr/gold/church_nat_stlc.scilexp.gold b/tests/codegen/expr/gold/church_nat_stlc.scilexp.gold index 069b66d9..028ad3a4 100644 --- a/tests/codegen/expr/gold/church_nat_stlc.scilexp.gold +++ b/tests/codegen/expr/gold/church_nat_stlc.scilexp.gold @@ -1,897 +1,865 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_71" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_67" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$ParamDescr_812" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_788" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_813" = type { %ParamDescrString, i32, %"$ParamDescr_812"* } -%"$$fundef_69_env_106" = type { %Uint32 } +%"$TransDescr_789" = type { %ParamDescrString, i32, %"$ParamDescr_788"* } +%"$$fundef_65_env_102" = type { %Uint32 } %Uint32 = type { i32 } -%"$$fundef_67_env_107" = type {} -%"$$fundef_65_env_108" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_63_env_109" = type {} -%"$$fundef_61_env_110" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_59_env_111" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_57_env_112" = type {} -%"$$fundef_55_env_113" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* } } -%"$$fundef_53_env_114" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_51_env_115" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_49_env_116" = type {} -%"$$fundef_47_env_117" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } -%"$$fundef_45_env_118" = type {} -%"$$fundef_43_env_119" = type { { %Uint32 (i8*, %Uint32)*, i8* } } -%"$$fundef_41_env_120" = type {} -%"$$fundef_39_env_121" = type { { %Uint32 (i8*, %Uint32)*, i8* } } -%"$$fundef_37_env_122" = type {} +%"$$fundef_63_env_103" = type {} +%"$$fundef_61_env_104" = type {} +%"$$fundef_59_env_105" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } +%"$$fundef_57_env_106" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } +%"$$fundef_55_env_107" = type {} +%"$$fundef_53_env_108" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* } } +%"$$fundef_51_env_109" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } +%"$$fundef_49_env_110" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } +%"$$fundef_47_env_111" = type {} +%"$$fundef_45_env_112" = type { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } } +%"$$fundef_43_env_113" = type {} +%"$$fundef_41_env_114" = type { { %Uint32 (i8*, %Uint32)*, i8* } } +%"$$fundef_39_env_115" = type {} +%"$$fundef_37_env_116" = type { { %Uint32 (i8*, %Uint32)*, i8* } } +%"$$fundef_35_env_117" = type {} @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_72" = global %"$TyDescrTy_PrimTyp_71" zeroinitializer -@"$TyDescr_Int32_73" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Int32_Prim_72" to i8*) } -@"$TyDescr_Uint32_Prim_74" = global %"$TyDescrTy_PrimTyp_71" { i32 1, i32 0 } -@"$TyDescr_Uint32_75" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Uint32_Prim_74" to i8*) } -@"$TyDescr_Int64_Prim_76" = global %"$TyDescrTy_PrimTyp_71" { i32 0, i32 1 } -@"$TyDescr_Int64_77" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Int64_Prim_76" to i8*) } -@"$TyDescr_Uint64_Prim_78" = global %"$TyDescrTy_PrimTyp_71" { i32 1, i32 1 } -@"$TyDescr_Uint64_79" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Uint64_Prim_78" to i8*) } -@"$TyDescr_Int128_Prim_80" = global %"$TyDescrTy_PrimTyp_71" { i32 0, i32 2 } -@"$TyDescr_Int128_81" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Int128_Prim_80" to i8*) } -@"$TyDescr_Uint128_Prim_82" = global %"$TyDescrTy_PrimTyp_71" { i32 1, i32 2 } -@"$TyDescr_Uint128_83" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Uint128_Prim_82" to i8*) } -@"$TyDescr_Int256_Prim_84" = global %"$TyDescrTy_PrimTyp_71" { i32 0, i32 3 } -@"$TyDescr_Int256_85" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Int256_Prim_84" to i8*) } -@"$TyDescr_Uint256_Prim_86" = global %"$TyDescrTy_PrimTyp_71" { i32 1, i32 3 } -@"$TyDescr_Uint256_87" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Uint256_Prim_86" to i8*) } -@"$TyDescr_String_Prim_88" = global %"$TyDescrTy_PrimTyp_71" { i32 2, i32 0 } -@"$TyDescr_String_89" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_String_Prim_88" to i8*) } -@"$TyDescr_Bnum_Prim_90" = global %"$TyDescrTy_PrimTyp_71" { i32 3, i32 0 } -@"$TyDescr_Bnum_91" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Bnum_Prim_90" to i8*) } -@"$TyDescr_Message_Prim_92" = global %"$TyDescrTy_PrimTyp_71" { i32 4, i32 0 } -@"$TyDescr_Message_93" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Message_Prim_92" to i8*) } -@"$TyDescr_Event_Prim_94" = global %"$TyDescrTy_PrimTyp_71" { i32 5, i32 0 } -@"$TyDescr_Event_95" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Event_Prim_94" to i8*) } -@"$TyDescr_Exception_Prim_96" = global %"$TyDescrTy_PrimTyp_71" { i32 6, i32 0 } -@"$TyDescr_Exception_97" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Exception_Prim_96" to i8*) } -@"$TyDescr_Bystr_Prim_98" = global %"$TyDescrTy_PrimTyp_71" { i32 7, i32 0 } -@"$TyDescr_Bystr_99" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_71"* @"$TyDescr_Bystr_Prim_98" to i8*) } -@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_95", %_TyDescrTy_Typ* @"$TyDescr_Int64_77", %_TyDescrTy_Typ* @"$TyDescr_Uint256_87", %_TyDescrTy_Typ* @"$TyDescr_Uint32_75", %_TyDescrTy_Typ* @"$TyDescr_Uint64_79", %_TyDescrTy_Typ* @"$TyDescr_Bnum_91", %_TyDescrTy_Typ* @"$TyDescr_Uint128_83", %_TyDescrTy_Typ* @"$TyDescr_Exception_97", %_TyDescrTy_Typ* @"$TyDescr_String_89", %_TyDescrTy_Typ* @"$TyDescr_Int256_85", %_TyDescrTy_Typ* @"$TyDescr_Int128_81", %_TyDescrTy_Typ* @"$TyDescr_Bystr_99", %_TyDescrTy_Typ* @"$TyDescr_Message_93", %_TyDescrTy_Typ* @"$TyDescr_Int32_73"] +@"$TyDescr_Int32_Prim_68" = global %"$TyDescrTy_PrimTyp_67" zeroinitializer +@"$TyDescr_Int32_69" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Int32_Prim_68" to i8*) } +@"$TyDescr_Uint32_Prim_70" = global %"$TyDescrTy_PrimTyp_67" { i32 1, i32 0 } +@"$TyDescr_Uint32_71" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Uint32_Prim_70" to i8*) } +@"$TyDescr_Int64_Prim_72" = global %"$TyDescrTy_PrimTyp_67" { i32 0, i32 1 } +@"$TyDescr_Int64_73" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Int64_Prim_72" to i8*) } +@"$TyDescr_Uint64_Prim_74" = global %"$TyDescrTy_PrimTyp_67" { i32 1, i32 1 } +@"$TyDescr_Uint64_75" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Uint64_Prim_74" to i8*) } +@"$TyDescr_Int128_Prim_76" = global %"$TyDescrTy_PrimTyp_67" { i32 0, i32 2 } +@"$TyDescr_Int128_77" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Int128_Prim_76" to i8*) } +@"$TyDescr_Uint128_Prim_78" = global %"$TyDescrTy_PrimTyp_67" { i32 1, i32 2 } +@"$TyDescr_Uint128_79" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Uint128_Prim_78" to i8*) } +@"$TyDescr_Int256_Prim_80" = global %"$TyDescrTy_PrimTyp_67" { i32 0, i32 3 } +@"$TyDescr_Int256_81" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Int256_Prim_80" to i8*) } +@"$TyDescr_Uint256_Prim_82" = global %"$TyDescrTy_PrimTyp_67" { i32 1, i32 3 } +@"$TyDescr_Uint256_83" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Uint256_Prim_82" to i8*) } +@"$TyDescr_String_Prim_84" = global %"$TyDescrTy_PrimTyp_67" { i32 2, i32 0 } +@"$TyDescr_String_85" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_String_Prim_84" to i8*) } +@"$TyDescr_Bnum_Prim_86" = global %"$TyDescrTy_PrimTyp_67" { i32 3, i32 0 } +@"$TyDescr_Bnum_87" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Bnum_Prim_86" to i8*) } +@"$TyDescr_Message_Prim_88" = global %"$TyDescrTy_PrimTyp_67" { i32 4, i32 0 } +@"$TyDescr_Message_89" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Message_Prim_88" to i8*) } +@"$TyDescr_Event_Prim_90" = global %"$TyDescrTy_PrimTyp_67" { i32 5, i32 0 } +@"$TyDescr_Event_91" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Event_Prim_90" to i8*) } +@"$TyDescr_Exception_Prim_92" = global %"$TyDescrTy_PrimTyp_67" { i32 6, i32 0 } +@"$TyDescr_Exception_93" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Exception_Prim_92" to i8*) } +@"$TyDescr_Bystr_Prim_94" = global %"$TyDescrTy_PrimTyp_67" { i32 7, i32 0 } +@"$TyDescr_Bystr_95" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_67"* @"$TyDescr_Bystr_Prim_94" to i8*) } +@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_91", %_TyDescrTy_Typ* @"$TyDescr_Int64_73", %_TyDescrTy_Typ* @"$TyDescr_Uint256_83", %_TyDescrTy_Typ* @"$TyDescr_Uint32_71", %_TyDescrTy_Typ* @"$TyDescr_Uint64_75", %_TyDescrTy_Typ* @"$TyDescr_Bnum_87", %_TyDescrTy_Typ* @"$TyDescr_Uint128_79", %_TyDescrTy_Typ* @"$TyDescr_Exception_93", %_TyDescrTy_Typ* @"$TyDescr_String_85", %_TyDescrTy_Typ* @"$TyDescr_Int256_81", %_TyDescrTy_Typ* @"$TyDescr_Int128_77", %_TyDescrTy_Typ* @"$TyDescr_Bystr_95", %_TyDescrTy_Typ* @"$TyDescr_Message_89", %_TyDescrTy_Typ* @"$TyDescr_Int32_69"] @_tydescr_table_length = constant i32 14 -@_contract_parameters = constant [0 x %"$ParamDescr_812"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_788"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_813"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_789"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Uint32 @"$fundef_69"(%"$$fundef_69_env_106"* %0, %Uint32 %1) { +define internal %Uint32 @"$fundef_65"(%"$$fundef_65_env_102"* %0, %Uint32 %1) { entry: - %"$$fundef_69_env_one_496" = getelementptr inbounds %"$$fundef_69_env_106", %"$$fundef_69_env_106"* %0, i32 0, i32 0 - %"$one_envload_497" = load %Uint32, %Uint32* %"$$fundef_69_env_one_496", align 4 + %"$$fundef_65_env_one_477" = getelementptr inbounds %"$$fundef_65_env_102", %"$$fundef_65_env_102"* %0, i32 0, i32 0 + %"$one_envload_478" = load %Uint32, %Uint32* %"$$fundef_65_env_one_477", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_497", %Uint32* %one, align 4 - %"$retval_70" = alloca %Uint32, align 8 - %"$gasrem_498" = load i64, i64* @_gasrem, align 8 - %"$gascmp_499" = icmp ugt i64 4, %"$gasrem_498" - br i1 %"$gascmp_499", label %"$out_of_gas_500", label %"$have_gas_501" - -"$out_of_gas_500": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_501" - -"$have_gas_501": ; preds = %"$out_of_gas_500", %entry - %"$consume_502" = sub i64 %"$gasrem_498", 4 - store i64 %"$consume_502", i64* @_gasrem, align 8 - %"$one_503" = load %Uint32, %Uint32* %one, align 4 - %"$add_call_504" = call %Uint32 @_add_Uint32(%Uint32 %"$one_503", %Uint32 %1) - store %Uint32 %"$add_call_504", %Uint32* %"$retval_70", align 4 - %"$$retval_70_505" = load %Uint32, %Uint32* %"$retval_70", align 4 - ret %Uint32 %"$$retval_70_505" + store %Uint32 %"$one_envload_478", %Uint32* %one, align 4 + %"$retval_66" = alloca %Uint32, align 8 + %"$gasrem_479" = load i64, i64* @_gasrem, align 8 + %"$gascmp_480" = icmp ugt i64 4, %"$gasrem_479" + br i1 %"$gascmp_480", label %"$out_of_gas_481", label %"$have_gas_482" + +"$out_of_gas_481": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_482" + +"$have_gas_482": ; preds = %"$out_of_gas_481", %entry + %"$consume_483" = sub i64 %"$gasrem_479", 4 + store i64 %"$consume_483", i64* @_gasrem, align 8 + %"$one_484" = load %Uint32, %Uint32* %one, align 4 + %"$add_call_485" = call %Uint32 @_add_Uint32(%Uint32 %"$one_484", %Uint32 %1) + store %Uint32 %"$add_call_485", %Uint32* %"$retval_66", align 4 + %"$$retval_66_486" = load %Uint32, %Uint32* %"$retval_66", align 4 + ret %Uint32 %"$$retval_66_486" } -define internal %Uint32 @"$fundef_67"(%"$$fundef_67_env_107"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { +define internal %Uint32 @"$fundef_63"(%"$$fundef_63_env_103"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { entry: - %"$retval_68" = alloca %Uint32, align 8 - %"$gasrem_444" = load i64, i64* @_gasrem, align 8 - %"$gascmp_445" = icmp ugt i64 1, %"$gasrem_444" - br i1 %"$gascmp_445", label %"$out_of_gas_446", label %"$have_gas_447" + %"$retval_64" = alloca %Uint32, align 8 + %"$gasrem_425" = load i64, i64* @_gasrem, align 8 + %"$gascmp_426" = icmp ugt i64 1, %"$gasrem_425" + br i1 %"$gascmp_426", label %"$out_of_gas_427", label %"$have_gas_428" -"$out_of_gas_446": ; preds = %entry +"$out_of_gas_427": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_447" + br label %"$have_gas_428" -"$have_gas_447": ; preds = %"$out_of_gas_446", %entry - %"$consume_448" = sub i64 %"$gasrem_444", 1 - store i64 %"$consume_448", i64* @_gasrem, align 8 +"$have_gas_428": ; preds = %"$out_of_gas_427", %entry + %"$consume_429" = sub i64 %"$gasrem_425", 1 + store i64 %"$consume_429", i64* @_gasrem, align 8 %zero = alloca %Uint32, align 8 - %"$gasrem_449" = load i64, i64* @_gasrem, align 8 - %"$gascmp_450" = icmp ugt i64 1, %"$gasrem_449" - br i1 %"$gascmp_450", label %"$out_of_gas_451", label %"$have_gas_452" + %"$gasrem_430" = load i64, i64* @_gasrem, align 8 + %"$gascmp_431" = icmp ugt i64 1, %"$gasrem_430" + br i1 %"$gascmp_431", label %"$out_of_gas_432", label %"$have_gas_433" -"$out_of_gas_451": ; preds = %"$have_gas_447" +"$out_of_gas_432": ; preds = %"$have_gas_428" call void @_out_of_gas() - br label %"$have_gas_452" + br label %"$have_gas_433" -"$have_gas_452": ; preds = %"$out_of_gas_451", %"$have_gas_447" - %"$consume_453" = sub i64 %"$gasrem_449", 1 - store i64 %"$consume_453", i64* @_gasrem, align 8 +"$have_gas_433": ; preds = %"$out_of_gas_432", %"$have_gas_428" + %"$consume_434" = sub i64 %"$gasrem_430", 1 + store i64 %"$consume_434", i64* @_gasrem, align 8 store %Uint32 zeroinitializer, %Uint32* %zero, align 4 - %"$gasrem_454" = load i64, i64* @_gasrem, align 8 - %"$gascmp_455" = icmp ugt i64 1, %"$gasrem_454" - br i1 %"$gascmp_455", label %"$out_of_gas_456", label %"$have_gas_457" + %"$gasrem_435" = load i64, i64* @_gasrem, align 8 + %"$gascmp_436" = icmp ugt i64 1, %"$gasrem_435" + br i1 %"$gascmp_436", label %"$out_of_gas_437", label %"$have_gas_438" -"$out_of_gas_456": ; preds = %"$have_gas_452" +"$out_of_gas_437": ; preds = %"$have_gas_433" call void @_out_of_gas() - br label %"$have_gas_457" + br label %"$have_gas_438" -"$have_gas_457": ; preds = %"$out_of_gas_456", %"$have_gas_452" - %"$consume_458" = sub i64 %"$gasrem_454", 1 - store i64 %"$consume_458", i64* @_gasrem, align 8 +"$have_gas_438": ; preds = %"$out_of_gas_437", %"$have_gas_433" + %"$consume_439" = sub i64 %"$gasrem_435", 1 + store i64 %"$consume_439", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_459" = load i64, i64* @_gasrem, align 8 - %"$gascmp_460" = icmp ugt i64 1, %"$gasrem_459" - br i1 %"$gascmp_460", label %"$out_of_gas_461", label %"$have_gas_462" + %"$gasrem_440" = load i64, i64* @_gasrem, align 8 + %"$gascmp_441" = icmp ugt i64 1, %"$gasrem_440" + br i1 %"$gascmp_441", label %"$out_of_gas_442", label %"$have_gas_443" -"$out_of_gas_461": ; preds = %"$have_gas_457" +"$out_of_gas_442": ; preds = %"$have_gas_438" call void @_out_of_gas() - br label %"$have_gas_462" + br label %"$have_gas_443" -"$have_gas_462": ; preds = %"$out_of_gas_461", %"$have_gas_457" - %"$consume_463" = sub i64 %"$gasrem_459", 1 - store i64 %"$consume_463", i64* @_gasrem, align 8 +"$have_gas_443": ; preds = %"$out_of_gas_442", %"$have_gas_438" + %"$consume_444" = sub i64 %"$gasrem_440", 1 + store i64 %"$consume_444", i64* @_gasrem, align 8 store %Uint32 { i32 1 }, %Uint32* %one, align 4 - %"$gasrem_464" = load i64, i64* @_gasrem, align 8 - %"$gascmp_465" = icmp ugt i64 1, %"$gasrem_464" - br i1 %"$gascmp_465", label %"$out_of_gas_466", label %"$have_gas_467" + %"$gasrem_445" = load i64, i64* @_gasrem, align 8 + %"$gascmp_446" = icmp ugt i64 1, %"$gasrem_445" + br i1 %"$gascmp_446", label %"$out_of_gas_447", label %"$have_gas_448" -"$out_of_gas_466": ; preds = %"$have_gas_462" +"$out_of_gas_447": ; preds = %"$have_gas_443" call void @_out_of_gas() - br label %"$have_gas_467" + br label %"$have_gas_448" -"$have_gas_467": ; preds = %"$out_of_gas_466", %"$have_gas_462" - %"$consume_468" = sub i64 %"$gasrem_464", 1 - store i64 %"$consume_468", i64* @_gasrem, align 8 +"$have_gas_448": ; preds = %"$out_of_gas_447", %"$have_gas_443" + %"$consume_449" = sub i64 %"$gasrem_445", 1 + store i64 %"$consume_449", i64* @_gasrem, align 8 %add1 = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_470" = icmp ugt i64 1, %"$gasrem_469" - br i1 %"$gascmp_470", label %"$out_of_gas_471", label %"$have_gas_472" - -"$out_of_gas_471": ; preds = %"$have_gas_467" - call void @_out_of_gas() - br label %"$have_gas_472" - -"$have_gas_472": ; preds = %"$out_of_gas_471", %"$have_gas_467" - %"$consume_473" = sub i64 %"$gasrem_469", 1 - store i64 %"$consume_473", i64* @_gasrem, align 8 - %"$$fundef_69_envp_474_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_69_envp_474_salloc" = call i8* @_salloc(i8* %"$$fundef_69_envp_474_load", i64 4) - %"$$fundef_69_envp_474" = bitcast i8* %"$$fundef_69_envp_474_salloc" to %"$$fundef_69_env_106"* - %"$$fundef_69_env_voidp_476" = bitcast %"$$fundef_69_env_106"* %"$$fundef_69_envp_474" to i8* - %"$$fundef_69_cloval_477" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_69_env_106"*, %Uint32)* @"$fundef_69" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_69_env_voidp_476", 1 - %"$$fundef_69_env_one_478" = getelementptr inbounds %"$$fundef_69_env_106", %"$$fundef_69_env_106"* %"$$fundef_69_envp_474", i32 0, i32 0 - %"$one_479" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_479", %Uint32* %"$$fundef_69_env_one_478", align 4 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_69_cloval_477", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 - %"$gasrem_480" = load i64, i64* @_gasrem, align 8 - %"$gascmp_481" = icmp ugt i64 1, %"$gasrem_480" - br i1 %"$gascmp_481", label %"$out_of_gas_482", label %"$have_gas_483" - -"$out_of_gas_482": ; preds = %"$have_gas_472" - call void @_out_of_gas() - br label %"$have_gas_483" - -"$have_gas_483": ; preds = %"$out_of_gas_482", %"$have_gas_472" - %"$consume_484" = sub i64 %"$gasrem_480", 1 - store i64 %"$consume_484", i64* @_gasrem, align 8 + %"$gasrem_450" = load i64, i64* @_gasrem, align 8 + %"$gascmp_451" = icmp ugt i64 1, %"$gasrem_450" + br i1 %"$gascmp_451", label %"$out_of_gas_452", label %"$have_gas_453" + +"$out_of_gas_452": ; preds = %"$have_gas_448" + call void @_out_of_gas() + br label %"$have_gas_453" + +"$have_gas_453": ; preds = %"$out_of_gas_452", %"$have_gas_448" + %"$consume_454" = sub i64 %"$gasrem_450", 1 + store i64 %"$consume_454", i64* @_gasrem, align 8 + %"$$fundef_65_envp_455_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_65_envp_455_salloc" = call i8* @_salloc(i8* %"$$fundef_65_envp_455_load", i64 4) + %"$$fundef_65_envp_455" = bitcast i8* %"$$fundef_65_envp_455_salloc" to %"$$fundef_65_env_102"* + %"$$fundef_65_env_voidp_457" = bitcast %"$$fundef_65_env_102"* %"$$fundef_65_envp_455" to i8* + %"$$fundef_65_cloval_458" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_65_env_102"*, %Uint32)* @"$fundef_65" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_65_env_voidp_457", 1 + %"$$fundef_65_env_one_459" = getelementptr inbounds %"$$fundef_65_env_102", %"$$fundef_65_env_102"* %"$$fundef_65_envp_455", i32 0, i32 0 + %"$one_460" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_460", %Uint32* %"$$fundef_65_env_one_459", align 4 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_65_cloval_458", { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 + %"$gasrem_461" = load i64, i64* @_gasrem, align 8 + %"$gascmp_462" = icmp ugt i64 1, %"$gasrem_461" + br i1 %"$gascmp_462", label %"$out_of_gas_463", label %"$have_gas_464" + +"$out_of_gas_463": ; preds = %"$have_gas_453" + call void @_out_of_gas() + br label %"$have_gas_464" + +"$have_gas_464": ; preds = %"$out_of_gas_463", %"$have_gas_453" + %"$consume_465" = sub i64 %"$gasrem_461", 1 + store i64 %"$consume_465", i64* @_gasrem, align 8 %"$c_15" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$c_fptr_485" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 0 - %"$c_envptr_486" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 1 - %"$add1_487" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 - %"$c_call_488" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c_fptr_485"(i8* %"$c_envptr_486", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_487") - store { %Uint32 (i8*, %Uint32)*, i8* } %"$c_call_488", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_15", align 8 + %"$c_fptr_466" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 0 + %"$c_envptr_467" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, 1 + %"$add1_468" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add1, align 8 + %"$c_call_469" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$c_fptr_466"(i8* %"$c_envptr_467", { %Uint32 (i8*, %Uint32)*, i8* } %"$add1_468") + store { %Uint32 (i8*, %Uint32)*, i8* } %"$c_call_469", { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_15", align 8 %"$c_16" = alloca %Uint32, align 8 - %"$$c_15_489" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_15", align 8 - %"$$c_15_fptr_490" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_15_489", 0 - %"$$c_15_envptr_491" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_15_489", 1 - %"$zero_492" = load %Uint32, %Uint32* %zero, align 4 - %"$$c_15_call_493" = call %Uint32 %"$$c_15_fptr_490"(i8* %"$$c_15_envptr_491", %Uint32 %"$zero_492") - store %Uint32 %"$$c_15_call_493", %Uint32* %"$c_16", align 4 - %"$$c_16_494" = load %Uint32, %Uint32* %"$c_16", align 4 - store %Uint32 %"$$c_16_494", %Uint32* %"$retval_68", align 4 - %"$$retval_68_495" = load %Uint32, %Uint32* %"$retval_68", align 4 - ret %Uint32 %"$$retval_68_495" + %"$$c_15_470" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$c_15", align 8 + %"$$c_15_fptr_471" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_15_470", 0 + %"$$c_15_envptr_472" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$c_15_470", 1 + %"$zero_473" = load %Uint32, %Uint32* %zero, align 4 + %"$$c_15_call_474" = call %Uint32 %"$$c_15_fptr_471"(i8* %"$$c_15_envptr_472", %Uint32 %"$zero_473") + store %Uint32 %"$$c_15_call_474", %Uint32* %"$c_16", align 4 + %"$$c_16_475" = load %Uint32, %Uint32* %"$c_16", align 4 + store %Uint32 %"$$c_16_475", %Uint32* %"$retval_64", align 4 + %"$$retval_64_476" = load %Uint32, %Uint32* %"$retval_64", align 4 + ret %Uint32 %"$$retval_64_476" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_65"(%"$$fundef_65_env_108"* %0, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %1) { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_61"(%"$$fundef_61_env_104"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %2) { entry: - %"$$fundef_65_env_m_431" = getelementptr inbounds %"$$fundef_65_env_108", %"$$fundef_65_env_108"* %0, i32 0, i32 0 - %"$m_envload_432" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_65_env_m_431", align 8 - %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_432", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$retval_66" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_433" = load i64, i64* @_gasrem, align 8 - %"$gascmp_434" = icmp ugt i64 1, %"$gasrem_433" - br i1 %"$gascmp_434", label %"$out_of_gas_435", label %"$have_gas_436" + %"$retval_62" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_415" = load i64, i64* @_gasrem, align 8 + %"$gascmp_416" = icmp ugt i64 1, %"$gasrem_415" + br i1 %"$gascmp_416", label %"$out_of_gas_417", label %"$have_gas_418" -"$out_of_gas_435": ; preds = %entry +"$out_of_gas_417": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_436" + br label %"$have_gas_418" -"$have_gas_436": ; preds = %"$out_of_gas_435", %entry - %"$consume_437" = sub i64 %"$gasrem_433", 1 - store i64 %"$consume_437", i64* @_gasrem, align 8 +"$have_gas_418": ; preds = %"$out_of_gas_417", %entry + %"$consume_419" = sub i64 %"$gasrem_415", 1 + store i64 %"$consume_419", i64* @_gasrem, align 8 %"$n_14" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$n_fptr_438" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %1, 0 - %"$n_envptr_439" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %1, 1 - %"$m_440" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$n_call_441" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_438"(i8* %"$n_envptr_439", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_440") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_441", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_14", align 8 - %"$$n_14_442" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_14", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$n_14_442", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_66", align 8 - %"$$retval_66_443" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_66", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_66_443" -} - -define internal { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } @"$fundef_63"(%"$$fundef_63_env_109"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { -entry: - %"$retval_64" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_420" = load i64, i64* @_gasrem, align 8 - %"$gascmp_421" = icmp ugt i64 1, %"$gasrem_420" - br i1 %"$gascmp_421", label %"$out_of_gas_422", label %"$have_gas_423" - -"$out_of_gas_422": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_423" - -"$have_gas_423": ; preds = %"$out_of_gas_422", %entry - %"$consume_424" = sub i64 %"$gasrem_420", 1 - store i64 %"$consume_424", i64* @_gasrem, align 8 - %"$$fundef_65_envp_425_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_65_envp_425_salloc" = call i8* @_salloc(i8* %"$$fundef_65_envp_425_load", i64 16) - %"$$fundef_65_envp_425" = bitcast i8* %"$$fundef_65_envp_425_salloc" to %"$$fundef_65_env_108"* - %"$$fundef_65_env_voidp_427" = bitcast %"$$fundef_65_env_108"* %"$$fundef_65_envp_425" to i8* - %"$$fundef_65_cloval_428" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_65_env_108"*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })* @"$fundef_65" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_65_env_voidp_427", 1 - %"$$fundef_65_env_m_429" = getelementptr inbounds %"$$fundef_65_env_108", %"$$fundef_65_env_108"* %"$$fundef_65_envp_425", i32 0, i32 0 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_65_env_m_429", align 8 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$$fundef_65_cloval_428", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %"$retval_64", align 8 - %"$$retval_64_430" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %"$retval_64", align 8 - ret { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$$retval_64_430" + %"$n_fptr_420" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %2, 0 + %"$n_envptr_421" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %2, 1 + %"$n_call_422" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_fptr_420"(i8* %"$n_envptr_421", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_call_422", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_14", align 8 + %"$$n_14_423" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$n_14", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$n_14_423", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_62", align 8 + %"$$retval_62_424" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_62", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_62_424" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_61"(%"$$fundef_61_env_110"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_59"(%"$$fundef_59_env_105"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { entry: - %"$$fundef_61_env_m_389" = getelementptr inbounds %"$$fundef_61_env_110", %"$$fundef_61_env_110"* %0, i32 0, i32 0 - %"$m_envload_390" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_m_389", align 8 + %"$$fundef_59_env_m_384" = getelementptr inbounds %"$$fundef_59_env_105", %"$$fundef_59_env_105"* %0, i32 0, i32 0 + %"$m_envload_385" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_m_384", align 8 %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_390", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$$fundef_61_env_n_391" = getelementptr inbounds %"$$fundef_61_env_110", %"$$fundef_61_env_110"* %0, i32 0, i32 1 - %"$n_envload_392" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_n_391", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_385", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$$fundef_59_env_n_386" = getelementptr inbounds %"$$fundef_59_env_105", %"$$fundef_59_env_105"* %0, i32 0, i32 1 + %"$n_envload_387" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_n_386", align 8 %n = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_392", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - %"$retval_62" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_387", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + %"$retval_60" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_388" = load i64, i64* @_gasrem, align 8 + %"$gascmp_389" = icmp ugt i64 1, %"$gasrem_388" + br i1 %"$gascmp_389", label %"$out_of_gas_390", label %"$have_gas_391" + +"$out_of_gas_390": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_391" + +"$have_gas_391": ; preds = %"$out_of_gas_390", %entry + %"$consume_392" = sub i64 %"$gasrem_388", 1 + store i64 %"$consume_392", i64* @_gasrem, align 8 + %add_m = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_393" = load i64, i64* @_gasrem, align 8 %"$gascmp_394" = icmp ugt i64 1, %"$gasrem_393" br i1 %"$gascmp_394", label %"$out_of_gas_395", label %"$have_gas_396" -"$out_of_gas_395": ; preds = %entry +"$out_of_gas_395": ; preds = %"$have_gas_391" call void @_out_of_gas() br label %"$have_gas_396" -"$have_gas_396": ; preds = %"$out_of_gas_395", %entry +"$have_gas_396": ; preds = %"$out_of_gas_395", %"$have_gas_391" %"$consume_397" = sub i64 %"$gasrem_393", 1 store i64 %"$consume_397", i64* @_gasrem, align 8 - %add_m = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_398" = load i64, i64* @_gasrem, align 8 - %"$gascmp_399" = icmp ugt i64 1, %"$gasrem_398" - br i1 %"$gascmp_399", label %"$out_of_gas_400", label %"$have_gas_401" - -"$out_of_gas_400": ; preds = %"$have_gas_396" - call void @_out_of_gas() - br label %"$have_gas_401" - -"$have_gas_401": ; preds = %"$out_of_gas_400", %"$have_gas_396" - %"$consume_402" = sub i64 %"$gasrem_398", 1 - store i64 %"$consume_402", i64* @_gasrem, align 8 %"$m_12" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$m_403" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$m_fptr_404" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_403", 0 - %"$m_envptr_405" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_403", 1 - %"$m_call_406" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_404"(i8* %"$m_envptr_405", { %Uint32 (i8*, %Uint32)*, i8* } %1) - store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_406", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_12", align 8 - %"$$m_12_407" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_12", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_12_407", { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8 - %"$gasrem_408" = load i64, i64* @_gasrem, align 8 - %"$gascmp_409" = icmp ugt i64 1, %"$gasrem_408" - br i1 %"$gascmp_409", label %"$out_of_gas_410", label %"$have_gas_411" - -"$out_of_gas_410": ; preds = %"$have_gas_401" - call void @_out_of_gas() - br label %"$have_gas_411" - -"$have_gas_411": ; preds = %"$out_of_gas_410", %"$have_gas_401" - %"$consume_412" = sub i64 %"$gasrem_408", 1 - store i64 %"$consume_412", i64* @_gasrem, align 8 + %"$m_398" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$m_fptr_399" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_398", 0 + %"$m_envptr_400" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_398", 1 + %"$m_call_401" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_399"(i8* %"$m_envptr_400", { %Uint32 (i8*, %Uint32)*, i8* } %1) + store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_401", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_12", align 8 + %"$$m_12_402" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_12", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_12_402", { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8 + %"$gasrem_403" = load i64, i64* @_gasrem, align 8 + %"$gascmp_404" = icmp ugt i64 1, %"$gasrem_403" + br i1 %"$gascmp_404", label %"$out_of_gas_405", label %"$have_gas_406" + +"$out_of_gas_405": ; preds = %"$have_gas_396" + call void @_out_of_gas() + br label %"$have_gas_406" + +"$have_gas_406": ; preds = %"$out_of_gas_405", %"$have_gas_396" + %"$consume_407" = sub i64 %"$gasrem_403", 1 + store i64 %"$consume_407", i64* @_gasrem, align 8 %"$n_13" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$n_413" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - %"$n_fptr_414" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_413", 0 - %"$n_envptr_415" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_413", 1 - %"$add_m_416" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8 - %"$n_call_417" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_414"(i8* %"$n_envptr_415", { %Uint32 (i8*, %Uint32)*, i8* } %"$add_m_416") - store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_417", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_13", align 8 - %"$$n_13_418" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_13", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_13_418", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_62", align 8 - %"$$retval_62_419" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_62", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_62_419" + %"$n_408" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + %"$n_fptr_409" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_408", 0 + %"$n_envptr_410" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_408", 1 + %"$add_m_411" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %add_m, align 8 + %"$n_call_412" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_409"(i8* %"$n_envptr_410", { %Uint32 (i8*, %Uint32)*, i8* } %"$add_m_411") + store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_412", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_13", align 8 + %"$$n_13_413" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_13", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_13_413", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_60", align 8 + %"$$retval_60_414" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_60", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_60_414" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_59"(%"$$fundef_59_env_111"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_57"(%"$$fundef_57_env_106"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { entry: - %"$$fundef_59_env_m_374" = getelementptr inbounds %"$$fundef_59_env_111", %"$$fundef_59_env_111"* %0, i32 0, i32 0 - %"$m_envload_375" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_m_374", align 8 + %"$$fundef_57_env_m_369" = getelementptr inbounds %"$$fundef_57_env_106", %"$$fundef_57_env_106"* %0, i32 0, i32 0 + %"$m_envload_370" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_57_env_m_369", align 8 %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_375", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$retval_60" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_376" = load i64, i64* @_gasrem, align 8 - %"$gascmp_377" = icmp ugt i64 1, %"$gasrem_376" - br i1 %"$gascmp_377", label %"$out_of_gas_378", label %"$have_gas_379" - -"$out_of_gas_378": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_379" - -"$have_gas_379": ; preds = %"$out_of_gas_378", %entry - %"$consume_380" = sub i64 %"$gasrem_376", 1 - store i64 %"$consume_380", i64* @_gasrem, align 8 - %"$$fundef_61_envp_381_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_61_envp_381_salloc" = call i8* @_salloc(i8* %"$$fundef_61_envp_381_load", i64 32) - %"$$fundef_61_envp_381" = bitcast i8* %"$$fundef_61_envp_381_salloc" to %"$$fundef_61_env_110"* - %"$$fundef_61_env_voidp_383" = bitcast %"$$fundef_61_env_110"* %"$$fundef_61_envp_381" to i8* - %"$$fundef_61_cloval_384" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_61_env_110"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_61" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_61_env_voidp_383", 1 - %"$$fundef_61_env_m_385" = getelementptr inbounds %"$$fundef_61_env_110", %"$$fundef_61_env_110"* %"$$fundef_61_envp_381", i32 0, i32 0 - %"$m_386" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_386", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_m_385", align 8 - %"$$fundef_61_env_n_387" = getelementptr inbounds %"$$fundef_61_env_110", %"$$fundef_61_env_110"* %"$$fundef_61_envp_381", i32 0, i32 1 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_61_env_n_387", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_61_cloval_384", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_60", align 8 - %"$$retval_60_388" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_60", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_60_388" + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_370", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$retval_58" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_371" = load i64, i64* @_gasrem, align 8 + %"$gascmp_372" = icmp ugt i64 1, %"$gasrem_371" + br i1 %"$gascmp_372", label %"$out_of_gas_373", label %"$have_gas_374" + +"$out_of_gas_373": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_374" + +"$have_gas_374": ; preds = %"$out_of_gas_373", %entry + %"$consume_375" = sub i64 %"$gasrem_371", 1 + store i64 %"$consume_375", i64* @_gasrem, align 8 + %"$$fundef_59_envp_376_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_59_envp_376_salloc" = call i8* @_salloc(i8* %"$$fundef_59_envp_376_load", i64 32) + %"$$fundef_59_envp_376" = bitcast i8* %"$$fundef_59_envp_376_salloc" to %"$$fundef_59_env_105"* + %"$$fundef_59_env_voidp_378" = bitcast %"$$fundef_59_env_105"* %"$$fundef_59_envp_376" to i8* + %"$$fundef_59_cloval_379" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_59_env_105"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_59" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_59_env_voidp_378", 1 + %"$$fundef_59_env_m_380" = getelementptr inbounds %"$$fundef_59_env_105", %"$$fundef_59_env_105"* %"$$fundef_59_envp_376", i32 0, i32 0 + %"$m_381" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_381", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_m_380", align 8 + %"$$fundef_59_env_n_382" = getelementptr inbounds %"$$fundef_59_env_105", %"$$fundef_59_env_105"* %"$$fundef_59_envp_376", i32 0, i32 1 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_n_382", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_59_cloval_379", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_58", align 8 + %"$$retval_58_383" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_58", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_58_383" } -define internal { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } @"$fundef_57"(%"$$fundef_57_env_112"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { +define internal { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } @"$fundef_55"(%"$$fundef_55_env_107"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { entry: - %"$retval_58" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_363" = load i64, i64* @_gasrem, align 8 - %"$gascmp_364" = icmp ugt i64 1, %"$gasrem_363" - br i1 %"$gascmp_364", label %"$out_of_gas_365", label %"$have_gas_366" - -"$out_of_gas_365": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_366" - -"$have_gas_366": ; preds = %"$out_of_gas_365", %entry - %"$consume_367" = sub i64 %"$gasrem_363", 1 - store i64 %"$consume_367", i64* @_gasrem, align 8 - %"$$fundef_59_envp_368_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_59_envp_368_salloc" = call i8* @_salloc(i8* %"$$fundef_59_envp_368_load", i64 16) - %"$$fundef_59_envp_368" = bitcast i8* %"$$fundef_59_envp_368_salloc" to %"$$fundef_59_env_111"* - %"$$fundef_59_env_voidp_370" = bitcast %"$$fundef_59_env_111"* %"$$fundef_59_envp_368" to i8* - %"$$fundef_59_cloval_371" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_59_env_111"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_59" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_59_env_voidp_370", 1 - %"$$fundef_59_env_m_372" = getelementptr inbounds %"$$fundef_59_env_111", %"$$fundef_59_env_111"* %"$$fundef_59_envp_368", i32 0, i32 0 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_59_env_m_372", align 8 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$fundef_59_cloval_371", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_58", align 8 - %"$$retval_58_373" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_58", align 8 - ret { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$retval_58_373" + %"$retval_56" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 + %"$gasrem_358" = load i64, i64* @_gasrem, align 8 + %"$gascmp_359" = icmp ugt i64 1, %"$gasrem_358" + br i1 %"$gascmp_359", label %"$out_of_gas_360", label %"$have_gas_361" + +"$out_of_gas_360": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_361" + +"$have_gas_361": ; preds = %"$out_of_gas_360", %entry + %"$consume_362" = sub i64 %"$gasrem_358", 1 + store i64 %"$consume_362", i64* @_gasrem, align 8 + %"$$fundef_57_envp_363_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_57_envp_363_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_363_load", i64 16) + %"$$fundef_57_envp_363" = bitcast i8* %"$$fundef_57_envp_363_salloc" to %"$$fundef_57_env_106"* + %"$$fundef_57_env_voidp_365" = bitcast %"$$fundef_57_env_106"* %"$$fundef_57_envp_363" to i8* + %"$$fundef_57_cloval_366" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_57_env_106"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_57" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_57_env_voidp_365", 1 + %"$$fundef_57_env_m_367" = getelementptr inbounds %"$$fundef_57_env_106", %"$$fundef_57_env_106"* %"$$fundef_57_envp_363", i32 0, i32 0 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_57_env_m_367", align 8 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$fundef_57_cloval_366", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_56", align 8 + %"$$retval_56_368" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_56", align 8 + ret { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$retval_56_368" } -define internal %Uint32 @"$fundef_55"(%"$$fundef_55_env_113"* %0, %Uint32 %1) { +define internal %Uint32 @"$fundef_53"(%"$$fundef_53_env_108"* %0, %Uint32 %1) { entry: - %"$$fundef_55_env_m_320" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %0, i32 0, i32 0 - %"$m_envload_321" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_55_env_m_320", align 8 + %"$$fundef_53_env_m_315" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %0, i32 0, i32 0 + %"$m_envload_316" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_m_315", align 8 %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_321", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$$fundef_55_env_n_322" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %0, i32 0, i32 1 - %"$n_envload_323" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_55_env_n_322", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_316", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$$fundef_53_env_n_317" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %0, i32 0, i32 1 + %"$n_envload_318" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_n_317", align 8 %n = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_323", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - %"$$fundef_55_env_s_324" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %0, i32 0, i32 2 - %"$s_envload_325" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_55_env_s_324", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_318", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + %"$$fundef_53_env_s_319" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %0, i32 0, i32 2 + %"$s_envload_320" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_53_env_s_319", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_325", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$retval_56" = alloca %Uint32, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_320", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$retval_54" = alloca %Uint32, align 8 + %"$gasrem_321" = load i64, i64* @_gasrem, align 8 + %"$gascmp_322" = icmp ugt i64 1, %"$gasrem_321" + br i1 %"$gascmp_322", label %"$out_of_gas_323", label %"$have_gas_324" + +"$out_of_gas_323": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_324" + +"$have_gas_324": ; preds = %"$out_of_gas_323", %entry + %"$consume_325" = sub i64 %"$gasrem_321", 1 + store i64 %"$consume_325", i64* @_gasrem, align 8 + %nsz = alloca %Uint32, align 8 %"$gasrem_326" = load i64, i64* @_gasrem, align 8 %"$gascmp_327" = icmp ugt i64 1, %"$gasrem_326" br i1 %"$gascmp_327", label %"$out_of_gas_328", label %"$have_gas_329" -"$out_of_gas_328": ; preds = %entry +"$out_of_gas_328": ; preds = %"$have_gas_324" call void @_out_of_gas() br label %"$have_gas_329" -"$have_gas_329": ; preds = %"$out_of_gas_328", %entry +"$have_gas_329": ; preds = %"$out_of_gas_328", %"$have_gas_324" %"$consume_330" = sub i64 %"$gasrem_326", 1 store i64 %"$consume_330", i64* @_gasrem, align 8 - %nsz = alloca %Uint32, align 8 - %"$gasrem_331" = load i64, i64* @_gasrem, align 8 - %"$gascmp_332" = icmp ugt i64 1, %"$gasrem_331" - br i1 %"$gascmp_332", label %"$out_of_gas_333", label %"$have_gas_334" - -"$out_of_gas_333": ; preds = %"$have_gas_329" - call void @_out_of_gas() - br label %"$have_gas_334" - -"$have_gas_334": ; preds = %"$out_of_gas_333", %"$have_gas_329" - %"$consume_335" = sub i64 %"$gasrem_331", 1 - store i64 %"$consume_335", i64* @_gasrem, align 8 %"$n_8" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$n_336" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - %"$n_fptr_337" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_336", 0 - %"$n_envptr_338" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_336", 1 - %"$s_339" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$n_call_340" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_337"(i8* %"$n_envptr_338", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_339") - store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_340", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_8", align 8 + %"$n_331" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + %"$n_fptr_332" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_331", 0 + %"$n_envptr_333" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_331", 1 + %"$s_334" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$n_call_335" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$n_fptr_332"(i8* %"$n_envptr_333", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_334") + store { %Uint32 (i8*, %Uint32)*, i8* } %"$n_call_335", { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_8", align 8 %"$n_9" = alloca %Uint32, align 8 - %"$$n_8_341" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_8", align 8 - %"$$n_8_fptr_342" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_8_341", 0 - %"$$n_8_envptr_343" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_8_341", 1 - %"$$n_8_call_344" = call %Uint32 %"$$n_8_fptr_342"(i8* %"$$n_8_envptr_343", %Uint32 %1) - store %Uint32 %"$$n_8_call_344", %Uint32* %"$n_9", align 4 - %"$$n_9_345" = load %Uint32, %Uint32* %"$n_9", align 4 - store %Uint32 %"$$n_9_345", %Uint32* %nsz, align 4 - %"$gasrem_346" = load i64, i64* @_gasrem, align 8 - %"$gascmp_347" = icmp ugt i64 1, %"$gasrem_346" - br i1 %"$gascmp_347", label %"$out_of_gas_348", label %"$have_gas_349" - -"$out_of_gas_348": ; preds = %"$have_gas_334" - call void @_out_of_gas() - br label %"$have_gas_349" - -"$have_gas_349": ; preds = %"$out_of_gas_348", %"$have_gas_334" - %"$consume_350" = sub i64 %"$gasrem_346", 1 - store i64 %"$consume_350", i64* @_gasrem, align 8 + %"$$n_8_336" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$n_8", align 8 + %"$$n_8_fptr_337" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_8_336", 0 + %"$$n_8_envptr_338" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$n_8_336", 1 + %"$$n_8_call_339" = call %Uint32 %"$$n_8_fptr_337"(i8* %"$$n_8_envptr_338", %Uint32 %1) + store %Uint32 %"$$n_8_call_339", %Uint32* %"$n_9", align 4 + %"$$n_9_340" = load %Uint32, %Uint32* %"$n_9", align 4 + store %Uint32 %"$$n_9_340", %Uint32* %nsz, align 4 + %"$gasrem_341" = load i64, i64* @_gasrem, align 8 + %"$gascmp_342" = icmp ugt i64 1, %"$gasrem_341" + br i1 %"$gascmp_342", label %"$out_of_gas_343", label %"$have_gas_344" + +"$out_of_gas_343": ; preds = %"$have_gas_329" + call void @_out_of_gas() + br label %"$have_gas_344" + +"$have_gas_344": ; preds = %"$out_of_gas_343", %"$have_gas_329" + %"$consume_345" = sub i64 %"$gasrem_341", 1 + store i64 %"$consume_345", i64* @_gasrem, align 8 %"$m_10" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$m_351" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$m_fptr_352" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_351", 0 - %"$m_envptr_353" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_351", 1 - %"$s_354" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$m_call_355" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_352"(i8* %"$m_envptr_353", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_354") - store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_355", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_10", align 8 + %"$m_346" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$m_fptr_347" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_346", 0 + %"$m_envptr_348" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_346", 1 + %"$s_349" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$m_call_350" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$m_fptr_347"(i8* %"$m_envptr_348", { %Uint32 (i8*, %Uint32)*, i8* } %"$s_349") + store { %Uint32 (i8*, %Uint32)*, i8* } %"$m_call_350", { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_10", align 8 %"$m_11" = alloca %Uint32, align 8 - %"$$m_10_356" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_10", align 8 - %"$$m_10_fptr_357" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_10_356", 0 - %"$$m_10_envptr_358" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_10_356", 1 - %"$nsz_359" = load %Uint32, %Uint32* %nsz, align 4 - %"$$m_10_call_360" = call %Uint32 %"$$m_10_fptr_357"(i8* %"$$m_10_envptr_358", %Uint32 %"$nsz_359") - store %Uint32 %"$$m_10_call_360", %Uint32* %"$m_11", align 4 - %"$$m_11_361" = load %Uint32, %Uint32* %"$m_11", align 4 - store %Uint32 %"$$m_11_361", %Uint32* %"$retval_56", align 4 - %"$$retval_56_362" = load %Uint32, %Uint32* %"$retval_56", align 4 - ret %Uint32 %"$$retval_56_362" + %"$$m_10_351" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$m_10", align 8 + %"$$m_10_fptr_352" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_10_351", 0 + %"$$m_10_envptr_353" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$$m_10_351", 1 + %"$nsz_354" = load %Uint32, %Uint32* %nsz, align 4 + %"$$m_10_call_355" = call %Uint32 %"$$m_10_fptr_352"(i8* %"$$m_10_envptr_353", %Uint32 %"$nsz_354") + store %Uint32 %"$$m_10_call_355", %Uint32* %"$m_11", align 4 + %"$$m_11_356" = load %Uint32, %Uint32* %"$m_11", align 4 + store %Uint32 %"$$m_11_356", %Uint32* %"$retval_54", align 4 + %"$$retval_54_357" = load %Uint32, %Uint32* %"$retval_54", align 4 + ret %Uint32 %"$$retval_54_357" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_53"(%"$$fundef_53_env_114"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_51"(%"$$fundef_51_env_109"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { entry: - %"$$fundef_53_env_m_301" = getelementptr inbounds %"$$fundef_53_env_114", %"$$fundef_53_env_114"* %0, i32 0, i32 0 - %"$m_envload_302" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_m_301", align 8 + %"$$fundef_51_env_m_296" = getelementptr inbounds %"$$fundef_51_env_109", %"$$fundef_51_env_109"* %0, i32 0, i32 0 + %"$m_envload_297" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_m_296", align 8 %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_302", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$$fundef_53_env_n_303" = getelementptr inbounds %"$$fundef_53_env_114", %"$$fundef_53_env_114"* %0, i32 0, i32 1 - %"$n_envload_304" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_n_303", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_297", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$$fundef_51_env_n_298" = getelementptr inbounds %"$$fundef_51_env_109", %"$$fundef_51_env_109"* %0, i32 0, i32 1 + %"$n_envload_299" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_n_298", align 8 %n = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_304", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - %"$retval_54" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_305" = load i64, i64* @_gasrem, align 8 - %"$gascmp_306" = icmp ugt i64 1, %"$gasrem_305" - br i1 %"$gascmp_306", label %"$out_of_gas_307", label %"$have_gas_308" - -"$out_of_gas_307": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_308" - -"$have_gas_308": ; preds = %"$out_of_gas_307", %entry - %"$consume_309" = sub i64 %"$gasrem_305", 1 - store i64 %"$consume_309", i64* @_gasrem, align 8 - %"$$fundef_55_envp_310_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_55_envp_310_salloc" = call i8* @_salloc(i8* %"$$fundef_55_envp_310_load", i64 48) - %"$$fundef_55_envp_310" = bitcast i8* %"$$fundef_55_envp_310_salloc" to %"$$fundef_55_env_113"* - %"$$fundef_55_env_voidp_312" = bitcast %"$$fundef_55_env_113"* %"$$fundef_55_envp_310" to i8* - %"$$fundef_55_cloval_313" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_55_env_113"*, %Uint32)* @"$fundef_55" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_55_env_voidp_312", 1 - %"$$fundef_55_env_m_314" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %"$$fundef_55_envp_310", i32 0, i32 0 - %"$m_315" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_315", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_55_env_m_314", align 8 - %"$$fundef_55_env_n_316" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %"$$fundef_55_envp_310", i32 0, i32 1 - %"$n_317" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_317", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_55_env_n_316", align 8 - %"$$fundef_55_env_s_318" = getelementptr inbounds %"$$fundef_55_env_113", %"$$fundef_55_env_113"* %"$$fundef_55_envp_310", i32 0, i32 2 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_55_env_s_318", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_55_cloval_313", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_54", align 8 - %"$$retval_54_319" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_54", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_54_319" + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_envload_299", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + %"$retval_52" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_300" = load i64, i64* @_gasrem, align 8 + %"$gascmp_301" = icmp ugt i64 1, %"$gasrem_300" + br i1 %"$gascmp_301", label %"$out_of_gas_302", label %"$have_gas_303" + +"$out_of_gas_302": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_303" + +"$have_gas_303": ; preds = %"$out_of_gas_302", %entry + %"$consume_304" = sub i64 %"$gasrem_300", 1 + store i64 %"$consume_304", i64* @_gasrem, align 8 + %"$$fundef_53_envp_305_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_53_envp_305_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_305_load", i64 48) + %"$$fundef_53_envp_305" = bitcast i8* %"$$fundef_53_envp_305_salloc" to %"$$fundef_53_env_108"* + %"$$fundef_53_env_voidp_307" = bitcast %"$$fundef_53_env_108"* %"$$fundef_53_envp_305" to i8* + %"$$fundef_53_cloval_308" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_53_env_108"*, %Uint32)* @"$fundef_53" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_53_env_voidp_307", 1 + %"$$fundef_53_env_m_309" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %"$$fundef_53_envp_305", i32 0, i32 0 + %"$m_310" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_310", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_m_309", align 8 + %"$$fundef_53_env_n_311" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %"$$fundef_53_envp_305", i32 0, i32 1 + %"$n_312" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %n, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$n_312", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_n_311", align 8 + %"$$fundef_53_env_s_313" = getelementptr inbounds %"$$fundef_53_env_108", %"$$fundef_53_env_108"* %"$$fundef_53_envp_305", i32 0, i32 2 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_53_env_s_313", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_53_cloval_308", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_52", align 8 + %"$$retval_52_314" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_52", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_52_314" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_51"(%"$$fundef_51_env_115"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_49"(%"$$fundef_49_env_110"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { entry: - %"$$fundef_51_env_m_286" = getelementptr inbounds %"$$fundef_51_env_115", %"$$fundef_51_env_115"* %0, i32 0, i32 0 - %"$m_envload_287" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_m_286", align 8 + %"$$fundef_49_env_m_281" = getelementptr inbounds %"$$fundef_49_env_110", %"$$fundef_49_env_110"* %0, i32 0, i32 0 + %"$m_envload_282" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_49_env_m_281", align 8 %m = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_287", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - %"$retval_52" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_288" = load i64, i64* @_gasrem, align 8 - %"$gascmp_289" = icmp ugt i64 1, %"$gasrem_288" - br i1 %"$gascmp_289", label %"$out_of_gas_290", label %"$have_gas_291" - -"$out_of_gas_290": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_291" - -"$have_gas_291": ; preds = %"$out_of_gas_290", %entry - %"$consume_292" = sub i64 %"$gasrem_288", 1 - store i64 %"$consume_292", i64* @_gasrem, align 8 - %"$$fundef_53_envp_293_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_53_envp_293_salloc" = call i8* @_salloc(i8* %"$$fundef_53_envp_293_load", i64 32) - %"$$fundef_53_envp_293" = bitcast i8* %"$$fundef_53_envp_293_salloc" to %"$$fundef_53_env_114"* - %"$$fundef_53_env_voidp_295" = bitcast %"$$fundef_53_env_114"* %"$$fundef_53_envp_293" to i8* - %"$$fundef_53_cloval_296" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_53_env_114"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_53" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_53_env_voidp_295", 1 - %"$$fundef_53_env_m_297" = getelementptr inbounds %"$$fundef_53_env_114", %"$$fundef_53_env_114"* %"$$fundef_53_envp_293", i32 0, i32 0 - %"$m_298" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_298", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_m_297", align 8 - %"$$fundef_53_env_n_299" = getelementptr inbounds %"$$fundef_53_env_114", %"$$fundef_53_env_114"* %"$$fundef_53_envp_293", i32 0, i32 1 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_53_env_n_299", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_53_cloval_296", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_52", align 8 - %"$$retval_52_300" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_52", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_52_300" + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_envload_282", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + %"$retval_50" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_283" = load i64, i64* @_gasrem, align 8 + %"$gascmp_284" = icmp ugt i64 1, %"$gasrem_283" + br i1 %"$gascmp_284", label %"$out_of_gas_285", label %"$have_gas_286" + +"$out_of_gas_285": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_286" + +"$have_gas_286": ; preds = %"$out_of_gas_285", %entry + %"$consume_287" = sub i64 %"$gasrem_283", 1 + store i64 %"$consume_287", i64* @_gasrem, align 8 + %"$$fundef_51_envp_288_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_51_envp_288_salloc" = call i8* @_salloc(i8* %"$$fundef_51_envp_288_load", i64 32) + %"$$fundef_51_envp_288" = bitcast i8* %"$$fundef_51_envp_288_salloc" to %"$$fundef_51_env_109"* + %"$$fundef_51_env_voidp_290" = bitcast %"$$fundef_51_env_109"* %"$$fundef_51_envp_288" to i8* + %"$$fundef_51_cloval_291" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_51_env_109"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_51" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_51_env_voidp_290", 1 + %"$$fundef_51_env_m_292" = getelementptr inbounds %"$$fundef_51_env_109", %"$$fundef_51_env_109"* %"$$fundef_51_envp_288", i32 0, i32 0 + %"$m_293" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %m, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$m_293", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_m_292", align 8 + %"$$fundef_51_env_n_294" = getelementptr inbounds %"$$fundef_51_env_109", %"$$fundef_51_env_109"* %"$$fundef_51_envp_288", i32 0, i32 1 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_n_294", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_51_cloval_291", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_50", align 8 + %"$$retval_50_295" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_50", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_50_295" } -define internal { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } @"$fundef_49"(%"$$fundef_49_env_116"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { +define internal { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } @"$fundef_47"(%"$$fundef_47_env_111"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { entry: - %"$retval_50" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_275" = load i64, i64* @_gasrem, align 8 - %"$gascmp_276" = icmp ugt i64 1, %"$gasrem_275" - br i1 %"$gascmp_276", label %"$out_of_gas_277", label %"$have_gas_278" - -"$out_of_gas_277": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_278" - -"$have_gas_278": ; preds = %"$out_of_gas_277", %entry - %"$consume_279" = sub i64 %"$gasrem_275", 1 - store i64 %"$consume_279", i64* @_gasrem, align 8 - %"$$fundef_51_envp_280_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_51_envp_280_salloc" = call i8* @_salloc(i8* %"$$fundef_51_envp_280_load", i64 16) - %"$$fundef_51_envp_280" = bitcast i8* %"$$fundef_51_envp_280_salloc" to %"$$fundef_51_env_115"* - %"$$fundef_51_env_voidp_282" = bitcast %"$$fundef_51_env_115"* %"$$fundef_51_envp_280" to i8* - %"$$fundef_51_cloval_283" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_51_env_115"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_51" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_51_env_voidp_282", 1 - %"$$fundef_51_env_m_284" = getelementptr inbounds %"$$fundef_51_env_115", %"$$fundef_51_env_115"* %"$$fundef_51_envp_280", i32 0, i32 0 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_51_env_m_284", align 8 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$fundef_51_cloval_283", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_50", align 8 - %"$$retval_50_285" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_50", align 8 - ret { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$retval_50_285" + %"$retval_48" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 + %"$gasrem_270" = load i64, i64* @_gasrem, align 8 + %"$gascmp_271" = icmp ugt i64 1, %"$gasrem_270" + br i1 %"$gascmp_271", label %"$out_of_gas_272", label %"$have_gas_273" + +"$out_of_gas_272": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_273" + +"$have_gas_273": ; preds = %"$out_of_gas_272", %entry + %"$consume_274" = sub i64 %"$gasrem_270", 1 + store i64 %"$consume_274", i64* @_gasrem, align 8 + %"$$fundef_49_envp_275_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_49_envp_275_salloc" = call i8* @_salloc(i8* %"$$fundef_49_envp_275_load", i64 16) + %"$$fundef_49_envp_275" = bitcast i8* %"$$fundef_49_envp_275_salloc" to %"$$fundef_49_env_110"* + %"$$fundef_49_env_voidp_277" = bitcast %"$$fundef_49_env_110"* %"$$fundef_49_envp_275" to i8* + %"$$fundef_49_cloval_278" = insertvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_49_env_110"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_49" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* undef }, i8* %"$$fundef_49_env_voidp_277", 1 + %"$$fundef_49_env_m_279" = getelementptr inbounds %"$$fundef_49_env_110", %"$$fundef_49_env_110"* %"$$fundef_49_envp_275", i32 0, i32 0 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_49_env_m_279", align 8 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$fundef_49_cloval_278", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_48", align 8 + %"$$retval_48_280" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$retval_48", align 8 + ret { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$retval_48_280" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_47"(%"$$fundef_47_env_117"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_45"(%"$$fundef_45_env_112"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { entry: - %"$$fundef_47_env_s_230" = getelementptr inbounds %"$$fundef_47_env_117", %"$$fundef_47_env_117"* %0, i32 0, i32 0 - %"$s_envload_231" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_47_env_s_230", align 8 + %"$$fundef_45_env_s_225" = getelementptr inbounds %"$$fundef_45_env_112", %"$$fundef_45_env_112"* %0, i32 0, i32 0 + %"$s_envload_226" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_45_env_s_225", align 8 %s = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_envload_231", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 - %"$retval_48" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_envload_226", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 + %"$retval_46" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_227" = load i64, i64* @_gasrem, align 8 + %"$gascmp_228" = icmp ugt i64 1, %"$gasrem_227" + br i1 %"$gascmp_228", label %"$out_of_gas_229", label %"$have_gas_230" + +"$out_of_gas_229": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_230" + +"$have_gas_230": ; preds = %"$out_of_gas_229", %entry + %"$consume_231" = sub i64 %"$gasrem_227", 1 + store i64 %"$consume_231", i64* @_gasrem, align 8 + %sz = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_232" = load i64, i64* @_gasrem, align 8 %"$gascmp_233" = icmp ugt i64 1, %"$gasrem_232" br i1 %"$gascmp_233", label %"$out_of_gas_234", label %"$have_gas_235" -"$out_of_gas_234": ; preds = %entry +"$out_of_gas_234": ; preds = %"$have_gas_230" call void @_out_of_gas() br label %"$have_gas_235" -"$have_gas_235": ; preds = %"$out_of_gas_234", %entry +"$have_gas_235": ; preds = %"$out_of_gas_234", %"$have_gas_230" %"$consume_236" = sub i64 %"$gasrem_232", 1 store i64 %"$consume_236", i64* @_gasrem, align 8 - %sz = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_237" = load i64, i64* @_gasrem, align 8 - %"$gascmp_238" = icmp ugt i64 1, %"$gasrem_237" - br i1 %"$gascmp_238", label %"$out_of_gas_239", label %"$have_gas_240" - -"$out_of_gas_239": ; preds = %"$have_gas_235" - call void @_out_of_gas() - br label %"$have_gas_240" - -"$have_gas_240": ; preds = %"$out_of_gas_239", %"$have_gas_235" - %"$consume_241" = sub i64 %"$gasrem_237", 1 - store i64 %"$consume_241", i64* @_gasrem, align 8 %"$s_5" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$s_242" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 - %"$s_fptr_243" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_242", 0 - %"$s_envptr_244" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_242", 1 - %"$s_call_245" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_243"(i8* %"$s_envptr_244", { %Uint32 (i8*, %Uint32)*, i8* } %1) - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_245", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_5", align 8 - %"$$s_5_246" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_5", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_5_246", { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8 + %"$s_237" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 + %"$s_fptr_238" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_237", 0 + %"$s_envptr_239" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_237", 1 + %"$s_call_240" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_238"(i8* %"$s_envptr_239", { %Uint32 (i8*, %Uint32)*, i8* } %1) + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_240", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_5", align 8 + %"$$s_5_241" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_5", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_5_241", { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8 + %"$gasrem_242" = load i64, i64* @_gasrem, align 8 + %"$gascmp_243" = icmp ugt i64 1, %"$gasrem_242" + br i1 %"$gascmp_243", label %"$out_of_gas_244", label %"$have_gas_245" + +"$out_of_gas_244": ; preds = %"$have_gas_235" + call void @_out_of_gas() + br label %"$have_gas_245" + +"$have_gas_245": ; preds = %"$out_of_gas_244", %"$have_gas_235" + %"$consume_246" = sub i64 %"$gasrem_242", 1 + store i64 %"$consume_246", i64* @_gasrem, align 8 + %ssz = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_247" = load i64, i64* @_gasrem, align 8 %"$gascmp_248" = icmp ugt i64 1, %"$gasrem_247" br i1 %"$gascmp_248", label %"$out_of_gas_249", label %"$have_gas_250" -"$out_of_gas_249": ; preds = %"$have_gas_240" +"$out_of_gas_249": ; preds = %"$have_gas_245" call void @_out_of_gas() br label %"$have_gas_250" -"$have_gas_250": ; preds = %"$out_of_gas_249", %"$have_gas_240" +"$have_gas_250": ; preds = %"$out_of_gas_249", %"$have_gas_245" %"$consume_251" = sub i64 %"$gasrem_247", 1 store i64 %"$consume_251", i64* @_gasrem, align 8 - %ssz = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_252" = load i64, i64* @_gasrem, align 8 - %"$gascmp_253" = icmp ugt i64 1, %"$gasrem_252" - br i1 %"$gascmp_253", label %"$out_of_gas_254", label %"$have_gas_255" - -"$out_of_gas_254": ; preds = %"$have_gas_250" - call void @_out_of_gas() - br label %"$have_gas_255" - -"$have_gas_255": ; preds = %"$out_of_gas_254", %"$have_gas_250" - %"$consume_256" = sub i64 %"$gasrem_252", 1 - store i64 %"$consume_256", i64* @_gasrem, align 8 %"$s_6" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$s_257" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 - %"$s_fptr_258" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_257", 0 - %"$s_envptr_259" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_257", 1 - %"$sz_260" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8 - %"$s_call_261" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_258"(i8* %"$s_envptr_259", { %Uint32 (i8*, %Uint32)*, i8* } %"$sz_260") - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_261", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_6", align 8 - %"$$s_6_262" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_6", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_6_262", { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8 - %"$gasrem_263" = load i64, i64* @_gasrem, align 8 - %"$gascmp_264" = icmp ugt i64 1, %"$gasrem_263" - br i1 %"$gascmp_264", label %"$out_of_gas_265", label %"$have_gas_266" - -"$out_of_gas_265": ; preds = %"$have_gas_255" - call void @_out_of_gas() - br label %"$have_gas_266" - -"$have_gas_266": ; preds = %"$out_of_gas_265", %"$have_gas_255" - %"$consume_267" = sub i64 %"$gasrem_263", 1 - store i64 %"$consume_267", i64* @_gasrem, align 8 + %"$s_252" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 + %"$s_fptr_253" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_252", 0 + %"$s_envptr_254" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_252", 1 + %"$sz_255" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %sz, align 8 + %"$s_call_256" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_253"(i8* %"$s_envptr_254", { %Uint32 (i8*, %Uint32)*, i8* } %"$sz_255") + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_256", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_6", align 8 + %"$$s_6_257" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_6", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_6_257", { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8 + %"$gasrem_258" = load i64, i64* @_gasrem, align 8 + %"$gascmp_259" = icmp ugt i64 1, %"$gasrem_258" + br i1 %"$gascmp_259", label %"$out_of_gas_260", label %"$have_gas_261" + +"$out_of_gas_260": ; preds = %"$have_gas_250" + call void @_out_of_gas() + br label %"$have_gas_261" + +"$have_gas_261": ; preds = %"$out_of_gas_260", %"$have_gas_250" + %"$consume_262" = sub i64 %"$gasrem_258", 1 + store i64 %"$consume_262", i64* @_gasrem, align 8 %"$s_7" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$s_268" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 - %"$s_fptr_269" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_268", 0 - %"$s_envptr_270" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_268", 1 - %"$ssz_271" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8 - %"$s_call_272" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_269"(i8* %"$s_envptr_270", { %Uint32 (i8*, %Uint32)*, i8* } %"$ssz_271") - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_272", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_7", align 8 - %"$$s_7_273" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_7", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_7_273", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8 - %"$$retval_48_274" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_48", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_48_274" + %"$s_263" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %s, align 8 + %"$s_fptr_264" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_263", 0 + %"$s_envptr_265" = extractvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$s_263", 1 + %"$ssz_266" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %ssz, align 8 + %"$s_call_267" = call { %Uint32 (i8*, %Uint32)*, i8* } %"$s_fptr_264"(i8* %"$s_envptr_265", { %Uint32 (i8*, %Uint32)*, i8* } %"$ssz_266") + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_call_267", { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_7", align 8 + %"$$s_7_268" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$s_7", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$s_7_268", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_46", align 8 + %"$$retval_46_269" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_46", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_46_269" } -define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_45"(%"$$fundef_45_env_118"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { +define internal { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_43"(%"$$fundef_43_env_113"* %0, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1) { entry: - %"$retval_46" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_219" = load i64, i64* @_gasrem, align 8 - %"$gascmp_220" = icmp ugt i64 1, %"$gasrem_219" - br i1 %"$gascmp_220", label %"$out_of_gas_221", label %"$have_gas_222" - -"$out_of_gas_221": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_222" - -"$have_gas_222": ; preds = %"$out_of_gas_221", %entry - %"$consume_223" = sub i64 %"$gasrem_219", 1 - store i64 %"$consume_223", i64* @_gasrem, align 8 - %"$$fundef_47_envp_224_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_47_envp_224_salloc" = call i8* @_salloc(i8* %"$$fundef_47_envp_224_load", i64 16) - %"$$fundef_47_envp_224" = bitcast i8* %"$$fundef_47_envp_224_salloc" to %"$$fundef_47_env_117"* - %"$$fundef_47_env_voidp_226" = bitcast %"$$fundef_47_env_117"* %"$$fundef_47_envp_224" to i8* - %"$$fundef_47_cloval_227" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_47_env_117"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_47" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_47_env_voidp_226", 1 - %"$$fundef_47_env_s_228" = getelementptr inbounds %"$$fundef_47_env_117", %"$$fundef_47_env_117"* %"$$fundef_47_envp_224", i32 0, i32 0 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_47_env_s_228", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_47_cloval_227", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_46", align 8 - %"$$retval_46_229" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_46", align 8 - ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_46_229" + %"$retval_44" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_214" = load i64, i64* @_gasrem, align 8 + %"$gascmp_215" = icmp ugt i64 1, %"$gasrem_214" + br i1 %"$gascmp_215", label %"$out_of_gas_216", label %"$have_gas_217" + +"$out_of_gas_216": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_217" + +"$have_gas_217": ; preds = %"$out_of_gas_216", %entry + %"$consume_218" = sub i64 %"$gasrem_214", 1 + store i64 %"$consume_218", i64* @_gasrem, align 8 + %"$$fundef_45_envp_219_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_45_envp_219_salloc" = call i8* @_salloc(i8* %"$$fundef_45_envp_219_load", i64 16) + %"$$fundef_45_envp_219" = bitcast i8* %"$$fundef_45_envp_219_salloc" to %"$$fundef_45_env_112"* + %"$$fundef_45_env_voidp_221" = bitcast %"$$fundef_45_env_112"* %"$$fundef_45_envp_219" to i8* + %"$$fundef_45_cloval_222" = insertvalue { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_45_env_112"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_45" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* undef }, i8* %"$$fundef_45_env_voidp_221", 1 + %"$$fundef_45_env_s_223" = getelementptr inbounds %"$$fundef_45_env_112", %"$$fundef_45_env_112"* %"$$fundef_45_envp_219", i32 0, i32 0 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %1, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$$fundef_45_env_s_223", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$fundef_45_cloval_222", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_44", align 8 + %"$$retval_44_224" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_44", align 8 + ret { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_44_224" } -define internal %Uint32 @"$fundef_43"(%"$$fundef_43_env_119"* %0, %Uint32 %1) { +define internal %Uint32 @"$fundef_41"(%"$$fundef_41_env_114"* %0, %Uint32 %1) { entry: - %"$$fundef_43_env_s_174" = getelementptr inbounds %"$$fundef_43_env_119", %"$$fundef_43_env_119"* %0, i32 0, i32 0 - %"$s_envload_175" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_43_env_s_174", align 8 + %"$$fundef_41_env_s_169" = getelementptr inbounds %"$$fundef_41_env_114", %"$$fundef_41_env_114"* %0, i32 0, i32 0 + %"$s_envload_170" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_41_env_s_169", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_175", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$retval_44" = alloca %Uint32, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_170", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$retval_42" = alloca %Uint32, align 8 + %"$gasrem_171" = load i64, i64* @_gasrem, align 8 + %"$gascmp_172" = icmp ugt i64 1, %"$gasrem_171" + br i1 %"$gascmp_172", label %"$out_of_gas_173", label %"$have_gas_174" + +"$out_of_gas_173": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_174" + +"$have_gas_174": ; preds = %"$out_of_gas_173", %entry + %"$consume_175" = sub i64 %"$gasrem_171", 1 + store i64 %"$consume_175", i64* @_gasrem, align 8 + %sz = alloca %Uint32, align 8 %"$gasrem_176" = load i64, i64* @_gasrem, align 8 %"$gascmp_177" = icmp ugt i64 1, %"$gasrem_176" br i1 %"$gascmp_177", label %"$out_of_gas_178", label %"$have_gas_179" -"$out_of_gas_178": ; preds = %entry +"$out_of_gas_178": ; preds = %"$have_gas_174" call void @_out_of_gas() br label %"$have_gas_179" -"$have_gas_179": ; preds = %"$out_of_gas_178", %entry +"$have_gas_179": ; preds = %"$out_of_gas_178", %"$have_gas_174" %"$consume_180" = sub i64 %"$gasrem_176", 1 store i64 %"$consume_180", i64* @_gasrem, align 8 - %sz = alloca %Uint32, align 8 - %"$gasrem_181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_182" = icmp ugt i64 1, %"$gasrem_181" - br i1 %"$gascmp_182", label %"$out_of_gas_183", label %"$have_gas_184" - -"$out_of_gas_183": ; preds = %"$have_gas_179" - call void @_out_of_gas() - br label %"$have_gas_184" - -"$have_gas_184": ; preds = %"$out_of_gas_183", %"$have_gas_179" - %"$consume_185" = sub i64 %"$gasrem_181", 1 - store i64 %"$consume_185", i64* @_gasrem, align 8 %"$s_2" = alloca %Uint32, align 8 - %"$s_186" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_187" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_186", 0 - %"$s_envptr_188" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_186", 1 - %"$s_call_189" = call %Uint32 %"$s_fptr_187"(i8* %"$s_envptr_188", %Uint32 %1) - store %Uint32 %"$s_call_189", %Uint32* %"$s_2", align 4 - %"$$s_2_190" = load %Uint32, %Uint32* %"$s_2", align 4 - store %Uint32 %"$$s_2_190", %Uint32* %sz, align 4 + %"$s_181" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_182" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_181", 0 + %"$s_envptr_183" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_181", 1 + %"$s_call_184" = call %Uint32 %"$s_fptr_182"(i8* %"$s_envptr_183", %Uint32 %1) + store %Uint32 %"$s_call_184", %Uint32* %"$s_2", align 4 + %"$$s_2_185" = load %Uint32, %Uint32* %"$s_2", align 4 + store %Uint32 %"$$s_2_185", %Uint32* %sz, align 4 + %"$gasrem_186" = load i64, i64* @_gasrem, align 8 + %"$gascmp_187" = icmp ugt i64 1, %"$gasrem_186" + br i1 %"$gascmp_187", label %"$out_of_gas_188", label %"$have_gas_189" + +"$out_of_gas_188": ; preds = %"$have_gas_179" + call void @_out_of_gas() + br label %"$have_gas_189" + +"$have_gas_189": ; preds = %"$out_of_gas_188", %"$have_gas_179" + %"$consume_190" = sub i64 %"$gasrem_186", 1 + store i64 %"$consume_190", i64* @_gasrem, align 8 + %ssz = alloca %Uint32, align 8 %"$gasrem_191" = load i64, i64* @_gasrem, align 8 %"$gascmp_192" = icmp ugt i64 1, %"$gasrem_191" br i1 %"$gascmp_192", label %"$out_of_gas_193", label %"$have_gas_194" -"$out_of_gas_193": ; preds = %"$have_gas_184" +"$out_of_gas_193": ; preds = %"$have_gas_189" call void @_out_of_gas() br label %"$have_gas_194" -"$have_gas_194": ; preds = %"$out_of_gas_193", %"$have_gas_184" +"$have_gas_194": ; preds = %"$out_of_gas_193", %"$have_gas_189" %"$consume_195" = sub i64 %"$gasrem_191", 1 store i64 %"$consume_195", i64* @_gasrem, align 8 - %ssz = alloca %Uint32, align 8 - %"$gasrem_196" = load i64, i64* @_gasrem, align 8 - %"$gascmp_197" = icmp ugt i64 1, %"$gasrem_196" - br i1 %"$gascmp_197", label %"$out_of_gas_198", label %"$have_gas_199" - -"$out_of_gas_198": ; preds = %"$have_gas_194" - call void @_out_of_gas() - br label %"$have_gas_199" - -"$have_gas_199": ; preds = %"$out_of_gas_198", %"$have_gas_194" - %"$consume_200" = sub i64 %"$gasrem_196", 1 - store i64 %"$consume_200", i64* @_gasrem, align 8 %"$s_3" = alloca %Uint32, align 8 - %"$s_201" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_202" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_201", 0 - %"$s_envptr_203" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_201", 1 - %"$sz_204" = load %Uint32, %Uint32* %sz, align 4 - %"$s_call_205" = call %Uint32 %"$s_fptr_202"(i8* %"$s_envptr_203", %Uint32 %"$sz_204") - store %Uint32 %"$s_call_205", %Uint32* %"$s_3", align 4 - %"$$s_3_206" = load %Uint32, %Uint32* %"$s_3", align 4 - store %Uint32 %"$$s_3_206", %Uint32* %ssz, align 4 - %"$gasrem_207" = load i64, i64* @_gasrem, align 8 - %"$gascmp_208" = icmp ugt i64 1, %"$gasrem_207" - br i1 %"$gascmp_208", label %"$out_of_gas_209", label %"$have_gas_210" - -"$out_of_gas_209": ; preds = %"$have_gas_199" - call void @_out_of_gas() - br label %"$have_gas_210" - -"$have_gas_210": ; preds = %"$out_of_gas_209", %"$have_gas_199" - %"$consume_211" = sub i64 %"$gasrem_207", 1 - store i64 %"$consume_211", i64* @_gasrem, align 8 + %"$s_196" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_197" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_196", 0 + %"$s_envptr_198" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_196", 1 + %"$sz_199" = load %Uint32, %Uint32* %sz, align 4 + %"$s_call_200" = call %Uint32 %"$s_fptr_197"(i8* %"$s_envptr_198", %Uint32 %"$sz_199") + store %Uint32 %"$s_call_200", %Uint32* %"$s_3", align 4 + %"$$s_3_201" = load %Uint32, %Uint32* %"$s_3", align 4 + store %Uint32 %"$$s_3_201", %Uint32* %ssz, align 4 + %"$gasrem_202" = load i64, i64* @_gasrem, align 8 + %"$gascmp_203" = icmp ugt i64 1, %"$gasrem_202" + br i1 %"$gascmp_203", label %"$out_of_gas_204", label %"$have_gas_205" + +"$out_of_gas_204": ; preds = %"$have_gas_194" + call void @_out_of_gas() + br label %"$have_gas_205" + +"$have_gas_205": ; preds = %"$out_of_gas_204", %"$have_gas_194" + %"$consume_206" = sub i64 %"$gasrem_202", 1 + store i64 %"$consume_206", i64* @_gasrem, align 8 %"$s_4" = alloca %Uint32, align 8 - %"$s_212" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_213" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_212", 0 - %"$s_envptr_214" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_212", 1 - %"$ssz_215" = load %Uint32, %Uint32* %ssz, align 4 - %"$s_call_216" = call %Uint32 %"$s_fptr_213"(i8* %"$s_envptr_214", %Uint32 %"$ssz_215") - store %Uint32 %"$s_call_216", %Uint32* %"$s_4", align 4 - %"$$s_4_217" = load %Uint32, %Uint32* %"$s_4", align 4 - store %Uint32 %"$$s_4_217", %Uint32* %"$retval_44", align 4 - %"$$retval_44_218" = load %Uint32, %Uint32* %"$retval_44", align 4 - ret %Uint32 %"$$retval_44_218" + %"$s_207" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_208" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_207", 0 + %"$s_envptr_209" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_207", 1 + %"$ssz_210" = load %Uint32, %Uint32* %ssz, align 4 + %"$s_call_211" = call %Uint32 %"$s_fptr_208"(i8* %"$s_envptr_209", %Uint32 %"$ssz_210") + store %Uint32 %"$s_call_211", %Uint32* %"$s_4", align 4 + %"$$s_4_212" = load %Uint32, %Uint32* %"$s_4", align 4 + store %Uint32 %"$$s_4_212", %Uint32* %"$retval_42", align 4 + %"$$retval_42_213" = load %Uint32, %Uint32* %"$retval_42", align 4 + ret %Uint32 %"$$retval_42_213" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_41"(%"$$fundef_41_env_120"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_39"(%"$$fundef_39_env_115"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { entry: - %"$retval_42" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_163" = load i64, i64* @_gasrem, align 8 - %"$gascmp_164" = icmp ugt i64 1, %"$gasrem_163" - br i1 %"$gascmp_164", label %"$out_of_gas_165", label %"$have_gas_166" - -"$out_of_gas_165": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_166" - -"$have_gas_166": ; preds = %"$out_of_gas_165", %entry - %"$consume_167" = sub i64 %"$gasrem_163", 1 - store i64 %"$consume_167", i64* @_gasrem, align 8 - %"$$fundef_43_envp_168_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_43_envp_168_salloc" = call i8* @_salloc(i8* %"$$fundef_43_envp_168_load", i64 16) - %"$$fundef_43_envp_168" = bitcast i8* %"$$fundef_43_envp_168_salloc" to %"$$fundef_43_env_119"* - %"$$fundef_43_env_voidp_170" = bitcast %"$$fundef_43_env_119"* %"$$fundef_43_envp_168" to i8* - %"$$fundef_43_cloval_171" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_43_env_119"*, %Uint32)* @"$fundef_43" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_43_env_voidp_170", 1 - %"$$fundef_43_env_s_172" = getelementptr inbounds %"$$fundef_43_env_119", %"$$fundef_43_env_119"* %"$$fundef_43_envp_168", i32 0, i32 0 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_43_env_s_172", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_43_cloval_171", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_42", align 8 - %"$$retval_42_173" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_42", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_42_173" + %"$retval_40" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_158" = load i64, i64* @_gasrem, align 8 + %"$gascmp_159" = icmp ugt i64 1, %"$gasrem_158" + br i1 %"$gascmp_159", label %"$out_of_gas_160", label %"$have_gas_161" + +"$out_of_gas_160": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_161" + +"$have_gas_161": ; preds = %"$out_of_gas_160", %entry + %"$consume_162" = sub i64 %"$gasrem_158", 1 + store i64 %"$consume_162", i64* @_gasrem, align 8 + %"$$fundef_41_envp_163_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_41_envp_163_salloc" = call i8* @_salloc(i8* %"$$fundef_41_envp_163_load", i64 16) + %"$$fundef_41_envp_163" = bitcast i8* %"$$fundef_41_envp_163_salloc" to %"$$fundef_41_env_114"* + %"$$fundef_41_env_voidp_165" = bitcast %"$$fundef_41_env_114"* %"$$fundef_41_envp_163" to i8* + %"$$fundef_41_cloval_166" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_41_env_114"*, %Uint32)* @"$fundef_41" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_41_env_voidp_165", 1 + %"$$fundef_41_env_s_167" = getelementptr inbounds %"$$fundef_41_env_114", %"$$fundef_41_env_114"* %"$$fundef_41_envp_163", i32 0, i32 0 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_41_env_s_167", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_41_cloval_166", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_40", align 8 + %"$$retval_40_168" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_40", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_40_168" } -define internal %Uint32 @"$fundef_39"(%"$$fundef_39_env_121"* %0, %Uint32 %1) { +define internal %Uint32 @"$fundef_37"(%"$$fundef_37_env_116"* %0, %Uint32 %1) { entry: - %"$$fundef_39_env_s_134" = getelementptr inbounds %"$$fundef_39_env_121", %"$$fundef_39_env_121"* %0, i32 0, i32 0 - %"$s_envload_135" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_39_env_s_134", align 8 + %"$$fundef_37_env_s_129" = getelementptr inbounds %"$$fundef_37_env_116", %"$$fundef_37_env_116"* %0, i32 0, i32 0 + %"$s_envload_130" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_37_env_s_129", align 8 %s = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_135", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$retval_40" = alloca %Uint32, align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$s_envload_130", { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$retval_38" = alloca %Uint32, align 8 + %"$gasrem_131" = load i64, i64* @_gasrem, align 8 + %"$gascmp_132" = icmp ugt i64 1, %"$gasrem_131" + br i1 %"$gascmp_132", label %"$out_of_gas_133", label %"$have_gas_134" + +"$out_of_gas_133": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_134" + +"$have_gas_134": ; preds = %"$out_of_gas_133", %entry + %"$consume_135" = sub i64 %"$gasrem_131", 1 + store i64 %"$consume_135", i64* @_gasrem, align 8 + %sz = alloca %Uint32, align 8 %"$gasrem_136" = load i64, i64* @_gasrem, align 8 %"$gascmp_137" = icmp ugt i64 1, %"$gasrem_136" br i1 %"$gascmp_137", label %"$out_of_gas_138", label %"$have_gas_139" -"$out_of_gas_138": ; preds = %entry +"$out_of_gas_138": ; preds = %"$have_gas_134" call void @_out_of_gas() br label %"$have_gas_139" -"$have_gas_139": ; preds = %"$out_of_gas_138", %entry +"$have_gas_139": ; preds = %"$out_of_gas_138", %"$have_gas_134" %"$consume_140" = sub i64 %"$gasrem_136", 1 store i64 %"$consume_140", i64* @_gasrem, align 8 - %sz = alloca %Uint32, align 8 - %"$gasrem_141" = load i64, i64* @_gasrem, align 8 - %"$gascmp_142" = icmp ugt i64 1, %"$gasrem_141" - br i1 %"$gascmp_142", label %"$out_of_gas_143", label %"$have_gas_144" - -"$out_of_gas_143": ; preds = %"$have_gas_139" - call void @_out_of_gas() - br label %"$have_gas_144" - -"$have_gas_144": ; preds = %"$out_of_gas_143", %"$have_gas_139" - %"$consume_145" = sub i64 %"$gasrem_141", 1 - store i64 %"$consume_145", i64* @_gasrem, align 8 %"$s_0" = alloca %Uint32, align 8 - %"$s_146" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_147" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_146", 0 - %"$s_envptr_148" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_146", 1 - %"$s_call_149" = call %Uint32 %"$s_fptr_147"(i8* %"$s_envptr_148", %Uint32 %1) - store %Uint32 %"$s_call_149", %Uint32* %"$s_0", align 4 - %"$$s_0_150" = load %Uint32, %Uint32* %"$s_0", align 4 - store %Uint32 %"$$s_0_150", %Uint32* %sz, align 4 - %"$gasrem_151" = load i64, i64* @_gasrem, align 8 - %"$gascmp_152" = icmp ugt i64 1, %"$gasrem_151" - br i1 %"$gascmp_152", label %"$out_of_gas_153", label %"$have_gas_154" - -"$out_of_gas_153": ; preds = %"$have_gas_144" - call void @_out_of_gas() - br label %"$have_gas_154" - -"$have_gas_154": ; preds = %"$out_of_gas_153", %"$have_gas_144" - %"$consume_155" = sub i64 %"$gasrem_151", 1 - store i64 %"$consume_155", i64* @_gasrem, align 8 + %"$s_141" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_142" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_141", 0 + %"$s_envptr_143" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_141", 1 + %"$s_call_144" = call %Uint32 %"$s_fptr_142"(i8* %"$s_envptr_143", %Uint32 %1) + store %Uint32 %"$s_call_144", %Uint32* %"$s_0", align 4 + %"$$s_0_145" = load %Uint32, %Uint32* %"$s_0", align 4 + store %Uint32 %"$$s_0_145", %Uint32* %sz, align 4 + %"$gasrem_146" = load i64, i64* @_gasrem, align 8 + %"$gascmp_147" = icmp ugt i64 1, %"$gasrem_146" + br i1 %"$gascmp_147", label %"$out_of_gas_148", label %"$have_gas_149" + +"$out_of_gas_148": ; preds = %"$have_gas_139" + call void @_out_of_gas() + br label %"$have_gas_149" + +"$have_gas_149": ; preds = %"$out_of_gas_148", %"$have_gas_139" + %"$consume_150" = sub i64 %"$gasrem_146", 1 + store i64 %"$consume_150", i64* @_gasrem, align 8 %"$s_1" = alloca %Uint32, align 8 - %"$s_156" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 - %"$s_fptr_157" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_156", 0 - %"$s_envptr_158" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_156", 1 - %"$sz_159" = load %Uint32, %Uint32* %sz, align 4 - %"$s_call_160" = call %Uint32 %"$s_fptr_157"(i8* %"$s_envptr_158", %Uint32 %"$sz_159") - store %Uint32 %"$s_call_160", %Uint32* %"$s_1", align 4 - %"$$s_1_161" = load %Uint32, %Uint32* %"$s_1", align 4 - store %Uint32 %"$$s_1_161", %Uint32* %"$retval_40", align 4 - %"$$retval_40_162" = load %Uint32, %Uint32* %"$retval_40", align 4 - ret %Uint32 %"$$retval_40_162" + %"$s_151" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %s, align 8 + %"$s_fptr_152" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_151", 0 + %"$s_envptr_153" = extractvalue { %Uint32 (i8*, %Uint32)*, i8* } %"$s_151", 1 + %"$sz_154" = load %Uint32, %Uint32* %sz, align 4 + %"$s_call_155" = call %Uint32 %"$s_fptr_152"(i8* %"$s_envptr_153", %Uint32 %"$sz_154") + store %Uint32 %"$s_call_155", %Uint32* %"$s_1", align 4 + %"$$s_1_156" = load %Uint32, %Uint32* %"$s_1", align 4 + store %Uint32 %"$$s_1_156", %Uint32* %"$retval_38", align 4 + %"$$retval_38_157" = load %Uint32, %Uint32* %"$retval_38", align 4 + ret %Uint32 %"$$retval_38_157" } -define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_37"(%"$$fundef_37_env_122"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { +define internal { %Uint32 (i8*, %Uint32)*, i8* } @"$fundef_35"(%"$$fundef_35_env_117"* %0, { %Uint32 (i8*, %Uint32)*, i8* } %1) { entry: - %"$retval_38" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_123" = load i64, i64* @_gasrem, align 8 - %"$gascmp_124" = icmp ugt i64 1, %"$gasrem_123" - br i1 %"$gascmp_124", label %"$out_of_gas_125", label %"$have_gas_126" - -"$out_of_gas_125": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_126" - -"$have_gas_126": ; preds = %"$out_of_gas_125", %entry - %"$consume_127" = sub i64 %"$gasrem_123", 1 - store i64 %"$consume_127", i64* @_gasrem, align 8 - %"$$fundef_39_envp_128_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_39_envp_128_salloc" = call i8* @_salloc(i8* %"$$fundef_39_envp_128_load", i64 16) - %"$$fundef_39_envp_128" = bitcast i8* %"$$fundef_39_envp_128_salloc" to %"$$fundef_39_env_121"* - %"$$fundef_39_env_voidp_130" = bitcast %"$$fundef_39_env_121"* %"$$fundef_39_envp_128" to i8* - %"$$fundef_39_cloval_131" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_39_env_121"*, %Uint32)* @"$fundef_39" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_39_env_voidp_130", 1 - %"$$fundef_39_env_s_132" = getelementptr inbounds %"$$fundef_39_env_121", %"$$fundef_39_env_121"* %"$$fundef_39_envp_128", i32 0, i32 0 - store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_39_env_s_132", align 8 - store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_39_cloval_131", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_38", align 8 - %"$$retval_38_133" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_38", align 8 - ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_38_133" + %"$retval_36" = alloca { %Uint32 (i8*, %Uint32)*, i8* }, align 8 + %"$gasrem_118" = load i64, i64* @_gasrem, align 8 + %"$gascmp_119" = icmp ugt i64 1, %"$gasrem_118" + br i1 %"$gascmp_119", label %"$out_of_gas_120", label %"$have_gas_121" + +"$out_of_gas_120": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_121" + +"$have_gas_121": ; preds = %"$out_of_gas_120", %entry + %"$consume_122" = sub i64 %"$gasrem_118", 1 + store i64 %"$consume_122", i64* @_gasrem, align 8 + %"$$fundef_37_envp_123_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_37_envp_123_salloc" = call i8* @_salloc(i8* %"$$fundef_37_envp_123_load", i64 16) + %"$$fundef_37_envp_123" = bitcast i8* %"$$fundef_37_envp_123_salloc" to %"$$fundef_37_env_116"* + %"$$fundef_37_env_voidp_125" = bitcast %"$$fundef_37_env_116"* %"$$fundef_37_envp_123" to i8* + %"$$fundef_37_cloval_126" = insertvalue { %Uint32 (i8*, %Uint32)*, i8* } { %Uint32 (i8*, %Uint32)* bitcast (%Uint32 (%"$$fundef_37_env_116"*, %Uint32)* @"$fundef_37" to %Uint32 (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_37_env_voidp_125", 1 + %"$$fundef_37_env_s_127" = getelementptr inbounds %"$$fundef_37_env_116", %"$$fundef_37_env_116"* %"$$fundef_37_envp_123", i32 0, i32 0 + store { %Uint32 (i8*, %Uint32)*, i8* } %1, { %Uint32 (i8*, %Uint32)*, i8* }* %"$$fundef_37_env_s_127", align 8 + store { %Uint32 (i8*, %Uint32)*, i8* } %"$$fundef_37_cloval_126", { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_36", align 8 + %"$$retval_36_128" = load { %Uint32 (i8*, %Uint32)*, i8* }, { %Uint32 (i8*, %Uint32)*, i8* }* %"$retval_36", align 8 + ret { %Uint32 (i8*, %Uint32)*, i8* } %"$$retval_36_128" } declare void @_out_of_gas() @@ -907,581 +875,572 @@ entry: define internal %Uint32 @_scilla_expr_fun(i8* %0) { entry: - %"$expr_36" = alloca %Uint32, align 8 - %"$gasrem_506" = load i64, i64* @_gasrem, align 8 - %"$gascmp_507" = icmp ugt i64 1, %"$gasrem_506" - br i1 %"$gascmp_507", label %"$out_of_gas_508", label %"$have_gas_509" + %"$expr_34" = alloca %Uint32, align 8 + %"$gasrem_487" = load i64, i64* @_gasrem, align 8 + %"$gascmp_488" = icmp ugt i64 1, %"$gasrem_487" + br i1 %"$gascmp_488", label %"$out_of_gas_489", label %"$have_gas_490" -"$out_of_gas_508": ; preds = %entry +"$out_of_gas_489": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_509" + br label %"$have_gas_490" -"$have_gas_509": ; preds = %"$out_of_gas_508", %entry - %"$consume_510" = sub i64 %"$gasrem_506", 1 - store i64 %"$consume_510", i64* @_gasrem, align 8 - %"$gasrem_511" = load i64, i64* @_gasrem, align 8 - %"$gascmp_512" = icmp ugt i64 1, %"$gasrem_511" - br i1 %"$gascmp_512", label %"$out_of_gas_513", label %"$have_gas_514" +"$have_gas_490": ; preds = %"$out_of_gas_489", %entry + %"$consume_491" = sub i64 %"$gasrem_487", 1 + store i64 %"$consume_491", i64* @_gasrem, align 8 + %"$gasrem_492" = load i64, i64* @_gasrem, align 8 + %"$gascmp_493" = icmp ugt i64 1, %"$gasrem_492" + br i1 %"$gascmp_493", label %"$out_of_gas_494", label %"$have_gas_495" -"$out_of_gas_513": ; preds = %"$have_gas_509" +"$out_of_gas_494": ; preds = %"$have_gas_490" call void @_out_of_gas() - br label %"$have_gas_514" + br label %"$have_gas_495" -"$have_gas_514": ; preds = %"$out_of_gas_513", %"$have_gas_509" - %"$consume_515" = sub i64 %"$gasrem_511", 1 - store i64 %"$consume_515", i64* @_gasrem, align 8 - %"$gasrem_516" = load i64, i64* @_gasrem, align 8 - %"$gascmp_517" = icmp ugt i64 1, %"$gasrem_516" - br i1 %"$gascmp_517", label %"$out_of_gas_518", label %"$have_gas_519" +"$have_gas_495": ; preds = %"$out_of_gas_494", %"$have_gas_490" + %"$consume_496" = sub i64 %"$gasrem_492", 1 + store i64 %"$consume_496", i64* @_gasrem, align 8 + %"$gasrem_497" = load i64, i64* @_gasrem, align 8 + %"$gascmp_498" = icmp ugt i64 1, %"$gasrem_497" + br i1 %"$gascmp_498", label %"$out_of_gas_499", label %"$have_gas_500" -"$out_of_gas_518": ; preds = %"$have_gas_514" +"$out_of_gas_499": ; preds = %"$have_gas_495" call void @_out_of_gas() - br label %"$have_gas_519" + br label %"$have_gas_500" -"$have_gas_519": ; preds = %"$out_of_gas_518", %"$have_gas_514" - %"$consume_520" = sub i64 %"$gasrem_516", 1 - store i64 %"$consume_520", i64* @_gasrem, align 8 +"$have_gas_500": ; preds = %"$out_of_gas_499", %"$have_gas_495" + %"$consume_501" = sub i64 %"$gasrem_497", 1 + store i64 %"$consume_501", i64* @_gasrem, align 8 %c2 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_521" = load i64, i64* @_gasrem, align 8 - %"$gascmp_522" = icmp ugt i64 1, %"$gasrem_521" - br i1 %"$gascmp_522", label %"$out_of_gas_523", label %"$have_gas_524" + %"$gasrem_502" = load i64, i64* @_gasrem, align 8 + %"$gascmp_503" = icmp ugt i64 1, %"$gasrem_502" + br i1 %"$gascmp_503", label %"$out_of_gas_504", label %"$have_gas_505" -"$out_of_gas_523": ; preds = %"$have_gas_519" +"$out_of_gas_504": ; preds = %"$have_gas_500" call void @_out_of_gas() - br label %"$have_gas_524" + br label %"$have_gas_505" -"$have_gas_524": ; preds = %"$out_of_gas_523", %"$have_gas_519" - %"$consume_525" = sub i64 %"$gasrem_521", 1 - store i64 %"$consume_525", i64* @_gasrem, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_37_env_122"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_37" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8 - %"$gasrem_529" = load i64, i64* @_gasrem, align 8 - %"$gascmp_530" = icmp ugt i64 1, %"$gasrem_529" - br i1 %"$gascmp_530", label %"$out_of_gas_531", label %"$have_gas_532" +"$have_gas_505": ; preds = %"$out_of_gas_504", %"$have_gas_500" + %"$consume_506" = sub i64 %"$gasrem_502", 1 + store i64 %"$consume_506", i64* @_gasrem, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_35_env_117"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_35" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8 + %"$gasrem_510" = load i64, i64* @_gasrem, align 8 + %"$gascmp_511" = icmp ugt i64 1, %"$gasrem_510" + br i1 %"$gascmp_511", label %"$out_of_gas_512", label %"$have_gas_513" -"$out_of_gas_531": ; preds = %"$have_gas_524" +"$out_of_gas_512": ; preds = %"$have_gas_505" call void @_out_of_gas() - br label %"$have_gas_532" + br label %"$have_gas_513" -"$have_gas_532": ; preds = %"$out_of_gas_531", %"$have_gas_524" - %"$consume_533" = sub i64 %"$gasrem_529", 1 - store i64 %"$consume_533", i64* @_gasrem, align 8 +"$have_gas_513": ; preds = %"$out_of_gas_512", %"$have_gas_505" + %"$consume_514" = sub i64 %"$gasrem_510", 1 + store i64 %"$consume_514", i64* @_gasrem, align 8 %c3 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_534" = load i64, i64* @_gasrem, align 8 - %"$gascmp_535" = icmp ugt i64 1, %"$gasrem_534" - br i1 %"$gascmp_535", label %"$out_of_gas_536", label %"$have_gas_537" + %"$gasrem_515" = load i64, i64* @_gasrem, align 8 + %"$gascmp_516" = icmp ugt i64 1, %"$gasrem_515" + br i1 %"$gascmp_516", label %"$out_of_gas_517", label %"$have_gas_518" -"$out_of_gas_536": ; preds = %"$have_gas_532" +"$out_of_gas_517": ; preds = %"$have_gas_513" call void @_out_of_gas() - br label %"$have_gas_537" + br label %"$have_gas_518" -"$have_gas_537": ; preds = %"$out_of_gas_536", %"$have_gas_532" - %"$consume_538" = sub i64 %"$gasrem_534", 1 - store i64 %"$consume_538", i64* @_gasrem, align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_41_env_120"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_41" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c3, align 8 - %"$gasrem_542" = load i64, i64* @_gasrem, align 8 - %"$gascmp_543" = icmp ugt i64 1, %"$gasrem_542" - br i1 %"$gascmp_543", label %"$out_of_gas_544", label %"$have_gas_545" +"$have_gas_518": ; preds = %"$out_of_gas_517", %"$have_gas_513" + %"$consume_519" = sub i64 %"$gasrem_515", 1 + store i64 %"$consume_519", i64* @_gasrem, align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })* bitcast ({ %Uint32 (i8*, %Uint32)*, i8* } (%"$$fundef_39_env_115"*, { %Uint32 (i8*, %Uint32)*, i8* })* @"$fundef_39" to { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*), i8* null }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c3, align 8 + %"$gasrem_523" = load i64, i64* @_gasrem, align 8 + %"$gascmp_524" = icmp ugt i64 1, %"$gasrem_523" + br i1 %"$gascmp_524", label %"$out_of_gas_525", label %"$have_gas_526" -"$out_of_gas_544": ; preds = %"$have_gas_537" +"$out_of_gas_525": ; preds = %"$have_gas_518" call void @_out_of_gas() - br label %"$have_gas_545" + br label %"$have_gas_526" -"$have_gas_545": ; preds = %"$out_of_gas_544", %"$have_gas_537" - %"$consume_546" = sub i64 %"$gasrem_542", 1 - store i64 %"$consume_546", i64* @_gasrem, align 8 +"$have_gas_526": ; preds = %"$out_of_gas_525", %"$have_gas_518" + %"$consume_527" = sub i64 %"$gasrem_523", 1 + store i64 %"$consume_527", i64* @_gasrem, align 8 %c3_ = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_547" = load i64, i64* @_gasrem, align 8 - %"$gascmp_548" = icmp ugt i64 1, %"$gasrem_547" - br i1 %"$gascmp_548", label %"$out_of_gas_549", label %"$have_gas_550" + %"$gasrem_528" = load i64, i64* @_gasrem, align 8 + %"$gascmp_529" = icmp ugt i64 1, %"$gasrem_528" + br i1 %"$gascmp_529", label %"$out_of_gas_530", label %"$have_gas_531" -"$out_of_gas_549": ; preds = %"$have_gas_545" +"$out_of_gas_530": ; preds = %"$have_gas_526" call void @_out_of_gas() - br label %"$have_gas_550" + br label %"$have_gas_531" -"$have_gas_550": ; preds = %"$out_of_gas_549", %"$have_gas_545" - %"$consume_551" = sub i64 %"$gasrem_547", 1 - store i64 %"$consume_551", i64* @_gasrem, align 8 - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_45_env_118"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_45" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %c3_, align 8 - %"$gasrem_555" = load i64, i64* @_gasrem, align 8 - %"$gascmp_556" = icmp ugt i64 1, %"$gasrem_555" - br i1 %"$gascmp_556", label %"$out_of_gas_557", label %"$have_gas_558" +"$have_gas_531": ; preds = %"$out_of_gas_530", %"$have_gas_526" + %"$consume_532" = sub i64 %"$gasrem_528", 1 + store i64 %"$consume_532", i64* @_gasrem, align 8 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_43_env_113"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_43" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %c3_, align 8 + %"$gasrem_536" = load i64, i64* @_gasrem, align 8 + %"$gascmp_537" = icmp ugt i64 1, %"$gasrem_536" + br i1 %"$gascmp_537", label %"$out_of_gas_538", label %"$have_gas_539" -"$out_of_gas_557": ; preds = %"$have_gas_550" +"$out_of_gas_538": ; preds = %"$have_gas_531" call void @_out_of_gas() - br label %"$have_gas_558" + br label %"$have_gas_539" -"$have_gas_558": ; preds = %"$out_of_gas_557", %"$have_gas_550" - %"$consume_559" = sub i64 %"$gasrem_555", 1 - store i64 %"$consume_559", i64* @_gasrem, align 8 +"$have_gas_539": ; preds = %"$out_of_gas_538", %"$have_gas_531" + %"$consume_540" = sub i64 %"$gasrem_536", 1 + store i64 %"$consume_540", i64* @_gasrem, align 8 %cadd = alloca { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_560" = load i64, i64* @_gasrem, align 8 - %"$gascmp_561" = icmp ugt i64 1, %"$gasrem_560" - br i1 %"$gascmp_561", label %"$out_of_gas_562", label %"$have_gas_563" + %"$gasrem_541" = load i64, i64* @_gasrem, align 8 + %"$gascmp_542" = icmp ugt i64 1, %"$gasrem_541" + br i1 %"$gascmp_542", label %"$out_of_gas_543", label %"$have_gas_544" -"$out_of_gas_562": ; preds = %"$have_gas_558" +"$out_of_gas_543": ; preds = %"$have_gas_539" call void @_out_of_gas() - br label %"$have_gas_563" + br label %"$have_gas_544" -"$have_gas_563": ; preds = %"$out_of_gas_562", %"$have_gas_558" - %"$consume_564" = sub i64 %"$gasrem_560", 1 - store i64 %"$consume_564", i64* @_gasrem, align 8 - store { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (%"$$fundef_49_env_116"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_49" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 - %"$gasrem_568" = load i64, i64* @_gasrem, align 8 - %"$gascmp_569" = icmp ugt i64 1, %"$gasrem_568" - br i1 %"$gascmp_569", label %"$out_of_gas_570", label %"$have_gas_571" +"$have_gas_544": ; preds = %"$out_of_gas_543", %"$have_gas_539" + %"$consume_545" = sub i64 %"$gasrem_541", 1 + store i64 %"$consume_545", i64* @_gasrem, align 8 + store { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (%"$$fundef_47_env_111"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_47" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 + %"$gasrem_549" = load i64, i64* @_gasrem, align 8 + %"$gascmp_550" = icmp ugt i64 1, %"$gasrem_549" + br i1 %"$gascmp_550", label %"$out_of_gas_551", label %"$have_gas_552" -"$out_of_gas_570": ; preds = %"$have_gas_563" +"$out_of_gas_551": ; preds = %"$have_gas_544" call void @_out_of_gas() - br label %"$have_gas_571" + br label %"$have_gas_552" -"$have_gas_571": ; preds = %"$out_of_gas_570", %"$have_gas_563" - %"$consume_572" = sub i64 %"$gasrem_568", 1 - store i64 %"$consume_572", i64* @_gasrem, align 8 +"$have_gas_552": ; preds = %"$out_of_gas_551", %"$have_gas_544" + %"$consume_553" = sub i64 %"$gasrem_549", 1 + store i64 %"$consume_553", i64* @_gasrem, align 8 %cmul = alloca { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_573" = load i64, i64* @_gasrem, align 8 - %"$gascmp_574" = icmp ugt i64 1, %"$gasrem_573" - br i1 %"$gascmp_574", label %"$out_of_gas_575", label %"$have_gas_576" + %"$gasrem_554" = load i64, i64* @_gasrem, align 8 + %"$gascmp_555" = icmp ugt i64 1, %"$gasrem_554" + br i1 %"$gascmp_555", label %"$out_of_gas_556", label %"$have_gas_557" -"$out_of_gas_575": ; preds = %"$have_gas_571" +"$out_of_gas_556": ; preds = %"$have_gas_552" call void @_out_of_gas() - br label %"$have_gas_576" + br label %"$have_gas_557" -"$have_gas_576": ; preds = %"$out_of_gas_575", %"$have_gas_571" - %"$consume_577" = sub i64 %"$gasrem_573", 1 - store i64 %"$consume_577", i64* @_gasrem, align 8 - store { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (%"$$fundef_57_env_112"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_57" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 - %"$gasrem_581" = load i64, i64* @_gasrem, align 8 - %"$gascmp_582" = icmp ugt i64 1, %"$gasrem_581" - br i1 %"$gascmp_582", label %"$out_of_gas_583", label %"$have_gas_584" +"$have_gas_557": ; preds = %"$out_of_gas_556", %"$have_gas_552" + %"$consume_558" = sub i64 %"$gasrem_554", 1 + store i64 %"$consume_558", i64* @_gasrem, align 8 + store { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (%"$$fundef_55_env_107"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_55" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 + %"$gasrem_562" = load i64, i64* @_gasrem, align 8 + %"$gascmp_563" = icmp ugt i64 1, %"$gasrem_562" + br i1 %"$gascmp_563", label %"$out_of_gas_564", label %"$have_gas_565" -"$out_of_gas_583": ; preds = %"$have_gas_576" +"$out_of_gas_564": ; preds = %"$have_gas_557" call void @_out_of_gas() - br label %"$have_gas_584" + br label %"$have_gas_565" -"$have_gas_584": ; preds = %"$out_of_gas_583", %"$have_gas_576" - %"$consume_585" = sub i64 %"$gasrem_581", 1 - store i64 %"$consume_585", i64* @_gasrem, align 8 - %cexp = alloca { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_586" = load i64, i64* @_gasrem, align 8 - %"$gascmp_587" = icmp ugt i64 1, %"$gasrem_586" - br i1 %"$gascmp_587", label %"$out_of_gas_588", label %"$have_gas_589" +"$have_gas_565": ; preds = %"$out_of_gas_564", %"$have_gas_557" + %"$consume_566" = sub i64 %"$gasrem_562", 1 + store i64 %"$consume_566", i64* @_gasrem, align 8 + %cexp = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, align 8 + %"$gasrem_567" = load i64, i64* @_gasrem, align 8 + %"$gascmp_568" = icmp ugt i64 2, %"$gasrem_567" + br i1 %"$gascmp_568", label %"$out_of_gas_569", label %"$have_gas_570" -"$out_of_gas_588": ; preds = %"$have_gas_584" +"$out_of_gas_569": ; preds = %"$have_gas_565" call void @_out_of_gas() - br label %"$have_gas_589" + br label %"$have_gas_570" -"$have_gas_589": ; preds = %"$out_of_gas_588", %"$have_gas_584" - %"$consume_590" = sub i64 %"$gasrem_586", 1 - store i64 %"$consume_590", i64* @_gasrem, align 8 - store { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast ({ { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (%"$$fundef_63_env_109"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_63" to { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cexp, align 8 - %"$gasrem_594" = load i64, i64* @_gasrem, align 8 - %"$gascmp_595" = icmp ugt i64 1, %"$gasrem_594" - br i1 %"$gascmp_595", label %"$out_of_gas_596", label %"$have_gas_597" +"$have_gas_570": ; preds = %"$out_of_gas_569", %"$have_gas_565" + %"$consume_571" = sub i64 %"$gasrem_567", 2 + store i64 %"$consume_571", i64* @_gasrem, align 8 + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })* bitcast ({ { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_61_env_104"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })* @"$fundef_61" to { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*), i8* null }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %cexp, align 8 + %"$gasrem_575" = load i64, i64* @_gasrem, align 8 + %"$gascmp_576" = icmp ugt i64 1, %"$gasrem_575" + br i1 %"$gascmp_576", label %"$out_of_gas_577", label %"$have_gas_578" -"$out_of_gas_596": ; preds = %"$have_gas_589" +"$out_of_gas_577": ; preds = %"$have_gas_570" call void @_out_of_gas() - br label %"$have_gas_597" + br label %"$have_gas_578" -"$have_gas_597": ; preds = %"$out_of_gas_596", %"$have_gas_589" - %"$consume_598" = sub i64 %"$gasrem_594", 1 - store i64 %"$consume_598", i64* @_gasrem, align 8 +"$have_gas_578": ; preds = %"$out_of_gas_577", %"$have_gas_570" + %"$consume_579" = sub i64 %"$gasrem_575", 1 + store i64 %"$consume_579", i64* @_gasrem, align 8 %church_nat_to_uint32 = alloca { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$gasrem_599" = load i64, i64* @_gasrem, align 8 - %"$gascmp_600" = icmp ugt i64 1, %"$gasrem_599" - br i1 %"$gascmp_600", label %"$out_of_gas_601", label %"$have_gas_602" + %"$gasrem_580" = load i64, i64* @_gasrem, align 8 + %"$gascmp_581" = icmp ugt i64 1, %"$gasrem_580" + br i1 %"$gascmp_581", label %"$out_of_gas_582", label %"$have_gas_583" -"$out_of_gas_601": ; preds = %"$have_gas_597" +"$out_of_gas_582": ; preds = %"$have_gas_578" call void @_out_of_gas() - br label %"$have_gas_602" + br label %"$have_gas_583" -"$have_gas_602": ; preds = %"$out_of_gas_601", %"$have_gas_597" - %"$consume_603" = sub i64 %"$gasrem_599", 1 - store i64 %"$consume_603", i64* @_gasrem, align 8 - store { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast (%Uint32 (%"$$fundef_67_env_107"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_67" to %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %church_nat_to_uint32, align 8 - %"$gasrem_607" = load i64, i64* @_gasrem, align 8 - %"$gascmp_608" = icmp ugt i64 1, %"$gasrem_607" - br i1 %"$gascmp_608", label %"$out_of_gas_609", label %"$have_gas_610" +"$have_gas_583": ; preds = %"$out_of_gas_582", %"$have_gas_578" + %"$consume_584" = sub i64 %"$gasrem_580", 1 + store i64 %"$consume_584", i64* @_gasrem, align 8 + store { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* bitcast (%Uint32 (%"$$fundef_63_env_103"*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })* @"$fundef_63" to %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*), i8* null }, { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %church_nat_to_uint32, align 8 + %"$gasrem_588" = load i64, i64* @_gasrem, align 8 + %"$gascmp_589" = icmp ugt i64 1, %"$gasrem_588" + br i1 %"$gascmp_589", label %"$out_of_gas_590", label %"$have_gas_591" -"$out_of_gas_609": ; preds = %"$have_gas_602" +"$out_of_gas_590": ; preds = %"$have_gas_583" call void @_out_of_gas() - br label %"$have_gas_610" + br label %"$have_gas_591" -"$have_gas_610": ; preds = %"$out_of_gas_609", %"$have_gas_602" - %"$consume_611" = sub i64 %"$gasrem_607", 1 - store i64 %"$consume_611", i64* @_gasrem, align 8 +"$have_gas_591": ; preds = %"$out_of_gas_590", %"$have_gas_583" + %"$consume_592" = sub i64 %"$gasrem_588", 1 + store i64 %"$consume_592", i64* @_gasrem, align 8 %c4 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_612" = load i64, i64* @_gasrem, align 8 - %"$gascmp_613" = icmp ugt i64 1, %"$gasrem_612" - br i1 %"$gascmp_613", label %"$out_of_gas_614", label %"$have_gas_615" + %"$gasrem_593" = load i64, i64* @_gasrem, align 8 + %"$gascmp_594" = icmp ugt i64 1, %"$gasrem_593" + br i1 %"$gascmp_594", label %"$out_of_gas_595", label %"$have_gas_596" -"$out_of_gas_614": ; preds = %"$have_gas_610" +"$out_of_gas_595": ; preds = %"$have_gas_591" call void @_out_of_gas() - br label %"$have_gas_615" + br label %"$have_gas_596" -"$have_gas_615": ; preds = %"$out_of_gas_614", %"$have_gas_610" - %"$consume_616" = sub i64 %"$gasrem_612", 1 - store i64 %"$consume_616", i64* @_gasrem, align 8 +"$have_gas_596": ; preds = %"$out_of_gas_595", %"$have_gas_591" + %"$consume_597" = sub i64 %"$gasrem_593", 1 + store i64 %"$consume_597", i64* @_gasrem, align 8 %"$cmul_17" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cmul_617" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 - %"$cmul_fptr_618" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_617", 0 - %"$cmul_envptr_619" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_617", 1 - %"$c2_620" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8 - %"$cmul_call_621" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_618"(i8* %"$cmul_envptr_619", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_620") - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_621", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_17", align 8 + %"$cmul_598" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 + %"$cmul_fptr_599" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_598", 0 + %"$cmul_envptr_600" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_598", 1 + %"$c2_601" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8 + %"$cmul_call_602" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_599"(i8* %"$cmul_envptr_600", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_601") + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_602", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_17", align 8 %"$cmul_18" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_17_622" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_17", align 8 - %"$$cmul_17_fptr_623" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_17_622", 0 - %"$$cmul_17_envptr_624" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_17_622", 1 - %"$c2_625" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8 - %"$$cmul_17_call_626" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_17_fptr_623"(i8* %"$$cmul_17_envptr_624", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_625") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_17_call_626", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_18", align 8 - %"$$cmul_18_627" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_18", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_18_627", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 - %"$gasrem_628" = load i64, i64* @_gasrem, align 8 - %"$gascmp_629" = icmp ugt i64 1, %"$gasrem_628" - br i1 %"$gascmp_629", label %"$out_of_gas_630", label %"$have_gas_631" - -"$out_of_gas_630": ; preds = %"$have_gas_615" - call void @_out_of_gas() - br label %"$have_gas_631" - -"$have_gas_631": ; preds = %"$out_of_gas_630", %"$have_gas_615" - %"$consume_632" = sub i64 %"$gasrem_628", 1 - store i64 %"$consume_632", i64* @_gasrem, align 8 + %"$$cmul_17_603" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_17", align 8 + %"$$cmul_17_fptr_604" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_17_603", 0 + %"$$cmul_17_envptr_605" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_17_603", 1 + %"$c2_606" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c2, align 8 + %"$$cmul_17_call_607" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_17_fptr_604"(i8* %"$$cmul_17_envptr_605", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c2_606") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_17_call_607", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_18", align 8 + %"$$cmul_18_608" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_18", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_18_608", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 + %"$gasrem_609" = load i64, i64* @_gasrem, align 8 + %"$gascmp_610" = icmp ugt i64 1, %"$gasrem_609" + br i1 %"$gascmp_610", label %"$out_of_gas_611", label %"$have_gas_612" + +"$out_of_gas_611": ; preds = %"$have_gas_596" + call void @_out_of_gas() + br label %"$have_gas_612" + +"$have_gas_612": ; preds = %"$out_of_gas_611", %"$have_gas_596" + %"$consume_613" = sub i64 %"$gasrem_609", 1 + store i64 %"$consume_613", i64* @_gasrem, align 8 %c16 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_633" = load i64, i64* @_gasrem, align 8 - %"$gascmp_634" = icmp ugt i64 1, %"$gasrem_633" - br i1 %"$gascmp_634", label %"$out_of_gas_635", label %"$have_gas_636" + %"$gasrem_614" = load i64, i64* @_gasrem, align 8 + %"$gascmp_615" = icmp ugt i64 1, %"$gasrem_614" + br i1 %"$gascmp_615", label %"$out_of_gas_616", label %"$have_gas_617" -"$out_of_gas_635": ; preds = %"$have_gas_631" +"$out_of_gas_616": ; preds = %"$have_gas_612" call void @_out_of_gas() - br label %"$have_gas_636" + br label %"$have_gas_617" -"$have_gas_636": ; preds = %"$out_of_gas_635", %"$have_gas_631" - %"$consume_637" = sub i64 %"$gasrem_633", 1 - store i64 %"$consume_637", i64* @_gasrem, align 8 +"$have_gas_617": ; preds = %"$out_of_gas_616", %"$have_gas_612" + %"$consume_618" = sub i64 %"$gasrem_614", 1 + store i64 %"$consume_618", i64* @_gasrem, align 8 %"$cmul_19" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cmul_638" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 - %"$cmul_fptr_639" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_638", 0 - %"$cmul_envptr_640" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_638", 1 - %"$c4_641" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 - %"$cmul_call_642" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_639"(i8* %"$cmul_envptr_640", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_641") - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_642", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_19", align 8 + %"$cmul_619" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 + %"$cmul_fptr_620" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_619", 0 + %"$cmul_envptr_621" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_619", 1 + %"$c4_622" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 + %"$cmul_call_623" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_620"(i8* %"$cmul_envptr_621", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_622") + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_623", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_19", align 8 %"$cmul_20" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_19_643" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_19", align 8 - %"$$cmul_19_fptr_644" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_19_643", 0 - %"$$cmul_19_envptr_645" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_19_643", 1 - %"$c4_646" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 - %"$$cmul_19_call_647" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_19_fptr_644"(i8* %"$$cmul_19_envptr_645", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_646") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_19_call_647", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_20", align 8 - %"$$cmul_20_648" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_20", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_20_648", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8 - %"$gasrem_649" = load i64, i64* @_gasrem, align 8 - %"$gascmp_650" = icmp ugt i64 1, %"$gasrem_649" - br i1 %"$gascmp_650", label %"$out_of_gas_651", label %"$have_gas_652" - -"$out_of_gas_651": ; preds = %"$have_gas_636" - call void @_out_of_gas() - br label %"$have_gas_652" - -"$have_gas_652": ; preds = %"$out_of_gas_651", %"$have_gas_636" - %"$consume_653" = sub i64 %"$gasrem_649", 1 - store i64 %"$consume_653", i64* @_gasrem, align 8 + %"$$cmul_19_624" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_19", align 8 + %"$$cmul_19_fptr_625" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_19_624", 0 + %"$$cmul_19_envptr_626" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_19_624", 1 + %"$c4_627" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 + %"$$cmul_19_call_628" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_19_fptr_625"(i8* %"$$cmul_19_envptr_626", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_627") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_19_call_628", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_20", align 8 + %"$$cmul_20_629" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_20", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_20_629", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8 + %"$gasrem_630" = load i64, i64* @_gasrem, align 8 + %"$gascmp_631" = icmp ugt i64 1, %"$gasrem_630" + br i1 %"$gascmp_631", label %"$out_of_gas_632", label %"$have_gas_633" + +"$out_of_gas_632": ; preds = %"$have_gas_617" + call void @_out_of_gas() + br label %"$have_gas_633" + +"$have_gas_633": ; preds = %"$out_of_gas_632", %"$have_gas_617" + %"$consume_634" = sub i64 %"$gasrem_630", 1 + store i64 %"$consume_634", i64* @_gasrem, align 8 %c32 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_654" = load i64, i64* @_gasrem, align 8 - %"$gascmp_655" = icmp ugt i64 1, %"$gasrem_654" - br i1 %"$gascmp_655", label %"$out_of_gas_656", label %"$have_gas_657" + %"$gasrem_635" = load i64, i64* @_gasrem, align 8 + %"$gascmp_636" = icmp ugt i64 1, %"$gasrem_635" + br i1 %"$gascmp_636", label %"$out_of_gas_637", label %"$have_gas_638" -"$out_of_gas_656": ; preds = %"$have_gas_652" +"$out_of_gas_637": ; preds = %"$have_gas_633" call void @_out_of_gas() - br label %"$have_gas_657" + br label %"$have_gas_638" -"$have_gas_657": ; preds = %"$out_of_gas_656", %"$have_gas_652" - %"$consume_658" = sub i64 %"$gasrem_654", 1 - store i64 %"$consume_658", i64* @_gasrem, align 8 +"$have_gas_638": ; preds = %"$out_of_gas_637", %"$have_gas_633" + %"$consume_639" = sub i64 %"$gasrem_635", 1 + store i64 %"$consume_639", i64* @_gasrem, align 8 %"$cadd_21" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cadd_659" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 - %"$cadd_fptr_660" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_659", 0 - %"$cadd_envptr_661" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_659", 1 - %"$c16_662" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8 - %"$cadd_call_663" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_660"(i8* %"$cadd_envptr_661", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_662") - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_663", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_21", align 8 + %"$cadd_640" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 + %"$cadd_fptr_641" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_640", 0 + %"$cadd_envptr_642" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_640", 1 + %"$c16_643" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8 + %"$cadd_call_644" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_641"(i8* %"$cadd_envptr_642", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_643") + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_644", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_21", align 8 %"$cadd_22" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_21_664" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_21", align 8 - %"$$cadd_21_fptr_665" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_21_664", 0 - %"$$cadd_21_envptr_666" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_21_664", 1 - %"$c16_667" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8 - %"$$cadd_21_call_668" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_21_fptr_665"(i8* %"$$cadd_21_envptr_666", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_667") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_21_call_668", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_22", align 8 - %"$$cadd_22_669" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_22", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_22_669", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 - %"$gasrem_670" = load i64, i64* @_gasrem, align 8 - %"$gascmp_671" = icmp ugt i64 1, %"$gasrem_670" - br i1 %"$gascmp_671", label %"$out_of_gas_672", label %"$have_gas_673" - -"$out_of_gas_672": ; preds = %"$have_gas_657" - call void @_out_of_gas() - br label %"$have_gas_673" - -"$have_gas_673": ; preds = %"$out_of_gas_672", %"$have_gas_657" - %"$consume_674" = sub i64 %"$gasrem_670", 1 - store i64 %"$consume_674", i64* @_gasrem, align 8 + %"$$cadd_21_645" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_21", align 8 + %"$$cadd_21_fptr_646" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_21_645", 0 + %"$$cadd_21_envptr_647" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_21_645", 1 + %"$c16_648" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c16, align 8 + %"$$cadd_21_call_649" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_21_fptr_646"(i8* %"$$cadd_21_envptr_647", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c16_648") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_21_call_649", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_22", align 8 + %"$$cadd_22_650" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_22", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_22_650", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 + %"$gasrem_651" = load i64, i64* @_gasrem, align 8 + %"$gascmp_652" = icmp ugt i64 1, %"$gasrem_651" + br i1 %"$gascmp_652", label %"$out_of_gas_653", label %"$have_gas_654" + +"$out_of_gas_653": ; preds = %"$have_gas_638" + call void @_out_of_gas() + br label %"$have_gas_654" + +"$have_gas_654": ; preds = %"$out_of_gas_653", %"$have_gas_638" + %"$consume_655" = sub i64 %"$gasrem_651", 1 + store i64 %"$consume_655", i64* @_gasrem, align 8 %c128 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_675" = load i64, i64* @_gasrem, align 8 - %"$gascmp_676" = icmp ugt i64 1, %"$gasrem_675" - br i1 %"$gascmp_676", label %"$out_of_gas_677", label %"$have_gas_678" + %"$gasrem_656" = load i64, i64* @_gasrem, align 8 + %"$gascmp_657" = icmp ugt i64 1, %"$gasrem_656" + br i1 %"$gascmp_657", label %"$out_of_gas_658", label %"$have_gas_659" -"$out_of_gas_677": ; preds = %"$have_gas_673" +"$out_of_gas_658": ; preds = %"$have_gas_654" call void @_out_of_gas() - br label %"$have_gas_678" + br label %"$have_gas_659" -"$have_gas_678": ; preds = %"$out_of_gas_677", %"$have_gas_673" - %"$consume_679" = sub i64 %"$gasrem_675", 1 - store i64 %"$consume_679", i64* @_gasrem, align 8 +"$have_gas_659": ; preds = %"$out_of_gas_658", %"$have_gas_654" + %"$consume_660" = sub i64 %"$gasrem_656", 1 + store i64 %"$consume_660", i64* @_gasrem, align 8 %"$cmul_23" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cmul_680" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 - %"$cmul_fptr_681" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_680", 0 - %"$cmul_envptr_682" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_680", 1 - %"$c4_683" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 - %"$cmul_call_684" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_681"(i8* %"$cmul_envptr_682", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_683") - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_684", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_23", align 8 + %"$cmul_661" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 + %"$cmul_fptr_662" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_661", 0 + %"$cmul_envptr_663" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_661", 1 + %"$c4_664" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c4, align 8 + %"$cmul_call_665" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_662"(i8* %"$cmul_envptr_663", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c4_664") + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_665", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_23", align 8 %"$cmul_24" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_23_685" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_23", align 8 - %"$$cmul_23_fptr_686" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_23_685", 0 - %"$$cmul_23_envptr_687" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_23_685", 1 - %"$c32_688" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 - %"$$cmul_23_call_689" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_fptr_686"(i8* %"$$cmul_23_envptr_687", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_688") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_call_689", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_24", align 8 - %"$$cmul_24_690" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_24", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_24_690", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8 - %"$gasrem_691" = load i64, i64* @_gasrem, align 8 - %"$gascmp_692" = icmp ugt i64 1, %"$gasrem_691" - br i1 %"$gascmp_692", label %"$out_of_gas_693", label %"$have_gas_694" - -"$out_of_gas_693": ; preds = %"$have_gas_678" - call void @_out_of_gas() - br label %"$have_gas_694" - -"$have_gas_694": ; preds = %"$out_of_gas_693", %"$have_gas_678" - %"$consume_695" = sub i64 %"$gasrem_691", 1 - store i64 %"$consume_695", i64* @_gasrem, align 8 + %"$$cmul_23_666" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_23", align 8 + %"$$cmul_23_fptr_667" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_23_666", 0 + %"$$cmul_23_envptr_668" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_23_666", 1 + %"$c32_669" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c32, align 8 + %"$$cmul_23_call_670" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_fptr_667"(i8* %"$$cmul_23_envptr_668", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c32_669") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_23_call_670", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_24", align 8 + %"$$cmul_24_671" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_24", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_24_671", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8 + %"$gasrem_672" = load i64, i64* @_gasrem, align 8 + %"$gascmp_673" = icmp ugt i64 1, %"$gasrem_672" + br i1 %"$gascmp_673", label %"$out_of_gas_674", label %"$have_gas_675" + +"$out_of_gas_674": ; preds = %"$have_gas_659" + call void @_out_of_gas() + br label %"$have_gas_675" + +"$have_gas_675": ; preds = %"$out_of_gas_674", %"$have_gas_659" + %"$consume_676" = sub i64 %"$gasrem_672", 1 + store i64 %"$consume_676", i64* @_gasrem, align 8 %c256 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_696" = load i64, i64* @_gasrem, align 8 - %"$gascmp_697" = icmp ugt i64 1, %"$gasrem_696" - br i1 %"$gascmp_697", label %"$out_of_gas_698", label %"$have_gas_699" + %"$gasrem_677" = load i64, i64* @_gasrem, align 8 + %"$gascmp_678" = icmp ugt i64 1, %"$gasrem_677" + br i1 %"$gascmp_678", label %"$out_of_gas_679", label %"$have_gas_680" -"$out_of_gas_698": ; preds = %"$have_gas_694" +"$out_of_gas_679": ; preds = %"$have_gas_675" call void @_out_of_gas() - br label %"$have_gas_699" + br label %"$have_gas_680" -"$have_gas_699": ; preds = %"$out_of_gas_698", %"$have_gas_694" - %"$consume_700" = sub i64 %"$gasrem_696", 1 - store i64 %"$consume_700", i64* @_gasrem, align 8 +"$have_gas_680": ; preds = %"$out_of_gas_679", %"$have_gas_675" + %"$consume_681" = sub i64 %"$gasrem_677", 1 + store i64 %"$consume_681", i64* @_gasrem, align 8 %"$cadd_25" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cadd_701" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 - %"$cadd_fptr_702" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_701", 0 - %"$cadd_envptr_703" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_701", 1 - %"$c128_704" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8 - %"$cadd_call_705" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_702"(i8* %"$cadd_envptr_703", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_704") - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_705", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_25", align 8 + %"$cadd_682" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 + %"$cadd_fptr_683" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_682", 0 + %"$cadd_envptr_684" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_682", 1 + %"$c128_685" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8 + %"$cadd_call_686" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_683"(i8* %"$cadd_envptr_684", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_685") + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_686", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_25", align 8 %"$cadd_26" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_25_706" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_25", align 8 - %"$$cadd_25_fptr_707" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_25_706", 0 - %"$$cadd_25_envptr_708" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_25_706", 1 - %"$c128_709" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8 - %"$$cadd_25_call_710" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_25_fptr_707"(i8* %"$$cadd_25_envptr_708", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_709") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_25_call_710", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_26", align 8 - %"$$cadd_26_711" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_26", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_26_711", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8 - %"$gasrem_712" = load i64, i64* @_gasrem, align 8 - %"$gascmp_713" = icmp ugt i64 1, %"$gasrem_712" - br i1 %"$gascmp_713", label %"$out_of_gas_714", label %"$have_gas_715" - -"$out_of_gas_714": ; preds = %"$have_gas_699" - call void @_out_of_gas() - br label %"$have_gas_715" - -"$have_gas_715": ; preds = %"$out_of_gas_714", %"$have_gas_699" - %"$consume_716" = sub i64 %"$gasrem_712", 1 - store i64 %"$consume_716", i64* @_gasrem, align 8 + %"$$cadd_25_687" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_25", align 8 + %"$$cadd_25_fptr_688" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_25_687", 0 + %"$$cadd_25_envptr_689" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_25_687", 1 + %"$c128_690" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c128, align 8 + %"$$cadd_25_call_691" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_25_fptr_688"(i8* %"$$cadd_25_envptr_689", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c128_690") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_25_call_691", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_26", align 8 + %"$$cadd_26_692" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_26", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_26_692", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8 + %"$gasrem_693" = load i64, i64* @_gasrem, align 8 + %"$gascmp_694" = icmp ugt i64 1, %"$gasrem_693" + br i1 %"$gascmp_694", label %"$out_of_gas_695", label %"$have_gas_696" + +"$out_of_gas_695": ; preds = %"$have_gas_680" + call void @_out_of_gas() + br label %"$have_gas_696" + +"$have_gas_696": ; preds = %"$out_of_gas_695", %"$have_gas_680" + %"$consume_697" = sub i64 %"$gasrem_693", 1 + store i64 %"$consume_697", i64* @_gasrem, align 8 %c65536 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_717" = load i64, i64* @_gasrem, align 8 - %"$gascmp_718" = icmp ugt i64 1, %"$gasrem_717" - br i1 %"$gascmp_718", label %"$out_of_gas_719", label %"$have_gas_720" + %"$gasrem_698" = load i64, i64* @_gasrem, align 8 + %"$gascmp_699" = icmp ugt i64 1, %"$gasrem_698" + br i1 %"$gascmp_699", label %"$out_of_gas_700", label %"$have_gas_701" -"$out_of_gas_719": ; preds = %"$have_gas_715" +"$out_of_gas_700": ; preds = %"$have_gas_696" call void @_out_of_gas() - br label %"$have_gas_720" + br label %"$have_gas_701" -"$have_gas_720": ; preds = %"$out_of_gas_719", %"$have_gas_715" - %"$consume_721" = sub i64 %"$gasrem_717", 1 - store i64 %"$consume_721", i64* @_gasrem, align 8 +"$have_gas_701": ; preds = %"$out_of_gas_700", %"$have_gas_696" + %"$consume_702" = sub i64 %"$gasrem_698", 1 + store i64 %"$consume_702", i64* @_gasrem, align 8 %"$cmul_27" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cmul_722" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 - %"$cmul_fptr_723" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_722", 0 - %"$cmul_envptr_724" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_722", 1 - %"$c256_725" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8 - %"$cmul_call_726" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_723"(i8* %"$cmul_envptr_724", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_725") - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_726", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_27", align 8 + %"$cmul_703" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cmul, align 8 + %"$cmul_fptr_704" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_703", 0 + %"$cmul_envptr_705" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_703", 1 + %"$c256_706" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8 + %"$cmul_call_707" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_fptr_704"(i8* %"$cmul_envptr_705", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_706") + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cmul_call_707", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_27", align 8 %"$cmul_28" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cmul_27_727" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_27", align 8 - %"$$cmul_27_fptr_728" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_27_727", 0 - %"$$cmul_27_envptr_729" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_27_727", 1 - %"$c256_730" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8 - %"$$cmul_27_call_731" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_27_fptr_728"(i8* %"$$cmul_27_envptr_729", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_730") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_27_call_731", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_28", align 8 - %"$$cmul_28_732" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_28", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_28_732", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8 - %"$gasrem_733" = load i64, i64* @_gasrem, align 8 - %"$gascmp_734" = icmp ugt i64 1, %"$gasrem_733" - br i1 %"$gascmp_734", label %"$out_of_gas_735", label %"$have_gas_736" - -"$out_of_gas_735": ; preds = %"$have_gas_720" - call void @_out_of_gas() - br label %"$have_gas_736" - -"$have_gas_736": ; preds = %"$out_of_gas_735", %"$have_gas_720" - %"$consume_737" = sub i64 %"$gasrem_733", 1 - store i64 %"$consume_737", i64* @_gasrem, align 8 + %"$$cmul_27_708" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cmul_27", align 8 + %"$$cmul_27_fptr_709" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_27_708", 0 + %"$$cmul_27_envptr_710" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cmul_27_708", 1 + %"$c256_711" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c256, align 8 + %"$$cmul_27_call_712" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_27_fptr_709"(i8* %"$$cmul_27_envptr_710", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c256_711") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_27_call_712", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_28", align 8 + %"$$cmul_28_713" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cmul_28", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cmul_28_713", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8 + %"$gasrem_714" = load i64, i64* @_gasrem, align 8 + %"$gascmp_715" = icmp ugt i64 1, %"$gasrem_714" + br i1 %"$gascmp_715", label %"$out_of_gas_716", label %"$have_gas_717" + +"$out_of_gas_716": ; preds = %"$have_gas_701" + call void @_out_of_gas() + br label %"$have_gas_717" + +"$have_gas_717": ; preds = %"$out_of_gas_716", %"$have_gas_701" + %"$consume_718" = sub i64 %"$gasrem_714", 1 + store i64 %"$consume_718", i64* @_gasrem, align 8 %c131072 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_738" = load i64, i64* @_gasrem, align 8 - %"$gascmp_739" = icmp ugt i64 1, %"$gasrem_738" - br i1 %"$gascmp_739", label %"$out_of_gas_740", label %"$have_gas_741" + %"$gasrem_719" = load i64, i64* @_gasrem, align 8 + %"$gascmp_720" = icmp ugt i64 1, %"$gasrem_719" + br i1 %"$gascmp_720", label %"$out_of_gas_721", label %"$have_gas_722" -"$out_of_gas_740": ; preds = %"$have_gas_736" +"$out_of_gas_721": ; preds = %"$have_gas_717" call void @_out_of_gas() - br label %"$have_gas_741" + br label %"$have_gas_722" -"$have_gas_741": ; preds = %"$out_of_gas_740", %"$have_gas_736" - %"$consume_742" = sub i64 %"$gasrem_738", 1 - store i64 %"$consume_742", i64* @_gasrem, align 8 +"$have_gas_722": ; preds = %"$out_of_gas_721", %"$have_gas_717" + %"$consume_723" = sub i64 %"$gasrem_719", 1 + store i64 %"$consume_723", i64* @_gasrem, align 8 %"$cadd_29" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cadd_743" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 - %"$cadd_fptr_744" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_743", 0 - %"$cadd_envptr_745" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_743", 1 - %"$c65536_746" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8 - %"$cadd_call_747" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_744"(i8* %"$cadd_envptr_745", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_746") - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_747", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_29", align 8 + %"$cadd_724" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 + %"$cadd_fptr_725" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_724", 0 + %"$cadd_envptr_726" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_724", 1 + %"$c65536_727" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8 + %"$cadd_call_728" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_725"(i8* %"$cadd_envptr_726", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_727") + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_728", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_29", align 8 %"$cadd_30" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_29_748" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_29", align 8 - %"$$cadd_29_fptr_749" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_29_748", 0 - %"$$cadd_29_envptr_750" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_29_748", 1 - %"$c65536_751" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8 - %"$$cadd_29_call_752" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_29_fptr_749"(i8* %"$$cadd_29_envptr_750", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_751") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_29_call_752", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_30", align 8 - %"$$cadd_30_753" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_30", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_30_753", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131072, align 8 - %"$gasrem_754" = load i64, i64* @_gasrem, align 8 - %"$gascmp_755" = icmp ugt i64 1, %"$gasrem_754" - br i1 %"$gascmp_755", label %"$out_of_gas_756", label %"$have_gas_757" - -"$out_of_gas_756": ; preds = %"$have_gas_741" - call void @_out_of_gas() - br label %"$have_gas_757" - -"$have_gas_757": ; preds = %"$out_of_gas_756", %"$have_gas_741" - %"$consume_758" = sub i64 %"$gasrem_754", 1 - store i64 %"$consume_758", i64* @_gasrem, align 8 + %"$$cadd_29_729" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_29", align 8 + %"$$cadd_29_fptr_730" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_29_729", 0 + %"$$cadd_29_envptr_731" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_29_729", 1 + %"$c65536_732" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c65536, align 8 + %"$$cadd_29_call_733" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_29_fptr_730"(i8* %"$$cadd_29_envptr_731", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c65536_732") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_29_call_733", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_30", align 8 + %"$$cadd_30_734" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_30", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_30_734", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131072, align 8 + %"$gasrem_735" = load i64, i64* @_gasrem, align 8 + %"$gascmp_736" = icmp ugt i64 1, %"$gasrem_735" + br i1 %"$gascmp_736", label %"$out_of_gas_737", label %"$have_gas_738" + +"$out_of_gas_737": ; preds = %"$have_gas_722" + call void @_out_of_gas() + br label %"$have_gas_738" + +"$have_gas_738": ; preds = %"$out_of_gas_737", %"$have_gas_722" + %"$consume_739" = sub i64 %"$gasrem_735", 1 + store i64 %"$consume_739", i64* @_gasrem, align 8 %c27 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_759" = load i64, i64* @_gasrem, align 8 - %"$gascmp_760" = icmp ugt i64 1, %"$gasrem_759" - br i1 %"$gascmp_760", label %"$out_of_gas_761", label %"$have_gas_762" - -"$out_of_gas_761": ; preds = %"$have_gas_757" - call void @_out_of_gas() - br label %"$have_gas_762" - -"$have_gas_762": ; preds = %"$out_of_gas_761", %"$have_gas_757" - %"$consume_763" = sub i64 %"$gasrem_759", 1 - store i64 %"$consume_763", i64* @_gasrem, align 8 - %"$cexp_31" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, align 8 - %"$cexp_764" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cexp, align 8 - %"$cexp_fptr_765" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cexp_764", 0 - %"$cexp_envptr_766" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cexp_764", 1 - %"$c3_767" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c3, align 8 - %"$cexp_call_768" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$cexp_fptr_765"(i8* %"$cexp_envptr_766", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c3_767") - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$cexp_call_768", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %"$cexp_31", align 8 - %"$cexp_32" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cexp_31_769" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %"$cexp_31", align 8 - %"$$cexp_31_fptr_770" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$$cexp_31_769", 0 - %"$$cexp_31_envptr_771" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$$cexp_31_769", 1 - %"$c3__772" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %c3_, align 8 - %"$$cexp_31_call_773" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_31_fptr_770"(i8* %"$$cexp_31_envptr_771", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$c3__772") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_31_call_773", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cexp_32", align 8 - %"$$cexp_32_774" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cexp_32", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cexp_32_774", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c27, align 8 - %"$gasrem_775" = load i64, i64* @_gasrem, align 8 - %"$gascmp_776" = icmp ugt i64 1, %"$gasrem_775" - br i1 %"$gascmp_776", label %"$out_of_gas_777", label %"$have_gas_778" - -"$out_of_gas_777": ; preds = %"$have_gas_762" - call void @_out_of_gas() - br label %"$have_gas_778" - -"$have_gas_778": ; preds = %"$out_of_gas_777", %"$have_gas_762" - %"$consume_779" = sub i64 %"$gasrem_775", 1 - store i64 %"$consume_779", i64* @_gasrem, align 8 + %"$gasrem_740" = load i64, i64* @_gasrem, align 8 + %"$gascmp_741" = icmp ugt i64 1, %"$gasrem_740" + br i1 %"$gascmp_741", label %"$out_of_gas_742", label %"$have_gas_743" + +"$out_of_gas_742": ; preds = %"$have_gas_738" + call void @_out_of_gas() + br label %"$have_gas_743" + +"$have_gas_743": ; preds = %"$out_of_gas_742", %"$have_gas_738" + %"$consume_744" = sub i64 %"$gasrem_740", 1 + store i64 %"$consume_744", i64* @_gasrem, align 8 + %"$cexp_745" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* }* %cexp, align 8 + %"$cexp_fptr_746" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$cexp_745", 0 + %"$cexp_envptr_747" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* })*, i8* } %"$cexp_745", 1 + %"$c3_748" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c3, align 8 + %"$c3__749" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %c3_, align 8 + %"$cexp_call_750" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$cexp_fptr_746"(i8* %"$cexp_envptr_747", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c3_748", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$c3__749") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$cexp_call_750", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c27, align 8 + %"$gasrem_751" = load i64, i64* @_gasrem, align 8 + %"$gascmp_752" = icmp ugt i64 1, %"$gasrem_751" + br i1 %"$gascmp_752", label %"$out_of_gas_753", label %"$have_gas_754" + +"$out_of_gas_753": ; preds = %"$have_gas_743" + call void @_out_of_gas() + br label %"$have_gas_754" + +"$have_gas_754": ; preds = %"$out_of_gas_753", %"$have_gas_743" + %"$consume_755" = sub i64 %"$gasrem_751", 1 + store i64 %"$consume_755", i64* @_gasrem, align 8 %c131099 = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_780" = load i64, i64* @_gasrem, align 8 - %"$gascmp_781" = icmp ugt i64 1, %"$gasrem_780" - br i1 %"$gascmp_781", label %"$out_of_gas_782", label %"$have_gas_783" - -"$out_of_gas_782": ; preds = %"$have_gas_778" - call void @_out_of_gas() - br label %"$have_gas_783" - -"$have_gas_783": ; preds = %"$out_of_gas_782", %"$have_gas_778" - %"$consume_784" = sub i64 %"$gasrem_780", 1 - store i64 %"$consume_784", i64* @_gasrem, align 8 - %"$cadd_33" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 - %"$cadd_785" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 - %"$cadd_fptr_786" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_785", 0 - %"$cadd_envptr_787" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_785", 1 - %"$c131072_788" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131072, align 8 - %"$cadd_call_789" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_786"(i8* %"$cadd_envptr_787", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131072_788") - store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_789", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_33", align 8 - %"$cadd_34" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$$cadd_33_790" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_33", align 8 - %"$$cadd_33_fptr_791" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_33_790", 0 - %"$$cadd_33_envptr_792" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_33_790", 1 - %"$c27_793" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c27, align 8 - %"$$cadd_33_call_794" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_33_fptr_791"(i8* %"$$cadd_33_envptr_792", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c27_793") - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_33_call_794", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_34", align 8 - %"$$cadd_34_795" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_34", align 8 - store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_34_795", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131099, align 8 - %"$gasrem_796" = load i64, i64* @_gasrem, align 8 - %"$gascmp_797" = icmp ugt i64 1, %"$gasrem_796" - br i1 %"$gascmp_797", label %"$out_of_gas_798", label %"$have_gas_799" - -"$out_of_gas_798": ; preds = %"$have_gas_783" - call void @_out_of_gas() - br label %"$have_gas_799" - -"$have_gas_799": ; preds = %"$out_of_gas_798", %"$have_gas_783" - %"$consume_800" = sub i64 %"$gasrem_796", 1 - store i64 %"$consume_800", i64* @_gasrem, align 8 - %"$church_nat_to_uint32_35" = alloca %Uint32, align 8 - %"$church_nat_to_uint32_801" = load { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %church_nat_to_uint32, align 8 - %"$church_nat_to_uint32_fptr_802" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_801", 0 - %"$church_nat_to_uint32_envptr_803" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_801", 1 - %"$c131099_804" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131099, align 8 - %"$church_nat_to_uint32_call_805" = call %Uint32 %"$church_nat_to_uint32_fptr_802"(i8* %"$church_nat_to_uint32_envptr_803", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131099_804") - store %Uint32 %"$church_nat_to_uint32_call_805", %Uint32* %"$church_nat_to_uint32_35", align 4 - %"$$church_nat_to_uint32_35_806" = load %Uint32, %Uint32* %"$church_nat_to_uint32_35", align 4 - store %Uint32 %"$$church_nat_to_uint32_35_806", %Uint32* %"$expr_36", align 4 - %"$$expr_36_807" = load %Uint32, %Uint32* %"$expr_36", align 4 - ret %Uint32 %"$$expr_36_807" + %"$gasrem_756" = load i64, i64* @_gasrem, align 8 + %"$gascmp_757" = icmp ugt i64 1, %"$gasrem_756" + br i1 %"$gascmp_757", label %"$out_of_gas_758", label %"$have_gas_759" + +"$out_of_gas_758": ; preds = %"$have_gas_754" + call void @_out_of_gas() + br label %"$have_gas_759" + +"$have_gas_759": ; preds = %"$out_of_gas_758", %"$have_gas_754" + %"$consume_760" = sub i64 %"$gasrem_756", 1 + store i64 %"$consume_760", i64* @_gasrem, align 8 + %"$cadd_31" = alloca { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, align 8 + %"$cadd_761" = load { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %cadd, align 8 + %"$cadd_fptr_762" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_761", 0 + %"$cadd_envptr_763" = extractvalue { { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_761", 1 + %"$c131072_764" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131072, align 8 + %"$cadd_call_765" = call { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_fptr_762"(i8* %"$cadd_envptr_763", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131072_764") + store { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$cadd_call_765", { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_31", align 8 + %"$cadd_32" = alloca { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$$cadd_31_766" = load { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %"$cadd_31", align 8 + %"$$cadd_31_fptr_767" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_31_766", 0 + %"$$cadd_31_envptr_768" = extractvalue { { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$$cadd_31_766", 1 + %"$c27_769" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c27, align 8 + %"$$cadd_31_call_770" = call { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_31_fptr_767"(i8* %"$$cadd_31_envptr_768", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c27_769") + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_31_call_770", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_32", align 8 + %"$$cadd_32_771" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %"$cadd_32", align 8 + store { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$$cadd_32_771", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131099, align 8 + %"$gasrem_772" = load i64, i64* @_gasrem, align 8 + %"$gascmp_773" = icmp ugt i64 1, %"$gasrem_772" + br i1 %"$gascmp_773", label %"$out_of_gas_774", label %"$have_gas_775" + +"$out_of_gas_774": ; preds = %"$have_gas_759" + call void @_out_of_gas() + br label %"$have_gas_775" + +"$have_gas_775": ; preds = %"$out_of_gas_774", %"$have_gas_759" + %"$consume_776" = sub i64 %"$gasrem_772", 1 + store i64 %"$consume_776", i64* @_gasrem, align 8 + %"$church_nat_to_uint32_33" = alloca %Uint32, align 8 + %"$church_nat_to_uint32_777" = load { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }, { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* }* %church_nat_to_uint32, align 8 + %"$church_nat_to_uint32_fptr_778" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_777", 0 + %"$church_nat_to_uint32_envptr_779" = extractvalue { %Uint32 (i8*, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* })*, i8* } %"$church_nat_to_uint32_777", 1 + %"$c131099_780" = load { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }, { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* }* %c131099, align 8 + %"$church_nat_to_uint32_call_781" = call %Uint32 %"$church_nat_to_uint32_fptr_778"(i8* %"$church_nat_to_uint32_envptr_779", { { %Uint32 (i8*, %Uint32)*, i8* } (i8*, { %Uint32 (i8*, %Uint32)*, i8* })*, i8* } %"$c131099_780") + store %Uint32 %"$church_nat_to_uint32_call_781", %Uint32* %"$church_nat_to_uint32_33", align 4 + %"$$church_nat_to_uint32_33_782" = load %Uint32, %Uint32* %"$church_nat_to_uint32_33", align 4 + store %Uint32 %"$$church_nat_to_uint32_33_782", %Uint32* %"$expr_34", align 4 + %"$$expr_34_783" = load %Uint32, %Uint32* %"$expr_34", align 4 + ret %Uint32 %"$$expr_34_783" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_808" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_809" = alloca %Uint32, align 8 - %"$memvoidcast_810" = bitcast %Uint32* %"$pval_809" to i8* - store %Uint32 %"$exprval_808", %Uint32* %"$pval_809", align 4 - %"$execptr_load_811" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_811", %_TyDescrTy_Typ* @"$TyDescr_Uint32_75", i8* %"$memvoidcast_810") + %"$exprval_784" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_785" = alloca %Uint32, align 8 + %"$memvoidcast_786" = bitcast %Uint32* %"$pval_785" to i8* + store %Uint32 %"$exprval_784", %Uint32* %"$pval_785", align 4 + %"$execptr_load_787" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_787", %_TyDescrTy_Typ* @"$TyDescr_Uint32_71", i8* %"$memvoidcast_786") ret void } diff --git a/tests/codegen/expr/gold/cn.scilexp.gold b/tests/codegen/expr/gold/cn.scilexp.gold index f62915b5..6605217c 100644 --- a/tests/codegen/expr/gold/cn.scilexp.gold +++ b/tests/codegen/expr/gold/cn.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_18" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/dce1.scilexp.gold b/tests/codegen/expr/gold/dce1.scilexp.gold index 04566739..84db5df2 100644 --- a/tests/codegen/expr/gold/dce1.scilexp.gold +++ b/tests/codegen/expr/gold/dce1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/event-fun.scilexp.gold b/tests/codegen/expr/gold/event-fun.scilexp.gold index ce614d8f..1b914bc1 100644 --- a/tests/codegen/expr/gold/event-fun.scilexp.gold +++ b/tests/codegen/expr/gold/event-fun.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/event-fun2.scilexp.gold b/tests/codegen/expr/gold/event-fun2.scilexp.gold index 43c48d36..75104006 100644 --- a/tests/codegen/expr/gold/event-fun2.scilexp.gold +++ b/tests/codegen/expr/gold/event-fun2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/exponential-growth.scilexp.gold b/tests/codegen/expr/gold/exponential-growth.scilexp.gold index 44420a6d..70514077 100644 --- a/tests/codegen/expr/gold/exponential-growth.scilexp.gold +++ b/tests/codegen/expr/gold/exponential-growth.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_12" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/fib.scilexp.gold b/tests/codegen/expr/gold/fib.scilexp.gold index 11e2c8d7..71ba338e 100644 --- a/tests/codegen/expr/gold/fib.scilexp.gold +++ b/tests/codegen/expr/gold/fib.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_26" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/fun-type-inst.scilexp.gold b/tests/codegen/expr/gold/fun-type-inst.scilexp.gold index 605c3a22..bcc1d3aa 100644 --- a/tests/codegen/expr/gold/fun-type-inst.scilexp.gold +++ b/tests/codegen/expr/gold/fun-type-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_69" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-bnum.scilexp.gold b/tests/codegen/expr/gold/lit-bnum.scilexp.gold index cb47916d..2acfde51 100644 --- a/tests/codegen/expr/gold/lit-bnum.scilexp.gold +++ b/tests/codegen/expr/gold/lit-bnum.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-bystr3.scilexp.gold b/tests/codegen/expr/gold/lit-bystr3.scilexp.gold index 1df799d5..b8cf97fc 100644 --- a/tests/codegen/expr/gold/lit-bystr3.scilexp.gold +++ b/tests/codegen/expr/gold/lit-bystr3.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-emp_i32_i32.scilexp.gold b/tests/codegen/expr/gold/lit-emp_i32_i32.scilexp.gold index 4e2a03e6..849edd8d 100644 --- a/tests/codegen/expr/gold/lit-emp_i32_i32.scilexp.gold +++ b/tests/codegen/expr/gold/lit-emp_i32_i32.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-emp_i32_list_string.scilexp.gold b/tests/codegen/expr/gold/lit-emp_i32_list_string.scilexp.gold index 08d3b806..52e42a8a 100644 --- a/tests/codegen/expr/gold/lit-emp_i32_list_string.scilexp.gold +++ b/tests/codegen/expr/gold/lit-emp_i32_list_string.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-event.scilexp.gold b/tests/codegen/expr/gold/lit-event.scilexp.gold index 63cf6296..4d63f167 100644 --- a/tests/codegen/expr/gold/lit-event.scilexp.gold +++ b/tests/codegen/expr/gold/lit-event.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-i256-4.scilexp.gold b/tests/codegen/expr/gold/lit-i256-4.scilexp.gold index 1eb83dfd..46850882 100644 --- a/tests/codegen/expr/gold/lit-i256-4.scilexp.gold +++ b/tests/codegen/expr/gold/lit-i256-4.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-i256-max.scilexp.gold b/tests/codegen/expr/gold/lit-i256-max.scilexp.gold index 1fdeebe7..a688d6c7 100644 --- a/tests/codegen/expr/gold/lit-i256-max.scilexp.gold +++ b/tests/codegen/expr/gold/lit-i256-max.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-i256-min.scilexp.gold b/tests/codegen/expr/gold/lit-i256-min.scilexp.gold index b856a85b..b220daad 100644 --- a/tests/codegen/expr/gold/lit-i256-min.scilexp.gold +++ b/tests/codegen/expr/gold/lit-i256-min.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-int32-1.scilexp.gold b/tests/codegen/expr/gold/lit-int32-1.scilexp.gold index 829e1693..c272acd7 100644 --- a/tests/codegen/expr/gold/lit-int32-1.scilexp.gold +++ b/tests/codegen/expr/gold/lit-int32-1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-int32.scilexp.gold b/tests/codegen/expr/gold/lit-int32.scilexp.gold index 2e9dcb7f..b4f0ac6b 100644 --- a/tests/codegen/expr/gold/lit-int32.scilexp.gold +++ b/tests/codegen/expr/gold/lit-int32.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-nat_two.scilexp.gold b/tests/codegen/expr/gold/lit-nat_two.scilexp.gold index 4c2f75da..2401d71b 100644 --- a/tests/codegen/expr/gold/lit-nat_two.scilexp.gold +++ b/tests/codegen/expr/gold/lit-nat_two.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-nat_zero.scilexp.gold b/tests/codegen/expr/gold/lit-nat_zero.scilexp.gold index 0ca2c10a..19314ce9 100644 --- a/tests/codegen/expr/gold/lit-nat_zero.scilexp.gold +++ b/tests/codegen/expr/gold/lit-nat_zero.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-nil.scilexp.gold b/tests/codegen/expr/gold/lit-nil.scilexp.gold index e5d8289b..427ce520 100644 --- a/tests/codegen/expr/gold/lit-nil.scilexp.gold +++ b/tests/codegen/expr/gold/lit-nil.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-pair-list-int.scilexp.gold b/tests/codegen/expr/gold/lit-pair-list-int.scilexp.gold index 1ba72943..b4eb8849 100644 --- a/tests/codegen/expr/gold/lit-pair-list-int.scilexp.gold +++ b/tests/codegen/expr/gold/lit-pair-list-int.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-string.scilexp.gold b/tests/codegen/expr/gold/lit-string.scilexp.gold index 88acd0c1..c49ff71e 100644 --- a/tests/codegen/expr/gold/lit-string.scilexp.gold +++ b/tests/codegen/expr/gold/lit-string.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-ui256-4.scilexp.gold b/tests/codegen/expr/gold/lit-ui256-4.scilexp.gold index f50cc851..1adf286a 100644 --- a/tests/codegen/expr/gold/lit-ui256-4.scilexp.gold +++ b/tests/codegen/expr/gold/lit-ui256-4.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/lit-ui256-max.scilexp.gold b/tests/codegen/expr/gold/lit-ui256-max.scilexp.gold index 02321b93..5541fbc8 100644 --- a/tests/codegen/expr/gold/lit-ui256-max.scilexp.gold +++ b/tests/codegen/expr/gold/lit-ui256-max.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/map1.scilexp.gold b/tests/codegen/expr/gold/map1.scilexp.gold index d5834284..9603e816 100644 --- a/tests/codegen/expr/gold/map1.scilexp.gold +++ b/tests/codegen/expr/gold/map1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/map_to_list.scilexp.gold b/tests/codegen/expr/gold/map_to_list.scilexp.gold index 0e416406..fbaa6929 100644 --- a/tests/codegen/expr/gold/map_to_list.scilexp.gold +++ b/tests/codegen/expr/gold/map_to_list.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/map_to_list2.scilexp.gold b/tests/codegen/expr/gold/map_to_list2.scilexp.gold index 25f65288..b4fabfda 100644 --- a/tests/codegen/expr/gold/map_to_list2.scilexp.gold +++ b/tests/codegen/expr/gold/map_to_list2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/match_assign.scilexp.gold b/tests/codegen/expr/gold/match_assign.scilexp.gold index fabda985..14e862c2 100644 --- a/tests/codegen/expr/gold/match_assign.scilexp.gold +++ b/tests/codegen/expr/gold/match_assign.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_1" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/multi-type-inst.scilexp.gold b/tests/codegen/expr/gold/multi-type-inst.scilexp.gold index beb0c33b..2f87e9a3 100644 --- a/tests/codegen/expr/gold/multi-type-inst.scilexp.gold +++ b/tests/codegen/expr/gold/multi-type-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_59" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/name_clash.scilexp.gold b/tests/codegen/expr/gold/name_clash.scilexp.gold index 6b515987..a599001a 100644 --- a/tests/codegen/expr/gold/name_clash.scilexp.gold +++ b/tests/codegen/expr/gold/name_clash.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/name_clash1.scilexp.gold b/tests/codegen/expr/gold/name_clash1.scilexp.gold index df621395..cb5d4952 100644 --- a/tests/codegen/expr/gold/name_clash1.scilexp.gold +++ b/tests/codegen/expr/gold/name_clash1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_2" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/name_clash2.scilexp.gold b/tests/codegen/expr/gold/name_clash2.scilexp.gold index d54fa97f..125bc3e9 100644 --- a/tests/codegen/expr/gold/name_clash2.scilexp.gold +++ b/tests/codegen/expr/gold/name_clash2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/name_clash3.scilexp.gold b/tests/codegen/expr/gold/name_clash3.scilexp.gold index 4ccfe331..0b10f183 100644 --- a/tests/codegen/expr/gold/name_clash3.scilexp.gold +++ b/tests/codegen/expr/gold/name_clash3.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_3" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/nested-fun.scilexp.gold b/tests/codegen/expr/gold/nested-fun.scilexp.gold index 2690ad07..61faf49b 100644 --- a/tests/codegen/expr/gold/nested-fun.scilexp.gold +++ b/tests/codegen/expr/gold/nested-fun.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/nonprenex.scilexp.gold b/tests/codegen/expr/gold/nonprenex.scilexp.gold index c1cfa317..6dff85d5 100644 --- a/tests/codegen/expr/gold/nonprenex.scilexp.gold +++ b/tests/codegen/expr/gold/nonprenex.scilexp.gold @@ -1,1206 +1,1092 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_59" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_52" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$TyDescrTy_ADTTyp_91" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_90"** } +%"$TyDescrTy_ADTTyp_84" = type { %TyDescrString, i32, i32, i32, %"$TyDescrTy_ADTTyp_Specl_83"** } %TyDescrString = type { i8*, i32 } -%"$TyDescrTy_ADTTyp_Specl_90" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_92"**, %"$TyDescrTy_ADTTyp_91"* } -%"$TyDescrTy_ADTTyp_Constr_92" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } -%"$ParamDescr_1026" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$TyDescrTy_ADTTyp_Specl_83" = type { %_TyDescrTy_Typ**, %"$TyDescrTy_ADTTyp_Constr_85"**, %"$TyDescrTy_ADTTyp_84"* } +%"$TyDescrTy_ADTTyp_Constr_85" = type { %TyDescrString, i32, %_TyDescrTy_Typ** } +%"$ParamDescr_976" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_1027" = type { %ParamDescrString, i32, %"$ParamDescr_1026"* } -%"$$fundef_57_env_132" = type { %TName_Bool*, { i8*, i8* }* } +%"$TransDescr_977" = type { %ParamDescrString, i32, %"$ParamDescr_976"* } +%"$$fundef_50_env_125" = type {} %TName_Bool = type { i8, %CName_True*, %CName_False* } %CName_True = type <{ i8 }> %CName_False = type <{ i8 }> -%"$$fundef_55_env_133" = type { %TName_Bool* } -%"$$fundef_53_env_134" = type {} %Uint32 = type { i32 } -%"$$fundef_51_env_135" = type { { i8*, i8* }* } +%"$$fundef_48_env_126" = type { { i8*, i8* }* } %TName_List_ByStr20 = type { i8, %CName_Cons_ByStr20*, %CName_Nil_ByStr20* } %CName_Cons_ByStr20 = type <{ i8, [20 x i8], %TName_List_ByStr20* }> %CName_Nil_ByStr20 = type <{ i8 }> -%"$$fundef_49_env_136" = type { { i8*, i8* }* } -%"$$fundef_47_env_137" = type { { i8*, i8* }* } +%"$$fundef_46_env_127" = type { { i8*, i8* }* } +%"$$fundef_44_env_128" = type { { i8*, i8* }* } %TName_List_String = type { i8, %CName_Cons_String*, %CName_Nil_String* } %CName_Cons_String = type <{ i8, %String, %TName_List_String* }> %String = type { i8*, i32 } %CName_Nil_String = type <{ i8 }> -%"$$fundef_45_env_138" = type { { i8*, i8* }* } -%"$$fundef_42_env_139" = type { %Uint32, %Uint32 } -%"$$fundef_40_env_140" = type { %Uint32 } -%"$$fundef_38_env_141" = type { { i8*, i8* }* } -%"$$fundef_36_env_142" = type { %Uint32, %Uint32 } -%"$$fundef_34_env_143" = type { %Uint32 } -%"$$fundef_32_env_144" = type { { i8*, i8* }* } -%"$$fundef_30_env_145" = type { { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, %Uint32 } -%"$$fundef_28_env_146" = type { { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } } -%"$$fundef_26_env_147" = type {} -%"$$fundef_24_env_148" = type {} -%"$$fundef_22_env_149" = type {} -%"$$fundef_20_env_150" = type { { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, %Uint32 } -%"$$fundef_18_env_151" = type { { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } } -%"$$fundef_16_env_152" = type {} -%"$$fundef_14_env_153" = type {} -%"$$fundef_12_env_154" = type {} +%"$$fundef_42_env_129" = type { { i8*, i8* }* } +%"$$fundef_39_env_130" = type { %Uint32, %Uint32 } +%"$$fundef_37_env_131" = type { %Uint32 } +%"$$fundef_35_env_132" = type { { i8*, i8* }* } +%"$$fundef_33_env_133" = type { %Uint32, %Uint32 } +%"$$fundef_31_env_134" = type { %Uint32 } +%"$$fundef_29_env_135" = type { { i8*, i8* }* } +%"$$fundef_27_env_136" = type { { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, %Uint32 } +%"$$fundef_25_env_137" = type { { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } } +%"$$fundef_23_env_138" = type {} +%"$$fundef_21_env_139" = type {} +%"$$fundef_19_env_140" = type {} +%"$$fundef_17_env_141" = type { { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, %Uint32 } +%"$$fundef_15_env_142" = type { { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } } +%"$$fundef_13_env_143" = type {} +%"$$fundef_11_env_144" = type {} +%"$$fundef_9_env_145" = type {} @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_60" = global %"$TyDescrTy_PrimTyp_59" zeroinitializer -@"$TyDescr_Int32_61" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Int32_Prim_60" to i8*) } -@"$TyDescr_Uint32_Prim_62" = global %"$TyDescrTy_PrimTyp_59" { i32 1, i32 0 } -@"$TyDescr_Uint32_63" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Uint32_Prim_62" to i8*) } -@"$TyDescr_Int64_Prim_64" = global %"$TyDescrTy_PrimTyp_59" { i32 0, i32 1 } -@"$TyDescr_Int64_65" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Int64_Prim_64" to i8*) } -@"$TyDescr_Uint64_Prim_66" = global %"$TyDescrTy_PrimTyp_59" { i32 1, i32 1 } -@"$TyDescr_Uint64_67" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Uint64_Prim_66" to i8*) } -@"$TyDescr_Int128_Prim_68" = global %"$TyDescrTy_PrimTyp_59" { i32 0, i32 2 } -@"$TyDescr_Int128_69" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Int128_Prim_68" to i8*) } -@"$TyDescr_Uint128_Prim_70" = global %"$TyDescrTy_PrimTyp_59" { i32 1, i32 2 } -@"$TyDescr_Uint128_71" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Uint128_Prim_70" to i8*) } -@"$TyDescr_Int256_Prim_72" = global %"$TyDescrTy_PrimTyp_59" { i32 0, i32 3 } -@"$TyDescr_Int256_73" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Int256_Prim_72" to i8*) } -@"$TyDescr_Uint256_Prim_74" = global %"$TyDescrTy_PrimTyp_59" { i32 1, i32 3 } -@"$TyDescr_Uint256_75" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Uint256_Prim_74" to i8*) } -@"$TyDescr_String_Prim_76" = global %"$TyDescrTy_PrimTyp_59" { i32 2, i32 0 } -@"$TyDescr_String_77" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_String_Prim_76" to i8*) } -@"$TyDescr_Bnum_Prim_78" = global %"$TyDescrTy_PrimTyp_59" { i32 3, i32 0 } -@"$TyDescr_Bnum_79" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Bnum_Prim_78" to i8*) } -@"$TyDescr_Message_Prim_80" = global %"$TyDescrTy_PrimTyp_59" { i32 4, i32 0 } -@"$TyDescr_Message_81" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Message_Prim_80" to i8*) } -@"$TyDescr_Event_Prim_82" = global %"$TyDescrTy_PrimTyp_59" { i32 5, i32 0 } -@"$TyDescr_Event_83" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Event_Prim_82" to i8*) } -@"$TyDescr_Exception_Prim_84" = global %"$TyDescrTy_PrimTyp_59" { i32 6, i32 0 } -@"$TyDescr_Exception_85" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Exception_Prim_84" to i8*) } -@"$TyDescr_Bystr_Prim_86" = global %"$TyDescrTy_PrimTyp_59" { i32 7, i32 0 } -@"$TyDescr_Bystr_87" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Bystr_Prim_86" to i8*) } -@"$TyDescr_Bystr20_Prim_88" = global %"$TyDescrTy_PrimTyp_59" { i32 8, i32 20 } -@"$TyDescr_Bystr20_89" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_59"* @"$TyDescr_Bystr20_Prim_88" to i8*) } -@"$TyDescr_ADT_Bool_93" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_Bool_ADTTyp_Specl_108" to i8*) } -@"$TyDescr_ADT_List_ByStr20_94" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_120" to i8*) } -@"$TyDescr_ADT_List_String_95" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_List_String_ADTTyp_Specl_129" to i8*) } -@"$TyDescr_Bool_ADTTyp_99" = unnamed_addr constant %"$TyDescrTy_ADTTyp_91" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_110", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_90"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_90"*], [1 x %"$TyDescrTy_ADTTyp_Specl_90"*]* @"$TyDescr_Bool_ADTTyp_m_specls_109", i32 0, i32 0) } -@"$TyDescr_Bool_True_Constr_m_args_100" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_True_101" = unnamed_addr constant [4 x i8] c"True" -@"$TyDescr_Bool_True_ADTTyp_Constr_102" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_101", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_100", i32 0, i32 0) } -@"$TyDescr_Bool_False_Constr_m_args_103" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_False_104" = unnamed_addr constant [5 x i8] c"False" -@"$TyDescr_Bool_False_ADTTyp_Constr_105" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_104", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_103", i32 0, i32 0) } -@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_106" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_92"*] [%"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_Bool_True_ADTTyp_Constr_102", %"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_Bool_False_ADTTyp_Constr_105"] -@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_107" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_Bool_ADTTyp_Specl_108" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_90" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_107", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_92"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_92"*], [2 x %"$TyDescrTy_ADTTyp_Constr_92"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_106", i32 0, i32 0), %"$TyDescrTy_ADTTyp_91"* @"$TyDescr_Bool_ADTTyp_99" } -@"$TyDescr_Bool_ADTTyp_m_specls_109" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_90"*] [%"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_Bool_ADTTyp_Specl_108"] -@"$TyDescr_ADT_Bool_110" = unnamed_addr constant [4 x i8] c"Bool" -@"$TyDescr_List_ADTTyp_111" = unnamed_addr constant %"$TyDescrTy_ADTTyp_91" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_131", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_90"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_90"*], [2 x %"$TyDescrTy_ADTTyp_Specl_90"*]* @"$TyDescr_List_ADTTyp_m_specls_130", i32 0, i32 0) } -@"$TyDescr_List_Cons_ByStr20_Constr_m_args_112" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_89", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_94"] -@"$TyDescr_ADT_Cons_113" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_114" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_113", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_ByStr20_Constr_m_args_112", i32 0, i32 0) } -@"$TyDescr_List_Nil_ByStr20_Constr_m_args_115" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_116" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_117" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_116", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_ByStr20_Constr_m_args_115", i32 0, i32 0) } -@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_118" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_92"*] [%"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_114", %"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_117"] -@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_119" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_89"] -@"$TyDescr_List_ByStr20_ADTTyp_Specl_120" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_90" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_119", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_92"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_92"*], [2 x %"$TyDescrTy_ADTTyp_Constr_92"*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_118", i32 0, i32 0), %"$TyDescrTy_ADTTyp_91"* @"$TyDescr_List_ADTTyp_111" } -@"$TyDescr_List_Cons_String_Constr_m_args_121" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_77", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_95"] -@"$TyDescr_ADT_Cons_122" = unnamed_addr constant [4 x i8] c"Cons" -@"$TyDescr_List_Cons_String_ADTTyp_Constr_123" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_122", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_String_Constr_m_args_121", i32 0, i32 0) } -@"$TyDescr_List_Nil_String_Constr_m_args_124" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer -@"$TyDescr_ADT_Nil_125" = unnamed_addr constant [3 x i8] c"Nil" -@"$TyDescr_List_Nil_String_ADTTyp_Constr_126" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_92" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_125", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_String_Constr_m_args_124", i32 0, i32 0) } -@"$TyDescr_List_String_ADTTyp_Specl_m_constrs_127" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_92"*] [%"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_List_Cons_String_ADTTyp_Constr_123", %"$TyDescrTy_ADTTyp_Constr_92"* @"$TyDescr_List_Nil_String_ADTTyp_Constr_126"] -@"$TyDescr_List_String_ADTTyp_Specl_m_TArgs_128" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_77"] -@"$TyDescr_List_String_ADTTyp_Specl_129" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_90" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_String_ADTTyp_Specl_m_TArgs_128", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_92"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_92"*], [2 x %"$TyDescrTy_ADTTyp_Constr_92"*]* @"$TyDescr_List_String_ADTTyp_Specl_m_constrs_127", i32 0, i32 0), %"$TyDescrTy_ADTTyp_91"* @"$TyDescr_List_ADTTyp_111" } -@"$TyDescr_List_ADTTyp_m_specls_130" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_90"*] [%"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_120", %"$TyDescrTy_ADTTyp_Specl_90"* @"$TyDescr_List_String_ADTTyp_Specl_129"] -@"$TyDescr_ADT_List_131" = unnamed_addr constant [4 x i8] c"List" +@"$TyDescr_Int32_Prim_53" = global %"$TyDescrTy_PrimTyp_52" zeroinitializer +@"$TyDescr_Int32_54" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Int32_Prim_53" to i8*) } +@"$TyDescr_Uint32_Prim_55" = global %"$TyDescrTy_PrimTyp_52" { i32 1, i32 0 } +@"$TyDescr_Uint32_56" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Uint32_Prim_55" to i8*) } +@"$TyDescr_Int64_Prim_57" = global %"$TyDescrTy_PrimTyp_52" { i32 0, i32 1 } +@"$TyDescr_Int64_58" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Int64_Prim_57" to i8*) } +@"$TyDescr_Uint64_Prim_59" = global %"$TyDescrTy_PrimTyp_52" { i32 1, i32 1 } +@"$TyDescr_Uint64_60" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Uint64_Prim_59" to i8*) } +@"$TyDescr_Int128_Prim_61" = global %"$TyDescrTy_PrimTyp_52" { i32 0, i32 2 } +@"$TyDescr_Int128_62" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Int128_Prim_61" to i8*) } +@"$TyDescr_Uint128_Prim_63" = global %"$TyDescrTy_PrimTyp_52" { i32 1, i32 2 } +@"$TyDescr_Uint128_64" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Uint128_Prim_63" to i8*) } +@"$TyDescr_Int256_Prim_65" = global %"$TyDescrTy_PrimTyp_52" { i32 0, i32 3 } +@"$TyDescr_Int256_66" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Int256_Prim_65" to i8*) } +@"$TyDescr_Uint256_Prim_67" = global %"$TyDescrTy_PrimTyp_52" { i32 1, i32 3 } +@"$TyDescr_Uint256_68" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Uint256_Prim_67" to i8*) } +@"$TyDescr_String_Prim_69" = global %"$TyDescrTy_PrimTyp_52" { i32 2, i32 0 } +@"$TyDescr_String_70" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_String_Prim_69" to i8*) } +@"$TyDescr_Bnum_Prim_71" = global %"$TyDescrTy_PrimTyp_52" { i32 3, i32 0 } +@"$TyDescr_Bnum_72" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Bnum_Prim_71" to i8*) } +@"$TyDescr_Message_Prim_73" = global %"$TyDescrTy_PrimTyp_52" { i32 4, i32 0 } +@"$TyDescr_Message_74" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Message_Prim_73" to i8*) } +@"$TyDescr_Event_Prim_75" = global %"$TyDescrTy_PrimTyp_52" { i32 5, i32 0 } +@"$TyDescr_Event_76" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Event_Prim_75" to i8*) } +@"$TyDescr_Exception_Prim_77" = global %"$TyDescrTy_PrimTyp_52" { i32 6, i32 0 } +@"$TyDescr_Exception_78" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Exception_Prim_77" to i8*) } +@"$TyDescr_Bystr_Prim_79" = global %"$TyDescrTy_PrimTyp_52" { i32 7, i32 0 } +@"$TyDescr_Bystr_80" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Bystr_Prim_79" to i8*) } +@"$TyDescr_Bystr20_Prim_81" = global %"$TyDescrTy_PrimTyp_52" { i32 8, i32 20 } +@"$TyDescr_Bystr20_82" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_52"* @"$TyDescr_Bystr20_Prim_81" to i8*) } +@"$TyDescr_ADT_Bool_86" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_Bool_ADTTyp_Specl_101" to i8*) } +@"$TyDescr_ADT_List_ByStr20_87" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_113" to i8*) } +@"$TyDescr_ADT_List_String_88" = unnamed_addr constant %_TyDescrTy_Typ { i32 1, i8* bitcast (%"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_List_String_ADTTyp_Specl_122" to i8*) } +@"$TyDescr_Bool_ADTTyp_92" = unnamed_addr constant %"$TyDescrTy_ADTTyp_84" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Bool_103", i32 0, i32 0), i32 4 }, i32 0, i32 2, i32 1, %"$TyDescrTy_ADTTyp_Specl_83"** getelementptr inbounds ([1 x %"$TyDescrTy_ADTTyp_Specl_83"*], [1 x %"$TyDescrTy_ADTTyp_Specl_83"*]* @"$TyDescr_Bool_ADTTyp_m_specls_102", i32 0, i32 0) } +@"$TyDescr_Bool_True_Constr_m_args_93" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_True_94" = unnamed_addr constant [4 x i8] c"True" +@"$TyDescr_Bool_True_ADTTyp_Constr_95" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_True_94", i32 0, i32 0), i32 4 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_True_Constr_m_args_93", i32 0, i32 0) } +@"$TyDescr_Bool_False_Constr_m_args_96" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_False_97" = unnamed_addr constant [5 x i8] c"False" +@"$TyDescr_Bool_False_ADTTyp_Constr_98" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"$TyDescr_ADT_False_97", i32 0, i32 0), i32 5 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_False_Constr_m_args_96", i32 0, i32 0) } +@"$TyDescr_Bool_ADTTyp_Specl_m_constrs_99" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_85"*] [%"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_Bool_True_ADTTyp_Constr_95", %"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_Bool_False_ADTTyp_Constr_98"] +@"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_100" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_Bool_ADTTyp_Specl_101" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_83" { %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_Bool_ADTTyp_Specl_m_TArgs_100", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_85"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_85"*], [2 x %"$TyDescrTy_ADTTyp_Constr_85"*]* @"$TyDescr_Bool_ADTTyp_Specl_m_constrs_99", i32 0, i32 0), %"$TyDescrTy_ADTTyp_84"* @"$TyDescr_Bool_ADTTyp_92" } +@"$TyDescr_Bool_ADTTyp_m_specls_102" = unnamed_addr constant [1 x %"$TyDescrTy_ADTTyp_Specl_83"*] [%"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_Bool_ADTTyp_Specl_101"] +@"$TyDescr_ADT_Bool_103" = unnamed_addr constant [4 x i8] c"Bool" +@"$TyDescr_List_ADTTyp_104" = unnamed_addr constant %"$TyDescrTy_ADTTyp_84" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_List_124", i32 0, i32 0), i32 4 }, i32 1, i32 2, i32 2, %"$TyDescrTy_ADTTyp_Specl_83"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Specl_83"*], [2 x %"$TyDescrTy_ADTTyp_Specl_83"*]* @"$TyDescr_List_ADTTyp_m_specls_123", i32 0, i32 0) } +@"$TyDescr_List_Cons_ByStr20_Constr_m_args_105" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_82", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_87"] +@"$TyDescr_ADT_Cons_106" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_107" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_106", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_ByStr20_Constr_m_args_105", i32 0, i32 0) } +@"$TyDescr_List_Nil_ByStr20_Constr_m_args_108" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_109" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_110" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_109", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_ByStr20_Constr_m_args_108", i32 0, i32 0) } +@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_111" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_85"*] [%"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_List_Cons_ByStr20_ADTTyp_Constr_107", %"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_List_Nil_ByStr20_ADTTyp_Constr_110"] +@"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_112" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Bystr20_82"] +@"$TyDescr_List_ByStr20_ADTTyp_Specl_113" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_83" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_TArgs_112", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_85"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_85"*], [2 x %"$TyDescrTy_ADTTyp_Constr_85"*]* @"$TyDescr_List_ByStr20_ADTTyp_Specl_m_constrs_111", i32 0, i32 0), %"$TyDescrTy_ADTTyp_84"* @"$TyDescr_List_ADTTyp_104" } +@"$TyDescr_List_Cons_String_Constr_m_args_114" = unnamed_addr constant [2 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_70", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_88"] +@"$TyDescr_ADT_Cons_115" = unnamed_addr constant [4 x i8] c"Cons" +@"$TyDescr_List_Cons_String_ADTTyp_Constr_116" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"$TyDescr_ADT_Cons_115", i32 0, i32 0), i32 4 }, i32 2, %_TyDescrTy_Typ** getelementptr inbounds ([2 x %_TyDescrTy_Typ*], [2 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Cons_String_Constr_m_args_114", i32 0, i32 0) } +@"$TyDescr_List_Nil_String_Constr_m_args_117" = unnamed_addr constant [0 x %_TyDescrTy_Typ*] zeroinitializer +@"$TyDescr_ADT_Nil_118" = unnamed_addr constant [3 x i8] c"Nil" +@"$TyDescr_List_Nil_String_ADTTyp_Constr_119" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Constr_85" { %TyDescrString { i8* getelementptr inbounds ([3 x i8], [3 x i8]* @"$TyDescr_ADT_Nil_118", i32 0, i32 0), i32 3 }, i32 0, %_TyDescrTy_Typ** getelementptr inbounds ([0 x %_TyDescrTy_Typ*], [0 x %_TyDescrTy_Typ*]* @"$TyDescr_List_Nil_String_Constr_m_args_117", i32 0, i32 0) } +@"$TyDescr_List_String_ADTTyp_Specl_m_constrs_120" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Constr_85"*] [%"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_List_Cons_String_ADTTyp_Constr_116", %"$TyDescrTy_ADTTyp_Constr_85"* @"$TyDescr_List_Nil_String_ADTTyp_Constr_119"] +@"$TyDescr_List_String_ADTTyp_Specl_m_TArgs_121" = unnamed_addr constant [1 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_String_70"] +@"$TyDescr_List_String_ADTTyp_Specl_122" = unnamed_addr constant %"$TyDescrTy_ADTTyp_Specl_83" { %_TyDescrTy_Typ** getelementptr inbounds ([1 x %_TyDescrTy_Typ*], [1 x %_TyDescrTy_Typ*]* @"$TyDescr_List_String_ADTTyp_Specl_m_TArgs_121", i32 0, i32 0), %"$TyDescrTy_ADTTyp_Constr_85"** getelementptr inbounds ([2 x %"$TyDescrTy_ADTTyp_Constr_85"*], [2 x %"$TyDescrTy_ADTTyp_Constr_85"*]* @"$TyDescr_List_String_ADTTyp_Specl_m_constrs_120", i32 0, i32 0), %"$TyDescrTy_ADTTyp_84"* @"$TyDescr_List_ADTTyp_104" } +@"$TyDescr_List_ADTTyp_m_specls_123" = unnamed_addr constant [2 x %"$TyDescrTy_ADTTyp_Specl_83"*] [%"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_List_ByStr20_ADTTyp_Specl_113", %"$TyDescrTy_ADTTyp_Specl_83"* @"$TyDescr_List_String_ADTTyp_Specl_122"] +@"$TyDescr_ADT_List_124" = unnamed_addr constant [4 x i8] c"List" @list_foldl = global { i8*, i8* }* null @ListUtils.list_length = global { i8*, i8* }* null -@_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_83", %_TyDescrTy_Typ* @"$TyDescr_Int64_65", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_93", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_89", %_TyDescrTy_Typ* @"$TyDescr_Uint256_75", %_TyDescrTy_Typ* @"$TyDescr_Uint32_63", %_TyDescrTy_Typ* @"$TyDescr_Uint64_67", %_TyDescrTy_Typ* @"$TyDescr_Bnum_79", %_TyDescrTy_Typ* @"$TyDescr_Uint128_71", %_TyDescrTy_Typ* @"$TyDescr_Exception_85", %_TyDescrTy_Typ* @"$TyDescr_String_77", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_94", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_95", %_TyDescrTy_Typ* @"$TyDescr_Int256_73", %_TyDescrTy_Typ* @"$TyDescr_Int128_69", %_TyDescrTy_Typ* @"$TyDescr_Bystr_87", %_TyDescrTy_Typ* @"$TyDescr_Message_81", %_TyDescrTy_Typ* @"$TyDescr_Int32_61"] +@_tydescr_table = constant [18 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_76", %_TyDescrTy_Typ* @"$TyDescr_Int64_58", %_TyDescrTy_Typ* @"$TyDescr_ADT_Bool_86", %_TyDescrTy_Typ* @"$TyDescr_Bystr20_82", %_TyDescrTy_Typ* @"$TyDescr_Uint256_68", %_TyDescrTy_Typ* @"$TyDescr_Uint32_56", %_TyDescrTy_Typ* @"$TyDescr_Uint64_60", %_TyDescrTy_Typ* @"$TyDescr_Bnum_72", %_TyDescrTy_Typ* @"$TyDescr_Uint128_64", %_TyDescrTy_Typ* @"$TyDescr_Exception_78", %_TyDescrTy_Typ* @"$TyDescr_String_70", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_ByStr20_87", %_TyDescrTy_Typ* @"$TyDescr_ADT_List_String_88", %_TyDescrTy_Typ* @"$TyDescr_Int256_66", %_TyDescrTy_Typ* @"$TyDescr_Int128_62", %_TyDescrTy_Typ* @"$TyDescr_Bystr_80", %_TyDescrTy_Typ* @"$TyDescr_Message_74", %_TyDescrTy_Typ* @"$TyDescr_Int32_54"] @_tydescr_table_length = constant i32 18 -@_contract_parameters = constant [0 x %"$ParamDescr_1026"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_976"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_1027"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_977"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal { i8*, i8* }* @"$fundef_57"(%"$$fundef_57_env_132"* %0, { i8*, i8* }* %1) { +define internal { i8*, i8* }* @"$fundef_50"(%"$$fundef_50_env_125"* %0, %TName_Bool* %1, { i8*, i8* }* %2, { i8*, i8* }* %3) { entry: - %"$$fundef_57_env_b_780" = getelementptr inbounds %"$$fundef_57_env_132", %"$$fundef_57_env_132"* %0, i32 0, i32 0 - %"$b_envload_781" = load %TName_Bool*, %TName_Bool** %"$$fundef_57_env_b_780", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_781", %TName_Bool** %b, align 8 - %"$$fundef_57_env_f_782" = getelementptr inbounds %"$$fundef_57_env_132", %"$$fundef_57_env_132"* %0, i32 0, i32 1 - %"$f_envload_783" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_57_env_f_782", align 8 - %f = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$f_envload_783", { i8*, i8* }** %f, align 8 - %"$retval_58" = alloca { i8*, i8* }*, align 8 - %"$gasrem_784" = load i64, i64* @_gasrem, align 8 - %"$gascmp_785" = icmp ugt i64 2, %"$gasrem_784" - br i1 %"$gascmp_785", label %"$out_of_gas_786", label %"$have_gas_787" - -"$out_of_gas_786": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_787" - -"$have_gas_787": ; preds = %"$out_of_gas_786", %entry - %"$consume_788" = sub i64 %"$gasrem_784", 2 - store i64 %"$consume_788", i64* @_gasrem, align 8 - %"$b_790" = load %TName_Bool*, %TName_Bool** %b, align 8 - %"$b_tag_791" = getelementptr inbounds %TName_Bool, %TName_Bool* %"$b_790", i32 0, i32 0 - %"$b_tag_792" = load i8, i8* %"$b_tag_791", align 1 - switch i8 %"$b_tag_792", label %"$empty_default_793" [ - i8 0, label %"$True_794" - i8 1, label %"$False_801" - ] - -"$True_794": ; preds = %"$have_gas_787" - %"$b_795" = bitcast %TName_Bool* %"$b_790" to %CName_True* - %"$gasrem_796" = load i64, i64* @_gasrem, align 8 - %"$gascmp_797" = icmp ugt i64 1, %"$gasrem_796" - br i1 %"$gascmp_797", label %"$out_of_gas_798", label %"$have_gas_799" + %"$retval_51" = alloca { i8*, i8* }*, align 8 + %"$gasrem_745" = load i64, i64* @_gasrem, align 8 + %"$gascmp_746" = icmp ugt i64 2, %"$gasrem_745" + br i1 %"$gascmp_746", label %"$out_of_gas_747", label %"$have_gas_748" -"$out_of_gas_798": ; preds = %"$True_794" +"$out_of_gas_747": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_799" + br label %"$have_gas_748" -"$have_gas_799": ; preds = %"$out_of_gas_798", %"$True_794" - %"$consume_800" = sub i64 %"$gasrem_796", 1 - store i64 %"$consume_800", i64* @_gasrem, align 8 - store { i8*, i8* }* %1, { i8*, i8* }** %"$retval_58", align 8 - br label %"$matchsucc_789" +"$have_gas_748": ; preds = %"$out_of_gas_747", %entry + %"$consume_749" = sub i64 %"$gasrem_745", 2 + store i64 %"$consume_749", i64* @_gasrem, align 8 + %"$b_tag_751" = getelementptr inbounds %TName_Bool, %TName_Bool* %1, i32 0, i32 0 + %"$b_tag_752" = load i8, i8* %"$b_tag_751", align 1 + switch i8 %"$b_tag_752", label %"$empty_default_753" [ + i8 0, label %"$True_754" + i8 1, label %"$False_761" + ] -"$False_801": ; preds = %"$have_gas_787" - %"$b_802" = bitcast %TName_Bool* %"$b_790" to %CName_False* - %"$gasrem_803" = load i64, i64* @_gasrem, align 8 - %"$gascmp_804" = icmp ugt i64 1, %"$gasrem_803" - br i1 %"$gascmp_804", label %"$out_of_gas_805", label %"$have_gas_806" +"$True_754": ; preds = %"$have_gas_748" + %"$b_755" = bitcast %TName_Bool* %1 to %CName_True* + %"$gasrem_756" = load i64, i64* @_gasrem, align 8 + %"$gascmp_757" = icmp ugt i64 1, %"$gasrem_756" + br i1 %"$gascmp_757", label %"$out_of_gas_758", label %"$have_gas_759" -"$out_of_gas_805": ; preds = %"$False_801" +"$out_of_gas_758": ; preds = %"$True_754" call void @_out_of_gas() - br label %"$have_gas_806" + br label %"$have_gas_759" -"$have_gas_806": ; preds = %"$out_of_gas_805", %"$False_801" - %"$consume_807" = sub i64 %"$gasrem_803", 1 - store i64 %"$consume_807", i64* @_gasrem, align 8 - %"$f_808" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 - store { i8*, i8* }* %"$f_808", { i8*, i8* }** %"$retval_58", align 8 - br label %"$matchsucc_789" +"$have_gas_759": ; preds = %"$out_of_gas_758", %"$True_754" + %"$consume_760" = sub i64 %"$gasrem_756", 1 + store i64 %"$consume_760", i64* @_gasrem, align 8 + store { i8*, i8* }* %3, { i8*, i8* }** %"$retval_51", align 8 + br label %"$matchsucc_750" -"$empty_default_793": ; preds = %"$have_gas_787" - br label %"$matchsucc_789" +"$False_761": ; preds = %"$have_gas_748" + %"$b_762" = bitcast %TName_Bool* %1 to %CName_False* + %"$gasrem_763" = load i64, i64* @_gasrem, align 8 + %"$gascmp_764" = icmp ugt i64 1, %"$gasrem_763" + br i1 %"$gascmp_764", label %"$out_of_gas_765", label %"$have_gas_766" -"$matchsucc_789": ; preds = %"$have_gas_806", %"$have_gas_799", %"$empty_default_793" - %"$$retval_58_809" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_58", align 8 - ret { i8*, i8* }* %"$$retval_58_809" -} +"$out_of_gas_765": ; preds = %"$False_761" + call void @_out_of_gas() + br label %"$have_gas_766" -define internal { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } @"$fundef_55"(%"$$fundef_55_env_133"* %0, { i8*, i8* }* %1) { -entry: - %"$$fundef_55_env_b_765" = getelementptr inbounds %"$$fundef_55_env_133", %"$$fundef_55_env_133"* %0, i32 0, i32 0 - %"$b_envload_766" = load %TName_Bool*, %TName_Bool** %"$$fundef_55_env_b_765", align 8 - %b = alloca %TName_Bool*, align 8 - store %TName_Bool* %"$b_envload_766", %TName_Bool** %b, align 8 - %"$retval_56" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_767" = load i64, i64* @_gasrem, align 8 - %"$gascmp_768" = icmp ugt i64 1, %"$gasrem_767" - br i1 %"$gascmp_768", label %"$out_of_gas_769", label %"$have_gas_770" - -"$out_of_gas_769": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_770" - -"$have_gas_770": ; preds = %"$out_of_gas_769", %entry - %"$consume_771" = sub i64 %"$gasrem_767", 1 - store i64 %"$consume_771", i64* @_gasrem, align 8 - %"$$fundef_57_envp_772_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_57_envp_772_salloc" = call i8* @_salloc(i8* %"$$fundef_57_envp_772_load", i64 16) - %"$$fundef_57_envp_772" = bitcast i8* %"$$fundef_57_envp_772_salloc" to %"$$fundef_57_env_132"* - %"$$fundef_57_env_voidp_774" = bitcast %"$$fundef_57_env_132"* %"$$fundef_57_envp_772" to i8* - %"$$fundef_57_cloval_775" = insertvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_57_env_132"*, { i8*, i8* }*)* @"$fundef_57" to { i8*, i8* }* (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_57_env_voidp_774", 1 - %"$$fundef_57_env_b_776" = getelementptr inbounds %"$$fundef_57_env_132", %"$$fundef_57_env_132"* %"$$fundef_57_envp_772", i32 0, i32 0 - %"$b_777" = load %TName_Bool*, %TName_Bool** %b, align 8 - store %TName_Bool* %"$b_777", %TName_Bool** %"$$fundef_57_env_b_776", align 8 - %"$$fundef_57_env_f_778" = getelementptr inbounds %"$$fundef_57_env_132", %"$$fundef_57_env_132"* %"$$fundef_57_envp_772", i32 0, i32 1 - store { i8*, i8* }* %1, { i8*, i8* }** %"$$fundef_57_env_f_778", align 8 - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_57_cloval_775", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_56", align 8 - %"$$retval_56_779" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$retval_56", align 8 - ret { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$retval_56_779" -} +"$have_gas_766": ; preds = %"$out_of_gas_765", %"$False_761" + %"$consume_767" = sub i64 %"$gasrem_763", 1 + store i64 %"$consume_767", i64* @_gasrem, align 8 + store { i8*, i8* }* %2, { i8*, i8* }** %"$retval_51", align 8 + br label %"$matchsucc_750" -define internal { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } @"$fundef_53"(%"$$fundef_53_env_134"* %0, %TName_Bool* %1) { -entry: - %"$retval_54" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$gasrem_754" = load i64, i64* @_gasrem, align 8 - %"$gascmp_755" = icmp ugt i64 1, %"$gasrem_754" - br i1 %"$gascmp_755", label %"$out_of_gas_756", label %"$have_gas_757" - -"$out_of_gas_756": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_757" - -"$have_gas_757": ; preds = %"$out_of_gas_756", %entry - %"$consume_758" = sub i64 %"$gasrem_754", 1 - store i64 %"$consume_758", i64* @_gasrem, align 8 - %"$$fundef_55_envp_759_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_55_envp_759_salloc" = call i8* @_salloc(i8* %"$$fundef_55_envp_759_load", i64 8) - %"$$fundef_55_envp_759" = bitcast i8* %"$$fundef_55_envp_759_salloc" to %"$$fundef_55_env_133"* - %"$$fundef_55_env_voidp_761" = bitcast %"$$fundef_55_env_133"* %"$$fundef_55_envp_759" to i8* - %"$$fundef_55_cloval_762" = insertvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)* bitcast ({ { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_55_env_133"*, { i8*, i8* }*)* @"$fundef_55" to { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*), i8* undef }, i8* %"$$fundef_55_env_voidp_761", 1 - %"$$fundef_55_env_b_763" = getelementptr inbounds %"$$fundef_55_env_133", %"$$fundef_55_env_133"* %"$$fundef_55_envp_759", i32 0, i32 0 - store %TName_Bool* %1, %TName_Bool** %"$$fundef_55_env_b_763", align 8 - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$fundef_55_cloval_762", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_54", align 8 - %"$$retval_54_764" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$retval_54", align 8 - ret { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$retval_54_764" +"$empty_default_753": ; preds = %"$have_gas_748" + br label %"$matchsucc_750" + +"$matchsucc_750": ; preds = %"$have_gas_766", %"$have_gas_759", %"$empty_default_753" + %"$$retval_51_768" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_51", align 8 + ret { i8*, i8* }* %"$$retval_51_768" } -define internal %Uint32 @"$fundef_51"(%"$$fundef_51_env_135"* %0, %TName_List_ByStr20* %1) { +define internal %Uint32 @"$fundef_48"(%"$$fundef_48_env_126"* %0, %TName_List_ByStr20* %1) { entry: - %"$$fundef_51_env_ListUtils.list_length_701" = getelementptr inbounds %"$$fundef_51_env_135", %"$$fundef_51_env_135"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_702" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_51_env_ListUtils.list_length_701", align 8 + %"$$fundef_48_env_ListUtils.list_length_692" = getelementptr inbounds %"$$fundef_48_env_126", %"$$fundef_48_env_126"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_693" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_48_env_ListUtils.list_length_692", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_702", { i8*, i8* }** %ListUtils.list_length, align 8 - %"$retval_52" = alloca %Uint32, align 8 - %"$gasrem_703" = load i64, i64* @_gasrem, align 8 - %"$gascmp_704" = icmp ugt i64 1, %"$gasrem_703" - br i1 %"$gascmp_704", label %"$out_of_gas_705", label %"$have_gas_706" + store { i8*, i8* }* %"$ListUtils.list_length_envload_693", { i8*, i8* }** %ListUtils.list_length, align 8 + %"$retval_49" = alloca %Uint32, align 8 + %"$gasrem_694" = load i64, i64* @_gasrem, align 8 + %"$gascmp_695" = icmp ugt i64 1, %"$gasrem_694" + br i1 %"$gascmp_695", label %"$out_of_gas_696", label %"$have_gas_697" -"$out_of_gas_705": ; preds = %entry +"$out_of_gas_696": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_706" + br label %"$have_gas_697" -"$have_gas_706": ; preds = %"$out_of_gas_705", %entry - %"$consume_707" = sub i64 %"$gasrem_703", 1 - store i64 %"$consume_707", i64* @_gasrem, align 8 +"$have_gas_697": ; preds = %"$out_of_gas_696", %entry + %"$consume_698" = sub i64 %"$gasrem_694", 1 + store i64 %"$consume_698", i64* @_gasrem, align 8 %ll = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_708" = load i64, i64* @_gasrem, align 8 - %"$gascmp_709" = icmp ugt i64 1, %"$gasrem_708" - br i1 %"$gascmp_709", label %"$out_of_gas_710", label %"$have_gas_711" - -"$out_of_gas_710": ; preds = %"$have_gas_706" - call void @_out_of_gas() - br label %"$have_gas_711" - -"$have_gas_711": ; preds = %"$out_of_gas_710", %"$have_gas_706" - %"$consume_712" = sub i64 %"$gasrem_708", 1 - store i64 %"$consume_712", i64* @_gasrem, align 8 - %"$ListUtils.list_length_713" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - %"$ListUtils.list_length_714" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_713", i32 2 - %"$ListUtils.list_length_715" = bitcast { i8*, i8* }* %"$ListUtils.list_length_714" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_length_716" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_715", align 8 - %"$ListUtils.list_length_fptr_717" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_716", 0 - %"$ListUtils.list_length_envptr_718" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_716", 1 - %"$ListUtils.list_length_call_719" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_fptr_717"(i8* %"$ListUtils.list_length_envptr_718") - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_call_719", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8 - %"$gasrem_720" = load i64, i64* @_gasrem, align 8 - %"$gascmp_721" = icmp ugt i64 1, %"$gasrem_720" - br i1 %"$gascmp_721", label %"$out_of_gas_722", label %"$have_gas_723" - -"$out_of_gas_722": ; preds = %"$have_gas_711" - call void @_out_of_gas() - br label %"$have_gas_723" - -"$have_gas_723": ; preds = %"$out_of_gas_722", %"$have_gas_711" - %"$consume_724" = sub i64 %"$gasrem_720", 1 - store i64 %"$consume_724", i64* @_gasrem, align 8 + %"$gasrem_699" = load i64, i64* @_gasrem, align 8 + %"$gascmp_700" = icmp ugt i64 1, %"$gasrem_699" + br i1 %"$gascmp_700", label %"$out_of_gas_701", label %"$have_gas_702" + +"$out_of_gas_701": ; preds = %"$have_gas_697" + call void @_out_of_gas() + br label %"$have_gas_702" + +"$have_gas_702": ; preds = %"$out_of_gas_701", %"$have_gas_697" + %"$consume_703" = sub i64 %"$gasrem_699", 1 + store i64 %"$consume_703", i64* @_gasrem, align 8 + %"$ListUtils.list_length_704" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + %"$ListUtils.list_length_705" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_704", i32 2 + %"$ListUtils.list_length_706" = bitcast { i8*, i8* }* %"$ListUtils.list_length_705" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_length_707" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_706", align 8 + %"$ListUtils.list_length_fptr_708" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_707", 0 + %"$ListUtils.list_length_envptr_709" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_707", 1 + %"$ListUtils.list_length_call_710" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_fptr_708"(i8* %"$ListUtils.list_length_envptr_709") + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ListUtils.list_length_call_710", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8 + %"$gasrem_711" = load i64, i64* @_gasrem, align 8 + %"$gascmp_712" = icmp ugt i64 1, %"$gasrem_711" + br i1 %"$gascmp_712", label %"$out_of_gas_713", label %"$have_gas_714" + +"$out_of_gas_713": ; preds = %"$have_gas_702" + call void @_out_of_gas() + br label %"$have_gas_714" + +"$have_gas_714": ; preds = %"$out_of_gas_713", %"$have_gas_702" + %"$consume_715" = sub i64 %"$gasrem_711", 1 + store i64 %"$consume_715", i64* @_gasrem, align 8 %n = alloca %Uint32, align 8 - %"$gasrem_725" = load i64, i64* @_gasrem, align 8 - %"$gascmp_726" = icmp ugt i64 1, %"$gasrem_725" - br i1 %"$gascmp_726", label %"$out_of_gas_727", label %"$have_gas_728" + %"$gasrem_716" = load i64, i64* @_gasrem, align 8 + %"$gascmp_717" = icmp ugt i64 1, %"$gasrem_716" + br i1 %"$gascmp_717", label %"$out_of_gas_718", label %"$have_gas_719" -"$out_of_gas_727": ; preds = %"$have_gas_723" +"$out_of_gas_718": ; preds = %"$have_gas_714" call void @_out_of_gas() - br label %"$have_gas_728" + br label %"$have_gas_719" -"$have_gas_728": ; preds = %"$out_of_gas_727", %"$have_gas_723" - %"$consume_729" = sub i64 %"$gasrem_725", 1 - store i64 %"$consume_729", i64* @_gasrem, align 8 +"$have_gas_719": ; preds = %"$out_of_gas_718", %"$have_gas_714" + %"$consume_720" = sub i64 %"$gasrem_716", 1 + store i64 %"$consume_720", i64* @_gasrem, align 8 %"$ll_6" = alloca %Uint32, align 8 - %"$ll_730" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8 - %"$ll_fptr_731" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_730", 0 - %"$ll_envptr_732" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_730", 1 - %"$ll_call_733" = call %Uint32 %"$ll_fptr_731"(i8* %"$ll_envptr_732", %TName_List_ByStr20* %1) - store %Uint32 %"$ll_call_733", %Uint32* %"$ll_6", align 4 - %"$$ll_6_734" = load %Uint32, %Uint32* %"$ll_6", align 4 - store %Uint32 %"$$ll_6_734", %Uint32* %n, align 4 - %"$gasrem_735" = load i64, i64* @_gasrem, align 8 - %"$gascmp_736" = icmp ugt i64 1, %"$gasrem_735" - br i1 %"$gascmp_736", label %"$out_of_gas_737", label %"$have_gas_738" - -"$out_of_gas_737": ; preds = %"$have_gas_728" - call void @_out_of_gas() - br label %"$have_gas_738" - -"$have_gas_738": ; preds = %"$out_of_gas_737", %"$have_gas_728" - %"$consume_739" = sub i64 %"$gasrem_735", 1 - store i64 %"$consume_739", i64* @_gasrem, align 8 + %"$ll_721" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %ll, align 8 + %"$ll_fptr_722" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_721", 0 + %"$ll_envptr_723" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$ll_721", 1 + %"$ll_call_724" = call %Uint32 %"$ll_fptr_722"(i8* %"$ll_envptr_723", %TName_List_ByStr20* %1) + store %Uint32 %"$ll_call_724", %Uint32* %"$ll_6", align 4 + %"$$ll_6_725" = load %Uint32, %Uint32* %"$ll_6", align 4 + store %Uint32 %"$$ll_6_725", %Uint32* %n, align 4 + %"$gasrem_726" = load i64, i64* @_gasrem, align 8 + %"$gascmp_727" = icmp ugt i64 1, %"$gasrem_726" + br i1 %"$gascmp_727", label %"$out_of_gas_728", label %"$have_gas_729" + +"$out_of_gas_728": ; preds = %"$have_gas_719" + call void @_out_of_gas() + br label %"$have_gas_729" + +"$have_gas_729": ; preds = %"$out_of_gas_728", %"$have_gas_719" + %"$consume_730" = sub i64 %"$gasrem_726", 1 + store i64 %"$consume_730", i64* @_gasrem, align 8 %two = alloca %Uint32, align 8 - %"$gasrem_740" = load i64, i64* @_gasrem, align 8 - %"$gascmp_741" = icmp ugt i64 1, %"$gasrem_740" - br i1 %"$gascmp_741", label %"$out_of_gas_742", label %"$have_gas_743" + %"$gasrem_731" = load i64, i64* @_gasrem, align 8 + %"$gascmp_732" = icmp ugt i64 1, %"$gasrem_731" + br i1 %"$gascmp_732", label %"$out_of_gas_733", label %"$have_gas_734" -"$out_of_gas_742": ; preds = %"$have_gas_738" +"$out_of_gas_733": ; preds = %"$have_gas_729" call void @_out_of_gas() - br label %"$have_gas_743" + br label %"$have_gas_734" -"$have_gas_743": ; preds = %"$out_of_gas_742", %"$have_gas_738" - %"$consume_744" = sub i64 %"$gasrem_740", 1 - store i64 %"$consume_744", i64* @_gasrem, align 8 +"$have_gas_734": ; preds = %"$out_of_gas_733", %"$have_gas_729" + %"$consume_735" = sub i64 %"$gasrem_731", 1 + store i64 %"$consume_735", i64* @_gasrem, align 8 store %Uint32 { i32 2 }, %Uint32* %two, align 4 - %"$gasrem_745" = load i64, i64* @_gasrem, align 8 - %"$gascmp_746" = icmp ugt i64 4, %"$gasrem_745" - br i1 %"$gascmp_746", label %"$out_of_gas_747", label %"$have_gas_748" - -"$out_of_gas_747": ; preds = %"$have_gas_743" - call void @_out_of_gas() - br label %"$have_gas_748" - -"$have_gas_748": ; preds = %"$out_of_gas_747", %"$have_gas_743" - %"$consume_749" = sub i64 %"$gasrem_745", 4 - store i64 %"$consume_749", i64* @_gasrem, align 8 - %"$n_750" = load %Uint32, %Uint32* %n, align 4 - %"$two_751" = load %Uint32, %Uint32* %two, align 4 - %"$add_call_752" = call %Uint32 @_add_Uint32(%Uint32 %"$n_750", %Uint32 %"$two_751") - store %Uint32 %"$add_call_752", %Uint32* %"$retval_52", align 4 - %"$$retval_52_753" = load %Uint32, %Uint32* %"$retval_52", align 4 - ret %Uint32 %"$$retval_52_753" + %"$gasrem_736" = load i64, i64* @_gasrem, align 8 + %"$gascmp_737" = icmp ugt i64 4, %"$gasrem_736" + br i1 %"$gascmp_737", label %"$out_of_gas_738", label %"$have_gas_739" + +"$out_of_gas_738": ; preds = %"$have_gas_734" + call void @_out_of_gas() + br label %"$have_gas_739" + +"$have_gas_739": ; preds = %"$out_of_gas_738", %"$have_gas_734" + %"$consume_740" = sub i64 %"$gasrem_736", 4 + store i64 %"$consume_740", i64* @_gasrem, align 8 + %"$n_741" = load %Uint32, %Uint32* %n, align 4 + %"$two_742" = load %Uint32, %Uint32* %two, align 4 + %"$add_call_743" = call %Uint32 @_add_Uint32(%Uint32 %"$n_741", %Uint32 %"$two_742") + store %Uint32 %"$add_call_743", %Uint32* %"$retval_49", align 4 + %"$$retval_49_744" = load %Uint32, %Uint32* %"$retval_49", align 4 + ret %Uint32 %"$$retval_49_744" } -define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_49"(%"$$fundef_49_env_136"* %0) { +define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_46"(%"$$fundef_46_env_127"* %0) { entry: - %"$$fundef_49_env_ListUtils.list_length_687" = getelementptr inbounds %"$$fundef_49_env_136", %"$$fundef_49_env_136"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_688" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_49_env_ListUtils.list_length_687", align 8 + %"$$fundef_46_env_ListUtils.list_length_678" = getelementptr inbounds %"$$fundef_46_env_127", %"$$fundef_46_env_127"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_679" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_46_env_ListUtils.list_length_678", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_688", { i8*, i8* }** %ListUtils.list_length, align 8 - %"$retval_50" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_689" = load i64, i64* @_gasrem, align 8 - %"$gascmp_690" = icmp ugt i64 1, %"$gasrem_689" - br i1 %"$gascmp_690", label %"$out_of_gas_691", label %"$have_gas_692" - -"$out_of_gas_691": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_692" - -"$have_gas_692": ; preds = %"$out_of_gas_691", %entry - %"$consume_693" = sub i64 %"$gasrem_689", 1 - store i64 %"$consume_693", i64* @_gasrem, align 8 - %"$$fundef_51_envp_694_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_51_envp_694_salloc" = call i8* @_salloc(i8* %"$$fundef_51_envp_694_load", i64 8) - %"$$fundef_51_envp_694" = bitcast i8* %"$$fundef_51_envp_694_salloc" to %"$$fundef_51_env_135"* - %"$$fundef_51_env_voidp_696" = bitcast %"$$fundef_51_env_135"* %"$$fundef_51_envp_694" to i8* - %"$$fundef_51_cloval_697" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_51_env_135"*, %TName_List_ByStr20*)* @"$fundef_51" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_51_env_voidp_696", 1 - %"$$fundef_51_env_ListUtils.list_length_698" = getelementptr inbounds %"$$fundef_51_env_135", %"$$fundef_51_env_135"* %"$$fundef_51_envp_694", i32 0, i32 0 - %"$ListUtils.list_length_699" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_699", { i8*, i8* }** %"$$fundef_51_env_ListUtils.list_length_698", align 8 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_51_cloval_697", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_50", align 8 - %"$$retval_50_700" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_50", align 8 - ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_50_700" + store { i8*, i8* }* %"$ListUtils.list_length_envload_679", { i8*, i8* }** %ListUtils.list_length, align 8 + %"$retval_47" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_680" = load i64, i64* @_gasrem, align 8 + %"$gascmp_681" = icmp ugt i64 1, %"$gasrem_680" + br i1 %"$gascmp_681", label %"$out_of_gas_682", label %"$have_gas_683" + +"$out_of_gas_682": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_683" + +"$have_gas_683": ; preds = %"$out_of_gas_682", %entry + %"$consume_684" = sub i64 %"$gasrem_680", 1 + store i64 %"$consume_684", i64* @_gasrem, align 8 + %"$$fundef_48_envp_685_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_48_envp_685_salloc" = call i8* @_salloc(i8* %"$$fundef_48_envp_685_load", i64 8) + %"$$fundef_48_envp_685" = bitcast i8* %"$$fundef_48_envp_685_salloc" to %"$$fundef_48_env_126"* + %"$$fundef_48_env_voidp_687" = bitcast %"$$fundef_48_env_126"* %"$$fundef_48_envp_685" to i8* + %"$$fundef_48_cloval_688" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_48_env_126"*, %TName_List_ByStr20*)* @"$fundef_48" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_48_env_voidp_687", 1 + %"$$fundef_48_env_ListUtils.list_length_689" = getelementptr inbounds %"$$fundef_48_env_126", %"$$fundef_48_env_126"* %"$$fundef_48_envp_685", i32 0, i32 0 + %"$ListUtils.list_length_690" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_690", { i8*, i8* }** %"$$fundef_48_env_ListUtils.list_length_689", align 8 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_48_cloval_688", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_47", align 8 + %"$$retval_47_691" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_47", align 8 + ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_47_691" } -define internal %Uint32 @"$fundef_47"(%"$$fundef_47_env_137"* %0, %TName_List_String* %1) { +define internal %Uint32 @"$fundef_44"(%"$$fundef_44_env_128"* %0, %TName_List_String* %1) { entry: - %"$$fundef_47_env_ListUtils.list_length_634" = getelementptr inbounds %"$$fundef_47_env_137", %"$$fundef_47_env_137"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_635" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_47_env_ListUtils.list_length_634", align 8 + %"$$fundef_44_env_ListUtils.list_length_625" = getelementptr inbounds %"$$fundef_44_env_128", %"$$fundef_44_env_128"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_626" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_44_env_ListUtils.list_length_625", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_635", { i8*, i8* }** %ListUtils.list_length, align 8 - %"$retval_48" = alloca %Uint32, align 8 - %"$gasrem_636" = load i64, i64* @_gasrem, align 8 - %"$gascmp_637" = icmp ugt i64 1, %"$gasrem_636" - br i1 %"$gascmp_637", label %"$out_of_gas_638", label %"$have_gas_639" + store { i8*, i8* }* %"$ListUtils.list_length_envload_626", { i8*, i8* }** %ListUtils.list_length, align 8 + %"$retval_45" = alloca %Uint32, align 8 + %"$gasrem_627" = load i64, i64* @_gasrem, align 8 + %"$gascmp_628" = icmp ugt i64 1, %"$gasrem_627" + br i1 %"$gascmp_628", label %"$out_of_gas_629", label %"$have_gas_630" -"$out_of_gas_638": ; preds = %entry +"$out_of_gas_629": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_639" + br label %"$have_gas_630" -"$have_gas_639": ; preds = %"$out_of_gas_638", %entry - %"$consume_640" = sub i64 %"$gasrem_636", 1 - store i64 %"$consume_640", i64* @_gasrem, align 8 +"$have_gas_630": ; preds = %"$out_of_gas_629", %entry + %"$consume_631" = sub i64 %"$gasrem_627", 1 + store i64 %"$consume_631", i64* @_gasrem, align 8 %ll = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$gasrem_641" = load i64, i64* @_gasrem, align 8 - %"$gascmp_642" = icmp ugt i64 1, %"$gasrem_641" - br i1 %"$gascmp_642", label %"$out_of_gas_643", label %"$have_gas_644" - -"$out_of_gas_643": ; preds = %"$have_gas_639" - call void @_out_of_gas() - br label %"$have_gas_644" - -"$have_gas_644": ; preds = %"$out_of_gas_643", %"$have_gas_639" - %"$consume_645" = sub i64 %"$gasrem_641", 1 - store i64 %"$consume_645", i64* @_gasrem, align 8 - %"$ListUtils.list_length_646" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - %"$ListUtils.list_length_647" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_646", i32 0 - %"$ListUtils.list_length_648" = bitcast { i8*, i8* }* %"$ListUtils.list_length_647" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - %"$ListUtils.list_length_649" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_648", align 8 - %"$ListUtils.list_length_fptr_650" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_649", 0 - %"$ListUtils.list_length_envptr_651" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_649", 1 - %"$ListUtils.list_length_call_652" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_fptr_650"(i8* %"$ListUtils.list_length_envptr_651") - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_call_652", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8 - %"$gasrem_653" = load i64, i64* @_gasrem, align 8 - %"$gascmp_654" = icmp ugt i64 1, %"$gasrem_653" - br i1 %"$gascmp_654", label %"$out_of_gas_655", label %"$have_gas_656" - -"$out_of_gas_655": ; preds = %"$have_gas_644" - call void @_out_of_gas() - br label %"$have_gas_656" - -"$have_gas_656": ; preds = %"$out_of_gas_655", %"$have_gas_644" - %"$consume_657" = sub i64 %"$gasrem_653", 1 - store i64 %"$consume_657", i64* @_gasrem, align 8 + %"$gasrem_632" = load i64, i64* @_gasrem, align 8 + %"$gascmp_633" = icmp ugt i64 1, %"$gasrem_632" + br i1 %"$gascmp_633", label %"$out_of_gas_634", label %"$have_gas_635" + +"$out_of_gas_634": ; preds = %"$have_gas_630" + call void @_out_of_gas() + br label %"$have_gas_635" + +"$have_gas_635": ; preds = %"$out_of_gas_634", %"$have_gas_630" + %"$consume_636" = sub i64 %"$gasrem_632", 1 + store i64 %"$consume_636", i64* @_gasrem, align 8 + %"$ListUtils.list_length_637" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + %"$ListUtils.list_length_638" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$ListUtils.list_length_637", i32 0 + %"$ListUtils.list_length_639" = bitcast { i8*, i8* }* %"$ListUtils.list_length_638" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + %"$ListUtils.list_length_640" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$ListUtils.list_length_639", align 8 + %"$ListUtils.list_length_fptr_641" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_640", 0 + %"$ListUtils.list_length_envptr_642" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$ListUtils.list_length_640", 1 + %"$ListUtils.list_length_call_643" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_fptr_641"(i8* %"$ListUtils.list_length_envptr_642") + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ListUtils.list_length_call_643", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8 + %"$gasrem_644" = load i64, i64* @_gasrem, align 8 + %"$gascmp_645" = icmp ugt i64 1, %"$gasrem_644" + br i1 %"$gascmp_645", label %"$out_of_gas_646", label %"$have_gas_647" + +"$out_of_gas_646": ; preds = %"$have_gas_635" + call void @_out_of_gas() + br label %"$have_gas_647" + +"$have_gas_647": ; preds = %"$out_of_gas_646", %"$have_gas_635" + %"$consume_648" = sub i64 %"$gasrem_644", 1 + store i64 %"$consume_648", i64* @_gasrem, align 8 %n = alloca %Uint32, align 8 - %"$gasrem_658" = load i64, i64* @_gasrem, align 8 - %"$gascmp_659" = icmp ugt i64 1, %"$gasrem_658" - br i1 %"$gascmp_659", label %"$out_of_gas_660", label %"$have_gas_661" + %"$gasrem_649" = load i64, i64* @_gasrem, align 8 + %"$gascmp_650" = icmp ugt i64 1, %"$gasrem_649" + br i1 %"$gascmp_650", label %"$out_of_gas_651", label %"$have_gas_652" -"$out_of_gas_660": ; preds = %"$have_gas_656" +"$out_of_gas_651": ; preds = %"$have_gas_647" call void @_out_of_gas() - br label %"$have_gas_661" + br label %"$have_gas_652" -"$have_gas_661": ; preds = %"$out_of_gas_660", %"$have_gas_656" - %"$consume_662" = sub i64 %"$gasrem_658", 1 - store i64 %"$consume_662", i64* @_gasrem, align 8 +"$have_gas_652": ; preds = %"$out_of_gas_651", %"$have_gas_647" + %"$consume_653" = sub i64 %"$gasrem_649", 1 + store i64 %"$consume_653", i64* @_gasrem, align 8 %"$ll_6" = alloca %Uint32, align 8 - %"$ll_663" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8 - %"$ll_fptr_664" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_663", 0 - %"$ll_envptr_665" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_663", 1 - %"$ll_call_666" = call %Uint32 %"$ll_fptr_664"(i8* %"$ll_envptr_665", %TName_List_String* %1) - store %Uint32 %"$ll_call_666", %Uint32* %"$ll_6", align 4 - %"$$ll_6_667" = load %Uint32, %Uint32* %"$ll_6", align 4 - store %Uint32 %"$$ll_6_667", %Uint32* %n, align 4 - %"$gasrem_668" = load i64, i64* @_gasrem, align 8 - %"$gascmp_669" = icmp ugt i64 1, %"$gasrem_668" - br i1 %"$gascmp_669", label %"$out_of_gas_670", label %"$have_gas_671" - -"$out_of_gas_670": ; preds = %"$have_gas_661" - call void @_out_of_gas() - br label %"$have_gas_671" - -"$have_gas_671": ; preds = %"$out_of_gas_670", %"$have_gas_661" - %"$consume_672" = sub i64 %"$gasrem_668", 1 - store i64 %"$consume_672", i64* @_gasrem, align 8 + %"$ll_654" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %ll, align 8 + %"$ll_fptr_655" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_654", 0 + %"$ll_envptr_656" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$ll_654", 1 + %"$ll_call_657" = call %Uint32 %"$ll_fptr_655"(i8* %"$ll_envptr_656", %TName_List_String* %1) + store %Uint32 %"$ll_call_657", %Uint32* %"$ll_6", align 4 + %"$$ll_6_658" = load %Uint32, %Uint32* %"$ll_6", align 4 + store %Uint32 %"$$ll_6_658", %Uint32* %n, align 4 + %"$gasrem_659" = load i64, i64* @_gasrem, align 8 + %"$gascmp_660" = icmp ugt i64 1, %"$gasrem_659" + br i1 %"$gascmp_660", label %"$out_of_gas_661", label %"$have_gas_662" + +"$out_of_gas_661": ; preds = %"$have_gas_652" + call void @_out_of_gas() + br label %"$have_gas_662" + +"$have_gas_662": ; preds = %"$out_of_gas_661", %"$have_gas_652" + %"$consume_663" = sub i64 %"$gasrem_659", 1 + store i64 %"$consume_663", i64* @_gasrem, align 8 %two = alloca %Uint32, align 8 - %"$gasrem_673" = load i64, i64* @_gasrem, align 8 - %"$gascmp_674" = icmp ugt i64 1, %"$gasrem_673" - br i1 %"$gascmp_674", label %"$out_of_gas_675", label %"$have_gas_676" + %"$gasrem_664" = load i64, i64* @_gasrem, align 8 + %"$gascmp_665" = icmp ugt i64 1, %"$gasrem_664" + br i1 %"$gascmp_665", label %"$out_of_gas_666", label %"$have_gas_667" -"$out_of_gas_675": ; preds = %"$have_gas_671" +"$out_of_gas_666": ; preds = %"$have_gas_662" call void @_out_of_gas() - br label %"$have_gas_676" + br label %"$have_gas_667" -"$have_gas_676": ; preds = %"$out_of_gas_675", %"$have_gas_671" - %"$consume_677" = sub i64 %"$gasrem_673", 1 - store i64 %"$consume_677", i64* @_gasrem, align 8 +"$have_gas_667": ; preds = %"$out_of_gas_666", %"$have_gas_662" + %"$consume_668" = sub i64 %"$gasrem_664", 1 + store i64 %"$consume_668", i64* @_gasrem, align 8 store %Uint32 { i32 2 }, %Uint32* %two, align 4 - %"$gasrem_678" = load i64, i64* @_gasrem, align 8 - %"$gascmp_679" = icmp ugt i64 4, %"$gasrem_678" - br i1 %"$gascmp_679", label %"$out_of_gas_680", label %"$have_gas_681" - -"$out_of_gas_680": ; preds = %"$have_gas_676" - call void @_out_of_gas() - br label %"$have_gas_681" - -"$have_gas_681": ; preds = %"$out_of_gas_680", %"$have_gas_676" - %"$consume_682" = sub i64 %"$gasrem_678", 4 - store i64 %"$consume_682", i64* @_gasrem, align 8 - %"$n_683" = load %Uint32, %Uint32* %n, align 4 - %"$two_684" = load %Uint32, %Uint32* %two, align 4 - %"$add_call_685" = call %Uint32 @_add_Uint32(%Uint32 %"$n_683", %Uint32 %"$two_684") - store %Uint32 %"$add_call_685", %Uint32* %"$retval_48", align 4 - %"$$retval_48_686" = load %Uint32, %Uint32* %"$retval_48", align 4 - ret %Uint32 %"$$retval_48_686" + %"$gasrem_669" = load i64, i64* @_gasrem, align 8 + %"$gascmp_670" = icmp ugt i64 4, %"$gasrem_669" + br i1 %"$gascmp_670", label %"$out_of_gas_671", label %"$have_gas_672" + +"$out_of_gas_671": ; preds = %"$have_gas_667" + call void @_out_of_gas() + br label %"$have_gas_672" + +"$have_gas_672": ; preds = %"$out_of_gas_671", %"$have_gas_667" + %"$consume_673" = sub i64 %"$gasrem_669", 4 + store i64 %"$consume_673", i64* @_gasrem, align 8 + %"$n_674" = load %Uint32, %Uint32* %n, align 4 + %"$two_675" = load %Uint32, %Uint32* %two, align 4 + %"$add_call_676" = call %Uint32 @_add_Uint32(%Uint32 %"$n_674", %Uint32 %"$two_675") + store %Uint32 %"$add_call_676", %Uint32* %"$retval_45", align 4 + %"$$retval_45_677" = load %Uint32, %Uint32* %"$retval_45", align 4 + ret %Uint32 %"$$retval_45_677" } -define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_45"(%"$$fundef_45_env_138"* %0) { +define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_42"(%"$$fundef_42_env_129"* %0) { entry: - %"$$fundef_45_env_ListUtils.list_length_620" = getelementptr inbounds %"$$fundef_45_env_138", %"$$fundef_45_env_138"* %0, i32 0, i32 0 - %"$ListUtils.list_length_envload_621" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_45_env_ListUtils.list_length_620", align 8 + %"$$fundef_42_env_ListUtils.list_length_611" = getelementptr inbounds %"$$fundef_42_env_129", %"$$fundef_42_env_129"* %0, i32 0, i32 0 + %"$ListUtils.list_length_envload_612" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_42_env_ListUtils.list_length_611", align 8 %ListUtils.list_length = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_envload_621", { i8*, i8* }** %ListUtils.list_length, align 8 - %"$retval_46" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$gasrem_622" = load i64, i64* @_gasrem, align 8 - %"$gascmp_623" = icmp ugt i64 1, %"$gasrem_622" - br i1 %"$gascmp_623", label %"$out_of_gas_624", label %"$have_gas_625" - -"$out_of_gas_624": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_625" - -"$have_gas_625": ; preds = %"$out_of_gas_624", %entry - %"$consume_626" = sub i64 %"$gasrem_622", 1 - store i64 %"$consume_626", i64* @_gasrem, align 8 - %"$$fundef_47_envp_627_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_47_envp_627_salloc" = call i8* @_salloc(i8* %"$$fundef_47_envp_627_load", i64 8) - %"$$fundef_47_envp_627" = bitcast i8* %"$$fundef_47_envp_627_salloc" to %"$$fundef_47_env_137"* - %"$$fundef_47_env_voidp_629" = bitcast %"$$fundef_47_env_137"* %"$$fundef_47_envp_627" to i8* - %"$$fundef_47_cloval_630" = insertvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } { %Uint32 (i8*, %TName_List_String*)* bitcast (%Uint32 (%"$$fundef_47_env_137"*, %TName_List_String*)* @"$fundef_47" to %Uint32 (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_47_env_voidp_629", 1 - %"$$fundef_47_env_ListUtils.list_length_631" = getelementptr inbounds %"$$fundef_47_env_137", %"$$fundef_47_env_137"* %"$$fundef_47_envp_627", i32 0, i32 0 - %"$ListUtils.list_length_632" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_632", { i8*, i8* }** %"$$fundef_47_env_ListUtils.list_length_631", align 8 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_47_cloval_630", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_46", align 8 - %"$$retval_46_633" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_46", align 8 - ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_46_633" + store { i8*, i8* }* %"$ListUtils.list_length_envload_612", { i8*, i8* }** %ListUtils.list_length, align 8 + %"$retval_43" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 + %"$gasrem_613" = load i64, i64* @_gasrem, align 8 + %"$gascmp_614" = icmp ugt i64 1, %"$gasrem_613" + br i1 %"$gascmp_614", label %"$out_of_gas_615", label %"$have_gas_616" + +"$out_of_gas_615": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_616" + +"$have_gas_616": ; preds = %"$out_of_gas_615", %entry + %"$consume_617" = sub i64 %"$gasrem_613", 1 + store i64 %"$consume_617", i64* @_gasrem, align 8 + %"$$fundef_44_envp_618_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_44_envp_618_salloc" = call i8* @_salloc(i8* %"$$fundef_44_envp_618_load", i64 8) + %"$$fundef_44_envp_618" = bitcast i8* %"$$fundef_44_envp_618_salloc" to %"$$fundef_44_env_128"* + %"$$fundef_44_env_voidp_620" = bitcast %"$$fundef_44_env_128"* %"$$fundef_44_envp_618" to i8* + %"$$fundef_44_cloval_621" = insertvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } { %Uint32 (i8*, %TName_List_String*)* bitcast (%Uint32 (%"$$fundef_44_env_128"*, %TName_List_String*)* @"$fundef_44" to %Uint32 (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_44_env_voidp_620", 1 + %"$$fundef_44_env_ListUtils.list_length_622" = getelementptr inbounds %"$$fundef_44_env_128", %"$$fundef_44_env_128"* %"$$fundef_44_envp_618", i32 0, i32 0 + %"$ListUtils.list_length_623" = load { i8*, i8* }*, { i8*, i8* }** %ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_623", { i8*, i8* }** %"$$fundef_44_env_ListUtils.list_length_622", align 8 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_44_cloval_621", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_43", align 8 + %"$$retval_43_624" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_43", align 8 + ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_43_624" } -define internal %Uint32 @"$fundef_42"(%"$$fundef_42_env_139"* %0, [20 x i8]* %1) { +define internal %Uint32 @"$fundef_39"(%"$$fundef_39_env_130"* %0, [20 x i8]* %1) { entry: %h = load [20 x i8], [20 x i8]* %1, align 1 - %"$$fundef_42_env_one_607" = getelementptr inbounds %"$$fundef_42_env_139", %"$$fundef_42_env_139"* %0, i32 0, i32 0 - %"$one_envload_608" = load %Uint32, %Uint32* %"$$fundef_42_env_one_607", align 4 + %"$$fundef_39_env_one_598" = getelementptr inbounds %"$$fundef_39_env_130", %"$$fundef_39_env_130"* %0, i32 0, i32 0 + %"$one_envload_599" = load %Uint32, %Uint32* %"$$fundef_39_env_one_598", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_608", %Uint32* %one, align 4 - %"$$fundef_42_env_z_609" = getelementptr inbounds %"$$fundef_42_env_139", %"$$fundef_42_env_139"* %0, i32 0, i32 1 - %"$z_envload_610" = load %Uint32, %Uint32* %"$$fundef_42_env_z_609", align 4 + store %Uint32 %"$one_envload_599", %Uint32* %one, align 4 + %"$$fundef_39_env_z_600" = getelementptr inbounds %"$$fundef_39_env_130", %"$$fundef_39_env_130"* %0, i32 0, i32 1 + %"$z_envload_601" = load %Uint32, %Uint32* %"$$fundef_39_env_z_600", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_610", %Uint32* %z, align 4 - %"$retval_43" = alloca %Uint32, align 8 - %"$gasrem_611" = load i64, i64* @_gasrem, align 8 - %"$gascmp_612" = icmp ugt i64 4, %"$gasrem_611" - br i1 %"$gascmp_612", label %"$out_of_gas_613", label %"$have_gas_614" - -"$out_of_gas_613": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_614" - -"$have_gas_614": ; preds = %"$out_of_gas_613", %entry - %"$consume_615" = sub i64 %"$gasrem_611", 4 - store i64 %"$consume_615", i64* @_gasrem, align 8 - %"$one_616" = load %Uint32, %Uint32* %one, align 4 - %"$z_617" = load %Uint32, %Uint32* %z, align 4 - %"$add_call_618" = call %Uint32 @_add_Uint32(%Uint32 %"$one_616", %Uint32 %"$z_617") - store %Uint32 %"$add_call_618", %Uint32* %"$retval_43", align 4 - %"$$retval_43_619" = load %Uint32, %Uint32* %"$retval_43", align 4 - ret %Uint32 %"$$retval_43_619" + store %Uint32 %"$z_envload_601", %Uint32* %z, align 4 + %"$retval_40" = alloca %Uint32, align 8 + %"$gasrem_602" = load i64, i64* @_gasrem, align 8 + %"$gascmp_603" = icmp ugt i64 4, %"$gasrem_602" + br i1 %"$gascmp_603", label %"$out_of_gas_604", label %"$have_gas_605" + +"$out_of_gas_604": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_605" + +"$have_gas_605": ; preds = %"$out_of_gas_604", %entry + %"$consume_606" = sub i64 %"$gasrem_602", 4 + store i64 %"$consume_606", i64* @_gasrem, align 8 + %"$one_607" = load %Uint32, %Uint32* %one, align 4 + %"$z_608" = load %Uint32, %Uint32* %z, align 4 + %"$add_call_609" = call %Uint32 @_add_Uint32(%Uint32 %"$one_607", %Uint32 %"$z_608") + store %Uint32 %"$add_call_609", %Uint32* %"$retval_40", align 4 + %"$$retval_40_610" = load %Uint32, %Uint32* %"$retval_40", align 4 + ret %Uint32 %"$$retval_40_610" } -define internal { %Uint32 (i8*, [20 x i8]*)*, i8* } @"$fundef_40"(%"$$fundef_40_env_140"* %0, %Uint32 %1) { +define internal { %Uint32 (i8*, [20 x i8]*)*, i8* } @"$fundef_37"(%"$$fundef_37_env_131"* %0, %Uint32 %1) { entry: - %"$$fundef_40_env_one_592" = getelementptr inbounds %"$$fundef_40_env_140", %"$$fundef_40_env_140"* %0, i32 0, i32 0 - %"$one_envload_593" = load %Uint32, %Uint32* %"$$fundef_40_env_one_592", align 4 + %"$$fundef_37_env_one_583" = getelementptr inbounds %"$$fundef_37_env_131", %"$$fundef_37_env_131"* %0, i32 0, i32 0 + %"$one_envload_584" = load %Uint32, %Uint32* %"$$fundef_37_env_one_583", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_593", %Uint32* %one, align 4 - %"$retval_41" = alloca { %Uint32 (i8*, [20 x i8]*)*, i8* }, align 8 - %"$gasrem_594" = load i64, i64* @_gasrem, align 8 - %"$gascmp_595" = icmp ugt i64 1, %"$gasrem_594" - br i1 %"$gascmp_595", label %"$out_of_gas_596", label %"$have_gas_597" - -"$out_of_gas_596": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_597" - -"$have_gas_597": ; preds = %"$out_of_gas_596", %entry - %"$consume_598" = sub i64 %"$gasrem_594", 1 - store i64 %"$consume_598", i64* @_gasrem, align 8 - %"$$fundef_42_envp_599_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_42_envp_599_salloc" = call i8* @_salloc(i8* %"$$fundef_42_envp_599_load", i64 8) - %"$$fundef_42_envp_599" = bitcast i8* %"$$fundef_42_envp_599_salloc" to %"$$fundef_42_env_139"* - %"$$fundef_42_env_voidp_601" = bitcast %"$$fundef_42_env_139"* %"$$fundef_42_envp_599" to i8* - %"$$fundef_42_cloval_602" = insertvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } { %Uint32 (i8*, [20 x i8]*)* bitcast (%Uint32 (%"$$fundef_42_env_139"*, [20 x i8]*)* @"$fundef_42" to %Uint32 (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_42_env_voidp_601", 1 - %"$$fundef_42_env_one_603" = getelementptr inbounds %"$$fundef_42_env_139", %"$$fundef_42_env_139"* %"$$fundef_42_envp_599", i32 0, i32 0 - %"$one_604" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_604", %Uint32* %"$$fundef_42_env_one_603", align 4 - %"$$fundef_42_env_z_605" = getelementptr inbounds %"$$fundef_42_env_139", %"$$fundef_42_env_139"* %"$$fundef_42_envp_599", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_42_env_z_605", align 4 - store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$fundef_42_cloval_602", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_41", align 8 - %"$$retval_41_606" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_41", align 8 - ret { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$retval_41_606" + store %Uint32 %"$one_envload_584", %Uint32* %one, align 4 + %"$retval_38" = alloca { %Uint32 (i8*, [20 x i8]*)*, i8* }, align 8 + %"$gasrem_585" = load i64, i64* @_gasrem, align 8 + %"$gascmp_586" = icmp ugt i64 1, %"$gasrem_585" + br i1 %"$gascmp_586", label %"$out_of_gas_587", label %"$have_gas_588" + +"$out_of_gas_587": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_588" + +"$have_gas_588": ; preds = %"$out_of_gas_587", %entry + %"$consume_589" = sub i64 %"$gasrem_585", 1 + store i64 %"$consume_589", i64* @_gasrem, align 8 + %"$$fundef_39_envp_590_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_39_envp_590_salloc" = call i8* @_salloc(i8* %"$$fundef_39_envp_590_load", i64 8) + %"$$fundef_39_envp_590" = bitcast i8* %"$$fundef_39_envp_590_salloc" to %"$$fundef_39_env_130"* + %"$$fundef_39_env_voidp_592" = bitcast %"$$fundef_39_env_130"* %"$$fundef_39_envp_590" to i8* + %"$$fundef_39_cloval_593" = insertvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } { %Uint32 (i8*, [20 x i8]*)* bitcast (%Uint32 (%"$$fundef_39_env_130"*, [20 x i8]*)* @"$fundef_39" to %Uint32 (i8*, [20 x i8]*)*), i8* undef }, i8* %"$$fundef_39_env_voidp_592", 1 + %"$$fundef_39_env_one_594" = getelementptr inbounds %"$$fundef_39_env_130", %"$$fundef_39_env_130"* %"$$fundef_39_envp_590", i32 0, i32 0 + %"$one_595" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_595", %Uint32* %"$$fundef_39_env_one_594", align 4 + %"$$fundef_39_env_z_596" = getelementptr inbounds %"$$fundef_39_env_130", %"$$fundef_39_env_130"* %"$$fundef_39_envp_590", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_39_env_z_596", align 4 + store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$fundef_39_cloval_593", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_38", align 8 + %"$$retval_38_597" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$retval_38", align 8 + ret { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$retval_38_597" } -define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_38"(%"$$fundef_38_env_141"* %0) { +define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_35"(%"$$fundef_35_env_132"* %0) { entry: - %"$$fundef_38_env_list_foldl_514" = getelementptr inbounds %"$$fundef_38_env_141", %"$$fundef_38_env_141"* %0, i32 0, i32 0 - %"$list_foldl_envload_515" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_38_env_list_foldl_514", align 8 + %"$$fundef_35_env_list_foldl_505" = getelementptr inbounds %"$$fundef_35_env_132", %"$$fundef_35_env_132"* %0, i32 0, i32 0 + %"$list_foldl_envload_506" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_35_env_list_foldl_505", align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldl_envload_515", { i8*, i8* }** %list_foldl, align 8 - %"$retval_39" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_516" = load i64, i64* @_gasrem, align 8 - %"$gascmp_517" = icmp ugt i64 1, %"$gasrem_516" - br i1 %"$gascmp_517", label %"$out_of_gas_518", label %"$have_gas_519" + store { i8*, i8* }* %"$list_foldl_envload_506", { i8*, i8* }** %list_foldl, align 8 + %"$retval_36" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_507" = load i64, i64* @_gasrem, align 8 + %"$gascmp_508" = icmp ugt i64 1, %"$gasrem_507" + br i1 %"$gascmp_508", label %"$out_of_gas_509", label %"$have_gas_510" -"$out_of_gas_518": ; preds = %entry +"$out_of_gas_509": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_519" + br label %"$have_gas_510" -"$have_gas_519": ; preds = %"$out_of_gas_518", %entry - %"$consume_520" = sub i64 %"$gasrem_516", 1 - store i64 %"$consume_520", i64* @_gasrem, align 8 +"$have_gas_510": ; preds = %"$out_of_gas_509", %entry + %"$consume_511" = sub i64 %"$gasrem_507", 1 + store i64 %"$consume_511", i64* @_gasrem, align 8 %foldl = alloca { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_521" = load i64, i64* @_gasrem, align 8 - %"$gascmp_522" = icmp ugt i64 1, %"$gasrem_521" - br i1 %"$gascmp_522", label %"$out_of_gas_523", label %"$have_gas_524" - -"$out_of_gas_523": ; preds = %"$have_gas_519" - call void @_out_of_gas() - br label %"$have_gas_524" - -"$have_gas_524": ; preds = %"$out_of_gas_523", %"$have_gas_519" - %"$consume_525" = sub i64 %"$gasrem_521", 1 - store i64 %"$consume_525", i64* @_gasrem, align 8 - %"$list_foldl_526" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - %"$list_foldl_527" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_526", i32 2 - %"$list_foldl_528" = bitcast { i8*, i8* }* %"$list_foldl_527" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldl_529" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_528", align 8 - %"$list_foldl_fptr_530" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_529", 0 - %"$list_foldl_envptr_531" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_529", 1 - %"$list_foldl_call_532" = call { i8*, i8* }* %"$list_foldl_fptr_530"(i8* %"$list_foldl_envptr_531") - %"$list_foldl_533" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_532", i32 1 - %"$list_foldl_534" = bitcast { i8*, i8* }* %"$list_foldl_533" to { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldl_535" = load { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_534", align 8 - %"$list_foldl_fptr_536" = extractvalue { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_535", 0 - %"$list_foldl_envptr_537" = extractvalue { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_535", 1 - %"$list_foldl_call_538" = call { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_536"(i8* %"$list_foldl_envptr_537") - store { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_538", { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 - %"$gasrem_539" = load i64, i64* @_gasrem, align 8 - %"$gascmp_540" = icmp ugt i64 1, %"$gasrem_539" - br i1 %"$gascmp_540", label %"$out_of_gas_541", label %"$have_gas_542" - -"$out_of_gas_541": ; preds = %"$have_gas_524" - call void @_out_of_gas() - br label %"$have_gas_542" - -"$have_gas_542": ; preds = %"$out_of_gas_541", %"$have_gas_524" - %"$consume_543" = sub i64 %"$gasrem_539", 1 - store i64 %"$consume_543", i64* @_gasrem, align 8 + %"$gasrem_512" = load i64, i64* @_gasrem, align 8 + %"$gascmp_513" = icmp ugt i64 1, %"$gasrem_512" + br i1 %"$gascmp_513", label %"$out_of_gas_514", label %"$have_gas_515" + +"$out_of_gas_514": ; preds = %"$have_gas_510" + call void @_out_of_gas() + br label %"$have_gas_515" + +"$have_gas_515": ; preds = %"$out_of_gas_514", %"$have_gas_510" + %"$consume_516" = sub i64 %"$gasrem_512", 1 + store i64 %"$consume_516", i64* @_gasrem, align 8 + %"$list_foldl_517" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + %"$list_foldl_518" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_517", i32 2 + %"$list_foldl_519" = bitcast { i8*, i8* }* %"$list_foldl_518" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldl_520" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_519", align 8 + %"$list_foldl_fptr_521" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_520", 0 + %"$list_foldl_envptr_522" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_520", 1 + %"$list_foldl_call_523" = call { i8*, i8* }* %"$list_foldl_fptr_521"(i8* %"$list_foldl_envptr_522") + %"$list_foldl_524" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_523", i32 1 + %"$list_foldl_525" = bitcast { i8*, i8* }* %"$list_foldl_524" to { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldl_526" = load { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_525", align 8 + %"$list_foldl_fptr_527" = extractvalue { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_526", 0 + %"$list_foldl_envptr_528" = extractvalue { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_526", 1 + %"$list_foldl_call_529" = call { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_527"(i8* %"$list_foldl_envptr_528") + store { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_529", { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 + %"$gasrem_530" = load i64, i64* @_gasrem, align 8 + %"$gascmp_531" = icmp ugt i64 1, %"$gasrem_530" + br i1 %"$gascmp_531", label %"$out_of_gas_532", label %"$have_gas_533" + +"$out_of_gas_532": ; preds = %"$have_gas_515" + call void @_out_of_gas() + br label %"$have_gas_533" + +"$have_gas_533": ; preds = %"$out_of_gas_532", %"$have_gas_515" + %"$consume_534" = sub i64 %"$gasrem_530", 1 + store i64 %"$consume_534", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_544" = load i64, i64* @_gasrem, align 8 - %"$gascmp_545" = icmp ugt i64 1, %"$gasrem_544" - br i1 %"$gascmp_545", label %"$out_of_gas_546", label %"$have_gas_547" + %"$gasrem_535" = load i64, i64* @_gasrem, align 8 + %"$gascmp_536" = icmp ugt i64 1, %"$gasrem_535" + br i1 %"$gascmp_536", label %"$out_of_gas_537", label %"$have_gas_538" -"$out_of_gas_546": ; preds = %"$have_gas_542" +"$out_of_gas_537": ; preds = %"$have_gas_533" call void @_out_of_gas() - br label %"$have_gas_547" + br label %"$have_gas_538" -"$have_gas_547": ; preds = %"$out_of_gas_546", %"$have_gas_542" - %"$consume_548" = sub i64 %"$gasrem_544", 1 - store i64 %"$consume_548", i64* @_gasrem, align 8 +"$have_gas_538": ; preds = %"$out_of_gas_537", %"$have_gas_533" + %"$consume_539" = sub i64 %"$gasrem_535", 1 + store i64 %"$consume_539", i64* @_gasrem, align 8 store %Uint32 { i32 1 }, %Uint32* %one, align 4 - %"$gasrem_549" = load i64, i64* @_gasrem, align 8 - %"$gascmp_550" = icmp ugt i64 1, %"$gasrem_549" - br i1 %"$gascmp_550", label %"$out_of_gas_551", label %"$have_gas_552" + %"$gasrem_540" = load i64, i64* @_gasrem, align 8 + %"$gascmp_541" = icmp ugt i64 1, %"$gasrem_540" + br i1 %"$gascmp_541", label %"$out_of_gas_542", label %"$have_gas_543" -"$out_of_gas_551": ; preds = %"$have_gas_547" +"$out_of_gas_542": ; preds = %"$have_gas_538" call void @_out_of_gas() - br label %"$have_gas_552" + br label %"$have_gas_543" -"$have_gas_552": ; preds = %"$out_of_gas_551", %"$have_gas_547" - %"$consume_553" = sub i64 %"$gasrem_549", 1 - store i64 %"$consume_553", i64* @_gasrem, align 8 +"$have_gas_543": ; preds = %"$out_of_gas_542", %"$have_gas_538" + %"$consume_544" = sub i64 %"$gasrem_540", 1 + store i64 %"$consume_544", i64* @_gasrem, align 8 %iter = alloca { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_554" = load i64, i64* @_gasrem, align 8 - %"$gascmp_555" = icmp ugt i64 1, %"$gasrem_554" - br i1 %"$gascmp_555", label %"$out_of_gas_556", label %"$have_gas_557" - -"$out_of_gas_556": ; preds = %"$have_gas_552" - call void @_out_of_gas() - br label %"$have_gas_557" - -"$have_gas_557": ; preds = %"$out_of_gas_556", %"$have_gas_552" - %"$consume_558" = sub i64 %"$gasrem_554", 1 - store i64 %"$consume_558", i64* @_gasrem, align 8 - %"$$fundef_40_envp_559_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_40_envp_559_salloc" = call i8* @_salloc(i8* %"$$fundef_40_envp_559_load", i64 4) - %"$$fundef_40_envp_559" = bitcast i8* %"$$fundef_40_envp_559_salloc" to %"$$fundef_40_env_140"* - %"$$fundef_40_env_voidp_561" = bitcast %"$$fundef_40_env_140"* %"$$fundef_40_envp_559" to i8* - %"$$fundef_40_cloval_562" = insertvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, [20 x i8]*)*, i8* } (%"$$fundef_40_env_140"*, %Uint32)* @"$fundef_40" to { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_40_env_voidp_561", 1 - %"$$fundef_40_env_one_563" = getelementptr inbounds %"$$fundef_40_env_140", %"$$fundef_40_env_140"* %"$$fundef_40_envp_559", i32 0, i32 0 - %"$one_564" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_564", %Uint32* %"$$fundef_40_env_one_563", align 4 - store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_40_cloval_562", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$gasrem_565" = load i64, i64* @_gasrem, align 8 - %"$gascmp_566" = icmp ugt i64 1, %"$gasrem_565" - br i1 %"$gascmp_566", label %"$out_of_gas_567", label %"$have_gas_568" - -"$out_of_gas_567": ; preds = %"$have_gas_557" - call void @_out_of_gas() - br label %"$have_gas_568" - -"$have_gas_568": ; preds = %"$out_of_gas_567", %"$have_gas_557" - %"$consume_569" = sub i64 %"$gasrem_565", 1 - store i64 %"$consume_569", i64* @_gasrem, align 8 + %"$gasrem_545" = load i64, i64* @_gasrem, align 8 + %"$gascmp_546" = icmp ugt i64 1, %"$gasrem_545" + br i1 %"$gascmp_546", label %"$out_of_gas_547", label %"$have_gas_548" + +"$out_of_gas_547": ; preds = %"$have_gas_543" + call void @_out_of_gas() + br label %"$have_gas_548" + +"$have_gas_548": ; preds = %"$out_of_gas_547", %"$have_gas_543" + %"$consume_549" = sub i64 %"$gasrem_545", 1 + store i64 %"$consume_549", i64* @_gasrem, align 8 + %"$$fundef_37_envp_550_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_37_envp_550_salloc" = call i8* @_salloc(i8* %"$$fundef_37_envp_550_load", i64 4) + %"$$fundef_37_envp_550" = bitcast i8* %"$$fundef_37_envp_550_salloc" to %"$$fundef_37_env_131"* + %"$$fundef_37_env_voidp_552" = bitcast %"$$fundef_37_env_131"* %"$$fundef_37_envp_550" to i8* + %"$$fundef_37_cloval_553" = insertvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, [20 x i8]*)*, i8* } (%"$$fundef_37_env_131"*, %Uint32)* @"$fundef_37" to { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_37_env_voidp_552", 1 + %"$$fundef_37_env_one_554" = getelementptr inbounds %"$$fundef_37_env_131", %"$$fundef_37_env_131"* %"$$fundef_37_envp_550", i32 0, i32 0 + %"$one_555" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_555", %Uint32* %"$$fundef_37_env_one_554", align 4 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_37_cloval_553", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$gasrem_556" = load i64, i64* @_gasrem, align 8 + %"$gascmp_557" = icmp ugt i64 1, %"$gasrem_556" + br i1 %"$gascmp_557", label %"$out_of_gas_558", label %"$have_gas_559" + +"$out_of_gas_558": ; preds = %"$have_gas_548" + call void @_out_of_gas() + br label %"$have_gas_559" + +"$have_gas_559": ; preds = %"$out_of_gas_558", %"$have_gas_548" + %"$consume_560" = sub i64 %"$gasrem_556", 1 + store i64 %"$consume_560", i64* @_gasrem, align 8 %init = alloca %Uint32, align 8 - %"$gasrem_570" = load i64, i64* @_gasrem, align 8 - %"$gascmp_571" = icmp ugt i64 1, %"$gasrem_570" - br i1 %"$gascmp_571", label %"$out_of_gas_572", label %"$have_gas_573" + %"$gasrem_561" = load i64, i64* @_gasrem, align 8 + %"$gascmp_562" = icmp ugt i64 1, %"$gasrem_561" + br i1 %"$gascmp_562", label %"$out_of_gas_563", label %"$have_gas_564" -"$out_of_gas_572": ; preds = %"$have_gas_568" +"$out_of_gas_563": ; preds = %"$have_gas_559" call void @_out_of_gas() - br label %"$have_gas_573" + br label %"$have_gas_564" -"$have_gas_573": ; preds = %"$out_of_gas_572", %"$have_gas_568" - %"$consume_574" = sub i64 %"$gasrem_570", 1 - store i64 %"$consume_574", i64* @_gasrem, align 8 +"$have_gas_564": ; preds = %"$out_of_gas_563", %"$have_gas_559" + %"$consume_565" = sub i64 %"$gasrem_561", 1 + store i64 %"$consume_565", i64* @_gasrem, align 8 store %Uint32 zeroinitializer, %Uint32* %init, align 4 - %"$gasrem_575" = load i64, i64* @_gasrem, align 8 - %"$gascmp_576" = icmp ugt i64 1, %"$gasrem_575" - br i1 %"$gascmp_576", label %"$out_of_gas_577", label %"$have_gas_578" + %"$gasrem_566" = load i64, i64* @_gasrem, align 8 + %"$gascmp_567" = icmp ugt i64 1, %"$gasrem_566" + br i1 %"$gascmp_567", label %"$out_of_gas_568", label %"$have_gas_569" -"$out_of_gas_577": ; preds = %"$have_gas_573" +"$out_of_gas_568": ; preds = %"$have_gas_564" call void @_out_of_gas() - br label %"$have_gas_578" + br label %"$have_gas_569" -"$have_gas_578": ; preds = %"$out_of_gas_577", %"$have_gas_573" - %"$consume_579" = sub i64 %"$gasrem_575", 1 - store i64 %"$consume_579", i64* @_gasrem, align 8 +"$have_gas_569": ; preds = %"$out_of_gas_568", %"$have_gas_564" + %"$consume_570" = sub i64 %"$gasrem_566", 1 + store i64 %"$consume_570", i64* @_gasrem, align 8 %"$foldl_4" = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$foldl_580" = load { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 - %"$foldl_fptr_581" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_580", 0 - %"$foldl_envptr_582" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_580", 1 - %"$iter_583" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$foldl_call_584" = call { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_581"(i8* %"$foldl_envptr_582", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_583") - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_584", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 + %"$foldl_571" = load { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 + %"$foldl_fptr_572" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_571", 0 + %"$foldl_envptr_573" = extractvalue { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_571", 1 + %"$iter_574" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$foldl_call_575" = call { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_572"(i8* %"$foldl_envptr_573", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_574") + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_575", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 %"$foldl_5" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$$foldl_4_585" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 - %"$$foldl_4_fptr_586" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_585", 0 - %"$$foldl_4_envptr_587" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_585", 1 - %"$init_588" = load %Uint32, %Uint32* %init, align 4 - %"$$foldl_4_call_589" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_4_fptr_586"(i8* %"$$foldl_4_envptr_587", %Uint32 %"$init_588") - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_4_call_589", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_5", align 8 - %"$$foldl_5_590" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_5", align 8 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_5_590", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_39", align 8 - %"$$retval_39_591" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_39", align 8 - ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_39_591" + %"$$foldl_4_576" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 + %"$$foldl_4_fptr_577" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_576", 0 + %"$$foldl_4_envptr_578" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_576", 1 + %"$init_579" = load %Uint32, %Uint32* %init, align 4 + %"$$foldl_4_call_580" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_4_fptr_577"(i8* %"$$foldl_4_envptr_578", %Uint32 %"$init_579") + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_4_call_580", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_5", align 8 + %"$$foldl_5_581" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$foldl_5", align 8 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$foldl_5_581", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_36", align 8 + %"$$retval_36_582" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_36", align 8 + ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_36_582" } -define internal %Uint32 @"$fundef_36"(%"$$fundef_36_env_142"* %0, %String %1) { +define internal %Uint32 @"$fundef_33"(%"$$fundef_33_env_133"* %0, %String %1) { entry: - %"$$fundef_36_env_one_501" = getelementptr inbounds %"$$fundef_36_env_142", %"$$fundef_36_env_142"* %0, i32 0, i32 0 - %"$one_envload_502" = load %Uint32, %Uint32* %"$$fundef_36_env_one_501", align 4 + %"$$fundef_33_env_one_492" = getelementptr inbounds %"$$fundef_33_env_133", %"$$fundef_33_env_133"* %0, i32 0, i32 0 + %"$one_envload_493" = load %Uint32, %Uint32* %"$$fundef_33_env_one_492", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_502", %Uint32* %one, align 4 - %"$$fundef_36_env_z_503" = getelementptr inbounds %"$$fundef_36_env_142", %"$$fundef_36_env_142"* %0, i32 0, i32 1 - %"$z_envload_504" = load %Uint32, %Uint32* %"$$fundef_36_env_z_503", align 4 + store %Uint32 %"$one_envload_493", %Uint32* %one, align 4 + %"$$fundef_33_env_z_494" = getelementptr inbounds %"$$fundef_33_env_133", %"$$fundef_33_env_133"* %0, i32 0, i32 1 + %"$z_envload_495" = load %Uint32, %Uint32* %"$$fundef_33_env_z_494", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_504", %Uint32* %z, align 4 - %"$retval_37" = alloca %Uint32, align 8 - %"$gasrem_505" = load i64, i64* @_gasrem, align 8 - %"$gascmp_506" = icmp ugt i64 4, %"$gasrem_505" - br i1 %"$gascmp_506", label %"$out_of_gas_507", label %"$have_gas_508" - -"$out_of_gas_507": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_508" - -"$have_gas_508": ; preds = %"$out_of_gas_507", %entry - %"$consume_509" = sub i64 %"$gasrem_505", 4 - store i64 %"$consume_509", i64* @_gasrem, align 8 - %"$one_510" = load %Uint32, %Uint32* %one, align 4 - %"$z_511" = load %Uint32, %Uint32* %z, align 4 - %"$add_call_512" = call %Uint32 @_add_Uint32(%Uint32 %"$one_510", %Uint32 %"$z_511") - store %Uint32 %"$add_call_512", %Uint32* %"$retval_37", align 4 - %"$$retval_37_513" = load %Uint32, %Uint32* %"$retval_37", align 4 - ret %Uint32 %"$$retval_37_513" + store %Uint32 %"$z_envload_495", %Uint32* %z, align 4 + %"$retval_34" = alloca %Uint32, align 8 + %"$gasrem_496" = load i64, i64* @_gasrem, align 8 + %"$gascmp_497" = icmp ugt i64 4, %"$gasrem_496" + br i1 %"$gascmp_497", label %"$out_of_gas_498", label %"$have_gas_499" + +"$out_of_gas_498": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_499" + +"$have_gas_499": ; preds = %"$out_of_gas_498", %entry + %"$consume_500" = sub i64 %"$gasrem_496", 4 + store i64 %"$consume_500", i64* @_gasrem, align 8 + %"$one_501" = load %Uint32, %Uint32* %one, align 4 + %"$z_502" = load %Uint32, %Uint32* %z, align 4 + %"$add_call_503" = call %Uint32 @_add_Uint32(%Uint32 %"$one_501", %Uint32 %"$z_502") + store %Uint32 %"$add_call_503", %Uint32* %"$retval_34", align 4 + %"$$retval_34_504" = load %Uint32, %Uint32* %"$retval_34", align 4 + ret %Uint32 %"$$retval_34_504" } -define internal { %Uint32 (i8*, %String)*, i8* } @"$fundef_34"(%"$$fundef_34_env_143"* %0, %Uint32 %1) { +define internal { %Uint32 (i8*, %String)*, i8* } @"$fundef_31"(%"$$fundef_31_env_134"* %0, %Uint32 %1) { entry: - %"$$fundef_34_env_one_486" = getelementptr inbounds %"$$fundef_34_env_143", %"$$fundef_34_env_143"* %0, i32 0, i32 0 - %"$one_envload_487" = load %Uint32, %Uint32* %"$$fundef_34_env_one_486", align 4 + %"$$fundef_31_env_one_477" = getelementptr inbounds %"$$fundef_31_env_134", %"$$fundef_31_env_134"* %0, i32 0, i32 0 + %"$one_envload_478" = load %Uint32, %Uint32* %"$$fundef_31_env_one_477", align 4 %one = alloca %Uint32, align 8 - store %Uint32 %"$one_envload_487", %Uint32* %one, align 4 - %"$retval_35" = alloca { %Uint32 (i8*, %String)*, i8* }, align 8 - %"$gasrem_488" = load i64, i64* @_gasrem, align 8 - %"$gascmp_489" = icmp ugt i64 1, %"$gasrem_488" - br i1 %"$gascmp_489", label %"$out_of_gas_490", label %"$have_gas_491" - -"$out_of_gas_490": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_491" - -"$have_gas_491": ; preds = %"$out_of_gas_490", %entry - %"$consume_492" = sub i64 %"$gasrem_488", 1 - store i64 %"$consume_492", i64* @_gasrem, align 8 - %"$$fundef_36_envp_493_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_36_envp_493_salloc" = call i8* @_salloc(i8* %"$$fundef_36_envp_493_load", i64 8) - %"$$fundef_36_envp_493" = bitcast i8* %"$$fundef_36_envp_493_salloc" to %"$$fundef_36_env_142"* - %"$$fundef_36_env_voidp_495" = bitcast %"$$fundef_36_env_142"* %"$$fundef_36_envp_493" to i8* - %"$$fundef_36_cloval_496" = insertvalue { %Uint32 (i8*, %String)*, i8* } { %Uint32 (i8*, %String)* bitcast (%Uint32 (%"$$fundef_36_env_142"*, %String)* @"$fundef_36" to %Uint32 (i8*, %String)*), i8* undef }, i8* %"$$fundef_36_env_voidp_495", 1 - %"$$fundef_36_env_one_497" = getelementptr inbounds %"$$fundef_36_env_142", %"$$fundef_36_env_142"* %"$$fundef_36_envp_493", i32 0, i32 0 - %"$one_498" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_498", %Uint32* %"$$fundef_36_env_one_497", align 4 - %"$$fundef_36_env_z_499" = getelementptr inbounds %"$$fundef_36_env_142", %"$$fundef_36_env_142"* %"$$fundef_36_envp_493", i32 0, i32 1 - store %Uint32 %1, %Uint32* %"$$fundef_36_env_z_499", align 4 - store { %Uint32 (i8*, %String)*, i8* } %"$$fundef_36_cloval_496", { %Uint32 (i8*, %String)*, i8* }* %"$retval_35", align 8 - %"$$retval_35_500" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$retval_35", align 8 - ret { %Uint32 (i8*, %String)*, i8* } %"$$retval_35_500" + store %Uint32 %"$one_envload_478", %Uint32* %one, align 4 + %"$retval_32" = alloca { %Uint32 (i8*, %String)*, i8* }, align 8 + %"$gasrem_479" = load i64, i64* @_gasrem, align 8 + %"$gascmp_480" = icmp ugt i64 1, %"$gasrem_479" + br i1 %"$gascmp_480", label %"$out_of_gas_481", label %"$have_gas_482" + +"$out_of_gas_481": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_482" + +"$have_gas_482": ; preds = %"$out_of_gas_481", %entry + %"$consume_483" = sub i64 %"$gasrem_479", 1 + store i64 %"$consume_483", i64* @_gasrem, align 8 + %"$$fundef_33_envp_484_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_33_envp_484_salloc" = call i8* @_salloc(i8* %"$$fundef_33_envp_484_load", i64 8) + %"$$fundef_33_envp_484" = bitcast i8* %"$$fundef_33_envp_484_salloc" to %"$$fundef_33_env_133"* + %"$$fundef_33_env_voidp_486" = bitcast %"$$fundef_33_env_133"* %"$$fundef_33_envp_484" to i8* + %"$$fundef_33_cloval_487" = insertvalue { %Uint32 (i8*, %String)*, i8* } { %Uint32 (i8*, %String)* bitcast (%Uint32 (%"$$fundef_33_env_133"*, %String)* @"$fundef_33" to %Uint32 (i8*, %String)*), i8* undef }, i8* %"$$fundef_33_env_voidp_486", 1 + %"$$fundef_33_env_one_488" = getelementptr inbounds %"$$fundef_33_env_133", %"$$fundef_33_env_133"* %"$$fundef_33_envp_484", i32 0, i32 0 + %"$one_489" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_489", %Uint32* %"$$fundef_33_env_one_488", align 4 + %"$$fundef_33_env_z_490" = getelementptr inbounds %"$$fundef_33_env_133", %"$$fundef_33_env_133"* %"$$fundef_33_envp_484", i32 0, i32 1 + store %Uint32 %1, %Uint32* %"$$fundef_33_env_z_490", align 4 + store { %Uint32 (i8*, %String)*, i8* } %"$$fundef_33_cloval_487", { %Uint32 (i8*, %String)*, i8* }* %"$retval_32", align 8 + %"$$retval_32_491" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$retval_32", align 8 + ret { %Uint32 (i8*, %String)*, i8* } %"$$retval_32_491" } -define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_32"(%"$$fundef_32_env_144"* %0) { +define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_29"(%"$$fundef_29_env_135"* %0) { entry: - %"$$fundef_32_env_list_foldl_408" = getelementptr inbounds %"$$fundef_32_env_144", %"$$fundef_32_env_144"* %0, i32 0, i32 0 - %"$list_foldl_envload_409" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_32_env_list_foldl_408", align 8 + %"$$fundef_29_env_list_foldl_399" = getelementptr inbounds %"$$fundef_29_env_135", %"$$fundef_29_env_135"* %0, i32 0, i32 0 + %"$list_foldl_envload_400" = load { i8*, i8* }*, { i8*, i8* }** %"$$fundef_29_env_list_foldl_399", align 8 %list_foldl = alloca { i8*, i8* }*, align 8 - store { i8*, i8* }* %"$list_foldl_envload_409", { i8*, i8* }** %list_foldl, align 8 - %"$retval_33" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$gasrem_410" = load i64, i64* @_gasrem, align 8 - %"$gascmp_411" = icmp ugt i64 1, %"$gasrem_410" - br i1 %"$gascmp_411", label %"$out_of_gas_412", label %"$have_gas_413" + store { i8*, i8* }* %"$list_foldl_envload_400", { i8*, i8* }** %list_foldl, align 8 + %"$retval_30" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 + %"$gasrem_401" = load i64, i64* @_gasrem, align 8 + %"$gascmp_402" = icmp ugt i64 1, %"$gasrem_401" + br i1 %"$gascmp_402", label %"$out_of_gas_403", label %"$have_gas_404" -"$out_of_gas_412": ; preds = %entry +"$out_of_gas_403": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_413" + br label %"$have_gas_404" -"$have_gas_413": ; preds = %"$out_of_gas_412", %entry - %"$consume_414" = sub i64 %"$gasrem_410", 1 - store i64 %"$consume_414", i64* @_gasrem, align 8 +"$have_gas_404": ; preds = %"$out_of_gas_403", %entry + %"$consume_405" = sub i64 %"$gasrem_401", 1 + store i64 %"$consume_405", i64* @_gasrem, align 8 %foldl = alloca { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 - %"$gasrem_415" = load i64, i64* @_gasrem, align 8 - %"$gascmp_416" = icmp ugt i64 1, %"$gasrem_415" - br i1 %"$gascmp_416", label %"$out_of_gas_417", label %"$have_gas_418" - -"$out_of_gas_417": ; preds = %"$have_gas_413" - call void @_out_of_gas() - br label %"$have_gas_418" - -"$have_gas_418": ; preds = %"$out_of_gas_417", %"$have_gas_413" - %"$consume_419" = sub i64 %"$gasrem_415", 1 - store i64 %"$consume_419", i64* @_gasrem, align 8 - %"$list_foldl_420" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 - %"$list_foldl_421" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_420", i32 0 - %"$list_foldl_422" = bitcast { i8*, i8* }* %"$list_foldl_421" to { { i8*, i8* }* (i8*)*, i8* }* - %"$list_foldl_423" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_422", align 8 - %"$list_foldl_fptr_424" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_423", 0 - %"$list_foldl_envptr_425" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_423", 1 - %"$list_foldl_call_426" = call { i8*, i8* }* %"$list_foldl_fptr_424"(i8* %"$list_foldl_envptr_425") - %"$list_foldl_427" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_426", i32 1 - %"$list_foldl_428" = bitcast { i8*, i8* }* %"$list_foldl_427" to { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - %"$list_foldl_429" = load { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_428", align 8 - %"$list_foldl_fptr_430" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_429", 0 - %"$list_foldl_envptr_431" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_429", 1 - %"$list_foldl_call_432" = call { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_430"(i8* %"$list_foldl_envptr_431") - store { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_432", { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 - %"$gasrem_433" = load i64, i64* @_gasrem, align 8 - %"$gascmp_434" = icmp ugt i64 1, %"$gasrem_433" - br i1 %"$gascmp_434", label %"$out_of_gas_435", label %"$have_gas_436" - -"$out_of_gas_435": ; preds = %"$have_gas_418" - call void @_out_of_gas() - br label %"$have_gas_436" - -"$have_gas_436": ; preds = %"$out_of_gas_435", %"$have_gas_418" - %"$consume_437" = sub i64 %"$gasrem_433", 1 - store i64 %"$consume_437", i64* @_gasrem, align 8 + %"$gasrem_406" = load i64, i64* @_gasrem, align 8 + %"$gascmp_407" = icmp ugt i64 1, %"$gasrem_406" + br i1 %"$gascmp_407", label %"$out_of_gas_408", label %"$have_gas_409" + +"$out_of_gas_408": ; preds = %"$have_gas_404" + call void @_out_of_gas() + br label %"$have_gas_409" + +"$have_gas_409": ; preds = %"$out_of_gas_408", %"$have_gas_404" + %"$consume_410" = sub i64 %"$gasrem_406", 1 + store i64 %"$consume_410", i64* @_gasrem, align 8 + %"$list_foldl_411" = load { i8*, i8* }*, { i8*, i8* }** %list_foldl, align 8 + %"$list_foldl_412" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_411", i32 0 + %"$list_foldl_413" = bitcast { i8*, i8* }* %"$list_foldl_412" to { { i8*, i8* }* (i8*)*, i8* }* + %"$list_foldl_414" = load { { i8*, i8* }* (i8*)*, i8* }, { { i8*, i8* }* (i8*)*, i8* }* %"$list_foldl_413", align 8 + %"$list_foldl_fptr_415" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_414", 0 + %"$list_foldl_envptr_416" = extractvalue { { i8*, i8* }* (i8*)*, i8* } %"$list_foldl_414", 1 + %"$list_foldl_call_417" = call { i8*, i8* }* %"$list_foldl_fptr_415"(i8* %"$list_foldl_envptr_416") + %"$list_foldl_418" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$list_foldl_call_417", i32 1 + %"$list_foldl_419" = bitcast { i8*, i8* }* %"$list_foldl_418" to { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + %"$list_foldl_420" = load { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }, { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$list_foldl_419", align 8 + %"$list_foldl_fptr_421" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_420", 0 + %"$list_foldl_envptr_422" = extractvalue { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } %"$list_foldl_420", 1 + %"$list_foldl_call_423" = call { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_fptr_421"(i8* %"$list_foldl_envptr_422") + store { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$list_foldl_call_423", { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 + %"$gasrem_424" = load i64, i64* @_gasrem, align 8 + %"$gascmp_425" = icmp ugt i64 1, %"$gasrem_424" + br i1 %"$gascmp_425", label %"$out_of_gas_426", label %"$have_gas_427" + +"$out_of_gas_426": ; preds = %"$have_gas_409" + call void @_out_of_gas() + br label %"$have_gas_427" + +"$have_gas_427": ; preds = %"$out_of_gas_426", %"$have_gas_409" + %"$consume_428" = sub i64 %"$gasrem_424", 1 + store i64 %"$consume_428", i64* @_gasrem, align 8 %one = alloca %Uint32, align 8 - %"$gasrem_438" = load i64, i64* @_gasrem, align 8 - %"$gascmp_439" = icmp ugt i64 1, %"$gasrem_438" - br i1 %"$gascmp_439", label %"$out_of_gas_440", label %"$have_gas_441" + %"$gasrem_429" = load i64, i64* @_gasrem, align 8 + %"$gascmp_430" = icmp ugt i64 1, %"$gasrem_429" + br i1 %"$gascmp_430", label %"$out_of_gas_431", label %"$have_gas_432" -"$out_of_gas_440": ; preds = %"$have_gas_436" +"$out_of_gas_431": ; preds = %"$have_gas_427" call void @_out_of_gas() - br label %"$have_gas_441" + br label %"$have_gas_432" -"$have_gas_441": ; preds = %"$out_of_gas_440", %"$have_gas_436" - %"$consume_442" = sub i64 %"$gasrem_438", 1 - store i64 %"$consume_442", i64* @_gasrem, align 8 +"$have_gas_432": ; preds = %"$out_of_gas_431", %"$have_gas_427" + %"$consume_433" = sub i64 %"$gasrem_429", 1 + store i64 %"$consume_433", i64* @_gasrem, align 8 store %Uint32 { i32 1 }, %Uint32* %one, align 4 - %"$gasrem_443" = load i64, i64* @_gasrem, align 8 - %"$gascmp_444" = icmp ugt i64 1, %"$gasrem_443" - br i1 %"$gascmp_444", label %"$out_of_gas_445", label %"$have_gas_446" + %"$gasrem_434" = load i64, i64* @_gasrem, align 8 + %"$gascmp_435" = icmp ugt i64 1, %"$gasrem_434" + br i1 %"$gascmp_435", label %"$out_of_gas_436", label %"$have_gas_437" -"$out_of_gas_445": ; preds = %"$have_gas_441" +"$out_of_gas_436": ; preds = %"$have_gas_432" call void @_out_of_gas() - br label %"$have_gas_446" + br label %"$have_gas_437" -"$have_gas_446": ; preds = %"$out_of_gas_445", %"$have_gas_441" - %"$consume_447" = sub i64 %"$gasrem_443", 1 - store i64 %"$consume_447", i64* @_gasrem, align 8 +"$have_gas_437": ; preds = %"$out_of_gas_436", %"$have_gas_432" + %"$consume_438" = sub i64 %"$gasrem_434", 1 + store i64 %"$consume_438", i64* @_gasrem, align 8 %iter = alloca { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_448" = load i64, i64* @_gasrem, align 8 - %"$gascmp_449" = icmp ugt i64 1, %"$gasrem_448" - br i1 %"$gascmp_449", label %"$out_of_gas_450", label %"$have_gas_451" - -"$out_of_gas_450": ; preds = %"$have_gas_446" - call void @_out_of_gas() - br label %"$have_gas_451" - -"$have_gas_451": ; preds = %"$out_of_gas_450", %"$have_gas_446" - %"$consume_452" = sub i64 %"$gasrem_448", 1 - store i64 %"$consume_452", i64* @_gasrem, align 8 - %"$$fundef_34_envp_453_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_34_envp_453_salloc" = call i8* @_salloc(i8* %"$$fundef_34_envp_453_load", i64 4) - %"$$fundef_34_envp_453" = bitcast i8* %"$$fundef_34_envp_453_salloc" to %"$$fundef_34_env_143"* - %"$$fundef_34_env_voidp_455" = bitcast %"$$fundef_34_env_143"* %"$$fundef_34_envp_453" to i8* - %"$$fundef_34_cloval_456" = insertvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %String)*, i8* } (%"$$fundef_34_env_143"*, %Uint32)* @"$fundef_34" to { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_34_env_voidp_455", 1 - %"$$fundef_34_env_one_457" = getelementptr inbounds %"$$fundef_34_env_143", %"$$fundef_34_env_143"* %"$$fundef_34_envp_453", i32 0, i32 0 - %"$one_458" = load %Uint32, %Uint32* %one, align 4 - store %Uint32 %"$one_458", %Uint32* %"$$fundef_34_env_one_457", align 4 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_34_cloval_456", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$gasrem_459" = load i64, i64* @_gasrem, align 8 - %"$gascmp_460" = icmp ugt i64 1, %"$gasrem_459" - br i1 %"$gascmp_460", label %"$out_of_gas_461", label %"$have_gas_462" - -"$out_of_gas_461": ; preds = %"$have_gas_451" - call void @_out_of_gas() - br label %"$have_gas_462" - -"$have_gas_462": ; preds = %"$out_of_gas_461", %"$have_gas_451" - %"$consume_463" = sub i64 %"$gasrem_459", 1 - store i64 %"$consume_463", i64* @_gasrem, align 8 + %"$gasrem_439" = load i64, i64* @_gasrem, align 8 + %"$gascmp_440" = icmp ugt i64 1, %"$gasrem_439" + br i1 %"$gascmp_440", label %"$out_of_gas_441", label %"$have_gas_442" + +"$out_of_gas_441": ; preds = %"$have_gas_437" + call void @_out_of_gas() + br label %"$have_gas_442" + +"$have_gas_442": ; preds = %"$out_of_gas_441", %"$have_gas_437" + %"$consume_443" = sub i64 %"$gasrem_439", 1 + store i64 %"$consume_443", i64* @_gasrem, align 8 + %"$$fundef_31_envp_444_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_31_envp_444_salloc" = call i8* @_salloc(i8* %"$$fundef_31_envp_444_load", i64 4) + %"$$fundef_31_envp_444" = bitcast i8* %"$$fundef_31_envp_444_salloc" to %"$$fundef_31_env_134"* + %"$$fundef_31_env_voidp_446" = bitcast %"$$fundef_31_env_134"* %"$$fundef_31_envp_444" to i8* + %"$$fundef_31_cloval_447" = insertvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %String)*, i8* } (%"$$fundef_31_env_134"*, %Uint32)* @"$fundef_31" to { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_31_env_voidp_446", 1 + %"$$fundef_31_env_one_448" = getelementptr inbounds %"$$fundef_31_env_134", %"$$fundef_31_env_134"* %"$$fundef_31_envp_444", i32 0, i32 0 + %"$one_449" = load %Uint32, %Uint32* %one, align 4 + store %Uint32 %"$one_449", %Uint32* %"$$fundef_31_env_one_448", align 4 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_31_cloval_447", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$gasrem_450" = load i64, i64* @_gasrem, align 8 + %"$gascmp_451" = icmp ugt i64 1, %"$gasrem_450" + br i1 %"$gascmp_451", label %"$out_of_gas_452", label %"$have_gas_453" + +"$out_of_gas_452": ; preds = %"$have_gas_442" + call void @_out_of_gas() + br label %"$have_gas_453" + +"$have_gas_453": ; preds = %"$out_of_gas_452", %"$have_gas_442" + %"$consume_454" = sub i64 %"$gasrem_450", 1 + store i64 %"$consume_454", i64* @_gasrem, align 8 %init = alloca %Uint32, align 8 - %"$gasrem_464" = load i64, i64* @_gasrem, align 8 - %"$gascmp_465" = icmp ugt i64 1, %"$gasrem_464" - br i1 %"$gascmp_465", label %"$out_of_gas_466", label %"$have_gas_467" + %"$gasrem_455" = load i64, i64* @_gasrem, align 8 + %"$gascmp_456" = icmp ugt i64 1, %"$gasrem_455" + br i1 %"$gascmp_456", label %"$out_of_gas_457", label %"$have_gas_458" -"$out_of_gas_466": ; preds = %"$have_gas_462" +"$out_of_gas_457": ; preds = %"$have_gas_453" call void @_out_of_gas() - br label %"$have_gas_467" + br label %"$have_gas_458" -"$have_gas_467": ; preds = %"$out_of_gas_466", %"$have_gas_462" - %"$consume_468" = sub i64 %"$gasrem_464", 1 - store i64 %"$consume_468", i64* @_gasrem, align 8 +"$have_gas_458": ; preds = %"$out_of_gas_457", %"$have_gas_453" + %"$consume_459" = sub i64 %"$gasrem_455", 1 + store i64 %"$consume_459", i64* @_gasrem, align 8 store %Uint32 zeroinitializer, %Uint32* %init, align 4 - %"$gasrem_469" = load i64, i64* @_gasrem, align 8 - %"$gascmp_470" = icmp ugt i64 1, %"$gasrem_469" - br i1 %"$gascmp_470", label %"$out_of_gas_471", label %"$have_gas_472" + %"$gasrem_460" = load i64, i64* @_gasrem, align 8 + %"$gascmp_461" = icmp ugt i64 1, %"$gasrem_460" + br i1 %"$gascmp_461", label %"$out_of_gas_462", label %"$have_gas_463" -"$out_of_gas_471": ; preds = %"$have_gas_467" +"$out_of_gas_462": ; preds = %"$have_gas_458" call void @_out_of_gas() - br label %"$have_gas_472" + br label %"$have_gas_463" -"$have_gas_472": ; preds = %"$out_of_gas_471", %"$have_gas_467" - %"$consume_473" = sub i64 %"$gasrem_469", 1 - store i64 %"$consume_473", i64* @_gasrem, align 8 +"$have_gas_463": ; preds = %"$out_of_gas_462", %"$have_gas_458" + %"$consume_464" = sub i64 %"$gasrem_460", 1 + store i64 %"$consume_464", i64* @_gasrem, align 8 %"$foldl_4" = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$foldl_474" = load { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 - %"$foldl_fptr_475" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_474", 0 - %"$foldl_envptr_476" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_474", 1 - %"$iter_477" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 - %"$foldl_call_478" = call { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_475"(i8* %"$foldl_envptr_476", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_477") - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_478", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 + %"$foldl_465" = load { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %foldl, align 8 + %"$foldl_fptr_466" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_465", 0 + %"$foldl_envptr_467" = extractvalue { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$foldl_465", 1 + %"$iter_468" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %iter, align 8 + %"$foldl_call_469" = call { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_fptr_466"(i8* %"$foldl_envptr_467", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$iter_468") + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$foldl_call_469", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 %"$foldl_5" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$$foldl_4_479" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 - %"$$foldl_4_fptr_480" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_479", 0 - %"$$foldl_4_envptr_481" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_479", 1 - %"$init_482" = load %Uint32, %Uint32* %init, align 4 - %"$$foldl_4_call_483" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_4_fptr_480"(i8* %"$$foldl_4_envptr_481", %Uint32 %"$init_482") - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_4_call_483", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_5", align 8 - %"$$foldl_5_484" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_5", align 8 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_5_484", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_33", align 8 - %"$$retval_33_485" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_33", align 8 - ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_33_485" + %"$$foldl_4_470" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$foldl_4", align 8 + %"$$foldl_4_fptr_471" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_470", 0 + %"$$foldl_4_envptr_472" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$foldl_4_470", 1 + %"$init_473" = load %Uint32, %Uint32* %init, align 4 + %"$$foldl_4_call_474" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_4_fptr_471"(i8* %"$$foldl_4_envptr_472", %Uint32 %"$init_473") + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_4_call_474", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_5", align 8 + %"$$foldl_5_475" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$foldl_5", align 8 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$foldl_5_475", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_30", align 8 + %"$$retval_30_476" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_30", align 8 + ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_30_476" } -define internal %Uint32 @"$fundef_30"(%"$$fundef_30_env_145"* %0, %TName_List_ByStr20* %1) { +define internal %Uint32 @"$fundef_27"(%"$$fundef_27_env_136"* %0, %TName_List_ByStr20* %1) { entry: - %"$$fundef_30_env_f_340" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %0, i32 0, i32 0 - %"$f_envload_341" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_30_env_f_340", align 8 + %"$$fundef_27_env_f_331" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %0, i32 0, i32 0 + %"$f_envload_332" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_27_env_f_331", align 8 %f = alloca { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_341", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_30_env_g_342" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %0, i32 0, i32 1 - %"$g_envload_343" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_30_env_g_342", align 8 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_332", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_27_env_g_333" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %0, i32 0, i32 1 + %"$g_envload_334" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_27_env_g_333", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_343", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_30_env_z_344" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %0, i32 0, i32 2 - %"$z_envload_345" = load %Uint32, %Uint32* %"$$fundef_30_env_z_344", align 4 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_334", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_27_env_z_335" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %0, i32 0, i32 2 + %"$z_envload_336" = load %Uint32, %Uint32* %"$$fundef_27_env_z_335", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_345", %Uint32* %z, align 4 - %"$retval_31" = alloca %Uint32, align 8 - %"$gasrem_346" = load i64, i64* @_gasrem, align 8 - %"$gascmp_347" = icmp ugt i64 2, %"$gasrem_346" - br i1 %"$gascmp_347", label %"$out_of_gas_348", label %"$have_gas_349" - -"$out_of_gas_348": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_349" - -"$have_gas_349": ; preds = %"$out_of_gas_348", %entry - %"$consume_350" = sub i64 %"$gasrem_346", 2 - store i64 %"$consume_350", i64* @_gasrem, align 8 - %"$l_tag_352" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 - %"$l_tag_353" = load i8, i8* %"$l_tag_352", align 1 - switch i8 %"$l_tag_353", label %"$empty_default_354" [ - i8 0, label %"$Cons_355" - i8 1, label %"$Nil_399" + store %Uint32 %"$z_envload_336", %Uint32* %z, align 4 + %"$retval_28" = alloca %Uint32, align 8 + %"$gasrem_337" = load i64, i64* @_gasrem, align 8 + %"$gascmp_338" = icmp ugt i64 2, %"$gasrem_337" + br i1 %"$gascmp_338", label %"$out_of_gas_339", label %"$have_gas_340" + +"$out_of_gas_339": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_340" + +"$have_gas_340": ; preds = %"$out_of_gas_339", %entry + %"$consume_341" = sub i64 %"$gasrem_337", 2 + store i64 %"$consume_341", i64* @_gasrem, align 8 + %"$l_tag_343" = getelementptr inbounds %TName_List_ByStr20, %TName_List_ByStr20* %1, i32 0, i32 0 + %"$l_tag_344" = load i8, i8* %"$l_tag_343", align 1 + switch i8 %"$l_tag_344", label %"$empty_default_345" [ + i8 0, label %"$Cons_346" + i8 1, label %"$Nil_390" ] -"$Cons_355": ; preds = %"$have_gas_349" - %"$l_356" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* - %"$h_gep_357" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_356", i32 0, i32 1 - %"$h_load_358" = load [20 x i8], [20 x i8]* %"$h_gep_357", align 1 +"$Cons_346": ; preds = %"$have_gas_340" + %"$l_347" = bitcast %TName_List_ByStr20* %1 to %CName_Cons_ByStr20* + %"$h_gep_348" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_347", i32 0, i32 1 + %"$h_load_349" = load [20 x i8], [20 x i8]* %"$h_gep_348", align 1 %h = alloca [20 x i8], align 1 - store [20 x i8] %"$h_load_358", [20 x i8]* %h, align 1 - %"$t_gep_359" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_356", i32 0, i32 2 - %"$t_load_360" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_359", align 8 + store [20 x i8] %"$h_load_349", [20 x i8]* %h, align 1 + %"$t_gep_350" = getelementptr inbounds %CName_Cons_ByStr20, %CName_Cons_ByStr20* %"$l_347", i32 0, i32 2 + %"$t_load_351" = load %TName_List_ByStr20*, %TName_List_ByStr20** %"$t_gep_350", align 8 %t = alloca %TName_List_ByStr20*, align 8 - store %TName_List_ByStr20* %"$t_load_360", %TName_List_ByStr20** %t, align 8 - %"$gasrem_361" = load i64, i64* @_gasrem, align 8 - %"$gascmp_362" = icmp ugt i64 1, %"$gasrem_361" - br i1 %"$gascmp_362", label %"$out_of_gas_363", label %"$have_gas_364" + store %TName_List_ByStr20* %"$t_load_351", %TName_List_ByStr20** %t, align 8 + %"$gasrem_352" = load i64, i64* @_gasrem, align 8 + %"$gascmp_353" = icmp ugt i64 1, %"$gasrem_352" + br i1 %"$gascmp_353", label %"$out_of_gas_354", label %"$have_gas_355" -"$out_of_gas_363": ; preds = %"$Cons_355" +"$out_of_gas_354": ; preds = %"$Cons_346" call void @_out_of_gas() - br label %"$have_gas_364" + br label %"$have_gas_355" -"$have_gas_364": ; preds = %"$out_of_gas_363", %"$Cons_355" - %"$consume_365" = sub i64 %"$gasrem_361", 1 - store i64 %"$consume_365", i64* @_gasrem, align 8 +"$have_gas_355": ; preds = %"$out_of_gas_354", %"$Cons_346" + %"$consume_356" = sub i64 %"$gasrem_352", 1 + store i64 %"$consume_356", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$gasrem_366" = load i64, i64* @_gasrem, align 8 - %"$gascmp_367" = icmp ugt i64 1, %"$gasrem_366" - br i1 %"$gascmp_367", label %"$out_of_gas_368", label %"$have_gas_369" + %"$gasrem_357" = load i64, i64* @_gasrem, align 8 + %"$gascmp_358" = icmp ugt i64 1, %"$gasrem_357" + br i1 %"$gascmp_358", label %"$out_of_gas_359", label %"$have_gas_360" -"$out_of_gas_368": ; preds = %"$have_gas_364" +"$out_of_gas_359": ; preds = %"$have_gas_355" call void @_out_of_gas() - br label %"$have_gas_369" + br label %"$have_gas_360" -"$have_gas_369": ; preds = %"$out_of_gas_368", %"$have_gas_364" - %"$consume_370" = sub i64 %"$gasrem_366", 1 - store i64 %"$consume_370", i64* @_gasrem, align 8 +"$have_gas_360": ; preds = %"$out_of_gas_359", %"$have_gas_355" + %"$consume_361" = sub i64 %"$gasrem_357", 1 + store i64 %"$consume_361", i64* @_gasrem, align 8 %"$f_0" = alloca { %Uint32 (i8*, [20 x i8]*)*, i8* }, align 8 - %"$f_371" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$f_fptr_372" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_371", 0 - %"$f_envptr_373" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_371", 1 - %"$z_374" = load %Uint32, %Uint32* %z, align 4 - %"$f_call_375" = call { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_fptr_372"(i8* %"$f_envptr_373", %Uint32 %"$z_374") - store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_call_375", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_0", align 8 + %"$f_362" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$f_fptr_363" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_362", 0 + %"$f_envptr_364" = extractvalue { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_362", 1 + %"$z_365" = load %Uint32, %Uint32* %z, align 4 + %"$f_call_366" = call { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_fptr_363"(i8* %"$f_envptr_364", %Uint32 %"$z_365") + store { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$f_call_366", { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_0", align 8 %"$f_1" = alloca %Uint32, align 8 - %"$$f_0_376" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_0", align 8 - %"$$f_0_fptr_377" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_0_376", 0 - %"$$f_0_envptr_378" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_0_376", 1 - %"$$f_0_h_379" = alloca [20 x i8], align 1 - %"$h_380" = load [20 x i8], [20 x i8]* %h, align 1 - store [20 x i8] %"$h_380", [20 x i8]* %"$$f_0_h_379", align 1 - %"$$f_0_call_381" = call %Uint32 %"$$f_0_fptr_377"(i8* %"$$f_0_envptr_378", [20 x i8]* %"$$f_0_h_379") - store %Uint32 %"$$f_0_call_381", %Uint32* %"$f_1", align 4 - %"$$f_1_382" = load %Uint32, %Uint32* %"$f_1", align 4 - store %Uint32 %"$$f_1_382", %Uint32* %res, align 4 - %"$gasrem_383" = load i64, i64* @_gasrem, align 8 - %"$gascmp_384" = icmp ugt i64 1, %"$gasrem_383" - br i1 %"$gascmp_384", label %"$out_of_gas_385", label %"$have_gas_386" - -"$out_of_gas_385": ; preds = %"$have_gas_369" - call void @_out_of_gas() - br label %"$have_gas_386" - -"$have_gas_386": ; preds = %"$out_of_gas_385", %"$have_gas_369" - %"$consume_387" = sub i64 %"$gasrem_383", 1 - store i64 %"$consume_387", i64* @_gasrem, align 8 + %"$$f_0_367" = load { %Uint32 (i8*, [20 x i8]*)*, i8* }, { %Uint32 (i8*, [20 x i8]*)*, i8* }* %"$f_0", align 8 + %"$$f_0_fptr_368" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_0_367", 0 + %"$$f_0_envptr_369" = extractvalue { %Uint32 (i8*, [20 x i8]*)*, i8* } %"$$f_0_367", 1 + %"$$f_0_h_370" = alloca [20 x i8], align 1 + %"$h_371" = load [20 x i8], [20 x i8]* %h, align 1 + store [20 x i8] %"$h_371", [20 x i8]* %"$$f_0_h_370", align 1 + %"$$f_0_call_372" = call %Uint32 %"$$f_0_fptr_368"(i8* %"$$f_0_envptr_369", [20 x i8]* %"$$f_0_h_370") + store %Uint32 %"$$f_0_call_372", %Uint32* %"$f_1", align 4 + %"$$f_1_373" = load %Uint32, %Uint32* %"$f_1", align 4 + store %Uint32 %"$$f_1_373", %Uint32* %res, align 4 + %"$gasrem_374" = load i64, i64* @_gasrem, align 8 + %"$gascmp_375" = icmp ugt i64 1, %"$gasrem_374" + br i1 %"$gascmp_375", label %"$out_of_gas_376", label %"$have_gas_377" + +"$out_of_gas_376": ; preds = %"$have_gas_360" + call void @_out_of_gas() + br label %"$have_gas_377" + +"$have_gas_377": ; preds = %"$out_of_gas_376", %"$have_gas_360" + %"$consume_378" = sub i64 %"$gasrem_374", 1 + store i64 %"$consume_378", i64* @_gasrem, align 8 %"$g_2" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$g_388" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_389" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_388", 0 - %"$g_envptr_390" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_388", 1 - %"$res_391" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_392" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_389"(i8* %"$g_envptr_390", %Uint32 %"$res_391") - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_392", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_2", align 8 + %"$g_379" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_380" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_379", 0 + %"$g_envptr_381" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_379", 1 + %"$res_382" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_383" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_fptr_380"(i8* %"$g_envptr_381", %Uint32 %"$res_382") + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$g_call_383", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_2", align 8 %"$g_3" = alloca %Uint32, align 8 - %"$$g_2_393" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_2", align 8 - %"$$g_2_fptr_394" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_2_393", 0 - %"$$g_2_envptr_395" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_2_393", 1 - %"$t_396" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 - %"$$g_2_call_397" = call %Uint32 %"$$g_2_fptr_394"(i8* %"$$g_2_envptr_395", %TName_List_ByStr20* %"$t_396") - store %Uint32 %"$$g_2_call_397", %Uint32* %"$g_3", align 4 - %"$$g_3_398" = load %Uint32, %Uint32* %"$g_3", align 4 - store %Uint32 %"$$g_3_398", %Uint32* %"$retval_31", align 4 - br label %"$matchsucc_351" - -"$Nil_399": ; preds = %"$have_gas_349" - %"$l_400" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* - %"$gasrem_401" = load i64, i64* @_gasrem, align 8 - %"$gascmp_402" = icmp ugt i64 1, %"$gasrem_401" - br i1 %"$gascmp_402", label %"$out_of_gas_403", label %"$have_gas_404" - -"$out_of_gas_403": ; preds = %"$Nil_399" - call void @_out_of_gas() - br label %"$have_gas_404" - -"$have_gas_404": ; preds = %"$out_of_gas_403", %"$Nil_399" - %"$consume_405" = sub i64 %"$gasrem_401", 1 - store i64 %"$consume_405", i64* @_gasrem, align 8 - %"$z_406" = load %Uint32, %Uint32* %z, align 4 - store %Uint32 %"$z_406", %Uint32* %"$retval_31", align 4 - br label %"$matchsucc_351" - -"$empty_default_354": ; preds = %"$have_gas_349" - br label %"$matchsucc_351" - -"$matchsucc_351": ; preds = %"$have_gas_404", %"$have_gas_386", %"$empty_default_354" - %"$$retval_31_407" = load %Uint32, %Uint32* %"$retval_31", align 4 - ret %Uint32 %"$$retval_31_407" + %"$$g_2_384" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$g_2", align 8 + %"$$g_2_fptr_385" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_2_384", 0 + %"$$g_2_envptr_386" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$g_2_384", 1 + %"$t_387" = load %TName_List_ByStr20*, %TName_List_ByStr20** %t, align 8 + %"$$g_2_call_388" = call %Uint32 %"$$g_2_fptr_385"(i8* %"$$g_2_envptr_386", %TName_List_ByStr20* %"$t_387") + store %Uint32 %"$$g_2_call_388", %Uint32* %"$g_3", align 4 + %"$$g_3_389" = load %Uint32, %Uint32* %"$g_3", align 4 + store %Uint32 %"$$g_3_389", %Uint32* %"$retval_28", align 4 + br label %"$matchsucc_342" + +"$Nil_390": ; preds = %"$have_gas_340" + %"$l_391" = bitcast %TName_List_ByStr20* %1 to %CName_Nil_ByStr20* + %"$gasrem_392" = load i64, i64* @_gasrem, align 8 + %"$gascmp_393" = icmp ugt i64 1, %"$gasrem_392" + br i1 %"$gascmp_393", label %"$out_of_gas_394", label %"$have_gas_395" + +"$out_of_gas_394": ; preds = %"$Nil_390" + call void @_out_of_gas() + br label %"$have_gas_395" + +"$have_gas_395": ; preds = %"$out_of_gas_394", %"$Nil_390" + %"$consume_396" = sub i64 %"$gasrem_392", 1 + store i64 %"$consume_396", i64* @_gasrem, align 8 + %"$z_397" = load %Uint32, %Uint32* %z, align 4 + store %Uint32 %"$z_397", %Uint32* %"$retval_28", align 4 + br label %"$matchsucc_342" + +"$empty_default_345": ; preds = %"$have_gas_340" + br label %"$matchsucc_342" + +"$matchsucc_342": ; preds = %"$have_gas_395", %"$have_gas_377", %"$empty_default_345" + %"$$retval_28_398" = load %Uint32, %Uint32* %"$retval_28", align 4 + ret %Uint32 %"$$retval_28_398" } -define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_28"(%"$$fundef_28_env_146"* %0, %Uint32 %1) { +define internal { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } @"$fundef_25"(%"$$fundef_25_env_137"* %0, %Uint32 %1) { entry: - %"$$fundef_28_env_f_321" = getelementptr inbounds %"$$fundef_28_env_146", %"$$fundef_28_env_146"* %0, i32 0, i32 0 - %"$f_envload_322" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_28_env_f_321", align 8 + %"$$fundef_25_env_f_312" = getelementptr inbounds %"$$fundef_25_env_137", %"$$fundef_25_env_137"* %0, i32 0, i32 0 + %"$f_envload_313" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_25_env_f_312", align 8 %f = alloca { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_322", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_28_env_g_323" = getelementptr inbounds %"$$fundef_28_env_146", %"$$fundef_28_env_146"* %0, i32 0, i32 1 - %"$g_envload_324" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_28_env_g_323", align 8 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_313", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_25_env_g_314" = getelementptr inbounds %"$$fundef_25_env_137", %"$$fundef_25_env_137"* %0, i32 0, i32 1 + %"$g_envload_315" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_25_env_g_314", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_324", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$retval_29" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_325" = load i64, i64* @_gasrem, align 8 - %"$gascmp_326" = icmp ugt i64 1, %"$gasrem_325" - br i1 %"$gascmp_326", label %"$out_of_gas_327", label %"$have_gas_328" - -"$out_of_gas_327": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_328" - -"$have_gas_328": ; preds = %"$out_of_gas_327", %entry - %"$consume_329" = sub i64 %"$gasrem_325", 1 - store i64 %"$consume_329", i64* @_gasrem, align 8 - %"$$fundef_30_envp_330_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_30_envp_330_salloc" = call i8* @_salloc(i8* %"$$fundef_30_envp_330_load", i64 40) - %"$$fundef_30_envp_330" = bitcast i8* %"$$fundef_30_envp_330_salloc" to %"$$fundef_30_env_145"* - %"$$fundef_30_env_voidp_332" = bitcast %"$$fundef_30_env_145"* %"$$fundef_30_envp_330" to i8* - %"$$fundef_30_cloval_333" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_30_env_145"*, %TName_List_ByStr20*)* @"$fundef_30" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_30_env_voidp_332", 1 - %"$$fundef_30_env_f_334" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %"$$fundef_30_envp_330", i32 0, i32 0 - %"$f_335" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_335", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_30_env_f_334", align 8 - %"$$fundef_30_env_g_336" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %"$$fundef_30_envp_330", i32 0, i32 1 - %"$g_337" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_337", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_30_env_g_336", align 8 - %"$$fundef_30_env_z_338" = getelementptr inbounds %"$$fundef_30_env_145", %"$$fundef_30_env_145"* %"$$fundef_30_envp_330", i32 0, i32 2 - store %Uint32 %1, %Uint32* %"$$fundef_30_env_z_338", align 4 - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_30_cloval_333", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_29", align 8 - %"$$retval_29_339" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_29", align 8 - ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_29_339" + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_315", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$retval_26" = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 + %"$gasrem_316" = load i64, i64* @_gasrem, align 8 + %"$gascmp_317" = icmp ugt i64 1, %"$gasrem_316" + br i1 %"$gascmp_317", label %"$out_of_gas_318", label %"$have_gas_319" + +"$out_of_gas_318": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_319" + +"$have_gas_319": ; preds = %"$out_of_gas_318", %entry + %"$consume_320" = sub i64 %"$gasrem_316", 1 + store i64 %"$consume_320", i64* @_gasrem, align 8 + %"$$fundef_27_envp_321_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_27_envp_321_salloc" = call i8* @_salloc(i8* %"$$fundef_27_envp_321_load", i64 40) + %"$$fundef_27_envp_321" = bitcast i8* %"$$fundef_27_envp_321_salloc" to %"$$fundef_27_env_136"* + %"$$fundef_27_env_voidp_323" = bitcast %"$$fundef_27_env_136"* %"$$fundef_27_envp_321" to i8* + %"$$fundef_27_cloval_324" = insertvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } { %Uint32 (i8*, %TName_List_ByStr20*)* bitcast (%Uint32 (%"$$fundef_27_env_136"*, %TName_List_ByStr20*)* @"$fundef_27" to %Uint32 (i8*, %TName_List_ByStr20*)*), i8* undef }, i8* %"$$fundef_27_env_voidp_323", 1 + %"$$fundef_27_env_f_325" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %"$$fundef_27_envp_321", i32 0, i32 0 + %"$f_326" = load { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %"$f_326", { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_27_env_f_325", align 8 + %"$$fundef_27_env_g_327" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %"$$fundef_27_envp_321", i32 0, i32 1 + %"$g_328" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_328", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_27_env_g_327", align 8 + %"$$fundef_27_env_z_329" = getelementptr inbounds %"$$fundef_27_env_136", %"$$fundef_27_env_136"* %"$$fundef_27_envp_321", i32 0, i32 2 + store %Uint32 %1, %Uint32* %"$$fundef_27_env_z_329", align 4 + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$fundef_27_cloval_324", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_26", align 8 + %"$$retval_26_330" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %"$retval_26", align 8 + ret { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$$retval_26_330" } -define internal { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_26"(%"$$fundef_26_env_147"* %0, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %1) { +define internal { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_23"(%"$$fundef_23_env_138"* %0, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %1) { entry: - %"$retval_27" = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_302" = load i64, i64* @_gasrem, align 8 - %"$gascmp_303" = icmp ugt i64 1, %"$gasrem_302" - br i1 %"$gascmp_303", label %"$out_of_gas_304", label %"$have_gas_305" - -"$out_of_gas_304": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_305" - -"$have_gas_305": ; preds = %"$out_of_gas_304", %entry - %"$consume_306" = sub i64 %"$gasrem_302", 1 - store i64 %"$consume_306", i64* @_gasrem, align 8 - %"$gasrem_307" = load i64, i64* @_gasrem, align 8 - %"$gascmp_308" = icmp ugt i64 1, %"$gasrem_307" - br i1 %"$gascmp_308", label %"$out_of_gas_309", label %"$have_gas_310" - -"$out_of_gas_309": ; preds = %"$have_gas_305" - call void @_out_of_gas() - br label %"$have_gas_310" - -"$have_gas_310": ; preds = %"$out_of_gas_309", %"$have_gas_305" - %"$consume_311" = sub i64 %"$gasrem_307", 1 - store i64 %"$consume_311", i64* @_gasrem, align 8 - %"$$fundef_28_envp_312_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_28_envp_312_salloc" = call i8* @_salloc(i8* %"$$fundef_28_envp_312_load", i64 32) - %"$$fundef_28_envp_312" = bitcast i8* %"$$fundef_28_envp_312_salloc" to %"$$fundef_28_env_146"* - %"$$fundef_28_env_voidp_314" = bitcast %"$$fundef_28_env_146"* %"$$fundef_28_envp_312" to i8* - %"$$fundef_28_cloval_315" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_28_env_146"*, %Uint32)* @"$fundef_28" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_28_env_voidp_314", 1 - %g = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_28_cloval_315", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_28_env_f_316" = getelementptr inbounds %"$$fundef_28_env_146", %"$$fundef_28_env_146"* %"$$fundef_28_envp_312", i32 0, i32 0 - store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_28_env_f_316", align 8 - %"$$fundef_28_env_g_317" = getelementptr inbounds %"$$fundef_28_env_146", %"$$fundef_28_env_146"* %"$$fundef_28_envp_312", i32 0, i32 1 - %"$g_318" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_318", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_28_env_g_317", align 8 - %"$g_319" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_319", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_27", align 8 - %"$$retval_27_320" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_27", align 8 - ret { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_27_320" -} - -define internal { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_24"(%"$$fundef_24_env_148"* %0) { -entry: - %"$retval_25" = alloca { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$retval_24" = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_293" = load i64, i64* @_gasrem, align 8 %"$gascmp_294" = icmp ugt i64 1, %"$gasrem_293" br i1 %"$gascmp_294", label %"$out_of_gas_295", label %"$have_gas_296" @@ -1212,259 +1098,259 @@ entry: "$have_gas_296": ; preds = %"$out_of_gas_295", %entry %"$consume_297" = sub i64 %"$gasrem_293", 1 store i64 %"$consume_297", i64* @_gasrem, align 8 - store { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_26_env_147"*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_26" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_25", align 8 - %"$$retval_25_301" = load { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_25", align 8 - ret { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_25_301" + %"$gasrem_298" = load i64, i64* @_gasrem, align 8 + %"$gascmp_299" = icmp ugt i64 1, %"$gasrem_298" + br i1 %"$gascmp_299", label %"$out_of_gas_300", label %"$have_gas_301" + +"$out_of_gas_300": ; preds = %"$have_gas_296" + call void @_out_of_gas() + br label %"$have_gas_301" + +"$have_gas_301": ; preds = %"$out_of_gas_300", %"$have_gas_296" + %"$consume_302" = sub i64 %"$gasrem_298", 1 + store i64 %"$consume_302", i64* @_gasrem, align 8 + %"$$fundef_25_envp_303_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_25_envp_303_salloc" = call i8* @_salloc(i8* %"$$fundef_25_envp_303_load", i64 32) + %"$$fundef_25_envp_303" = bitcast i8* %"$$fundef_25_envp_303_salloc" to %"$$fundef_25_env_137"* + %"$$fundef_25_env_voidp_305" = bitcast %"$$fundef_25_env_137"* %"$$fundef_25_envp_303" to i8* + %"$$fundef_25_cloval_306" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_25_env_137"*, %Uint32)* @"$fundef_25" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_25_env_voidp_305", 1 + %g = alloca { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_25_cloval_306", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_25_env_f_307" = getelementptr inbounds %"$$fundef_25_env_137", %"$$fundef_25_env_137"* %"$$fundef_25_envp_303", i32 0, i32 0 + store { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_25_env_f_307", align 8 + %"$$fundef_25_env_g_308" = getelementptr inbounds %"$$fundef_25_env_137", %"$$fundef_25_env_137"* %"$$fundef_25_envp_303", i32 0, i32 1 + %"$g_309" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_309", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_25_env_g_308", align 8 + %"$g_310" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_310", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_24", align 8 + %"$$retval_24_311" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_24", align 8 + ret { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_24_311" +} + +define internal { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_21"(%"$$fundef_21_env_139"* %0) { +entry: + %"$retval_22" = alloca { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_284" = load i64, i64* @_gasrem, align 8 + %"$gascmp_285" = icmp ugt i64 1, %"$gasrem_284" + br i1 %"$gascmp_285", label %"$out_of_gas_286", label %"$have_gas_287" + +"$out_of_gas_286": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_287" + +"$have_gas_287": ; preds = %"$out_of_gas_286", %entry + %"$consume_288" = sub i64 %"$gasrem_284", 1 + store i64 %"$consume_288", i64* @_gasrem, align 8 + store { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_23_env_138"*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_23" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_22", align 8 + %"$$retval_22_292" = load { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_22", align 8 + ret { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_22_292" } -define internal { i8*, i8* }* @"$fundef_22"(%"$$fundef_22_env_149"* %0) { +define internal { i8*, i8* }* @"$fundef_19"(%"$$fundef_19_env_140"* %0) { entry: - %"$retval_23" = alloca { i8*, i8* }*, align 8 - %"$gasrem_281" = load i64, i64* @_gasrem, align 8 - %"$gascmp_282" = icmp ugt i64 1, %"$gasrem_281" - br i1 %"$gascmp_282", label %"$out_of_gas_283", label %"$have_gas_284" - -"$out_of_gas_283": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_284" - -"$have_gas_284": ; preds = %"$out_of_gas_283", %entry - %"$consume_285" = sub i64 %"$gasrem_281", 1 - store i64 %"$consume_285", i64* @_gasrem, align 8 - %"$dyndisp_table_289_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_289_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_289_salloc_load", i64 48) - %"$dyndisp_table_289_salloc" = bitcast i8* %"$dyndisp_table_289_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_289" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_289_salloc" to { i8*, i8* }* - %"$dyndisp_gep_290" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_289", i32 1 - %"$dyndisp_pcast_291" = bitcast { i8*, i8* }* %"$dyndisp_gep_290" to { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_24_env_148"*)* @"$fundef_24" to { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_291", align 8 - store { i8*, i8* }* %"$dyndisp_table_289", { i8*, i8* }** %"$retval_23", align 8 - %"$$retval_23_292" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_23", align 8 - ret { i8*, i8* }* %"$$retval_23_292" + %"$retval_20" = alloca { i8*, i8* }*, align 8 + %"$gasrem_272" = load i64, i64* @_gasrem, align 8 + %"$gascmp_273" = icmp ugt i64 1, %"$gasrem_272" + br i1 %"$gascmp_273", label %"$out_of_gas_274", label %"$have_gas_275" + +"$out_of_gas_274": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_275" + +"$have_gas_275": ; preds = %"$out_of_gas_274", %entry + %"$consume_276" = sub i64 %"$gasrem_272", 1 + store i64 %"$consume_276", i64* @_gasrem, align 8 + %"$dyndisp_table_280_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_280_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_280_salloc_load", i64 48) + %"$dyndisp_table_280_salloc" = bitcast i8* %"$dyndisp_table_280_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_280" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_280_salloc" to { i8*, i8* }* + %"$dyndisp_gep_281" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_280", i32 1 + %"$dyndisp_pcast_282" = bitcast { i8*, i8* }* %"$dyndisp_gep_281" to { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_21_env_139"*)* @"$fundef_21" to { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, [20 x i8]*)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_282", align 8 + store { i8*, i8* }* %"$dyndisp_table_280", { i8*, i8* }** %"$retval_20", align 8 + %"$$retval_20_283" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_20", align 8 + ret { i8*, i8* }* %"$$retval_20_283" } -define internal %Uint32 @"$fundef_20"(%"$$fundef_20_env_150"* %0, %TName_List_String* %1) { +define internal %Uint32 @"$fundef_17"(%"$$fundef_17_env_141"* %0, %TName_List_String* %1) { entry: - %"$$fundef_20_env_f_214" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %0, i32 0, i32 0 - %"$f_envload_215" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_20_env_f_214", align 8 + %"$$fundef_17_env_f_205" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %0, i32 0, i32 0 + %"$f_envload_206" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_17_env_f_205", align 8 %f = alloca { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_215", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_20_env_g_216" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %0, i32 0, i32 1 - %"$g_envload_217" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_20_env_g_216", align 8 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_206", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_17_env_g_207" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %0, i32 0, i32 1 + %"$g_envload_208" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_17_env_g_207", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_217", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_20_env_z_218" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %0, i32 0, i32 2 - %"$z_envload_219" = load %Uint32, %Uint32* %"$$fundef_20_env_z_218", align 4 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_208", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_17_env_z_209" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %0, i32 0, i32 2 + %"$z_envload_210" = load %Uint32, %Uint32* %"$$fundef_17_env_z_209", align 4 %z = alloca %Uint32, align 8 - store %Uint32 %"$z_envload_219", %Uint32* %z, align 4 - %"$retval_21" = alloca %Uint32, align 8 - %"$gasrem_220" = load i64, i64* @_gasrem, align 8 - %"$gascmp_221" = icmp ugt i64 2, %"$gasrem_220" - br i1 %"$gascmp_221", label %"$out_of_gas_222", label %"$have_gas_223" - -"$out_of_gas_222": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_223" - -"$have_gas_223": ; preds = %"$out_of_gas_222", %entry - %"$consume_224" = sub i64 %"$gasrem_220", 2 - store i64 %"$consume_224", i64* @_gasrem, align 8 - %"$l_tag_226" = getelementptr inbounds %TName_List_String, %TName_List_String* %1, i32 0, i32 0 - %"$l_tag_227" = load i8, i8* %"$l_tag_226", align 1 - switch i8 %"$l_tag_227", label %"$empty_default_228" [ - i8 0, label %"$Cons_229" - i8 1, label %"$Nil_272" + store %Uint32 %"$z_envload_210", %Uint32* %z, align 4 + %"$retval_18" = alloca %Uint32, align 8 + %"$gasrem_211" = load i64, i64* @_gasrem, align 8 + %"$gascmp_212" = icmp ugt i64 2, %"$gasrem_211" + br i1 %"$gascmp_212", label %"$out_of_gas_213", label %"$have_gas_214" + +"$out_of_gas_213": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_214" + +"$have_gas_214": ; preds = %"$out_of_gas_213", %entry + %"$consume_215" = sub i64 %"$gasrem_211", 2 + store i64 %"$consume_215", i64* @_gasrem, align 8 + %"$l_tag_217" = getelementptr inbounds %TName_List_String, %TName_List_String* %1, i32 0, i32 0 + %"$l_tag_218" = load i8, i8* %"$l_tag_217", align 1 + switch i8 %"$l_tag_218", label %"$empty_default_219" [ + i8 0, label %"$Cons_220" + i8 1, label %"$Nil_263" ] -"$Cons_229": ; preds = %"$have_gas_223" - %"$l_230" = bitcast %TName_List_String* %1 to %CName_Cons_String* - %"$h_gep_231" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_230", i32 0, i32 1 - %"$h_load_232" = load %String, %String* %"$h_gep_231", align 8 +"$Cons_220": ; preds = %"$have_gas_214" + %"$l_221" = bitcast %TName_List_String* %1 to %CName_Cons_String* + %"$h_gep_222" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_221", i32 0, i32 1 + %"$h_load_223" = load %String, %String* %"$h_gep_222", align 8 %h = alloca %String, align 8 - store %String %"$h_load_232", %String* %h, align 8 - %"$t_gep_233" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_230", i32 0, i32 2 - %"$t_load_234" = load %TName_List_String*, %TName_List_String** %"$t_gep_233", align 8 + store %String %"$h_load_223", %String* %h, align 8 + %"$t_gep_224" = getelementptr inbounds %CName_Cons_String, %CName_Cons_String* %"$l_221", i32 0, i32 2 + %"$t_load_225" = load %TName_List_String*, %TName_List_String** %"$t_gep_224", align 8 %t = alloca %TName_List_String*, align 8 - store %TName_List_String* %"$t_load_234", %TName_List_String** %t, align 8 - %"$gasrem_235" = load i64, i64* @_gasrem, align 8 - %"$gascmp_236" = icmp ugt i64 1, %"$gasrem_235" - br i1 %"$gascmp_236", label %"$out_of_gas_237", label %"$have_gas_238" + store %TName_List_String* %"$t_load_225", %TName_List_String** %t, align 8 + %"$gasrem_226" = load i64, i64* @_gasrem, align 8 + %"$gascmp_227" = icmp ugt i64 1, %"$gasrem_226" + br i1 %"$gascmp_227", label %"$out_of_gas_228", label %"$have_gas_229" -"$out_of_gas_237": ; preds = %"$Cons_229" +"$out_of_gas_228": ; preds = %"$Cons_220" call void @_out_of_gas() - br label %"$have_gas_238" + br label %"$have_gas_229" -"$have_gas_238": ; preds = %"$out_of_gas_237", %"$Cons_229" - %"$consume_239" = sub i64 %"$gasrem_235", 1 - store i64 %"$consume_239", i64* @_gasrem, align 8 +"$have_gas_229": ; preds = %"$out_of_gas_228", %"$Cons_220" + %"$consume_230" = sub i64 %"$gasrem_226", 1 + store i64 %"$consume_230", i64* @_gasrem, align 8 %res = alloca %Uint32, align 8 - %"$gasrem_240" = load i64, i64* @_gasrem, align 8 - %"$gascmp_241" = icmp ugt i64 1, %"$gasrem_240" - br i1 %"$gascmp_241", label %"$out_of_gas_242", label %"$have_gas_243" + %"$gasrem_231" = load i64, i64* @_gasrem, align 8 + %"$gascmp_232" = icmp ugt i64 1, %"$gasrem_231" + br i1 %"$gascmp_232", label %"$out_of_gas_233", label %"$have_gas_234" -"$out_of_gas_242": ; preds = %"$have_gas_238" +"$out_of_gas_233": ; preds = %"$have_gas_229" call void @_out_of_gas() - br label %"$have_gas_243" + br label %"$have_gas_234" -"$have_gas_243": ; preds = %"$out_of_gas_242", %"$have_gas_238" - %"$consume_244" = sub i64 %"$gasrem_240", 1 - store i64 %"$consume_244", i64* @_gasrem, align 8 +"$have_gas_234": ; preds = %"$out_of_gas_233", %"$have_gas_229" + %"$consume_235" = sub i64 %"$gasrem_231", 1 + store i64 %"$consume_235", i64* @_gasrem, align 8 %"$f_0" = alloca { %Uint32 (i8*, %String)*, i8* }, align 8 - %"$f_245" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$f_fptr_246" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_245", 0 - %"$f_envptr_247" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_245", 1 - %"$z_248" = load %Uint32, %Uint32* %z, align 4 - %"$f_call_249" = call { %Uint32 (i8*, %String)*, i8* } %"$f_fptr_246"(i8* %"$f_envptr_247", %Uint32 %"$z_248") - store { %Uint32 (i8*, %String)*, i8* } %"$f_call_249", { %Uint32 (i8*, %String)*, i8* }* %"$f_0", align 8 + %"$f_236" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$f_fptr_237" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_236", 0 + %"$f_envptr_238" = extractvalue { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_236", 1 + %"$z_239" = load %Uint32, %Uint32* %z, align 4 + %"$f_call_240" = call { %Uint32 (i8*, %String)*, i8* } %"$f_fptr_237"(i8* %"$f_envptr_238", %Uint32 %"$z_239") + store { %Uint32 (i8*, %String)*, i8* } %"$f_call_240", { %Uint32 (i8*, %String)*, i8* }* %"$f_0", align 8 %"$f_1" = alloca %Uint32, align 8 - %"$$f_0_250" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$f_0", align 8 - %"$$f_0_fptr_251" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_0_250", 0 - %"$$f_0_envptr_252" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_0_250", 1 - %"$h_253" = load %String, %String* %h, align 8 - %"$$f_0_call_254" = call %Uint32 %"$$f_0_fptr_251"(i8* %"$$f_0_envptr_252", %String %"$h_253") - store %Uint32 %"$$f_0_call_254", %Uint32* %"$f_1", align 4 - %"$$f_1_255" = load %Uint32, %Uint32* %"$f_1", align 4 - store %Uint32 %"$$f_1_255", %Uint32* %res, align 4 - %"$gasrem_256" = load i64, i64* @_gasrem, align 8 - %"$gascmp_257" = icmp ugt i64 1, %"$gasrem_256" - br i1 %"$gascmp_257", label %"$out_of_gas_258", label %"$have_gas_259" - -"$out_of_gas_258": ; preds = %"$have_gas_243" - call void @_out_of_gas() - br label %"$have_gas_259" - -"$have_gas_259": ; preds = %"$out_of_gas_258", %"$have_gas_243" - %"$consume_260" = sub i64 %"$gasrem_256", 1 - store i64 %"$consume_260", i64* @_gasrem, align 8 + %"$$f_0_241" = load { %Uint32 (i8*, %String)*, i8* }, { %Uint32 (i8*, %String)*, i8* }* %"$f_0", align 8 + %"$$f_0_fptr_242" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_0_241", 0 + %"$$f_0_envptr_243" = extractvalue { %Uint32 (i8*, %String)*, i8* } %"$$f_0_241", 1 + %"$h_244" = load %String, %String* %h, align 8 + %"$$f_0_call_245" = call %Uint32 %"$$f_0_fptr_242"(i8* %"$$f_0_envptr_243", %String %"$h_244") + store %Uint32 %"$$f_0_call_245", %Uint32* %"$f_1", align 4 + %"$$f_1_246" = load %Uint32, %Uint32* %"$f_1", align 4 + store %Uint32 %"$$f_1_246", %Uint32* %res, align 4 + %"$gasrem_247" = load i64, i64* @_gasrem, align 8 + %"$gascmp_248" = icmp ugt i64 1, %"$gasrem_247" + br i1 %"$gascmp_248", label %"$out_of_gas_249", label %"$have_gas_250" + +"$out_of_gas_249": ; preds = %"$have_gas_234" + call void @_out_of_gas() + br label %"$have_gas_250" + +"$have_gas_250": ; preds = %"$out_of_gas_249", %"$have_gas_234" + %"$consume_251" = sub i64 %"$gasrem_247", 1 + store i64 %"$consume_251", i64* @_gasrem, align 8 %"$g_2" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$g_261" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$g_fptr_262" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_261", 0 - %"$g_envptr_263" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_261", 1 - %"$res_264" = load %Uint32, %Uint32* %res, align 4 - %"$g_call_265" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_fptr_262"(i8* %"$g_envptr_263", %Uint32 %"$res_264") - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_call_265", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_2", align 8 + %"$g_252" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$g_fptr_253" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_252", 0 + %"$g_envptr_254" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_252", 1 + %"$res_255" = load %Uint32, %Uint32* %res, align 4 + %"$g_call_256" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_fptr_253"(i8* %"$g_envptr_254", %Uint32 %"$res_255") + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$g_call_256", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_2", align 8 %"$g_3" = alloca %Uint32, align 8 - %"$$g_2_266" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_2", align 8 - %"$$g_2_fptr_267" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_2_266", 0 - %"$$g_2_envptr_268" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_2_266", 1 - %"$t_269" = load %TName_List_String*, %TName_List_String** %t, align 8 - %"$$g_2_call_270" = call %Uint32 %"$$g_2_fptr_267"(i8* %"$$g_2_envptr_268", %TName_List_String* %"$t_269") - store %Uint32 %"$$g_2_call_270", %Uint32* %"$g_3", align 4 - %"$$g_3_271" = load %Uint32, %Uint32* %"$g_3", align 4 - store %Uint32 %"$$g_3_271", %Uint32* %"$retval_21", align 4 - br label %"$matchsucc_225" - -"$Nil_272": ; preds = %"$have_gas_223" - %"$l_273" = bitcast %TName_List_String* %1 to %CName_Nil_String* - %"$gasrem_274" = load i64, i64* @_gasrem, align 8 - %"$gascmp_275" = icmp ugt i64 1, %"$gasrem_274" - br i1 %"$gascmp_275", label %"$out_of_gas_276", label %"$have_gas_277" - -"$out_of_gas_276": ; preds = %"$Nil_272" - call void @_out_of_gas() - br label %"$have_gas_277" - -"$have_gas_277": ; preds = %"$out_of_gas_276", %"$Nil_272" - %"$consume_278" = sub i64 %"$gasrem_274", 1 - store i64 %"$consume_278", i64* @_gasrem, align 8 - %"$z_279" = load %Uint32, %Uint32* %z, align 4 - store %Uint32 %"$z_279", %Uint32* %"$retval_21", align 4 - br label %"$matchsucc_225" - -"$empty_default_228": ; preds = %"$have_gas_223" - br label %"$matchsucc_225" - -"$matchsucc_225": ; preds = %"$have_gas_277", %"$have_gas_259", %"$empty_default_228" - %"$$retval_21_280" = load %Uint32, %Uint32* %"$retval_21", align 4 - ret %Uint32 %"$$retval_21_280" + %"$$g_2_257" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$g_2", align 8 + %"$$g_2_fptr_258" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_2_257", 0 + %"$$g_2_envptr_259" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$g_2_257", 1 + %"$t_260" = load %TName_List_String*, %TName_List_String** %t, align 8 + %"$$g_2_call_261" = call %Uint32 %"$$g_2_fptr_258"(i8* %"$$g_2_envptr_259", %TName_List_String* %"$t_260") + store %Uint32 %"$$g_2_call_261", %Uint32* %"$g_3", align 4 + %"$$g_3_262" = load %Uint32, %Uint32* %"$g_3", align 4 + store %Uint32 %"$$g_3_262", %Uint32* %"$retval_18", align 4 + br label %"$matchsucc_216" + +"$Nil_263": ; preds = %"$have_gas_214" + %"$l_264" = bitcast %TName_List_String* %1 to %CName_Nil_String* + %"$gasrem_265" = load i64, i64* @_gasrem, align 8 + %"$gascmp_266" = icmp ugt i64 1, %"$gasrem_265" + br i1 %"$gascmp_266", label %"$out_of_gas_267", label %"$have_gas_268" + +"$out_of_gas_267": ; preds = %"$Nil_263" + call void @_out_of_gas() + br label %"$have_gas_268" + +"$have_gas_268": ; preds = %"$out_of_gas_267", %"$Nil_263" + %"$consume_269" = sub i64 %"$gasrem_265", 1 + store i64 %"$consume_269", i64* @_gasrem, align 8 + %"$z_270" = load %Uint32, %Uint32* %z, align 4 + store %Uint32 %"$z_270", %Uint32* %"$retval_18", align 4 + br label %"$matchsucc_216" + +"$empty_default_219": ; preds = %"$have_gas_214" + br label %"$matchsucc_216" + +"$matchsucc_216": ; preds = %"$have_gas_268", %"$have_gas_250", %"$empty_default_219" + %"$$retval_18_271" = load %Uint32, %Uint32* %"$retval_18", align 4 + ret %Uint32 %"$$retval_18_271" } -define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_18"(%"$$fundef_18_env_151"* %0, %Uint32 %1) { +define internal { %Uint32 (i8*, %TName_List_String*)*, i8* } @"$fundef_15"(%"$$fundef_15_env_142"* %0, %Uint32 %1) { entry: - %"$$fundef_18_env_f_195" = getelementptr inbounds %"$$fundef_18_env_151", %"$$fundef_18_env_151"* %0, i32 0, i32 0 - %"$f_envload_196" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_18_env_f_195", align 8 + %"$$fundef_15_env_f_186" = getelementptr inbounds %"$$fundef_15_env_142", %"$$fundef_15_env_142"* %0, i32 0, i32 0 + %"$f_envload_187" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_15_env_f_186", align 8 %f = alloca { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_196", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - %"$$fundef_18_env_g_197" = getelementptr inbounds %"$$fundef_18_env_151", %"$$fundef_18_env_151"* %0, i32 0, i32 1 - %"$g_envload_198" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_18_env_g_197", align 8 - %g = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_198", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$retval_19" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$gasrem_199" = load i64, i64* @_gasrem, align 8 - %"$gascmp_200" = icmp ugt i64 1, %"$gasrem_199" - br i1 %"$gascmp_200", label %"$out_of_gas_201", label %"$have_gas_202" - -"$out_of_gas_201": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_202" - -"$have_gas_202": ; preds = %"$out_of_gas_201", %entry - %"$consume_203" = sub i64 %"$gasrem_199", 1 - store i64 %"$consume_203", i64* @_gasrem, align 8 - %"$$fundef_20_envp_204_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_20_envp_204_salloc" = call i8* @_salloc(i8* %"$$fundef_20_envp_204_load", i64 40) - %"$$fundef_20_envp_204" = bitcast i8* %"$$fundef_20_envp_204_salloc" to %"$$fundef_20_env_150"* - %"$$fundef_20_env_voidp_206" = bitcast %"$$fundef_20_env_150"* %"$$fundef_20_envp_204" to i8* - %"$$fundef_20_cloval_207" = insertvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } { %Uint32 (i8*, %TName_List_String*)* bitcast (%Uint32 (%"$$fundef_20_env_150"*, %TName_List_String*)* @"$fundef_20" to %Uint32 (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_20_env_voidp_206", 1 - %"$$fundef_20_env_f_208" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %"$$fundef_20_envp_204", i32 0, i32 0 - %"$f_209" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_209", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_20_env_f_208", align 8 - %"$$fundef_20_env_g_210" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %"$$fundef_20_envp_204", i32 0, i32 1 - %"$g_211" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_211", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_20_env_g_210", align 8 - %"$$fundef_20_env_z_212" = getelementptr inbounds %"$$fundef_20_env_150", %"$$fundef_20_env_150"* %"$$fundef_20_envp_204", i32 0, i32 2 - store %Uint32 %1, %Uint32* %"$$fundef_20_env_z_212", align 4 - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_20_cloval_207", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_19", align 8 - %"$$retval_19_213" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_19", align 8 - ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_19_213" -} - -define internal { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_16"(%"$$fundef_16_env_152"* %0, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %1) { -entry: - %"$retval_17" = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - %"$gasrem_176" = load i64, i64* @_gasrem, align 8 - %"$gascmp_177" = icmp ugt i64 1, %"$gasrem_176" - br i1 %"$gascmp_177", label %"$out_of_gas_178", label %"$have_gas_179" - -"$out_of_gas_178": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_179" - -"$have_gas_179": ; preds = %"$out_of_gas_178", %entry - %"$consume_180" = sub i64 %"$gasrem_176", 1 - store i64 %"$consume_180", i64* @_gasrem, align 8 - %"$gasrem_181" = load i64, i64* @_gasrem, align 8 - %"$gascmp_182" = icmp ugt i64 1, %"$gasrem_181" - br i1 %"$gascmp_182", label %"$out_of_gas_183", label %"$have_gas_184" - -"$out_of_gas_183": ; preds = %"$have_gas_179" - call void @_out_of_gas() - br label %"$have_gas_184" - -"$have_gas_184": ; preds = %"$out_of_gas_183", %"$have_gas_179" - %"$consume_185" = sub i64 %"$gasrem_181", 1 - store i64 %"$consume_185", i64* @_gasrem, align 8 - %"$$fundef_18_envp_186_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_18_envp_186_salloc" = call i8* @_salloc(i8* %"$$fundef_18_envp_186_load", i64 32) - %"$$fundef_18_envp_186" = bitcast i8* %"$$fundef_18_envp_186_salloc" to %"$$fundef_18_env_151"* - %"$$fundef_18_env_voidp_188" = bitcast %"$$fundef_18_env_151"* %"$$fundef_18_envp_186" to i8* - %"$$fundef_18_cloval_189" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_18_env_151"*, %Uint32)* @"$fundef_18" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_18_env_voidp_188", 1 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_envload_187", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + %"$$fundef_15_env_g_188" = getelementptr inbounds %"$$fundef_15_env_142", %"$$fundef_15_env_142"* %0, i32 0, i32 1 + %"$g_envload_189" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_15_env_g_188", align 8 %g = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_18_cloval_189", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - %"$$fundef_18_env_f_190" = getelementptr inbounds %"$$fundef_18_env_151", %"$$fundef_18_env_151"* %"$$fundef_18_envp_186", i32 0, i32 0 - store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_18_env_f_190", align 8 - %"$$fundef_18_env_g_191" = getelementptr inbounds %"$$fundef_18_env_151", %"$$fundef_18_env_151"* %"$$fundef_18_envp_186", i32 0, i32 1 - %"$g_192" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_192", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_18_env_g_191", align 8 - %"$g_193" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_193", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_17", align 8 - %"$$retval_17_194" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_17", align 8 - ret { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_17_194" + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_envload_189", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$retval_16" = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 + %"$gasrem_190" = load i64, i64* @_gasrem, align 8 + %"$gascmp_191" = icmp ugt i64 1, %"$gasrem_190" + br i1 %"$gascmp_191", label %"$out_of_gas_192", label %"$have_gas_193" + +"$out_of_gas_192": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_193" + +"$have_gas_193": ; preds = %"$out_of_gas_192", %entry + %"$consume_194" = sub i64 %"$gasrem_190", 1 + store i64 %"$consume_194", i64* @_gasrem, align 8 + %"$$fundef_17_envp_195_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_17_envp_195_salloc" = call i8* @_salloc(i8* %"$$fundef_17_envp_195_load", i64 40) + %"$$fundef_17_envp_195" = bitcast i8* %"$$fundef_17_envp_195_salloc" to %"$$fundef_17_env_141"* + %"$$fundef_17_env_voidp_197" = bitcast %"$$fundef_17_env_141"* %"$$fundef_17_envp_195" to i8* + %"$$fundef_17_cloval_198" = insertvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } { %Uint32 (i8*, %TName_List_String*)* bitcast (%Uint32 (%"$$fundef_17_env_141"*, %TName_List_String*)* @"$fundef_17" to %Uint32 (i8*, %TName_List_String*)*), i8* undef }, i8* %"$$fundef_17_env_voidp_197", 1 + %"$$fundef_17_env_f_199" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %"$$fundef_17_envp_195", i32 0, i32 0 + %"$f_200" = load { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %f, align 8 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %"$f_200", { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_17_env_f_199", align 8 + %"$$fundef_17_env_g_201" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %"$$fundef_17_envp_195", i32 0, i32 1 + %"$g_202" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_202", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_17_env_g_201", align 8 + %"$$fundef_17_env_z_203" = getelementptr inbounds %"$$fundef_17_env_141", %"$$fundef_17_env_141"* %"$$fundef_17_envp_195", i32 0, i32 2 + store %Uint32 %1, %Uint32* %"$$fundef_17_env_z_203", align 4 + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$fundef_17_cloval_198", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_16", align 8 + %"$$retval_16_204" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %"$retval_16", align 8 + ret { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$$retval_16_204" } -define internal { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_14"(%"$$fundef_14_env_153"* %0) { +define internal { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } @"$fundef_13"(%"$$fundef_13_env_143"* %0, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %1) { entry: - %"$retval_15" = alloca { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$retval_14" = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 %"$gasrem_167" = load i64, i64* @_gasrem, align 8 %"$gascmp_168" = icmp ugt i64 1, %"$gasrem_167" br i1 %"$gascmp_168", label %"$out_of_gas_169", label %"$have_gas_170" @@ -1476,35 +1362,78 @@ entry: "$have_gas_170": ; preds = %"$out_of_gas_169", %entry %"$consume_171" = sub i64 %"$gasrem_167", 1 store i64 %"$consume_171", i64* @_gasrem, align 8 - store { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_16_env_152"*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_16" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_15", align 8 - %"$$retval_15_175" = load { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_15", align 8 - ret { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_15_175" + %"$gasrem_172" = load i64, i64* @_gasrem, align 8 + %"$gascmp_173" = icmp ugt i64 1, %"$gasrem_172" + br i1 %"$gascmp_173", label %"$out_of_gas_174", label %"$have_gas_175" + +"$out_of_gas_174": ; preds = %"$have_gas_170" + call void @_out_of_gas() + br label %"$have_gas_175" + +"$have_gas_175": ; preds = %"$out_of_gas_174", %"$have_gas_170" + %"$consume_176" = sub i64 %"$gasrem_172", 1 + store i64 %"$consume_176", i64* @_gasrem, align 8 + %"$$fundef_15_envp_177_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_15_envp_177_salloc" = call i8* @_salloc(i8* %"$$fundef_15_envp_177_load", i64 32) + %"$$fundef_15_envp_177" = bitcast i8* %"$$fundef_15_envp_177_salloc" to %"$$fundef_15_env_142"* + %"$$fundef_15_env_voidp_179" = bitcast %"$$fundef_15_env_142"* %"$$fundef_15_envp_177" to i8* + %"$$fundef_15_cloval_180" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_15_env_142"*, %Uint32)* @"$fundef_15" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*), i8* undef }, i8* %"$$fundef_15_env_voidp_179", 1 + %g = alloca { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, align 8 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$fundef_15_cloval_180", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + %"$$fundef_15_env_f_181" = getelementptr inbounds %"$$fundef_15_env_142", %"$$fundef_15_env_142"* %"$$fundef_15_envp_177", i32 0, i32 0 + store { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* } %1, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_15_env_f_181", align 8 + %"$$fundef_15_env_g_182" = getelementptr inbounds %"$$fundef_15_env_142", %"$$fundef_15_env_142"* %"$$fundef_15_envp_177", i32 0, i32 1 + %"$g_183" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_183", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$$fundef_15_env_g_182", align 8 + %"$g_184" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %g, align 8 + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$g_184", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_14", align 8 + %"$$retval_14_185" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* }* %"$retval_14", align 8 + ret { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } %"$$retval_14_185" +} + +define internal { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } @"$fundef_11"(%"$$fundef_11_env_144"* %0) { +entry: + %"$retval_12" = alloca { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, align 8 + %"$gasrem_158" = load i64, i64* @_gasrem, align 8 + %"$gascmp_159" = icmp ugt i64 1, %"$gasrem_158" + br i1 %"$gascmp_159", label %"$out_of_gas_160", label %"$have_gas_161" + +"$out_of_gas_160": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_161" + +"$have_gas_161": ; preds = %"$out_of_gas_160", %entry + %"$consume_162" = sub i64 %"$gasrem_158", 1 + store i64 %"$consume_162", i64* @_gasrem, align 8 + store { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })* bitcast ({ { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (%"$$fundef_13_env_143"*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })* @"$fundef_13" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*), i8* null }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_12", align 8 + %"$$retval_12_166" = load { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }, { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* }* %"$retval_12", align 8 + ret { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } %"$$retval_12_166" } -define internal { i8*, i8* }* @"$fundef_12"(%"$$fundef_12_env_154"* %0) { +define internal { i8*, i8* }* @"$fundef_9"(%"$$fundef_9_env_145"* %0) { entry: - %"$retval_13" = alloca { i8*, i8* }*, align 8 - %"$gasrem_155" = load i64, i64* @_gasrem, align 8 - %"$gascmp_156" = icmp ugt i64 1, %"$gasrem_155" - br i1 %"$gascmp_156", label %"$out_of_gas_157", label %"$have_gas_158" - -"$out_of_gas_157": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_158" - -"$have_gas_158": ; preds = %"$out_of_gas_157", %entry - %"$consume_159" = sub i64 %"$gasrem_155", 1 - store i64 %"$consume_159", i64* @_gasrem, align 8 - %"$dyndisp_table_163_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_163_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_163_salloc_load", i64 48) - %"$dyndisp_table_163_salloc" = bitcast i8* %"$dyndisp_table_163_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_163" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_163_salloc" to { i8*, i8* }* - %"$dyndisp_gep_164" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_163", i32 1 - %"$dyndisp_pcast_165" = bitcast { i8*, i8* }* %"$dyndisp_gep_164" to { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* - store { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_14_env_153"*)* @"$fundef_14" to { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_165", align 8 - store { i8*, i8* }* %"$dyndisp_table_163", { i8*, i8* }** %"$retval_13", align 8 - %"$$retval_13_166" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_13", align 8 - ret { i8*, i8* }* %"$$retval_13_166" + %"$retval_10" = alloca { i8*, i8* }*, align 8 + %"$gasrem_146" = load i64, i64* @_gasrem, align 8 + %"$gascmp_147" = icmp ugt i64 1, %"$gasrem_146" + br i1 %"$gascmp_147", label %"$out_of_gas_148", label %"$have_gas_149" + +"$out_of_gas_148": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_149" + +"$have_gas_149": ; preds = %"$out_of_gas_148", %entry + %"$consume_150" = sub i64 %"$gasrem_146", 1 + store i64 %"$consume_150", i64* @_gasrem, align 8 + %"$dyndisp_table_154_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_154_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_154_salloc_load", i64 48) + %"$dyndisp_table_154_salloc" = bitcast i8* %"$dyndisp_table_154_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_154" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_154_salloc" to { i8*, i8* }* + %"$dyndisp_gep_155" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_154", i32 1 + %"$dyndisp_pcast_156" = bitcast { i8*, i8* }* %"$dyndisp_gep_155" to { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* + store { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* } { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)* bitcast ({ { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (%"$$fundef_11_env_144"*)* @"$fundef_11" to { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*), i8* null }, { { { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*, %Uint32)*, i8* } (i8*, { { %Uint32 (i8*, %String)*, i8* } (i8*, %Uint32)*, i8* })*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_156", align 8 + store { i8*, i8* }* %"$dyndisp_table_154", { i8*, i8* }** %"$retval_10", align 8 + %"$$retval_10_157" = load { i8*, i8* }*, { i8*, i8* }** %"$retval_10", align 8 + ret { i8*, i8* }* %"$$retval_10_157" } declare void @_out_of_gas() @@ -1515,424 +1444,409 @@ declare %Uint32 @_add_Uint32(%Uint32, %Uint32) define void @_init_libs() { entry: - %"$gasrem_810" = load i64, i64* @_gasrem, align 8 - %"$gascmp_811" = icmp ugt i64 1, %"$gasrem_810" - br i1 %"$gascmp_811", label %"$out_of_gas_812", label %"$have_gas_813" - -"$out_of_gas_812": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_813" - -"$have_gas_813": ; preds = %"$out_of_gas_812", %entry - %"$consume_814" = sub i64 %"$gasrem_810", 1 - store i64 %"$consume_814", i64* @_gasrem, align 8 - %"$dyndisp_table_821_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_821_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_821_salloc_load", i64 48) - %"$dyndisp_table_821_salloc" = bitcast i8* %"$dyndisp_table_821_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_821" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_821_salloc" to { i8*, i8* }* - %"$dyndisp_gep_822" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_821", i32 0 - %"$dyndisp_pcast_823" = bitcast { i8*, i8* }* %"$dyndisp_gep_822" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_12_env_154"*)* @"$fundef_12" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_823", align 8 - %"$dyndisp_gep_824" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_821", i32 2 - %"$dyndisp_pcast_825" = bitcast { i8*, i8* }* %"$dyndisp_gep_824" to { { i8*, i8* }* (i8*)*, i8* }* - store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_22_env_149"*)* @"$fundef_22" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_825", align 8 - store { i8*, i8* }* %"$dyndisp_table_821", { i8*, i8* }** @list_foldl, align 8 - %"$gasrem_826" = load i64, i64* @_gasrem, align 8 - %"$gascmp_827" = icmp ugt i64 1, %"$gasrem_826" - br i1 %"$gascmp_827", label %"$out_of_gas_828", label %"$have_gas_829" - -"$out_of_gas_828": ; preds = %"$have_gas_813" - call void @_out_of_gas() - br label %"$have_gas_829" - -"$have_gas_829": ; preds = %"$out_of_gas_828", %"$have_gas_813" - %"$consume_830" = sub i64 %"$gasrem_826", 1 - store i64 %"$consume_830", i64* @_gasrem, align 8 - %"$$fundef_32_envp_831_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_32_envp_831_salloc" = call i8* @_salloc(i8* %"$$fundef_32_envp_831_load", i64 8) - %"$$fundef_32_envp_831" = bitcast i8* %"$$fundef_32_envp_831_salloc" to %"$$fundef_32_env_144"* - %"$$fundef_32_env_voidp_833" = bitcast %"$$fundef_32_env_144"* %"$$fundef_32_envp_831" to i8* - %"$$fundef_32_cloval_834" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_32_env_144"*)* @"$fundef_32" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_32_env_voidp_833", 1 - %"$$fundef_32_env_list_foldl_835" = getelementptr inbounds %"$$fundef_32_env_144", %"$$fundef_32_env_144"* %"$$fundef_32_envp_831", i32 0, i32 0 - %"$list_foldl_836" = load { i8*, i8* }*, { i8*, i8* }** @list_foldl, align 8 - store { i8*, i8* }* %"$list_foldl_836", { i8*, i8* }** %"$$fundef_32_env_list_foldl_835", align 8 - %"$$fundef_38_env_voidp_838" = bitcast %"$$fundef_32_env_144"* %"$$fundef_32_envp_831" to i8* - %"$$fundef_38_cloval_839" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_38_env_141"*)* @"$fundef_38" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_38_env_voidp_838", 1 - %"$dyndisp_table_840_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_840_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_840_salloc_load", i64 48) - %"$dyndisp_table_840_salloc" = bitcast i8* %"$dyndisp_table_840_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_840" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_840_salloc" to { i8*, i8* }* - %"$dyndisp_gep_841" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_840", i32 0 - %"$dyndisp_pcast_842" = bitcast { i8*, i8* }* %"$dyndisp_gep_841" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_32_cloval_834", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_842", align 8 - %"$dyndisp_gep_843" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_840", i32 2 - %"$dyndisp_pcast_844" = bitcast { i8*, i8* }* %"$dyndisp_gep_843" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_38_cloval_839", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_844", align 8 - store { i8*, i8* }* %"$dyndisp_table_840", { i8*, i8* }** @ListUtils.list_length, align 8 + %"$gasrem_769" = load i64, i64* @_gasrem, align 8 + %"$gascmp_770" = icmp ugt i64 1, %"$gasrem_769" + br i1 %"$gascmp_770", label %"$out_of_gas_771", label %"$have_gas_772" + +"$out_of_gas_771": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_772" + +"$have_gas_772": ; preds = %"$out_of_gas_771", %entry + %"$consume_773" = sub i64 %"$gasrem_769", 1 + store i64 %"$consume_773", i64* @_gasrem, align 8 + %"$dyndisp_table_780_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_780_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_780_salloc_load", i64 48) + %"$dyndisp_table_780_salloc" = bitcast i8* %"$dyndisp_table_780_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_780" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_780_salloc" to { i8*, i8* }* + %"$dyndisp_gep_781" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_780", i32 0 + %"$dyndisp_pcast_782" = bitcast { i8*, i8* }* %"$dyndisp_gep_781" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_9_env_145"*)* @"$fundef_9" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_782", align 8 + %"$dyndisp_gep_783" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_780", i32 2 + %"$dyndisp_pcast_784" = bitcast { i8*, i8* }* %"$dyndisp_gep_783" to { { i8*, i8* }* (i8*)*, i8* }* + store { { i8*, i8* }* (i8*)*, i8* } { { i8*, i8* }* (i8*)* bitcast ({ i8*, i8* }* (%"$$fundef_19_env_140"*)* @"$fundef_19" to { i8*, i8* }* (i8*)*), i8* null }, { { i8*, i8* }* (i8*)*, i8* }* %"$dyndisp_pcast_784", align 8 + store { i8*, i8* }* %"$dyndisp_table_780", { i8*, i8* }** @list_foldl, align 8 + %"$gasrem_785" = load i64, i64* @_gasrem, align 8 + %"$gascmp_786" = icmp ugt i64 1, %"$gasrem_785" + br i1 %"$gascmp_786", label %"$out_of_gas_787", label %"$have_gas_788" + +"$out_of_gas_787": ; preds = %"$have_gas_772" + call void @_out_of_gas() + br label %"$have_gas_788" + +"$have_gas_788": ; preds = %"$out_of_gas_787", %"$have_gas_772" + %"$consume_789" = sub i64 %"$gasrem_785", 1 + store i64 %"$consume_789", i64* @_gasrem, align 8 + %"$$fundef_29_envp_790_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_29_envp_790_salloc" = call i8* @_salloc(i8* %"$$fundef_29_envp_790_load", i64 8) + %"$$fundef_29_envp_790" = bitcast i8* %"$$fundef_29_envp_790_salloc" to %"$$fundef_29_env_135"* + %"$$fundef_29_env_voidp_792" = bitcast %"$$fundef_29_env_135"* %"$$fundef_29_envp_790" to i8* + %"$$fundef_29_cloval_793" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_29_env_135"*)* @"$fundef_29" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_29_env_voidp_792", 1 + %"$$fundef_29_env_list_foldl_794" = getelementptr inbounds %"$$fundef_29_env_135", %"$$fundef_29_env_135"* %"$$fundef_29_envp_790", i32 0, i32 0 + %"$list_foldl_795" = load { i8*, i8* }*, { i8*, i8* }** @list_foldl, align 8 + store { i8*, i8* }* %"$list_foldl_795", { i8*, i8* }** %"$$fundef_29_env_list_foldl_794", align 8 + %"$$fundef_35_env_voidp_797" = bitcast %"$$fundef_29_env_135"* %"$$fundef_29_envp_790" to i8* + %"$$fundef_35_cloval_798" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_35_env_132"*)* @"$fundef_35" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_35_env_voidp_797", 1 + %"$dyndisp_table_799_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_799_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_799_salloc_load", i64 48) + %"$dyndisp_table_799_salloc" = bitcast i8* %"$dyndisp_table_799_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_799" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_799_salloc" to { i8*, i8* }* + %"$dyndisp_gep_800" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_799", i32 0 + %"$dyndisp_pcast_801" = bitcast { i8*, i8* }* %"$dyndisp_gep_800" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_29_cloval_793", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_801", align 8 + %"$dyndisp_gep_802" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_799", i32 2 + %"$dyndisp_pcast_803" = bitcast { i8*, i8* }* %"$dyndisp_gep_802" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_35_cloval_798", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_803", align 8 + store { i8*, i8* }* %"$dyndisp_table_799", { i8*, i8* }** @ListUtils.list_length, align 8 ret void } define internal %Uint32 @_scilla_expr_fun(i8* %0) { entry: - %"$expr_44" = alloca %Uint32, align 8 - %"$gasrem_845" = load i64, i64* @_gasrem, align 8 - %"$gascmp_846" = icmp ugt i64 1, %"$gasrem_845" - br i1 %"$gascmp_846", label %"$out_of_gas_847", label %"$have_gas_848" + %"$expr_41" = alloca %Uint32, align 8 + %"$gasrem_804" = load i64, i64* @_gasrem, align 8 + %"$gascmp_805" = icmp ugt i64 1, %"$gasrem_804" + br i1 %"$gascmp_805", label %"$out_of_gas_806", label %"$have_gas_807" -"$out_of_gas_847": ; preds = %entry +"$out_of_gas_806": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_848" + br label %"$have_gas_807" -"$have_gas_848": ; preds = %"$out_of_gas_847", %entry - %"$consume_849" = sub i64 %"$gasrem_845", 1 - store i64 %"$consume_849", i64* @_gasrem, align 8 +"$have_gas_807": ; preds = %"$out_of_gas_806", %entry + %"$consume_808" = sub i64 %"$gasrem_804", 1 + store i64 %"$consume_808", i64* @_gasrem, align 8 %list_length2 = alloca { i8*, i8* }*, align 8 - %"$gasrem_850" = load i64, i64* @_gasrem, align 8 - %"$gascmp_851" = icmp ugt i64 1, %"$gasrem_850" - br i1 %"$gascmp_851", label %"$out_of_gas_852", label %"$have_gas_853" - -"$out_of_gas_852": ; preds = %"$have_gas_848" - call void @_out_of_gas() - br label %"$have_gas_853" - -"$have_gas_853": ; preds = %"$out_of_gas_852", %"$have_gas_848" - %"$consume_854" = sub i64 %"$gasrem_850", 1 - store i64 %"$consume_854", i64* @_gasrem, align 8 - %"$$fundef_45_envp_855_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_45_envp_855_salloc" = call i8* @_salloc(i8* %"$$fundef_45_envp_855_load", i64 8) - %"$$fundef_45_envp_855" = bitcast i8* %"$$fundef_45_envp_855_salloc" to %"$$fundef_45_env_138"* - %"$$fundef_45_env_voidp_857" = bitcast %"$$fundef_45_env_138"* %"$$fundef_45_envp_855" to i8* - %"$$fundef_45_cloval_858" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_45_env_138"*)* @"$fundef_45" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_45_env_voidp_857", 1 - %"$$fundef_45_env_ListUtils.list_length_859" = getelementptr inbounds %"$$fundef_45_env_138", %"$$fundef_45_env_138"* %"$$fundef_45_envp_855", i32 0, i32 0 - %"$ListUtils.list_length_860" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 - store { i8*, i8* }* %"$ListUtils.list_length_860", { i8*, i8* }** %"$$fundef_45_env_ListUtils.list_length_859", align 8 - %"$$fundef_49_env_voidp_862" = bitcast %"$$fundef_45_env_138"* %"$$fundef_45_envp_855" to i8* - %"$$fundef_49_cloval_863" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_49_env_136"*)* @"$fundef_49" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_49_env_voidp_862", 1 - %"$dyndisp_table_864_salloc_load" = load i8*, i8** @_execptr, align 8 - %"$dyndisp_table_864_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_864_salloc_load", i64 48) - %"$dyndisp_table_864_salloc" = bitcast i8* %"$dyndisp_table_864_salloc_salloc" to [3 x { i8*, i8* }]* - %"$dyndisp_table_864" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_864_salloc" to { i8*, i8* }* - %"$dyndisp_gep_865" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_864", i32 0 - %"$dyndisp_pcast_866" = bitcast { i8*, i8* }* %"$dyndisp_gep_865" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_45_cloval_858", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_866", align 8 - %"$dyndisp_gep_867" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_864", i32 2 - %"$dyndisp_pcast_868" = bitcast { i8*, i8* }* %"$dyndisp_gep_867" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_49_cloval_863", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_868", align 8 - store { i8*, i8* }* %"$dyndisp_table_864", { i8*, i8* }** %list_length2, align 8 - %"$gasrem_869" = load i64, i64* @_gasrem, align 8 - %"$gascmp_870" = icmp ugt i64 1, %"$gasrem_869" - br i1 %"$gascmp_870", label %"$out_of_gas_871", label %"$have_gas_872" - -"$out_of_gas_871": ; preds = %"$have_gas_853" - call void @_out_of_gas() - br label %"$have_gas_872" - -"$have_gas_872": ; preds = %"$out_of_gas_871", %"$have_gas_853" - %"$consume_873" = sub i64 %"$gasrem_869", 1 - store i64 %"$consume_873", i64* @_gasrem, align 8 - %t = alloca { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* }, align 8 - %"$gasrem_874" = load i64, i64* @_gasrem, align 8 - %"$gascmp_875" = icmp ugt i64 1, %"$gasrem_874" - br i1 %"$gascmp_875", label %"$out_of_gas_876", label %"$have_gas_877" - -"$out_of_gas_876": ; preds = %"$have_gas_872" - call void @_out_of_gas() - br label %"$have_gas_877" - -"$have_gas_877": ; preds = %"$out_of_gas_876", %"$have_gas_872" - %"$consume_878" = sub i64 %"$gasrem_874", 1 - store i64 %"$consume_878", i64* @_gasrem, align 8 - store { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* } { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)* bitcast ({ { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (%"$$fundef_53_env_134"*, %TName_Bool*)* @"$fundef_53" to { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*), i8* null }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %t, align 8 - %"$gasrem_882" = load i64, i64* @_gasrem, align 8 - %"$gascmp_883" = icmp ugt i64 1, %"$gasrem_882" - br i1 %"$gascmp_883", label %"$out_of_gas_884", label %"$have_gas_885" - -"$out_of_gas_884": ; preds = %"$have_gas_877" - call void @_out_of_gas() - br label %"$have_gas_885" - -"$have_gas_885": ; preds = %"$out_of_gas_884", %"$have_gas_877" - %"$consume_886" = sub i64 %"$gasrem_882", 1 - store i64 %"$consume_886", i64* @_gasrem, align 8 + %"$gasrem_809" = load i64, i64* @_gasrem, align 8 + %"$gascmp_810" = icmp ugt i64 1, %"$gasrem_809" + br i1 %"$gascmp_810", label %"$out_of_gas_811", label %"$have_gas_812" + +"$out_of_gas_811": ; preds = %"$have_gas_807" + call void @_out_of_gas() + br label %"$have_gas_812" + +"$have_gas_812": ; preds = %"$out_of_gas_811", %"$have_gas_807" + %"$consume_813" = sub i64 %"$gasrem_809", 1 + store i64 %"$consume_813", i64* @_gasrem, align 8 + %"$$fundef_42_envp_814_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_42_envp_814_salloc" = call i8* @_salloc(i8* %"$$fundef_42_envp_814_load", i64 8) + %"$$fundef_42_envp_814" = bitcast i8* %"$$fundef_42_envp_814_salloc" to %"$$fundef_42_env_129"* + %"$$fundef_42_env_voidp_816" = bitcast %"$$fundef_42_env_129"* %"$$fundef_42_envp_814" to i8* + %"$$fundef_42_cloval_817" = insertvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_String*)*, i8* } (%"$$fundef_42_env_129"*)* @"$fundef_42" to { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_42_env_voidp_816", 1 + %"$$fundef_42_env_ListUtils.list_length_818" = getelementptr inbounds %"$$fundef_42_env_129", %"$$fundef_42_env_129"* %"$$fundef_42_envp_814", i32 0, i32 0 + %"$ListUtils.list_length_819" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 + store { i8*, i8* }* %"$ListUtils.list_length_819", { i8*, i8* }** %"$$fundef_42_env_ListUtils.list_length_818", align 8 + %"$$fundef_46_env_voidp_821" = bitcast %"$$fundef_42_env_129"* %"$$fundef_42_envp_814" to i8* + %"$$fundef_46_cloval_822" = insertvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)* bitcast ({ %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (%"$$fundef_46_env_127"*)* @"$fundef_46" to { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*), i8* undef }, i8* %"$$fundef_46_env_voidp_821", 1 + %"$dyndisp_table_823_salloc_load" = load i8*, i8** @_execptr, align 8 + %"$dyndisp_table_823_salloc_salloc" = call i8* @_salloc(i8* %"$dyndisp_table_823_salloc_load", i64 48) + %"$dyndisp_table_823_salloc" = bitcast i8* %"$dyndisp_table_823_salloc_salloc" to [3 x { i8*, i8* }]* + %"$dyndisp_table_823" = bitcast [3 x { i8*, i8* }]* %"$dyndisp_table_823_salloc" to { i8*, i8* }* + %"$dyndisp_gep_824" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_823", i32 0 + %"$dyndisp_pcast_825" = bitcast { i8*, i8* }* %"$dyndisp_gep_824" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$$fundef_42_cloval_817", { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_825", align 8 + %"$dyndisp_gep_826" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$dyndisp_table_823", i32 2 + %"$dyndisp_pcast_827" = bitcast { i8*, i8* }* %"$dyndisp_gep_826" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + store { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$$fundef_46_cloval_822", { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$dyndisp_pcast_827", align 8 + store { i8*, i8* }* %"$dyndisp_table_823", { i8*, i8* }** %list_length2, align 8 + %"$gasrem_828" = load i64, i64* @_gasrem, align 8 + %"$gascmp_829" = icmp ugt i64 1, %"$gasrem_828" + br i1 %"$gascmp_829", label %"$out_of_gas_830", label %"$have_gas_831" + +"$out_of_gas_830": ; preds = %"$have_gas_812" + call void @_out_of_gas() + br label %"$have_gas_831" + +"$have_gas_831": ; preds = %"$out_of_gas_830", %"$have_gas_812" + %"$consume_832" = sub i64 %"$gasrem_828", 1 + store i64 %"$consume_832", i64* @_gasrem, align 8 + %t = alloca { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, align 8 + %"$gasrem_833" = load i64, i64* @_gasrem, align 8 + %"$gascmp_834" = icmp ugt i64 3, %"$gasrem_833" + br i1 %"$gascmp_834", label %"$out_of_gas_835", label %"$have_gas_836" + +"$out_of_gas_835": ; preds = %"$have_gas_831" + call void @_out_of_gas() + br label %"$have_gas_836" + +"$have_gas_836": ; preds = %"$out_of_gas_835", %"$have_gas_831" + %"$consume_837" = sub i64 %"$gasrem_833", 3 + store i64 %"$consume_837", i64* @_gasrem, align 8 + store { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)* bitcast ({ i8*, i8* }* (%"$$fundef_50_env_125"*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)* @"$fundef_50" to { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*), i8* null }, { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %t, align 8 + %"$gasrem_841" = load i64, i64* @_gasrem, align 8 + %"$gascmp_842" = icmp ugt i64 1, %"$gasrem_841" + br i1 %"$gascmp_842", label %"$out_of_gas_843", label %"$have_gas_844" + +"$out_of_gas_843": ; preds = %"$have_gas_836" + call void @_out_of_gas() + br label %"$have_gas_844" + +"$have_gas_844": ; preds = %"$out_of_gas_843", %"$have_gas_836" + %"$consume_845" = sub i64 %"$gasrem_841", 1 + store i64 %"$consume_845", i64* @_gasrem, align 8 %true = alloca %TName_Bool*, align 8 - %"$gasrem_887" = load i64, i64* @_gasrem, align 8 - %"$gascmp_888" = icmp ugt i64 1, %"$gasrem_887" - br i1 %"$gascmp_888", label %"$out_of_gas_889", label %"$have_gas_890" - -"$out_of_gas_889": ; preds = %"$have_gas_885" - call void @_out_of_gas() - br label %"$have_gas_890" - -"$have_gas_890": ; preds = %"$out_of_gas_889", %"$have_gas_885" - %"$consume_891" = sub i64 %"$gasrem_887", 1 - store i64 %"$consume_891", i64* @_gasrem, align 8 - %"$adtval_892_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_892_salloc" = call i8* @_salloc(i8* %"$adtval_892_load", i64 1) - %"$adtval_892" = bitcast i8* %"$adtval_892_salloc" to %CName_True* - %"$adtgep_893" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_892", i32 0, i32 0 - store i8 0, i8* %"$adtgep_893", align 1 - %"$adtptr_894" = bitcast %CName_True* %"$adtval_892" to %TName_Bool* - store %TName_Bool* %"$adtptr_894", %TName_Bool** %true, align 8 - %"$gasrem_895" = load i64, i64* @_gasrem, align 8 - %"$gascmp_896" = icmp ugt i64 1, %"$gasrem_895" - br i1 %"$gascmp_896", label %"$out_of_gas_897", label %"$have_gas_898" - -"$out_of_gas_897": ; preds = %"$have_gas_890" - call void @_out_of_gas() - br label %"$have_gas_898" - -"$have_gas_898": ; preds = %"$out_of_gas_897", %"$have_gas_890" - %"$consume_899" = sub i64 %"$gasrem_895", 1 - store i64 %"$consume_899", i64* @_gasrem, align 8 + %"$gasrem_846" = load i64, i64* @_gasrem, align 8 + %"$gascmp_847" = icmp ugt i64 1, %"$gasrem_846" + br i1 %"$gascmp_847", label %"$out_of_gas_848", label %"$have_gas_849" + +"$out_of_gas_848": ; preds = %"$have_gas_844" + call void @_out_of_gas() + br label %"$have_gas_849" + +"$have_gas_849": ; preds = %"$out_of_gas_848", %"$have_gas_844" + %"$consume_850" = sub i64 %"$gasrem_846", 1 + store i64 %"$consume_850", i64* @_gasrem, align 8 + %"$adtval_851_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_851_salloc" = call i8* @_salloc(i8* %"$adtval_851_load", i64 1) + %"$adtval_851" = bitcast i8* %"$adtval_851_salloc" to %CName_True* + %"$adtgep_852" = getelementptr inbounds %CName_True, %CName_True* %"$adtval_851", i32 0, i32 0 + store i8 0, i8* %"$adtgep_852", align 1 + %"$adtptr_853" = bitcast %CName_True* %"$adtval_851" to %TName_Bool* + store %TName_Bool* %"$adtptr_853", %TName_Bool** %true, align 8 + %"$gasrem_854" = load i64, i64* @_gasrem, align 8 + %"$gascmp_855" = icmp ugt i64 1, %"$gasrem_854" + br i1 %"$gascmp_855", label %"$out_of_gas_856", label %"$have_gas_857" + +"$out_of_gas_856": ; preds = %"$have_gas_849" + call void @_out_of_gas() + br label %"$have_gas_857" + +"$have_gas_857": ; preds = %"$out_of_gas_856", %"$have_gas_849" + %"$consume_858" = sub i64 %"$gasrem_854", 1 + store i64 %"$consume_858", i64* @_gasrem, align 8 %f = alloca { i8*, i8* }*, align 8 - %"$gasrem_900" = load i64, i64* @_gasrem, align 8 - %"$gascmp_901" = icmp ugt i64 1, %"$gasrem_900" - br i1 %"$gascmp_901", label %"$out_of_gas_902", label %"$have_gas_903" - -"$out_of_gas_902": ; preds = %"$have_gas_898" - call void @_out_of_gas() - br label %"$have_gas_903" - -"$have_gas_903": ; preds = %"$out_of_gas_902", %"$have_gas_898" - %"$consume_904" = sub i64 %"$gasrem_900", 1 - store i64 %"$consume_904", i64* @_gasrem, align 8 - %"$t_7" = alloca { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$t_905" = load { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* }, { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* }* %t, align 8 - %"$t_fptr_906" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$t_905", 0 - %"$t_envptr_907" = extractvalue { { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } (i8*, %TName_Bool*)*, i8* } %"$t_905", 1 - %"$true_908" = load %TName_Bool*, %TName_Bool** %true, align 8 - %"$t_call_909" = call { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_fptr_906"(i8* %"$t_envptr_907", %TName_Bool* %"$true_908") - store { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$t_call_909", { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$t_7", align 8 - %"$t_8" = alloca { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, align 8 - %"$$t_7_910" = load { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }, { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* }* %"$t_7", align 8 - %"$$t_7_fptr_911" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$t_7_910", 0 - %"$$t_7_envptr_912" = extractvalue { { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } (i8*, { i8*, i8* }*)*, i8* } %"$$t_7_910", 1 - %"$ListUtils.list_length_913" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 - %"$$t_7_call_914" = call { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_7_fptr_911"(i8* %"$$t_7_envptr_912", { i8*, i8* }* %"$ListUtils.list_length_913") - store { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_7_call_914", { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$t_8", align 8 - %"$t_9" = alloca { i8*, i8* }*, align 8 - %"$$t_8_915" = load { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* }* %"$t_8", align 8 - %"$$t_8_fptr_916" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_8_915", 0 - %"$$t_8_envptr_917" = extractvalue { { i8*, i8* }* (i8*, { i8*, i8* }*)*, i8* } %"$$t_8_915", 1 - %"$list_length2_918" = load { i8*, i8* }*, { i8*, i8* }** %list_length2, align 8 - %"$$t_8_call_919" = call { i8*, i8* }* %"$$t_8_fptr_916"(i8* %"$$t_8_envptr_917", { i8*, i8* }* %"$list_length2_918") - store { i8*, i8* }* %"$$t_8_call_919", { i8*, i8* }** %"$t_9", align 8 - %"$$t_9_920" = load { i8*, i8* }*, { i8*, i8* }** %"$t_9", align 8 - store { i8*, i8* }* %"$$t_9_920", { i8*, i8* }** %f, align 8 - %"$gasrem_921" = load i64, i64* @_gasrem, align 8 - %"$gascmp_922" = icmp ugt i64 1, %"$gasrem_921" - br i1 %"$gascmp_922", label %"$out_of_gas_923", label %"$have_gas_924" - -"$out_of_gas_923": ; preds = %"$have_gas_903" - call void @_out_of_gas() - br label %"$have_gas_924" - -"$have_gas_924": ; preds = %"$out_of_gas_923", %"$have_gas_903" - %"$consume_925" = sub i64 %"$gasrem_921", 1 - store i64 %"$consume_925", i64* @_gasrem, align 8 + %"$gasrem_859" = load i64, i64* @_gasrem, align 8 + %"$gascmp_860" = icmp ugt i64 1, %"$gasrem_859" + br i1 %"$gascmp_860", label %"$out_of_gas_861", label %"$have_gas_862" + +"$out_of_gas_861": ; preds = %"$have_gas_857" + call void @_out_of_gas() + br label %"$have_gas_862" + +"$have_gas_862": ; preds = %"$out_of_gas_861", %"$have_gas_857" + %"$consume_863" = sub i64 %"$gasrem_859", 1 + store i64 %"$consume_863", i64* @_gasrem, align 8 + %"$t_864" = load { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }, { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* }* %t, align 8 + %"$t_fptr_865" = extractvalue { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$t_864", 0 + %"$t_envptr_866" = extractvalue { { i8*, i8* }* (i8*, %TName_Bool*, { i8*, i8* }*, { i8*, i8* }*)*, i8* } %"$t_864", 1 + %"$true_867" = load %TName_Bool*, %TName_Bool** %true, align 8 + %"$ListUtils.list_length_868" = load { i8*, i8* }*, { i8*, i8* }** @ListUtils.list_length, align 8 + %"$list_length2_869" = load { i8*, i8* }*, { i8*, i8* }** %list_length2, align 8 + %"$t_call_870" = call { i8*, i8* }* %"$t_fptr_865"(i8* %"$t_envptr_866", %TName_Bool* %"$true_867", { i8*, i8* }* %"$ListUtils.list_length_868", { i8*, i8* }* %"$list_length2_869") + store { i8*, i8* }* %"$t_call_870", { i8*, i8* }** %f, align 8 + %"$gasrem_871" = load i64, i64* @_gasrem, align 8 + %"$gascmp_872" = icmp ugt i64 1, %"$gasrem_871" + br i1 %"$gascmp_872", label %"$out_of_gas_873", label %"$have_gas_874" + +"$out_of_gas_873": ; preds = %"$have_gas_862" + call void @_out_of_gas() + br label %"$have_gas_874" + +"$have_gas_874": ; preds = %"$out_of_gas_873", %"$have_gas_862" + %"$consume_875" = sub i64 %"$gasrem_871", 1 + store i64 %"$consume_875", i64* @_gasrem, align 8 %f_string = alloca { %Uint32 (i8*, %TName_List_String*)*, i8* }, align 8 - %"$gasrem_926" = load i64, i64* @_gasrem, align 8 - %"$gascmp_927" = icmp ugt i64 1, %"$gasrem_926" - br i1 %"$gascmp_927", label %"$out_of_gas_928", label %"$have_gas_929" - -"$out_of_gas_928": ; preds = %"$have_gas_924" - call void @_out_of_gas() - br label %"$have_gas_929" - -"$have_gas_929": ; preds = %"$out_of_gas_928", %"$have_gas_924" - %"$consume_930" = sub i64 %"$gasrem_926", 1 - store i64 %"$consume_930", i64* @_gasrem, align 8 - %"$f_931" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 - %"$f_932" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_931", i32 0 - %"$f_933" = bitcast { i8*, i8* }* %"$f_932" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* - %"$f_934" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$f_933", align 8 - %"$f_fptr_935" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_934", 0 - %"$f_envptr_936" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_934", 1 - %"$f_call_937" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_fptr_935"(i8* %"$f_envptr_936") - store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_call_937", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8 - %"$gasrem_938" = load i64, i64* @_gasrem, align 8 - %"$gascmp_939" = icmp ugt i64 1, %"$gasrem_938" - br i1 %"$gascmp_939", label %"$out_of_gas_940", label %"$have_gas_941" - -"$out_of_gas_940": ; preds = %"$have_gas_929" - call void @_out_of_gas() - br label %"$have_gas_941" - -"$have_gas_941": ; preds = %"$out_of_gas_940", %"$have_gas_929" - %"$consume_942" = sub i64 %"$gasrem_938", 1 - store i64 %"$consume_942", i64* @_gasrem, align 8 + %"$gasrem_876" = load i64, i64* @_gasrem, align 8 + %"$gascmp_877" = icmp ugt i64 1, %"$gasrem_876" + br i1 %"$gascmp_877", label %"$out_of_gas_878", label %"$have_gas_879" + +"$out_of_gas_878": ; preds = %"$have_gas_874" + call void @_out_of_gas() + br label %"$have_gas_879" + +"$have_gas_879": ; preds = %"$out_of_gas_878", %"$have_gas_874" + %"$consume_880" = sub i64 %"$gasrem_876", 1 + store i64 %"$consume_880", i64* @_gasrem, align 8 + %"$f_881" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 + %"$f_882" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_881", i32 0 + %"$f_883" = bitcast { i8*, i8* }* %"$f_882" to { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* + %"$f_884" = load { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* }* %"$f_883", align 8 + %"$f_fptr_885" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_884", 0 + %"$f_envptr_886" = extractvalue { { %Uint32 (i8*, %TName_List_String*)*, i8* } (i8*)*, i8* } %"$f_884", 1 + %"$f_call_887" = call { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_fptr_885"(i8* %"$f_envptr_886") + store { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_call_887", { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8 + %"$gasrem_888" = load i64, i64* @_gasrem, align 8 + %"$gascmp_889" = icmp ugt i64 1, %"$gasrem_888" + br i1 %"$gascmp_889", label %"$out_of_gas_890", label %"$have_gas_891" + +"$out_of_gas_890": ; preds = %"$have_gas_879" + call void @_out_of_gas() + br label %"$have_gas_891" + +"$have_gas_891": ; preds = %"$out_of_gas_890", %"$have_gas_879" + %"$consume_892" = sub i64 %"$gasrem_888", 1 + store i64 %"$consume_892", i64* @_gasrem, align 8 %f_bystr20 = alloca { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, align 8 - %"$gasrem_943" = load i64, i64* @_gasrem, align 8 - %"$gascmp_944" = icmp ugt i64 1, %"$gasrem_943" - br i1 %"$gascmp_944", label %"$out_of_gas_945", label %"$have_gas_946" - -"$out_of_gas_945": ; preds = %"$have_gas_941" - call void @_out_of_gas() - br label %"$have_gas_946" - -"$have_gas_946": ; preds = %"$out_of_gas_945", %"$have_gas_941" - %"$consume_947" = sub i64 %"$gasrem_943", 1 - store i64 %"$consume_947", i64* @_gasrem, align 8 - %"$f_948" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 - %"$f_949" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_948", i32 2 - %"$f_950" = bitcast { i8*, i8* }* %"$f_949" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* - %"$f_951" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$f_950", align 8 - %"$f_fptr_952" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_951", 0 - %"$f_envptr_953" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_951", 1 - %"$f_call_954" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_952"(i8* %"$f_envptr_953") - store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_954", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8 - %"$gasrem_955" = load i64, i64* @_gasrem, align 8 - %"$gascmp_956" = icmp ugt i64 1, %"$gasrem_955" - br i1 %"$gascmp_956", label %"$out_of_gas_957", label %"$have_gas_958" - -"$out_of_gas_957": ; preds = %"$have_gas_946" - call void @_out_of_gas() - br label %"$have_gas_958" - -"$have_gas_958": ; preds = %"$out_of_gas_957", %"$have_gas_946" - %"$consume_959" = sub i64 %"$gasrem_955", 1 - store i64 %"$consume_959", i64* @_gasrem, align 8 + %"$gasrem_893" = load i64, i64* @_gasrem, align 8 + %"$gascmp_894" = icmp ugt i64 1, %"$gasrem_893" + br i1 %"$gascmp_894", label %"$out_of_gas_895", label %"$have_gas_896" + +"$out_of_gas_895": ; preds = %"$have_gas_891" + call void @_out_of_gas() + br label %"$have_gas_896" + +"$have_gas_896": ; preds = %"$out_of_gas_895", %"$have_gas_891" + %"$consume_897" = sub i64 %"$gasrem_893", 1 + store i64 %"$consume_897", i64* @_gasrem, align 8 + %"$f_898" = load { i8*, i8* }*, { i8*, i8* }** %f, align 8 + %"$f_899" = getelementptr { i8*, i8* }, { i8*, i8* }* %"$f_898", i32 2 + %"$f_900" = bitcast { i8*, i8* }* %"$f_899" to { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* + %"$f_901" = load { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }, { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* }* %"$f_900", align 8 + %"$f_fptr_902" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_901", 0 + %"$f_envptr_903" = extractvalue { { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } (i8*)*, i8* } %"$f_901", 1 + %"$f_call_904" = call { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_fptr_902"(i8* %"$f_envptr_903") + store { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_call_904", { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8 + %"$gasrem_905" = load i64, i64* @_gasrem, align 8 + %"$gascmp_906" = icmp ugt i64 1, %"$gasrem_905" + br i1 %"$gascmp_906", label %"$out_of_gas_907", label %"$have_gas_908" + +"$out_of_gas_907": ; preds = %"$have_gas_896" + call void @_out_of_gas() + br label %"$have_gas_908" + +"$have_gas_908": ; preds = %"$out_of_gas_907", %"$have_gas_896" + %"$consume_909" = sub i64 %"$gasrem_905", 1 + store i64 %"$consume_909", i64* @_gasrem, align 8 %nil_string = alloca %TName_List_String*, align 8 - %"$gasrem_960" = load i64, i64* @_gasrem, align 8 - %"$gascmp_961" = icmp ugt i64 1, %"$gasrem_960" - br i1 %"$gascmp_961", label %"$out_of_gas_962", label %"$have_gas_963" - -"$out_of_gas_962": ; preds = %"$have_gas_958" - call void @_out_of_gas() - br label %"$have_gas_963" - -"$have_gas_963": ; preds = %"$out_of_gas_962", %"$have_gas_958" - %"$consume_964" = sub i64 %"$gasrem_960", 1 - store i64 %"$consume_964", i64* @_gasrem, align 8 - %"$adtval_965_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_965_salloc" = call i8* @_salloc(i8* %"$adtval_965_load", i64 1) - %"$adtval_965" = bitcast i8* %"$adtval_965_salloc" to %CName_Nil_String* - %"$adtgep_966" = getelementptr inbounds %CName_Nil_String, %CName_Nil_String* %"$adtval_965", i32 0, i32 0 - store i8 1, i8* %"$adtgep_966", align 1 - %"$adtptr_967" = bitcast %CName_Nil_String* %"$adtval_965" to %TName_List_String* - store %TName_List_String* %"$adtptr_967", %TName_List_String** %nil_string, align 8 - %"$gasrem_968" = load i64, i64* @_gasrem, align 8 - %"$gascmp_969" = icmp ugt i64 1, %"$gasrem_968" - br i1 %"$gascmp_969", label %"$out_of_gas_970", label %"$have_gas_971" - -"$out_of_gas_970": ; preds = %"$have_gas_963" - call void @_out_of_gas() - br label %"$have_gas_971" - -"$have_gas_971": ; preds = %"$out_of_gas_970", %"$have_gas_963" - %"$consume_972" = sub i64 %"$gasrem_968", 1 - store i64 %"$consume_972", i64* @_gasrem, align 8 + %"$gasrem_910" = load i64, i64* @_gasrem, align 8 + %"$gascmp_911" = icmp ugt i64 1, %"$gasrem_910" + br i1 %"$gascmp_911", label %"$out_of_gas_912", label %"$have_gas_913" + +"$out_of_gas_912": ; preds = %"$have_gas_908" + call void @_out_of_gas() + br label %"$have_gas_913" + +"$have_gas_913": ; preds = %"$out_of_gas_912", %"$have_gas_908" + %"$consume_914" = sub i64 %"$gasrem_910", 1 + store i64 %"$consume_914", i64* @_gasrem, align 8 + %"$adtval_915_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_915_salloc" = call i8* @_salloc(i8* %"$adtval_915_load", i64 1) + %"$adtval_915" = bitcast i8* %"$adtval_915_salloc" to %CName_Nil_String* + %"$adtgep_916" = getelementptr inbounds %CName_Nil_String, %CName_Nil_String* %"$adtval_915", i32 0, i32 0 + store i8 1, i8* %"$adtgep_916", align 1 + %"$adtptr_917" = bitcast %CName_Nil_String* %"$adtval_915" to %TName_List_String* + store %TName_List_String* %"$adtptr_917", %TName_List_String** %nil_string, align 8 + %"$gasrem_918" = load i64, i64* @_gasrem, align 8 + %"$gascmp_919" = icmp ugt i64 1, %"$gasrem_918" + br i1 %"$gascmp_919", label %"$out_of_gas_920", label %"$have_gas_921" + +"$out_of_gas_920": ; preds = %"$have_gas_913" + call void @_out_of_gas() + br label %"$have_gas_921" + +"$have_gas_921": ; preds = %"$out_of_gas_920", %"$have_gas_913" + %"$consume_922" = sub i64 %"$gasrem_918", 1 + store i64 %"$consume_922", i64* @_gasrem, align 8 %nil_bystr20 = alloca %TName_List_ByStr20*, align 8 - %"$gasrem_973" = load i64, i64* @_gasrem, align 8 - %"$gascmp_974" = icmp ugt i64 1, %"$gasrem_973" - br i1 %"$gascmp_974", label %"$out_of_gas_975", label %"$have_gas_976" - -"$out_of_gas_975": ; preds = %"$have_gas_971" - call void @_out_of_gas() - br label %"$have_gas_976" - -"$have_gas_976": ; preds = %"$out_of_gas_975", %"$have_gas_971" - %"$consume_977" = sub i64 %"$gasrem_973", 1 - store i64 %"$consume_977", i64* @_gasrem, align 8 - %"$adtval_978_load" = load i8*, i8** @_execptr, align 8 - %"$adtval_978_salloc" = call i8* @_salloc(i8* %"$adtval_978_load", i64 1) - %"$adtval_978" = bitcast i8* %"$adtval_978_salloc" to %CName_Nil_ByStr20* - %"$adtgep_979" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_978", i32 0, i32 0 - store i8 1, i8* %"$adtgep_979", align 1 - %"$adtptr_980" = bitcast %CName_Nil_ByStr20* %"$adtval_978" to %TName_List_ByStr20* - store %TName_List_ByStr20* %"$adtptr_980", %TName_List_ByStr20** %nil_bystr20, align 8 - %"$gasrem_981" = load i64, i64* @_gasrem, align 8 - %"$gascmp_982" = icmp ugt i64 1, %"$gasrem_981" - br i1 %"$gascmp_982", label %"$out_of_gas_983", label %"$have_gas_984" - -"$out_of_gas_983": ; preds = %"$have_gas_976" - call void @_out_of_gas() - br label %"$have_gas_984" - -"$have_gas_984": ; preds = %"$out_of_gas_983", %"$have_gas_976" - %"$consume_985" = sub i64 %"$gasrem_981", 1 - store i64 %"$consume_985", i64* @_gasrem, align 8 + %"$gasrem_923" = load i64, i64* @_gasrem, align 8 + %"$gascmp_924" = icmp ugt i64 1, %"$gasrem_923" + br i1 %"$gascmp_924", label %"$out_of_gas_925", label %"$have_gas_926" + +"$out_of_gas_925": ; preds = %"$have_gas_921" + call void @_out_of_gas() + br label %"$have_gas_926" + +"$have_gas_926": ; preds = %"$out_of_gas_925", %"$have_gas_921" + %"$consume_927" = sub i64 %"$gasrem_923", 1 + store i64 %"$consume_927", i64* @_gasrem, align 8 + %"$adtval_928_load" = load i8*, i8** @_execptr, align 8 + %"$adtval_928_salloc" = call i8* @_salloc(i8* %"$adtval_928_load", i64 1) + %"$adtval_928" = bitcast i8* %"$adtval_928_salloc" to %CName_Nil_ByStr20* + %"$adtgep_929" = getelementptr inbounds %CName_Nil_ByStr20, %CName_Nil_ByStr20* %"$adtval_928", i32 0, i32 0 + store i8 1, i8* %"$adtgep_929", align 1 + %"$adtptr_930" = bitcast %CName_Nil_ByStr20* %"$adtval_928" to %TName_List_ByStr20* + store %TName_List_ByStr20* %"$adtptr_930", %TName_List_ByStr20** %nil_bystr20, align 8 + %"$gasrem_931" = load i64, i64* @_gasrem, align 8 + %"$gascmp_932" = icmp ugt i64 1, %"$gasrem_931" + br i1 %"$gascmp_932", label %"$out_of_gas_933", label %"$have_gas_934" + +"$out_of_gas_933": ; preds = %"$have_gas_926" + call void @_out_of_gas() + br label %"$have_gas_934" + +"$have_gas_934": ; preds = %"$out_of_gas_933", %"$have_gas_926" + %"$consume_935" = sub i64 %"$gasrem_931", 1 + store i64 %"$consume_935", i64* @_gasrem, align 8 %a = alloca %Uint32, align 8 - %"$gasrem_986" = load i64, i64* @_gasrem, align 8 - %"$gascmp_987" = icmp ugt i64 1, %"$gasrem_986" - br i1 %"$gascmp_987", label %"$out_of_gas_988", label %"$have_gas_989" - -"$out_of_gas_988": ; preds = %"$have_gas_984" - call void @_out_of_gas() - br label %"$have_gas_989" - -"$have_gas_989": ; preds = %"$out_of_gas_988", %"$have_gas_984" - %"$consume_990" = sub i64 %"$gasrem_986", 1 - store i64 %"$consume_990", i64* @_gasrem, align 8 - %"$f_string_10" = alloca %Uint32, align 8 - %"$f_string_991" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8 - %"$f_string_fptr_992" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_991", 0 - %"$f_string_envptr_993" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_991", 1 - %"$nil_string_994" = load %TName_List_String*, %TName_List_String** %nil_string, align 8 - %"$f_string_call_995" = call %Uint32 %"$f_string_fptr_992"(i8* %"$f_string_envptr_993", %TName_List_String* %"$nil_string_994") - store %Uint32 %"$f_string_call_995", %Uint32* %"$f_string_10", align 4 - %"$$f_string_10_996" = load %Uint32, %Uint32* %"$f_string_10", align 4 - store %Uint32 %"$$f_string_10_996", %Uint32* %a, align 4 - %"$gasrem_997" = load i64, i64* @_gasrem, align 8 - %"$gascmp_998" = icmp ugt i64 1, %"$gasrem_997" - br i1 %"$gascmp_998", label %"$out_of_gas_999", label %"$have_gas_1000" - -"$out_of_gas_999": ; preds = %"$have_gas_989" - call void @_out_of_gas() - br label %"$have_gas_1000" - -"$have_gas_1000": ; preds = %"$out_of_gas_999", %"$have_gas_989" - %"$consume_1001" = sub i64 %"$gasrem_997", 1 - store i64 %"$consume_1001", i64* @_gasrem, align 8 + %"$gasrem_936" = load i64, i64* @_gasrem, align 8 + %"$gascmp_937" = icmp ugt i64 1, %"$gasrem_936" + br i1 %"$gascmp_937", label %"$out_of_gas_938", label %"$have_gas_939" + +"$out_of_gas_938": ; preds = %"$have_gas_934" + call void @_out_of_gas() + br label %"$have_gas_939" + +"$have_gas_939": ; preds = %"$out_of_gas_938", %"$have_gas_934" + %"$consume_940" = sub i64 %"$gasrem_936", 1 + store i64 %"$consume_940", i64* @_gasrem, align 8 + %"$f_string_7" = alloca %Uint32, align 8 + %"$f_string_941" = load { %Uint32 (i8*, %TName_List_String*)*, i8* }, { %Uint32 (i8*, %TName_List_String*)*, i8* }* %f_string, align 8 + %"$f_string_fptr_942" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_941", 0 + %"$f_string_envptr_943" = extractvalue { %Uint32 (i8*, %TName_List_String*)*, i8* } %"$f_string_941", 1 + %"$nil_string_944" = load %TName_List_String*, %TName_List_String** %nil_string, align 8 + %"$f_string_call_945" = call %Uint32 %"$f_string_fptr_942"(i8* %"$f_string_envptr_943", %TName_List_String* %"$nil_string_944") + store %Uint32 %"$f_string_call_945", %Uint32* %"$f_string_7", align 4 + %"$$f_string_7_946" = load %Uint32, %Uint32* %"$f_string_7", align 4 + store %Uint32 %"$$f_string_7_946", %Uint32* %a, align 4 + %"$gasrem_947" = load i64, i64* @_gasrem, align 8 + %"$gascmp_948" = icmp ugt i64 1, %"$gasrem_947" + br i1 %"$gascmp_948", label %"$out_of_gas_949", label %"$have_gas_950" + +"$out_of_gas_949": ; preds = %"$have_gas_939" + call void @_out_of_gas() + br label %"$have_gas_950" + +"$have_gas_950": ; preds = %"$out_of_gas_949", %"$have_gas_939" + %"$consume_951" = sub i64 %"$gasrem_947", 1 + store i64 %"$consume_951", i64* @_gasrem, align 8 %b = alloca %Uint32, align 8 - %"$gasrem_1002" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1003" = icmp ugt i64 1, %"$gasrem_1002" - br i1 %"$gascmp_1003", label %"$out_of_gas_1004", label %"$have_gas_1005" - -"$out_of_gas_1004": ; preds = %"$have_gas_1000" - call void @_out_of_gas() - br label %"$have_gas_1005" - -"$have_gas_1005": ; preds = %"$out_of_gas_1004", %"$have_gas_1000" - %"$consume_1006" = sub i64 %"$gasrem_1002", 1 - store i64 %"$consume_1006", i64* @_gasrem, align 8 - %"$f_bystr20_11" = alloca %Uint32, align 8 - %"$f_bystr20_1007" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8 - %"$f_bystr20_fptr_1008" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_1007", 0 - %"$f_bystr20_envptr_1009" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_1007", 1 - %"$nil_bystr20_1010" = load %TName_List_ByStr20*, %TName_List_ByStr20** %nil_bystr20, align 8 - %"$f_bystr20_call_1011" = call %Uint32 %"$f_bystr20_fptr_1008"(i8* %"$f_bystr20_envptr_1009", %TName_List_ByStr20* %"$nil_bystr20_1010") - store %Uint32 %"$f_bystr20_call_1011", %Uint32* %"$f_bystr20_11", align 4 - %"$$f_bystr20_11_1012" = load %Uint32, %Uint32* %"$f_bystr20_11", align 4 - store %Uint32 %"$$f_bystr20_11_1012", %Uint32* %b, align 4 - %"$gasrem_1013" = load i64, i64* @_gasrem, align 8 - %"$gascmp_1014" = icmp ugt i64 4, %"$gasrem_1013" - br i1 %"$gascmp_1014", label %"$out_of_gas_1015", label %"$have_gas_1016" - -"$out_of_gas_1015": ; preds = %"$have_gas_1005" - call void @_out_of_gas() - br label %"$have_gas_1016" - -"$have_gas_1016": ; preds = %"$out_of_gas_1015", %"$have_gas_1005" - %"$consume_1017" = sub i64 %"$gasrem_1013", 4 - store i64 %"$consume_1017", i64* @_gasrem, align 8 - %"$a_1018" = load %Uint32, %Uint32* %a, align 4 - %"$b_1019" = load %Uint32, %Uint32* %b, align 4 - %"$add_call_1020" = call %Uint32 @_add_Uint32(%Uint32 %"$a_1018", %Uint32 %"$b_1019") - store %Uint32 %"$add_call_1020", %Uint32* %"$expr_44", align 4 - %"$$expr_44_1021" = load %Uint32, %Uint32* %"$expr_44", align 4 - ret %Uint32 %"$$expr_44_1021" + %"$gasrem_952" = load i64, i64* @_gasrem, align 8 + %"$gascmp_953" = icmp ugt i64 1, %"$gasrem_952" + br i1 %"$gascmp_953", label %"$out_of_gas_954", label %"$have_gas_955" + +"$out_of_gas_954": ; preds = %"$have_gas_950" + call void @_out_of_gas() + br label %"$have_gas_955" + +"$have_gas_955": ; preds = %"$out_of_gas_954", %"$have_gas_950" + %"$consume_956" = sub i64 %"$gasrem_952", 1 + store i64 %"$consume_956", i64* @_gasrem, align 8 + %"$f_bystr20_8" = alloca %Uint32, align 8 + %"$f_bystr20_957" = load { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }, { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* }* %f_bystr20, align 8 + %"$f_bystr20_fptr_958" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_957", 0 + %"$f_bystr20_envptr_959" = extractvalue { %Uint32 (i8*, %TName_List_ByStr20*)*, i8* } %"$f_bystr20_957", 1 + %"$nil_bystr20_960" = load %TName_List_ByStr20*, %TName_List_ByStr20** %nil_bystr20, align 8 + %"$f_bystr20_call_961" = call %Uint32 %"$f_bystr20_fptr_958"(i8* %"$f_bystr20_envptr_959", %TName_List_ByStr20* %"$nil_bystr20_960") + store %Uint32 %"$f_bystr20_call_961", %Uint32* %"$f_bystr20_8", align 4 + %"$$f_bystr20_8_962" = load %Uint32, %Uint32* %"$f_bystr20_8", align 4 + store %Uint32 %"$$f_bystr20_8_962", %Uint32* %b, align 4 + %"$gasrem_963" = load i64, i64* @_gasrem, align 8 + %"$gascmp_964" = icmp ugt i64 4, %"$gasrem_963" + br i1 %"$gascmp_964", label %"$out_of_gas_965", label %"$have_gas_966" + +"$out_of_gas_965": ; preds = %"$have_gas_955" + call void @_out_of_gas() + br label %"$have_gas_966" + +"$have_gas_966": ; preds = %"$out_of_gas_965", %"$have_gas_955" + %"$consume_967" = sub i64 %"$gasrem_963", 4 + store i64 %"$consume_967", i64* @_gasrem, align 8 + %"$a_968" = load %Uint32, %Uint32* %a, align 4 + %"$b_969" = load %Uint32, %Uint32* %b, align 4 + %"$add_call_970" = call %Uint32 @_add_Uint32(%Uint32 %"$a_968", %Uint32 %"$b_969") + store %Uint32 %"$add_call_970", %Uint32* %"$expr_41", align 4 + %"$$expr_41_971" = load %Uint32, %Uint32* %"$expr_41", align 4 + ret %Uint32 %"$$expr_41_971" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_1022" = call %Uint32 @_scilla_expr_fun(i8* null) - %"$pval_1023" = alloca %Uint32, align 8 - %"$memvoidcast_1024" = bitcast %Uint32* %"$pval_1023" to i8* - store %Uint32 %"$exprval_1022", %Uint32* %"$pval_1023", align 4 - %"$execptr_load_1025" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_1025", %_TyDescrTy_Typ* @"$TyDescr_Uint32_63", i8* %"$memvoidcast_1024") + %"$exprval_972" = call %Uint32 @_scilla_expr_fun(i8* null) + %"$pval_973" = alloca %Uint32, align 8 + %"$memvoidcast_974" = bitcast %Uint32* %"$pval_973" to i8* + store %Uint32 %"$exprval_972", %Uint32* %"$pval_973", align 4 + %"$execptr_load_975" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_975", %_TyDescrTy_Typ* @"$TyDescr_Uint32_56", i8* %"$memvoidcast_974") ret void } diff --git a/tests/codegen/expr/gold/pm1.scilexp.gold b/tests/codegen/expr/gold/pm1.scilexp.gold index b9aefd04..ed21cd79 100644 --- a/tests/codegen/expr/gold/pm1.scilexp.gold +++ b/tests/codegen/expr/gold/pm1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/pm2.scilexp.gold b/tests/codegen/expr/gold/pm2.scilexp.gold index 51111078..8d4b2700 100644 --- a/tests/codegen/expr/gold/pm2.scilexp.gold +++ b/tests/codegen/expr/gold/pm2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/pm3.scilexp.gold b/tests/codegen/expr/gold/pm3.scilexp.gold index 80ddbaf3..e41db689 100644 --- a/tests/codegen/expr/gold/pm3.scilexp.gold +++ b/tests/codegen/expr/gold/pm3.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/pm4.scilexp.gold b/tests/codegen/expr/gold/pm4.scilexp.gold index 813f2645..3e8f50fe 100644 --- a/tests/codegen/expr/gold/pm4.scilexp.gold +++ b/tests/codegen/expr/gold/pm4.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/pm5.scilexp.gold b/tests/codegen/expr/gold/pm5.scilexp.gold index 265a4406..a705baed 100644 --- a/tests/codegen/expr/gold/pm5.scilexp.gold +++ b/tests/codegen/expr/gold/pm5.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/pm6.scilexp.gold b/tests/codegen/expr/gold/pm6.scilexp.gold index 90d6124e..32a710df 100644 --- a/tests/codegen/expr/gold/pm6.scilexp.gold +++ b/tests/codegen/expr/gold/pm6.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_10" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/pm7.scilexp.gold b/tests/codegen/expr/gold/pm7.scilexp.gold index adfc5bb0..be27d2ab 100644 --- a/tests/codegen/expr/gold/pm7.scilexp.gold +++ b/tests/codegen/expr/gold/pm7.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_14" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/sdivtests1.scilexp.gold b/tests/codegen/expr/gold/sdivtests1.scilexp.gold index 65496a4d..cf8725b1 100644 --- a/tests/codegen/expr/gold/sdivtests1.scilexp.gold +++ b/tests/codegen/expr/gold/sdivtests1.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/sdivtests2.scilexp.gold b/tests/codegen/expr/gold/sdivtests2.scilexp.gold index 6d70149f..a1111cf3 100644 --- a/tests/codegen/expr/gold/sdivtests2.scilexp.gold +++ b/tests/codegen/expr/gold/sdivtests2.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/sdivtests3.scilexp.gold b/tests/codegen/expr/gold/sdivtests3.scilexp.gold index ab85705d..36f57a99 100644 --- a/tests/codegen/expr/gold/sdivtests3.scilexp.gold +++ b/tests/codegen/expr/gold/sdivtests3.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/sdivtests4.scilexp.gold b/tests/codegen/expr/gold/sdivtests4.scilexp.gold index 33870f5e..d79d1e0a 100644 --- a/tests/codegen/expr/gold/sdivtests4.scilexp.gold +++ b/tests/codegen/expr/gold/sdivtests4.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/simple-fun.scilexp.gold b/tests/codegen/expr/gold/simple-fun.scilexp.gold index bcdfc87e..e412ad09 100644 --- a/tests/codegen/expr/gold/simple-fun.scilexp.gold +++ b/tests/codegen/expr/gold/simple-fun.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/simple_ho.scilexp.gold b/tests/codegen/expr/gold/simple_ho.scilexp.gold index a36ec934..88f23c79 100644 --- a/tests/codegen/expr/gold/simple_ho.scilexp.gold +++ b/tests/codegen/expr/gold/simple_ho.scilexp.gold @@ -1,160 +1,126 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" -%"$TyDescrTy_PrimTyp_10" = type { i32, i32 } +%"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } -%"$ParamDescr_147" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%"$ParamDescr_123" = type { %ParamDescrString, %_TyDescrTy_Typ* } %ParamDescrString = type { i8*, i32 } -%"$TransDescr_148" = type { %ParamDescrString, i32, %"$ParamDescr_147"* } -%"$$fundef_8_env_45" = type {} +%"$TransDescr_124" = type { %ParamDescrString, i32, %"$ParamDescr_123"* } +%"$$fundef_4_env_41" = type {} %Int32 = type { i32 } -%"$$fundef_6_env_46" = type { { %Int32 (i8*, %Int32)*, i8* } } -%"$$fundef_4_env_47" = type {} +%"$$fundef_2_env_42" = type {} @_execptr = global i8* null @_gasrem = global i64 0 -@"$TyDescr_Int32_Prim_11" = global %"$TyDescrTy_PrimTyp_10" zeroinitializer -@"$TyDescr_Int32_12" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int32_Prim_11" to i8*) } -@"$TyDescr_Uint32_Prim_13" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 0 } -@"$TyDescr_Uint32_14" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint32_Prim_13" to i8*) } -@"$TyDescr_Int64_Prim_15" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 1 } -@"$TyDescr_Int64_16" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int64_Prim_15" to i8*) } -@"$TyDescr_Uint64_Prim_17" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 1 } -@"$TyDescr_Uint64_18" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint64_Prim_17" to i8*) } -@"$TyDescr_Int128_Prim_19" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 2 } -@"$TyDescr_Int128_20" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int128_Prim_19" to i8*) } -@"$TyDescr_Uint128_Prim_21" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 2 } -@"$TyDescr_Uint128_22" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint128_Prim_21" to i8*) } -@"$TyDescr_Int256_Prim_23" = global %"$TyDescrTy_PrimTyp_10" { i32 0, i32 3 } -@"$TyDescr_Int256_24" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Int256_Prim_23" to i8*) } -@"$TyDescr_Uint256_Prim_25" = global %"$TyDescrTy_PrimTyp_10" { i32 1, i32 3 } -@"$TyDescr_Uint256_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Uint256_Prim_25" to i8*) } -@"$TyDescr_String_Prim_27" = global %"$TyDescrTy_PrimTyp_10" { i32 2, i32 0 } -@"$TyDescr_String_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_String_Prim_27" to i8*) } -@"$TyDescr_Bnum_Prim_29" = global %"$TyDescrTy_PrimTyp_10" { i32 3, i32 0 } -@"$TyDescr_Bnum_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Bnum_Prim_29" to i8*) } -@"$TyDescr_Message_Prim_31" = global %"$TyDescrTy_PrimTyp_10" { i32 4, i32 0 } -@"$TyDescr_Message_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Message_Prim_31" to i8*) } -@"$TyDescr_Event_Prim_33" = global %"$TyDescrTy_PrimTyp_10" { i32 5, i32 0 } -@"$TyDescr_Event_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Event_Prim_33" to i8*) } -@"$TyDescr_Exception_Prim_35" = global %"$TyDescrTy_PrimTyp_10" { i32 6, i32 0 } -@"$TyDescr_Exception_36" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Exception_Prim_35" to i8*) } -@"$TyDescr_Bystr_Prim_37" = global %"$TyDescrTy_PrimTyp_10" { i32 7, i32 0 } -@"$TyDescr_Bystr_38" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_10"* @"$TyDescr_Bystr_Prim_37" to i8*) } -@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_34", %_TyDescrTy_Typ* @"$TyDescr_Int64_16", %_TyDescrTy_Typ* @"$TyDescr_Uint256_26", %_TyDescrTy_Typ* @"$TyDescr_Uint32_14", %_TyDescrTy_Typ* @"$TyDescr_Uint64_18", %_TyDescrTy_Typ* @"$TyDescr_Bnum_30", %_TyDescrTy_Typ* @"$TyDescr_Uint128_22", %_TyDescrTy_Typ* @"$TyDescr_Exception_36", %_TyDescrTy_Typ* @"$TyDescr_String_28", %_TyDescrTy_Typ* @"$TyDescr_Int256_24", %_TyDescrTy_Typ* @"$TyDescr_Int128_20", %_TyDescrTy_Typ* @"$TyDescr_Bystr_38", %_TyDescrTy_Typ* @"$TyDescr_Message_32", %_TyDescrTy_Typ* @"$TyDescr_Int32_12"] +@"$TyDescr_Int32_Prim_7" = global %"$TyDescrTy_PrimTyp_6" zeroinitializer +@"$TyDescr_Int32_8" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int32_Prim_7" to i8*) } +@"$TyDescr_Uint32_Prim_9" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 0 } +@"$TyDescr_Uint32_10" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint32_Prim_9" to i8*) } +@"$TyDescr_Int64_Prim_11" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 1 } +@"$TyDescr_Int64_12" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int64_Prim_11" to i8*) } +@"$TyDescr_Uint64_Prim_13" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 1 } +@"$TyDescr_Uint64_14" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint64_Prim_13" to i8*) } +@"$TyDescr_Int128_Prim_15" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 2 } +@"$TyDescr_Int128_16" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int128_Prim_15" to i8*) } +@"$TyDescr_Uint128_Prim_17" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 2 } +@"$TyDescr_Uint128_18" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint128_Prim_17" to i8*) } +@"$TyDescr_Int256_Prim_19" = global %"$TyDescrTy_PrimTyp_6" { i32 0, i32 3 } +@"$TyDescr_Int256_20" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Int256_Prim_19" to i8*) } +@"$TyDescr_Uint256_Prim_21" = global %"$TyDescrTy_PrimTyp_6" { i32 1, i32 3 } +@"$TyDescr_Uint256_22" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Uint256_Prim_21" to i8*) } +@"$TyDescr_String_Prim_23" = global %"$TyDescrTy_PrimTyp_6" { i32 2, i32 0 } +@"$TyDescr_String_24" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_String_Prim_23" to i8*) } +@"$TyDescr_Bnum_Prim_25" = global %"$TyDescrTy_PrimTyp_6" { i32 3, i32 0 } +@"$TyDescr_Bnum_26" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Bnum_Prim_25" to i8*) } +@"$TyDescr_Message_Prim_27" = global %"$TyDescrTy_PrimTyp_6" { i32 4, i32 0 } +@"$TyDescr_Message_28" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Message_Prim_27" to i8*) } +@"$TyDescr_Event_Prim_29" = global %"$TyDescrTy_PrimTyp_6" { i32 5, i32 0 } +@"$TyDescr_Event_30" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Event_Prim_29" to i8*) } +@"$TyDescr_Exception_Prim_31" = global %"$TyDescrTy_PrimTyp_6" { i32 6, i32 0 } +@"$TyDescr_Exception_32" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Exception_Prim_31" to i8*) } +@"$TyDescr_Bystr_Prim_33" = global %"$TyDescrTy_PrimTyp_6" { i32 7, i32 0 } +@"$TyDescr_Bystr_34" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_6"* @"$TyDescr_Bystr_Prim_33" to i8*) } +@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_30", %_TyDescrTy_Typ* @"$TyDescr_Int64_12", %_TyDescrTy_Typ* @"$TyDescr_Uint256_22", %_TyDescrTy_Typ* @"$TyDescr_Uint32_10", %_TyDescrTy_Typ* @"$TyDescr_Uint64_14", %_TyDescrTy_Typ* @"$TyDescr_Bnum_26", %_TyDescrTy_Typ* @"$TyDescr_Uint128_18", %_TyDescrTy_Typ* @"$TyDescr_Exception_32", %_TyDescrTy_Typ* @"$TyDescr_String_24", %_TyDescrTy_Typ* @"$TyDescr_Int256_20", %_TyDescrTy_Typ* @"$TyDescr_Int128_16", %_TyDescrTy_Typ* @"$TyDescr_Bystr_34", %_TyDescrTy_Typ* @"$TyDescr_Message_28", %_TyDescrTy_Typ* @"$TyDescr_Int32_8"] @_tydescr_table_length = constant i32 14 -@_contract_parameters = constant [0 x %"$ParamDescr_147"] zeroinitializer +@_contract_parameters = constant [0 x %"$ParamDescr_123"] zeroinitializer @_contract_parameters_length = constant i32 0 -@_transition_parameters = constant [0 x %"$TransDescr_148"] zeroinitializer +@_transition_parameters = constant [0 x %"$TransDescr_124"] zeroinitializer @_transition_parameters_length = constant i32 0 -define internal %Int32 @"$fundef_8"(%"$$fundef_8_env_45"* %0, %Int32 %1) { +define internal %Int32 @"$fundef_4"(%"$$fundef_4_env_41"* %0, %Int32 %1) { entry: - %"$retval_9" = alloca %Int32, align 8 - %"$gasrem_72" = load i64, i64* @_gasrem, align 8 - %"$gascmp_73" = icmp ugt i64 1, %"$gasrem_72" - br i1 %"$gascmp_73", label %"$out_of_gas_74", label %"$have_gas_75" + %"$retval_5" = alloca %Int32, align 8 + %"$gasrem_53" = load i64, i64* @_gasrem, align 8 + %"$gascmp_54" = icmp ugt i64 1, %"$gasrem_53" + br i1 %"$gascmp_54", label %"$out_of_gas_55", label %"$have_gas_56" -"$out_of_gas_74": ; preds = %entry +"$out_of_gas_55": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_75" + br label %"$have_gas_56" -"$have_gas_75": ; preds = %"$out_of_gas_74", %entry - %"$consume_76" = sub i64 %"$gasrem_72", 1 - store i64 %"$consume_76", i64* @_gasrem, align 8 +"$have_gas_56": ; preds = %"$out_of_gas_55", %entry + %"$consume_57" = sub i64 %"$gasrem_53", 1 + store i64 %"$consume_57", i64* @_gasrem, align 8 %b = alloca %Int32, align 8 - %"$gasrem_77" = load i64, i64* @_gasrem, align 8 - %"$gascmp_78" = icmp ugt i64 1, %"$gasrem_77" - br i1 %"$gascmp_78", label %"$out_of_gas_79", label %"$have_gas_80" + %"$gasrem_58" = load i64, i64* @_gasrem, align 8 + %"$gascmp_59" = icmp ugt i64 1, %"$gasrem_58" + br i1 %"$gascmp_59", label %"$out_of_gas_60", label %"$have_gas_61" -"$out_of_gas_79": ; preds = %"$have_gas_75" +"$out_of_gas_60": ; preds = %"$have_gas_56" call void @_out_of_gas() - br label %"$have_gas_80" + br label %"$have_gas_61" -"$have_gas_80": ; preds = %"$out_of_gas_79", %"$have_gas_75" - %"$consume_81" = sub i64 %"$gasrem_77", 1 - store i64 %"$consume_81", i64* @_gasrem, align 8 +"$have_gas_61": ; preds = %"$out_of_gas_60", %"$have_gas_56" + %"$consume_62" = sub i64 %"$gasrem_58", 1 + store i64 %"$consume_62", i64* @_gasrem, align 8 store %Int32 { i32 1 }, %Int32* %b, align 4 - %"$gasrem_82" = load i64, i64* @_gasrem, align 8 - %"$gascmp_83" = icmp ugt i64 4, %"$gasrem_82" - br i1 %"$gascmp_83", label %"$out_of_gas_84", label %"$have_gas_85" + %"$gasrem_63" = load i64, i64* @_gasrem, align 8 + %"$gascmp_64" = icmp ugt i64 4, %"$gasrem_63" + br i1 %"$gascmp_64", label %"$out_of_gas_65", label %"$have_gas_66" -"$out_of_gas_84": ; preds = %"$have_gas_80" +"$out_of_gas_65": ; preds = %"$have_gas_61" call void @_out_of_gas() - br label %"$have_gas_85" - -"$have_gas_85": ; preds = %"$out_of_gas_84", %"$have_gas_80" - %"$consume_86" = sub i64 %"$gasrem_82", 4 - store i64 %"$consume_86", i64* @_gasrem, align 8 - %"$b_87" = load %Int32, %Int32* %b, align 4 - %"$add_call_88" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %"$b_87") - store %Int32 %"$add_call_88", %Int32* %"$retval_9", align 4 - %"$$retval_9_89" = load %Int32, %Int32* %"$retval_9", align 4 - ret %Int32 %"$$retval_9_89" + br label %"$have_gas_66" + +"$have_gas_66": ; preds = %"$out_of_gas_65", %"$have_gas_61" + %"$consume_67" = sub i64 %"$gasrem_63", 4 + store i64 %"$consume_67", i64* @_gasrem, align 8 + %"$b_68" = load %Int32, %Int32* %b, align 4 + %"$add_call_69" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %"$b_68") + store %Int32 %"$add_call_69", %Int32* %"$retval_5", align 4 + %"$$retval_5_70" = load %Int32, %Int32* %"$retval_5", align 4 + ret %Int32 %"$$retval_5_70" } -define internal %Int32 @"$fundef_6"(%"$$fundef_6_env_46"* %0, %Int32 %1) { +define internal %Int32 @"$fundef_2"(%"$$fundef_2_env_42"* %0, { %Int32 (i8*, %Int32)*, i8* } %1, %Int32 %2) { entry: - %"$$fundef_6_env_h_59" = getelementptr inbounds %"$$fundef_6_env_46", %"$$fundef_6_env_46"* %0, i32 0, i32 0 - %"$h_envload_60" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$$fundef_6_env_h_59", align 8 - %h = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 - store { %Int32 (i8*, %Int32)*, i8* } %"$h_envload_60", { %Int32 (i8*, %Int32)*, i8* }* %h, align 8 - %"$retval_7" = alloca %Int32, align 8 - %"$gasrem_61" = load i64, i64* @_gasrem, align 8 - %"$gascmp_62" = icmp ugt i64 1, %"$gasrem_61" - br i1 %"$gascmp_62", label %"$out_of_gas_63", label %"$have_gas_64" - -"$out_of_gas_63": ; preds = %entry + %"$retval_3" = alloca %Int32, align 8 + %"$gasrem_43" = load i64, i64* @_gasrem, align 8 + %"$gascmp_44" = icmp ugt i64 1, %"$gasrem_43" + br i1 %"$gascmp_44", label %"$out_of_gas_45", label %"$have_gas_46" + +"$out_of_gas_45": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_64" + br label %"$have_gas_46" -"$have_gas_64": ; preds = %"$out_of_gas_63", %entry - %"$consume_65" = sub i64 %"$gasrem_61", 1 - store i64 %"$consume_65", i64* @_gasrem, align 8 +"$have_gas_46": ; preds = %"$out_of_gas_45", %entry + %"$consume_47" = sub i64 %"$gasrem_43", 1 + store i64 %"$consume_47", i64* @_gasrem, align 8 %"$h_0" = alloca %Int32, align 8 - %"$h_66" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %h, align 8 - %"$h_fptr_67" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$h_66", 0 - %"$h_envptr_68" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$h_66", 1 - %"$h_call_69" = call %Int32 %"$h_fptr_67"(i8* %"$h_envptr_68", %Int32 %1) - store %Int32 %"$h_call_69", %Int32* %"$h_0", align 4 - %"$$h_0_70" = load %Int32, %Int32* %"$h_0", align 4 - store %Int32 %"$$h_0_70", %Int32* %"$retval_7", align 4 - %"$$retval_7_71" = load %Int32, %Int32* %"$retval_7", align 4 - ret %Int32 %"$$retval_7_71" -} - -define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_4"(%"$$fundef_4_env_47"* %0, { %Int32 (i8*, %Int32)*, i8* } %1) { -entry: - %"$retval_5" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 - %"$gasrem_48" = load i64, i64* @_gasrem, align 8 - %"$gascmp_49" = icmp ugt i64 1, %"$gasrem_48" - br i1 %"$gascmp_49", label %"$out_of_gas_50", label %"$have_gas_51" - -"$out_of_gas_50": ; preds = %entry - call void @_out_of_gas() - br label %"$have_gas_51" - -"$have_gas_51": ; preds = %"$out_of_gas_50", %entry - %"$consume_52" = sub i64 %"$gasrem_48", 1 - store i64 %"$consume_52", i64* @_gasrem, align 8 - %"$$fundef_6_envp_53_load" = load i8*, i8** @_execptr, align 8 - %"$$fundef_6_envp_53_salloc" = call i8* @_salloc(i8* %"$$fundef_6_envp_53_load", i64 16) - %"$$fundef_6_envp_53" = bitcast i8* %"$$fundef_6_envp_53_salloc" to %"$$fundef_6_env_46"* - %"$$fundef_6_env_voidp_55" = bitcast %"$$fundef_6_env_46"* %"$$fundef_6_envp_53" to i8* - %"$$fundef_6_cloval_56" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_6_env_46"*, %Int32)* @"$fundef_6" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_6_env_voidp_55", 1 - %"$$fundef_6_env_h_57" = getelementptr inbounds %"$$fundef_6_env_46", %"$$fundef_6_env_46"* %"$$fundef_6_envp_53", i32 0, i32 0 - store { %Int32 (i8*, %Int32)*, i8* } %1, { %Int32 (i8*, %Int32)*, i8* }* %"$$fundef_6_env_h_57", align 8 - store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_6_cloval_56", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_5", align 8 - %"$$retval_5_58" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_5", align 8 - ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_5_58" + %"$h_fptr_48" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %1, 0 + %"$h_envptr_49" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %1, 1 + %"$h_call_50" = call %Int32 %"$h_fptr_48"(i8* %"$h_envptr_49", %Int32 %2) + store %Int32 %"$h_call_50", %Int32* %"$h_0", align 4 + %"$$h_0_51" = load %Int32, %Int32* %"$h_0", align 4 + store %Int32 %"$$h_0_51", %Int32* %"$retval_3", align 4 + %"$$retval_3_52" = load %Int32, %Int32* %"$retval_3", align 4 + ret %Int32 %"$$retval_3_52" } declare void @_out_of_gas() -declare i8* @_salloc(i8*, i64) - declare %Int32 @_add_Int32(%Int32, %Int32) define void @_init_libs() { @@ -164,119 +130,110 @@ entry: define internal %Int32 @_scilla_expr_fun(i8* %0) { entry: - %"$expr_3" = alloca %Int32, align 8 - %"$gasrem_90" = load i64, i64* @_gasrem, align 8 - %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" - br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" + %"$expr_1" = alloca %Int32, align 8 + %"$gasrem_71" = load i64, i64* @_gasrem, align 8 + %"$gascmp_72" = icmp ugt i64 1, %"$gasrem_71" + br i1 %"$gascmp_72", label %"$out_of_gas_73", label %"$have_gas_74" -"$out_of_gas_92": ; preds = %entry +"$out_of_gas_73": ; preds = %entry call void @_out_of_gas() - br label %"$have_gas_93" + br label %"$have_gas_74" -"$have_gas_93": ; preds = %"$out_of_gas_92", %entry - %"$consume_94" = sub i64 %"$gasrem_90", 1 - store i64 %"$consume_94", i64* @_gasrem, align 8 - %ho = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* }, align 8 - %"$gasrem_95" = load i64, i64* @_gasrem, align 8 - %"$gascmp_96" = icmp ugt i64 1, %"$gasrem_95" - br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" +"$have_gas_74": ; preds = %"$out_of_gas_73", %entry + %"$consume_75" = sub i64 %"$gasrem_71", 1 + store i64 %"$consume_75", i64* @_gasrem, align 8 + %ho = alloca { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* }, align 8 + %"$gasrem_76" = load i64, i64* @_gasrem, align 8 + %"$gascmp_77" = icmp ugt i64 2, %"$gasrem_76" + br i1 %"$gascmp_77", label %"$out_of_gas_78", label %"$have_gas_79" -"$out_of_gas_97": ; preds = %"$have_gas_93" +"$out_of_gas_78": ; preds = %"$have_gas_74" call void @_out_of_gas() - br label %"$have_gas_98" + br label %"$have_gas_79" -"$have_gas_98": ; preds = %"$out_of_gas_97", %"$have_gas_93" - %"$consume_99" = sub i64 %"$gasrem_95", 1 - store i64 %"$consume_99", i64* @_gasrem, align 8 - store { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_4_env_47"*, { %Int32 (i8*, %Int32)*, i8* })* @"$fundef_4" to { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* }* %ho, align 8 - %"$gasrem_103" = load i64, i64* @_gasrem, align 8 - %"$gascmp_104" = icmp ugt i64 1, %"$gasrem_103" - br i1 %"$gascmp_104", label %"$out_of_gas_105", label %"$have_gas_106" +"$have_gas_79": ; preds = %"$out_of_gas_78", %"$have_gas_74" + %"$consume_80" = sub i64 %"$gasrem_76", 2 + store i64 %"$consume_80", i64* @_gasrem, align 8 + store { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* } { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)* bitcast (%Int32 (%"$$fundef_2_env_42"*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)* @"$fundef_2" to %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*), i8* null }, { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* }* %ho, align 8 + %"$gasrem_84" = load i64, i64* @_gasrem, align 8 + %"$gascmp_85" = icmp ugt i64 1, %"$gasrem_84" + br i1 %"$gascmp_85", label %"$out_of_gas_86", label %"$have_gas_87" -"$out_of_gas_105": ; preds = %"$have_gas_98" +"$out_of_gas_86": ; preds = %"$have_gas_79" call void @_out_of_gas() - br label %"$have_gas_106" + br label %"$have_gas_87" -"$have_gas_106": ; preds = %"$out_of_gas_105", %"$have_gas_98" - %"$consume_107" = sub i64 %"$gasrem_103", 1 - store i64 %"$consume_107", i64* @_gasrem, align 8 +"$have_gas_87": ; preds = %"$out_of_gas_86", %"$have_gas_79" + %"$consume_88" = sub i64 %"$gasrem_84", 1 + store i64 %"$consume_88", i64* @_gasrem, align 8 %inc = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 - %"$gasrem_108" = load i64, i64* @_gasrem, align 8 - %"$gascmp_109" = icmp ugt i64 1, %"$gasrem_108" - br i1 %"$gascmp_109", label %"$out_of_gas_110", label %"$have_gas_111" + %"$gasrem_89" = load i64, i64* @_gasrem, align 8 + %"$gascmp_90" = icmp ugt i64 1, %"$gasrem_89" + br i1 %"$gascmp_90", label %"$out_of_gas_91", label %"$have_gas_92" -"$out_of_gas_110": ; preds = %"$have_gas_106" +"$out_of_gas_91": ; preds = %"$have_gas_87" call void @_out_of_gas() - br label %"$have_gas_111" + br label %"$have_gas_92" -"$have_gas_111": ; preds = %"$out_of_gas_110", %"$have_gas_106" - %"$consume_112" = sub i64 %"$gasrem_108", 1 - store i64 %"$consume_112", i64* @_gasrem, align 8 - store { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_8_env_45"*, %Int32)* @"$fundef_8" to %Int32 (i8*, %Int32)*), i8* null }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8 - %"$gasrem_116" = load i64, i64* @_gasrem, align 8 - %"$gascmp_117" = icmp ugt i64 1, %"$gasrem_116" - br i1 %"$gascmp_117", label %"$out_of_gas_118", label %"$have_gas_119" +"$have_gas_92": ; preds = %"$out_of_gas_91", %"$have_gas_87" + %"$consume_93" = sub i64 %"$gasrem_89", 1 + store i64 %"$consume_93", i64* @_gasrem, align 8 + store { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_4_env_41"*, %Int32)* @"$fundef_4" to %Int32 (i8*, %Int32)*), i8* null }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8 + %"$gasrem_97" = load i64, i64* @_gasrem, align 8 + %"$gascmp_98" = icmp ugt i64 1, %"$gasrem_97" + br i1 %"$gascmp_98", label %"$out_of_gas_99", label %"$have_gas_100" -"$out_of_gas_118": ; preds = %"$have_gas_111" +"$out_of_gas_99": ; preds = %"$have_gas_92" call void @_out_of_gas() - br label %"$have_gas_119" + br label %"$have_gas_100" -"$have_gas_119": ; preds = %"$out_of_gas_118", %"$have_gas_111" - %"$consume_120" = sub i64 %"$gasrem_116", 1 - store i64 %"$consume_120", i64* @_gasrem, align 8 +"$have_gas_100": ; preds = %"$out_of_gas_99", %"$have_gas_92" + %"$consume_101" = sub i64 %"$gasrem_97", 1 + store i64 %"$consume_101", i64* @_gasrem, align 8 %hundred = alloca %Int32, align 8 - %"$gasrem_121" = load i64, i64* @_gasrem, align 8 - %"$gascmp_122" = icmp ugt i64 1, %"$gasrem_121" - br i1 %"$gascmp_122", label %"$out_of_gas_123", label %"$have_gas_124" + %"$gasrem_102" = load i64, i64* @_gasrem, align 8 + %"$gascmp_103" = icmp ugt i64 1, %"$gasrem_102" + br i1 %"$gascmp_103", label %"$out_of_gas_104", label %"$have_gas_105" -"$out_of_gas_123": ; preds = %"$have_gas_119" +"$out_of_gas_104": ; preds = %"$have_gas_100" call void @_out_of_gas() - br label %"$have_gas_124" + br label %"$have_gas_105" -"$have_gas_124": ; preds = %"$out_of_gas_123", %"$have_gas_119" - %"$consume_125" = sub i64 %"$gasrem_121", 1 - store i64 %"$consume_125", i64* @_gasrem, align 8 +"$have_gas_105": ; preds = %"$out_of_gas_104", %"$have_gas_100" + %"$consume_106" = sub i64 %"$gasrem_102", 1 + store i64 %"$consume_106", i64* @_gasrem, align 8 store %Int32 { i32 100 }, %Int32* %hundred, align 4 - %"$gasrem_126" = load i64, i64* @_gasrem, align 8 - %"$gascmp_127" = icmp ugt i64 1, %"$gasrem_126" - br i1 %"$gascmp_127", label %"$out_of_gas_128", label %"$have_gas_129" + %"$gasrem_107" = load i64, i64* @_gasrem, align 8 + %"$gascmp_108" = icmp ugt i64 1, %"$gasrem_107" + br i1 %"$gascmp_108", label %"$out_of_gas_109", label %"$have_gas_110" -"$out_of_gas_128": ; preds = %"$have_gas_124" +"$out_of_gas_109": ; preds = %"$have_gas_105" call void @_out_of_gas() - br label %"$have_gas_129" - -"$have_gas_129": ; preds = %"$out_of_gas_128", %"$have_gas_124" - %"$consume_130" = sub i64 %"$gasrem_126", 1 - store i64 %"$consume_130", i64* @_gasrem, align 8 - %"$ho_1" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 - %"$ho_131" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* }* %ho, align 8 - %"$ho_fptr_132" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* } %"$ho_131", 0 - %"$ho_envptr_133" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, { %Int32 (i8*, %Int32)*, i8* })*, i8* } %"$ho_131", 1 - %"$inc_134" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8 - %"$ho_call_135" = call { %Int32 (i8*, %Int32)*, i8* } %"$ho_fptr_132"(i8* %"$ho_envptr_133", { %Int32 (i8*, %Int32)*, i8* } %"$inc_134") - store { %Int32 (i8*, %Int32)*, i8* } %"$ho_call_135", { %Int32 (i8*, %Int32)*, i8* }* %"$ho_1", align 8 - %"$ho_2" = alloca %Int32, align 8 - %"$$ho_1_136" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$ho_1", align 8 - %"$$ho_1_fptr_137" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$ho_1_136", 0 - %"$$ho_1_envptr_138" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$ho_1_136", 1 - %"$hundred_139" = load %Int32, %Int32* %hundred, align 4 - %"$$ho_1_call_140" = call %Int32 %"$$ho_1_fptr_137"(i8* %"$$ho_1_envptr_138", %Int32 %"$hundred_139") - store %Int32 %"$$ho_1_call_140", %Int32* %"$ho_2", align 4 - %"$$ho_2_141" = load %Int32, %Int32* %"$ho_2", align 4 - store %Int32 %"$$ho_2_141", %Int32* %"$expr_3", align 4 - %"$$expr_3_142" = load %Int32, %Int32* %"$expr_3", align 4 - ret %Int32 %"$$expr_3_142" + br label %"$have_gas_110" + +"$have_gas_110": ; preds = %"$out_of_gas_109", %"$have_gas_105" + %"$consume_111" = sub i64 %"$gasrem_107", 1 + store i64 %"$consume_111", i64* @_gasrem, align 8 + %"$ho_112" = load { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* }, { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* }* %ho, align 8 + %"$ho_fptr_113" = extractvalue { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* } %"$ho_112", 0 + %"$ho_envptr_114" = extractvalue { %Int32 (i8*, { %Int32 (i8*, %Int32)*, i8* }, %Int32)*, i8* } %"$ho_112", 1 + %"$inc_115" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %inc, align 8 + %"$hundred_116" = load %Int32, %Int32* %hundred, align 4 + %"$ho_call_117" = call %Int32 %"$ho_fptr_113"(i8* %"$ho_envptr_114", { %Int32 (i8*, %Int32)*, i8* } %"$inc_115", %Int32 %"$hundred_116") + store %Int32 %"$ho_call_117", %Int32* %"$expr_1", align 4 + %"$$expr_1_118" = load %Int32, %Int32* %"$expr_1", align 4 + ret %Int32 %"$$expr_1_118" } declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) define void @scilla_main() { entry: - %"$exprval_143" = call %Int32 @_scilla_expr_fun(i8* null) - %"$pval_144" = alloca %Int32, align 8 - %"$memvoidcast_145" = bitcast %Int32* %"$pval_144" to i8* - store %Int32 %"$exprval_143", %Int32* %"$pval_144", align 4 - %"$execptr_load_146" = load i8*, i8** @_execptr, align 8 - call void @_print_scilla_val(i8* %"$execptr_load_146", %_TyDescrTy_Typ* @"$TyDescr_Int32_12", i8* %"$memvoidcast_145") + %"$exprval_119" = call %Int32 @_scilla_expr_fun(i8* null) + %"$pval_120" = alloca %Int32, align 8 + %"$memvoidcast_121" = bitcast %Int32* %"$pval_120" to i8* + store %Int32 %"$exprval_119", %Int32* %"$pval_120", align 4 + %"$execptr_load_122" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_122", %_TyDescrTy_Typ* @"$TyDescr_Int32_8", i8* %"$memvoidcast_121") ret void } diff --git a/tests/codegen/expr/gold/tfun-val.scilexp.gold b/tests/codegen/expr/gold/tfun-val.scilexp.gold index c6d9852c..865f1862 100644 --- a/tests/codegen/expr/gold/tfun-val.scilexp.gold +++ b/tests/codegen/expr/gold/tfun-val.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_5" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/tname_clash.scilexp.gold b/tests/codegen/expr/gold/tname_clash.scilexp.gold index aef533c6..548e789c 100644 --- a/tests/codegen/expr/gold/tname_clash.scilexp.gold +++ b/tests/codegen/expr/gold/tname_clash.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_13" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/typ-inst.scilexp.gold b/tests/codegen/expr/gold/typ-inst.scilexp.gold index 75a36976..6c80bcf8 100644 --- a/tests/codegen/expr/gold/typ-inst.scilexp.gold +++ b/tests/codegen/expr/gold/typ-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_6" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/typ1-inst.scilexp.gold b/tests/codegen/expr/gold/typ1-inst.scilexp.gold index 2515a092..0dec15c8 100644 --- a/tests/codegen/expr/gold/typ1-inst.scilexp.gold +++ b/tests/codegen/expr/gold/typ1-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_11" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/typ2-inst.scilexp.gold b/tests/codegen/expr/gold/typ2-inst.scilexp.gold index 4629c2dc..87e24f47 100644 --- a/tests/codegen/expr/gold/typ2-inst.scilexp.gold +++ b/tests/codegen/expr/gold/typ2-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_29" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/typ3-inst.scilexp.gold b/tests/codegen/expr/gold/typ3-inst.scilexp.gold index 4b6ca09a..628f6d78 100644 --- a/tests/codegen/expr/gold/typ3-inst.scilexp.gold +++ b/tests/codegen/expr/gold/typ3-inst.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_31" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/uint256-fun.scilexp.gold b/tests/codegen/expr/gold/uint256-fun.scilexp.gold index d5bf3cae..33a77b3e 100644 --- a/tests/codegen/expr/gold/uint256-fun.scilexp.gold +++ b/tests/codegen/expr/gold/uint256-fun.scilexp.gold @@ -1,7 +1,7 @@ ; ModuleID = 'scilla_expr' source_filename = "scilla_expr" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" %"$TyDescrTy_PrimTyp_4" = type { i32, i32 } %_TyDescrTy_Typ = type { i32, i8* } diff --git a/tests/codegen/expr/gold/uncurry_simple.scilexp.gold b/tests/codegen/expr/gold/uncurry_simple.scilexp.gold new file mode 100644 index 00000000..cfe418d2 --- /dev/null +++ b/tests/codegen/expr/gold/uncurry_simple.scilexp.gold @@ -0,0 +1,549 @@ +; ModuleID = 'scilla_expr' +source_filename = "scilla_expr" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-darwin19.6.0" + +%"$TyDescrTy_PrimTyp_17" = type { i32, i32 } +%_TyDescrTy_Typ = type { i32, i8* } +%"$ParamDescr_282" = type { %ParamDescrString, %_TyDescrTy_Typ* } +%ParamDescrString = type { i8*, i32 } +%"$TransDescr_283" = type { %ParamDescrString, i32, %"$ParamDescr_282"* } +%"$$fundef_15_env_52" = type { %Int32 } +%Int32 = type { i32 } +%"$$fundef_13_env_53" = type {} +%"$$fundef_11_env_54" = type { %Int32 } +%"$$fundef_9_env_55" = type {} +%"$$fundef_7_env_56" = type {} + +@_execptr = global i8* null +@_gasrem = global i64 0 +@"$TyDescr_Int32_Prim_18" = global %"$TyDescrTy_PrimTyp_17" zeroinitializer +@"$TyDescr_Int32_19" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Int32_Prim_18" to i8*) } +@"$TyDescr_Uint32_Prim_20" = global %"$TyDescrTy_PrimTyp_17" { i32 1, i32 0 } +@"$TyDescr_Uint32_21" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Uint32_Prim_20" to i8*) } +@"$TyDescr_Int64_Prim_22" = global %"$TyDescrTy_PrimTyp_17" { i32 0, i32 1 } +@"$TyDescr_Int64_23" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Int64_Prim_22" to i8*) } +@"$TyDescr_Uint64_Prim_24" = global %"$TyDescrTy_PrimTyp_17" { i32 1, i32 1 } +@"$TyDescr_Uint64_25" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Uint64_Prim_24" to i8*) } +@"$TyDescr_Int128_Prim_26" = global %"$TyDescrTy_PrimTyp_17" { i32 0, i32 2 } +@"$TyDescr_Int128_27" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Int128_Prim_26" to i8*) } +@"$TyDescr_Uint128_Prim_28" = global %"$TyDescrTy_PrimTyp_17" { i32 1, i32 2 } +@"$TyDescr_Uint128_29" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Uint128_Prim_28" to i8*) } +@"$TyDescr_Int256_Prim_30" = global %"$TyDescrTy_PrimTyp_17" { i32 0, i32 3 } +@"$TyDescr_Int256_31" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Int256_Prim_30" to i8*) } +@"$TyDescr_Uint256_Prim_32" = global %"$TyDescrTy_PrimTyp_17" { i32 1, i32 3 } +@"$TyDescr_Uint256_33" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Uint256_Prim_32" to i8*) } +@"$TyDescr_String_Prim_34" = global %"$TyDescrTy_PrimTyp_17" { i32 2, i32 0 } +@"$TyDescr_String_35" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_String_Prim_34" to i8*) } +@"$TyDescr_Bnum_Prim_36" = global %"$TyDescrTy_PrimTyp_17" { i32 3, i32 0 } +@"$TyDescr_Bnum_37" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Bnum_Prim_36" to i8*) } +@"$TyDescr_Message_Prim_38" = global %"$TyDescrTy_PrimTyp_17" { i32 4, i32 0 } +@"$TyDescr_Message_39" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Message_Prim_38" to i8*) } +@"$TyDescr_Event_Prim_40" = global %"$TyDescrTy_PrimTyp_17" { i32 5, i32 0 } +@"$TyDescr_Event_41" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Event_Prim_40" to i8*) } +@"$TyDescr_Exception_Prim_42" = global %"$TyDescrTy_PrimTyp_17" { i32 6, i32 0 } +@"$TyDescr_Exception_43" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Exception_Prim_42" to i8*) } +@"$TyDescr_Bystr_Prim_44" = global %"$TyDescrTy_PrimTyp_17" { i32 7, i32 0 } +@"$TyDescr_Bystr_45" = global %_TyDescrTy_Typ { i32 0, i8* bitcast (%"$TyDescrTy_PrimTyp_17"* @"$TyDescr_Bystr_Prim_44" to i8*) } +@_tydescr_table = constant [14 x %_TyDescrTy_Typ*] [%_TyDescrTy_Typ* @"$TyDescr_Event_41", %_TyDescrTy_Typ* @"$TyDescr_Int64_23", %_TyDescrTy_Typ* @"$TyDescr_Uint256_33", %_TyDescrTy_Typ* @"$TyDescr_Uint32_21", %_TyDescrTy_Typ* @"$TyDescr_Uint64_25", %_TyDescrTy_Typ* @"$TyDescr_Bnum_37", %_TyDescrTy_Typ* @"$TyDescr_Uint128_29", %_TyDescrTy_Typ* @"$TyDescr_Exception_43", %_TyDescrTy_Typ* @"$TyDescr_String_35", %_TyDescrTy_Typ* @"$TyDescr_Int256_31", %_TyDescrTy_Typ* @"$TyDescr_Int128_27", %_TyDescrTy_Typ* @"$TyDescr_Bystr_45", %_TyDescrTy_Typ* @"$TyDescr_Message_39", %_TyDescrTy_Typ* @"$TyDescr_Int32_19"] +@_tydescr_table_length = constant i32 14 +@_contract_parameters = constant [0 x %"$ParamDescr_282"] zeroinitializer +@_contract_parameters_length = constant i32 0 +@_transition_parameters = constant [0 x %"$TransDescr_283"] zeroinitializer +@_transition_parameters_length = constant i32 0 + +define internal %Int32 @"$fundef_15"(%"$$fundef_15_env_52"* %0, %Int32 %1) { +entry: + %"$$fundef_15_env_a__107" = getelementptr inbounds %"$$fundef_15_env_52", %"$$fundef_15_env_52"* %0, i32 0, i32 0 + %"$a__envload_108" = load %Int32, %Int32* %"$$fundef_15_env_a__107", align 4 + %a_ = alloca %Int32, align 8 + store %Int32 %"$a__envload_108", %Int32* %a_, align 4 + %"$retval_16" = alloca %Int32, align 8 + %"$gasrem_109" = load i64, i64* @_gasrem, align 8 + %"$gascmp_110" = icmp ugt i64 4, %"$gasrem_109" + br i1 %"$gascmp_110", label %"$out_of_gas_111", label %"$have_gas_112" + +"$out_of_gas_111": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_112" + +"$have_gas_112": ; preds = %"$out_of_gas_111", %entry + %"$consume_113" = sub i64 %"$gasrem_109", 4 + store i64 %"$consume_113", i64* @_gasrem, align 8 + %"$a__114" = load %Int32, %Int32* %a_, align 4 + %"$add_call_115" = call %Int32 @_add_Int32(%Int32 %"$a__114", %Int32 %1) + store %Int32 %"$add_call_115", %Int32* %"$retval_16", align 4 + %"$$retval_16_116" = load %Int32, %Int32* %"$retval_16", align 4 + ret %Int32 %"$$retval_16_116" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_13"(%"$$fundef_13_env_53"* %0, %Int32 %1) { +entry: + %"$retval_14" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_85" = load i64, i64* @_gasrem, align 8 + %"$gascmp_86" = icmp ugt i64 1, %"$gasrem_85" + br i1 %"$gascmp_86", label %"$out_of_gas_87", label %"$have_gas_88" + +"$out_of_gas_87": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_88" + +"$have_gas_88": ; preds = %"$out_of_gas_87", %entry + %"$consume_89" = sub i64 %"$gasrem_85", 1 + store i64 %"$consume_89", i64* @_gasrem, align 8 + %a_ = alloca %Int32, align 8 + %"$gasrem_90" = load i64, i64* @_gasrem, align 8 + %"$gascmp_91" = icmp ugt i64 1, %"$gasrem_90" + br i1 %"$gascmp_91", label %"$out_of_gas_92", label %"$have_gas_93" + +"$out_of_gas_92": ; preds = %"$have_gas_88" + call void @_out_of_gas() + br label %"$have_gas_93" + +"$have_gas_93": ; preds = %"$out_of_gas_92", %"$have_gas_88" + %"$consume_94" = sub i64 %"$gasrem_90", 1 + store i64 %"$consume_94", i64* @_gasrem, align 8 + store %Int32 %1, %Int32* %a_, align 4 + %"$gasrem_95" = load i64, i64* @_gasrem, align 8 + %"$gascmp_96" = icmp ugt i64 1, %"$gasrem_95" + br i1 %"$gascmp_96", label %"$out_of_gas_97", label %"$have_gas_98" + +"$out_of_gas_97": ; preds = %"$have_gas_93" + call void @_out_of_gas() + br label %"$have_gas_98" + +"$have_gas_98": ; preds = %"$out_of_gas_97", %"$have_gas_93" + %"$consume_99" = sub i64 %"$gasrem_95", 1 + store i64 %"$consume_99", i64* @_gasrem, align 8 + %"$$fundef_15_envp_100_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_15_envp_100_salloc" = call i8* @_salloc(i8* %"$$fundef_15_envp_100_load", i64 4) + %"$$fundef_15_envp_100" = bitcast i8* %"$$fundef_15_envp_100_salloc" to %"$$fundef_15_env_52"* + %"$$fundef_15_env_voidp_102" = bitcast %"$$fundef_15_env_52"* %"$$fundef_15_envp_100" to i8* + %"$$fundef_15_cloval_103" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_15_env_52"*, %Int32)* @"$fundef_15" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_15_env_voidp_102", 1 + %"$$fundef_15_env_a__104" = getelementptr inbounds %"$$fundef_15_env_52", %"$$fundef_15_env_52"* %"$$fundef_15_envp_100", i32 0, i32 0 + %"$a__105" = load %Int32, %Int32* %a_, align 4 + store %Int32 %"$a__105", %Int32* %"$$fundef_15_env_a__104", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_15_cloval_103", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_14", align 8 + %"$$retval_14_106" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_14", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_14_106" +} + +define internal %Int32 @"$fundef_11"(%"$$fundef_11_env_54"* %0, %Int32 %1) { +entry: + %"$$fundef_11_env_a_75" = getelementptr inbounds %"$$fundef_11_env_54", %"$$fundef_11_env_54"* %0, i32 0, i32 0 + %"$a_envload_76" = load %Int32, %Int32* %"$$fundef_11_env_a_75", align 4 + %a = alloca %Int32, align 8 + store %Int32 %"$a_envload_76", %Int32* %a, align 4 + %"$retval_12" = alloca %Int32, align 8 + %"$gasrem_77" = load i64, i64* @_gasrem, align 8 + %"$gascmp_78" = icmp ugt i64 4, %"$gasrem_77" + br i1 %"$gascmp_78", label %"$out_of_gas_79", label %"$have_gas_80" + +"$out_of_gas_79": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_80" + +"$have_gas_80": ; preds = %"$out_of_gas_79", %entry + %"$consume_81" = sub i64 %"$gasrem_77", 4 + store i64 %"$consume_81", i64* @_gasrem, align 8 + %"$a_82" = load %Int32, %Int32* %a, align 4 + %"$sub_call_83" = call %Int32 @_sub_Int32(%Int32 %"$a_82", %Int32 %1) + store %Int32 %"$sub_call_83", %Int32* %"$retval_12", align 4 + %"$$retval_12_84" = load %Int32, %Int32* %"$retval_12", align 4 + ret %Int32 %"$$retval_12_84" +} + +define internal { %Int32 (i8*, %Int32)*, i8* } @"$fundef_9"(%"$$fundef_9_env_55"* %0, %Int32 %1) { +entry: + %"$retval_10" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_64" = load i64, i64* @_gasrem, align 8 + %"$gascmp_65" = icmp ugt i64 1, %"$gasrem_64" + br i1 %"$gascmp_65", label %"$out_of_gas_66", label %"$have_gas_67" + +"$out_of_gas_66": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_67" + +"$have_gas_67": ; preds = %"$out_of_gas_66", %entry + %"$consume_68" = sub i64 %"$gasrem_64", 1 + store i64 %"$consume_68", i64* @_gasrem, align 8 + %"$$fundef_11_envp_69_load" = load i8*, i8** @_execptr, align 8 + %"$$fundef_11_envp_69_salloc" = call i8* @_salloc(i8* %"$$fundef_11_envp_69_load", i64 4) + %"$$fundef_11_envp_69" = bitcast i8* %"$$fundef_11_envp_69_salloc" to %"$$fundef_11_env_54"* + %"$$fundef_11_env_voidp_71" = bitcast %"$$fundef_11_env_54"* %"$$fundef_11_envp_69" to i8* + %"$$fundef_11_cloval_72" = insertvalue { %Int32 (i8*, %Int32)*, i8* } { %Int32 (i8*, %Int32)* bitcast (%Int32 (%"$$fundef_11_env_54"*, %Int32)* @"$fundef_11" to %Int32 (i8*, %Int32)*), i8* undef }, i8* %"$$fundef_11_env_voidp_71", 1 + %"$$fundef_11_env_a_73" = getelementptr inbounds %"$$fundef_11_env_54", %"$$fundef_11_env_54"* %"$$fundef_11_envp_69", i32 0, i32 0 + store %Int32 %1, %Int32* %"$$fundef_11_env_a_73", align 4 + store { %Int32 (i8*, %Int32)*, i8* } %"$$fundef_11_cloval_72", { %Int32 (i8*, %Int32)*, i8* }* %"$retval_10", align 8 + %"$$retval_10_74" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$retval_10", align 8 + ret { %Int32 (i8*, %Int32)*, i8* } %"$$retval_10_74" +} + +define internal %Int32 @"$fundef_7"(%"$$fundef_7_env_56"* %0, %Int32 %1, %Int32 %2) { +entry: + %"$retval_8" = alloca %Int32, align 8 + %"$gasrem_57" = load i64, i64* @_gasrem, align 8 + %"$gascmp_58" = icmp ugt i64 4, %"$gasrem_57" + br i1 %"$gascmp_58", label %"$out_of_gas_59", label %"$have_gas_60" + +"$out_of_gas_59": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_60" + +"$have_gas_60": ; preds = %"$out_of_gas_59", %entry + %"$consume_61" = sub i64 %"$gasrem_57", 4 + store i64 %"$consume_61", i64* @_gasrem, align 8 + %"$add_call_62" = call %Int32 @_add_Int32(%Int32 %1, %Int32 %2) + store %Int32 %"$add_call_62", %Int32* %"$retval_8", align 4 + %"$$retval_8_63" = load %Int32, %Int32* %"$retval_8", align 4 + ret %Int32 %"$$retval_8_63" +} + +declare void @_out_of_gas() + +declare %Int32 @_add_Int32(%Int32, %Int32) + +declare i8* @_salloc(i8*, i64) + +declare %Int32 @_sub_Int32(%Int32, %Int32) + +define void @_init_libs() { +entry: + ret void +} + +define internal %Int32 @_scilla_expr_fun(i8* %0) { +entry: + %"$expr_6" = alloca %Int32, align 8 + %"$gasrem_117" = load i64, i64* @_gasrem, align 8 + %"$gascmp_118" = icmp ugt i64 1, %"$gasrem_117" + br i1 %"$gascmp_118", label %"$out_of_gas_119", label %"$have_gas_120" + +"$out_of_gas_119": ; preds = %entry + call void @_out_of_gas() + br label %"$have_gas_120" + +"$have_gas_120": ; preds = %"$out_of_gas_119", %entry + %"$consume_121" = sub i64 %"$gasrem_117", 1 + store i64 %"$consume_121", i64* @_gasrem, align 8 + %f1 = alloca { %Int32 (i8*, %Int32, %Int32)*, i8* }, align 8 + %"$gasrem_122" = load i64, i64* @_gasrem, align 8 + %"$gascmp_123" = icmp ugt i64 2, %"$gasrem_122" + br i1 %"$gascmp_123", label %"$out_of_gas_124", label %"$have_gas_125" + +"$out_of_gas_124": ; preds = %"$have_gas_120" + call void @_out_of_gas() + br label %"$have_gas_125" + +"$have_gas_125": ; preds = %"$out_of_gas_124", %"$have_gas_120" + %"$consume_126" = sub i64 %"$gasrem_122", 2 + store i64 %"$consume_126", i64* @_gasrem, align 8 + store { %Int32 (i8*, %Int32, %Int32)*, i8* } { %Int32 (i8*, %Int32, %Int32)* bitcast (%Int32 (%"$$fundef_7_env_56"*, %Int32, %Int32)* @"$fundef_7" to %Int32 (i8*, %Int32, %Int32)*), i8* null }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* %f1, align 8 + %"$gasrem_130" = load i64, i64* @_gasrem, align 8 + %"$gascmp_131" = icmp ugt i64 1, %"$gasrem_130" + br i1 %"$gascmp_131", label %"$out_of_gas_132", label %"$have_gas_133" + +"$out_of_gas_132": ; preds = %"$have_gas_125" + call void @_out_of_gas() + br label %"$have_gas_133" + +"$have_gas_133": ; preds = %"$out_of_gas_132", %"$have_gas_125" + %"$consume_134" = sub i64 %"$gasrem_130", 1 + store i64 %"$consume_134", i64* @_gasrem, align 8 + %f3 = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_135" = load i64, i64* @_gasrem, align 8 + %"$gascmp_136" = icmp ugt i64 1, %"$gasrem_135" + br i1 %"$gascmp_136", label %"$out_of_gas_137", label %"$have_gas_138" + +"$out_of_gas_137": ; preds = %"$have_gas_133" + call void @_out_of_gas() + br label %"$have_gas_138" + +"$have_gas_138": ; preds = %"$out_of_gas_137", %"$have_gas_133" + %"$consume_139" = sub i64 %"$gasrem_135", 1 + store i64 %"$consume_139", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_9_env_55"*, %Int32)* @"$fundef_9" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f3, align 8 + %"$gasrem_143" = load i64, i64* @_gasrem, align 8 + %"$gascmp_144" = icmp ugt i64 1, %"$gasrem_143" + br i1 %"$gascmp_144", label %"$out_of_gas_145", label %"$have_gas_146" + +"$out_of_gas_145": ; preds = %"$have_gas_138" + call void @_out_of_gas() + br label %"$have_gas_146" + +"$have_gas_146": ; preds = %"$out_of_gas_145", %"$have_gas_138" + %"$consume_147" = sub i64 %"$gasrem_143", 1 + store i64 %"$consume_147", i64* @_gasrem, align 8 + %f2 = alloca { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_148" = load i64, i64* @_gasrem, align 8 + %"$gascmp_149" = icmp ugt i64 1, %"$gasrem_148" + br i1 %"$gascmp_149", label %"$out_of_gas_150", label %"$have_gas_151" + +"$out_of_gas_150": ; preds = %"$have_gas_146" + call void @_out_of_gas() + br label %"$have_gas_151" + +"$have_gas_151": ; preds = %"$out_of_gas_150", %"$have_gas_146" + %"$consume_152" = sub i64 %"$gasrem_148", 1 + store i64 %"$consume_152", i64* @_gasrem, align 8 + store { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)* bitcast ({ %Int32 (i8*, %Int32)*, i8* } (%"$$fundef_13_env_53"*, %Int32)* @"$fundef_13" to { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*), i8* null }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f2, align 8 + %"$gasrem_156" = load i64, i64* @_gasrem, align 8 + %"$gascmp_157" = icmp ugt i64 1, %"$gasrem_156" + br i1 %"$gascmp_157", label %"$out_of_gas_158", label %"$have_gas_159" + +"$out_of_gas_158": ; preds = %"$have_gas_151" + call void @_out_of_gas() + br label %"$have_gas_159" + +"$have_gas_159": ; preds = %"$out_of_gas_158", %"$have_gas_151" + %"$consume_160" = sub i64 %"$gasrem_156", 1 + store i64 %"$consume_160", i64* @_gasrem, align 8 + %n1 = alloca %Int32, align 8 + %"$gasrem_161" = load i64, i64* @_gasrem, align 8 + %"$gascmp_162" = icmp ugt i64 1, %"$gasrem_161" + br i1 %"$gascmp_162", label %"$out_of_gas_163", label %"$have_gas_164" + +"$out_of_gas_163": ; preds = %"$have_gas_159" + call void @_out_of_gas() + br label %"$have_gas_164" + +"$have_gas_164": ; preds = %"$out_of_gas_163", %"$have_gas_159" + %"$consume_165" = sub i64 %"$gasrem_161", 1 + store i64 %"$consume_165", i64* @_gasrem, align 8 + store %Int32 { i32 1 }, %Int32* %n1, align 4 + %"$gasrem_166" = load i64, i64* @_gasrem, align 8 + %"$gascmp_167" = icmp ugt i64 1, %"$gasrem_166" + br i1 %"$gascmp_167", label %"$out_of_gas_168", label %"$have_gas_169" + +"$out_of_gas_168": ; preds = %"$have_gas_164" + call void @_out_of_gas() + br label %"$have_gas_169" + +"$have_gas_169": ; preds = %"$out_of_gas_168", %"$have_gas_164" + %"$consume_170" = sub i64 %"$gasrem_166", 1 + store i64 %"$consume_170", i64* @_gasrem, align 8 + %n2 = alloca %Int32, align 8 + %"$gasrem_171" = load i64, i64* @_gasrem, align 8 + %"$gascmp_172" = icmp ugt i64 1, %"$gasrem_171" + br i1 %"$gascmp_172", label %"$out_of_gas_173", label %"$have_gas_174" + +"$out_of_gas_173": ; preds = %"$have_gas_169" + call void @_out_of_gas() + br label %"$have_gas_174" + +"$have_gas_174": ; preds = %"$out_of_gas_173", %"$have_gas_169" + %"$consume_175" = sub i64 %"$gasrem_171", 1 + store i64 %"$consume_175", i64* @_gasrem, align 8 + store %Int32 { i32 2 }, %Int32* %n2, align 4 + %"$gasrem_176" = load i64, i64* @_gasrem, align 8 + %"$gascmp_177" = icmp ugt i64 1, %"$gasrem_176" + br i1 %"$gascmp_177", label %"$out_of_gas_178", label %"$have_gas_179" + +"$out_of_gas_178": ; preds = %"$have_gas_174" + call void @_out_of_gas() + br label %"$have_gas_179" + +"$have_gas_179": ; preds = %"$out_of_gas_178", %"$have_gas_174" + %"$consume_180" = sub i64 %"$gasrem_176", 1 + store i64 %"$consume_180", i64* @_gasrem, align 8 + %res1 = alloca %Int32, align 8 + %"$gasrem_181" = load i64, i64* @_gasrem, align 8 + %"$gascmp_182" = icmp ugt i64 1, %"$gasrem_181" + br i1 %"$gascmp_182", label %"$out_of_gas_183", label %"$have_gas_184" + +"$out_of_gas_183": ; preds = %"$have_gas_179" + call void @_out_of_gas() + br label %"$have_gas_184" + +"$have_gas_184": ; preds = %"$out_of_gas_183", %"$have_gas_179" + %"$consume_185" = sub i64 %"$gasrem_181", 1 + store i64 %"$consume_185", i64* @_gasrem, align 8 + %"$f1_186" = load { %Int32 (i8*, %Int32, %Int32)*, i8* }, { %Int32 (i8*, %Int32, %Int32)*, i8* }* %f1, align 8 + %"$f1_fptr_187" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$f1_186", 0 + %"$f1_envptr_188" = extractvalue { %Int32 (i8*, %Int32, %Int32)*, i8* } %"$f1_186", 1 + %"$n1_189" = load %Int32, %Int32* %n1, align 4 + %"$n2_190" = load %Int32, %Int32* %n2, align 4 + %"$f1_call_191" = call %Int32 %"$f1_fptr_187"(i8* %"$f1_envptr_188", %Int32 %"$n1_189", %Int32 %"$n2_190") + store %Int32 %"$f1_call_191", %Int32* %res1, align 4 + %"$gasrem_192" = load i64, i64* @_gasrem, align 8 + %"$gascmp_193" = icmp ugt i64 1, %"$gasrem_192" + br i1 %"$gascmp_193", label %"$out_of_gas_194", label %"$have_gas_195" + +"$out_of_gas_194": ; preds = %"$have_gas_184" + call void @_out_of_gas() + br label %"$have_gas_195" + +"$have_gas_195": ; preds = %"$out_of_gas_194", %"$have_gas_184" + %"$consume_196" = sub i64 %"$gasrem_192", 1 + store i64 %"$consume_196", i64* @_gasrem, align 8 + %res2 = alloca %Int32, align 8 + %"$gasrem_197" = load i64, i64* @_gasrem, align 8 + %"$gascmp_198" = icmp ugt i64 1, %"$gasrem_197" + br i1 %"$gascmp_198", label %"$out_of_gas_199", label %"$have_gas_200" + +"$out_of_gas_199": ; preds = %"$have_gas_195" + call void @_out_of_gas() + br label %"$have_gas_200" + +"$have_gas_200": ; preds = %"$out_of_gas_199", %"$have_gas_195" + %"$consume_201" = sub i64 %"$gasrem_197", 1 + store i64 %"$consume_201", i64* @_gasrem, align 8 + %"$f2_0" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$f2_202" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f2, align 8 + %"$f2_fptr_203" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f2_202", 0 + %"$f2_envptr_204" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f2_202", 1 + %"$res1_205" = load %Int32, %Int32* %res1, align 4 + %"$f2_call_206" = call { %Int32 (i8*, %Int32)*, i8* } %"$f2_fptr_203"(i8* %"$f2_envptr_204", %Int32 %"$res1_205") + store { %Int32 (i8*, %Int32)*, i8* } %"$f2_call_206", { %Int32 (i8*, %Int32)*, i8* }* %"$f2_0", align 8 + %"$f2_1" = alloca %Int32, align 8 + %"$$f2_0_207" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$f2_0", align 8 + %"$$f2_0_fptr_208" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f2_0_207", 0 + %"$$f2_0_envptr_209" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f2_0_207", 1 + %"$n1_210" = load %Int32, %Int32* %n1, align 4 + %"$$f2_0_call_211" = call %Int32 %"$$f2_0_fptr_208"(i8* %"$$f2_0_envptr_209", %Int32 %"$n1_210") + store %Int32 %"$$f2_0_call_211", %Int32* %"$f2_1", align 4 + %"$$f2_1_212" = load %Int32, %Int32* %"$f2_1", align 4 + store %Int32 %"$$f2_1_212", %Int32* %res2, align 4 + %"$gasrem_213" = load i64, i64* @_gasrem, align 8 + %"$gascmp_214" = icmp ugt i64 1, %"$gasrem_213" + br i1 %"$gascmp_214", label %"$out_of_gas_215", label %"$have_gas_216" + +"$out_of_gas_215": ; preds = %"$have_gas_200" + call void @_out_of_gas() + br label %"$have_gas_216" + +"$have_gas_216": ; preds = %"$out_of_gas_215", %"$have_gas_200" + %"$consume_217" = sub i64 %"$gasrem_213", 1 + store i64 %"$consume_217", i64* @_gasrem, align 8 + %partial = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$gasrem_218" = load i64, i64* @_gasrem, align 8 + %"$gascmp_219" = icmp ugt i64 1, %"$gasrem_218" + br i1 %"$gascmp_219", label %"$out_of_gas_220", label %"$have_gas_221" + +"$out_of_gas_220": ; preds = %"$have_gas_216" + call void @_out_of_gas() + br label %"$have_gas_221" + +"$have_gas_221": ; preds = %"$out_of_gas_220", %"$have_gas_216" + %"$consume_222" = sub i64 %"$gasrem_218", 1 + store i64 %"$consume_222", i64* @_gasrem, align 8 + %"$f3_2" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$f3_223" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f3, align 8 + %"$f3_fptr_224" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f3_223", 0 + %"$f3_envptr_225" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f3_223", 1 + %"$res2_226" = load %Int32, %Int32* %res2, align 4 + %"$f3_call_227" = call { %Int32 (i8*, %Int32)*, i8* } %"$f3_fptr_224"(i8* %"$f3_envptr_225", %Int32 %"$res2_226") + store { %Int32 (i8*, %Int32)*, i8* } %"$f3_call_227", { %Int32 (i8*, %Int32)*, i8* }* %"$f3_2", align 8 + %"$$f3_2_228" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$f3_2", align 8 + store { %Int32 (i8*, %Int32)*, i8* } %"$$f3_2_228", { %Int32 (i8*, %Int32)*, i8* }* %partial, align 8 + %"$gasrem_229" = load i64, i64* @_gasrem, align 8 + %"$gascmp_230" = icmp ugt i64 1, %"$gasrem_229" + br i1 %"$gascmp_230", label %"$out_of_gas_231", label %"$have_gas_232" + +"$out_of_gas_231": ; preds = %"$have_gas_221" + call void @_out_of_gas() + br label %"$have_gas_232" + +"$have_gas_232": ; preds = %"$out_of_gas_231", %"$have_gas_221" + %"$consume_233" = sub i64 %"$gasrem_229", 1 + store i64 %"$consume_233", i64* @_gasrem, align 8 + %total = alloca %Int32, align 8 + %"$gasrem_234" = load i64, i64* @_gasrem, align 8 + %"$gascmp_235" = icmp ugt i64 1, %"$gasrem_234" + br i1 %"$gascmp_235", label %"$out_of_gas_236", label %"$have_gas_237" + +"$out_of_gas_236": ; preds = %"$have_gas_232" + call void @_out_of_gas() + br label %"$have_gas_237" + +"$have_gas_237": ; preds = %"$out_of_gas_236", %"$have_gas_232" + %"$consume_238" = sub i64 %"$gasrem_234", 1 + store i64 %"$consume_238", i64* @_gasrem, align 8 + %"$partial_3" = alloca %Int32, align 8 + %"$partial_239" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %partial, align 8 + %"$partial_fptr_240" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_239", 0 + %"$partial_envptr_241" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$partial_239", 1 + %"$n1_242" = load %Int32, %Int32* %n1, align 4 + %"$partial_call_243" = call %Int32 %"$partial_fptr_240"(i8* %"$partial_envptr_241", %Int32 %"$n1_242") + store %Int32 %"$partial_call_243", %Int32* %"$partial_3", align 4 + %"$$partial_3_244" = load %Int32, %Int32* %"$partial_3", align 4 + store %Int32 %"$$partial_3_244", %Int32* %total, align 4 + %"$gasrem_245" = load i64, i64* @_gasrem, align 8 + %"$gascmp_246" = icmp ugt i64 1, %"$gasrem_245" + br i1 %"$gascmp_246", label %"$out_of_gas_247", label %"$have_gas_248" + +"$out_of_gas_247": ; preds = %"$have_gas_237" + call void @_out_of_gas() + br label %"$have_gas_248" + +"$have_gas_248": ; preds = %"$out_of_gas_247", %"$have_gas_237" + %"$consume_249" = sub i64 %"$gasrem_245", 1 + store i64 %"$consume_249", i64* @_gasrem, align 8 + %res3 = alloca %Int32, align 8 + %"$gasrem_250" = load i64, i64* @_gasrem, align 8 + %"$gascmp_251" = icmp ugt i64 1, %"$gasrem_250" + br i1 %"$gascmp_251", label %"$out_of_gas_252", label %"$have_gas_253" + +"$out_of_gas_252": ; preds = %"$have_gas_248" + call void @_out_of_gas() + br label %"$have_gas_253" + +"$have_gas_253": ; preds = %"$out_of_gas_252", %"$have_gas_248" + %"$consume_254" = sub i64 %"$gasrem_250", 1 + store i64 %"$consume_254", i64* @_gasrem, align 8 + %"$f3_4" = alloca { %Int32 (i8*, %Int32)*, i8* }, align 8 + %"$f3_255" = load { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }, { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* }* %f3, align 8 + %"$f3_fptr_256" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f3_255", 0 + %"$f3_envptr_257" = extractvalue { { %Int32 (i8*, %Int32)*, i8* } (i8*, %Int32)*, i8* } %"$f3_255", 1 + %"$total_258" = load %Int32, %Int32* %total, align 4 + %"$f3_call_259" = call { %Int32 (i8*, %Int32)*, i8* } %"$f3_fptr_256"(i8* %"$f3_envptr_257", %Int32 %"$total_258") + store { %Int32 (i8*, %Int32)*, i8* } %"$f3_call_259", { %Int32 (i8*, %Int32)*, i8* }* %"$f3_4", align 8 + %"$f3_5" = alloca %Int32, align 8 + %"$$f3_4_260" = load { %Int32 (i8*, %Int32)*, i8* }, { %Int32 (i8*, %Int32)*, i8* }* %"$f3_4", align 8 + %"$$f3_4_fptr_261" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f3_4_260", 0 + %"$$f3_4_envptr_262" = extractvalue { %Int32 (i8*, %Int32)*, i8* } %"$$f3_4_260", 1 + %"$n1_263" = load %Int32, %Int32* %n1, align 4 + %"$$f3_4_call_264" = call %Int32 %"$$f3_4_fptr_261"(i8* %"$$f3_4_envptr_262", %Int32 %"$n1_263") + store %Int32 %"$$f3_4_call_264", %Int32* %"$f3_5", align 4 + %"$$f3_5_265" = load %Int32, %Int32* %"$f3_5", align 4 + store %Int32 %"$$f3_5_265", %Int32* %res3, align 4 + %"$gasrem_266" = load i64, i64* @_gasrem, align 8 + %"$gascmp_267" = icmp ugt i64 1, %"$gasrem_266" + br i1 %"$gascmp_267", label %"$out_of_gas_268", label %"$have_gas_269" + +"$out_of_gas_268": ; preds = %"$have_gas_253" + call void @_out_of_gas() + br label %"$have_gas_269" + +"$have_gas_269": ; preds = %"$out_of_gas_268", %"$have_gas_253" + %"$consume_270" = sub i64 %"$gasrem_266", 1 + store i64 %"$consume_270", i64* @_gasrem, align 8 + %"$gasrem_271" = load i64, i64* @_gasrem, align 8 + %"$gascmp_272" = icmp ugt i64 1, %"$gasrem_271" + br i1 %"$gascmp_272", label %"$out_of_gas_273", label %"$have_gas_274" + +"$out_of_gas_273": ; preds = %"$have_gas_269" + call void @_out_of_gas() + br label %"$have_gas_274" + +"$have_gas_274": ; preds = %"$out_of_gas_273", %"$have_gas_269" + %"$consume_275" = sub i64 %"$gasrem_271", 1 + store i64 %"$consume_275", i64* @_gasrem, align 8 + %"$res3_276" = load %Int32, %Int32* %res3, align 4 + store %Int32 %"$res3_276", %Int32* %"$expr_6", align 4 + %"$$expr_6_277" = load %Int32, %Int32* %"$expr_6", align 4 + ret %Int32 %"$$expr_6_277" +} + +declare void @_print_scilla_val(i8*, %_TyDescrTy_Typ*, i8*) + +define void @scilla_main() { +entry: + %"$exprval_278" = call %Int32 @_scilla_expr_fun(i8* null) + %"$pval_279" = alloca %Int32, align 8 + %"$memvoidcast_280" = bitcast %Int32* %"$pval_279" to i8* + store %Int32 %"$exprval_278", %Int32* %"$pval_279", align 4 + %"$execptr_load_281" = load i8*, i8** @_execptr, align 8 + call void @_print_scilla_val(i8* %"$execptr_load_281", %_TyDescrTy_Typ* @"$TyDescr_Int32_19", i8* %"$memvoidcast_280") + ret void +} diff --git a/tests/codegen/expr/uncurry_simple.scilexp b/tests/codegen/expr/uncurry_simple.scilexp new file mode 100644 index 00000000..469ac837 --- /dev/null +++ b/tests/codegen/expr/uncurry_simple.scilexp @@ -0,0 +1,43 @@ +(* f1 is a candidate for Uncurrying *) +let f1 = + fun (a: Int32) => + fun (b: Int32) => + builtin add a b +in + +(* f3 has an arity >= 2 but is used as a partial function + so is not a candidate for Uncurrying +*) +let f3 = + fun (a: Int32) => + fun (b: Int32) => + builtin sub a b +in + +(* f2 would have arity of 1 *) +let f2 = + fun (a: Int32) => + let a_ = a in + fun (b: Int32) => + builtin add a_ b +in + +let n1 = Int32 1 in +let n2 = Int32 2 in + +(* Total app of f1 *) +let res1 = f1 n1 n2 in + +(* Use of f2 *) +let res2 = f2 res1 n1 in + +(* Partial app of f3 *) +let partial = f3 res2 in +let total = partial n1 in + +(* Total app of f3 *) +let res3 = f3 total n1 in + +(* Total app of f1 again *) +let res4 = f1 res3 n1 in +res3 \ No newline at end of file diff --git a/tests/codegen/expr/uncurry_simple2.scilexp b/tests/codegen/expr/uncurry_simple2.scilexp new file mode 100644 index 00000000..c64445cf --- /dev/null +++ b/tests/codegen/expr/uncurry_simple2.scilexp @@ -0,0 +1,8 @@ +let uncur_lib_func = + fun (a: Int32) => + fun (b: Int32) => + builtin add a b +in +let x1 = Int32 1 in +let x2 = Int32 2 in +uncur_lib_func x1 x2 \ No newline at end of file